Block life - planetarium/libplanet GitHub Wiki
μ΄ νμ΄μ§μμλ λΈλ‘μ΄ λ§λ€μ΄μ§λ κ³Όμ κ³Ό, μ νλλ κ³Όμ μ λνμ¬ μ€λͺ ν©λλ€.
νΈλμμ μ μμ§
- κ° λΈλ‘μ²΄μΈ λ Έλλ€μ StageTransactionμ ν΅νμ¬ νΈλμμ μ λ©€νμ μ€ν μ΄μ§ν©λλ€.
- κ° λΈλ‘μ²΄μΈ λ Έλλ€μ λ©€νμ μ€ν μ΄μ§λ νΈλμμ λ€μ μμ΄λλ₯Ό Swarmμ BroadcastTxAsyncμ ν΅νμ¬ μ νν©λλ€. μ΄ν ν΄λΉ λ§ν¬μ λ°©μμΌλ‘ νΌμ΄λ€μ νμν νΈλμμ μ μμ²νκ³ , κ°μ Έκ°λλ€.
- μ΄λ₯Ό ν΅νμ¬ κ° λ Έλλ€μ κ°λ³ μμ§λ νΈλμμ λ€μ΄ λκΈ°νλ©λλ€.
λΈλ‘μ μμ± λ° ν©μ
λΈλ‘μ μμ±
- ν©μμ λμ΄μ λΌμ΄λκ° μ ν΄μ§λ©΄, 밸리λ°μ΄ν°λ€ μ€ νλκ° νλ‘ν¬μ λ‘ μ μ λ©λλ€(νμ¬λ λΌμ΄λλ‘λΉ λ°©μμ λλ€).
- νλ‘ν¬μ λ μ μ λλ©΄, μκΈ°κ° κ°μ§κ³ μλ νΈλμμ λ° λΈλ‘ μμ±μ μν μ 보λ€μ ν λλ‘ λΈλ‘μ μμ±ν©λλ€.(ConsensusReactor μ€λͺ νμ΄μ§μ λ§μ§λ§ λ¨μ μ€λͺ μ΄ μμ΅λλ€)
- νλ‘ν¬μ λ μμ±ν λΈλ‘μ 밸리λ°μ΄ν°λ€ μ¬μ΄μ λΈλ‘λμΊμ€νΈ ν©λλ€. λ§ν¬
λΈλ‘μ ν©μ
- λ§ν¬μ μκ³ λ¦¬μ¦μ λ°λΌ λΈλ‘μ΄ ν©μλ©λλ€.
- ν©μκ° μλ£λμ΄, EndCommitλ¨κ³μ μ΄λ₯΄λ©΄, 밸리λ°μ΄ν°λ λΈλ‘μ Append ν©λλ€.
- Appendλ λΈλ‘μ ν©μκ° μλ£λ λΈλ‘μ΄κΈ° λλ¬Έμ, νμ λ λΈλ‘μΌλ‘ μΌλ° λ Έλλ‘ μ νκ° κ°λ₯ν΄μ§ μνμ λλ€.
λΈλ‘μ μ ν
- μ΄μ 밸리λ°μ΄ν°λ€μ μμμ ν©μλ, μΌλ° λ Έλλ€μ΄ κ°μ§κ³ μμ§ μμ μ΅μ λΈλ‘μ κ°μ§κ³ μμ΅λλ€.
- 밸리λ°μ΄ν°λ€μ νμ΄ λ§ λ³ννκΈ° λλ¬Έμ, TipChanged μ΄λ²€νΈ νΈλ€λ¬λ₯Ό ν΅νμ¬ λΈλ‘ ν€λλ₯Ό λΈλ‘λμΊμ€νΈν©λλ€. μ΄νμλ μλ‘ λ§λ€μ΄μ§ λΈλ‘μ BroadcastBlockAsyncλ₯Ό ν΅νμ¬ μ§μμ μΌλ‘ ν€λκ° μ νλ©λλ€.
- κ° λΈλ‘μ²΄μΈ λ Έλλ€μ μ΅μ λΈλ‘ ν€λλ₯Ό λ°κ³ , μκΈ°κ° μλ λΈλ‘μΌ κ²½μ° FillBlocksAsyncλ₯Ό ν΅νμ¬ λΈλ‘μ λ°μμ΅λλ€.
- κ° λΈλ‘μ²΄μΈ λ Έλλ€μ ConsumeBlockCandidatesλ₯Ό ν΅νμ¬ λ°μμ¨ λΈλ‘μ λΆμ λλ€.
- μ κ³Όμ μ ν΅νμ¬ μλ‘κ² μμ±λ λΈλ‘μ΄ μ²΄μΈμ κ° λ Έλλ€μ μ±ν¬λμμ΅λλ€.