Benvingut al Tutorial Hyperledger Fabric.
En aquest tutorial, aprendrem a crear la vostra primera aplicació Hyperledger i altres coses importants si sou un dels desenvolupadors que inverteixen profundament en la cadena de blocs i voleu començar amb Hyperledger Fabric.
Qualsevol marc empresarial requereix experiència per funcionar. Si sou principiants, us trobareu lluitant molt per arreglar petites coses. Per això, és important començar aviat i practicar a la seva manera.
Però perquè Teixit Hyperledger i no cap altre marc de cadena de blocs empresarial?
El motiu és que Hyperledger Fabric és un marc de cadenes de blocs empresarial de primer nivell que ofereix una excel·lent tecnologia de llibres comptables distribuïts (DLT). Té algunes funcions fantàstiques que el converteixen en una opció ideal per a una empresa.
Podeu avaluar la seva popularitat comprovant els seus membres, que consisteix en CISCO, IBM, Intel, SAP, Accenture i altres.
Què és el teixit Hyperledger?
Hyperledger Fabric és un marc de codi obert per a empreses. Es basa en la tecnologia de llibres distribuïts amb permís per proporcionar aplicacions i solucions molt necessàries. Linux Foundation treballa en diversos projectes i Hyperledger Fabric n’és un.
Com que és de codi obert, tothom pot unir-se al projecte i contribuir-hi. En aquest moment, 35 organitzacions treballen juntes per convertir Hyperledger Fabric en el millor marc empresarial que hi ha.
Al nucli, Hyperledger Fabric és configurable i modular. Això significa que les empreses poden treballar sense problemes utilitzant el framework. Totes aquestes funcions desitjables fan que Hyperledger Fabric sigui una gran opció. En el moment d’escriure-ho, podeu provar Hyperledger Fabric v1.4, que inclou noves funcions i funcions.
Funcionalitats del teixit Hyperledger
La tela Hyperledger inclou cinc funcions principals. Són les següents
- Gestió d’identitats: la gestió d’identitats és crucial per a qualsevol xarxa amb permís. Per això, la gestió de la identitat és una de les característiques crucials del teixit Hyperledger. En donar a l’administrador que estableixi una gestió d’identitats adequada, les empreses poden assegurar-se que utilitzen diverses capes de permís.
- Processament eficient: el teixit Hyperledger és eficient. Això es deu al fet que els rols de xarxa s’assignen com a tipus de node. L’eficiència també es proporciona deixant l’execució de les transaccions per separat del compromís i l’ordre.
- Disseny modular:Hyperledger Fabric utilitza un disseny modular, cosa que significa que és fàcil integrar-hi serveis o altres sistemes. Això també significa que podeu especificar l’algorisme de consens, la identitat, etc..
- Privadesa i confidencialitat:Hyperledger Fabric també ofereix una confidencialitat i privadesa adequades, que és molt important per a les empreses. Ofereixen canals de dades adequats perquè la informació no es filtri i es pugui mantenir la confidencialitat a qualsevol preu.
- Funcionalitat del codi de xinc:Hyperledger Fabric ofereix una funcionalitat de codi de xat, que permet invocar la lògica només quan es crida a un tipus específic de transacció.
Altres característiques clau del teixit Hyperledger són el codi de qualitat, el codi obert, una gran escalabilitat i eficiència i un ús a tota la indústria.
Tutorial de teixit hiperlíger
Abans de començar a desenvolupar una aplicació, és millor entendre l’arquitectura del sistema d’Hyperledger Fabric. En fer-ho, podem entendre com funciona internament. Aquest coneixement es pot utilitzar per desenvolupar la vostra primera aplicació Hyperledger Fabric.
Arquitectura de sistemes
Al nucli, tenim nodes. Els nodes es comuniquen entre ells i formen una xarxa. No obstant això, hi ha programes que s’executen mitjançant la pròpia cadena de blocs. Són codis de cadena. El codi de cadena s’encarrega de conservar les dades del llibre major i l’estat i també s’encarrega de l’execució de les transaccions.
A Hyperledger Fabric, el codi de cadenes fa més èmfasi a mesura que es realitzen transaccions com a operacions. Per contra, les transaccions han de ser validades mitjançant un aval. Només es poden realitzar transaccions aprovades.
Transaccions
Les transaccions a Hyperledger Fabric poden ser de dos tipus:
- Desplegar transaccions: Aquest tipus de transaccions són responsables de crear un nou codi de cadena amb paràmetre com a programa. Un cop fet, es diu que el codi de cadena està “instal·lat” a la cadena de blocs.
- Transaccions d’invocació: les transaccions d’invocació són transaccions que s’executen amb el context de desplegaments anteriors de codis de xinc.
Estructures de dades de blockchain
L’estructura bàsica de dades que s’utilitza a la cadena de blocs és el magatzem de valors clau (KVS). Les claus són principalment noms i el valor és blobs. Els codis de cadena poden manipular l’estructura de dades amb l’ajut de dues operacions KVS següents.
- posar
- aconseguir
Tota l’estructura de dades es veu com un estat.
Llibre major
Ledger és també la seqüència de canvis d’estat i d’intents fallits. S’ordenen perquè es puguin fer referència més endavant. A més, s’ordenen blocs de transaccions de hashchain. El llibre major conté blocs en ordre, que a canvi contenen una matriu de transaccions ordenada.
Nodes
Els nodes poden ser qualsevol entitat de comunicació de la xarxa.
Client
Un client és algú que pot actuar en nom dels usuaris finals.
Company
Peer gestiona l’estat del llibre major i garanteix que la xarxa funcioni de manera òptima. Els companys poden aprovar els companys, cosa que ajuda a avalar una transacció.
Escrivint la primera aplicació Hyperledger Fabric
Ara que hem entès l’estructura arquitectònica de Hyperledger Fabric, és hora de crear la vostra primera aplicació. En passar per l’aplicació, podreu entendre com funcionen les aplicacions Fabric. En aquest tutorial, aprendreu a utilitzar contractes senzills i intel·ligents i altres aplicacions dins del marc.
Per facilitar el nostre desenvolupament, utilitzarem l’aplicació SDK per facilitar la referència a la clau
funcions, inclosa la invocació de contractes intel·ligents i altres consultes.
Els tres passos principals que heu de seguir mentre desenvolupeu la vostra aplicació de tela Hyperledger són els següents:
- Configureu l’entorn de desenvolupament. L’entorn de desenvolupament proporciona a la vostra aplicació la xarxa necessària per treballar. T’oferirà la possibilitat de fer funcionar també el teu contracte intel·ligent.
- Aprendre sobre exemples de contractes intel·ligents. Aquí heu de passar pel contracte intel·ligent i comprendre’n les transaccions. Executarem consultes simulades per les aplicacions i també actualitzarem el llibre major mitjançant el mateix.
- Desenvolupament d’una aplicació de mostra: en l’últim pas, crearà una aplicació de mostra mitjançant el contracte intel·ligent.
Construint la primera xarxa
Abans de començar amb l’aplicació, creem la nostra primera xarxa. Per començar, hem d’instal·lar alguns requisits previs. Aquests requisits previs asseguraran que tot funcioni correctament.
Consulteu la guia d’instal·lació de requisits previs aquí.
Consulteu també Hyperledger Composer: Build Your Enterprise Blockchain
És possible que vulgueu instal·lar binaris, mostres i imatges docker. Consulteu la guia d’instal·lació aquí.
Un cop instal·leu les mostres, trobareu les mostres de tela incloses al seu interior. S’hauria d’incloure al dipòsit de “mostres de tela”. Al dipòsit hi ha la primera mostra de xarxa.
Per moure’s a aquest directori, aneu a la carpeta amb l’ordre cd tal com es mostra a continuació.
cd fabric-samples / primera xarxa
Per executar el primer exemple de xarxa, heu de fer servir l’script byfn.sh. El guió està dissenyat per iniciar el projecte amb quatre companys ràpidament. Els quatre companys representen dues organitzacions diferents. També llançarà contenidors, un codi de cadena i transaccions. El contenidor permetrà que més companys s’uneixin a la xarxa.
Generant artefactes de xarxa
Ara podeu generar els certificats i les claus per a les entitats de la xarxa. Per fer-ho, heu d’executar l’ordre següent.
.generar byfn.sh
Se us demanarà confirmació abans que comenci el procés. Premeu Y per començar a omplir la xarxa amb la informació necessària, inclosa l’alimentació dels serveis de comanda, la configuració, etc..
Alimentació de la xarxa
A continuació, hem d’alimentar la xarxa. L’alimentació de la xarxa es pot fer amb la senzilla ordre següent.
./byfn.sh up
Un cop executeu l’ordre, el marc compilarà les imatges del codi de xoc Golang. A més, els contenidors associats també es dispararan per proporcionar als nous parells la manera d’incorporar-se a la xarxa.
Per defecte, veureu anar en acció. Això passa perquè Go és l’idioma predeterminat del codi de xinc. Però això no vol dir que no pugueu utilitzar altres llenguatges de programació. Chaincode també admet Node.js i Java. Per canviar a un node, podeu utilitzar l’ordre següent.
.byfn.sh cap amunt -l node
De la mateixa manera, podeu canvieu a Java si cal.
.byfn.sh up -l java
Si voleu utilitzar diversos idiomes de codis de xat, haureu d’utilitzar el servei de comandes, inclòs Raft o Kafka.
./byfn.sh up -o etcdraft
./byfn.sh up -o kafka
Cada vegada que utilitzeu l’ordre, demaneu que confirmeu una vegada més abans que s’executi l’ordre.
Per entendre com construir i mantenir la primera xarxa, consulteu el tutorial de creació de xarxes aquí.
Llançament de la xarxa
Ara, ja que heu instal·lat mostres i heu passat per la pàgina de requisits previs, és hora que iniciem la xarxa.
Per simplificar, no farem servir JavaScript. A més, necessiteu el subdirectori fabcar. Feu també un clon local de reposició de mostres de tela.
Per iniciar la xarxa, heu d’utilitzar l’escript de shell startFabric.sh. Un cop llançat, obtindreu una xarxa blockchain que tingui autoritats certificadores, encarregats, companys, etc. A mesura que s’utilitza el subdirectori fabcar, el contracte intel·ligent FabCar s’instal·larà i s’iniciarà automàticament.
L’ordre per iniciar la xarxa és el següent:
./startFabric.sh javascript
Instal·lació de l’aplicació
Ara és el moment d’instal·lar l’aplicació. Abans de fer-ho, hem d’instal·lar les dependències.
Instal·lació de npm
L’ordre anterior començarà a instal·lar les dependències importants definides al fitxer package.json
Al paquet, s’inclouen les classes importants que s’iniciaran
- classe de xarxa de teixit → permet transaccions, identitats, carteres
- fabric-ca-client → registra els usuaris a les seves autoritats de certificació respectives
Un cop fet, passarem al directori fabcar / javascript. Vegem els fitxers de directori següents:
- encrollAdmin.js
- mòduls_node
- package.json
- registerUser.js
- invocar.js
- package-lock.json
- query.js
- cartera
Comunicació amb l’autoritat certificadora
Ara, ja que tenim una xarxa en funcionament, aprenem a comunicar-nos amb una autoritat certificadora.
Sol·licitud de signatura de certificats (CSR)
La nostra primera tasca és passar per un procés de RSC. En aquest procés, el administrador es posa en contacte amb l’autoritat de certificació per generar el certificat públic, privat i X.509. El programa que es feia abans és enroll.js
Per inscriure l’administrador, utilitzeu l’ordre següent.
node enrollAdmin.js
Ara tota la informació s’emmagatzema al fitxer cartera directori.
Cal seguir el mateix procés si voleu registrar un altre usuari. Intentem registrar un altre usuari: usuari nou
node reisterUser.js
Això registrarà el nou usuari i emmagatzemarà les seves credencials a la cartera al costat de l’administrador.
Consulta de llibre major
Com que la xarxa blockchain té una còpia del llibre major, podeu consultar-la per trobar informació. Els llibres majors són de només lectura i per això només es poden executar consultes de lectura. Per obtenir una millor comprensió, comprovem la imatge següent.
Font: Hyperledger Fabric Docs
Els valors del llibre major també es mantenen en el seu estat mundial. Aquest és el valor del parell de claus que es parla anteriorment al tutorial. Per tant, una consulta pot revelar dades de claus. La bona notícia és que podeu utilitzar bases de dades com CouchDB. Els estats mundials es poden configurar per utilitzar bases de dades relacionals.
Per obtenir la llista de tots els cotxes del llibre major, executeu l’ordre següent,
node query.js
Per entendre millor com funciona la consulta, és possible que vulgueu obrir-vos query.js arxivar-lo i revisar-lo. Passem-ho a continuació.
const {FileSystemWallet, Gateway} = require (‘tela-xarxa’);
A la línia anterior, es fa una connexió de xarxa
A continuació, es crea una passarel·la perquè l’aplicació es connecti. Es fa utilitzant les línies següents.
const gateway = nova passarel·la ();
espera gateway.connect (ccp, {cartera, identitat: ‘usuari1’});
El ccp s’utilitza per identificar la identitat de l’usuari i la informació de cartera relacionada.
Com que la xarxa Hyperledger Fabric executa diversos canals, és important connectar-se al canal concret de l’aplicació.
contracte const = network.getContract (‘fabcar’);
Comprensió del contracte intel·ligent
Per obtenir una millor comprensió del contracte intel·ligent, revisem-lo. També mostrarà les transaccions realitzades a través d’ella.
Per accedir-hi, heu d’anar al subdirectori chaincode / fabcar / javascript / lib. Un cop allà, obriu fabcar.js en un editor.
Allà veureu l’ús de la classe Contract per definir el contracte intel·ligent. A més, hi hauria transaccions clares definides dins del contracte intel·ligent, incloses queryCar, queryAllCars, initLedger, changeCarOwner i createCar.
Les transaccions serien les següents:
async queryCar (ctx, carNumber) {…}
Vegem la transacció queryCar.
async queryAllCars (ctx) {
const startKey = ‘CAR0’;
const endKey = ‘CAR999’;
iterador const = espera ctx.stub.getStateByRange (startKey, endKey);
Font: Hyperledger Fabric Docs
Actualització del llibre major: compra d’un cotxe nou
El darrer pas és actualitzar el llibre major amb informació nova. En aquest cas, creem un cotxe nou mitjançant l’invoke.js. Heu d’obrir el fitxer i afegir-hi l’ordre següent.
await contract.submitTransaction (“createCar”, “CAR12”, “CarBrand”, “Model”, “Color”, “Owner”);
Al codi anterior, les trucades de l’aplicació transaccions de contracte intel·ligent createCar A canvi, crearà el cotxe amb els seus atributs, inclosos CarBrand, Color, Model i Owner.
Ara, executeu el següent codi per empènyer-lo al llibre major
node invoke.js
Això donarà lloc a una actualització del llibre major i obtindreu una sortida satisfactòria.
Conclusió
Això ens condueix al final del nostre tutorial. Al tutorial, el nostre objectiu era cobrir només la superfície. Si voleu submergir-vos en profunditat, podeu consultar els documents oficials de Hyperledger Fabric, que analitzen tot detalladament.
Aleshores, faràs servir Hyperledger Fabric per construir blockchain empresarial? Comenta a continuació i fes-nos-ho saber.