Hyperledger Fabric-zelfstudie: handleiding Aan de slag

Welkom bij de Hyperledger Fabric-zelfstudie. 

In deze tutorial leren we hoe je je eerste Hyperledger-applicatie kunt maken en andere belangrijke dingen als je een van de ontwikkelaars bent die diep in de blockchain hebben geïnvesteerd en aan de slag wilt met Hyperledger Fabric..

Elk enterprise-grade framework vereist expertise om te werken. Als je een beginneling bent, zul je merken dat je veel moeite hebt om kleine dingen op te lossen. Daarom is het belangrijk om vroeg te beginnen en op uw eigen manier te oefenen.

Maar waarom Hyperledger-stof en niet een ander blockchain-framework voor ondernemingen?

De reden is dat Hyperledger Fabric een eersteklas blockchain-framework voor ondernemingen is dat gedistribueerde grootboektechnologie (DLT) met uitstekende toestemming biedt. Het heeft een aantal geweldige functies waardoor het een ideale keuze is voor een onderneming. 

U kunt de populariteit ervan meten door de leden te controleren, die bestaan ​​uit CISCO, IBM, Intel, SAP, Accenture en anderen.

Wat is Hyperledger Fabric?

Hyperledger Fabric is een open-source framework voor ondernemingen. Het vertrouwt op geautoriseerde gedistribueerde grootboektechnologie om de broodnodige applicaties en oplossingen te bieden. Linux Foundation werkt aan een divers aantal projecten, en Hyperledger Fabric is er een van.

Omdat het open-source is, kan iedereen meedoen aan het project en eraan bijdragen. Op dit moment werken 35 organisaties samen om van Hyperledger Fabric het beste enterprise-framework te maken.

Hyperledger Fabric is in de kern configureerbaar en modulair. Dit betekent dat ondernemingen naadloos kunnen werken met behulp van het framework. Al deze wenselijke functies maken Hyperledger Fabric een geweldige keuze! Op het moment van schrijven kunt u de Hyperledger Fabric v1.4 uitproberen, die wordt geleverd met nieuwe functies en functionaliteiten.

Hyperledger Fabric-functionaliteiten

Hyperledger Fabric wordt geleverd met vijf hoofdfuncties. Ze zijn als volgt

  • Identiteitsbeheer: Identiteitsbeheer is cruciaal voor elk netwerk met toestemming. Daarom is identiteitsbeheer een van de cruciale functies in de Hyperledger-structuur. Door de beheerder het juiste identiteitsbeheer te geven, kunnen bedrijven ervoor zorgen dat ze meerdere machtigingslagen gebruiken.
  • Efficiënte verwerking: Hyperledger Fabric is efficiënt. Dit komt doordat netwerkrollen worden toegewezen als knooppunttype. De efficiëntie wordt ook geboden door de uitvoering van transacties los te laten van toezegging en bestelling.
  • Modulair ontwerp: Hyperledger Fabric maakt gebruik van een modulair ontwerp, wat betekent dat het eenvoudig is om services of andere systemen erin te integreren. Dit betekent ook dat u het consensusalgoritme, de identiteit enzovoort kunt specificeren. 
  • Privacy en vertrouwelijkheid: Hyperledger Fabric biedt ook de juiste vertrouwelijkheid en privacy, wat erg belangrijk is voor ondernemingen. Ze bieden de juiste datakanalen zodat informatie niet lekt en de vertrouwelijkheid koste wat kost kan worden gehandhaafd.
  • Chaincode-functionaliteit: Hyperledger Fabric biedt chaincode-functionaliteit, waardoor logica alleen kan worden aangeroepen wanneer een specifiek type transactie wordt aangeroepen. 

Andere belangrijke kenmerken van Hyperledger-fabric zijn onder meer kwaliteitscode, open-source, geweldige schaalbaarheid en efficiëntie en gebruik in de hele industrie. 

Hyperledger Fabric-zelfstudie


Voordat u begint met het ontwikkelen van een applicatie, is het beter om de systeemarchitectuur van Hyperledger Fabric te begrijpen. Door dit te doen, kunnen we begrijpen hoe het intern werkt. Deze kennis kan vervolgens worden gebruikt om uw eerste Hyperledger Fabric-applicatie te ontwikkelen. 

Systeem Architectuur

In de kern hebben we knooppunten. De knooppunten communiceren met elkaar en vormen een netwerk. Er zijn echter programma’s die door de blockchain zelf worden uitgevoerd. Ze zijn kettingcode. De kettingcode is verantwoordelijk voor het bijhouden van grootboek- en staatgegevens, en zorgt ook voor de uitvoering van transacties. 

In Hyperledger Fabric legt kettingcode de meeste nadruk omdat er transacties op worden uitgevoerd als bewerkingen. Transacties moeten daarentegen worden gevalideerd door middel van goedkeuring. Alleen goedgekeurde transacties kunnen worden vastgelegd.

Transacties

Er zijn twee soorten transacties op Hyperledger Fabric:

  • Transacties implementeren: Dit type transacties is verantwoordelijk voor het maken van een nieuwe kettingcode met parameter als een programma. Eenmaal gedaan, wordt gezegd dat de kettingcode op de blockchain is “geïnstalleerd”.
  • Invoke-transacties: De invoke-transacties zijn transacties die worden uitgevoerd in de context van eerdere implementaties van kettingcodes.

Blockchain-datastructuren

De basisgegevensstructuur die in de blockchain wordt gebruikt, is de key-value store (KVS). De sleutels zijn meestal namen en de waarde is blobs. Chaincodes kunnen de datastructuur manipuleren met behulp van twee opvolgende KVS-bewerkingen.

  • zetten
  • krijgen

De hele datastructuur wordt gezien als een staat.

Grootboek

Ledger is ook de opeenvolging van succesvolle statuswijzigingen en mislukte pogingen. Ze zijn geordend zodat ze later kunnen worden geraadpleegd. Ze zijn ook geordende hashchain-blokken met transacties. Het grootboek bevat blokken op volgorde, die in ruil daarvoor een geordende transactiematrix bevatten.

Knooppunten

Knooppunten kunnen elke communicatie-entiteit binnen het netwerk zijn.

Cliënt

Een klant is iemand die namens eindgebruikers kan optreden.

Peer

Peer behandelt de status van het grootboek en zorgt ervoor dat het netwerk optimaal werkt. De peers kunnen peers onderschrijven, wat helpt bij het onderschrijven van een transactie.

Uw eerste Hyperledger Fabric-app schrijven 

Nu we de architectonische structuur van Hyperledger Fabric hebben begrepen, is het nu tijd om uw eerste applicatie te maken. Door de applicatie te doorlopen, zult u begrijpen hoe Fabric-applicaties werken. In deze tutorial leer je hoe je eenvoudige, slimme contracten en andere applicaties binnen het raamwerk kunt gebruiken. 

Om onze ontwikkeling gemakkelijker te maken, zullen we de applicatie-SDK gebruiken voor gemakkelijke verwijzing naar de sleutel 

functies, waaronder het aanroepen van slimme contracten en andere vragen.

De drie belangrijkste stappen die u moet volgen bij het ontwikkelen van uw Hyperledger-fabric-app, zijn onder meer:

  1. Stel de ontwikkelomgeving in. De ontwikkelomgeving geeft uw applicatie het nodige netwerk om mee te werken. Het geeft je de mogelijkheid om je slimme contract ook te laten werken.
  2. Leren over slimme voorbeelden van contracten. Hier moet u het slimme contract doorlopen en de transacties ervan begrijpen. We zullen zoekopdrachten uitvoeren zoals gesimuleerd door applicaties en ook het grootboek bijwerken met behulp hiervan.
  3. Een voorbeeldtoepassing ontwikkelen: in de laatste stap maakt u een voorbeeldtoepassing met behulp van het slimme contract.

Eerste netwerk bouwen

Laten we, voordat we met de applicatie beginnen, ons eerste netwerk bouwen. Om aan de slag te gaan, moeten we enkele vereisten installeren. Deze voorwaarden zorgen ervoor dat alles werkt zoals bedoeld.

Bekijk hun vereiste installatiehandleiding hier.

Bekijk ook Hyperledger Composer: Build Your Enterprise Blockchain

Misschien wilt u binaire bestanden, voorbeelden en docker-images installeren. Bekijk de installatiehandleiding hier.

Nadat u de monsters hebt geïnstalleerd, vindt u de stofmonsters erin. Het moet worden opgenomen in de opslagplaats voor ‘fabric-samples’. In de repository is er het eerste netwerkvoorbeeld.

Om naar die map te gaan, gaat u naar de map met de opdracht cd, zoals hieronder.

cd fabric-samples / eerste-netwerk

Om het eerste netwerkvoorbeeld uit te voeren, moet u het byfn.sh-script gebruiken. Het script is ontworpen om het project snel met vier peers te starten. De vier peers vertegenwoordigen twee verschillende organisaties. Het zal ook een container, een kettingcode en transacties lanceren. Door de container kunnen meer peers lid worden van het netwerk.

Netwerkartefacten genereren

U kunt nu de certificaten en sleutels voor de netwerkentiteiten genereren. Om dit te doen, moet u de volgende opdracht uitvoeren.

.byfn.sh genereren

U wordt om bevestiging gevraagd voordat het proces start. Druk op Y om het netwerk te vullen met de nodige informatie, inclusief het voeden van de bestelservices, configuratie, enzovoort.

Voeding voor het netwerk

Vervolgens moeten we het netwerk van stroom voorzien. Het netwerk van stroom voorzien kan worden gedaan met de eenvoudige opdracht hieronder.

./byfn.sh up

Als je het commando eenmaal hebt uitgevoerd, zal het framework de Golang-kettingcode-afbeeldingen compileren. Bovendien zullen de bijbehorende containers ook worden geactiveerd om nieuwe peers een manier te bieden om zich bij het netwerk aan te sluiten. 

Standaard ziet u Go in actie. Dat komt omdat Go de standaardtaal van de kettingcode is. Maar dat betekent niet dat u geen andere programmeertalen kunt gebruiken. Chaincode ondersteunt ook Node.js en Java. Om naar een knooppunt te veranderen, kunt u de volgende opdracht gebruiken. 

.byfn.sh up -l knooppunt

Evenzo kunt u verander naar Java als je moet.

.byfn.sh up -l java

Als u meerdere kettingcodetalen wilt gebruiken, moet u de bestelservice gebruiken, waaronder Raft of Kafka.

./byfn.sh up -o etcdraft

./byfn.sh up -o kafka

Elke keer dat u het commando gebruikt, zal u nogmaals om bevestiging vragen voordat het commando wordt uitgevoerd.

Voor meer informatie over het bouwen en onderhouden van uw eerste netwerk, kunt u de tutorial over netwerkopbouw raadplegen hier.

Lancering van het netwerk

Nu u voorbeelden hebt geïnstalleerd en de vereiste pagina hebt doorlopen, is het nu tijd voor ons om het netwerk te starten.

Eenvoudigheidshalve gaan we geen JavaScript gebruiken. Je hebt ook de subdirectory fabcar nodig. Maak ook een lokale kloon van een opslagplaats voor stofmonsters.

Om het netwerk te starten, moet u het startFabric.sh shell-script gebruiken. Eenmaal gelanceerd, krijgt u een blockchain-netwerk met certificaatautoriteiten, bestellers, peers, enzovoort. Terwijl de subdirectory fabcar wordt gebruikt, wordt het slimme contract van FabCar automatisch geïnstalleerd en gestart. 

De opdracht om het netwerk te starten is als volgt:

./startFabric.sh javascript

De applicatie installeren

Nu is het tijd om de applicatie te installeren. Maar voordat we dat doen, moeten we de afhankelijkheden installeren. 

npm installeren

Het bovenstaande commando zal beginnen met het installeren van de belangrijke afhankelijkheden die zijn gedefinieerd in het package.json

In het pakket zijn de belangrijke klassen die worden gestart, onder andere

  • fabric-network class → maakt transacties, identiteiten, portefeuilles mogelijk
  • fabric-ca-client → registreer gebruikers bij hun respectievelijke certificeringsinstanties

Als we klaar zijn, gaan we naar de fabcar / javascript-directory. Laten we de onderstaande directorybestanden eens bekijken:

  • encrollAdmin.js
  • knooppuntmodules
  • package.json
  • registerUser.js
  • invoke.js
  • pakket-lock.json
  • query.js
  • portemonnee

Communiceren met de certificeringsinstantie

Nu we een actief netwerk hebben, gaan we kijken hoe we kunnen communiceren met een certificeringsinstantie. 

Certificaatondertekeningsverzoek (CSR)

Onze eerste taak is om een ​​proces van MVO te doorlopen. In dit proces is het beheerder neemt contact op met de certificeringsinstantie om het openbare, privé- en X.509-certificaat te genereren. Het programma dat hiervoor wordt gebruikt, is enroll.js

Gebruik de volgende opdracht om de beheerder in te schrijven.

knooppunt enrollAdmin.js

Alle informatie is nu opgeslagen in het portemonnee directory.

Hetzelfde proces moet worden gevolgd als u een andere gebruiker wilt registreren. Laten we proberen een andere gebruiker te registreren – usernieuw

knooppunt reisterUser.js 

Hiermee wordt de nieuwe gebruiker geregistreerd en worden zijn inloggegevens naast de admin opgeslagen in de portefeuille.

Ledger opvragen

Omdat het blockchain-netwerk een kopie van het grootboek heeft, kunt u het opvragen om informatie te vinden. Grootboeken zijn alleen-lezen en daarom kunnen alleen leesvragen worden uitgevoerd. Laten we de onderstaande afbeelding eens bekijken om een ​​beter begrip te krijgen.

Bron: Hyperledger Fabric Docs

De waarden in het grootboek blijven ook in het wereldstaat. Dit is de sleutelpaarwaarde die eerder in de zelfstudie is besproken. Een query kan dus gegevens uit sleutels onthullen. Het goede nieuws is dat u databases zoals CouchDB kunt gebruiken. De wereldstaten kunnen worden geconfigureerd om relationele databases te gebruiken.

Voer de volgende opdracht uit om de lijst met alle auto’s in het grootboek te krijgen,

knooppunt query.js

Om beter te begrijpen hoe query’s werken, wilt u misschien openstaan query.js bestand en ga er doorheen. Laten we het hieronder doornemen.

const {FileSystemWallet, Gateway} = vereisen (‘fabric-network’);

In de bovenstaande regel wordt een netwerkverbinding gemaakt

Vervolgens wordt er een gateway gemaakt waarmee de toepassing verbinding kan maken. Het wordt gedaan met behulp van de onderstaande regels.

const gateway = nieuwe gateway ();

wacht op gateway.connect (ccp, {wallet, identity: ‘user1’});

De ccp wordt gebruikt om de gebruikersidentiteit en gerelateerde portemonnee-informatie te identificeren. 

Omdat het Hyperledger Fabric-netwerk meerdere kanalen beheert, is het belangrijk om verbinding te maken met het specifieke kanaal voor de applicatie.

const contract = network.getContract (‘fabcar’);

Het slimme contract begrijpen

Laten we het eens doornemen om een ​​beter begrip te krijgen van het slimme contract. Het toont ook de transacties die er doorheen zijn gedaan.

Om toegang te krijgen, moet u naar de submap gaan chaincode / fabcar / javascript / lib. Eenmaal daar, open je fabcar.js in een editor.

Daar ziet u het gebruik van de contractklasse om het slimme contract te definiëren. Bovendien zouden er duidelijke transacties zijn gedefinieerd binnen het slimme contract, inclusief queryCar, queryAllCars, initLedger, changeCarOwner en createCar.

De transacties zien er als volgt uit:

asynchrone queryCar (ctx, carNumber) {…}

Laten we eens kijken naar de queryCar-transactie.

asynchrone queryAllCars (ctx) {

  const startKey = ‘CAR0’;

  const endKey = ‘CAR999’;

  const iterator = wacht ctx.stub.getStateByRange (startKey, endKey);

Bron: Hyperledger Fabric Docs

Ledger bijwerken: een nieuwe auto kopen

De laatste stap is om het grootboek bij te werken met nieuwe informatie. Laten we in dit geval een nieuwe auto maken met behulp van de invoke.js. U moet het bestand openen en de volgende opdracht eraan toevoegen.

wacht op contract.submitTransaction (‘createCar’, ‘CAR12’, ‘CarBrand’, ’Model’, ‘Kleur’, ‘Eigenaar’);

In de bovenstaande code roept de app createCar slimme contracttransacties op. Het zal in ruil daarvoor de auto maken met zijn attributen, waaronder CarBrand, Color, Model en Owner.

Voer nu de volgende code uit om het naar het grootboek te pushen

knooppunt invoke.js

Dit resulteert in een grootboekupdate en u krijgt een succesvolle uitvoer.

Gevolgtrekking

Dit brengt ons aan het einde van onze tutorial. In de tutorial was ons doel om alleen het oppervlak te bedekken. Als je diep wilt duiken, kun je hun officiële Hyperledger Fabric-documenten bekijken, waarin alles in detail wordt besproken. 

Dus, ga je Hyperledger Fabric gebruiken voor het bouwen van enterprise blockchain? Reageer hieronder en laat het ons weten.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map