Home - Trainees-travelling-Open-Source-Sea/cert-issuer GitHub Wiki
์ฐ๋ฆฌ๋ ๋ํ ์์คํ ์ ํตํด ์ด๋ฃจ์ด์ง๋ ํ์ ์ธ์ฆ์ด ๋์์๋ ํ์ ์์กฐ ๋ฌธ์ ๋ฅผ ๋ณ๋๋ค๋ ์ ์ ์ฃผ๋ชฉํ์ฌ ์ด ํ๋ก์ ํธ๋ฅผ ์์ํ๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ์ ๋ํ ๋๋น์ฑ ์ผ๋ก ๋์จ๊ฒ์ด ๋ธ๋ก ์ฒด์ธ ์ธ์ฆ์์ด๋ค.
์ฐ๋ฆฌ์ ํ๋ก์ ํธ๋ MIT's Media Lab๊ณผ Learning Machine์ด ๊ณต๋์ผ๋ก ๊ฐ๋ฐํ๊ณ ์๋ 'Blockcerts'์ ๋ํ ์คํ์์ค ์ค cert-issuer1 ์ ๋ํ ํ๋ก์ ํธ์ด๋ค
์ฐธ๊ณ : https://www.blockcerts.org/
cert-issuer๋ ๋ฐ๊ธ๊ธฐ๊ด์์ ์ธ์ฆ์ ์์ฒด์ ํด์๊ฐ ํฌํจ๋ ํธ๋์ญ์ ์ ๋ง๋ค์ด ๋ธ๋ก ์ฒด์ธ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ ํ๋ก์ ํธ์ด๋ค.
-
cert-issuer -c /etc/cert-issuer/conf.ini
๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด, cert_issuer/main.py์ cert_issuer_main()์ด ์คํ๋๋ค. (config.py์ ์ ์๋์ด ์์) -
Cert_issuer_main()์ ๋ด์ฉ
-
main.py:
- Cert_issuer_main():
= Config.get_config() : ์ค์ ์ ๋ถ๋ฌ์จ๋ค
= Issuer_certificates.main(config) : ์คํ
- Cert_issuer_main():
-
main.py:
-
Issue_certificates.main(config)์ ๋ด์ฉ
- Issue_certificates.py:
- main(app_config) : ๋ธ๋ก์ฒด์ธ ์ค์ ํ issue()์คํ ๋ฐ tx_id ๋ฐํ
= Issue() : ํธ๋์ญ์ ๋ฐํํ๊ณ tx_id(ํธ๋์ญ์ ์์ด๋) ๋ฐํ
= Pre_batch_actions(config)
= Ensure_balance()
= Issuer ํด๋์ค ์์ฑ
= Issuer.issue()์คํ : issuer.py์ issue() ํจ์๋ฅผ ์คํํ๊ณ ์ค์ ๋ก issueํ๋ ์ญํ ์ด๋ค. ์ด ๊ณผ์ ์์ Merkle tree์ ์์ฑ๋ ๊ฐ์ด ํ๋ค.
= Post_batch_actions(config)
- main(app_config) : ๋ธ๋ก์ฒด์ธ ์ค์ ํ issue()์คํ ๋ฐ tx_id ๋ฐํ
- Issue_certificates.py:
์๋ ๋งํฌ๋ฅผ ํตํด์ Docker๋ฅผ ์ค์นํ ์ ์๋ค. Docker ์ค์น
Docker๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ๊ฐ์ํ ๋๊ตฌ์ด๋ค. ์ด๊ฒ์ ์ด์ฉํด์ ํ์ ์ธ์ฆ ๊ณผ์ ์ ์์๋ณผ ์ ์๋ค.
- Docker๋ฅผ ์ด์ฉํด์ ๊ฐ์์ ๋นํธ์ฝ์ธ ์๋ฒ์ ์ฐ๊ฒฐํ๋ค.
- ๋นํธ์ฝ์ธ ์๋ฒ์์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธฐ์ํด ํ์ํ ๋นํธ์ฝ์ธ์ ๋ฐ๋๋ค.
- ํ๊ต ๊ณ ์ ์ ๊ณต์ฉํค๋ฅผ ๋ฐ๋๋ค.
- ํ๊ต์ ๋นํธ์ฝ์ธ์ ์ง๋ถํ์ฌ ์ธ์ฆ์๋ฅผ ๋ฐ๋๋ค.
์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ ๊ณผ์ ์ ์๋์์ ํ์ธํ ์ ์๋ค. ์ธ์ฆ์ ๋ฐ๊ธ ๊ณผ์ ์์๋ณด๊ธฐ
์ธ์ฆ์์ ์ง์ ์ฌ๋ถ๋ฅผ ์ ์ ์๋ ํํ์ด์ง๊ฐ ์๋ค. ์ธ์ฆ์ ์ง์์ฌ๋ถ ํ์ธ
ํ์: ์๋ ๋ฐ๊ธ๊ธฐ๋ฅผ ํตํด ์ฆ๋ช ์๋ฅผ ์ ์ฒญ
โ
ํ๊ต: ํ์ ์ธ์ฆ์ ๋ฐ๊ธ์ ํ์ํ ์ ๋ณด๋ค์ ํ๊ต DB Server์์ ๊ฐ์ ธ์ ์ด๋ฅผ ์ฆ๋ช ์ ๋ฐ๊ธ์ ๋ง์ถฐ ๊ฐ๊ณต์ ํ์ฌ ์ด๋ฏธ์ง ํ์ผ๋ก ๋ฐ๊ธ
ํ๊ต ๋ด ์ค์ ์ง์คํ๋ ์๋ฒ(*DB server)์์ ํ์์ ๋ฐ๊ธ ์์ฒญ์ ๋ฐ๋ผ ์ธ์ฆ ๋ฐ ๋ฐ๊ธ ์ ์ฐจ ์งํ
- ๋ฐ๊ธ๋ ์ธ์ฆ์๋ jsonํ์ผ๋ก ์ ์ฅ์ด ๋๋ค. ์ด ํ์ผ์์ ์๋ ๋ด์ฉ์ ๋ถ์ํด๋ณด์. json file ๋ถ์
- ๋ถ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์ธ์ฆ์ ๋ด์ฉ์ ์์๋ก ๋ณ๊ฒฝํด๋ณธ๋ค. ์ธ์ฆ์ ๋ด์ฉ ๋ณ๊ฒฝ
1: BLOCKCERTS ๊ณ์ ์ cert-issuer repository์ ์ธ์ฆ์ ํ์ํ cert-viewer repository๋ฅผ ํฌํจ์ํจ ๊ตฌ์กฐ๋ฅผ ์ทจํ์์ต๋๋ค.
2: application์ ์ ์ํ๊ฒ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์๋ software platform์ ๋๋ค. Docker๋ ์ํํธ์จ์ด๋ฅผ ์ปจํ ์ด๋(container)๋ผ๋ ํ์คํ๋ unit์ผ๋ก ํจํค์ง(packaging)ํ๋ฉฐ, ์ด ์ปจํ ์ด๋์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์์คํ ๋๊ตฌ, ์ฝ๋, ๋ฐํ์ ๋ฑ ์ํํธ์จ์ด๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ด ํฌํจ๋์ด ์์ต๋๋ค. Docker๋ฅผ ์ฌ์ฉํ๋ฉด ํ๊ฒฝ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ๋ฐฐํฌ ๋ฐ ํ์ฅ(์ด๋ฅผ ํตํ ๋ง์ดํฌ๋ก ์๋น์ค ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค)ํ ์ ์์ผ๋ฉฐ ์ฝ๋๊ฐ ๋ฌธ์ ์์ด ์คํ๋ ๊ฒ์์ ํ์ ํ ์ ์์ต๋๋ค.