Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΈ ΠΊΠΎΠ»Π΅Π»Π°: ΠžΠΏΠΈΡ‚ с Hyperledger Fabric

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅, работя Π² Π΅ΠΊΠΈΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° DRD KP (Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° наблюдСниС Π½Π° ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° колооситС). Π’ΡƒΠΊ Π±ΠΈΡ… искал Π΄Π° сподСля ΠΎΠΏΠΈΡ‚Π° Π½Π° нашия Π΅ΠΊΠΈΠΏ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π΅Π½ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈ ограничСнията Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅. Π’ ΠΏΠΎ-голямата си част Ρ‰Π΅ говоря Π·Π° Hyperledger Fabric, Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚, описан Ρ‚ΡƒΠΊ, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Скстраполиран към всСки Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½. ΠšΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ†Π΅Π» Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ изслСдванС Π΅ Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠΌ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ Ρ‚Π°ΠΊΡŠΠ² Π½Π°Ρ‡ΠΈΠ½, Ρ‡Π΅ крайният ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π΄Π° Π΅ приятСн Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ Π΄Π° Π½Π΅ Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅ Ρ‚Ρ€ΡƒΠ΄Π΅Π½ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.

Π’ΡƒΠΊ няма Π΄Π° ΠΈΠΌΠ° открития, Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π³ΠΈ нямам). ΠŸΡ€ΠΎΡΡ‚ΠΎ искам Π΄Π° сподСля своя скромСн ΠΎΠΏΠΈΡ‚, Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°, Ρ‡Π΅ β€žΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎβ€œ ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π° Π·Π° ΠΎΠΏΠΈΡ‚Π° Π½Π° някой Π΄Ρ€ΡƒΠ³ във Π²Π·Π΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠ±Ρ€ΠΈ ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π΄ΠΎΠ±Ρ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ: Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡ‚Π΅ Π²Π΅Ρ€ΠΈΠ³ΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚

ДнСс усилията Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ са насочСни към ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Π² наистина ΡƒΠ΄ΠΎΠ±Π½Π° тСхнология, Π° Π½Π΅ Π² Ρ‚ΠΈΠΊΡ‚Π°ΠΊΠ°Ρ‰Π° Π±ΠΎΠΌΠ±Π° със Π·Π°ΠΊΡŠΡΠ½ΠΈΡ‚Π΅Π» Π² красива ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°. Π”ΡŠΡ€ΠΆΠ°Π²Π½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ, оптимистичСн сбор, ΠΏΠ»Π°Π·ΠΌΠ° ΠΈ ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅ Π΄Π° станат ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΈ. Някой Π΄Π΅Π½. Или ΠΌΠΎΠΆΠ΅ Π±ΠΈ TON ΠΎΡ‚Π½ΠΎΠ²ΠΎ Ρ‰Π΅ ΠΎΡ‚Π»ΠΎΠΆΠΈ стартиранСто с ΡˆΠ΅ΡΡ‚ мСсСца ΠΈ слСдващата Plasma Group Ρ‰Π΅ прСстанС Π΄Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°. МоТСм Π΄Π° вярвамС Π² Π΄Ρ€ΡƒΠ³Π° ΠΏΡŠΡ‚Π½Π° ΠΊΠ°Ρ€Ρ‚Π° ΠΈ Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ брилянтни Π±Π΅Π»ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΡ€Π΅Π· Π½ΠΎΡ‰Ρ‚Π°, Π½ΠΎ Ρ‚ΡƒΠΊ ΠΈ сСга трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ с Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅. Π‘Π²ΡŠΡ€ΡˆΠΈ глупоститС.

Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π°, възлоТСна Π½Π° нашия Π΅ΠΊΠΈΠΏ Π² настоящия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π°ΠΉ-ΠΎΠ±Ρ‰ΠΎ Ρ‚Π°ΠΊΠ°: ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ субСкти, достигащи няколко хиляди, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ искат Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅; Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ Π½Π° DLT Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ Π±Π΅Π· спСциални изисквания Π·Π° производитСлност ΠΈ Ρ‰Π΅ осигури потрСбитСлско изТивяванС Π½Π΅ ΠΏΠΎ-лошо ΠΎΡ‚ всички Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ счСтоводни систСми. ВСхнологията Π·Π°Π΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва Π΄Π° свСдС Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ – Π΅Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Π΅ Ρ‚ΡƒΠΊ.

Π›ΠΎΠ·ΡƒΠ½Π³ΠΈ ΠΎΡ‚ Π±Π΅Π»ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΌΠ΅Π΄ΠΈΠΈ Π½ΠΈ ΠΎΠ±Π΅Ρ‰Π°Π²Π°Ρ‚, Ρ‡Π΅ слСдващото Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСкунда. Какво Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅?

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Mainnet Ethereum Ρ€Π°Π±ΠΎΡ‚ΠΈ с ~30 tps. Π‘Π°ΠΌΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ Π΅ подходящ Π·Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΈ Π½ΡƒΠΆΠ΄ΠΈ. Π‘Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ са извСстни Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‰ΠΈ 2000 tps (ΠΊΠ²ΠΎΡ€ΡƒΠΌ) ΠΈΠ»ΠΈ 3000 tps (ΠŸΠ»Π°Ρ‚ Π·Π° Ρ…ΠΈΠΏΠ΅Ρ€Π»ΠΈΠ½Π³Π΅Ρ€, ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π² публикацията, Π½ΠΎ ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΡŠΡ‚ Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ Π½Π° стария консСнсусСн Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»). Π‘Π΅ΡˆΠ΅ ΠΎΠΏΠΈΡ‚ Π·Π° Ρ€Π°Π΄ΠΈΠΊΠ°Π»Π½ΠΎ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Fabric, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΄Π°Π΄Π΅ Π½Π°ΠΉ-Π»ΠΎΡˆΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ, 20000 XNUMX tps, Π½ΠΎ засСга Ρ‚ΠΎΠ²Π° са само Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ‡Π½ΠΈ изслСдвания, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‡Π°ΠΊΠ°Ρ‚ своСто стабилно внСдряванС. Малко вСроятно Π΅ корпорация, която ΠΌΠΎΠΆΠ΅ Π΄Π° си ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚Π΄Π΅Π» ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½, Π΄Π° сС ΠΏΡ€ΠΈΠΌΠΈΡ€ΠΈ с Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π½Π΅ Π΅ само Π² пропускатСлната способност, ΠΈΠΌΠ° ΠΈ забавянС.

латСнтност

ЗабавянСто ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π½Π΅ Π½Π° транзакция Π΄ΠΎ Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½ΠΎ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ ΠΎΡ‚ систСмата зависи Π½Π΅ само ΠΎΡ‚ скоростта Π½Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Π· всички Π΅Ρ‚Π°ΠΏΠΈ Π½Π° Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄Ρ€Π΅ΠΆΠ΄Π°Π½Π΅, Π½ΠΎ ΠΈ ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠ°. Π”ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π½Π°ΡˆΠ°Ρ‚Π° Π±Π»ΠΎΠΊΠΎΠ²Π° Π²Π΅Ρ€ΠΈΠ³Π° Π½ΠΈ позволява Π΄Π° сС Π°Π½Π³Π°ΠΆΠΈΡ€Π°ΠΌΠ΅ с 1000000 10 488 tps, Π½ΠΎ ΠΎΡ‚Π½Π΅ΠΌΠ° XNUMX ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, Π·Π° Π΄Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°ΠΌΠ΅ XNUMXMB Π±Π»ΠΎΠΊ, Ρ‰Π΅ станС Π»ΠΈ ΠΏΠΎ-лСсно Π·Π° нас?

НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° транзакция Π² Hyperledger Fabric, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‚Π½Π΅ΠΌΠ° Π²Ρ€Π΅ΠΌΠ΅ ΠΈ ΠΊΠ°ΠΊ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΈ ΠΊΠΎΠ»Π΅Π»Π°: ΠžΠΏΠΈΡ‚ с Hyperledger Fabric
Π²Π·Π΅Ρ‚ΠΎ ΠΎΡ‚ Ρ‚ΡƒΠΊ: hyperledger-fabric.readthedocs.io/en/release-1.4/arch-deep-dive.html#swimlane

(1) ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° транзакция, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° я Π½Π° одобряващи ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ, послСднитС симулират транзакцията (ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ ΠΎΡ‚ вСриТния ΠΊΠΎΠ΄ към Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Π½ΠΎ Π½Π΅ сС Π°Π½Π³Π°ΠΆΠΈΡ€Π°Ρ‚ с ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ RWSet - ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, вСрсии ΠΈ стойности, Π²Π·Π΅Ρ‚ΠΈ ΠΎΡ‚ колСкцията Π² CouchDB, (2) ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ подписания RWSet ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, (3) ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈΠ»ΠΈ провСрява Π·Π° подписи Π½Π° всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ (ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»ΠΈ) ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° транзакцията към услугата Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° , ΠΈΠ»ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° всС ΠΏΠ°ΠΊ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ ΠΏΠΎ-късно), услугата Π·Π° ΠΏΠΎΡ€ΡŠΡ‡Π²Π°Π½Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π±Π»ΠΎΠΊ ΠΈ ( 4) ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π΄ΠΎ всички ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ, Π° Π½Π΅ само Π΄ΠΎ ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»ΠΈ; ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈΡ‚Π΅ провСряват Π΄Π°Π»ΠΈ вСрсиитС Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ Π² Π½Π°Π±ΠΎΡ€Π° Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ с вСрсиитС Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, подписитС Π½Π° всички ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»ΠΈ ΠΈ накрая Π°Π½Π³Π°ΠΆΠΈΡ€Π°Ρ‚ Π±Π»ΠΎΠΊΠ°.

Но Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ всичко. Π—Π°Π΄ Π΄ΡƒΠΌΠΈΡ‚Π΅ β€žΠΏΠΎΡ€ΡŠΡ‡Π²Π°Ρ‰ΠΈΡΡ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π±Π»ΠΎΠΊβ€œ сС ΠΊΡ€ΠΈΠ΅ Π½Π΅ само ΠΏΠΎΠ΄Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, Π½ΠΎ ΠΈ 3 послСдоватСлни ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ заявки ΠΎΡ‚ Π»ΠΈΠ΄Π΅Ρ€Π° към послСдоватСлитС ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ: Π»ΠΈΠ΄Π΅Ρ€ΡŠΡ‚ добавя ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ към Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π΄ΠΎ послСдоватСлитС, послСдният добавя към тСхния ΠΆΡƒΡ€Π½Π°Π», ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΡƒΡΠΏΠ΅ΡˆΠ½Π° рСпликация Π΄ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π°, Π»ΠΈΠ΄Π΅Ρ€ΡŠΡ‚ Π°Π½Π³Π°ΠΆΠΈΡ€Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° Π°Π½Π³Π°ΠΆΠΈΡ€Π°Π½Π΅ Π½Π° послСдоватСлитС, послСдоватСлитС сС Π°Π½Π³Π°ΠΆΠΈΡ€Π°Ρ‚. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-малък Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Π±Π»ΠΎΠΊΠ° ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-чСсто услугата Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° Ρ‰Π΅ трябва Π΄Π° установява консСнсус. Hyperledger Fabric ΠΈΠΌΠ° Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊ: BatchTimeout - Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊ ΠΈ BatchSize - Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Π±Π»ΠΎΠΊΠ° (броя Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° самия Π±Π»ΠΎΠΊ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Π΅). Π’Π΅Π΄Π½Π°Π³Π° слСд ΠΊΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ достигнС Π»ΠΈΠΌΠΈΡ‚Π°, сС ΠΈΠ·Π΄Π°Π²Π° Π½ΠΎΠ² Π±Π»ΠΎΠΊ. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ възли Π·Π° ΠΏΠΎΠ΄Ρ€Π΅ΠΆΠ΄Π°Π½Π΅, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ Ρ‚ΠΎΠ²Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ трябва Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ BatchTimeout ΠΈ BatchSize. Но Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ RWSets са с вСрсии, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-голям ΠΏΡ€Π°Π²ΠΈΠΌ Π±Π»ΠΎΠΊΠ°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-голяма Π΅ вСроятността ΠΎΡ‚ MVCC ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ. Π’ допълнСниС, с ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° BatchTimeout, UX сС влошава катастрофално. Π‘Ρ‚Ρ€ΡƒΠ²Π° ΠΌΠΈ сС Ρ€Π°Π·ΡƒΠΌΠ½Π° ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π° слСдната схСма Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Как Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ Π·Π° Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠ° ΠΈ Π΄Π° Π½Π΅ Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅ прСдстава Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° транзакцията

ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-дълго Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Π±Π»ΠΎΠΊΠ°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-висока Π΅ производитСлността Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°. Π•Π΄Π½ΠΎΡ‚ΠΎ Π½Π΅ слСдва Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, Π½ΠΎ трябва Π΄Π° сС ΠΏΠΎΠΌΠ½ΠΈ, Ρ‡Π΅ установяванСто Π½Π° консСнсус Π² RAFT изисква Ρ‚Ρ€ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ заявки ΠΎΡ‚ Π»ΠΈΠ΄Π΅Ρ€Π° към послСдоватСлитС ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ възли Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-малък Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊ, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ са Ρ‚Π°ΠΊΠΈΠ²Π° взаимодСйствия. Как Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π±Π»ΠΎΠΊΠ°, Π±Π΅Π· Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° рСакция Π½Π° систСмата Π·Π° крайния ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»?

ΠŸΡŠΡ€Π²ΠΎ, трябва ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ MVCC ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ голСмия Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Π±Π»ΠΎΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ RWSets със ΡΡŠΡ‰Π°Ρ‚Π° вСрсия. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΈ ΠΈΠΌΠ°ΠΌ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄) MVCC ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½Π° услуга, ΠΈΠ»ΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ Π½Π°Π΄ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Ρ‰ΠΎ транзакция, с Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ ΠΎΠΏΠΈΡ‚.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΈΡΡ‚ ΠΎΠΏΠΈΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ с СкспонСнциална стратСгия, Π½ΠΎ Ρ‚ΠΎΠ³Π°Π²Π° латСнтността ΡΡŠΡ‰ΠΎ Ρ‰Π΅ Π½Π°ΠΌΠ°Π»Π΅Π΅ СкспонСнциално. Π’Π°ΠΊΠ° Ρ‡Π΅ трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ ΠΎΠΏΠΈΡ‚ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π³Ρ€Π°Π½ΠΈΡ†ΠΈ, ΠΈΠ»ΠΈ постоянСн. Π‘ ΠΎΠ³Π»Π΅Π΄ Π½Π° Π΅Π²Π΅Π½Ρ‚ΡƒΠ°Π»Π½ΠΈ ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ Π² ΠΏΡŠΡ€Π²ΠΈΡ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ взаимодСйствиСто Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° със систСмата асинхронно, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° Π½Π΅ Ρ‡Π°ΠΊΠ° 15, 30 ΠΈΠ»ΠΈ 10000000 XNUMX XNUMX сСкунди, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΊΠ°Ρ‚ΠΎ BatchTimeout. Но Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π·Π°ΠΏΠ°Π·ΠΈ способността Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ транзакцията, са записани / Π½Π΅ са записани Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°.
МоТС Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅. Най-лСсният Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ CouchDB ΠΏΠΎΡ€Π°Π΄ΠΈ лСсната ΠΌΡƒ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°: Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ° потрСбитСлски интСрфСйс ΠΎΡ‚ кутията, REST API ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ лСсно Π΄Π° настроитС рСпликация ΠΈ ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³ Π·Π° нСя. ΠœΠΎΠΆΠ΅Ρ‚Π΅ просто Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΎΡ‚Π΄Π΅Π»Π½Π° колСкция Π² ΡΡŠΡ‰ΠΈΡ СкзСмпляр Π½Π° CouchDB, ΠΊΠΎΠΉΡ‚ΠΎ Fabric ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° свСтовното си ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Врябва Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Π²ΠΈΠ΄.

{
 Status string // Бтатус Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ: "pending", "done", "failed"
 TxID: string // ID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ
 Error: string // optional, сообщСниС ΠΎΠ± ошибкС
}

Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ сС записва Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΠΏΡ€Π΅Π΄ΠΈ транзакцията Π΄Π° бъдС ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½Π° Π΄ΠΎ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° сС Π²Ρ€ΡŠΡ‰Π° Π½Π° потрСбитСля (ΡΡŠΡ‰ΠΈΡΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡), Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π΅ опСрация Π·Π° създаванС, Π° слСд Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° Бтатус, TxID ΠΈ Π“Ρ€Π΅ΡˆΠΊΠ° са Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° сС ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° подходяща информация ΠΎΡ‚ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΈ ΠΊΠΎΠ»Π΅Π»Π°: ΠžΠΏΠΈΡ‚ с Hyperledger Fabric

ΠŸΡ€ΠΈ Ρ‚Π°Π·ΠΈ схСма потрСбитСлят Π½Π΅ Ρ‡Π°ΠΊΠ° Π±Π»ΠΎΠΊΡŠΡ‚ Π΄Π° сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π½Π°ΠΉ-накрая, Π³Π»Π΅Π΄Π°ΠΉΠΊΠΈ Π²ΡŠΡ€Ρ‚ΡΡ‰ΠΎΡ‚ΠΎ сС ΠΊΠΎΠ»Π΅Π»ΠΎ Π½Π° Π΅ΠΊΡ€Π°Π½Π° Π·Π° 10 сСкунди, Ρ‚ΠΎΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π½Π΅Π·Π°Π±Π°Π²Π΅Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΎΡ‚ систСмата ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ.

Π˜Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ BoltDB Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° статуси Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ трябва Π΄Π° спСстим ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π½Π΅ искамС Π΄Π° Π³ΡƒΠ±ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ взаимодСйствиС със самостоятСлСн ΡΡŠΡ€Π²ΡŠΡ€ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, особСно ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° взаимодСйствиС сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ тСкст. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, нСзависимо Π΄Π°Π»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ CouchDB Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° схСмата, описана ΠΏΠΎ-Π³ΠΎΡ€Π΅, ΠΈΠ»ΠΈ просто Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° свСта, във всСки случай ΠΈΠΌΠ° смисъл Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² CouchDB. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² CouchDB Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ Π½Π° b-Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ Π΅ 1279 Π±Π°ΠΉΡ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° сСктора Π½Π° диска, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ, Ρ‚Π°ΠΊΠ° ΠΈ рСбалансиранСто Π½Π° Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ Ρ‰Π΅ изискват ΠΏΠΎΠ²Π΅Ρ‡Π΅ физичСски Π΄ΠΎΡΡ‚ΡŠΠΏΠΈ Π΄ΠΎ диска. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈΡΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ отговаря Π½Π° стандарта Π Π°Π·ΡˆΠΈΡ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ Π΅ 4 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°. Π—Π° оптимизация трябва Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° btree_chunk_size Ρ€Π°Π²Π½ΠΎ Π½Π° 4096 Π² конфигурационния Ρ„Π°ΠΉΠ» Π½Π° CouchDB. Π—Π° BoltDB Ρ‚Π°ΠΊΠ°Π²Π° Ρ€ΡŠΡ‡Π½Π° намСса Π½Π΅ сС изисква.

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎ наляганС: Π±ΡƒΡ„Π΅Ρ€Π½Π° стратСгия

Но ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ. ΠŸΠΎΠ²Π΅Ρ‡Π΅, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ систСмата ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΅ΠΌΠ΅, сподСлянС Π½Π° рСсурси с Π΄ΡƒΠ·ΠΈΠ½Π° Π΄Ρ€ΡƒΠ³ΠΈ услуги освСн Ρ‚Π΅Π·ΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° - ΠΈ всичко Ρ‚ΠΎΠ²Π° трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π½ΠΎ Π΄ΠΎΡ€ΠΈ Π½Π° машини, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Intellij Idea Π±ΠΈ Π±ΠΈΠ»Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ досадна.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Π°Ρ‚Π° производитСлност Π½Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ систСми, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π» ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», сС Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ. Π”Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ.

ΠΎΡ‚ΠΏΠ°Π΄Π°Π½Π΅Ρ‚ΠΎ: ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ‚Π²ΡŠΡ€Π΄ΠΈΠΌ, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ X Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π·Π° T сСкунди. Всички заявки, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°Π΄Π²ΠΈΡˆΠ°Π²Π°Ρ‚ Ρ‚ΠΎΠ·ΠΈ Π»ΠΈΠΌΠΈΡ‚, сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚. Доста Π΅ просто, Π½ΠΎ Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π±Ρ€Π°Π²ΠΈΡ‚Π΅ Π·Π° UX.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π΅: потрСбитСлят трябва Π΄Π° ΠΈΠΌΠ° някакъв интСрфСйс, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Π² зависимост ΠΎΡ‚ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° tps Π½Π° производитСля. НС Π΅ лошо, Π½ΠΎ Π½Π°Π»Π°Π³Π° задълТСниС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π΄Π° внСдрят Ρ‚ΠΎΠ·ΠΈ интСрфСйс. Π—Π° нас Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Ρ‰Π΅ бъдС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ Π² голям Π±Ρ€ΠΎΠΉ ΠΎΡ‚Π΄Π°Π²Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ систСми.

Π±ΡƒΡ„Π΅Ρ€ΠΈΡ€Π°Π½Π΅: вмСсто Π΄Π° сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° сС ΡΡŠΠΏΡ€ΠΎΡ‚ΠΈΠ²Π»ΡΠ²Π°ΠΌΠ΅ Π½Π° входния ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π±ΡƒΡ„Π΅Ρ€ΠΈΡ€Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ Π΄Π° Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° скорост. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π°ΠΊΠΎ искамС Π΄Π° осигурим Π΄ΠΎΠ±Ρ€ΠΎ потрСбитСлско изТивяванС. НиС Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ Π±ΡƒΡ„Π΅Ρ€Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ опашка Π² RabbitMQ.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€ Π·Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΈ ΠΊΠΎΠ»Π΅Π»Π°: ΠžΠΏΠΈΡ‚ с Hyperledger Fabric

Π”Π²Π΅ Π½ΠΎΠ²ΠΈ дСйствия са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към схСмата: (1) слСд ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° API заявка, ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ сС поставя Π½Π° опашка с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° транзакцията, ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, Ρ‡Π΅ транзакцията Π΅ ΠΏΡ€ΠΈΠ΅Ρ‚Π° ΠΎΡ‚ систСмата, ( 2) Π±Π΅ΠΊΠ΅Π½Π΄ΡŠΡ‚ Ρ‡Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° със скорост, посочСна Π² конфигурацията; ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π° транзакция ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ.
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ Π΄Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚Π΅ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚Π° ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ искатС, ΠΊΠ°Ρ‚ΠΎ скриСтС Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΡΡ‚Π° ΠΎΡ‚ потрСбитСля.

Π”Ρ€ΡƒΠ³ΠΈ инструмСнти

Π’ΡƒΠΊ Π½Π΅ бСшС ΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΡ‰ΠΎ Π·Π° вСриТния ΠΊΠΎΠ΄, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π² Π½Π΅Π³ΠΎ няма ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°. ВСриТният ΠΊΠΎΠ΄ трябва Π΄Π° бъдС възмоТно Π½Π°ΠΉ-прост ΠΈ сигурСн - Ρ‚ΠΎΠ²Π° Π΅ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ сС изисква ΠΎΡ‚ Π½Π΅Π³ΠΎ. Π Π°ΠΌΠΊΠ°Ρ‚Π° Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π° пишСм Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄ просто ΠΈ бСзопасно. CSKit ΠΎΡ‚ S7 Techlab ΠΈ статичСн Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ съТивявам^CC.

Π’ допълнСниС, Π½Π°ΡˆΠΈΡΡ‚ Π΅ΠΊΠΈΠΏ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Fabric проста ΠΈ приятна: Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ изслСдоватСл, ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° (добавянС/ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, RAFT възли), ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Π°Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° сСртификат ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° самоличност. Ако искатС Π΄Π° допринСсСтС, Π΄ΠΎΠ±Ρ€Π΅ дошли.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ улСснява замяната Π½Π° Hyperledger Fabric с Quorum, Π΄Ρ€ΡƒΠ³ΠΈ частни Ethereum ΠΌΡ€Π΅ΠΆΠΈ (PoA ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ PoW), Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява Ρ€Π΅Π°Π»Π½Π°Ρ‚Π° пропускатСлна способност, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ UX (ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, Ρ‚Π°ΠΊΠ° ΠΈ ΠΎΡ‚ страна Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ систСми ). ΠšΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Fabric с Ethereum Π² схСмата, само Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° услугата Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ ΠΎΠΏΠΈΡ‚/Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π° Ρ‰Π΅ трябва Π΄Π° бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° MVCC ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ към Π°Ρ‚ΠΎΠΌΠ½ΠΎ nonce ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅. Π‘ΡƒΡ„Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…Π° възмоТно отдСлянСто Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° рСакция ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ хиляди възли Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° ΠΈ Π΄Π° Π½Π΅ сС страхуватС, Ρ‡Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Ρ‚ Ρ‚Π²ΡŠΡ€Π΄Π΅ чСсто ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚ услугата Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°.

ΠžΠ±Ρ‰ΠΎ Π²Π·Π΅Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ исках Π΄Π° сподСля. Π©Π΅ сС Ρ€Π°Π΄Π²Π°ΠΌ, Π°ΠΊΠΎ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° някого Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΌΡƒ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€