Nsalu ya Hyperledger ya Dummies

A Blockchain Platform kwa Enterprise

Nsalu ya Hyperledger ya Dummies

Masana abwino, owerenga okondedwa, dzina langa ndi Nikolay Nefedov, ndine katswiri waukadaulo ku IBM, m'nkhaniyi ndikufuna kukudziwitsani ku nsanja ya blockchain - Hyperledger Fabric. Pulatifomuyi idapangidwa kuti izipanga mabizinesi apamwamba kwambiri. Mulingo wa nkhaniyi ndi wa owerenga osakonzekera omwe ali ndi chidziwitso choyambirira chaukadaulo wa IT.

Hyperledger Fabric ndi polojekiti yotseguka, imodzi mwa nthambi za polojekiti yotseguka ya Hyperledger, mgwirizano wa Linux Foundation. Hyperledger Fabric idayambitsidwa ndi Digital Assets ndi IBM. Chofunikira chachikulu cha nsanja ya Hyperledger Fabric ndikuyika kwake pakugwiritsa ntchito mabizinesi. Choncho, nsanjayo idapangidwa poganizira kuthamanga kwachangu komanso mtengo wake wotsika, komanso chizindikiritso cha onse omwe akutenga nawo mbali. Zopindulitsa izi zimatheka chifukwa cha kulekanitsidwa kwa ntchito yotsimikiziranso ntchito ndi kupanga midadada yatsopano ya registry yogawidwa, komanso kugwiritsa ntchito malo ovomerezeka ndi chilolezo cha otenga nawo mbali.

Nkhani yanga ndi gawo lazolemba za Hyperledger Fabric, momwe timafotokozera ntchito yojambulira ophunzira omwe akulowa ku yunivesite.

Zomangamanga zambiri za Hyperledger Fabric

Hyperledger Fabric ndi intaneti yogawidwa ya blockchain yomwe ili ndi zigawo zosiyanasiyana zogwira ntchito zomwe zimayikidwa pa node za intaneti. Zida za Hyperledger Fabric ndi zotengera za Docker zomwe zitha kutsitsidwa kwaulere ku DockerHub. Nsalu ya Hyperledger imathanso kuyendetsedwa kumalo a Kubernetes.

Kulemba mapangano anzeru (chaincode mu nkhani ya Hyperledger Fabric), tinagwiritsa ntchito Golang (ngakhale Hyperledger Fabric imalola kugwiritsa ntchito zilankhulo zina). Kuti mupange pulogalamu yachizolowezi, ife tidagwiritsa ntchito Node.js ndi Hyperledger Fabric SDK yofananira.

Ma node amapanga malingaliro abizinesi (mgwirizano wanzeru) - chaincode, sungani mawonekedwe a registry yogawidwa (deta ya ledge) ndikuchita ntchito zina zamapulatifomu. Node ndi gawo lomveka bwino; ma node osiyanasiyana amatha kukhala pa seva yomweyo. Chofunika kwambiri ndi momwe ma node amagawidwira (Damale yodalirika) ndi ntchito ziti za netiweki ya blockchain zomwe zimalumikizidwa nazo.

General zomangamanga zimawoneka motere:

Nsalu ya Hyperledger ya Dummies

Chithunzi 1. General Architecture of Hyperledger Fabric

Kugwiritsa ntchito (Kutumiza Client) ndi ntchito yomwe ogwiritsa ntchito amagwiritsa ntchito ndi netiweki ya blockchain. Kuti mugwire ntchito, muyenera kukhala ovomerezeka komanso kukhala ndi ufulu wochita zinthu zosiyanasiyana pa intaneti.

Anzako amabwera m'maudindo angapo:

  • Endorsing Peer ndi njira yomwe imatsanzira kuchita malonda (akuchita khodi yanzeru ya contract). Pambuyo potsimikizira ndi kuchitidwa kwa mgwirizano wanzeru, node imabwezera zotsatira za kuphedwa kwa kasitomala ntchito pamodzi ndi siginecha yake.
  • Kuyitanitsa Service ndi ntchito yogawidwa pama node angapo, yomwe imagwiritsidwa ntchito popanga midadada yatsopano ya kaundula wogawidwa ndikupanga mzere wochitira zochitika. Kuyitanitsa Service sikuwonjezera midadada yatsopano ku registry (Izi zasunthidwa ku Committing Peers kuti ziwongolere magwiridwe antchito).
  • Committing Peer ndi node yomwe ili ndi registry yogawidwa ndikuwonjezera midadada yatsopano ku registry (yomwe idapangidwa ndi Ordering Service). Anzanu Onse Odzipereka ali ndi buku lakale lakale lomwe lagawidwa. Committing Peer imayang'ana zonse zomwe zachitika mkati mwa block kuti zitsimikizike musanawonjezere block yatsopano kwanuko.

Endorsement Policy ndi ndondomeko yowunika kutsimikizika kwa malonda. Ndondomekozi zimatanthauzira ma node ofunikira omwe mgwirizano wanzeru uyenera kuchitidwa kuti malondawo adziwike kuti ndi ovomerezeka.

Registry yogawidwa - Lerger - ili ndi magawo awiri: WolrldState (yomwe imatchedwanso State DataBase) ndi BlockChain.

BlockChain ndi mndandanda wa midadada yomwe imasunga zolemba za zosintha zonse zomwe zachitika pogawa zinthu zolembetsa.

WolrldState ndi gawo laleji lomwe limagawika lomwe limasunga zomwe zili pano (zodula) zazinthu zonse zogawidwa.

WorldState ndi nkhokwe, mu mtundu woyambira - LevelDB kapena zovuta kwambiri - CouchDB, yomwe ili ndi awiriawiri ofunikira, mwachitsanzo: Dzina loyamba - Ivan, Dzina - Ivanov, tsiku lolembetsa mu dongosolo - 12.12.21/17.12.1961/XNUMX , tsiku lobadwa - XNUMX/XNUMX/XNUMX, etc. WorldState ndi registry yogawidwa iyenera kukhala yofanana pakati pa onse omwe akutenga nawo mbali panjira yoperekedwa.

Popeza Hyperledger Fabric ndi netiweki yomwe otenga nawo mbali onse amadziwika ndi kutsimikiziridwa, amagwiritsa ntchito odzipereka ovomerezeka - CA (Certification Authority). CA imagwira ntchito motengera X.509 wamba komanso makiyi a anthu onse - PKI.

Utumiki wa Umembala ndi ntchito yomwe mamembala amatsimikizira kuti chinthucho ndi cha bungwe kapena njira inayake.

Kugulitsa - nthawi zambiri, ndikulemba zatsopano ku registry yogawidwa.
Palinso zochitika zopanga ma tchanelo kapena ma contract anzeru. Kugulitsako kumayambitsidwa ndi pulogalamu ya wogwiritsa ntchito ndipo kumatha ndi mbiri mu buku logawidwa.

Channel ndi gawo lotsekeka lomwe lili ndi anthu awiri kapena kupitilira apo pa blockchain network, yopangidwa kuti izichita zachinsinsi mkati mwa gulu lochepa koma lodziwika la omwe atenga nawo mbali. Njirayi imatsimikiziridwa ndi omwe akutenga nawo mbali, kaundula wake wogawidwa, makontrakitala anzeru, Ordering Service, WorldState. Aliyense wotenga nawo gawo panjira ayenera kukhala ndi chilolezo cholowera panjirayo komanso kukhala ndi ufulu wochita zosiyanasiyana. Chilolezo chimachitidwa pogwiritsa ntchito Umembala Service.

Zochitika zenizeni za kachitidwe

Chotsatira, ndikufuna kunena za zochitika zomwe zimachitika pogwiritsa ntchito polojekiti yathu monga chitsanzo.

Monga gawo la polojekiti yathu yamkati, tinapanga Hyperledger Fabric network, yomwe idapangidwa kuti ilembetse ndikuwerengera ophunzira omwe akulowa m'mayunivesite. Maukonde athu ali ndi mabungwe awiri a University A ndi University B. Gulu lililonse lili ndi pulogalamu ya kasitomala, komanso Committing and Endorsing Peer yake. Timagwiritsanso ntchito ntchito wamba Kuyitanitsa Service, Utumiki wa Umembala ndi Certification Authority.

1) Kuyamba kwa Transaction

Ntchito yogwiritsira ntchito, pogwiritsa ntchito Hyperledger Fabric SDK, imayambitsa pempho la malonda ndikutumiza pempho ku node ndi makontrakitala anzeru. Pempho likhoza kukhala losintha kapena kuwerenga kuchokera ku registry yogawidwa (Ledger). Ngati tiganizira chitsanzo cha kasinthidwe ka dongosolo lathu la mayeso owerengera ndalama za ophunzira aku yunivesite, pulogalamu ya kasitomala imatumiza pempho lochita malonda ku mayunivesite A ndi B, omwe akuphatikizidwa mundondomeko yovomerezeka ya contract yotchedwa smart contract. Node A ndi mfundo yomwe ili ku yunivesite yomwe imalembetsa wophunzira yemwe akubwera, ndipo node B ndi mfundo yomwe ili ku yunivesite ina. Kuti malonda asungidwe ku registry yogawidwa, ndikofunikira kuti node zonse zomwe, malinga ndi malingaliro abizinesi, ziyenera kuvomereza zomwe zikuchitika, kuchita bwino mapangano anzeru ndi zotsatira zomwezo. Node A wogwiritsa ntchito, pogwiritsa ntchito zida za Hyperledger Fabric SDK, amapeza ndondomeko ya Endorsement ndikuphunzira kuti ndi ma node ati omwe angatumize pempho la malonda. Ili ndi pempho lopempha mgwirizano wanzeru (ntchito ya chaincode) kuti muwerenge kapena kulemba zambiri ku registry yogawidwa. Mwaukadaulo, kasitomala SDK amagwiritsa ntchito ntchito yofananira, API yomwe imadutsa chinthu china ndi magawo ochitapo kanthu, ndikuwonjezeranso siginecha yamakasitomala ndikutumiza izi kudzera pa protocol buffer pa gRPC kupita kumalo oyenera (kuvomereza anzawo).

Nsalu ya Hyperledger ya Dummies
Chithunzi 2: Kuyambitsa Kanthu

2) Kuchita kwa mgwirizano wanzeru

Nodes (Endorsing Peers), atalandira pempho kuti achite malonda, fufuzani siginecha yamakasitomala ndipo ngati zonse zili bwino, amatenga chinthu ndi pempho deta ndikuyendetsa kayeseleledwe ka kuchitidwa kwa mgwirizano wanzeru (chaincode ntchito) ndi data izi. Mgwirizano wanzeru ndi malingaliro abizinesi amalonda, magawo ena ndi malangizo (kwa ife, uku ndikutsimikizira kwa wophunzira, kodi uyu ndi wophunzira watsopano, kapena adalembetsa kale, kutsimikizira zaka, ndi zina zotero). Kuti mugwiritse ntchito mgwirizano wanzeru, mudzafunikanso deta kuchokera ku WorldState. Chifukwa chofanizira mgwirizano wanzeru pa Endorsing anzawo, magawo awiri a data amapezedwa - Werengani Set ndi Lembani Seti. Read Set and Write Set ndi zinthu zoyambirira komanso zatsopano za WorldState. (zatsopano - m'lingaliro lopezedwa panthawi yoyerekeza mgwirizano wanzeru).

Nsalu ya Hyperledger ya Dummies
Chithunzi 3: Kuphatikiziridwa kwa mgwirizano wanzeru

3) Kubwezera deta ku pulogalamu ya kasitomala

Pambuyo pochita chifaniziro cha mgwirizano wanzeru, Endorsing Peers amabwezera deta yoyambirira ndi zotsatira za kuyerekezera, komanso RW Set, yolembedwa ndi chiphaso chawo ku ntchito ya kasitomala. Pakadali pano, palibe kusintha komwe kumachitika mu kaundula wogawidwa. Pulogalamu yamakasitomala imayang'ana siginecha ya Endorsing Peer, ndikuyerekezanso zomwe zidatumizidwa ndi data yomwe idabwezedwa (ndiko kuti, imayang'ana ngati deta yoyambirira yomwe idayesedwera idasokonekera). Ngati kugulitsako kunali kokha kuwerenga deta kuchokera ku registry, ndiye kuti kasitomala amalandira moyenerera amalandira zofunikira za Read Set ndipo nthawi zambiri zimamaliza ntchitoyo bwinobwino popanda kusintha kaundula wogawidwa. Pankhani ya kugulitsa komwe kumayenera kusintha deta mu registry, pulogalamu ya kasitomala imayang'ananso kukhazikitsidwa kwa ndondomeko ya Endorsing. N'zotheka kuti ntchito yamakasitomala sichiyang'ana zotsatira za ndondomeko ya Endorsement Policy, koma nsanja ya Hyperledger Fabric pankhaniyi imapereka ndondomeko zowunikira pa node (Kupereka Anzako) pa siteji yowonjezeretsa malonda ku registry.

Nsalu ya Hyperledger ya Dummies
Chithunzi 4. Kubwezera deta ku pulogalamu ya kasitomala

4) Kutumiza ma RW seti ku Kuyitanitsa anzawo

Pulogalamu yamakasitomala imatumiza zomwe zachitika limodzi ndi data yotsagana ndi ntchito yoyitanitsa. Izi zikuphatikiza RW Set, Endorsing anzanu siginecha, ndi ID Channel.

Utumiki woyitanitsa - kutengera dzina, ntchito yayikulu yautumikiwu ndikukonzekera zomwe zikubwera mwadongosolo lolondola. Komanso kupangidwa kwa chipika chatsopano cha kaundula wogawidwa ndi kuperekedwa kotsimikizirika kwa midadada yatsopano yopangidwa ku ma node onse a Commiting, motero kuonetsetsa kusasinthika kwa data pamanode onse okhala ndi kaundula wogawidwa (Kuchita anzawo). Nthawi yomweyo, ntchito yoyitanitsa yokha sisintha registry mwanjira iliyonse. Kuyitanitsa Service ndi gawo lofunikira kwambiri pamakina, chifukwa chake ndimagulu angapo. The Ordering Service simayang'ana zomwe zachitikazo kuti zitsimikizike, zimangovomereza kuchitapo kanthu ndi chizindikiritso cha tchanelo, kukonza zomwe zikubwera mwadongosolo linalake ndikupanga midadada yatsopano ya registry yogawidwa kuchokera kwa iwo. One Ordering Service imatha kupereka njira zingapo nthawi imodzi. The Ordering Service imaphatikizapo gulu la Kafka, lomwe limasunga mzere wolondola (wosasinthika) wochita zinthu (onani Mfundo 7).

Nsalu ya Hyperledger ya Dummies
Chithunzi 5: Kutumiza ma RW seti ku Kuyitanitsa anzawo

5) Kutumiza midadada yopangidwa ku Committing Peer

Ma block opangidwa mu Ordering Service amafalitsidwa (kuwulutsidwa) kuma node onse a netiweki. Node iliyonse, italandira chipika chatsopano, imayang'ana kuti ikugwirizana ndi Endorsing Policy, imayang'ana kuti Endorsing Peers onse adalandira zotsatira zomwezo (Write Set) chifukwa cha kuyerekezera kwanzeru, ndikuwunikanso ngati zoyambira zili nazo. zasinthidwa (ndiko kuti, Read Set - data yomwe idawerengedwa ndi mgwirizano wanzeru kuchokera ku WorldState) kuyambira pomwe ntchitoyo idakhazikitsidwa. Ngati zikhalidwe zonse zakwaniritsidwa, kugulitsako kumadziwika kuti ndi koyenera, apo ayi, ntchitoyo imalandira udindo wosavomerezeka.

Nsalu ya Hyperledger ya Dummies
Chithunzi 6: Kutumiza midadada kwa Kudzipereka Mnzanu

6) Kuwonjezera chipika ku registry

Node iliyonse imawonjezera kugulitsa ku kaundula wake komweko kaundula wogawidwa, ndipo ngati kugulitsako kuli kovomerezeka, ndiye kuti Lembani Seti ikugwiritsidwa ntchito ku WorldState (boma lapano), ndipo motero, mikhalidwe yatsopano yazinthu zomwe zidakhudzidwa ndi malonda alembedwa. Ngati malonda adalandira chizindikiro chomwe sichili cholondola (mwachitsanzo, zochitika ziwiri zidachitika ndi zinthu zomwezo mkati mwa chipika chomwecho, ndiye kuti kugulitsako kudzakhala kosavomerezeka, popeza zoyambira zasinthidwa kale ndi wina. ntchito). Kugulitsaku kumawonjezedwa ku ledger yogawidwa ndi chizindikiro chosavomerezeka, koma Lembani Seti ya ntchitoyi sikugwiritsidwa ntchito ku WorldState yamakono ndipo, motero, sichisintha zinthu zomwe zikuchita nawo. Pambuyo pake, chidziwitso chimatumizidwa kwa wogwiritsa ntchito kuti ntchitoyo yawonjezeredwa kwanthawi zonse ku registry yogawidwa, komanso momwe ntchitoyo ilili, ndiye kuti, kaya ndi yovomerezeka kapena ayi ...

Nsalu ya Hyperledger ya Dummies
Chithunzi 7. Kuwonjezera chipika ku registry

KUYAMBIRA UTUMIKI

The Ordering Service ili ndi gulu la Kafka lokhala ndi zooKeeper node zofananira ndi Ordering Service Nodes (OSN), zomwe zimayima pakati pamakasitomala oyitanitsa ndi Kafka Cluster. Kafka cluster ndi nsanja yogawa, yololera zolakwika (uthenga) yowongolera. Njira iliyonse (mutu) ku Kafka ndi mndandanda wosasinthika wa zolemba zomwe zimangothandizira kuwonjezera mbiri yatsopano (kuchotsa yomwe ilipo sikutheka). Chithunzi cha kapangidwe ka mutu chikuwonetsedwa pansipa. Ndi katundu wa Kafka yemwe amagwiritsidwa ntchito pomanga nsanja ya blockchain.

Nsalu ya Hyperledger ya Dummies
yotengedwa ku kafka.apache.org

  • Chithunzi 8. Kuyitanitsa Mutu wa Mutu wa Utumiki*

Maulalo othandiza

Youtube - Kumanga blockchain kwa bizinesi ndi Hyperledger Project
Hyperledger Fabric Docs
Nsalu ya Hyperledger: makina ogwiritsira ntchito omwe amaloledwa ku blockchains

Zothokoza

Ndikufuna kuthokoza kwambiri anzanga chifukwa cha thandizo lawo pokonzekera nkhaniyi:
Nikolay Marin
Igor Khapov
Wotchedwa Dmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Source: www.habr.com

Kuwonjezera ndemanga