Hyperledger Fabric yeDummies

A Blockchain Platform yeBhizinesi

Hyperledger Fabric yeDummies

Masikati akanaka, vaverengi vanodiwa, zita rangu ndiNikolay Nefedov, ini ndiri nyanzvi yehunyanzvi paIBM, mune ino chinyorwa ndinoda kukuzivisai kune blockchain platform - Hyperledger Fabric. Iyi puratifomu yakagadzirirwa kuvaka bhizinesi-kirasi bhizinesi zvikumbiro. Nhamba yechinyorwa ndeyevaverengi vasina kugadzirira vane ruzivo rwekutanga rweIT matekinoroji.

Hyperledger Fabric chirongwa chakavhurika-sosi, rimwe rematavi eyakavhurika sosi Hyperledger purojekiti, mubatanidzwa weLinux Foundation. Hyperledger Fabric yakatanga kuvambwa neDigital Assets uye IBM. Chinhu chikuru cheHyperledger Fabric papuratifomu ndechekutarisa kwayo kushandiswa kwebhizinesi. Nokudaro, chikuva chakagadzirwa tichifunga nezvekukurumidza kwekutengeserana uye mutengo wavo wakaderera, pamwe nekuzivikanwa kwevose vatori vechikamu. Aya mabhenefiti anowanikwa kuburikidza nekuparadzaniswa kweiyo transaction verification sevhisi uye kuumbwa kwezvivharo zvitsva zveiyo yakagoverwa registry, pamwe nekushandiswa kwenzvimbo yezvitupa uye mvumo yevatori vechikamu.

Chinyorwa changu chikamu chezvinyorwa zveHyperledger Fabric, mukati matinotsanangura chirongwa chehurongwa hwekurekodha vadzidzi vanopinda yunivhesiti.

General architecture yeHyperledger Fabric

Hyperledger Fabric ndeye yakagoverwa blockchain network inoumbwa neakasiyana anoshanda mazvikamu akaiswa pane network node. Hyperledger Fabric zvikamu ndeye Docker midziyo inogona kutorwa zvakasununguka kubva kuDockerHub. Hyperledger Fabric inogona zvakare kumhanya munzvimbo yeKubernetes.

Kunyora zvibvumirano zvakangwara (chaincode mumamiriro ezvinhu eHyperledger Fabric), takashandisa Golang (kunyange Hyperledger Fabric inobvumira kushandiswa kwemimwe mitauro). Kugadzira tsika yekushandisa, kwatiri isu, takashandisa Node.js ine inoenderana Hyperledger Fabric SDK.

Manodhi anomhanyisa bhizinesi logic (smart contract) - chaincode, chengetedza iyo mamiriro eiyo yakagoverwa registry (ledger data) uye ita mamwe masevhisi ehurongwa hwepuratifomu. Node ingori yuniti inonzwisisika; node dzakasiyana dzinogona kuvapo pane imwechete sevha yemuviri. Chinonyanya kukosha ndechekuti node dzakaiswa sei (Trusted domain) uye ndeapi mabasa eiyo blockchain network avanobatanidzwa nawo.

Iyo general architecture inoita seizvi:

Hyperledger Fabric yeDummies

Mufananidzo 1. General Architecture yeHyperledger Fabric

Mushandisi application (Kutumira Mutengi) chishandiso icho vashandisi vanoshanda nacho ne blockchain network. Kuti ushande, unofanirwa kupihwa mvumo uye uine kodzero dzakakodzera dzemhando dzakasiyana dzezviito pane network.

Vezera vanouya mumabasa akawanda:

  • Endorsing Peer inzvimbo inotevedzera maitirwo ekutengeserana (kuita iyo smart contract code). Mushure mekusimbiswa uye kuitwa kwechibvumirano chakangwara, iyo node inodzosa mibairo yekuuraya kune mutengi application pamwe chete nesaini yayo.
  • Kuodha Sevhisi ibasa rakagoverwa pane akati wandei, rinoshandiswa kugadzira mabhuroko matsva eiyo yakagoverwa registry uye kugadzira mutsara wekuita kwekutengeserana. Kuodha Sevhisi haiwedze mabhuroko matsva kurejista (Ichi chimiro chakaendeswa kuKuzvipira Vezera kuti uvandudze mashandiro).
  • Committing Peer inzvimbo ine registry yakagoverwa uye inowedzera mabhuroko matsva kune registry (ayo akagadzirwa neOrdering Service). Vese Vanozvipira Vezera vane kopi yemuno yeleja yakagoverwa. Committing Peer inotarisa zvese kutengeserana mukati mebhuroko kuti ndezvechokwadi usati wawedzera block nyowani munharaunda.

Endorsement Policy ndiyo mutemo wekutarisa chokwadi chekutengeserana. Aya marongero anotsanangura seti inodiwa yemanodhi painofanirwa kuitwa smart kontrakiti kuitira kuti kutengeserana kuonekwe sekwakanaka.

Registry yakagoverwa - Lerger - ine zvikamu zviviri: WolrldState (inonziwo State DataBase) uye BlockChain.

BlockChain iketani yemabhuraki inochengeta marekodhi ezvese shanduko dzakaitika kune zvakagoverwa registry zvinhu.

WolrldState inzvimbo yakagoverwa ledger inochengeta yazvino (yekucheka mutsetse) kukosha kwezvinhu zvese zvakagoverwa ledger.

WorldState idhatabhesi, mune yekutanga vhezheni - LevelDB kana yakanyanya kuomarara - CouchDB, iyo ine kiyi-kukosha pairi, semuenzaniso: Zita rekutanga - Ivan, Zita rekupedzisira - Ivanov, zuva rekunyoresa muhurongwa - 12.12.21/17.12.1961/XNUMX , zuva rekuzvarwa - XNUMX/XNUMX/XNUMX, nezvimwewo. WorldState uye registry yakagoverwa inofanirwa kuenderana pakati pevatori vechikamu mune yakapihwa chiteshi.

Sezvo Hyperledger Fabric iri network umo vese vatori vechikamu vanozivikanwa uye vanotenderwa, inoshandisa yakazvitsaurira certification chiremera - CA (Certification Authority). CA inoshanda zvichibva pa X.509 yakajairika uye yeruzhinji kiyi zvivakwa - PKI.

Nhengo yeSevhisi ibasa iro nhengo dzinoratidza kuti chinhu ndecherimwe sangano kana chiteshi.

Kutengeserana - kazhinji, kuri kunyora data nyowani kune yakagoverwa registry.
Kune zvakare kutengeserana kwekugadzirwa kwemachaneli kana smart makondirakiti. Iko kutengeserana kunotangwa nemushandisi application uye inopera nerekodhi mune yakagoverwa ledger.

A Channel inzvimbo yakavharwa subnetwork ine vaviri kana kupfuura blockchain network vatori vechikamu, yakagadzirirwa kuita zvakavanzika zvekutengeserana mukati mechikamu chidiki asi chinozivikanwa chevatori vechikamu. Iyo chiteshi inotemerwa nevatori vechikamu, yakagovaniswa registry, smart zvibvumirano, Ordering Service, WorldState. Mumwe nemumwe anotora chiteshi anofanira kupihwa mvumo yekuwana chiteshi uye ane kodzero yekuita akasiyana marudzi ekutengeserana. Mvumo inoitwa uchishandisa iyo Membership Service.

Yakajairika transaction execution scenario

Tevere, ini ndoda kutaura nezve yakajairika transaction execution mamiriro ndichishandisa purojekiti yedu semuenzaniso.

Sechikamu chepurojekiti yedu yemukati, takagadzira iyo Hyperledger Fabric network, iyo yakagadzirirwa kunyoresa uye account yevadzidzi vanopinda mumayunivhesiti. Mambure edu ane masangano maviri eYunivhesiti A neYunivhesiti B. Sangano rega rega rine chikumbiro chevatengi, pamwe chete neKuzvipira uye Kutsigira Peer. Isu tinoshandisa zvakare masevhisi akajairwa Kuodha Sevhisi, Nhengo Yebasa uye Chiremera Chiremera.

1) Kutanga kweTransaction

Mushandisi wekushandisa, achishandisa Hyperledger Fabric SDK, anotanga chikumbiro chekutengeserana uye anotumira chikumbiro kune nodes ane smart zvibvumirano. Chikumbiro chinogona kunge chiri chekuchinja kana kuverenga kubva kune yakagoverwa registry (Ledger). Kana isu tikatarisa muenzaniso weyedu yekumisikidza sisitimu yekuverengera kuvadzidzi veyunivhesiti, chikumbiro chemutengi chinotumira chikumbiro chekutengeserana kumanodhi emayunivhesiti A neB, ayo anosanganisirwa muEndorsement policy yeinonzi smart contract. Node A inzvimbo iri kuyunivhesiti inonyoresa mudzidzi ari kuuya, uye node B inzvimbo iri kune imwe yunivhesiti. Kuti kutengeserana kuchengetedzwe kune yakagoverwa registry, zvinodikanwa kuti node dzese, maererano nebhizinesi logic, dzinofanirwa kubvumidza kutengeserana, kuita zvinobudirira zvibvumirano zvakangwara zvine mhedzisiro yakafanana. Iyo node A mushandisi application, uchishandisa iyo Hyperledger Fabric SDK zvishandiso, inowana iyo Endorsement mutemo uye inodzidza kuti ndedzipi node dzekutumira chikumbiro chekutengeserana. Ichi chikumbiro chekukumbira chaiyo smart kontrakiti (chaincode basa) kuverenga kana kunyora imwe data kune yakagoverwa registry. Nehunyanzvi, mutengi SDK anoshandisa iro rinoenderana basa, iyo API inopfuudzwa chimwe chinhu chine transaction paramita, uye zvakare inowedzera siginecha yemutengi uye inotumira iyi data kuburikidza neprotocol buffer pamusoro pegRPC kune akakodzera node (kubvumidza vezera).

Hyperledger Fabric yeDummies
Mufananidzo 2: Kutanga Mutengesi

2) Kuitwa kwechibvumirano chakangwara

Nodes (Endorsing Peers), vagamuchira chikumbiro chekuita kutengeserana, tarisa siginecha yemutengi uye kana zvese zvakarongeka, vanotora chinhu chine data rekukumbira uye vanomhanyisa kuenzanisa kwekuitwa kwechibvumirano che smart (chaincode function) ne iyi data. Kondirakiti yakangwara ipfungwa yebhizinesi rekutengeserana, imwe seti yemamiriro uye mirairo (munyaya yedu, uku kuoneswa kwemudzidzi, uyu mudzidzi mutsva, kana kuti akatonyoreswa, zera rekuongorora, nezvimwewo). Kuti uite chibvumirano chakangwara, iwe zvakare uchada data kubva kuWorldState. Nekuda kwekuteedzera kondirakiti yakangwara paEndorsing peer, maviri seti yedata anowanikwa - Verenga Set uye Nyora Seti. Verenga Seta uye Nyora Seti ndiwo ekutanga uye matsva eWorldState tsika. (nyowani - mupfungwa yakawanikwa panguva yekufananidzira kwechibvumirano chakangwara).

Hyperledger Fabric yeDummies
Mufananidzo 3. Kuitwa kwechibvumirano chakangwara

3) Kudzosera data kune mutengi application

Mushure mekuita kuenzanisa kwechibvumirano chakangwara, Endorsing Peers inodzosera iyo yekutanga data uye mhedzisiro yekufananidza, pamwe neiyo RW Set, yakasainwa nechitupa chavo kune mutengi application. Panguva ino, hapana shanduko inoitika mune yakagoverwa registry. Chishandiso chemutengi chinotarisa iyo Endorsing Peer siginecha, uye zvakare inoenzanisa iyo yekutanga transaction data yakatumirwa uye data rakadzoserwa (kureva, rinotarisa kana data rekutanga iro rakafananidzirwa kutengeserana rakakanganiswa). Kana kutengeserana kwacho kwaingova kwekuverenga data kubva kurejista, saka chikumbiro chemutengi zvinoenderana nacho chinogashira inodiwa Read Set uye izvi zvinowanzopedza kutengeserana zvinobudirira pasina kushandura registry yakagoverwa. Panyaya yekutengeserana iyo inofanirwa kushandura data mune registry, iyo mutengi application inotarisawo kuitiswa kweEndorsing policy. Zvinogoneka kuti chikumbiro chemutengi hachitarise mhedzisiro yekuita iyo Endorsement Policy, asi iyo Hyperledger Fabric chikuva mune ino kesi inopa yekutarisa marongero pane node (Kuzvipira Peers) padanho rekuwedzera kutengeserana kune registry.

Hyperledger Fabric yeDummies
Mufananidzo 4. Kudzorera data kune mutengi application

4) Kutumira maRW seti kuKuraira Vezera

Iyo mutengi application inotumira kutengeserana pamwe neinoperekedza data kune iyo Kuodha sevhisi. Izvi zvinosanganisira iyo RW Set, Endorsing vezera masiginicha, uye Channel ID.

Kuraira sevhisi - zvichibva pazita, basa guru rebasa iri kuronga kutengeserana kunouya nenzira kwayo. Zvakare nekuumbwa kwechivharo chitsva cheiyo yakagovaniswa registry uye yakavimbiswa kuburitswa kwezvivharo zvitsva zvinogadzirwa kune ese maCommiting node, nekudaro kuve nechokwadi chekuenderana kwedata pamanodhi ese ane registry yakagoverwa (Kuita vezera). Panguva imwecheteyo, iyo Kurongeka sevhisi pachayo haishandure registry chero nzira. Kuodha Sevhisi chinhu chakakosha cheiyo sisitimu, saka isumbu remanodhi akati wandei. Iyo Kuodha Sevhisi haitarise kutengeserana kwechokwadi, inongogamuchira kutengeserana neimwe chiteshi identifier, inoronga mapindiro anouya mune imwe kurongeka uye inoumba mabhuroko matsva eregistry yakagoverwa kubva kwavari. Imwe Kuodha Sevhisi inogona kushandira akati wandei nzira panguva imwe chete. Basa reKurayira rinosanganisira Kafka cluster, iyo inochengetedza yakarurama (isingachinji) mutsara wekutengesa (ona Pfungwa 7).

Hyperledger Fabric yeDummies
Mufananidzo 5. Kutumira maRW seti kuKuhodha Vezera

5) Kutumira zvidhinha zvakagadzirwa kuKuzvipira Peer

Mabhuroki anogadzirwa muKuodha Sevhisi anofambiswa (kutepfenyurwa) kune ese network node. Imwe neimwe node, yawana bhuroka nyowani, inoitarisa kuti inoenderana neEndorsing Policy, inotarisa kuti vese Endorsing Peers vakagamuchira mhedzisiro yakafanana (Nyora Seti) semhedzisiro ye smart contract simulation, uye zvakare inotarisa kana iyo yekutanga kukosha ine. yakashandurwa (kureva, Read Set - data yakaverengwa neakangwara kontrakiti kubva kuWorldState) kubva panguva iyo kutengeserana kwakatangwa. Kana mamiriro ese akazadzikiswa, dhizaini inotaridzwa seyakanaka, kana zvisina kudaro, kutengeserana kunogamuchira chimiro chisina kukodzera.

Hyperledger Fabric yeDummies
Mufananidzo 6. Kutumira mabhuroko akagadzirwa kuKuzvipira Vezera

6) Kuwedzera block kune registry

Imwe neimwe node inowedzera kutengeserana kune yayo yemuno kopi yeyakagoverwa registry, uye kana kutengeserana kuriko, iyo Nyora Set inoshandiswa kuWorldState (yazvino nyika), uye nekudaro, hutsva hutsva hwezvinhu zvakakanganiswa ne kutengeserana kwakanyorwa. Kana kutengeserana kwakagamuchira chiratidzo chisiri chechokwadi (semuenzaniso, kutengeserana kuviri kwakaitika nezvinhu zvakafanana mukati mechivharo chimwe chete, ipapo imwe yekutengeserana inozove isiri iyo, sezvo hunhu hwepakutanga hwakatoshandurwa nemumwe. kutengeserana). Iyi dhizaini inowedzerwawo kune yakagoverwa ledger ine chiratidzo chisina kukodzera, asi iyo Nyora Seti yekutengeserana iyi haishandiswe kune yazvino WorldState uye, maererano, haichinji zvinhu zvinotora chikamu mukutengeserana. Mushure meizvi, chiziviso chinotumirwa kumushandisi wekushandisa kuti kutengeserana kwave kwakawedzerwa zvachose kune yakagoverwa registry, pamwe nemamiriro ekutengeserana, ndiko kuti, ingave inoshanda kana kwete ...

Hyperledger Fabric yeDummies
Mufananidzo 7. Kuwedzera block kune registry

KUORDERA SERVICE

Iyo Kuodha Sevhisi ine Kafka cluster ine inoenderana ZooKeeper nodes uye Ordering Service Nodes (OSN), iyo inomira pakati peKuhodha sevhisi vatengi neKafka Cluster. Kafka cluster inzvimbo yakagoverwa, kukanganisa-kushivirira kuyerera (meseji) manejimendi chikuva. Imwe neimwe chiteshi (musoro) muKafka inoteedzana isingachinjiki yemarekodhi inongotsigira kuwedzera rekodhi nyowani (kudzima iripo haigoneke). Mufananidzo wekuumbwa kwechinyorwa unoratidzwa pazasi. Ichi ndicho chivakwa cheKafka chinoshandiswa kuvaka blockchain chikuva.

Hyperledger Fabric yeDummies
yakatorwa kubva kafka.apache.org

  • Mufananidzo 8. Kuodha Yenyaya Yenyaya Yekurongeka*

Zvisungo zvinobatsira

Youtube -Kuvaka blockchain yebhizinesi neHyperledger Project
Hyperledger Fabric Docs
Hyperledger jira: yakagoverwa inoshanda sisitimu yeakabvumidzwa blockchains

Kutenda

Ndinoda kuratidza kutenda kwangu kukuru kune vandinoshanda navo nerubatsiro rwavo mukugadzirira chinyorwa ichi:
Nikolay Marin
Igor Khapov
Dmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Source: www.habr.com

Voeg