Indwangu ye-Hyperledger ye-Dummies

I-Blockchain Platform ye-Enterprise

Indwangu ye-Hyperledger ye-Dummies

Ntambama enhle, bafundi abathandekayo, igama lami nginguNikolai Nefedov, nginguchwepheshe wezobuchwepheshe we-IBM, kulesi sihloko ngingathanda ukukukwazisa endaweni yesikhulumi se-blockchain - Indwangu ye-Hyperledger. Inkundla yenzelwe ukwakha izicelo zebhizinisi ezisezingeni lebhizinisi (Ikilasi lebhizinisi). Izinga le-athikili ngelabafundi abangalungiselelwe abanolwazi oluyisisekelo lobuchwepheshe be-IT.

I-Hyperledger Fabric iphrojekthi yomthombo ovulekile, elinye lamagatsha ephrojekthi yomthombo ovulekile we-Hyperledger, umfelandawonye we-Linux Foundation. I-Hyperledger Fabric yethulwa ekuqaleni yi-Digital Assets kanye ne-IBM. Isici esiyinhloko se-platform ye-Hyperledger Fabric ukugxila kwayo kuzinhlelo zokusebenza zezinkampani. Ngakho-ke, isiteji sathuthukiswa ngokucabangela isivinini esikhulu sokuthengiselana kanye nezindleko zabo eziphansi, kanye nokuhlonza bonke abahlanganyeli. Lezi zinzuzo zifinyelelwa ngokuhlukanisa isevisi yokuqinisekisa umsebenzi kanye nokwenza amabhulokhi amasha okubhaliswa okusabalalisiwe, kanye nokusebenzisa igunya lesitifiketi nokugunyaza ababambiqhaza.

I-athikili yami iyingxenye yochungechunge lwezihloko ezimayelana ne-Hyperledger Fabric lapho sichaza khona iphrojekthi yesistimu yokubhalisa abafundi abangena enyuvesi.

Izakhiwo ezijwayelekile ze-Hyperledger Fabric

I-Hyperledger Fabric iyinethiwekhi ye-blockchain esabalalisiwe ehlanganisa izingxenye ezihlukahlukene zokusebenza ezifakwe kumanodi enethiwekhi. Izingxenye ze-Hyperledger Fabric iziqukathi ze-Docker ezingalandwa mahhala ku-DockerHub. I-Hyperledger Fabric ingaphinda isetshenziswe endaweni ye-Kubernetes.

Ukubhala izinkontileka ezihlakaniphile (chaincode kumongo we-Hyperledger Fabric), sisebenzise i-Golang (yize i-Hyperledger Fabric ikuvumela ukuthi usebenzise ezinye izilimi). Ukuze kuthuthukiswe uhlelo lokusebenza olungokwezifiso, esimweni sethu, i-Node.js isetshenziswe ne-Hyperledger Fabric SDK ehambisanayo.

Ama-node asebenzisa ingqondo yebhizinisi (inkontileka ehlakaniphile) - i-chaincode, igcina isimo sokubhaliswa esabalalisiwe (idatha ye-ledger) futhi isebenzise ezinye izinsizakalo zesistimu yesikhulumi. I-node iyiyunithi enengqondo kuphela, ama-node ahlukene angaba khona kuseva yomzimba efanayo. Okubaluleke kakhulu ukuthi ama-node aqoqwe kanjani (isizinda esithenjwayo) nokuthi yimiphi imisebenzi yenethiwekhi ye-blockchain ehlotshaniswa nayo.

Isakhiwo esijwayelekile sibukeka kanje:

Indwangu ye-Hyperledger ye-Dummies

Isithombe 1. I-General Architecture ye-Hyperledger Fabric

Uhlelo lokusebenza lomsebenzisi (Ukuthumela Iklayenti) uhlelo lokusebenza abasebenzisi abasebenza ngalo nenethiwekhi ye-blockchain. Ukuze usebenze, udinga ukudlula ekugunyazweni futhi ube namalungelo afanelekile ezinhlobonhlobo zezenzo kunethiwekhi.

Ontanga (Node) beza ngezindima ezimbalwa:

  • Ukuvumela Kontanga kuyinodi elingisa ukwenziwa komsebenzi (isebenzisa ikhodi yenkontileka ehlakaniphile). Ngemva kokuqinisekisa nokusebenzisa inkontileka ehlakaniphile, i-node ibuyisela imiphumela yokubulawa kuhlelo lokusebenza lweklayenti kanye nesiginesha yalo.
  • Isevisi yoku-oda iyisevisi esabalalisiwe kumanodi amaningana, isetshenziselwa ukwakha amabhulokhi amasha weleja esabalalisiwe futhi idale ukulandelana kokwenza ukuthengiselana. Isevisi yoku-oda ayiwengezi amabhulokhi amasha kusibhalisi (Kuhanjiswe Kontanga Yokuzinikela ukuze kusebenze kangcono).
  • I-Committing Peer - i-node equkethe ukubhaliswa esabalalisiwe futhi yengeza amabhulokhi amasha kurejista (akhiwe Isevisi yoku-oda). Bonke Ontanga Abazibophezela baqukethe ikhophi yendawo yeleja esabalalisiwe. Untanga Ozibophezelayo, ngaphambi kokwengeza ibhulokhi entsha endaweni, uhlola konke okwenziwayo ngaphakathi kwebhulokhi ukuze kusebenze.

Inqubomgomo Yokugunyaza inqubomgomo yokuhlola okwenziwayo ukuthi kuyasebenza yini. Lezi zinqubomgomo zichaza isethi edingekayo yama-node lapho kufanele kwenziwe inkontileka ehlakaniphile ukuze okwenziwayo kuqashelwe njengokuvumelekile.

I-Distributed Registry - Lerger - iqukethe izingxenye ezimbili: i-WolrldState (ebizwa nangokuthi i-State DataBase) kanye ne-BlockChain.

I-BlockChain iwuchungechunge lwamabhulokhi agcina amarekhodi azo zonke izinguquko ezenzeke ezintweni zeleja esabalalisiwe.

I-WolrldState iyingxenye yokubhalisa esabalalisiwe egcina amanani amanje (adlulele) azo zonke izinto zokubhalisa ezisabalalisiwe.

I-WorldState iyisizinda semininingwane, enguqulweni eyisisekelo - i-LevelDB noma eyinkimbinkimbi - i-CouchDB, equkethe amapheya enani elingukhiye, isibonelo: Igama lokuqala - u-Ivan, Isibongo - Ivanov, usuku lokubhalisa ohlelweni - 12.12.21/17.12.1961/XNUMX, usuku ukuzalwa - XNUMX/XNUMX/XNUMX, njll. I-WorldState kanye neleja esabalalisiwe kufanele ihambisane kuwo wonke amalungu esiteshi esithile.

Njengoba i-Hyperledger Fabric iyinethiwekhi lapho bonke ababambiqhaza baziwa futhi bagunyazwa khona, igunya lokunikeza izitifiketi elizinikele lisetshenziswa lapha - i-CA (Isiphathimandla Sokugunyazwa). I-CA isebenza ngesisekelo sengqalasizinda engukhiye ye-X.509 kanye nokhiye womphakathi - i-PKI.

Isevisi yobulungu iyisevisi amalungu aqinisekisa ngayo ukuthi into ethile ingeyenhlangano noma isiteshi esithile.

Okwenziwayo, ezimweni eziningi, kuyirekhodi ledatha entsha kubhukwana esabalalisiwe.
Kukhona nemisebenzi yokwakhiwa kwamashaneli noma izinkontileka ezihlakaniphile. Umsebenzi uqalwa uhlelo lokusebenza lomsebenzisi futhi uphetha ngokubhalela ileja esabalalisiwe.

Isiteshi (Isiteshi) iyinethiwekhi engaphansi evaliwe enabahlanganyeli ababili noma ngaphezulu kunethiwekhi ye-blockchain, eklanyelwe ukwenza imisebenzi eyimfihlo ngaphakathi kombuthano olinganiselwe, kodwa owaziwayo, wabahlanganyeli. Isiteshi sinqunywa ababambiqhaza, ileja yaso esabalalisiwe, izinkontileka ezihlakaniphile, Isevisi yoku-oda, i-WorldState. Ilungu ngalinye lesiteshi kufanele ligunyazwe ukufinyelela esiteshini futhi libe nelungelo lokwenza izinhlobo ezihlukahlukene zokuthengiselana. Ukugunyazwa kwenziwa kusetshenziswa Isevisi Yobulungu.

Isehlakalo sokwenziwe esijwayelekile

Okulandelayo, ngithanda ukukhuluma ngesimo esijwayelekile sokwenza umsebenzi usebenzisa isibonelo sephrojekthi yethu.

Njengengxenye yephrojekthi yethu yangaphakathi, sidale inethiwekhi ye-Hyperledger Fabric, eklanyelwe ukubhalisa nokuqopha abafundi abangena emanyuvesi. Inethiwekhi yethu iqukethe izinhlangano ezimbili, ezingaphansi kweNyuvesi A kanye neNyuvesi B. Inhlangano ngayinye iqukethe isicelo seklayenti, kanye Nontanga yayo Yokuzibophezela kanye Nokuvumela. Siphinde futhi sisebenzise Isevisi yoku-oda evamile, Isevisi Yobulungu kanye nezinsizakalo Zeziphathimandla Zokunikeza Izitifiketi.

1) Ukuqaliswa kokwenziwayo

Uhlelo lokusebenza lomsebenzisi, lisebenzisa i-Hyperledger Fabric SDK, liqala isicelo sokuthenga futhi lithumela isicelo kumanodi anezinkontileka ezihlakaniphile. Isicelo kungaba wukushintsha noma ukufundwa ebhukwini elisabalalisiwe (Ledger). Uma sicabangela isibonelo sokucushwa kwethu kokuhlolwa kwesistimu yokubalwa kwezimali kwabafundi basenyuvesi, isicelo seklayenti sithumela isicelo somsebenzi kumanodi amanyuvesi A no-B, afakwe kunqubomgomo Yokugunyaza ebizwa ngokuthi inkontileka ehlakaniphile. I-Node A iyinodi etholakala enyuvesi ebhalisa umfundi ongenayo, kanti indawo engu-B iyinodi etholakala kwenye inyuvesi. Ukuze umsebenzi ulondolozwe kubhukwana esabalalisiwe, kuyadingeka ukuthi wonke amanodi lawo, ngokuya ngengqondo yebhizinisi, agunyaze okwenziwayo, enze ngempumelelo izinkontileka ezihlakaniphile ngomphumela ofanayo. Ukusetshenziswa komsebenzisi kwe-node A, kusetshenziswa amathuluzi we-Hyperledger Fabric SDK, kuthola inqubomgomo Yokugunyaza (inqubomgomo yokugunyaza) futhi ithola ukuthi yimaphi ama-node ongathumela kuwo isicelo sokuthengiselana. Lesi isicelo sokushayela (ukunxenxa) inkontileka ethile ehlakaniphile (umsebenzi we-chaincode) ukuze ufunde noma ubhale idatha ethile kubhukwana esabalalisiwe. Ngobuchwepheshe, i-SDK yeklayenti isebenzisa umsebenzi ohambisanayo, i-API edluliswa into enemingcele yokwenziwayo, futhi ingeza isiginesha yeklayenti futhi ithumele le datha ngephrothokholi yesivimba phezu kwe-gRPC kumanodi afanelekile (okuvumela ontanga).

Indwangu ye-Hyperledger ye-Dummies
Isithombe 2. Ukuqaliswa Kokwenziwayo

2) Ukusebenzisa inkontileka ehlakaniphile

Ama-Node (Oontanga Abavumayo), ngemva kokuthola isicelo sokwenza ukuthengiselana, hlola isiginesha yeklayenti futhi uma konke kuhamba ngohlelo, bese bethatha into enedatha yesicelo bese beqhuba ukulingisa kokwenziwa kwenkontileka ehlakaniphile (umsebenzi we-chaincode) nale datha. Inkontileka ehlakaniphile iwumqondo webhizinisi wokuthengiselana, isethi ethile yemibandela nemiyalelo (kithi, leli isheke labafundi, ingabe umfundi omusha, noma usebhalisiwe kakade, isheke leminyaka yobudala, njll.). Ukuze wenze inkontileka ehlakaniphile, uzodinga futhi idatha evela ku-WorldState. Njengomphumela wokulingisa kwenkontileka ehlakaniphile kontanga Abavumayo, kutholwa amasethi edatha amabili - Isethi Yokufunda bese Ubhala Isethi. I-Read Set and Write Set ingamagugu okuqala namasha e-WorldState. (okusha - ngomqondo otholwe ngokulingisa inkontileka ehlakaniphile).

Indwangu ye-Hyperledger ye-Dummies
Isithombe 3. Ukwenziwa kwenkontileka ngobuhlakani

3) Ukubuyisela idatha kuhlelo lokusebenza lweklayenti

Ngemva kokulingisa inkontileka ehlakaniphile, I-Endorsing Peers ibuyisela kuhlelo lokusebenza lweklayenti idatha yokuqala kanye nomphumela wokulingisa, kanye ne-RW Set esayinwe yisitifiketi sabo. Kulesi sigaba, azikho izinguquko kubhukwana esabalalisiwe. Uhlelo lokusebenza lweklayenti luqinisekisa isiginesha Yontanga Abavumayo, futhi luqhathanisa idatha yokwenziwayo yoqobo ethunyelwe kanye nedatha ebuyisiwe (okungukuthi, ihlola ukuthi ingabe idatha yoqobo umsebenzi owenziwe kuyo yonakele yini). Uma okwenziwayo bekuwukufunda idatha kuphela ebhukwini, isicelo seklayenti ngokufanele sithola i-Read Set edingekayo, futhi kulokhu okwenziwayo kuvame ukuqeda ngempumelelo ngaphandle kokushintsha ukubhalisa okusabalalisiwe. Esimeni somsebenzi okufanele uguqule idatha ekubhalisweni, uhlelo lokusebenza lweklayenti ngokungeziwe luhlola ukuthi ingabe inqubomgomo Yokuvumela isetshenzisiwe yini. Kungenzeka ukuthi isicelo seklayenti asihloli umphumela wokwenziwa kweNqubomgomo Yokuvuma, kodwa isiteji se-Hyperledger Fabric kuleli cala sihlinzeka ngokuhlola izinqubomgomo kuma-nodes (Committing Peers) esigabeni sokwengeza ukuthengiselana kubhalisi.

Indwangu ye-Hyperledger ye-Dummies
Isithombe 4: Ukubuyisela idatha kuhlelo lweklayenti

4) Ukuthumela amasethi e-RW Koku-oda Ontanga

Uhlelo lokusebenza lweklayenti luthumela okwenziwayo kanye nedatha ehlobene kusevisi yoku-oda. Lokhu kuhlanganisa i-RW Set, amasiginesha ontanga Abavumayo, kanye ne-ID yesiteshi.

Isevisi yoku-oda - ngokusekelwe egameni, umsebenzi oyinhloko wale sevisi ukwakha ukuthengiselana okungenayo ngendlela efanele. Kanye nokwakhiwa kwebhulokhi entsha yokubhalisa esabalalisiwe kanye nokulethwa okuqinisekisiwe kwamabhulokhi akhiqiziwe kuwo wonke ama-Commiting nodes, ngaleyo ndlela kuqinisekiswe ukuhambisana kwedatha kuwo wonke ama-node aqukethe ukubhaliswa okusabalalisiwe (Ukuhlanganyela kontanga). Ngesikhathi esifanayo, isevisi yoku-oda ngokwayo ayishintshi ukubhalisa nganoma iyiphi indlela. Isevisi yoku-oda iyingxenye ebalulekile yesistimu, ngakho iyiqoqo lamanodi amaningana. Isevisi yoku-oda ayihloli okwenziwayo ukuthi uyasebenza yini, ivele yamukele okwenziwayo nge-ID yesiteshi esithile, ihlele okwenziwayo okungenayo ngokulandelana okuthile, futhi yakha amabhulokhi amasha eleja esabalalisiwe esuka kubo. Isevisi yoku-oda eyodwa inganikeza iziteshi ezimbalwa ngesikhathi esisodwa. Isevisi yoku-oda ihlanganisa iqoqo le-Kafka, eligcina ulayini olungile (ongashintshiwe) wemisebenzi (bona iphuzu 7).

Indwangu ye-Hyperledger ye-Dummies
Isithombe 5: Ukuthumela amasethi e-RW Uku-oda Ontanga

5) Ukuthumela amabhlogo akhiqizwe kontanga Yokuzibophezela

Amabhulokhi akhiwe kusevisi yoku-oda asakazwa kuwo wonke ama-node enethiwekhi. I-node ngayinye, lapho ithole ibhulokhi entsha, iyayibheka ukuthi iyahambisana yini neNqubomgomo Yokuvuma, ihlola ukuthi bonke Oontanga Abavumelanayo bathole umphumela ofanayo (Write Set) njengomphumela wokulingisa inkontileka ehlakaniphile, futhi ihlola ukuthi amanani okuqala anawo yini. okushintshiwe (okungukuthi, - Funda Isethi - idatha efundwe yinkontileka ehlakaniphile evela ku-WorldState) kusukela ekuqaleni kokuthengiselana. Uma zonke izimo zihlangatshezwana nazo, ukuthengiselana kumakwa njengokuvumelekile, ngaphandle kwalokho, ukuthengiselana kuthola isimo sokungavumelekile.

Indwangu ye-Hyperledger ye-Dummies
Isithombe 6: Ukuthumela amabhlogo akhiqiziwe Kontanga Abazibophezela

6) Ukwengeza ibhulokhi kurejista

I-node ngayinye yengeza ukuthengiselana kukhophi yayo yendawo yeleja esabalalisiwe, futhi uma ukuthengiselana kusebenza, i-Writ Set isetshenziswa ku-WorldState (isimo samanje), ngokulandelana, amanani amasha ezinto ezithintwe ukuthengiselana ayabhalwa. . Uma ukuthengiselana kuthola ithokheni engavumelekile (isibonelo, bekukhona ukuthengiselana okubili okunezinto ezifanayo ngaphakathi kwebhulokhi efanayo, khona-ke okunye okwenziwe ngeke kusebenze, ngoba amanani okuqala asevele ashintshiwe ngokunye ukuthengiselana. ). Lokhu okwenziwayo kuphinda kwengezwe encwadini esabalalisiwe enomaka ongavumelekile, kodwa Isethi Yokubhala yalokhu kuthenga ayisebenzi esimweni samanje se-WorldState futhi, ngokufanelekile, ayizishintshi izinto ezibambe iqhaza kukwenziwe. Ngemuva kwalokho, isaziso sithunyelwa kuhlelo lokusebenza lomsebenzisi sokuthi umsebenzi wengezwe encwadini esakazwayo unaphakade, kanye nesimo sokwenziwe, okungukuthi, noma ngabe kuvumelekile noma cha ...

Indwangu ye-Hyperledger ye-Dummies
Isithombe 7: Ukwengeza ibhlokhi endaweni yokubhalisa

INKONZO YOKU-ODA

Isevisi yoku-oda iqukethe iqoqo le-Kafka elinamanodi e-ZooKeeper ahambisanayo kanye namaNodi esevisi yoku-oda (OSN) ahlala phakathi kwamaklayenti esevisi yoku-oda kanye ne-Kafka Cluster. Iqoqo le-Kafka liyinkundla yokuphatha (umlayezo) esabalalisiwe, ebekezelela iphutha. Isiteshi ngasinye (isihloko) e-Kafka siwukulandelana okungaguquleki kwamarekhodi asekela kuphela ukungeza irekhodi elisha (ukususa elikhona akwenzeki). Umdwebo wesakhiwo sesihloko unikezwe ngezansi. Yile ndawo yaseKafka esetshenziselwa ukwakha isiteji se-blockchain.

Indwangu ye-Hyperledger ye-Dummies
ithathwe ku-kafka.apache.org

  • Isithombe 8. Uku-oda Isakhiwo Sesihloko Sesevisi*

Izixhumanisi eziwusizo

I-YouTube - Yakha i-blockchain yebhizinisi nge-Hyperledger Project
I-Hyperledger Fabric Docs
Indwangu ye-Hyperledger: isistimu yokusebenza esabalalisiwe yama-blockchain avunyelwe

Ukubonga

Ngizwakalisa ukubonga kwami ​​okujulile kozakwethu ngosizo lwabo ekulungiseleleni lesi sihloko:
U-Nikolai Marina
Igor Khapov
UDmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Source: www.habr.com

Engeza amazwana