Hyperledger Npuag rau Dummies

Blockchain Platform rau Enterprise

Hyperledger Npuag rau Dummies

Nyob zoo tav su, nyob zoo cov neeg nyeem, kuv lub npe yog Nikolay Nefedov, Kuv yog ib tus kws tshaj lij ntawm IBM, hauv tsab xov xwm no kuv xav qhia koj txog blockchain platform - Hyperledger Fabric. Lub platform yog tsim los tsim kev lag luam-chav ua lag luam kev lag luam. Qib ntawm tsab xov xwm yog rau cov neeg nyeem tsis tau npaj nrog kev paub txog IT technologies.

Hyperledger Npuag yog qhov qhib qhov project, ib qho ntawm cov ceg ntawm qhov qhib qhov project Hyperledger, ib lub koom haum ntawm Linux Foundation. Hyperledger Fabric yog thawj zaug pib los ntawm Digital Assets thiab IBM. Lub ntsiab feature ntawm Hyperledger Fabric platform yog nws tsom rau kev lag luam siv. Yog li ntawd, lub platform tau tsim los coj mus rau hauv tus account lub siab ceev ntawm kev lag luam thiab lawv cov nqi qis, nrog rau kev txheeb xyuas ntawm txhua tus neeg koom. Cov txiaj ntsig zoo no tau ua tiav los ntawm kev sib cais ntawm qhov kev pabcuam kev lees paub kev lag luam thiab tsim cov blocks tshiab ntawm cov ntawv sau npe, nrog rau kev siv lub chaw pov thawj thiab kev tso cai ntawm cov neeg koom.

Kuv tsab xov xwm yog ib feem ntawm cov kab lus hais txog Hyperledger Fabric, nyob rau hauv uas peb piav qhia txog cov txheej txheem rau kev sau cov tub ntxhais kawm nkag mus rau hauv tsev kawm qib siab.

General architecture ntawm Hyperledger Fabric

Hyperledger Npuag yog ib qho kev faib blockchain network uas muaj ntau yam kev ua haujlwm uas tau teeb tsa rau ntawm lub network nodes. Hyperledger Fabric Cheebtsam yog Docker ntim uas tuaj yeem rub tawm dawb los ntawm DockerHub. Hyperledger Fabric kuj tseem tuaj yeem khiav hauv Kubernetes ib puag ncig.

Txhawm rau sau cov ntawv cog lus ntse (chaincode hauv cov ntsiab lus ntawm Hyperledger Fabric), peb siv Golang (txawm tias Hyperledger Fabric tso cai siv lwm yam lus). Txhawm rau tsim daim ntawv thov kev cai, hauv peb rooj plaub, peb siv Node.js nrog rau Hyperledger Fabric SDK.

Cov nodes ua lag luam logic (smart daim ntawv cog lus) - chaincode, khaws lub xeev ntawm kev faib npe (cov ntaub ntawv ledger) thiab ua lwm yam kev pab cuam ntawm lub platform. Ib lub node tsuas yog ib qho kev xav xwb; cov nodes sib txawv tuaj yeem muaj nyob ntawm tib lub cev server. Qhov tseem ceeb tshaj yog yuav ua li cas cov nodes yog pab pawg (Trusted domain) thiab dab tsi ua haujlwm ntawm blockchain network lawv koom nrog.

General architecture zoo li no:

Hyperledger Npuag rau Dummies

Daim duab 1. General Architecture ntawm Hyperledger Fabric

Tus neeg siv daim ntawv thov (Submitting Client) yog daim ntawv thov uas cov neeg siv ua haujlwm nrog blockchain network. Txhawm rau ua haujlwm, koj yuav tsum tau tso cai thiab muaj cai tsim nyog rau ntau hom kev ua hauv lub network.

Cov phooj ywg tuaj hauv ntau lub luag haujlwm:

  • Endorsing Peer yog ib qho ntawm qhov simulates kev ua tiav ntawm kev sib pauv (ua tiav daim ntawv cog lus ntse). Tom qab kev txheeb xyuas thiab ua tiav ntawm daim ntawv cog lus ntse, cov node rov qab ua tiav cov txiaj ntsig rau cov neeg thov kev thov nrog rau nws kos npe.
  • Ordering Service yog ib qho kev pabcuam faib rau ntau lub nodes, siv los tsim cov blocks tshiab ntawm cov npe faib thiab tsim cov kab rau kev ua tiav ntawm kev hloov pauv. Ordering Service tsis ntxiv blocks tshiab rau lub npe (Qhov no feature tau raug tsiv mus rau Committing Peers los txhim kho kev ua tau zoo).
  • Committing Peer yog ib qho ntawm cov npe uas muaj cov npe faib thiab ntxiv cov blocks tshiab rau cov npe (uas tau tsim los ntawm Ordering Service). Txhua Tus Neeg Ua Haujlwm Sib Koom Tes muaj ib daim ntawv luam hauv cheeb tsam ntawm daim ntawv tshaj tawm. Committing Peer xyuas tag nrho cov kev lag luam hauv lub thaiv kom siv tau ua ntej ntxiv ib qho tshiab hauv zos.

Txoj Cai Pom Zoo yog txoj cai los tshuaj xyuas qhov siv tau ntawm kev sib pauv. Cov kev cai no txhais cov txheej txheem uas yuav tsum tau ua ntawm daim ntawv cog lus ntse yuav tsum tau ua kom thiaj li tau txais kev lees paub tias siv tau.

Lub npe faib - Lerger - muaj ob ntu: WolrldState (tseem hu ua State DataBase) thiab BlockChain.

BlockChain yog cov saw ntawm cov blocks uas khaws cov ntaub ntawv ntawm txhua qhov kev hloov pauv uas tau tshwm sim rau cov khoom faib npe.

WolrldState yog ib qho kev faib khoom lag luam uas khaws cov txiaj ntsig tam sim no (txiav ntug) ntawm tag nrho cov khoom lag luam faib khoom.

WorldState yog database, nyob rau hauv lub hauv paus version - LevelDB los yog ib tug complex - CouchDB, uas muaj ib tug tseem ceeb-nqi khub, piv txwv li: Thawj lub npe - Ivan, lub xeem - Ivanov, hnub sau npe nyob rau hauv lub system - 12.12.21/17.12.1961/XNUMX , hnub yug - XNUMX/XNUMX/XNUMX, thiab lwm yam. WorldState thiab daim ntawv teev npe sib faib yuav tsum ua kom zoo ib yam ntawm txhua tus neeg koom hauv ib qho channel.

Txij li Hyperledger Fabric yog ib lub network uas txhua tus neeg koom tau paub thiab lees paub, nws siv txoj cai muab ntawv pov thawj - CA (Certification Authority). CA ua haujlwm raws li X.509 tus qauv thiab pej xeem cov txheej txheem tseem ceeb - PKI.

Kev Pabcuam Tswvcuab yog ib qho kev pabcuam uas cov tswvcuab tshawb xyuas tias cov khoom yog nyob rau hauv ib lub koomhaum lossis cov channel.

Kev hloov pauv - feem ntau, yog sau cov ntaub ntawv tshiab rau ib daim ntawv sau npe.
Kuj tseem muaj kev hloov pauv rau kev tsim cov channel lossis cov ntawv cog lus ntse. Kev hloov pauv yog pib los ntawm tus neeg siv daim ntawv thov thiab xaus nrog cov ntaub ntawv nyob rau hauv daim ntawv faib khoom.

Ib Channel yog lub network kaw uas muaj ob lossis ntau tus neeg koom nrog blockchain network, tsim los ua kev lag luam tsis pub lwm tus paub nyob rau hauv ib qho kev txwv tab sis paub txog cov neeg koom. Cov channel yog txiav txim siab los ntawm cov neeg koom, nws cov npe faib tawm, daim ntawv cog lus ntse, Ordering Service, WorldState. Txhua tus neeg koom nrog channel yuav tsum tau tso cai nkag mus rau channel thiab muaj cai ua ntau hom kev lag luam. Kev tso cai yog ua los ntawm Kev Pabcuam Tswvcuab.

Hom kev lag luam ua tiav scenario

Tom ntej no, kuv xav tham txog qhov kev ua lag luam raug coj los siv peb qhov project ua piv txwv.

Raws li ib feem ntawm peb txoj haujlwm sab hauv, peb tsim Hyperledger Fabric network, uas yog tsim los rau npe thiab suav nyiaj rau cov tub ntxhais kawm nkag mus hauv tsev kawm qib siab. Peb lub network muaj ob lub koom haum koom nrog University A thiab University B. Txhua lub koom haum muaj daim ntawv thov tus neeg siv khoom, nrog rau nws tus kheej Kev Sib Koom Tes thiab Kev Pom Zoo. Peb kuj tseem siv cov kev pab cuam ntau tshaj Ordering Service, Membership Service thiab Certification Authority.

1) Kev pib ua lag luam

Ib daim ntawv thov tus neeg siv, siv Hyperledger Fabric SDK, pib thov kev hloov pauv thiab xa cov lus thov mus rau nodes nrog cov ntawv cog lus ntse. Qhov kev thov tuaj yeem hloov lossis nyeem los ntawm daim ntawv sau npe (Ledger). Yog tias peb xav txog ib qho piv txwv ntawm peb qhov kev ntsuas kev teeb tsa rau kev suav nyiaj rau cov tub ntxhais kawm ntawv hauv tsev kawm ntawv, daim ntawv thov tus neeg thov xa daim ntawv thov kev hloov pauv mus rau cov ntawm cov tsev kawm qib siab A thiab B, uas tau suav nrog hauv Txoj Cai Pom Zoo ntawm lub npe hu ua daim ntawv cog lus ntse. Node A yog ib qho chaw nyob ntawm lub tsev kawm ntawv uas sau npe cov tub ntxhais kawm tuaj, thiab ntawm B yog qhov chaw nyob ntawm lwm lub tsev kawm ntawv. Txhawm rau kom tau txais kev hloov pauv mus rau qhov chaw sau npe, nws yog ib qho tsim nyog uas txhua cov nodes uas, raws li kev lag luam logic, yuav tsum pom zoo rau kev sib pauv, ua tiav cov ntawv cog lus ntse nrog cov txiaj ntsig zoo ib yam. Cov node Ib tus neeg siv daim ntawv thov, siv Hyperledger Fabric SDK cov cuab yeej, tau txais txoj cai pom zoo thiab kawm cov nodes xa cov ntawv thov mus rau. Qhov no yog qhov kev thov kom hu rau ib daim ntawv cog lus ntse (chaincode muaj nuj nqi) los nyeem lossis sau qee cov ntaub ntawv mus rau ib daim ntawv teev npe. Technically, tus neeg siv khoom SDK siv cov haujlwm sib xws, API uas tau dhau los ntawm qee yam khoom nrog cov khoom lag luam, thiab tseem ntxiv tus neeg siv kos npe thiab xa cov ntaub ntawv no los ntawm cov txheej txheem tsis pub dhau gRPC mus rau qhov tsim nyog nodes (cov phooj ywg pom zoo).

Hyperledger Npuag rau Dummies
Daim duab 2. Kev pib ua lag luam

2) Ua tiav daim ntawv cog lus ntse

Nodes (Endorsing Peers), tau txais kev thov los ua kev lag luam, xyuas cov neeg siv khoom kos npe thiab yog tias txhua yam nyob rau hauv kev txiav txim, lawv coj ib yam khoom nrog cov ntaub ntawv thov thiab khiav ib qho kev simulation ntawm kev ua tiav ntawm daim ntawv cog lus ntse (chaincode muaj nuj nqi) nrog cov ntaub ntawv no. Daim ntawv cog lus ntse yog kev lag luam kev lag luam ntawm kev lag luam, qee yam ntawm cov xwm txheej thiab cov lus qhia (hauv peb qhov xwm txheej, qhov no yog kev txheeb xyuas tus tub ntxhais kawm, yog tus tub ntxhais kawm tshiab, lossis nws puas tau sau npe, pov thawj hnub nyoog, thiab lwm yam). Txhawm rau ua tiav daim ntawv cog lus ntse, koj tseem yuav xav tau cov ntaub ntawv los ntawm WorldState. Raws li qhov tshwm sim ntawm simulating daim ntawv cog lus ntse ntawm Cov Neeg Pom Zoo, ob pawg ntawm cov ntaub ntawv tau txais - Nyeem Teeb thiab Sau Teeb. Nyeem Teeb thiab Sau Teeb yog qhov tseem ceeb thiab tshiab WorldState qhov tseem ceeb. (tshiab - hauv kev nkag siab tau txais thaum lub sij hawm simulation ntawm daim ntawv cog lus ntse).

Hyperledger Npuag rau Dummies
Daim duab 3. Ua tiav daim ntawv cog lus ntse

3) Rov qab cov ntaub ntawv rau tus thov kev pab

Tom qab ua qhov simulation ntawm daim ntawv cog lus ntse, Kev Pom Zoo Cov Neeg Ua Haujlwm rov qab cov ntaub ntawv qub thiab cov txiaj ntsig ntawm qhov simulation, nrog rau RW Teeb, kos npe los ntawm lawv daim ntawv pov thawj rau cov neeg thov. Nyob rau theem no, tsis muaj kev hloov pauv tshwm sim hauv cov npe faib. Daim ntawv thov tus neeg siv tshuaj xyuas qhov Endorsing Peer kos npe, thiab tseem sib piv cov ntaub ntawv hloov pauv qub uas tau xa thiab cov ntaub ntawv xa rov qab (uas yog, nws kuaj xyuas seb cov ntaub ntawv qub uas qhov kev hloov pauv tau hloov pauv lawm). Yog tias qhov kev hloov pauv tsuas yog rau kev nyeem cov ntaub ntawv los ntawm kev sau npe, ces daim ntawv thov tus neeg siv tau txais qhov tsim nyog Read Set thiab qhov no feem ntau ua tiav cov kev sib pauv tiav yam tsis hloov pauv cov npe faib. Nyob rau hauv cov ntaub ntawv ntawm kev sib pauv uas yuav tsum tau hloov cov ntaub ntawv hauv kev sau npe, daim ntawv thov tus neeg siv kuj tseem txheeb xyuas qhov kev siv ntawm Txoj Cai Pom Zoo. Nws yog qhov ua tau tias daim ntawv thov tus neeg siv tsis tau txheeb xyuas qhov tshwm sim ntawm kev ua tiav Txoj Cai Pom Zoo, tab sis Hyperledger Fabric platform nyob rau hauv cov ntaub ntawv no muab rau kev tshuaj xyuas cov cai ntawm cov nodes (Committing Peers) nyob rau theem ntawm kev ntxiv kev sib pauv rau cov npe.

Hyperledger Npuag rau Dummies
Daim duab 4. Rov qab cov ntaub ntawv rau hauv daim ntawv thov tus neeg siv khoom

4) Xa RW teeb rau Ordering Peers

Daim ntawv thov tus neeg siv xa cov kev sib pauv nrog rau cov ntaub ntawv txuas mus rau Ordering service. Qhov no suav nrog RW Teeb, Pom Zoo rau cov phooj ywg kos npe, thiab Channel ID.

Ordering service - raws li lub npe, lub luag haujlwm tseem ceeb ntawm qhov kev pabcuam no yog npaj cov khoom xa tuaj hauv qhov kev txiav txim kom raug. Raws li kev tsim cov block tshiab ntawm kev faib npe thiab lav kev xa tawm ntawm cov blocks tshiab tsim rau txhua qhov Kev Sib Koom Tes, yog li ua kom cov ntaub ntawv sib xws ntawm txhua lub pob uas muaj cov npe faib (Committing peers). Nyob rau tib lub sijhawm, Ordering kev pabcuam nws tus kheej tsis hloov cov npe hauv txhua txoj kev. Ordering Service yog ib qho tseem ceeb ntawm lub system, yog li nws yog ib pawg ntawm ntau cov nodes. Lub Ordering Service tsis kuaj xyuas qhov kev lag luam rau kev siv tau, nws tsuas yog lees txais kev hloov pauv nrog qee tus cim channel, npaj cov khoom xa tuaj hauv qee qhov kev txiav txim thiab tsim cov blocks tshiab ntawm cov npe faib los ntawm lawv. Ib qho Kev Txiav Txim Siab tuaj yeem ua haujlwm rau ntau txoj hauv kev ib txhij. Qhov Kev Pabcuam Kev Txiav Txim muaj xws li Kafka pawg, uas tswj qhov raug (tsis hloov pauv) kev sib pauv (saib Point 7).

Hyperledger Npuag rau Dummies
Daim duab 5. Xa RW teeb rau Ordering Peers

5) Xa cov blocks generated rau Committing Peer

Blocks generated nyob rau hauv Ordering Service raug xa mus (tshaj tawm) rau tag nrho cov network nodes. Txhua lub node, tau txais ib qho thaiv tshiab, kuaj xyuas nws kom ua raws li Txoj Cai Pom Zoo, tshawb xyuas tias txhua tus neeg sib tw Endorsing tau txais qhov txiaj ntsig zoo ib yam (Sau Teem) raws li qhov txiaj ntsig ntawm kev sib cog lus ntse, thiab tseem tshawb xyuas seb cov txiaj ntsig qub puas muaj. hloov pauv (uas yog, Nyeem Teeb - cov ntaub ntawv nyeem los ntawm daim ntawv cog lus ntse los ntawm WorldState) txij li lub sijhawm pib qhov kev hloov pauv. Yog tias tag nrho cov xwm txheej tau ua tiav, kev hloov pauv tau raug cim tias siv tau, txwv tsis pub, kev hloov pauv tau txais cov xwm txheej tsis raug.

Hyperledger Npuag rau Dummies
Daim duab 6. Xa cov blocks generated rau Committing Peer

6) Ntxiv ib qho thaiv rau lub npe

Txhua lub node ntxiv ib qho kev sib pauv rau nws cov ntawv luam hauv zos ntawm cov ntawv sau npe, thiab yog tias qhov kev hloov pauv tau siv tau, tom qab ntawd Cov Txheej Txheem Sau yog siv rau WorldState (lub xeev tam sim no), thiab raws li, cov txiaj ntsig tshiab ntawm cov khoom uas tau cuam tshuam los ntawm cov kev hloov pauv tau sau. Yog tias qhov kev hloov pauv tau txais ib qho token uas tsis siv tau (piv txwv li, ob qho kev lag luam tshwm sim nrog tib yam khoom nyob rau hauv tib lub thaiv, ces ib qho ntawm cov kev lag luam yuav dhau los ua tsis raug, vim tias cov nqi qub twb tau hloov los ntawm lwm tus. kev pauv). Qhov kev hloov pauv no kuj tau ntxiv rau hauv daim ntawv faib khoom nrog cov token tsis raug, tab sis Sau Cov Txheej Txheem ntawm qhov kev sib pauv no tsis siv rau WorldState tam sim no thiab, raws li, tsis hloov cov khoom koom nrog kev sib pauv. Tom qab no, ib qho kev ceeb toom raug xa mus rau tus neeg siv daim ntawv thov tias qhov kev sib pauv tau ntxiv mus tas li rau hauv daim ntawv sau npe, nrog rau cov xwm txheej ntawm kev hloov pauv, uas yog, txawm tias nws siv tau lossis tsis tau ...

Hyperledger Npuag rau Dummies
Daim duab 7. Ntxiv ib qho thaiv rau lub npe

ORDERING SERVICE

Qhov Kev Pabcuam Ordering muaj ib pawg Kafka nrog rau ZooKeeper nodes thiab Ordering Service Nodes (OSN), uas sawv ntawm Ordering service clients thiab Kafka Cluster. Kafka pawg yog ib qho kev faib tawm, ua txhaum cai txaus (xov xwm) kev tswj hwm platform. Txhua tus channel (lub ntsiab lus) hauv Kafka yog qhov hloov tsis tau ntawm cov ntaub ntawv uas tsuas yog txhawb nqa ntxiv cov ntaub ntawv tshiab (tshem tawm ib qho uas twb muaj lawm tsis tuaj yeem ua tau). Ib qho piv txwv ntawm lub ncauj lus qauv qhia hauv qab no. Nws yog cov cuab yeej no ntawm Kafka uas yog siv los tsim lub platform blockchain.

Hyperledger Npuag rau Dummies
tau los ntawm kafka.apache.org

  • Daim duab 8. Ordering Service Topic Structure*

Muaj txiaj ntsig txuas

Youtube - Tsim lub blockchain rau kev lag luam nrog Hyperledger Project
Hyperledger Fabric Docs
Hyperledger ntaub: ib qho kev faib ua haujlwm rau kev tso cai blockchains

Kev lees paub

Kuv xav ua tsaug rau kuv cov npoj yaig rau lawv cov kev pab hauv kev npaj cov kab lus no:
Nikolay Marin
Igor Khapov
Dmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Tau qhov twg los: www.hab.com

Ntxiv ib saib