Hyperledger Stoff fir Dummies

Eng Blockchain Plattform fir d'Entreprise

Hyperledger Stoff fir Dummies

Gudde Mëtteg, léif Lieser, mäin Numm ass Nikolay Nefedov, ech sinn en technesche Spezialist bei IBM, an dësem Artikel wëll ech Iech d'Blockchain Plattform virstellen - Hyperledger Fabric. D'Plattform ass entwéckelt fir Enterprise-Klass Geschäftsapplikatiounen ze bauen. Den Niveau vum Artikel ass fir onpreparéiert Lieser mat Basiskenntnisser vun IT Technologien.

Hyperledger Fabric ass en Open Source Projet, ee vun de Filialen vum Open Source Hyperledger Projet, e Konsortium vun der Linux Foundation. Hyperledger Fabric gouf ursprénglech vun Digital Assets an IBM gestart. D'Haaptmerkmale vun der Hyperledger Fabric Plattform ass säi Fokus op d'Entreprise Benotzung. Dofir gouf d'Plattform entwéckelt andeems d'Héichgeschwindegkeet vun den Transaktiounen an hir niddreg Käschten berücksichtegt, wéi och d'Identifikatioun vun all Participanten. Dës Virdeeler ginn erreecht duerch d'Trennung vum Transaktiounsverifizéierungsservice an d'Bildung vun neie Blöcke vum verdeelte Registry, wéi och d'Benotzung vun engem Zertifizéierungszentrum an d'Autorisatioun vun de Participanten.

Mäin Artikel ass Deel vun enger Serie vun Artikelen iwwer Hyperledger Fabric, an deem mir e Systemprojet beschreiwen fir Studenten opzehuelen déi op eng Uni kommen.

Allgemeng Architektur vun Hyperledger Fabric

Hyperledger Fabric ass e verdeelt Blockchain Netzwierk besteet aus verschiddene funktionnelle Komponenten déi op Netzwierkknoten installéiert sinn. Hyperledger Fabric Komponente sinn Docker Container déi fräi vum DockerHub erofgeluede kënne ginn. Hyperledger Fabric kann och an engem Kubernetes Ëmfeld lafen.

Fir Smart Kontrakter ze schreiwen (Kettecode am Kontext vun Hyperledger Fabric), hu mir Golang benotzt (obwuel Hyperledger Fabric d'Benotzung vun anere Sproochen erlaabt). Fir eng personaliséiert Applikatioun z'entwéckelen, an eisem Fall hu mir Node.js mat der entspriechender Hyperledger Fabric SDK benotzt.

D'Node féieren Geschäftslogik aus (Smart Kontrakt) - Kettencode, späicheren den Zoustand vun der verdeeler Registry (Ledgerdaten) an ausféieren aner Systemservicer vun der Plattform. En Node ass nëmmen eng logesch Eenheet; verschidde Node kënnen um selwechte kierperleche Server existéieren. Vill méi wichteg ass wéi d'Node gruppéiere sinn (Trusted Domain) a wéi eng Funktiounen vum Blockchain Netzwierk si verbonne sinn.

Déi allgemeng Architektur gesäit esou aus:

Hyperledger Stoff fir Dummies

Bild 1. Allgemeng Architektur vun Hyperledger Stoff

Benotzer Applikatioun (Submitting Client) ass eng Applikatioun mat där d'Benotzer mam Blockchain Netzwierk schaffen. Fir ze schaffen, musst Dir autoriséiert sinn an déi entspriechend Rechter fir verschidden Aarte vun Aktiounen am Netz hunn.

Peer kommen a verschiddene Rollen:

  • Endossing Peer ass en Node deen d'Ausféierung vun enger Transaktioun simuléiert (de Smart Kontrakt Code ausféiert). Nom Verifizéierung an Ausféierung vum Smart Kontrakt gëtt den Node d'Ausféierungsresultater zréck an d'Clientapplikatioun zesumme mat senger Ënnerschrëft.
  • Ordering Service ass e verdeelt Service op e puer Noden, benotzt fir nei Blocks vum verdeelt Registry ze generéieren an eng Schlaang fir d'Ausféierung vun Transaktiounen ze kreéieren. D'Bestellungsservice füügt keng nei Blocks un de Registry derbäi (Dës Feature gouf op Committing Peers geplënnert fir d'Performance ze verbesseren).
  • Committing Peer ass en Node deen e verdeelt Registry enthält an nei Blocks un d'Registry bäidréit (déi vum Bestellungsservice generéiert goufen). All Committing Peers enthalen eng lokal Kopie vun der verdeelt Ledger. Committing Peer kontrolléiert all Transaktiounen am Block fir Gültegkeet ier en neie Block lokal bäigefüügt gëtt.

Endossement Politik ass d'Politik fir d'Gëltegkeet vun enger Transaktioun ze kontrolléieren. Dës Politiken definéieren déi erfuerderlech Set vun Noden, op deenen de Smart Kontrakt muss ausgefouert ginn, fir datt d'Transaktioun als gëlteg unerkannt gëtt.

De verdeelt Registry - Lerger - besteet aus zwee Deeler: WolrldState (och State DataBase genannt) a BlockChain.

BlockChain ass eng Kette vu Blocken déi records vun all Ännerunge späichert déi op verdeelt Registrierungsobjekter geschitt sinn.

WolrldState ass e verdeelt Ledger Komponent deen déi aktuell (Schneidkant) Wäerter vun all verdeelt Ledger Objete späichert.

WorldState ass eng Datebank, an der Basis Versioun - LevelDB oder eng méi komplex - CouchDB, déi Schlëssel-Wäertpairen enthält, zum Beispill: Virnumm - Ivan, Familljennumm - Ivanov, Aschreiwungsdatum am System - 12.12.21/17.12.1961/XNUMX , Gebuertsdatum - XNUMX, etc. WorldState an de verdeelt Registry musse konsequent tëscht all Participanten an engem bestëmmte Kanal sinn.

Zënter Hyperledger Fabric ass en Netzwierk an deem all Participanten bekannt an authentifizéiert sinn, benotzt se eng engagéiert Zertifizéierungsautoritéit - CA (Certification Authority). CA bedreift baséiert op der X.509 Standard an ëffentlech Schlëssel Infrastruktur - PKI.

Membership Service ass e Service, duerch deen Memberen verifizéieren datt en Objet zu enger bestëmmter Organisatioun oder Kanal gehéiert.

Eng Transaktioun - an deene meeschte Fäll schreift nei Donnéeën an e verdeelt Registry.
Et ginn och Transaktioune fir d'Schafung vu Channels oder Smart Kontrakter. D'Transaktioun gëtt vun der Benotzerapplikatioun initiéiert an endet mat engem Rekord an der verdeelt Ledger.

E Kanal ass en zouenen Ënnernetz, besteet aus zwee oder méi Blockchain Netzwierk Participanten, entwéckelt fir vertraulech Transaktiounen an engem limitéierten awer bekannte Krees vu Participanten ze maachen. De Kanal gëtt vun de Participanten bestëmmt, säi verdeelt Registry, Smart Kontrakter, Bestellungsservice, WorldState. All Kanal Participant muss autoriséiert ginn Zougang zu de Kanal an hunn d'Recht verschidden Zorte vu Transaktiounen ze Leeschtunge. D'Autorisatioun gëtt mam Memberschaftsservice gemaach.

Typesch Transaktioun Ausféierung Szenario

Als nächst wëll ech iwwer en typesche Transaktiounsausféierungsszenario schwätzen mat eisem Projet als Beispill.

Als Deel vun eisem internen Projet hu mir den Hyperledger Fabric Netzwierk erstallt, deen entwéckelt ass fir Studenten ze registréieren an ze berechnen, déi an d'Universitéite kommen. Eist Netz besteet aus zwou Organisatiounen, déi zu der Universitéit A an der Universitéit B gehéieren. All Organisatioun enthält eng Clientapplikatioun, souwéi seng eege Committing and Endorsing Peer. Mir benotzen och déi gemeinsam Servicer Bestellungsservice, Memberschaftsservice an Zertifizéierungsautoritéit.

1) Initiatioun vun Transaktioun

Eng Benotzerapplikatioun, déi den Hyperledger Fabric SDK benotzt, initiéiert eng Transaktiounsufro a schéckt d'Ufro un Noden mat Smart Kontrakter. D'Ufro kann sinn ze änneren oder aus engem verdeelt Registry (Ledger) ze liesen. Wa mir e Beispill vun eiser Testsystem Konfiguratioun fir Comptablesmethod fir Universitéit Studenten betruecht, schéckt d'Client Applikatioun eng Transaktioun Ufro un d'Knäppercher vun Universitéiten A a B, déi an der Endorsement Politik vun der genannt Smart Kontrakt abegraff sinn. Node A ass en Node deen op der Uni läit, déi den erakommende Student registréiert, an Node B ass en Node deen op enger anerer Universitéit läit. Fir datt eng Transaktioun an e verdeelt Registry gespäichert gëtt, ass et néideg datt all Noden, déi no der Geschäftslogik d'Transaktioun approuvéiere mussen, erfollegräich Smart Kontrakter mat deemselwechte Resultat ausféieren. Den Node Eng Benotzerapplikatioun, déi Hyperledger Fabric SDK Tools benotzt, kritt d'Endorsement Politik a léiert op wéi eng Noden eng Transaktiounsufro schécken. Dëst ass eng Ufro fir e spezifesche Smart Kontrakt (Kettencode Funktioun) opzeruffen fir gewësse Donnéeën an e verdeelt Registry ze liesen oder ze schreiwen. Technesch benotzt de Client SDK déi entspriechend Funktioun, d'API vun där e bestëmmten Objet mat Transaktiounsparameter passéiert ass, an och eng Client Ënnerschrëft bäidréit a schéckt dës Donnéeën iwwer Protokollbuffer iwwer gRPC un déi entspriechend Noden (endorsing Peers).

Hyperledger Stoff fir Dummies
Bild 2. Eng Transaktioun initiéieren

2) Ausféierung vun Smart Kontrakt

Noden (Endoring Peers), nodeems se eng Ufro kritt hunn fir eng Transaktioun ze maachen, d'Client Ënnerschrëft ze kontrolléieren an wann alles an der Rei ass, huelen se en Objet mat den Ufrodaten a lafen eng Simulatioun vun der Ausféierung vun engem Smart Kontrakt (Chaincode Funktioun) mat dës Donnéeën. E Smart Kontrakt ass d'Geschäftslogik vun enger Transaktioun, e bestëmmte Set vu Konditiounen an Instruktiounen (an eisem Fall ass dëst d'Verifizéierung vun engem Student, ass dëst en neie Student, oder ass hien scho registréiert, Altersverifikatioun, etc.). Fir de Smart Kontrakt auszeféieren, braucht Dir och Daten vum WorldState. Als Resultat vun der Simulatioun vun engem Smart Kontrakt op der Endorsing Peer, ginn zwee Sätz vun Daten kritt - Read Set a Write Set. Read Set a Write Set sinn déi originell an nei WorldState Wäerter. (nei - am Sënn kritt während der Simulatioun vun engem Smart Kontrakt).

Hyperledger Stoff fir Dummies
Bild 3. Ausféierung vun engem Smart Kontrakt

3) Daten zréck an d'Clientapplikatioun

Nodeems Dir eng Simulatioun vum Smart Kontrakt gemaach hutt, ginn d'Endorsing Peers déi ursprénglech Donnéeën an d'Resultat vun der Simulatioun zréck, souwéi de RW Set, ënnerschriwwen duerch hiren Zertifikat un d'Clientapplikatioun. Op dëser Etapp geschéien keng Ännerungen am verdeelt Registry. D'Clientapplikatioun iwwerpréift d'Endorsing Peer Ënnerschrëft, a vergläicht och déi ursprénglech Transaktiounsdaten, déi geschéckt goufen an d'Donnéeën, déi zréckginn (dat heescht, et iwwerpréift ob d'Originaldaten, op deenen d'Transaktioun simuléiert gouf, verzerrt goufen). Wann d'Transaktioun nëmme war fir Daten aus dem Registry ze liesen, kritt d'Clientapplikatioun deementspriechend den néidege Read Set an dëst fäerdeg normalerweis d'Transaktioun erfollegräich ouni de verdeelte Registry z'änneren. Am Fall vun enger Transaktioun déi d'Donnéeën am Registry änneren muss, kontrolléiert d'Clientapplikatioun zousätzlech d'Ëmsetzung vun der Endorsing Politik. Et ass méiglech datt eng Clientapplikatioun d'Resultat vun der Ausféierung vun der Endorsement Policy net iwwerpréift, awer d'Hyperledger Fabric Plattform an dësem Fall suergt fir d'Politik op Noden ze kontrolléieren (Committing Peers) op der Bühn vun der Transaktioun an de Registry.

Hyperledger Stoff fir Dummies
Bild 4. Retour Daten un de Client Applikatioun

4) RW-Sets schécken fir Peers ze bestellen

D'Clientapplikatioun schéckt d'Transaktioun zesumme mat Begleedungsdaten un den Bestellungsservice. Dëst beinhalt de RW Set, d'Ënnerschreiwe vu Peers Ënnerschrëften an d'Kanal ID.

Bestellungsservice - baséiert op dem Numm ass d'Haaptfunktioun vun dësem Service d'Entrée Transaktiounen an der korrekter Uerdnung ze arrangéieren. Wéi och d'Bildung vun engem neie Block vum verdeelte Registry a garantéiert Liwwerung vun neie generéierte Blocken un all Commiting Noden, sou datt d'Datenkonsistenz op all Noden assuréiert déi de verdeelt Registry enthalen (Committing Peers). Zur selwechter Zäit ännert de Bestellungsservice selwer de Registry op kee Fall. Bestellungsservice ass e wesentleche Bestanddeel vum System, also ass et e Stärekoup vu verschiddene Wirbelen. De Bestellungsservice iwwerpréift d'Gëltegkeet vun der Transaktioun net, et akzeptéiert einfach eng Transaktioun mat engem bestëmmte Kanalidentifizéierer, arrangéiert erakommen Transaktiounen an enger bestëmmter Uerdnung a formt nei Blocks vum verdeelte Registry vun hinnen. Ee Bestellungsservice kann e puer Kanäl gläichzäiteg déngen. De Bestellungsservice enthält e Kafka-Cluster, deen déi richteg (onverännerbar) Transaktiounsschlaang hält (kuckt Punkt 7).

Hyperledger Stoff fir Dummies
Bild 5. RW-Sets schécken fir Peers ze bestellen

5) Generéiert Blocken un Committing Peer schécken

Blocken, déi am Bestellungsservice generéiert ginn, ginn op all Netzwierkknäppchen iwwerdroen (Sendung). All Node, nodeems hien en neie Block kritt huet, kontrolléiert et fir d'Konformitéit mat der Endorsing Policy, kontrolléiert datt all Endorsing Peers datselwecht Resultat (Write Set) kritt hunn als Resultat vun der Smart Kontrakt Simulatioun, a kontrolléiert och ob déi ursprénglech Wäerter hunn geännert (dat ass, Read Set - Daten gelies vum Smart Kontrakt vum WorldState) vum Moment wou d'Transaktioun initiéiert gouf. Wann all Konditioune erfëllt sinn, gëtt d'Transaktioun als valabel markéiert, soss kritt d'Transaktioun de Status ongëlteg.

Hyperledger Stoff fir Dummies
Bild 6. Schéckt generéiert Blocken op Committing Peer

6) Füügt e Block an de Registry

All Node füügt eng Transaktioun op seng lokal Kopie vum verdeelte Registry un, a wann d'Transaktioun gëlteg ass, gëtt de Write Set op de WorldState applizéiert (aktuelle Staat), an deementspriechend nei Wäerter vun den Objeten, déi vun der betraff waren. Transaktioun geschriwen. Wann eng Transaktioun en Token kritt deen net gëlteg ass (zum Beispill zwee Transaktioune mat de selwechten Objeten am selwechte Block geschitt, da wäert eng vun den Transaktiounen ongëlteg sinn, well déi ursprénglech Wäerter scho vun engem aneren geännert goufen Transaktioun). Dës Transaktioun gëtt och an d'verdeelt Ledger mat engem ongültege Token bäigefüügt, awer de Write Set vun dëser Transaktioun gëtt net op den aktuellen WorldState applizéiert an deementspriechend ännert d'Objeten net déi un der Transaktioun deelhuelen. Duerno gëtt eng Notifikatioun un d'Benotzerapplikatioun geschéckt datt d'Transaktioun permanent an de verdeelt Registry bäigefüügt gouf, souwéi de Status vun der Transaktioun, dat heescht ob et valabel ass oder net ...

Hyperledger Stoff fir Dummies
Bild 7. E Block an d'Registry addéieren

BESTELLEN SERVICE

Den Bestellungsservice besteet aus engem Kafka-Cluster mat entspriechende ZooKeeper-Knäppchen an Bestellungsserviceknäppchen (OSN), déi tëscht den Bestellungsservice Clienten an dem Kafka Cluster stinn. Kafka Cluster ass eng verdeelt, Feeler-tolerant Flow (Message) Management Plattform. All Kanal (Thema) am Kafka ass eng onverännerbar Sequenz vun Opzeechnungen, déi nëmmen en neie Rekord bäidroen ënnerstëtzt (en existéierenden läschen ass net méiglech). Eng Illustratioun vun der Themastruktur gëtt hei ënnen gewisen. Et ass dës Eegeschafte vu Kafka déi benotzt gëtt fir eng Blockchain Plattform ze bauen.

Hyperledger Stoff fir Dummies
aus kafka.apache.org geholl

  • Bild 8. Bestellung Service Thema Struktur*

Nëtzlech Linken

Youtube - Baut e Blockchain fir Geschäfter mam Hyperledger Project
Hyperledger Stoff Docs
Hyperledger Stoff: e verdeelt Betribssystem fir autoriséiert Blockchainen

Unerkennungen

Ech wëll meng déif Dankbarkeet u menge Kollegen ausdrécken fir hir Hëllef bei der Virbereedung vun dësem Artikel:
Nikolai Marin
Igor Khapov
Dmitry Gorbatschow
Alexander Zemtsov
Ekaterina Guseva

Source: will.com

Setzt e Commentaire