μ΄ μΉμ μμλ κΈ°μ μ μΈ κ΄μ μμ IBax λ Έλκ° μλ‘ μνΈ μμ©νλ λ°©λ²μ λν΄ μ€λͺ ν©λλ€.
μλ² λ°λͺ¬μ λͺ¨λ λ€νΈμν¬ λ Έλμμ μ€νλμ΄ λ€μν μλ² κΈ°λ₯μ μννκ³ IBaxμ λΈλ‘μ²΄μΈ νλ‘ν μ½μ μ§μν΄μΌ ν©λλ€. λΈλ‘μ²΄μΈ λ€νΈμν¬μμ λ°λͺ¬μ λΈλ‘κ³Ό κ±°λλ₯Ό λΆλ°°νκ³ , μλ‘μ΄ λΈλ‘μ μμ±νλ©°, λ°μ λΈλ‘κ³Ό κ±°λλ₯Ό κ²μ¦νκ³ , ν¬ν¬ μ΄μλ₯Ό λ°©μ§ν μ μμ΅λλ€.
μκ΄ λ Έλλ λ€μκ³Ό κ°μ μλ² λ°λͺ¬μ μ€νν©λλ€:
-
μλ‘μ΄ λΈλ‘ μμ±
-
λ€λ₯Έ λ Έλμμ μλ‘μ΄ λΈλ‘ λ€μ΄λ‘λ
-
ν΄λΉ λ Έλμ λΈλ‘μ΄ λλΆλΆμ λ€λ₯Έ λ Έλμλ μ‘΄μ¬νλμ§ νμΈ
-
κ±°λμ λΈλ‘μ λ€λ₯Έ μκ΄ λ Έλλ‘ λ°°ν¬
-
QueueParserBlocks daemon
νμ μλ λΈλ‘, λ€λ₯Έ λ Έλμμ κ°μ Έμ¨ λΈλ‘μ΄ ν¬ν¨λ¨
λΈλ‘ μ²λ¦¬ λ‘μ§μ BlockCollection daemonκ³Ό λμΌ
-
QueueParserTx daemon
νμ μλ κ±°λ κ²μ¦
-
Scheduler daemon
κ³μ½μ μμ½λ μκ°μ μ€ν
μνΈμ λ Έλλ λ€μκ³Ό κ°μ μλ² λ°λͺ¬μ μ€νν©λλ€:
- BlockCollection daemon
- Confirmations daemon
- Disseminator daemon
- QueueParserTx
- Scheduler
μ΄ λ°λͺ¬μ λΈλ‘μ λ€μ΄λ‘λνκ³ λΈλ‘체μΈμ λ€λ₯Έ λ€νΈμν¬ λ Έλμ λκΈ°νν©λλ€.
μ΄ λ°λͺ¬μ λΈλ‘μ²΄μΈ λ€νΈμν¬μμ μ΅λ λΈλ‘ λμ΄λ₯Ό κ²°μ νκ³ , μλ‘μ΄ λΈλ‘μ μμ²νλ©°, λΈλ‘체μΈμμ ν¬ν¬ μ΄μλ₯Ό ν΄κ²°ν¨μΌλ‘μ¨ λΈλ‘체μΈμ λκΈ°νν©λλ€.
μ΄ λ°λͺ¬μ νμ¬ λΈλ‘ IDλΆν° λͺ¨λ μκ΄ λ Έλμκ² μμ²μ 보λ λλ€.
λ°λͺ¬μ μ€ν μ€μΈ λ Έλμ νμ¬ λΈλ‘ IDκ° μ΄λ€ μκ΄ λ Έλμ νμ¬ λΈλ‘ IDλ³΄λ€ μλ€λ©΄, ν΄λΉ λΈλ‘μ²΄μΈ λ€νΈμν¬ λ Έλλ μ€λλ κ²μΌλ‘ κ°μ£Όλ©λλ€.
κ°μ₯ ν° νμ¬ λΈλ‘ λμ΄λ₯Ό λ°ννλ λ Έλκ° μ΅μ λ Έλλ‘ κ°μ£Όλ©λλ€. λ°λͺ¬μ λͺ¨λ μ μ μλ λΈλ‘μ λ€μ΄λ‘λν©λλ€.
λΈλ‘체μΈμμ ν¬ν¬κ° κ°μ§λλ©΄ λ°λͺ¬μ λͺ¨λ λΈλ‘μ κ³΅ν΅ μμ λΈλ‘μΌλ‘ λ€μ΄λ‘λνμ¬ ν¬ν¬λ₯Ό λ€λ‘ μ΄λν©λλ€. κ³΅ν΅ μμ λΈλ‘μ΄ λ°κ²¬λλ©΄ λ°λͺ¬μ μ€ννλ λ Έλμμ λΈλ‘μ²΄μΈ λ‘€λ°±μ΄ μνλκ³ μ΅μ λΈλ‘μ΄ ν¬ν¨λ λκΉμ§ μ¬λ°λ₯Έ λΈλ‘μ΄ λΈλ‘체μΈμ μΆκ°λ©λλ€.
BlocksCollection λ°λͺ¬μ λ€μ ν μ΄λΈμ μ¬μ©ν©λλ€.
- block_chain
- transactions
- transactions_status
- info_block
BlockCollection λ°λͺ¬μ λ€μ μμ²μ λ€λ₯Έ λ°λͺ¬μΌλ‘ 보λ λλ€.
- Type 10 μ μ 체 λͺ μ λ Έλ μ€ κ°μ₯ ν° λΈλ‘ IDλ₯Ό κ°λ¦¬ν΅λλ€.
- Type 7 μ λΈλ‘ IDκ° κ°μ₯ ν° λ°μ΄ν°λ₯Ό κ°λ¦¬ν΅λλ€.
BlockGenerator λ°λͺ¬μ μ λΈλ‘μ μμ±ν©λλ€.
BlockGenerator λ°λͺ¬μ λΈλ‘체μΈμ μ΅μ λΈλ‘μ λΆμνμ¬ μλ‘μ΄ λΈλ‘ μμ± κ³νμ μΈμλλ€.
λ€μ μ‘°κ±΄μ΄ μΆ©μ‘±λλ©΄ μ λΈλ‘μ μμ±ν μ μμ΅λλ€.
- μ΅μ λΈλ‘μ μμ±ν λ Έλλ Honor Node λͺ©λ‘ λ΄μ λ Έλμ μμΌλ©° λ°λͺ¬μ μ€νν©λλ€.
- κ°μ₯ μ΅κ·Όμ κ²μ¦λμ§ μμ λΈλ‘μ΄ μμ±λ μ΄ν κ°μ₯ 짧μ μκ°μ λλ€.
λ°λͺ¬μ μν΄ μμ±λ μλ‘μ΄ λΈλ‘μλ λ€λ₯Έ λ Έλμ Disseminator λ°λͺ¬μμ λ°κ±°λ λ°λͺ¬μ μ€ννλ λ Έλμμ μμ±ν μ μλ λͺ¨λ μ νΈλμμ μ΄ ν¬ν¨λ©λλ€. μμ±λ λΈλ‘μ λ Έλ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ©λλ€.
BlockGenerator λ°λͺ¬μ λ€μ ν μ΄λΈμ μ¬μ©ν©λλ€.
- block_chain (saves new blocks)
- transactions
- transactions_status
- info_block
BlockGenerator λ°λͺ¬μ λ€λ₯Έ λ°λͺ¬μ μμ²νμ§ μμ΅λλ€.
Disseminator λ°λͺ¬μ νΈλμμ κ³Ό λΈλ‘μ λͺ¨λ λͺ μ λ Έλλ‘ λ³΄λ λλ€.
κ°λμΈ λ Έλμμ μμ ν λ λ°λͺ¬μ ν΄λΉ λ Έλμμ μμ±λ νΈλμμ μ λͺ¨λ λͺ μ λ Έλλ‘ λ³΄λ λλ€.
λͺ μ λ Έλμμ μμ ν λ λ°λͺ¬μ μμ±λ λΈλ‘κ³Ό νΈλμμ ν΄μλ₯Ό λͺ¨λ λͺ μ λ Έλλ‘ λ³΄λ λλ€.
κ·Έλ° λ€μ Honor Nodeλ μμ μκ² μλ €μ§μ§ μμ νΈλμμ μμ²μ μλ΅ν©λλ€. λ°λͺ¬μ μ 체 νΈλμμ λ°μ΄ν°λ₯Ό μλ΅μΌλ‘ 보λ λλ€.
Disseminator λ°λͺ¬μ λ€μ ν μ΄λΈμ μ¬μ©ν©λλ€.
- transactions
Disseminator λ°λͺ¬μ λ€μ μμ²μ λ€λ₯Έ λ°λͺ¬μΌλ‘ 보λ λλ€.
- Type 1 νΈλμμ λ° λΈλ‘ ν΄μλ₯Ό Honor λ Έλλ‘ λ³΄λ λλ€.
- Type 2 μλλ Έλλ‘λΆν° νΈλμμ λ°μ΄ν°λ₯Ό λ°μ΅λλ€.
νμΈ λ°λͺ¬μ λ Έλμ λͺ¨λ λΈλ‘μ΄ λλΆλΆμ λ€λ₯Έ λ Έλμ μλμ§ νμΈν©λλ€.
λ€νΈμν¬μ μ¬λ¬ λ Έλμμ νμΈν λΈλ‘μ νμΈλ λΈλ‘μΌλ‘ κ°μ£Όλ©λλ€.
λ°λͺ¬μ νμ¬ λ°μ΄ν°λ² μ΄μ€μμ νμΈλμ§ μμ 첫 λ²μ§Έ λΈλ‘λΆν° νλμ© λͺ¨λ λΈλ‘μ νμΈν©λλ€.
κ° λΈλ‘μ λ€μκ³Ό κ°μ λ°©μμΌλ‘ νμΈλ©λλ€.
- νμΈ μ€μΈ λΈλ‘μ IDκ° ν¬ν¨λ μμ²μ λͺ¨λ λͺ μ λ Έλμ 보λ λλ€.
- λͺ¨λ λͺ μ λ Έλλ λΈλ‘ ν΄μμ μλ΅ν©λλ€.
- μλ΅ν ν΄μκ° λ°λͺ¬ λ Έλμ μλ λΈλ‘μ ν΄μμ μΌμΉνλ©΄ νμΈ μΉ΄μ΄ν° κ°μ΄ μ¦κ°ν©λλ€. κ·Έλ μ§ μμ κ²½μ° μ·¨μ μΉ΄μ΄ν° κ°μ΄ μ¦κ°ν©λλ€.
νμΈ λ°λͺ¬μ λ€μ ν μ΄λΈμ μ¬μ©ν©λλ€.
- confirmation
- info_block
νμΈ λ°λͺ¬μ λ€μ μμ²μ λ€λ₯Έ λ°λͺ¬μΌλ‘ 보λ λλ€.
- Type 4 λͺ μ λ Έλμμ λΈλ‘ ν΄μλ₯Ό μμ²ν©λλ€.
TCP μλΉμ€ νλ‘ν μ½μ λͺ μ λ Έλ λ° κ°λμΈ λ Έλμμ μλνλ©° TCPμ μ΄μ§ νλ‘ν μ½μ μ¬μ©νμ¬ BlocksCollection, Disseminator λ° Confirmation λ°λͺ¬μ μμ²μ μ¬μ©ν©λλ€.
κ° μμ²μλ μμ²μ μ²μ λ λ°μ΄νΈλ‘ μ μλ μ νμ΄ μμ΅λλ€.
μ΄ μμ²μ Disseminator λ°λͺ¬μ μν΄ μ μ‘λ©λλ€.
νΈλμμ λ° λΈλ‘μ ν΄μ.
λΈλ‘ ν΄μκ° λΈλ‘ λκΈ°μ΄μ μΆκ°λ©λλ€.
νΈλμμ ν΄μλ₯Ό λΆμ λ° κ²μ¦νκ³ μμ§ λ Έλμ λνλμ§ μμ νΈλμμ μ μ νν©λλ€.
μλμ. μμ²μ μ²λ¦¬ν ν Type 2 μμ²μ΄ λ°νλ©λλ€.
μ΄ μμ²μ Disseminator λ°λͺ¬μ μν΄ μ μ‘λ©λλ€.
λ°μ΄ν° ν¬κΈ°λ₯Ό ν¬ν¨ν νΈλμμ λ°μ΄ν°:
-
data_size(4λ°μ΄νΈ)
-
νΈλμμ λ°μ΄ν°μ ν¬κΈ°(λ°μ΄νΈ).
-
λ°μ΄ν°(data_size λ°μ΄νΈ)
κ±°λ λ°μ΄ν°μ λλ€.
νΈλμμ μ νμΈνκ³ νΈλμμ λκΈ°μ΄μ μΆκ°ν©λλ€.
μλμ.
μ΄ μμ²μ νμΈ λ°λͺ¬μμ 보λ λλ€.
λΈλ‘ ID.
λΈλ‘ ν΄μ.
μ΄ IDλ₯Ό κ°μ§ λΈλ‘μ΄ μμΌλ©΄ 0
μ λ°νν©λλ€.
μ΄ μμ²μ BlockCollection λ°λͺ¬μμ 보λ λλ€.
λΈλ‘ ID.
- block_id(4λ°μ΄νΈ)
λ°μ΄ν° ν¬κΈ°λ₯Ό ν¬ν¨ν λΈλ‘ λ°μ΄ν°.
-
data_size(4λ°μ΄νΈ)
-
λΈλ‘ λ°μ΄ν°μ ν¬κΈ°(λ°μ΄νΈ).
-
λ°μ΄ν°(data_size λ°μ΄νΈ)
λΈλ‘ λ°μ΄ν°.
μ΄ IDλ₯Ό κ°μ§ λΈλ‘μ΄ μμΌλ©΄ μ°κ²°μ΄ λ«νλλ€.
μ΄ μμ²μ BlockCollection λ°λͺ¬μμ 보λ λλ€.
μλμ.
λΈλ‘ ID.
- block_id (4λ°μ΄νΈ)