Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

ΠžΡ‡ΠΈΡ‚Π΅ Π²ΠΈ сС ΠΏΠ»Π°ΡˆΠ°Ρ‚, Π° Ρ€Π°Ρ†Π΅Ρ‚Π΅ Π²Π΅ Ρ‡Π΅ΡˆΠ°Π°Ρ‚!

Π’ΠΎ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ статии сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Π²ΠΌΠ΅ со Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΈ сС ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΠ²ΠΈ (Π¨Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½?) ΠΈ случаи ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС спровСдат со Π½ΠΈΠ²Π½Π° помош (Π—ΠΎΡˆΡ‚ΠΎ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅ ΡΠ»ΡƒΡ‡Π°Ρ˜?). Π’Ρ€Π΅ΠΌΠ΅ Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со Π²Π°ΡˆΠΈΡ‚Π΅ Ρ€Π°Ρ†Π΅! Π—Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΏΠΈΠ»ΠΎΡ‚ΠΈ ΠΈ PoC (Π΄ΠΎΠΊΠ°Π· Π·Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚), ΠΏΡ€Π΅Ρ‚ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΌ Π΄Π° Π³ΠΈ користам ΠΎΠ±Π»Π°Ρ†ΠΈΡ‚Π΅, бидСјќи ... Π΄ΠΎ Π½ΠΈΠ² ΠΌΠΎΠΆΠ΅ Π΄Π° сС пристапи ΠΎΠ΄ ΠΊΠ°Π΄Π΅ Π±ΠΈΠ»ΠΎ Π²ΠΎ свСтот ΠΈ, чСсто, Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π΄Π° сС Π³ΡƒΠ±ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΌΠ°Ρ‡Π½Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π°, бидСјќи ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ поставСни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π—Π½Π°Ρ‡ΠΈ, Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Π½Π΅ΡˆΡ‚ΠΎ Сдноставно, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ€Π΅ΠΆΠ° Π·Π° прСнос Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΌΠ΅Ρ“Ρƒ учСсницитС ΠΈ скромно Π΄Π° ја Π½Π°Ρ€Π΅Ρ‡Π΅ΠΌΠ΅ Π‘ΠΈΡ‚ΠΊΠΎΠΈΠ½. Π—Π° ΠΎΠ²Π° ќС Π³ΠΎ користимС ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ IBM ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π½ΠΈΠΎΡ‚ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ Hyperledger Fabric. ΠŸΡ€Π²ΠΎ, ајдС Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌΠ΅ Π·ΠΎΡˆΡ‚ΠΎ Hyperledger Fabric сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π΅Π½ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½?

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Hyperledger Fabric - ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π΅Π½ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½

ΠžΠΏΡˆΡ‚ΠΎ Π·Π΅ΠΌΠ΅Π½ΠΎ, ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π΅Π½ информациски систСм Π΅:

  • Π—Π±ΠΈΡ€ Π½Π° сСрвСри ΠΈ софтвСрско Ρ˜Π°Π΄Ρ€ΠΎ ΠΊΠΎΠ΅ Π²Ρ€ΡˆΠΈ Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°;
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° со систСмот;
  • Алатки Π·Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π°, Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΡƒΡ€Π΅Π΄ΠΈ/Π»ΡƒΡ“Π΅;
  • Π‘Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΡˆΡ‚ΠΎ Ρ‡ΡƒΠ²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ ΠΈ архивски ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

ΠžΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½Π°Ρ‚Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π·Π° Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Π΅ Hyperledger Fabric ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π° Π½Π° Онлајн, ΠΈ Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Hyperledger Fabric Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ која Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ ΠΈ Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ напишани Π½Π° програмскитС Ρ˜Π°Π·ΠΈΡ†ΠΈ JS ΠΈ Go. Π”Π° ја Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅Ρ‚Π°Π»Π½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Hyperledger Fabric ΠΈ Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π΅Π½ систСм кој ΠΈΠΌΠ° само спСцифики Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ ΠΈ снимањС Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. БпСцифичноста Π΅ Π²ΠΎ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΎ ΠΈ кај ситС Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½, сС Ρ‡ΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΊΠΎΠΈ сС поставуваат Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ само Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ учСсницитС постигнат консСнзус ΠΈ ΠΏΠΎ ΡΠ½ΠΈΠΌΠ°ΡšΠ΅Ρ‚ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Ρ‚ΠΈΠ²ΠΊΠΎ Π΄Π° сС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π°Ρ‚ ΠΈΠ»ΠΈ ΠΈΠ·Π±Ρ€ΠΈΡˆΠ°Ρ‚.

АрхитСктура Π½Π° Ρ‚ΠΊΠ°Π΅Π½ΠΈΠ½Π° Hyperledger

Π”ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚ ја ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Hyperledger Fabric:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ содрТат врсници, Ρ‚.Π΅. Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ постои ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅. Π Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π΄Π΅Π» ΠΎΠ΄ истиот ΠΊΠ°Π½Π°Π».

ΠΊΠ°Π½Π°Π» β€” Π»ΠΎΠ³ΠΈΡ‡ΠΊΠ° структура која Π³ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡƒΠ²Π° врсницитС Π²ΠΎ Π³Ρ€ΡƒΠΏΠΈ, Ρ‚.Π΅. Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ Π΅ Π½Π°Π²Π΅Π΄Π΅Π½. Hyperledger Fabric ΠΌΠΎΠΆΠ΅ истоврСмСно Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π° повСќС Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΠ²ΠΈ со Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°.

Π”Π°Π²Π°Ρ‚Π΅Π» Π½Π° услуги Π·Π° члСнство (MSP) Π΅ CA (Certificate Authority) Π·Π° издавањС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ ΠΈ Π΄ΠΎΠ΄Π΅Π»ΡƒΠ²Π°ΡšΠ΅ ΡƒΠ»ΠΎΠ³ΠΈ. Π—Π° Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ јазол, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°Ρ‚Π΅ со MSP.

Врсни јазли β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π³ΠΈ трансакциитС, ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚, ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Ρ˜Ρ‚Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ ΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°Ρ˜Ρ‚Π΅ со Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅. ВрсницитС ΠΈΠΌΠ°Π°Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ (Π΄ΠΈΠ³ΠΈΡ‚Π°Π»Π΅Π½ сСртификат), кој Π³ΠΎ ΠΈΠ·Π΄Π°Π²Π° МБП. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Bitcoin ΠΈΠ»ΠΈ Etherium, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ситС јазли ΠΈΠΌΠ°Π°Ρ‚ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΠΏΡ€Π°Π²Π°, Π²ΠΎ Hyperledger Fabric Ρ˜Π°Π·Π»ΠΈΡ‚Π΅ ΠΈΠ³Ρ€Π°Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΡƒΠ»ΠΎΠ³ΠΈ:

  • Врсници ΠΌΠΎΠΆΠ΅Π±ΠΈ ΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ врсник (Π•ΠŸ) ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ.
  • ΠŸΠΎΡΠ²Π΅Ρ‚ΡƒΠ²Π°ΡšΠ΅ врсници (CP) - Π·Π°Ρ‡ΡƒΠ²Π°Ρ˜Ρ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ само Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ја β€žΠ‘Π²Π΅Ρ‚ΡΠΊΠ°Ρ‚Π° Π΄Ρ€ΠΆΠ°Π²Π°β€œ.
  • Π‘ΠΈΠ΄Ρ€ΠΎ ΠŸΠ΅Ρ€ (АП) - Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ учСствуваат Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚, Ρ‚ΠΎΠ³Π°Ρˆ врсницитС Π·Π° сидро сС користат Π·Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΌΠ΅Ρ“Ρƒ Π½ΠΈΠ². БСкоја ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΌΠΎΡ€Π° Π΄Π° ΠΈΠΌΠ° Π΅Π΄Π΅Π½ ΠΈΠ»ΠΈ повСќС врсници со сидро. Π‘ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° АП, сСкој врсник Π²ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° ситС врсници Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Π΅ користи Π·Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ АП ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° ΠΎΠ·Π±ΠΎΡ€ΡƒΠ²Π°ΡšΠ°.
  • Π’ΠΎΠ΄Π°Ρ‡ ΠŸΠ΅Π΅Ρ€ β€” Π°ΠΊΠΎ Π΅Π΄Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ врсници, Ρ‚ΠΎΠ³Π°Ρˆ само Π»ΠΈΠ΄Π΅Ρ€ΠΎΡ‚ Π½Π° врсницитС ќС Π΄ΠΎΠ±ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΎΠ΄ услугата Нарачка ΠΈ ќС ΠΈΠΌ Π³ΠΈ Π΄Π°Π΄Π΅ Π½Π° останатитС врсници. Π›ΠΈΠ΄Π΅Ρ€ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΠ»ΠΈ статички ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΈ ΠΈΠ·Π±Ρ€Π°Π½ ΠΎΠ΄ ΠΊΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ Π²ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΡ‚ Π·Π° ΠΎΠ·Π±ΠΎΡ€ΡƒΠ²Π°ΡšΠ° сС користи ΠΈ Π·Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π»ΠΈΠ΄Π΅Ρ€ΠΈΡ‚Π΅.

БрСдства β€” Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ‚ врСдност ΠΈ сС складирани Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚. ΠŸΠΎΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ, ΠΎΠ²Π° сС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ со ΠΊΠ»ΡƒΡ‡Π½Π° врСдност Π²ΠΎ JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π’ΠΎΠΊΠΌΡƒ ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ сС Π·Π°ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ Blockchain. Π’ΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°, која Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½Π° Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°, која сС Ρ‡ΡƒΠ²Π° Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ β€žΠ‘Π²Π΅Ρ‚ΡΠΊΠ° Π΄Ρ€ΠΆΠ°Π²Π°β€œ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ сС ΠΏΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°Π°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ Π²ΠΎ зависност ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. НСма Π·Π°Π΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΈ полиња, СдинствСната ΠΏΡ€Π΅ΠΏΠΎΡ€Π°ΠΊΠ° Π΅ Π΄Π΅ΠΊΠ° срСдствата ΠΌΠΎΡ€Π° Π΄Π° ΠΈΠΌΠ°Π°Ρ‚ сопствСник ΠΈ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π²Ρ€Π΅Π΄Π½ΠΈ.

Π›Π΅ΡŸΠ΅Ρ€ β€” сС состои ΠΎΠ΄ Blockchain ΠΈ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π·Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° Word, која ја складира ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° срСдствата. БвСтската Π΄Ρ€ΠΆΠ°Π²Π° користи LevelDB ΠΈΠ»ΠΈ CouchDB.

ΠŸΠ°ΠΌΠ΅Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ β€” ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° систСмот. Π’ΠΎ Hyperledger Fabric, ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π°Π°Ρ‚ Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄. Π‘ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄, Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ сС срСдства ΠΈ трансакции ΠΏΡ€Π΅ΠΊΡƒ Π½ΠΈΠ². Π’ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠ° смисла, ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ сС софтвСрски ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ Π½Π° програмскитС Ρ˜Π°Π·ΠΈΡ†ΠΈ JS ΠΈΠ»ΠΈ Go.

ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ β€” Π·Π° сСкој Π²Π΅Ρ€ΠΈΠΆΠ΅Π½ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° поставитС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° Ρ‚ΠΎΠ° ΠΊΠΎΠ»ΠΊΡƒ ΠΏΠΎΡ‚Π²Ρ€Π΄ΠΈ Π·Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΎΡ‡Π΅ΠΊΡƒΠ²Π°Π°Ρ‚ ΠΈ ΠΎΠ΄ ΠΊΠΎΠ³ΠΎ. Ако ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π½Π΅ Π΅ поставСна, Ρ‚ΠΎΠ³Π°Ρˆ стандардното Π΅: β€žΡ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΡ‚Π²Ρ€Π΄Π΅Π½Π° ΠΎΠ΄ кој Π±ΠΈΠ»ΠΎ Ρ‡Π»Π΅Π½ Π½Π° која Π±ΠΈΠ»ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΊΠ°Π½Π°Π»ΠΎΡ‚β€œ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ:

  • Π’Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΎΠ΄ кој Π±ΠΈΠ»ΠΎ администратор Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°;
  • ΠœΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΡ‚Π²Ρ€Π΄Π΅Π½ΠΎ ΠΎΠ΄ кој Π±ΠΈΠ»ΠΎ Ρ‡Π»Π΅Π½ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°;
  • ΠœΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΡ‚Π²Ρ€Π΄Π΅Π½ΠΎ ΠΎΠ΄ која Π±ΠΈΠ»ΠΎ врсничка ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°.

Услуга Π·Π° Π½Π°Ρ€Π°Ρ‡ΡƒΠ²Π°ΡšΠ΅ β€” Π³ΠΈ ΠΏΠ°ΠΊΡƒΠ²Π° трансакциитС Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΈ Π³ΠΈ ΠΈΡΠΏΡ€Π°ΡœΠ° Π΄ΠΎ врсницитС Π²ΠΎ ΠΊΠ°Π½Π°Π»ΠΎΡ‚. Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° испорака Π½Π° ΠΏΠΎΡ€Π°ΠΊΠΈ Π΄ΠΎ ситС врсници Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Π‘Π΅ користи Π·Π° индустриски систСми Π‘Ρ€ΠΎΠΊΠ΅Ρ€ Π·Π° ΠΏΠΎΡ€Π°ΠΊΠΈ Π½Π° ΠšΠ°Ρ„ΠΊΠ°, Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ соло.

CallFlow

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

  • ΠΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° со Hyperledger Fabric ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Go, Node.js ΠΈΠ»ΠΈ Java SDK;
  • ΠšΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ создава tx Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΠΈ ја ΠΈΡΠΏΡ€Π°ΡœΠ° Π΄ΠΎ врсницитС ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Π°Ρ‚;
  • Врсникот Π³ΠΎ ΠΏΠΎΡ‚Π²Ρ€Π΄ΡƒΠ²Π° потписот Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚, ја Π·Π°Π²Ρ€ΡˆΡƒΠ²Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ Π³ΠΎ ΠΈΡΠΏΡ€Π°ΡœΠ° потписот Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π°Π·Π°Π΄ Π΄ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚. Chaincode сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° само Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Ρ‡ΠΎΡ‚, Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ΠΎΠ΄ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ сС ΠΈΡΠΏΡ€Π°ΡœΠ° Π΄ΠΎ ситС врсници. Овој Π°Π»Π³ΠΎΡ€ΠΈΡ‚Π°ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° консСнзус PBFT (Practical Byzantine Fault Tolerant). Π‘Π΅ Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π° ΠΎΠ΄ класичСн BFT Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° ΠΏΠΎΡ€Π°ΠΊΠ°Ρ‚Π° Π΅ испратСна ΠΈ сС ΠΎΡ‡Π΅ΠΊΡƒΠ²Π° ΠΏΠΎΡ‚Π²Ρ€Π΄Π° Π½Π΅ ΠΎΠ΄ ситС учСсници, Ρ‚ΡƒΠΊΡƒ само ΠΎΠ΄ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ сСт;
  • ΠžΡ‚ΠΊΠ°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ ќС Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ΅ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ ΡˆΡ‚ΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Π°Ρ‚ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅, Ρ‚ΠΎΡ˜ ја ΠΈΡΠΏΡ€Π°ΡœΠ° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π΄ΠΎ услугата Нарачка;
  • Услугата Ordering Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π±Π»ΠΎΠΊ ΠΈ ја ΠΈΡΠΏΡ€Π°ΡœΠ° Π΄ΠΎ ситС врсници ΠΊΠΎΠΈ сС ΠΎΠ±Π²Ρ€Π·ΡƒΠ²Π°Π°Ρ‚. Услугата Π·Π° Π½Π°Ρ€Π°Ρ‡ΠΊΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° послСдоватСлно снимањС Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ, со ΡˆΡ‚ΠΎ сС Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° Ρ‚Π°ΠΊΠ°Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π°Ρ‚Π° Π²ΠΈΠ»ΡƒΡˆΠΊΠ° Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° (Π²ΠΈΠ΄Π΅Ρ‚Π΅ Π³ΠΎ Π΄Π΅Π»ΠΎΡ‚ β€žΠ’ΠΈΠ»ΡƒΡˆΠΊΠΈβ€œ);
  • ВрсницитС Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ‚ Π±Π»ΠΎΠΊ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ја ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅, Π³ΠΎ ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ Π±Π»ΠΎΠΊΠΎΡ‚ Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ ΠΈ ја ΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π²ΠΎ DB β€žΠ‘Π²Π΅Ρ‚ΡΠΊΠ° Π΄Ρ€ΠΆΠ°Π²Π°β€œ.

ОниС. Ова Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π° со ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½Π° ΡƒΠ»ΠΎΠ³ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ˜Π°Π·Π»ΠΈΡ‚Π΅. Ова осигурува Π΄Π΅ΠΊΠ° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ Π΅ скалабилСн ΠΈ Π±Π΅Π·Π±Π΅Π΄Π΅Π½:

  • ΠŸΠ°ΠΌΠ΅Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ (ΡΠΈΠ½ΡŸΠΈΡ€ ΠΊΠΎΠ΄) Π²Ρ€ΡˆΠ°Ρ‚ ΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° врсницитС. Ова ја осигурува довСрливоста Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈΡ‚Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ, бидСјќи Π½Π΅ сС складира ΠΎΠ΄ ситС учСсници, Ρ‚ΡƒΠΊΡƒ само со ΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° врсници.
  • Нарачката Ρ‚Ρ€Π΅Π±Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Ρ€Π·ΠΎ. Ова Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΎ со Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° Ordering Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° само Π±Π»ΠΎΠΊ ΠΈ Π³ΠΎ ΠΈΡΠΏΡ€Π°ΡœΠ° Π΄ΠΎ фиксСн сСт Π½Π° Π»ΠΈΠ΄Π΅Ρ€ΠΈ врсници.
  • ΠžΠ±Π²Ρ€Π·ΡƒΠ²Π°Ρ‡ΠΊΠΈΡ‚Π΅ врсници Π³ΠΎ складираат само Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ - ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ ΠΈ Π½Π΅ Π±Π°Ρ€Π°Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ моќ ΠΈ инстант Ρ€Π°Π±ΠΎΡ‚Π΅ΡšΠ΅.

ПовСќС Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π° архитСктонскитС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° Π½Π° Hyperledger Fabric ΠΈ Π·ΠΎΡˆΡ‚ΠΎ Ρ‚ΠΎΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Π½Π° овој Π½Π°Ρ‡ΠΈΠ½, Π° Π½Π΅ ΠΏΠΎΠΈΠ½Π°ΠΊΡƒ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Ρ˜Π΄Π΅Ρ‚Π΅ ΠΎΠ²Π΄Π΅: ΠŸΠΎΡ‚Π΅ΠΊΠ»ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΈΠ»ΠΈ Ρ‚ΡƒΠΊΠ°: Hyperledger Fabric: Дистрибуиран ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ систСм Π·Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΈ.

Π—Π½Π°Ρ‡ΠΈ, Hyperledger Fabric Π΅ навистина ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π΅Π½ систСм со кој ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

  • Π‘ΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ;
  • Π‘Π½ΠΈΠΌΠ°Ρ˜Ρ‚Π΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ°Ρ˜Ρ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ Π±Π°Π·Π°Ρ‚Π° Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ Π²ΠΎ JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚;
  • Π”ΠΎΠ΄Π΅Π»Π΅Ρ‚Π΅ ΠΈ ΠΏΠΎΡ‚Π²Ρ€Π΄Π΅Ρ‚Π΅ пристап Π΄ΠΎ API со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π·Π° сСртификати.

Π‘Π΅Π³Π° ΠΊΠΎΠ³Π° Ρ€Π°Π·Π±Ρ€Π°Π²ΠΌΠ΅ ΠΌΠ°Π»ΠΊΡƒ Π·Π° спСцификитС Π½Π° Hyperledger Fabric, ајдС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Π½Π΅ΡˆΡ‚ΠΎ корисно!

Π Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ изјава

Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΅ Π΄Π° ја ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° Citcoin со слСднитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ смСтка, Π΄ΠΎΠ±ΠΈΡ˜Ρ‚Π΅ салдо, Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½Π΅Ρ‚Π΅ ја Π²Π°ΡˆΠ°Ρ‚Π° смСтка, ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Ρ‚Π΅ ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΎΠ΄ Π΅Π΄Π½Π° смСтка Π½Π° Π΄Ρ€ΡƒΠ³Π°. АјдС Π΄Π° Π½Π°Ρ†Ρ€Ρ‚Π°ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚, кој ΠΏΠΎΠ½Π°Ρ‚Π°ΠΌΡƒ ќС Π³ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π²ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€. Π—Π½Π°Ρ‡ΠΈ, ќС ΠΈΠΌΠ°ΠΌΠ΅ смСтки ΠΊΠΎΠΈ сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎ имиња ΠΈ содрТат салдо ΠΈ список Π½Π° смСтки. Π‘ΠΌΠ΅Ρ‚ΠΊΠΈΡ‚Π΅ ΠΈ списокот Π½Π° смСтки сС, Π²ΠΎ однос Π½Π° срСдствата Π½Π° Hyperledger Fabric. Π‘ΠΏΠΎΡ€Π΅Π΄ Ρ‚ΠΎΠ°, Ρ‚ΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π° ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°. ЌС сС ΠΎΠ±ΠΈΠ΄Π°ΠΌ јасно Π΄Π° Π³ΠΎ Π½Π°Ρ†Ρ€Ρ‚Π°ΠΌ ΠΎΠ²Π°:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π’Ρ€Π²Π½ΠΈΡ‚Π΅ Π±Ρ€ΠΎΡ˜ΠΊΠΈ сС ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°, која Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½Π° Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ β€žΠ‘Π²Π΅Ρ‚ΡΠΊΠ° Π΄Ρ€ΠΆΠ°Π²Π°β€œ. Под Π½ΠΈΠ² сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ΠΈ Π±Ρ€ΠΎΡ˜ΠΊΠΈ ΠΊΠΎΠΈ ја ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Π°Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ΡˆΡ‚ΠΎ Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½Π° Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚. Π’Π΅ΠΊΠΎΠ²Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° срСдствата сС ΠΌΠ΅Π½ΡƒΠ²Π° со трансакции. БрСдството сС ΠΌΠ΅Π½ΡƒΠ²Π° само ΠΊΠ°ΠΊΠΎ Ρ†Π΅Π»ΠΈΠ½Π°, ΠΏΠ° ΠΊΠ°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°, сС создава Π½ΠΎΠ² ΠΎΠ±Ρ˜Π΅ΠΊΡ‚, Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° врСдност Π½Π° срСдството ΠΎΠ΄ΠΈ Π²ΠΎ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°.

IBM Cloud

НиС создавамС смСтка Π²ΠΎ IBM ΠΎΠ±Π»Π°ΠΊ. Π—Π° Π΄Π° ја користитС Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‚Π°Π° ΠΌΠΎΡ€Π° Π΄Π° сС Π½Π°Π΄Π³Ρ€Π°Π΄ΠΈ Π½Π° Pay-As-You-Go. Овој процСс ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ Π±Ρ€Π·, бидСјќи ... IBM Π±Π°Ρ€Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π° Ρ€Π°Ρ‡Π½ΠΎ. ΠŸΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½Π° Π½ΠΎΡ‚Π°, ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ°ΠΌ Π΄Π΅ΠΊΠ° IBM ΠΈΠΌΠ° Π΄ΠΎΠ±Ρ€ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΈ Π·Π° ΠΎΠ±ΡƒΠΊΠ° ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° распорСдитС Hyperledger Fabric Π²ΠΎ Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ ΠΎΠ±Π»Π°ΠΊ. Ми сС Π΄ΠΎΠΏΠ°Π΄Π½Π°Π° слСдната ΡΠ΅Ρ€ΠΈΡ˜Π° написи ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ:

Π‘Π»Π΅Π΄Π½ΠΈΠ²Π΅ сС слики ΠΎΠ΄ Π΅ΠΊΡ€Π°Π½ΠΎΡ‚ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° IBM Blockchain. Ова Π½Π΅ Π΅ упатство Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° сС создадС Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½, Ρ‚ΡƒΠΊΡƒ Сдноставно Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΎΠ±Π΅ΠΌΠΎΡ‚ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°. Π—Π½Π°Ρ‡ΠΈ, Π·Π° наши Ρ†Π΅Π»ΠΈ, ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Π΅Π΄Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π’ΠΎ Π½Π΅Π³ΠΎ создавамС јазли: Orderer CA, Org1 CA, Orderer Peer:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

НиС создавамС корисници:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

НаправСтС ΠΊΠ°Π½Π°Π» ΠΈ Π½Π°Ρ€Π΅Ρ‡Π΅Ρ‚Π΅ Π³ΠΎ citcoin:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π’ΠΎ ΡΡƒΡˆΡ‚ΠΈΠ½Π° Channel Π΅ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½, ΠΏΠ° Π·Π°ΠΏΠΎΡ‡Π½ΡƒΠ²Π° со Π±Π»ΠΎΠΊ Π½ΡƒΠ»Π° (Π‘Π»ΠΎΠΊ Genesis):

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² 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) ΠΊΠΎΠΈ Π΄Π΅ΠΌΠΎ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ќС Π³ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ° со помош Π½Π° Hyperledger Fabric API.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ SendFrom ΠΈ RefillBalance Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π°Ρ‚ Настани ΡˆΡ‚ΠΎ ќС Π³ΠΈ ΠΏΡ€ΠΈΠΌΠ° Π΄Π΅ΠΌΠΎ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°.
  • Π˜Π½ΡΡ‚Π°Π½Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° сС ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° Сднаш ΠΊΠΎΠ³Π° сС инстанцира ΠΏΠ°ΠΌΠ΅Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€. Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, Ρ‚ΠΎΠ° сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° Π½Π΅ само Сднаш, Ρ‚ΡƒΠΊΡƒ сСкој ΠΏΠ°Ρ‚ ΠΊΠΎΠ³Π° сС ΠΌΠ΅Π½ΡƒΠ²Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈΠΎΡ‚ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€. Π—Π°Ρ‚ΠΎΠ°, ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ листа со ΠΏΡ€Π°Π·Π½Π° Π½ΠΈΠ·Π° Π΅ лоша идСја, бидСјќи Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π° ќС ја ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌΠ΅ Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈΠΎΡ‚ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€, ќС ја ΠΈΠ·Π³ΡƒΠ±ΠΈΠΌΠ΅ Ρ‚Π΅ΠΊΠΎΠ²Π½Π°Ρ‚Π° листа. Но, Π²ΠΎ Ρ€Π΅Π΄ Π΅, само ΡƒΡ‡Π°ΠΌ).
  • Π‘ΠΌΠ΅Ρ‚ΠΊΠΈΡ‚Π΅ ΠΈ списокот со смСтки сС структури Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° JSON. JS сС користи Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Π° со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.
  • ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја Π΄ΠΎΠ±ΠΈΠ΅Ρ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° врСдност Π½Π° срСдството ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΠΎΡ‚ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° getState ΠΈ Π΄Π° Π³ΠΎ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ со putState.
  • ΠŸΡ€ΠΈ ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π½Π° смСтка, сС ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° AddAccount, Π²ΠΎ која сС ΠΏΡ€Π°Π²ΠΈ спорСдба Π·Π° максималниот Π±Ρ€ΠΎΡ˜ Π½Π° смСтки Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ (maxAccounts = 5). И Ρ‚ΡƒΠΊΠ° ΠΈΠΌΠ° Π·Π°ΡΡ‚ΠΎΡ˜ (Π΄Π°Π»ΠΈ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π²Ρ‚Π΅?), ΡˆΡ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ Π±Π΅ΡΠΊΡ€Π°Ρ˜Π½ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° смСтки. Π’Π°ΠΊΠ²ΠΈΡ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½ΡƒΠ²Π°Π°Ρ‚)

Π‘Π»Π΅Π΄Π½ΠΎ, Π³ΠΎ Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΠΌΠ΅ ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈΠΎΡ‚ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π²ΠΎ ΠšΠ°Π½Π°Π»ΠΎΡ‚ ΠΈ Π³ΠΎ инстанцирамС:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

АјдС Π΄Π° ја ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ ΠΏΠ°ΠΌΠ΅Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π”Π° Π³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈΡ‚Π΅ Π·Π° Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠ°Π½Π°Π»:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ°, Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ слСдниот Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌ Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ ΠΌΡ€Π΅ΠΆΠ° Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ Π½Π° IBM. Π”ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚ исто Ρ‚Π°ΠΊΠ° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° Π΄Π΅ΠΌΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ Π½Π° Амазон Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π΅Π½ сСрвСр (повСќС Π·Π° Ρ‚ΠΎΠ° Π²ΠΎ слСдниот Π΄Π΅Π»):

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

ΠšΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π½Π° GUI Π·Π° ΠΏΠΎΠ²ΠΈΡ†ΠΈ Hyperledger Fabric API

Hyperledger Fabric ΠΈΠΌΠ° API ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π°:

  • ΠšΡ€Π΅ΠΈΡ€Π°Ρ˜ ΠΊΠ°Π½Π°Π»;
  • Врски ΠΌΠ΅Ρ“Ρƒ ΠΊΠ°Π½Π°Π»ΠΈΡ‚Π΅;
  • Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π° ΠΈ ΠΈΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ Π²ΠΎ ΠΊΠ°Π½Π°Π»ΠΎΡ‚;
  • ΠŸΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ трансакции;
  • ΠŸΠΎΠ±Π°Ρ€Π°Ρ˜Ρ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚.

Развој Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°

Π’ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° Π΄Π΅ΠΌΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ќС Π³ΠΎ користимС API само Π·Π° ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ трансакции ΠΈ Π±Π°Ρ€Π°ΡšΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, бидСјќи Π’Π΅ΡœΠ΅ Π³ΠΈ Π·Π°Π²Ρ€ΡˆΠΈΠ²ΠΌΠ΅ прСостанатитС Ρ‡Π΅ΠΊΠΎΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ја Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° IBM. НиС ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ GUI ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ стандардСн Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΡˆΠΊΠΈ стСк: Express.js + Vue.js + Node.js. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ посСбна ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π•Π²Π΅ ќС оставам Π»ΠΈΠ½ΠΊ Π΄ΠΎ ΡΠ΅Ρ€ΠΈΡ˜Π°Ρ‚Π° ΠΏΡ€Π΅Π΄Π°Π²Π°ΡšΠ° ΠΊΠΎΠΈ Π½Π°Ρ˜ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠΈ сС Π΄ΠΎΠΏΠ°Π΄Π½Π°Π°: Π’Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Full Stack ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Vue.js ΠΈ Express.js. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр со ΠΏΠΎΠ·Π½Π°Ρ‚ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Π²ΠΎ стилот Π½Π° ΠœΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»Π΅Π½ дизајн Π½Π° Google. REST API ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ ΠΈ сСрвСрот сС состои ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΠΎΠ²ΠΈΡ†ΠΈ:

  • HyperledgerDemo/v1/init - ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚;
  • HyperledgerDemo/v1/accounts/list β€” Π΄ΠΎΠ±ΠΈΡ˜Ρ‚Π΅ листа Π½Π° ситС смСтки;
  • HyperledgerDemo/v1/account?name=Bob&balance=100 β€” ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ смСтка Π½Π° Π‘ΠΎΠ±;
  • HyperledgerDemo/v1/info?account=Bob β€” Π΄ΠΎΠ±ΠΈΡ˜Ρ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° смСтката Π½Π° Π‘ΠΎΠ±;
  • HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 - ΠΏΡ€Π΅Ρ„Ρ€Π»ΠΈ Π΄Π²Π΅ ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΎΠ΄ Π‘ΠΎΠ± Π½Π° Алис;
  • HyperledgerDemo/v1/disconnect - Π·Π°Ρ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ ја врската со Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚.

Опис Π½Π° API со ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π²ΠΎ Π’Π΅Π±-страница Π½Π° ΠΏΠΎΡˆΡ‚Π°Ρ€ΠΎΡ‚ - Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠ·Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° HTTP API.

Π”Π΅ΠΌΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ Π½Π° Amazon

Ја поставив Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Амазон Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ... IBM сè ΡƒΡˆΡ‚Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ја Π½Π°Π΄Π³Ρ€Π°Π΄ΠΈ ΠΌΠΎΡ˜Π°Ρ‚Π° смСтка ΠΈ Π΄Π° ΠΌΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ сСрвСри. Како Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ Ρ†Ρ€Π΅ΡˆΠ° Π²ΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚: www.citcoin.info. ЌС Π³ΠΎ Π΄Ρ€ΠΆΠ°ΠΌ сСрвСрот Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ Π½Π΅ΠΊΠΎΠ΅ Π²Ρ€Π΅ΠΌΠ΅, Π° ΠΏΠΎΡ‚ΠΎΠ° ќС Π³ΠΎ исклучам, бидСјќи ... Ρ†Π΅Π½Ρ‚ΠΈ Π·Π° ΠΈΠ·Π½Π°Ρ˜ΠΌΡƒΠ²Π°ΡšΠ΅ ΠΊΠ°ΠΏΠ΅, Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈΡ‚Π΅ Π½Π° citcoin сС ΡƒΡˆΡ‚Π΅ Π½Π΅ сС ΠΊΠΎΡ‚ΠΈΡ€Π°Π½ΠΈ Π½Π° Π±Π΅Ρ€Π·Π°Ρ‚Π°) Π’ΠΎ ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° ставам слики ΠΎΠ΄ Π΅ΠΊΡ€Π°Π½ΠΎΡ‚ Π½Π° Π΄Π΅ΠΌΠΎΡ‚ΠΎ Π·Π° Π΄Π° Π±ΠΈΠ΄Π΅ јасна Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°. Π”Π΅ΠΌΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅:

  • Π˜Π½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚;
  • ΠšΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ смСтка (Π½ΠΎ сСга Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π½ΠΎΠ²Π° смСтка, бидСјќи максималниот Π±Ρ€ΠΎΡ˜ Π½Π° смСтки Π½Π°Π²Π΅Π΄Π΅Π½ Π²ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈΠΎΡ‚ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ Π΅ постигнат Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚);
  • Π”ΠΎΠ±ΠΈΡ˜Ρ‚Π΅ листа Π½Π° смСтки;
  • ВрансфСр Π½Π° Ρ†ΠΈΡ‚ΠΊΠΎΠΈΠ½ ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Алис, Π‘ΠΎΠ± ΠΈ АлСкс;
  • ΠŸΡ€ΠΈΠΌΠ°Ρ˜Ρ‚Π΅ настани (Π½ΠΎ сСга Π½Π΅ΠΌΠ° Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Ρ‚ настанитС, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π·Π° Сдноставност, ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ Π²Π΅Π»ΠΈ Π΄Π΅ΠΊΠ° настанитС Π½Π΅ сС ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ);
  • Π”Π΅Ρ˜ΡΡ‚Π²Π° Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π°.

ΠŸΡ€Π²ΠΎ Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π‘Π»Π΅Π΄Π½ΠΎ, ја ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌΠ΅ Π½Π°ΡˆΠ°Ρ‚Π° смСтка, Π½Π΅ Π³ΡƒΠ±Π΅Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅ со салдото:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π”ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ список Π½Π° ситС достапни смСтки:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π“ΠΈ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΈΡΠΏΡ€Π°ΡœΠ°Ρ‡ΠΎΡ‚ ΠΈ ΠΏΡ€ΠΈΠΌΠ°Ρ‡ΠΎΡ‚ ΠΈ Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ салда. Ако ΠΈΡΠΏΡ€Π°ΡœΠ°Ρ‡ΠΎΡ‚ ΠΈ ΠΏΡ€ΠΈΠΌΠ°Ρ‡ΠΎΡ‚ сС исти, Ρ‚ΠΎΠ³Π°Ρˆ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° смСтка ќС сС Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΠΈ:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π’ΠΎ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ‚ Π³ΠΎ слСдимС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° трансакциитС:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, Ρ‚ΠΎΠ° Π΅ сè со Π΄Π΅ΠΌΠΎ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°. ΠŸΠΎΠ΄ΠΎΠ»Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

И Π³Π΅Π½Π΅Ρ€Π°Π»Π½ΠΈΠΎΡ‚ список Π½Π° трансакции:

Π‘Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½: ΠΊΠ°ΠΊΠΎΠ² PoC Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅?

Π‘ΠΎ ΠΎΠ²Π°, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ја Π·Π°Π²Ρ€ΡˆΠΈΠ²ΠΌΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° PoC Π·Π° создавањС Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Citcoin. Π¨Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π·Π° Citcoin Π΄Π° станС ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½Π° ΠΌΡ€Π΅ΠΆΠ° Π·Π° прСнос Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ? ΠœΠ½ΠΎΠ³Ρƒ ΠΌΠ°Π»ΠΊΡƒ:

  • Π’ΠΎ Ρ„Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ смСтка, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ²Π°Ρ‚Π΅Π½ / јавСн ΠΊΠ»ΡƒΡ‡. ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½ΠΈΠΎΡ‚ ΠΊΠ»ΡƒΡ‡ ΠΌΠΎΡ€Π° Π΄Π° сС Ρ‡ΡƒΠ²Π° кај корисникот Π½Π° смСтката, Ρ˜Π°Π²Π½ΠΈΠΎΡ‚ ΠΊΠ»ΡƒΡ‡ ΠΌΠΎΡ€Π° Π΄Π° сС Ρ‡ΡƒΠ²Π° Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚.
  • НаправСтС прСнос Π½Π° ΠΌΠΎΠ½Π΅Ρ‚ΠΈ Π²ΠΎ кој сС користи јавСн ΠΊΠ»ΡƒΡ‡, намСсто ΠΈΠΌΠ΅, Π·Π° Π΄Π° сС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π° корисникот.
  • Π¨ΠΈΡ„Ρ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΈ трансакциитС ΡˆΡ‚ΠΎ ΠΎΠ΄Π°Ρ‚ ΠΎΠ΄ корисникот Π΄ΠΎ сСрвСрот со Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π΅Π½ ΠΊΠ»ΡƒΡ‡.

Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ

Ја ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π²ΠΌΠ΅ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Citcoin со слСднитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Π΄ΠΎΠ΄Π°Ρ˜Ρ‚Π΅ смСтка, Π΄ΠΎΠ±ΠΈΡ˜Ρ‚Π΅ салдо, Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½Π΅Ρ‚Π΅ ја Π²Π°ΡˆΠ°Ρ‚Π° смСтка, ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Ρ‚Π΅ ΠΌΠΎΠ½Π΅Ρ‚ΠΈ ΠΎΠ΄ Π΅Π΄Π½Π° смСтка Π½Π° Π΄Ρ€ΡƒΠ³Π°. Π—Π½Π°Ρ‡ΠΈ, ΡˆΡ‚ΠΎ Π½Π΅ Ρ‡ΠΈΠ½Π΅ΡˆΠ΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅ PoC?

  • Π’Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΡƒΡ‡ΡƒΠ²Π°Ρ‚Π΅ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½ΠΎΡ‚ Π²ΠΎΠΎΠΏΡˆΡ‚ΠΎ ΠΈ Hyperledger Fabric особСно;
  • НаучСтС Π΄Π° користитС ΠΎΠ±Π»Π°Ρ†ΠΈ Π½Π° IBM ΠΈΠ»ΠΈ Amazon;
  • НаучСтС Π³ΠΎ програмскиот јазик JS ΠΈ Π½Π΅ΠΊΠΎΠΈ Π²Π΅Π±-Ρ€Π°ΠΌΠΊΠΈ;
  • Ако Π½Π΅ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС складираат Π½Π΅ Π²ΠΎ Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½, Ρ‚ΡƒΠΊΡƒ Π²ΠΎ посСбна Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ Π½Π°ΡƒΡ‡Π΅Ρ‚Π΅ Π΄Π° сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ‚Π΅, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, со PostgreSQL;
  • И послСдно, Π½ΠΎ Π½Π΅ ΠΈ Π½Π°Ρ˜ΠΌΠ°Π»ΠΊΡƒ Π²Π°ΠΆΠ½ΠΎ - Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΆΠΈΠ²Π΅Π΅Ρ‚Π΅ Π²ΠΎ соврСмСниот свСт Π±Π΅Π· познавањС Π½Π° Linux!)

Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, Ρ‚ΠΎΠ° Π½Π΅ Π΅ Ρ€Π°ΠΊΠ΅Ρ‚Π½Π° Π½Π°ΡƒΠΊΠ°, Π½ΠΎ ќС ΠΌΠΎΡ€Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΏΠΎΡ€Π½ΠΎ!

Π˜Π·Π²ΠΎΡ€ΠΈ Π½Π° GitHub

Π˜Π·Π²ΠΎΡ€ΠΈ стави Π½Π° GitHub. ΠšΡ€Π°Ρ‚ΠΎΠΊ опис Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ:
ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ «сСрвСр» β€” Π‘Π΅Ρ€Π²Π΅Ρ€ Node.js
ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚Β» β€” Node.js ΠΊΠ»ΠΈΠ΅Π½Ρ‚
ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Β«blockchainβ€ž(врСдноститС ΠΈ ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ ΠΈ сС Π΄Π°Π΄Π΅Π½ΠΈ само ΠΊΠ°ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€):

  • Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ - ΠΈΠ·Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€
  • ΠΏΠ°Ρ€ΠΈΡ‡Π½ΠΈΠΊ β€” кориснички ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Hyperledger Fabric API.
  • *.cds - ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΈ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈ
  • *.json Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ - ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° конфигурациски Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Hyperledger Fabric API

Π’ΠΎΠ° Π΅ само ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊ!

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€