Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

ΠžΡ‡ΠΈΡ‚Π΅ сС страхуват, Π° Ρ€ΡŠΡ†Π΅Ρ‚Π΅ ΡΡŠΡ€Π±ΡΡ‚!

Π’ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ статии сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ…ΠΌΠ΅ с Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅, Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠΈΡ‚ΠΎ са ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΈΡ‚Π΅ (Какво трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½?) ΠΈ случаи, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ с тяхна ΠΏΠΎΠΌΠΎΡ‰ (Какво Π½ΠΈ струва ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° случай?). Π’Ρ€Π΅ΠΌΠ΅ Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с Ρ€ΡŠΡ†Π΅Ρ‚Π΅ си! Π—Π° внСдряванСто Π½Π° ΠΏΠΈΠ»ΠΎΡ‚ΠΈ ΠΈ PoC (Proof of Concept) ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΠΎΠ±Π»Π°Ρ†ΠΈ, Ρ‚.ΠΊ. Ρ‚Π΅ ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΎΡ‚ всяка Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° свСта ΠΈ чСсто Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° отдСлятС Π²Ρ€Π΅ΠΌΠ΅ Π·Π° досадното инсталиранС Π½Π° срСдата, Ρ‚.ΠΊ. Има ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠ° Ρ‡Π΅, Π½Π΅ΠΊΠ° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ просто, ΠΊΠ°Ρ‚ΠΎ ΠΌΡ€Π΅ΠΆΠ° Π·Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ участницитС ΠΈ Π³ΠΎ Π½Π°Ρ€Π΅Ρ‡Π΅ΠΌ скромно Citcoin. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° IBM ΠΈ унивСрсалната Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Hyperledger Fabric. ΠŸΡŠΡ€Π²ΠΎ, Π½Π΅ΠΊΠ° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π·Π°Ρ‰ΠΎ Hyperledger Fabric сС Π½Π°Ρ€ΠΈΡ‡Π° унивСрсалСн Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½?

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Hyperledger Fabric - УнивСрсалСн Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½

Най-ΠΎΠ±Ρ‰ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, унивСрсалната ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Π° систСма Π΅:

  • Набор ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈ софтуСрно ядро, ΠΊΠΎΠ΅Ρ‚ΠΎ изпълнява бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°;
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠΈ Π·Π° взаимодСйствиС със систСмата;
  • БрСдства Π·Π° рСгистрация, автСнтификация ΠΈ авторизация Π½Π° устройства/Ρ…ΠΎΡ€Π°;
  • Π‘Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‰Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° вСрсия Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ прСдставлява Hyperledger Fabric ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Π½Π° уСбсайт, ΠΈ Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Hyperledger Fabric Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, която Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅ частни Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΈ ΠΈ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ, написани Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ JS ΠΈ Go. НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΎΡ‚Π±Π»ΠΈΠ·ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Hyperledger Fabric ΠΈ Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ унивСрсална систСма, която ΠΈΠΌΠ° само спСцифики Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ запис Π½Π° Π΄Π°Π½Π½ΠΈ. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚Π° сС ΡΡŠΡΡ‚ΠΎΠΈ Π² Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ във всички Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΈ, сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ сС поставят Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° само Π°ΠΊΠΎ участницитС са постигнали консСнсус ΠΈ слСд записванСто Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ‚ΠΈΡ…ΠΎ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ΠΈ.

АрхитСктура Π½Π° Hyperledger Fabric

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Hyperledger Fabric:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ - ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π²Ρ€ΡŠΡΡ‚Π½ΠΈΡ†ΠΈ, Ρ‚.Π½ blockchain ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ°Ρ‚Π° Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅. Π Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ част ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ ΠΊΠ°Π½Π°Π».

Канал - логичСска структура, която обСдинява Π²Ρ€ΡŠΡΡ‚Π½ΠΈΡ†ΠΈΡ‚Π΅ Π² Π³Ρ€ΡƒΠΏΠΈ, ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½. Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½. Hyperledger Fabric ΠΌΠΎΠΆΠ΅ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° мноТСство Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°.

Доставчик Π½Π° услуги Π·Π° члСнство (MSP) Π΅ CA (Certificate Authority) Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° самоличност ΠΈ присвояванС Π½Π° Ρ€ΠΎΠ»ΠΈ. Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ възСл, трябва Π΄Π° взаимодСйстватС с MSP.

ΠŸΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠΈ възли β€” провСрявайтС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΉΡ‚Π΅ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°ΠΉΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ ΠΈ взаимодСйствайтС с прилоТСния. ΠŸΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ самоличност (Ρ†ΠΈΡ„Ρ€ΠΎΠ² сСртификат), ΠΈΠ·Π΄Π°Π΄Π΅Π½Π° ΠΎΡ‚ MSP. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Bitcoin ΠΈΠ»ΠΈ Etherium, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ всички възли са Ρ€Π°Π²Π½ΠΈ, Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ играят Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€ΠΎΠ»ΠΈ Π² Hyperledger Fabric:

  • Peer ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС одобряващ Π²Ρ€ΡŠΡΡ‚Π½ΠΈΠΊ (EP) ΠΈ изпълнява ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ.
  • АнгаТиращ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ (CP) - Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ само Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° "Π‘Π²Π΅Ρ‚ΠΎΠ²Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅".
  • Anchor Peer (AP) - Π°ΠΊΠΎ няколко ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ участват Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°, Ρ‚ΠΎΠ³Π°Π²Π° Π·Π° комуникация ΠΌΠ΅ΠΆΠ΄Ρƒ тях сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π°Π½ΠΊΠ΅Ρ€Π½ΠΈ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ. Всяка организация трябва Π΄Π° ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²ΠΎΠ΄Π΅Ρ‰ΠΈ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° AP всСки ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ Π² Π΅Π΄Π½Π° организация ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈ информация Π·Π° всички ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Използва сС Π·Π° синхронизиранС Π½Π° информация ΠΌΠ΅ΠΆΠ΄Ρƒ AP. ΠΊΠ»ΡŽΠΊΠ°Ρ€ΡΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ».
  • Π›ΠΈΠ΄Π΅Ρ€ Peer - Π°ΠΊΠΎ организацията ΠΈΠΌΠ° няколко ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° само Π»ΠΈΠ΄Π΅Ρ€ΡŠΡ‚ Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€Π° Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΎΡ‚ услугата Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° ΠΈ Ρ‰Π΅ Π³ΠΈ Π΄Π°Π²Π° Π½Π° останалитС ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ. Π›ΠΈΠ΄Π΅Ρ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½ статично ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΈΠ·Π±Ρ€Π°Π½ ΠΎΡ‚ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ Π² организацията. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŠΡ‚ Π·Π° клюки ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° синхронизиранС Π½Π° информацията Π·Π° Π»ΠΈΠ΄Π΅Ρ€Π°.

Актив β€” стойностни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°. По-ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ, Ρ‚ΠΎΠ²Π° са Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠ»ΡŽΡ‡-стойност във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON. ИмСнно Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ сС записват Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Blockchain. Π’Π΅ ΠΈΠΌΠ°Ρ‚ история, която сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°, ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ β€žΠ‘Π²Π΅Ρ‚ΠΎΠ²Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅β€œ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ‚Π΅ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ сС ΠΏΠΎΠΏΡŠΠ»Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ Π² зависимост ΠΎΡ‚ бизнСс Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅. Няма Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°, СдинствСната ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠ° Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ Π΄Π° ΠΈΠΌΠ°Ρ‚ собствСник ΠΈ Π΄Π° ΠΈΠΌΠ°Ρ‚ стойност.

Π½Π°Π΄Π³Ρ€ΠΎΠ±Π½Π° ΠΏΠ»ΠΎΡ‡Π° - ΡΡŠΡΡ‚ΠΎΠΈ сС ΠΎΡ‚ Π±Π»ΠΎΠΊΠΎΠ²Π°Ρ‚Π° Π²Π΅Ρ€ΠΈΠ³Π° Blockchain ΠΈ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Word, която ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅. Π‘Π²Π΅Ρ‚ΠΎΠ²Π½Π°Ρ‚Π° Π΄ΡŠΡ€ΠΆΠ°Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° LevelDB ΠΈΠ»ΠΈ CouchDB.

Π˜Π½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ β€” с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° систСмата. Π’ Hyperledger Fabric ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ сС Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ ​​вСриТСн ΠΊΠΎΠ΄. Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄ сС уточняват Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π²ΡŠΡ€Ρ…Ρƒ тях. На тСхничСски Π΅Π·ΠΈΠΊ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ са софтуСрни ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ Π² JS ΠΈΠ»ΠΈ Go ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ.

ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ - Π·Π° всСки Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ ΠΈ ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ трябва Π΄Π° ΠΎΡ‡Π°ΠΊΠ²Π°Ρ‚Π΅ ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΡ Π·Π° транзакцията. Ако ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΡ‚ΠΎ Π½Π΅ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ, Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅: β€žΡ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡΡ‚Π° трябва Π΄Π° бъдС ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½Π° ΠΎΡ‚ всСки Ρ‡Π»Π΅Π½ Π½Π° всяка организация Π² ΠΊΠ°Π½Π°Π»Π°β€œ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°:

  • Вранзакцията трябва Π΄Π° бъдС ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½Π° ΠΎΡ‚ всСки администратор Π½Π° организацията;
  • Врябва Π΄Π° бъдС ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΎ ΠΎΡ‚ всСки Ρ‡Π»Π΅Π½ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π° организацията;
  • Врябва Π΄Π° ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈ всСки ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ Π½Π° организацията.

Услуга Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° - ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ€Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ Π² ΠΊΠ°Π½Π°Π»Π°. ΠžΡΠΈΠ³ΡƒΡ€ΡΠ²Π° доставка Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π΄ΠΎ всички ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Използва сС Π·Π° индустриални систСми Π‘Ρ€ΠΎΠΊΠ΅Ρ€ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Kafka, Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ тСстванС само.

ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ взаимодСйства с Hyperledger Fabric с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Go, Node.js ΠΈΠ»ΠΈ Java SDK;
  • ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ създава транзакция tx ΠΈ я ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π½Π° одобряващи ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ;
  • ΠŸΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡŠΡ‚ провСрява подписа Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° транзакцията ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° подписа Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ВСриТният ΠΊΠΎΠ΄ сС изпълнява само Π½Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π°Π²Π°Ρ‰ΠΈΡ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ изпълнСниС сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π½Π° всички ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ. Вакъв Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° сС Π½Π°Ρ€ΠΈΡ‡Π° - PBFT (Practical Byzantine Fault Tolerant) консСнсус. Π Π°Π·Π»ΠΈΡ‡Π°Π²Π° сС ΠΎΡ‚ класичСски BFT Ρ„Π°ΠΊΡ‚ΡŠΡ‚, Ρ‡Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΎ ΠΈ сС ΠΎΡ‡Π°ΠΊΠ²Π° ΠΏΠΎΡ‚Π²ΡŠΡ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΡ‚ всички участници, Π° само ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ€;
  • Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ броя ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅, Ρ‚ΠΎΠΉ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° транзакцията към услугата Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠΈ;
  • Услугата Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π±Π»ΠΎΠΊ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π΄ΠΎ всички Π°Π½Π³Π°ΠΆΠΈΡ€Π°Ρ‰ΠΈ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ. Услугата Ordering Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ сС записват послСдоватСлно, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° Ρ‚.Π½Π°Ρ€.Π²ΠΈΠΆ Ρ€Π°Π·Π΄Π΅Π» "Π’ΠΈΠ»ΠΈΡ†ΠΈ");
  • ΠŸΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π±Π»ΠΎΠΊΠ°, провСряват ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅, записват Π±Π»ΠΎΠΊΠ° Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° ΠΈ промСнят ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ β€žΠ‘Π²Π΅Ρ‚ΠΎΠ²Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅β€œ.

Π’Π΅Π·ΠΈ. сС ΠΎΠΊΠ°Π·Π²Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ€ΠΎΠ»ΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΡŠΠ·Π»ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° мащабируСмостта ΠΈ сигурността Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°:

  • Π˜Π½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ (Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄) ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ. Π’ΠΎΠ²Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° повСритСлността Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ, Ρ‚.ΠΊ Π½Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΎΡ‚ всички участници, Π° само ΠΎΡ‚ одобряващи ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ.
  • ΠŸΠΎΡ€ΡŠΡ‡ΠΊΠ°Ρ‚Π° трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±ΡŠΡ€Π·ΠΎ. Π’ΠΎΠ²Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° ΠΎΡ‚ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Ordering само Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π±Π»ΠΎΠΊ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π΄ΠΎ фиксиран Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π²ΠΎΠ΄Π΅Ρ‰ΠΈ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ.
  • ΠžΠ±Π²ΡŠΡ€Π·Π²Π°Ρ‰ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ само Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° - ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ тях ΠΈ Π½Π΅ изискват ΠΌΠ½ΠΎΠ³ΠΎ СнСргия ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°.

ΠŸΠΎΠ²Π΅Ρ‡Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Hyperledger Fabric ΠΈ Π·Π°Ρ‰ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, Π° Π½Π΅ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ: ΠŸΡ€ΠΎΠΈΠ·Ρ…ΠΎΠ΄ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΈΠ»ΠΈ Ρ‚ΡƒΠΊ: Hyperledger Fabric: Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма Π·Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΈ.

И Ρ‚Π°ΠΊΠ°, Hyperledger Fabric Π΅ наистина унивСрсална систСма, с която ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

  • Π’Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π½Π° интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€;
  • ΠŸΠΈΡˆΠ΅Ρ‚Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON;
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΠ½Π΅ ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° API Π΄ΠΎΡΡ‚ΡŠΠΏ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° сСртифициращ ΠΎΡ€Π³Π°Π½.

Π‘Π΅Π³Π°, слСд ΠΊΠ°Ρ‚ΠΎ сС ΠΎΡ‚ΡŠΡ€ΡΠΈΡ…ΠΌΠ΅ ΠΎΡ‚ спСцификата Π½Π° Hyperledger Fabric, Π½Π΅ΠΊΠ° Π½Π°ΠΉ-накрая Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ!

ВнСдряванС Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ изявлСниС

Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΅ Π΄Π° сС Π²Π½Π΅Π΄Ρ€ΠΈ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Citcoin със слСднитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: създаванС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° баланс, попълванС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚, ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π² Π΄Ρ€ΡƒΠ³. НСка Π½Π°Ρ‡Π΅Ρ€Ρ‚Π°Π΅ΠΌ ΠΎΠ±Π΅ΠΊΡ‚Π΅Π½ ΠΌΠΎΠ΄Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Ρ‰Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΠΌ Π² ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€. И Ρ‚Π°ΠΊΠ°, Ρ‰Π΅ ΠΈΠΌΠ°ΠΌΠ΅ смСтки, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ с ΠΈΠΌΠ΅Π½Π° (ΠΈΠΌΠ΅) ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ баланс (салдо) ΠΈ списък със смСтки. Π‘ΠΌΠ΅Ρ‚ΠΊΠΈΡ‚Π΅ ΠΈ ΡΠΏΠΈΡΡŠΠΊΡŠΡ‚ с Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ са ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° Hyperledger Fabric. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ Ρ‚Π΅ ΠΈΠΌΠ°Ρ‚ история ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Π©Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° Π³ΠΎ нарисувам Π²ΠΈΠ·ΡƒΠ°Π»Π½ΠΎ:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Най-Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ Ρ†ΠΈΡ„Ρ€ΠΈ са Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ "Π‘Π²Π΅Ρ‚ΠΎΠ²Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅". Под тях ΠΈΠΌΠ° Ρ„ΠΈΠ³ΡƒΡ€ΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‰ΠΈ историята, която сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°. Π’Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ сС промСня ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ΠΠΊΡ‚ΠΈΠ²ΡŠΡ‚ сС промСня само Π² своята цялост, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° транзакцията сС създава Π½ΠΎΠ² ΠΎΠ±Π΅ΠΊΡ‚ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° стойност Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π° ΠΎΡ‚ΠΈΠ²Π° Π² историята.

IBM ΠΎΠ±Π»Π°ΠΊ

НиС създавамС Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π² IBM ΠΎΠ±Π»Π°ΠΊ. Π—Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, тя трябва Π΄Π° бъдС надстроСна Π΄ΠΎ Pay-As-You-Go. Π’ΠΎΠ·ΠΈ процСс ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ Π±ΡŠΡ€Π·, Ρ‚.ΠΊ IBM изисква Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° информация ΠΈ я провСрява Ρ€ΡŠΡ‡Π½ΠΎ. ΠžΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° страна ΠΌΠΎΠ³Π° Π΄Π° ΠΊΠ°ΠΆΠ°, Ρ‡Π΅ IBM ΠΈΠΌΠ° Π΄ΠΎΠ±Ρ€ΠΈ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈ позволяват Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ Hyperledger Fabric Π² тСхния ΠΎΠ±Π»Π°ΠΊ. Π₯арСса ΠΌΠΈ слСдната ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ статии ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ:

Π‘Π»Π΅Π΄Π²Π°Ρ‚ Π΅ΠΊΡ€Π°Π½Π½ΠΈ снимки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° IBM Blockchain. Π’ΠΎΠ²Π° Π½Π΅ Π΅ инструкция Π·Π° създаванС Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½, Π° просто дСмонстрация Π½Π° ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°. И Ρ‚Π°ΠΊΠ°, Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ, Π½ΠΈΠ΅ създавамС Π΅Π΄Π½Π° организация:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

БъздавамС възли в нСго: Orderer CA, Org1 CA, Orderer Peer:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Π½Π°Π» ΠΈ Π³ΠΎ Π½Π°Ρ€Π΅Ρ‡Π΅Ρ‚Π΅ citcoin:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Channel Π΅ Π±Π»ΠΎΠΊΠΎΠ²Π° Π²Π΅Ρ€ΠΈΠ³Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ нулСвия Π±Π»ΠΎΠΊ (Genesis Π±Π»ΠΎΠΊ):

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

ПисанС Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€

/*
 * Citcoin smart-contract v1.5 for Hyperledger Fabric
 * (c) Alexey Sushkov, 2019
 */
 
'use strict';
 
const { Contract } = require('fabric-contract-api');
const maxAccounts = 5;
 
class CitcoinEvents extends Contract {
 
    async instantiate(ctx) {
        console.info('instantiate');
        let emptyList = [];
        await ctx.stub.putState('accounts', Buffer.from(JSON.stringify(emptyList)));
    }
    // Get all accounts
    async GetAccounts(ctx) {
        // Get account list:
        let accounts = '{}'
        let accountsData = await ctx.stub.getState('accounts');
        if (accountsData) {
            accounts = JSON.parse(accountsData.toString());
        } else {
            throw new Error('accounts not found');
        }
        return accountsData.toString()
    }
     // add a account object to the blockchain state identifited by their name
    async AddAccount(ctx, name, balance) {
        // this is account data:
        let account = {
            name: name,
            balance: Number(balance),       
            type: 'account',
        };
        // create account:
        await ctx.stub.putState(name, Buffer.from(JSON.stringify(account)));
 
        // Add account to list:
        let accountsData = await ctx.stub.getState('accounts');
        if (accountsData) {
            let accounts = JSON.parse(accountsData.toString());
            if (accounts.length < maxAccounts)
            {
                accounts.push(name);
                await ctx.stub.putState('accounts', Buffer.from(JSON.stringify(accounts)));
            } else {
                throw new Error('Max accounts number reached');
            }
        } else {
            throw new Error('accounts not found');
        }
        // return  object
        return JSON.stringify(account);
    }
    // Sends money from Account to Account
    async SendFrom(ctx, fromAccount, toAccount, value) {
        // get Account from
        let fromData = await ctx.stub.getState(fromAccount);
        let from;
        if (fromData) {
            from = JSON.parse(fromData.toString());
            if (from.type !== 'account') {
                throw new Error('wrong from type');
            }   
        } else {
            throw new Error('Accout from not found');
        }
        // get Account to
        let toData = await ctx.stub.getState(toAccount);
        let to;
        if (toData) {
            to = JSON.parse(toData.toString());
            if (to.type !== 'account') {
                throw new Error('wrong to type');
            }  
        } else {
            throw new Error('Accout to not found');
        }
 
        // update the balances
        if ((from.balance - Number(value)) >= 0 ) {
            from.balance -= Number(value);
            to.balance += Number(value);
        } else {
            throw new Error('From Account: not enought balance');          
        }
 
        await ctx.stub.putState(from.name, Buffer.from(JSON.stringify(from)));
        await ctx.stub.putState(to.name, Buffer.from(JSON.stringify(to)));
                 
        // define and set Event
        let Event = {
            type: "SendFrom",
            from: from.name,
            to: to.name,
            balanceFrom: from.balance,
            balanceTo: to.balance,
            value: value
        };
        await ctx.stub.setEvent('SendFrom', Buffer.from(JSON.stringify(Event)));
 
        // return to object
        return JSON.stringify(from);
    }
 
    // get the state from key
    async GetState(ctx, key) {
        let data = await ctx.stub.getState(key);
        let jsonData = JSON.parse(data.toString());
        return JSON.stringify(jsonData);
    }
    // GetBalance   
    async GetBalance(ctx, accountName) {
        let data = await ctx.stub.getState(accountName);
        let jsonData = JSON.parse(data.toString());
        return JSON.stringify(jsonData);
    }
     
    // Refill own balance
    async RefillBalance(ctx, toAccount, value) {
        // get Account to
        let toData = await ctx.stub.getState(toAccount);
        let to;
        if (toData) {
            to = JSON.parse(toData.toString());
            if (to.type !== 'account') {
                throw new Error('wrong to type');
            }  
        } else {
            throw new Error('Accout to not found');
        }
 
        // update the balance
        to.balance += Number(value);
        await ctx.stub.putState(to.name, Buffer.from(JSON.stringify(to)));
                 
        // define and set Event
        let Event = {
            type: "RefillBalance",
            to: to.name,
            balanceTo: to.balance,
            value: value
        };
        await ctx.stub.setEvent('RefillBalance', Buffer.from(JSON.stringify(Event)));
 
        // return to object
        return JSON.stringify(from);
    }
}
module.exports = CitcoinEvents;

Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ всичко трябва Π΄Π° Π΅ ясно Ρ‚ΡƒΠΊ:

  • Има няколко Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (AddAccount, GetAccounts, SendFrom, GetBalance, RefillBalance), ΠΊΠΎΠΈΡ‚ΠΎ дСмонстрационната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Ρ‰Π΅ ΠΈΠ·Π²ΠΈΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° API Π½Π° Hyperledger Fabric.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ SendFrom ΠΈ RefillBalance Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ (Event), ΠΊΠΎΠΈΡ‚ΠΎ дСмонстрационната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ.
  • Ѐункцията Π·Π° инстанциранС сС ΠΈΠ·Π²ΠΈΠΊΠ²Π° вСднъТ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС инстанцира интСлигСнтният Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ‚ΠΎΠΉ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π½Π΅ вСднъТ, Π° всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ вСрсията Π½Π° интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° списък с ΠΏΡ€Π°Π·Π΅Π½ масив Π΅ лоша идСя, Π·Π°Ρ‰ΠΎΡ‚ΠΎ сСга, ΠΊΠΎΠ³Π°Ρ‚ΠΎ промСнямС вСрсията Π½Π° интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, Ρ‰Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠΌ тСкущия списък. Но Π½ΠΈΡ‰ΠΎ, просто сС ΡƒΡ‡Π°).
  • АкаунтитС ΠΈ ΡΠΏΠΈΡΡŠΠΊΡŠΡ‚ с Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ (Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ) са структури ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ JSON. JS сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
  • ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° стойност Π½Π° Π΄Π°Π΄Π΅Π½ Π°ΠΊΡ‚ΠΈΠ², ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ функцията getState ΠΈ я Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ с putState.
  • ΠŸΡ€ΠΈ създаванС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π° функцията AddAccount, Π² която сС ΠΏΡ€Π°Π²ΠΈ ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΠΊΠ° Π·Π° максималния Π±Ρ€ΠΎΠΉ Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° (maxAccounts = 5). И ΠΈΠΌΠ° Π·Π°Π΄Ρ€ΡŠΡΡ‚Π²Π°Π½Π΅ (забСлязано?), ΠšΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π±Π΅Π·ΠΊΡ€Π°ΠΉΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° броя Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈΡ‚Π΅. Π“Ρ€Π΅ΡˆΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π°Π·ΠΈ трябва Π΄Π° сС избягват

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°ΠΌΠ΅ интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π² ΠΊΠ°Π½Π°Π»Π° ΠΈ Π³ΠΎ инстанцирамС:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ транзакцията Π·Π° инсталиранС Π½Π° интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π’ΠΈΠΆΡ‚Π΅ подробности Π·Π° нашия ΠΊΠ°Π½Π°Π»:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ слСдната схСма Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° IBM. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈΠΌΠ° дСмонстрационна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Amazon Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ (подробности Π·Π° нСя Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π² слСдващия Ρ€Π°Π·Π΄Π΅Π»):

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

БъздаванС на GUI за извиквания на API на Hyperledger Fabric

Hyperledger Fabric ΠΈΠΌΠ° API, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π°:

  • Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Π½Π°Π»;
  • Peer Π²Ρ€ΡŠΠ·ΠΊΠΈ към ΠΊΠ°Π½Π°Π»;
  • Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ ΠΈ инстанциранС Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ Π² ΠΊΠ°Π½Π°Π»Π°;
  • Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с обаТдания;
  • ΠŸΠΎΠΈΡΠΊΠ°ΠΉΡ‚Π΅ информация Π·Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° прилоТСния

Π’ Π½Π°ΡˆΠ°Ρ‚Π° дСмонстрационна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ API само Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ исканС Π½Π° информация, Ρ‚.ΠΊ. Π½ΠΈΠ΅ Π²Π΅Ρ‡Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ останалитС ΡΡ‚ΡŠΠΏΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° IBM. НиС пишСм GUI, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ стандартния Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅Π½ стСк: Express.js + Vue.js + Node.js. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΡ‚Π΄Π΅Π»Π½Π° статия Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ ΡƒΠ΅Π± прилоТСния. Π’ΡƒΠΊ Ρ‰Π΅ оставя Π»ΠΈΠ½ΠΊ към ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΈ харСсаха: Пълно стСково ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΎ Vue.js & Express.js. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΡŠΡ€Π²ΡŠΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠ·Π½Π°Ρ‚ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс Π² стила Π½Π° Material Design Π½Π° Google. REST API ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ няколко извиквания:

  • HyperledgerDemo/v1/init - ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°;
  • HyperledgerDemo/v1/accounts/list - Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ списък с всички Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ;
  • HyperledgerDemo/v1/account?name=Bob&balance=100 - създаванС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° Bob;
  • HyperledgerDemo/v1/info?account=Bob - ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ информация Π·Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° Π½Π° Bob;
  • HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 - ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Ρ‚Π΅ Π΄Π²Π΅ ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΎΡ‚ Bob Π½Π° Alice;
  • HyperledgerDemo/v1/disconnect - Π·Π°Ρ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° към Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°.

ОписаниС Π½Π° API с поставСни ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ УСбсайт Π½Π° ΠΏΠΎΡ‰Π°Π»ΡŒΠΎΠ½Π° Π΅ Π΄ΠΎΠ±Ρ€Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° тСстванС Π½Π° HTTP API.

Π”Π΅ΠΌΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Amazon

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΊΠ°Ρ‡Π΅Π½ΠΎ Π² Amazon, Ρ‚.ΠΊ IBM всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ успяла Π΄Π° надстрои моя Π°ΠΊΠ°ΡƒΠ½Ρ‚ ΠΈ Π΄Π° ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° създавам Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Как Π΄ΠΎΠΌΠ΅ΠΉΠ½ΡŠΡ‚ бСшС ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ΅Π½ към Ρ‡Π΅Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°: www.citcoin.info. Π©Π΅ оставя ΡΡŠΡ€Π²ΡŠΡ€Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π³ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ†Π΅Π½Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠΎΠ΄ Π½Π°Π΅ΠΌ капят, Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈΡ‚Π΅ Π·Π° citcoin всС ΠΎΡ‰Π΅ Π½Π΅ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² борсата) Π’ статията поставям дСмонстрационни Π΅ΠΊΡ€Π°Π½Π½ΠΈ снимки, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π΄Π° Π΅ ясна. Π”Π΅ΠΌΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅:

  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°;
  • БъздаванС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚ (Π½ΠΎ сСга Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС създадСн Π½ΠΎΠ² Π°ΠΊΠ°ΡƒΠ½Ρ‚, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ максималният Π±Ρ€ΠΎΠΉ Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ, посочСни Π² интСлигСнтния Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, Π΅ достигнат Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°);
  • Π’Π·Π΅ΠΌΠ΅Ρ‚Π΅ списък с Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ;
  • ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° citcoin ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Алис, Π‘ΠΎΠ± ΠΈ АлСкс;
  • ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ (Π½ΠΎ сСга няма Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π·Π° ΠΏΠΎ-лСсно Π² интСрфСйса Π΅ написано, Ρ‡Π΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΡΡ‚Π° Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚);
  • ДСйствия Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π°.

ΠŸΡŠΡ€Π²ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ нашия Π°ΠΊΠ°ΡƒΠ½Ρ‚, Π½Π΅ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΉΡ‚Π΅ с баланса:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ списък с всички Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π˜Π·Π±ΠΈΡ€Π°ΠΌΠ΅ податСля ΠΈ получатСля, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ баланситС ΠΈΠΌ. Ако податСлят ΠΈ получатСлят са Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° смСтката ΠΌΡƒ Ρ‰Π΅ бъдС попълнСна:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π’ Π΄Π½Π΅Π²Π½ΠΈΠΊΠ° наблюдавамС ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, с Π΄Π΅ΠΌΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, Ρ‚ΠΎΠ²Π° Π΅ всичко. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π°ΡˆΠ°Ρ‚Π° транзакция Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

И общият списък Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅:

Blockchain: ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ PoC?

Π‘ Ρ‚ΠΎΠ²Π° Π½ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²ΡŠΡ€ΡˆΠΈΡ…ΠΌΠ΅ внСдряванСто Π½Π° PoC Π·Π° създаванС Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Citcoin. Какво ΠΎΡ‰Π΅ трябва Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ, Π·Π° Π΄Π° станС Citcoin ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π½Π° ΠΌΡ€Π΅ΠΆΠ° Π·Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ? Много ΠΌΠ°Π»ΠΊΠΎ:

  • На Π΅Ρ‚Π°ΠΏΠ° Π½Π° създаванС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π²Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° частСн / ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡. Частният ΠΊΠ»ΡŽΡ‡ трябва Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΎΡ‚ потрСбитСлския Π°ΠΊΠ°ΡƒΠ½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°.
  • НаправСтС ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠ΅, Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° потрСбитСля.
  • ΠšΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‰ΠΈ ΠΎΡ‚ потрСбитСля към ΡΡŠΡ€Π²ΡŠΡ€Π° с нСговия Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΡŽΡ‡.

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

Π’Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Citcoin със слСднитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: добавянС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° баланс, попълванС Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° Π²ΠΈ, ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π² Π΄Ρ€ΡƒΠ³. И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ Π½ΠΈ струва ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° PoC?

  • НСобходимо Π΅ Π΄Π° сС ΠΏΡ€ΠΎΡƒΡ‡ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ ΠΊΠ°Ρ‚ΠΎ цяло ΠΈ Hyperledger Fabric Π² частност;
  • НаучСтС ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ IBM ΠΈΠ»ΠΈ Amazon ΠΎΠ±Π»Π°Ρ†ΠΈ;
  • НаучСтС Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ JS ΠΈ някои ΡƒΠ΅Π± Ρ€Π°ΠΌΠΊΠΈ;
  • Ако някои Π΄Π°Π½Π½ΠΈ трябва Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π½Π΅ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π°, Π° Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° Π½Π°ΡƒΡ‡Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с PostgreSQL;
  • И Π½Π΅ Π½Π° послСдно място - Π±Π΅Π· познания Π·Π° Linux Π² ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ свят, никъдС!)

Π Π°Π·Π±ΠΈΡ€Π° сС, Π½Π΅ Ρ€Π°ΠΊΠ΅Ρ‚Π½Π° Π½Π°ΡƒΠΊΠ°, Π½ΠΎ трябва Π΄Π° сС ΠΏΠΎΡ‚ΠΈΡ‚Π΅!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π² GitHub

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ, поставСни Π½Π° GitHub. ΠšΡ€Π°Ρ‚ΠΊΠΎ описаниС Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ:
ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Β«ΡΡŠΡ€Π²ΡŠΡ€Β» - Node.js ΡΡŠΡ€Π²ΡŠΡ€
ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ‚Β» - Node.js ΠΊΠ»ΠΈΠ΅Π½Ρ‚
ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Β«blockchainΒ» (стойноститС Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π½Π΅ работят ΠΈ са Π΄Π°Π΄Π΅Π½ΠΈ само Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€):

  • Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ β€” ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€
  • ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ» - потрСбитСлски ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° API Π½Π° Hyperledger Fabric.
  • *.cds - ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ вСрсии Π½Π° смарт Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ
  • *.json Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ - ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° API Π½Π° Hyperledger Fabric

Π’ΠΎΠ²Π° Π΅ само Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ!

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

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