Hyperledger Fabric for Dummies

Iqonga leBlockchain yeShishini

Hyperledger Fabric for Dummies

Ngemini emnandi, bafundi abathandekayo, igama lam nguNikolai Nefedov, ndiyingcali yezobuchwepheshe be-IBM, kweli nqaku ndingathanda ukukwazisa kwiqonga le-blockchain - i-Hyperledger Fabric. Iqonga lenzelwe ukwakha izicelo zoshishino lwenqanaba loshishino (Iklasi yeShishini). Inqanaba lenqaku lelabafundi abangalungiswanga abanolwazi olusisiseko lwe-IT technologies.

I-Hyperledger Fabric yiprojekthi yomthombo ovulekileyo, elinye lamasebe eprojekthi yomthombo ovulekileyo we-Hyperledger, i-consortium ye-Linux Foundation. I-Hyperledger Fabric yaqaliswa yi-Digital Assets kunye ne-IBM. Into ephambili yeqonga le-Hyperledger Fabric ligxininise kwizicelo zenkampani. Ngoko ke, iqonga laphuhliswa ngokuqwalasela isantya esiphezulu sokuthengiselana kunye neendleko zabo eziphantsi, kunye nokuchongwa kwabo bonke abathathi-nxaxheba. Ezi zibonelelo zifezekiswa ngokuhlula inkonzo yokuqinisekisa ukuthengiselana kunye nokwenza iibhloko ezintsha zobhaliso olusasazwayo, kunye nokusebenzisa igunya lesatifikethi kunye nokugunyazisa abathathi-nxaxheba.

Inqaku lam liyinxalenye yoluhlu lwamanqaku malunga ne-Hyperledger Fabric apho sichaza iprojekthi yenkqubo yokubhalisa abafundi abangena eyunivesithi.

Uyilo oluqhelekileyo lwe-Hyperledger Fabric

I-Hyperledger Fabric yinethiwekhi ye-blockchain esasazwayo equkethe amacandelo ahlukeneyo asebenzayo afakwe kwiinodi zenethiwekhi. Amacandelo e-Hyperledger Fabric zizikhongozeli ze-Docker ezinokukhutshelwa ngokukhululekileyo kwi-DockerHub. I-Hyperledger Fabric inokuphinda iqhutywe kwindawo ye-Kubernetes.

Ukubhala izivumelwano ezihlakaniphile (i-chaincode kumxholo we-Hyperledger Fabric), sasebenzisa i-Golang (nangona i-Hyperledger Fabric ikuvumela ukuba usebenzise ezinye iilwimi). Ukuphuhlisa isicelo sesiko, kwimeko yethu, i-Node.js isetyenziswe kunye ne-Hyperledger Fabric SDK ehambelanayo.

Iinodes ziqhuba ingqiqo yezoshishino (inkontileka ehlakaniphile) - i-chaincode, igcina i-state registry ehanjiswayo (idatha ye-ledger) kwaye iqhube ezinye iinkonzo zenkqubo yeqonga. I-node yiyunithi enengqiqo kuphela, iindawo ezahlukileyo zinokubakho kumncedisi womzimba ofanayo. Okubaluleke ngakumbi kukuba i-nodes ihlanganiswe njani (i-domain ethembekileyo) kwaye yeyiphi imisebenzi yenethiwekhi ye-blockchain edibene nayo.

Uyilo oluqhelekileyo lujongeka ngolu hlobo:

Hyperledger Fabric for Dummies

Umfanekiso 1. I-Architecture Jikelele ye-Hyperledger Fabric

Isicelo somsebenzisi (Ukuhambisa uMthengi) sisicelo apho abasebenzisi basebenza kunye nenethiwekhi ye-blockchain. Ukuze usebenze, kufuneka uhambe ngokugunyaziswa kwaye ube namalungelo afanelekileyo kwiintlobo ezahlukeneyo zezenzo kwinethiwekhi.

Oontanga (iiNodi) ziza kwiindima ezininzi:

  • I-Endorsing Peer yi-node efanisa ukuphunyezwa kwentengiselwano (iqhuba ikhowudi yekhontrakthi ehlakaniphile). Emva kokuqinisekisa kunye nokwenza isivumelwano esihlakaniphile, i-node ibuyisela iziphumo zokwenziwa kwisicelo somthengi kunye nesiginitsha.
  • Inkonzo yokuodola yinkonzo esasazwayo kwiinodi ezininzi, isetyenziselwa ukwenza iibhloko ezintsha zencwadi esasazwayo kunye nokudala ukulandelelana kokwenziwa kweentengiselwano. Inkonzo yokuodola ayongezi iibhloko ezintsha kwirejistri (Isiwe kwiNtanga yokuZibophelela ukuze usebenze ngcono).
  • I-Committing Peer - i-node equlethe irejistri esasazwayo kwaye yongeza iibhloko ezintsha kwirejista (ezenziwe yiNkonzo yokuLawula). Bonke oontanga abazinikeleyo banekopi yasekuhlaleni yeleja esasaziweyo. Umlingane ozibophelelayo, ngaphambi kokuba wongeze ibhloko entsha ekuhlaleni, ujonga zonke iintengiselwano ngaphakathi kwebhloko ukuba zinyanisekile.

Umgaqo-nkqubo we-Endorsement ngumgaqo-nkqubo wokutshekisha ukuthengiselana ukuba semthethweni. Le migaqo-nkqubo ichaza iiseti eziyimfuneko zekhontrakthi ekufuneka iphunyezwe kuyo ukuze intengiselwano ibonwe njengesebenzayo.

IRejistri eSasazwayo - iLerger - inamacandelo amabini: WolrldState (ekwabizwa ngokuba yi-State DataBase) kunye neBlockChain.

I-BlockChain yitsheyini yeebhloko ezigcina iirekhodi zazo zonke iinguqu ezenzeke kwizinto ezisasazwayo zeleja.

I-WolrldState licandelo lobhaliso elisasaziweyo eligcina amaxabiso angoku (agqithisileyo) azo zonke izinto zobhaliso ezisasaziweyo.

I-WorldState yisiseko sedatha, kuguqulelo olusisiseko - i-LevelDB okanye eyinkimbinkimbi - i-CouchDB, equlethe izibini zexabiso elingundoqo, umzekelo: Igama lokuqala - i-Ivan, i-Surname - Ivanov, umhla wokubhalisa kwinkqubo - 12.12.21/17.12.1961/XNUMX, umhla we ukuzalwa - XNUMX/XNUMX/XNUMX, njl. I-WorldState kunye neleja esasaziweyo kufuneka ihambelane kubo bonke abathathi-nxaxheba kwijelo elinikiweyo.

Ekubeni i-Hyperledger Fabric iyinethiwekhi apho bonke abathathi-nxaxheba baziwa kwaye baqinisekisiwe, igunya lokuqinisekisa elizinikeleyo lisetyenziswa apha - i-CA (iGunya leSitifiketi). I-CA isebenza ngesiseko somgangatho we-X.509 kunye neziseko eziphambili zoluntu - i-PKI.

Inkonzo yobulungu yinkonzo apho amalungu aqinisekisa ukuba into yeyombutho okanye ijelo elithile.

Intengiselwano, kwiimeko ezininzi, yirekhodi yedatha entsha kwileja esasaziweyo.
Kukho neentengiselwano zokwenziwa kwamajelo okanye iikontraki ezihlakaniphile. Intengiselwano iqalwa sisicelo somsebenzisi kwaye iphetha ngokubhalela kwileja esasaziweyo.

I-Channel (Channel) yi-subnet evaliweyo equkethe abathathi-nxaxheba ababini okanye ngaphezulu kwinethiwekhi ye-blockchain, eyenzelwe ukuqhuba ukuthengiselana okuyimfihlo ngaphakathi kwesangqa esilinganiselweyo, kodwa esaziwayo, sabathathi-nxaxheba. Ijelo lichongwa ngabathathi-nxaxheba, i-ledger esasazwayo, izivumelwano ze-smart, i-Ordering Service, i-WorldState. Ilungu ngalinye letshaneli kufuneka ligunyaziswe ukufikelela kwijelo kwaye libe nelungelo lokwenza iintlobo ngeentlobo zentengiselwano. Ugunyaziso lwenziwa kusetyenziswa iNkonzo yobulungu.

Imeko yokwenziwa kwentengiselwano eqhelekileyo

Okulandelayo, ndingathanda ukuthetha ngemeko eqhelekileyo yokwenza intengiselwano usebenzisa umzekelo weprojekthi yethu.

Njengenxalenye yeprojekthi yethu yangaphakathi, senze inethiwekhi ye-Hyperledger Fabric, eyenzelwe ukubhalisa nokurekhoda abafundi abangena kwiiyunivesithi. Uthungelwano lwethu lunemibutho emibini, ephantsi kweYunivesithi A kunye neDyunivesithi B. Umbutho ngamnye uqulethe isicelo somthengi, kunye nokuZibophelela kunye nokuQinisekisa iNtanga. Sikwasebenzisa iinkonzo eziqhelekileyo zoku-odola iNkonzo, iNkonzo yoBulungu kunye noGunyaziwe weSiqinisekiso.

1) Ukuqaliswa kwentengiselwano

Isicelo somsebenzisi, usebenzisa i-Hyperledger Fabric SDK, iqalisa isicelo sokuthengiselana kwaye ithumela isicelo kwiinodi ezineenkontileka ezihlakaniphile. Isicelo sinokuba kukutshintsha okanye ukufunda kwileja esasaziweyo (Ledger). Ukuba siqwalasela umzekelo woqwalaselo lwethu lovavanyo lwenkqubo yokunika ingxelo kubafundi beyunivesithi, ngoko isicelo somxhasi sithumela isicelo sokuthengiselana kwiinode zeyunivesithi A kunye ne-B, ezibandakanyiweyo kumgaqo-nkqubo we-Endorsement ebizwa ngokuba yi-smart contract. I-Node A yindawo ehlala eyunivesithi ebhalisa umfundi ongenayo, kwaye indawo engu-B yindawo ehlala kwenye iyunivesithi. Ukuze ukuthengiselana kugcinwe kwi-ledger esasazwayo, kuyimfuneko ukuba zonke iinqununu ezinokuthi, ngokwengqiqo yezoshishino, kufuneka zivume ukuthengiselana, zenze ngempumelelo izivumelwano ezihlakaniphile kunye nesiphumo esifanayo. Ukusetyenziswa komsebenzisi we-node A, usebenzisa izixhobo ze-Hyperledger Fabric SDK, ufumana umgaqo-nkqubo we-Endorsement (umgaqo-nkqubo wokuvunywa) kwaye ufumanisa ukuba zeziphi iindawo zokuthumela isicelo sokuthengiselana. Esi sisicelo sokubiza (ukucela) isivumelwano esithile se-smart (i-chaincode function) ukuze ufunde okanye ubhale idatha ethile kwi-ledger esasazwayo. Ngobuchwephesha, i-SDK yomxhasi isebenzisa umsebenzi ohambelanayo, i-API egqithiselwa into eneparameters yentengiselwano, kwaye yongeza isignesha yomxhasi kwaye ithumele le datha nge-protocol buffer phezu kwe-gRPC kwiindawo ezifanelekileyo (ukuvumela oontanga).

Hyperledger Fabric for Dummies
Umfanekiso 2. Ukuqaliswa kwentengiselwano

2) Ukuphunyezwa kwekhontrakthi ehlakaniphile

IiNodes (Abalingane abaQinisekisayo), bafumene isicelo sokwenza ukuthengiselana, khangela isiginesha yomxhasi kwaye ukuba yonke into ilungile, ngoko bathatha into kunye nedatha yesicelo kwaye baqhube ukulinganisa kokuphunyezwa kwekhontrakthi ehlakaniphile (umsebenzi we-chaincode) ngezi datha. Ikhontrakthi ehlakaniphile ingqiqo yoshishino lwentengiselwano, isethi ethile yeemeko kunye nemiyalelo (kwimeko yethu, lo kuhlolwa komfundi, ngaba ngumfundi omtsha, okanye sele ebhalisiwe, ukukhangela ubudala, njl.). Ukwenza ikhontrakthi ehlakaniphile, uya kufuna kwakhona idatha evela kwi-WorldState. Njengomphumo we-smart contract simulation kwi-Endorsing peer, iiseti ezimbini zedatha zifunyenwe - Funda iSeti kwaye ubhale iSeti. Funda Seta kwaye ubhale iSeti ngamaxabiso oqobo kunye namatsha eWorldState. (entsha - ngengqiqo efunyenwe ngokulinganisa isivumelwano esihlakaniphile).

Hyperledger Fabric for Dummies
Umfanekiso 3. Ukuphunyezwa kwekhontrakthi ehlakaniphile

3) Ukubuyisela idatha kwisicelo somthengi

Emva kokulinganisa inkontileka ehlakaniphile, i-Endorsing Peers ibuyela kwisicelo somxhasi idatha yokuqala kunye nesiphumo sokulinganisa, kunye ne-RW Set esayinwe sisatifikethi sabo. Kweli nqanaba, akukho lutshintsho kwileja esasaziweyo. Isicelo somxhasi siqinisekisa utyikityo lweNtanga eQinisekisayo, kwaye iphinda ithelekise idatha yentengiselwano yoqobo ethunyelweyo kunye nedatha ebuyisiweyo (oko kukuthi, ijonga ukuba idatha yoqobo ekuye kwafunyaniswa kuyo yonakalisiwe). Ukuba intengiselwano yayiyeyokufunda kuphela idatha evela kwirejista, ngoko isicelo somxhasi ngokufanelekileyo sifumana iSeti yokuFunda eyimfuneko, kwaye kule nto intengiselwano idla ngokugqiba ngempumelelo ngaphandle kokutshintsha irejistri esasazwayo. Kwimeko yentengiselwano ekufuneka itshintshe idatha kwirejista, isicelo somthengi esongezelelweyo sihlola ukuba ngaba umgaqo-nkqubo wokuQinisekisa uphunyeziwe. Kungenzeka ukuba isicelo somxhasi asihlolisi umphumo wokuphunyezwa koMgaqo-nkqubo wokuQinisekisa, kodwa iqonga le-Hyperledger Fabric kule meko libonelela ngokujonga imigaqo-nkqubo kwii-nodes (Ukubambisana Koontanga) kwinqanaba lokongeza ukuthengiselana kwirejista.

Hyperledger Fabric for Dummies
Umfanekiso 4. Ukubuyisela idatha kwisicelo somthengi

I-4) Ukuthumela iisethi ze-RW kwi-Ordering Peers

Isicelo somthengi sithumela intengiselwano kunye nedatha ehambelanayo kwinkonzo yokuodola. Oku kubandakanya i-RW Set, iisignesha zokuxhasa oontanga, kunye ne-ID yeSiteshi.

Inkonzo yokuodola - ngokusekelwe kwigama, umsebenzi oyintloko wale nkonzo kukwakha ukuthengiselana okungenayo ngokufanelekileyo. Kwakunye nokwakhiwa kwebhloko entsha yobhaliso olusasazwayo kunye nokuhanjiswa okuqinisekisiweyo kweebhloko ezintsha eziveliswe kuzo zonke iindawo zokuZibophelela, ngaloo ndlela kuqinisekisa ukuhambelana kwedatha kuzo zonke iindawo eziqulethe ubhaliso olusasazwayo (Ukuzinikela koontanga). Ngelo xesha, inkonzo ye-Ordering ngokwayo ayitshintshi irejista nangayiphi na indlela. Inkonzo yokuodola yinxalenye ebalulekileyo yenkqubo, ngoko ke yimbumba yeenodi ezininzi. Inkonzo yoku-odola ayikhangeli ukuthengiselana ngokusemthethweni, ivuma nje ukuthengiselana nge-ID yeshaneli ethile, ilungiselela ukuthengiselana okungenayo ngomyalelo othile, kwaye yenza iibhloko ezintsha zencwadi esasazwayo kubo. Inkonzo enye yokuodola inokukhonza amajelo amaninzi ngexesha elinye. INkonzo yokuLawula ibandakanya i-Kafka cluster, egcina umgca ochanekileyo (ongatshintshiyo) wokuthengiselana (jonga inqaku lesi-7).

Hyperledger Fabric for Dummies
Umfanekiso 5. Ukuthumela iiseti ze-RW kwi-Ordering Peers

5) Ukuthumela iibhloko eziveliswayo kuMlingane ozibophelelayo

Iibhloko ezenziwe kwiNkonzo yoku-odola zisasazwa kuzo zonke iindawo zenethiwekhi. Indawo nganye, xa ifumene ibhloko entsha, iyayijonga ukuthotyelwa koMgaqo-nkqubo wokuQinisekisa, ijonga ukuba zonke iiNtanga eziQinisekisayo zifumene iziphumo ezifanayo (Bhala iSeti) njengesiphumo sokulinganisa ikhontrakthi ehlakaniphile, kwaye ijonga kwakhona ukuba amaxabiso oqobo anawo. itshintshiwe (oko kukuthi, - Funda iSeti - idatha efundwe yinkontileka ehlakaniphile evela kwi-WorldState) ukususela ekuqalisweni kwentengiselwano. Ukuba yonke imiqathango ifezekisiwe, intengiselwano imakishwa njengesemthethweni, ngaphandle koko, intengiselwano ifumana isimo sokungavumelekanga.

Hyperledger Fabric for Dummies
Umfanekiso 6: Ukuthumela iibhloko ezenziweyo kuMlingane ozibophelelayo

6) Ukongeza ibhloko kwirejista

Indawo nganye yongeza intengiselwano kwikopi yayo yendawo yeleja esasaziweyo, kwaye ukuba intengiselwano iyasebenza, ngoko ke Bhala iSeti isetyenziswe kwiWorldState (ilizwe langoku), ngokulandelelanayo, amaxabiso amatsha ezinto ezichatshazelwe yintengiselwano zibhaliwe. . Ukuba intengiselwano ifumene ithokheni engasebenziyo (umzekelo, kukho iintengiselwano ezimbini ezinezinto ezifanayo ngaphakathi kwebhloko enye, enye yentengiselwano ayisayi kusebenza, kuba ixabiso lokuqala sele litshintshiwe ngenye intengiselwano. ). Le ntengiselwano iphinde yongezwa kwi-ledger esasazwayo kunye ne-marker engasebenziyo, kodwa iSeti yokuBhala yale ntengiselwano ayisebenzi kwimeko yangoku ye-WorldState kwaye, ngokufanelekileyo, ayitshintshi izinto ezithatha inxaxheba kwintengiselwano. Emva koko, isaziso sithunyelwa kwisicelo somsebenzisi ukuba intengiselwano yongezwe kwi-ledger esasazwayo ngonaphakade, kunye nemeko yentengiselwano, oko kukuthi, ingaba iyasebenza okanye ayikho ...

Hyperledger Fabric for Dummies
Umfanekiso 7. Ukongeza ibhloko kwirejistri

UKU-odola INKONZO

Inkonzo yoku-odola iquka iqela le-Kafka elihambelanayo ne-ZooKeeper nodes kunye ne-Ordering Service Nodes (OSN) ehlala phakathi kwe-Ordering service clients kunye ne-Kafka Cluster. Iqela laseKafka liqonga lolawulo elisasaziweyo, elinokunyamezela iimpazamo (umyalezo). Ijelo ngalinye (isihloko) eKafka lulandelelwano olungaguqukiyo lweerekhodi ezixhasa kuphela ukongeza irekhodi elitsha (ukucima ekhoyo akunakwenzeka). Umzobo wesakhiwo sesihloko unikiwe ngezantsi. Yiyo le propati yeKafka esetyenziselwa ukwakha iqonga le-blockchain.

Hyperledger Fabric for Dummies
ithathwe kwi-kafka.apache.org

  • Umfanekiso 8. Uku-odola Ulwakhiwo lweSihloko seNkonzo*

Amakhonkco aluncedo

I-Youtube - Ukwakha ibhloko yeshishini kunye neProjekthi ye-Hyperledger
Hyperledger Fabric Docs
Ilaphu leHyperledger: inkqubo yokusebenza esasaziweyo yeebhloko ezinemvume

Imibulelo

Ndivakalisa umbulelo wam onzulu koogxa bam ngoncedo lwabo ekulungiseleleni eli nqaku:
UNikolai Marina
Igor Khapov
NguDmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

umthombo: www.habr.com

Yongeza izimvo