ΠΠ»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ΡΠΎ
ΠΠΎΠ±ΡΡ Π΄Π΅Π½, ΡΠΊΡΠΏΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ, ΠΊΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΠ΅ΡΠ΅Π΄ΠΎΠ², Π°Π· ΡΡΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ Π½Π° IBM, Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° Π²ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ Ρ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° - Hyperledger Fabric. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎ Π½ΠΈΠ²ΠΎ (Enterprise class). ΠΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π΅ Π·Π° Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ·Π½Π°Π½ΠΈΡ ΠΏΠΎ IT ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
Hyperledger Fabric Π΅ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Hyperledger, ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ Π½Π° Linux Foundation. Hyperledger Fabric ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π±Π΅ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ ΠΎΡ Digital Assets ΠΈ IBM. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Hyperledger Fabric Π΅ Π½Π΅ΠΉΠ½ΠΈΡΡ ΡΠΎΠΊΡΡ Π²ΡΡΡ Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π°, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΠΈ ΡΡΡ Π½Π°ΡΠ° Π½ΠΈΡΠΊΠ° ΡΠ΅Π½Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ. Π’Π΅Π·ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π°Ρ ΡΡΠ΅Π· ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ ΠΈ ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΠ΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΎΡΠ³Π°Π½ ΠΈ ΠΎΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ.
ΠΠΎΡΡΠ° ΡΡΠ°ΡΠΈΡ Π΅ ΡΠ°ΡΡ ΠΎΡ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΡΡΠ°ΡΠΈΠΈ Π·Π° Hyperledger Fabric, Π² ΠΊΠΎΡΡΠΎ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ΄Π΅Π½ΡΠΈ, Π²Π»ΠΈΠ·Π°ΡΠΈ Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ.
ΠΠ±ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Hyperledger Fabric
Hyperledger Fabric Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΌΡΠ΅ΠΆΠ°, ΡΡΡΡΠΎΡΡΠ° ΡΠ΅ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΠ·Π»ΠΈ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° Hyperledger Fabric ΡΠ° Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ ΠΎΡ DockerHub. Hyperledger Fabric ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² ΡΡΠ΅Π΄Π° Π½Π° Kubernetes.
ΠΠ° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ (Π²Π΅ΡΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° Hyperledger Fabric), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ Golang (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Hyperledger Fabric Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ). ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, Node.js Π±Π΅ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΡΡΡ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ Hyperledger Fabric SDK.
ΠΡΠ·Π»ΠΈΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° (ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ) β Π²Π΅ΡΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ (Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΡΠ΅ΡΠΎΠ²ΠΎΠ΄Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°) ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°. ΠΡΠ·Π΅Π»ΡΡ Π΅ ΡΠ°ΠΌΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ°, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡ. ΠΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΎ Π΅ ΠΊΠ°ΠΊ ΡΠ° Π³ΡΡΠΏΠΈΡΠ°Π½ΠΈ Π²ΡΠ·Π»ΠΈΡΠ΅ (Π΄ΠΎΠ²Π΅ΡΠ΅Π½ Π΄ΠΎΠΌΠ΅ΠΉΠ½) ΠΈ Ρ ΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ.
ΠΠ±ΡΠ°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
Π€ΠΈΠ³ΡΡΠ° 1. ΠΠ±ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Hyperledger Fabric
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Submitting Client) Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Ρ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΏΡΠ΅Π· ΠΎΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²Π° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΠ°ΡΡΠ½ΡΠΎΡΠΈΡΠ΅ (Π²ΡΠ·Π»ΠΈΡΠ΅) ΠΈΠΌΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΎΠ»ΠΈ:
- Endorsing Peer Π΅ Π²ΡΠ·Π΅Π», ΠΊΠΎΠΉΡΠΎ ΡΠΈΠΌΡΠ»ΠΈΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ (ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ). Π‘Π»Π΅Π΄ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, Π²ΡΠ·Π΅Π»ΡΡ Π²ΡΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΠ²ΠΎΡ ΠΏΠΎΠ΄ΠΏΠΈΡ.
- Π£ΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ»ΡΠ³Π° Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠ·Π΅Π»Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΎΡ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. Π£ΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠ° Π½Π΅ Π΄ΠΎΠ±Π°Π²Ρ Π½ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΡΠ° (ΠΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΎ Π² Committing Peers Π·Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ).
- Committing Peer - Π²ΡΠ·Π΅Π», ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Ρ Π½ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΡΠ° (ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠΎΡΠΌΠΈΡΠ°Π½ΠΈ ΠΎΡ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ). ΠΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠΈ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°. ΠΠ°ΡΡΠ½ΡΠΎΡΡΡ Π·Π° Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½Π΅, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π½ΠΎΠ² Π±Π»ΠΎΠΊ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π±Π»ΠΎΠΊΠ° Π·Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ.
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π·Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ. Π’Π΅Π·ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ Π½Π°Π±ΠΎΡ ΠΎΡ Π²ΡΠ·Π»ΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ·Π½Π°ΡΠ° Π·Π° Π²Π°Π»ΠΈΠ΄Π½Π°.
Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ - Lerger - ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π΅ ΡΠ°ΡΡΠΈ: WolrldState (Π½Π°ΡΠΈΡΠ°Π½Π° ΠΎΡΠ΅ State DataBase) ΠΈ BlockChain.
BlockChain Π΅ Π²Π΅ΡΠΈΠ³Π° ΠΎΡ Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠΎΡΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π½Π°ΡΡΡΠΏΠΈΠ»ΠΈ Π² ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°.
WolrldState Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΠ΅ΠΊΡΡΠΈΡΠ΅ (Π΅ΠΊΡΡΡΠ΅ΠΌΠ½ΠΈ) ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΡΠ°.
WorldState Π΅ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π² ΠΎΡΠ½ΠΎΠ²Π½Π° Π²Π΅ΡΡΠΈΡ - LevelDB ΠΈΠ»ΠΈ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½Π° - CouchDB, ΠΊΠΎΡΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΠΌΠ΅ - ΠΠ²Π°Π½, Π€Π°ΠΌΠΈΠ»ΠΈΡ - ΠΠ²Π°Π½ΠΎΠ², Π΄Π°ΡΠ° Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° - 12.12.21, Π΄Π°ΡΠ° Π½Π° ΡΠ°ΠΆΠ΄Π°Π½Π΅ - 17.12.1961 Π³. ΠΈ Π΄Ρ. WorldState ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° Π΄Π°Π΄Π΅Π½ ΠΊΠ°Π½Π°Π».
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Hyperledger Fabric Π΅ ΠΌΡΠ΅ΠΆΠ°, Π² ΠΊΠΎΡΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ, ΡΡΠΊ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΎΡΠ³Π°Π½ - CA (Certification Authority). CA ΡΠ°Π±ΠΎΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ X.509 ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Ρ ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ - PKI.
Π£ΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΡΠ»Π΅Π½ΡΡΠ²ΠΎ Π΅ ΡΡΠ»ΡΠ³Π°, ΡΡΠ΅Π· ΠΊΠΎΡΡΠΎ ΡΠ»Π΅Π½ΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ Π΄Π°Π»ΠΈ Π΄Π°Π΄Π΅Π½ ΠΎΠ±Π΅ΠΊΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΠΊΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ°Π½Π°Π».
Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ Π΅ Π·Π°ΠΏΠΈΡ Π½Π° Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ½ΠΈΠ³Π°.
ΠΠΌΠ° ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ°Π½Π°Π»ΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°Π²ΡΡΡΠ²Π° ΡΡΡ Π·Π°ΠΏΠΈΡ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°.
ΠΠ°Π½Π°Π» (Channel) Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π° ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ°, ΡΡΡΡΠΎΡΡΠ° ΡΠ΅ ΠΎΡ Π΄Π²Π°ΠΌΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΡΡΠ³ ΠΎΡ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ. ΠΠ°Π½Π°Π»ΡΡ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΡ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅, Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ½ΠΈΠ³Π°, ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ, ΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ, WorldState. ΠΡΠ΅ΠΊΠΈ ΡΠ»Π΅Π½ Π½Π° ΠΊΠ°Π½Π°Π»Π° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠ°Π½Π°Π»Π° ΠΈ Π΄Π° ΠΈΠΌΠ° ΠΏΡΠ°Π²ΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΡΠΎΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΡΠ»Π΅Π½ΡΡΠ²ΠΎ.
Π’ΠΈΠΏΠΈΡΠ΅Π½ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΡΠΈΠΏΠΈΡΠ΅Π½ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ Π½Π°ΡΠΈΡ Π²ΡΡΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΠΌΡΠ΅ΠΆΠ° Hyperledger Fabric, ΠΊΠΎΡΡΠΎ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ΄Π΅Π½ΡΠΈ, Π²Π»ΠΈΠ·Π°ΡΠΈ Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΈ. ΠΠ°ΡΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡ Π½Π° Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ Π ΠΈ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ Π. ΠΡΡΠΊΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΠ°ΡΡΠ½ΡΠΎΡ Π·Π° Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠΈΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ, ΡΡΠ»ΡΠ³Π° Π·Π° ΡΠ»Π΅Π½ΡΡΠ²ΠΎ ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Ρ ΠΎΡΠ³Π°Π½.
1) ΠΠ½ΠΈΡΠΈΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΎ Hyperledger Fabric SDK, ΠΈΠ½ΠΈΡΠΈΠΈΡΠ° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΄ΠΎ Π²ΡΠ·Π»ΠΈ Ρ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ. ΠΠ°ΡΠ²ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ½ΠΈΠ³Π° (Ledger). ΠΠΊΠΎ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π½Π°ΡΠ°ΡΠ° ΡΠ΅ΡΡΠΎΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΡΠ΅ΡΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΡΡΡΠ΄Π΅Π½ΡΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π΄ΠΎ Π²ΡΠ·Π»ΠΈΡΠ΅ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΈ A ΠΈ B, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ. ΠΡΠ·Π΅Π» A Π΅ Π²ΡΠ·Π΅Π», ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° ΠΏΡΠΈΡΡΠΈΠ³Π°Ρ ΡΡΡΠ΄Π΅Π½Ρ, Π° Π²ΡΠ·Π΅Π» B Π΅ Π²ΡΠ·Π΅Π», ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² Π΄ΡΡΠ³ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ. ΠΠ° Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ½ΠΈΠ³Π°, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΏΠΎΡΠ΅Π΄ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ΄ΠΎΠ±ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ ΡΡΡ ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·Π΅Π» A, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Hyperledger Fabric SDK, ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅) ΠΈ ΠΎΡΠΊΡΠΈΠ²Π° ΠΊΡΠΌ ΠΊΠΎΠΈ Π²ΡΠ·Π»ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π’ΠΎΠ²Π° Π΅ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ (ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅) Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ (ΡΡΠ½ΠΊΡΠΈΡ Π·Π° Π²Π΅ΡΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄), Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ°Ρ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡΡ SDK ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠΎΡΠ²Π΅ΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, Π½Π° ΡΠΈΠΉΡΠΎ API ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° ΠΎΠ±Π΅ΠΊΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄ΠΎΠ±Π°Π²Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅Π½ Π±ΡΡΠ΅Ρ ΠΏΡΠ΅Π· gRPC Π΄ΠΎ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ (ΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠΈ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ).
Π‘Π½ΠΈΠΌΠΊΠ° 2. ΠΠ½ΠΈΡΠΈΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ
2) ΠΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ
ΠΡΠ·Π»ΠΈΡΠ΅ (Endorsing Peers), ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π°ΠΊΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΎΠ±Π΅ΠΊΡ Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠΈΠΌΡΠ»Π°ΡΠΈΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ (ΡΡΠ½ΠΊΡΠΈΡ Π½Π° Π²Π΅ΡΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄) Ρ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ Π΅ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΡΠ΄Π΅Π½Ρ, Π½ΠΎΠ² ΡΡΡΠ΄Π΅Π½Ρ Π»ΠΈ Π΅ ΠΈΠ»ΠΈ Π²Π΅ΡΠ΅ Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΡΠ·ΡΠ°ΡΡΡΠ° ΠΈ Ρ.Π½.). ΠΠ° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, ΡΠ΅ Π²ΠΈ ΡΡΡΠ±Π²Π°Ρ ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ WorldState. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΈΠΌΡΠ»Π°ΡΠΈΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ Π½Π° ΠΏΠ°ΡΡΠ½ΡΠΎΡΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π΄Π²Π° Π½Π°Π±ΠΎΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ - Π½Π°Π±ΠΎΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ Π½Π°Π±ΠΎΡ Π·Π° Π·Π°ΠΏΠΈΡ. Read Set ΠΈ Write Set ΡΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΠ΅ ΠΈ Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° WorldState. (Π½ΠΎΠ² - Π² ΡΠΌΠΈΡΡΠ»Π°, ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π· ΡΠΈΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ).
Π‘Π½ΠΈΠΌΠΊΠ° 3. ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ
3) ΠΡΡΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΊΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π‘Π»Π΅Π΄ ΡΠΈΠΌΡΠ»Π°ΡΠΈΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, Endorsing Peers Π²ΡΡΡΠ°Ρ ΠΊΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΡΠΈΠΌΡΠ»Π°ΡΠΈΡΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ RW Set, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΠΎΡ ΡΠ΅Ρ Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π½ΡΠΌΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ° Π½Π° ΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠΈΡ ΠΏΠ°ΡΡΠ½ΡΠΎΡ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΠ°Π²Π½ΡΠ²Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ, ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π²ΡΡΠ½Π°ΡΠΈ (Ρ.Π΅. ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π²ΡΡΡ Ρ ΠΊΠΎΠΈΡΠΎ Π΅ ΡΠΈΠΌΡΠ»ΠΈΡΠ°Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, ΡΠ° Π±ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½ΠΈ). ΠΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π΅ Π±ΠΈΠ»Π° ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΡΠ°, ΡΠΎΠ³Π°Π²Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ Π½Π°Π±ΠΎΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ ΠΏΡΠΈ ΡΠΎΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π·Π°Π²ΡΡΡΠ²Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π±Π΅Π· Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½Ρ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΡΠ°, ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π° Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Hyperledger Fabric Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅ Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ (Comitting Peers) Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΊΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΡΠ°.
Π‘Π½ΠΈΠΌΠΊΠ° 4. ΠΡΡΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΊΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
4) ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° RW ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ ΠΊΡΠΌ ΠΏΠΎΡΡΡΠ²Π°ΡΠΈ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π·Π°Π΅Π΄Π½ΠΎ ΡΡΡ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ Π½Π΅Ρ Π΄Π°Π½Π½ΠΈ ΠΊΡΠΌ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ. Π’ΠΎΠ²Π° Π²ΠΊΠ»ΡΡΠ²Π° RW Set, ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π° ΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠΈ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ ΠΈ ID Π½Π° ΠΊΠ°Π½Π°Π»Π°.
Π£ΡΠ»ΡΠ³Π° Π·Π° ΠΏΠΎΡΡΡΠΊΠ° - ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΈΠΌΠ΅ΡΠΎ, ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ»ΡΠ³Π° Π΅ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ ΡΠ΅Π΄. ΠΠ°ΠΊΡΠΎ ΠΈ ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² Π±Π»ΠΎΠΊ ΠΎΡ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π°ΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π΄ΠΎ Π²ΡΠΈΡΠΊΠΈ Commiting Π²ΡΠ·Π»ΠΈ, ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½ΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ (Committing peers). Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ°ΠΌΠ°ΡΠ° ΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΠΎΡΡΡΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΡΠ΅Π³ΠΈΡΡΡΡΠ° ΠΏΠΎ Π½ΠΈΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½. Π£ΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠ° Π΅ ΠΆΠΈΠ·Π½Π΅Π½ΠΎΠ²Π°ΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²ΡΠ·Π΅Π»Π°. Π£ΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π·Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ, ΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΊΠ°Π½Π°Π», ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π° Π²Ρ ΠΎΠ΄ΡΡΠΈΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ΅Π΄ ΠΈ ΡΠΎΡΠΌΠΈΡΠ° Π½ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΎΡ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΎΡ ΡΡΡ . ΠΠ΄Π½Π° ΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ°Π½Π°Π»Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π£ΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠ»ΡΡΡΠ΅Ρ Kafka, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° (Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π°) ΠΎΠΏΠ°ΡΠΊΠ° Π·Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ (Π²ΠΈΠΆΡΠ΅ ΡΠΎΡΠΊΠ° 7).
Π€ΠΈΠ³ΡΡΠ° 5. ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° RW ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ ΠΊΡΠΌ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°ΡΠΈ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ
5) ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π΄ΠΎ Committing Peer
ΠΠ»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅, ΡΠΎΡΠΌΠΈΡΠ°Π½ΠΈ Π² ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠΈ, ΡΠ΅ ΠΈΠ·Π»ΡΡΠ²Π°Ρ ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²ΡΠ·Π»ΠΈ. ΠΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π», ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½ΠΎΠ² Π±Π»ΠΎΠΊ, Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π·Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠΈ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ (Write Set) Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΈΠΌΡΠ»Π°ΡΠΈΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ°Ρ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ (Ρ.Π΅. - Read Set - Π΄Π°Π½Π½ΠΈ, ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ ΠΎΡ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΠΎΡ WorldState) ΠΎΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. ΠΠΊΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΡΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ° ΠΊΠ°ΡΠΎ Π²Π°Π»ΠΈΠ΄Π½Π°, Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΡΠ°ΡΡΡ Π½Π° Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Π°.
Π€ΠΈΠ³ΡΡΠ° 6. ΠΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΊΡΠΌ Committing Peer
6) ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π±Π»ΠΎΠΊ ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ
ΠΡΠ΅ΠΊΠΈ Π²ΡΠ·Π΅Π» Π΄ΠΎΠ±Π°Π²Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΊΡΠΌ ΡΠ²ΠΎΠ΅ΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΈ Π°ΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π΅ Π²Π°Π»ΠΈΠ΄Π½Π°, ΡΠΎΠ³Π°Π²Π° Write Set ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΡΠΌ WorldState (ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅), ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π½ΠΎΠ²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π±ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³Π½Π°ΡΠΈ ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° . ΠΠΊΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈ ΡΠΎΠΊΠ΅Π½, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π΅ Π²Π°Π»ΠΈΠ΄Π΅Π½ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ°ΡΠ΅ Π΄Π²Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π±Π»ΠΎΠΊ, ΡΠΎΠ³Π°Π²Π° Π΅Π΄Π½Π° ΠΎΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ Π²Π°Π»ΠΈΠ΄Π½Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π²Π΅ΡΠ΅ ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ ΠΎΡ Π΄ΡΡΠ³Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ). Π’Π°Π·ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΡΡΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΡΠΌ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° Ρ Π½Π΅Π²Π°Π»ΠΈΠ΄Π΅Π½ ΠΌΠ°ΡΠΊΠ΅Ρ, Π½ΠΎ Write Set Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΡΠΌ ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° WorldState ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅, ΡΡΠ°ΡΡΠ²Π°ΡΠΈ Π² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠ·Π²Π΅ΡΡΠΈΠ΅ Π΄ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π° Π·Π°Π²ΠΈΠ½Π°Π³ΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, ΡΠΎΠ΅ΡΡ Π΄Π°Π»ΠΈ Π΅ Π²Π°Π»ΠΈΠ΄Π½Π° ΠΈΠ»ΠΈ Π½Π΅ ...
Π‘Π½ΠΈΠΌΠΊΠ° 7. ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π±Π»ΠΎΠΊ ΠΊΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ
ΠΠΠ ΠͺΠ§ΠΠ ΠΠ Π£Π‘ΠΠ£ΠΠ
Π£ΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΊΠ»ΡΡΡΠ΅Ρ Kafka ΡΡΡ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ Π½Π° ZooKeeper ΠΈ Π²ΡΠ·Π»ΠΈ Π·Π° ΡΡΠ»ΡΠ³Π° Π·Π° ΠΏΠΎΡΡΡΠΊΠ° (OSN), ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠ° ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kafka. Kafka cluster Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠΎΡΠΈ (ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ), ΡΡΡΠΎΠΉΡΠΈΠ²Π° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΡΠ΅ΠΊΠΈ ΠΊΠ°Π½Π°Π» (ΡΠ΅ΠΌΠ°) Π² Kafka Π΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Π° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ² Π·Π°ΠΏΠΈΡ (ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ). ΠΠΎ-Π΄ΠΎΠ»Ρ Π΅ Π΄Π°Π΄Π΅Π½Π° ΠΈΠ»ΡΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅ΠΌΠ°ΡΠ°. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ²Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΠΠ°ΡΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°.
Π²Π·Π΅ΡΠΎ ΠΎΡ kafka.apache.org
- Π‘Π½ΠΈΠΌΠΊΠ° 8. Π‘ΡΡΡΠΊΡΡΡΠ° Π½Π° ΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΡΠΊΠ°*
ΠΠΎΠ»Π΅Π·Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ
ΠΡΠΈΠ·Π½Π°Π½ΠΈΡ
ΠΠ·ΠΊΠ°Π·Π²Π°ΠΌ Π΄ΡΠ»Π±ΠΎΠΊΠ°ΡΠ° ΡΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡ Π½Π° ΠΊΠΎΠ»Π΅Π³ΠΈΡΠ΅ Π·Π° ΠΏΠΎΠΌΠΎΡΡΠ° ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°:
ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΠ°ΡΠΈΠ½Π°
ΠΠ³ΠΎΡ Π₯Π°ΠΏΠΎΠ²
ΠΠΌΠΈΡΡΠΈΠΉ ΠΠΎΡΠ±Π°ΡΠΎΠ²
ΠΠ»Π΅ΠΊΡΠ°Π½Π΄ΡΡ ΠΠ΅ΠΌΡΠΎΠ²
ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π° ΠΡΡΠ΅Π²Π°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com