Hyperledger Fabric para sa mga Dummies

Usa ka Blockchain Platform alang sa Enterprise

Hyperledger Fabric para sa mga Dummies

Maayong hapon, minahal nga mga magbabasa, ang akong ngalan mao si Nikolai Nefedov, ako usa ka teknikal nga espesyalista sa IBM, niining artikuloha gusto nakong ipaila kanimo ang plataporma sa blockchain - Hyperledger Fabric. Ang plataporma gituyo alang sa pagtukod sa lebel sa negosyo nga mga aplikasyon sa negosyo (Enterprise class). Ang lebel sa artikulo alang sa dili andam nga mga magbabasa nga adunay sukaranan nga kahibalo sa mga teknolohiya sa IT.

Ang Hyperledger Fabric usa ka open-source nga proyekto, usa sa mga sanga sa Hyperledger open source project, usa ka consortium sa Linux Foundation. Ang Hyperledger Fabric orihinal nga gilusad sa Digital Assets ug IBM. Ang nag-unang bahin sa plataporma sa Hyperledger Fabric mao ang pagtutok niini sa mga aplikasyon sa korporasyon. Busa, ang plataporma naugmad nga gikonsiderar ang taas nga tulin sa mga transaksyon ug ang ilang mubu nga gasto, ingon man ang pag-ila sa tanan nga mga partisipante. Kini nga mga benepisyo nakab-ot pinaagi sa pagbulag sa serbisyo sa pag-verify sa transaksyon ug paghimo og bag-ong mga bloke sa gipang-apod-apod nga rehistro, ingon man paggamit sa usa ka awtoridad sa sertipiko ug pagtugot sa mga partisipante.

Ang akong artikulo kabahin sa serye sa mga artikulo bahin sa Hyperledger Fabric diin atong gihulagway ang proyekto sa usa ka sistema sa pagparehistro sa mga estudyante nga mosulod sa unibersidad.

Kinatibuk-ang arkitektura sa Hyperledger Fabric

Ang Hyperledger Fabric usa ka gipang-apod-apod nga network nga blockchain nga gilangkuban sa lainlaing mga sangkap nga magamit nga gi-install sa mga node sa network. Ang mga sangkap sa Hyperledger Fabric mao ang mga sudlanan sa Docker nga libre nga ma-download gikan sa DockerHub. Ang Hyperledger Fabric mahimo usab nga ipadagan sa usa ka palibot sa Kubernetes.

Sa pagsulat sa mga smart nga kontrata (chaincode sa konteksto sa Hyperledger Fabric), gigamit namo ang Golang (bisan tuod ang Hyperledger Fabric nagtugot kanimo sa paggamit sa ubang mga pinulongan). Aron makahimo og custom nga aplikasyon, sa among kaso, ang Node.js gigamit sa katugbang nga Hyperledger Fabric SDK.

Ang mga node nagpadagan sa lohika sa negosyo (smart nga kontrata) - chaincode, tipigan ang estado sa gipang-apod-apod nga rehistro (data sa ledger) ug ipatuman ang ubang mga serbisyo sa sistema sa platform. Ang usa ka node usa lamang ka lohikal nga yunit, ang lainlaing mga node mahimong maglungtad sa parehas nga pisikal nga server. Ang labi ka hinungdanon kung giunsa ang mga node gi-grupo (Gisaligan nga domain) ug kung unsang mga gimbuhaton sa network nga blockchain ang ilang gilambigit.

Ang kinatibuk-ang arkitektura ingon niini:

Hyperledger Fabric para sa mga Dummies

Hulagway 1. Kinatibuk-ang Arkitektura sa Hyperledger Fabric

Ang aplikasyon sa gumagamit (Pagsumite sa Kliyente) usa ka aplikasyon diin ang mga tiggamit nagtrabaho kauban ang network nga blockchain. Aron magtrabaho, kinahanglan ka nga moagi sa pagtugot ug adunay angay nga mga katungod alang sa lainlaing mga lahi sa mga aksyon sa network.

Ang mga kaedad (Nodes) adunay daghang mga tahas:

  • Ang Pag-endorso sa Peer usa ka node nga nagsundog sa pagpatuman sa usa ka transaksyon (nagpatuman sa smart contract code). Human ma-validate ug mapatuman ang smart contract, ibalik sa node ang resulta sa execution sa aplikasyon sa kliyente kauban ang pirma niini.
  • Ang Serbisyo sa Pag-order usa ka gipang-apod-apod nga serbisyo sa daghang mga node, gigamit kini aron maporma ang bag-ong mga bloke sa gipang-apod-apod nga ledger ug maghimo usa ka han-ay alang sa pagpatuman sa mga transaksyon. Ang Serbisyo sa Pag-order wala magdugang bag-ong mga bloke sa rehistro (Gibalhin sa Pag-commit sa mga Kaedad alang sa mas maayo nga pasundayag).
  • Committing Peer - usa ka node nga adunay giapod-apod nga rehistro ug nagdugang bag-ong mga bloke sa rehistro (nga giumol sa Serbisyo sa Pag-order). Ang tanan nga Nagpasalig nga mga Kaedad adunay lokal nga kopya sa gipang-apod-apod nga ledger. Ang Committing Peer, sa dili pa magdugang ug bag-ong block sa lokal, magsusi sa tanang transaksyon sulod sa block para sa validity.

Ang Patakaran sa Pag-endorso usa ka polisiya sa pagsusi sa usa ka transaksyon alang sa pagkabalido. Kini nga mga palisiya naghubit sa gikinahanglan nga hugpong sa mga node diin ang smart nga kontrata kinahanglang ipatuman aron ang transaksyon mailhan nga balido.

Ang Distributed Registry - Lerger - naglangkob sa duha ka bahin: WolrldState (gitawag usab nga State DataBase) ug BlockChain.

Ang BlockChain usa ka kutay sa mga bloke nga nagtipig sa mga rekord sa tanan nga mga pagbag-o nga nahitabo sa gipang-apod-apod nga mga butang sa ledger.

Ang WolrldState usa ka giapod-apod nga sangkap sa rehistro nga nagtipig sa karon (grabe) nga mga kantidad sa tanan nga gipang-apod-apod nga mga butang sa rehistro.

Ang WorldState usa ka database, sa sukaranan nga bersyon - LevelDB o mas komplikado - CouchDB, nga adunay sulud nga mga pares nga kantidad, pananglitan: Unang ngalan - Ivan, Apelyido - Ivanov, petsa sa pagparehistro sa sistema - 12.12.21/17.12.1961/XNUMX, petsa sa pagkatawo - XNUMX/XNUMX/XNUMX, ug uban pa. Ang WorldState ug ang gipang-apod-apod nga ledger kinahanglan nga makanunayon sa tanan nga mga miyembro sa usa ka gihatag nga channel.

Tungod kay ang Hyperledger Fabric usa ka network diin ang tanan nga mga partisipante nahibal-an ug napamatud-an, usa ka gipahinungod nga awtoridad sa sertipikasyon ang gigamit dinhi - CA (Certification Authority). Ang CA naglihok pinasikad sa X.509 standard ug public key infrastructure - PKI.

Ang Serbisyo sa Membership usa ka serbisyo diin ang mga miyembro nagpamatuod nga ang usa ka butang iya sa usa ka partikular nga organisasyon o channel.

Ang usa ka transaksyon, sa kadaghanan nga mga kaso, usa ka rekord sa bag-ong datos sa usa ka gipang-apod-apod nga ledger.
Adunay usab mga transaksyon alang sa paghimo sa mga channel o mga smart nga kontrata. Ang transaksyon gisugdan sa aplikasyon sa gumagamit ug gitapos sa usa ka pagsulat sa gipang-apod-apod nga ledger.

Ang Channel (Channel) usa ka sirado nga subnet nga gilangkuban sa duha o daghan pa nga mga partisipante sa network nga blockchain, nga gidisenyo aron magpahigayon mga kompidensyal nga transaksyon sa sulod sa usa ka limitado, apan nahibal-an, lingin sa mga partisipante. Ang channel gitino sa mga partisipante, ang gipang-apod-apod nga ledger, mga smart nga kontrata, Serbisyo sa Pag-order, WorldState. Ang matag miyembro sa channel kinahanglan nga awtorisado sa pag-access sa channel ug adunay katungod sa paghimo sa lain-laing mga matang sa mga transaksyon. Ang pagtugot gihimo gamit ang Membership Service.

Kasagaran nga senaryo sa pagpatuman sa transaksyon

Sunod, gusto nakong hisgutan ang usa ka tipikal nga senaryo sa pagpatuman sa usa ka transaksyon gamit ang panig-ingnan sa among proyekto.

Isip kabahin sa among internal nga proyekto, naghimo kami og Hyperledger Fabric network, nga gidesinyo sa pagparehistro ug pagrekord sa mga estudyante nga mosulod sa mga unibersidad. Ang among network naglangkob sa duha ka mga organisasyon, nga gipanag-iya sa Unibersidad A ug Unibersidad B. Ang matag organisasyon adunay sulud nga aplikasyon sa kliyente, ingon man ang kaugalingon nga Pagpasalig ug Pag-endorso sa Peer. Gigamit usab namo ang komon nga Serbisyo sa Pag-order, Serbisyo sa Memebership ug Awtoridad sa Sertipikasyon.

1) Pagsugod sa Transaksyon

Ang aplikasyon sa gumagamit, gamit ang Hyperledger Fabric SDK, nagsugod sa usa ka hangyo sa transaksyon ug nagpadala sa hangyo sa mga node nga adunay mga smart nga kontrata. Ang hangyo mahimong usbon o basahon gikan sa usa ka distributed ledger (Ledger). Kung atong tagdon ang usa ka pananglitan sa atong pagsulay nga pagsumpo sa sistema alang sa accounting alang sa mga estudyante sa unibersidad, nan ang aplikasyon sa kliyente nagpadala sa usa ka hangyo sa transaksyon sa mga node sa mga unibersidad A ug B, nga gilakip sa polisiya sa Endorsement sa gitawag nga smart contract. Ang Node A kay usa ka node nga nahimutang sa unibersidad nga nagparehistro sa umaabot nga estudyante, ug ang node B usa ka node nga nahimutang sa laing unibersidad. Aron ang usa ka transaksyon ma-save sa usa ka gipang-apod-apod nga ledger, gikinahanglan nga ang tanan nga mga node nga, sumala sa lohika sa negosyo, kinahanglan nga aprobahan ang transaksyon, malampuson nga magpatuman sa mga smart nga kontrata nga adunay parehas nga resulta. Ang aplikasyon sa gumagamit sa node A, gamit ang Hyperledger Fabric SDK nga mga himan, nakadawat sa polisiya sa Pag-endorso (poliya sa pag-apruba) ug nahibal-an kung unsang mga node ang ipadala sa usa ka hangyo sa transaksyon. Kini usa ka hangyo sa pagtawag (paghangyo) sa usa ka piho nga intelihente nga kontrata (chaincode function) aron mabasa o masulat ang piho nga datos sa giapod-apod nga ledger. Sa teknikal, ang kliyente nga SDK naggamit sa katugbang nga function, ang API diin gipasa ang usa ka butang nga adunay mga parameter sa transaksyon, ug nagdugang usab usa ka pirma sa kliyente ug gipadala kini nga datos pinaagi sa protocol buffer sa gRPC sa angay nga mga node (nag-endorso sa mga kaedad).

Hyperledger Fabric para sa mga Dummies
Hulagway 2. Pagsugod sa Transaksyon

2) Smart nga pagpatuman sa kontrata

Ang mga Nodes (Endorsing Peers), nga nakadawat usa ka hangyo nga magpahigayon usa ka transaksyon, susihon ang pirma sa kliyente ug kung ang tanan naa na, unya gikuha nila ang usa ka butang nga adunay data sa hangyo ug nagpadagan usa ka simulation sa pagpatuman sa usa ka intelihente nga kontrata (chaincode function) uban niini nga mga datos. Ang usa ka intelihente nga kontrata mao ang lohika sa negosyo sa usa ka transaksyon, usa ka piho nga hugpong sa mga kondisyon ug mga panudlo (sa among kaso, kini usa ka tseke sa estudyante, bag-ong estudyante ba, o narehistro na ba siya, pagsusi sa edad, ug uban pa). Aron mapatuman ang usa ka intelihenteng kontrata, kinahanglan usab nimo ang datos gikan sa WorldState. Isip resulta sa smart contract simulation sa Endorsing peer, duha ka data sets ang nakuha - Read Set and Write Set. Read Set ug Write Set mao ang orihinal ug bag-ong WorldState values. (bag-o - sa kahulugan nga nakuha pinaagi sa pagsundog sa usa ka smart nga kontrata).

Hyperledger Fabric para sa mga Dummies
Hulagway 3. Smart nga pagpatuman sa kontrata

3) Pagbalik sa datos sa aplikasyon sa kliyente

Pagkahuman sa simulation sa smart contract, ang Endorsing Peers mobalik sa aplikasyon sa kliyente ang inisyal nga datos ug ang resulta sa simulation, ingon man ang RW Set nga gipirmahan sa ilang sertipiko. Niini nga yugto, walay mga pagbag-o sa gipang-apod-apod nga ledger. Gipamatud-an sa aplikasyon sa kliyente ang pirma sa Endorsing Peer, ug gitandi usab ang orihinal nga datos sa transaksyon nga gipadala ug ang datos nga mibalik (nga mao, gisusi kung ang orihinal nga datos kung diin gi-simulate ang transaksyon nadaot). Kung ang transaksyon alang lamang sa pagbasa sa datos gikan sa registry, nan ang aplikasyon sa kliyente makadawat sa gikinahanglan nga Read Set, ug niini, ang transaksyon kasagaran makompleto nga malampuson nga walay pagbag-o sa gipang-apod-apod nga rehistro. Sa kaso sa usa ka transaksyon nga kinahanglan magbag-o sa datos sa rehistro, ang aplikasyon sa kliyente dugang nga susihon kung ang palisiya sa Pag-endorso gipatuman. Posible nga ang aplikasyon sa kliyente dili magsusi sa resulta sa pagpatuman sa Patakaran sa Pag-endorso, apan ang plataporma sa Hyperledger Fabric niini nga kaso naghatag alang sa pagsusi sa mga palisiya sa mga node (Comitting Peers) sa yugto sa pagdugang sa usa ka transaksyon sa rehistro.

Hyperledger Fabric para sa mga Dummies
Hulagway 4. Pagbalik sa datos sa aplikasyon sa kliyente

4) Pagpadala sa mga set sa RW sa Pag-order sa mga Kaedad

Ang aplikasyon sa kliyente nagpadala sa transaksyon kauban ang mga may kalabutan nga datos sa serbisyo sa Pag-order. Naglakip kini sa RW Set, mga pirma sa Pag-endorso sa mga kauban, ug ang Channel ID.

Serbisyo sa pag-order - base sa ngalan, ang panguna nga gimbuhaton sa kini nga serbisyo mao ang paghimo sa umaabot nga mga transaksyon sa husto nga pagkasunod-sunod. Ingon man usab ang pagporma sa usa ka bag-ong bloke sa gipang-apod-apod nga rehistro ug gigarantiyahan nga paghatud sa mga bag-ong namugna nga mga bloke sa tanan nga mga Node sa Pag-commit, sa ingon gisiguro ang pagkamakanunayon sa datos sa tanan nga mga node nga adunay sulud nga na-apod-apod nga rehistro (Paghimo mga kaubanan). Sa parehas nga oras, ang serbisyo sa Pag-order mismo wala magbag-o sa rehistro sa bisan unsang paagi. Ang Serbisyo sa Pag-order usa ka hinungdanon nga sangkap sa sistema, busa kini usa ka pundok sa daghang mga node. Ang Serbisyo sa Pag-order wala magsusi sa transaksyon alang sa balido, kini nagdawat lamang sa usa ka transaksyon nga adunay usa ka piho nga channel ID, naghan-ay sa umaabot nga mga transaksyon sa usa ka piho nga han-ay, ug nagporma og bag-ong mga bloke sa gipang-apod-apod nga ledger gikan kanila. Ang Usa ka Serbisyo sa Pag-order mahimong magsilbi daghang mga channel sa parehas nga oras. Ang Serbisyo sa Pag-order naglakip sa usa ka cluster sa Kafka, nga nagmintinar sa husto (wala mausab) nga pila sa mga transaksyon (tan-awa ang punto 7).

Hyperledger Fabric para sa mga Dummies
Hulagway 5. Pagpadala sa mga set sa RW ngadto sa Pag-order sa mga Kaedad

5) Pagpadala namugna nga mga bloke sa Committing Peer

Ang mga bloke nga naporma sa Serbisyo sa Pag-order gisibya sa tanan nga mga node sa network. Ang matag node, nga nakadawat usa ka bag-ong bloke, gisusi kini alang sa pagsunod sa Patakaran sa Pag-endorso, gisusi nga ang tanan nga Nag-endorso nga mga Kaedad nakadawat parehas nga sangputanan (Isulat ang Set) ingon usa ka sangputanan sa simulation sa intelihente nga kontrata, ug gisusi usab kung ang orihinal nga mga kantidad adunay nausab (nga mao, - Read Set - data nga gibasa sa smart nga kontrata gikan sa WorldState) sukad sa pagsugod sa transaksyon. Kung ang tanan nga mga kondisyon matuman, ang transaksyon gimarkahan nga balido, kung dili, ang transaksyon makadawat sa kahimtang nga dili balido.

Hyperledger Fabric para sa mga Dummies
Hulagway 6. Nagpadala ug namugna nga mga bloke ngadto sa Committing Peer

6) Pagdugang og block sa registry

Ang matag node nagdugang usa ka transaksyon sa lokal nga kopya sa gipang-apod-apod nga ledger, ug kung ang transaksyon balido, unya ang Write Set magamit sa WorldState (kasamtangan nga estado), matag usa, ang mga bag-ong kantidad sa mga butang nga naapektuhan sa transaksyon gisulat. . Kung ang usa ka transaksyon nakadawat usa ka timaan nga dili balido (pananglitan, adunay duha nga mga transaksyon nga adunay parehas nga mga butang sa sulod sa parehas nga bloke, nan ang usa sa mga transaksyon dili balido, tungod kay ang orihinal nga mga kantidad giusab na sa lain nga transaksyon. ). Kini nga transaksyon gidugang usab sa gipang-apod-apod nga ledger nga adunay dili balido nga marka, apan ang Write Set niini nga transaksyon wala magamit sa kasamtangan nga kahimtang sa WorldState ug, sumala niana, wala mag-usab sa mga butang nga miapil sa transaksyon. Pagkahuman niana, ang usa ka pahibalo gipadala sa aplikasyon sa gumagamit nga ang transaksyon gidugang sa gipang-apod-apod nga ledger hangtod sa hangtod, ingon man ang kahimtang sa transaksyon, kana, kung kini balido o dili ...

Hyperledger Fabric para sa mga Dummies
Hulagway 7. Pagdugang og block sa registry

PAG-ORDER NGA SERBISYO

Ang Serbisyo sa Pag-order naglangkob sa usa ka cluster sa Kafka nga adunay katugbang nga ZooKeeper node ug usa ka Ordering Service Nodes (OSN) nga naglingkod taliwala sa mga kliyente sa serbisyo sa Pag-order ug sa Kafka Cluster. Ang Kafka cluster kay usa ka distributed, fault-tolerant flow (message) management platform. Ang matag channel (topic) sa Kafka usa ka dili mausab nga han-ay sa mga rekord nga nagsuporta lamang sa pagdugang og bag-ong rekord (dili mahimo ang pagtangtang sa usa nga anaa na). Usa ka ilustrasyon sa istruktura sa hilisgutan gihatag sa ubos. Kini mao ang kabtangan sa Kafka nga gigamit sa pagtukod sa blockchain plataporma.

Hyperledger Fabric para sa mga Dummies
gikuha gikan sa kafka.apache.org

  • Hulagway 8. Istruktura sa Topic sa Pag-order sa Serbisyo*

Mapuslanon nga mga link

Youtube - Pagtukod ug blockchain para sa negosyo gamit ang Hyperledger Project
Mga Dokumento sa Panapton sa Hyperledger
Hyperledger nga panapton: usa ka gipang-apod-apod nga operating system alang sa gitugotan nga mga blockchain

Mga Pasalamat

Akong ipahayag ang akong dakong pasalamat sa akong mga kauban sa ilang tabang sa pag-andam sa artikulo:
Nikolai Marina
Igor Khapov
Dmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Source: www.habr.com

Idugang sa usa ka comment