Zurück zu Neu bei Nirolution Hyperledger Tutorial Blog
„Hyperledger Fabric Tutorial“ – Content:
- Was ist Hyperledger Fabric?
- Hyperledger Fabric Funktionalitäten
- Fabric Komponenten
- Hyperledger Dapp Programmieren
Was ist Hyperledger Fabric?
Hyperledger Fabric ist eine private Blockchain, die Unternehmen hilft dezentralisierte Applikationen zu entwickeln. Sie verfügt über eine modulare Architektur, mit der wir ein hohes Maß an Privatsphäre, Flexibilität, Belastbarkeit und Skalierbarkeit erreichen. Dadurch können wir mit Fabric Apps für jede Branche entwickeln.
Mittlerweile arbeiten mehr als 40 Organisationen in dem Hyperledger Fabric Projekt zusammen. Ziel ist es dabei, das beste Unternehmensframework auf dem Markt zu entwickeln.
Aber warum solltest du dich für Hyperledger Fabric entscheiden?
Fabric bietet für Unternehmen eine großartige DLT-Technologie. Es hat einige großartige Features, die es zu einer idealen Wahl für ein Unternehmen machen. Deshalb wird es auch zukünftig immer mehr Hyperledger Apps geben. Was das genau für Features sind, zeigen wir dir im Folgenden.
Hyperledger Fabric Funktionalitäten
Als nächsten klären wir in unserem Hyperledger Fabric Tutorial
die Funktionalitäten. Fabric hat 5 Merkmale, die es zu einer der besten Frameworks für Unternehmen macht.
Identitätsmanagement
Das Identitätsmanagement ist für die meisten Unternehmen von entscheidender Bedeutung. Folglich kannst du mit Fabric sicherstellen, dass die Berechtigung klar geregelt wird.
Effizienz
Fabric ist im Gegensatz zu öffentlichen Blockchains viel effizienter. Das liegt daran, dass Netzwerkrollen den Nodes zugewiesen werden. Zudem werden Transaktionen getrennt vom Engagement durchgeführt.
Modularität
Fabric bietet einen modularen Aufbaue. Dadurch kannst du andere Applikationen einfach integrieren. Zudem kannst selbst den Konsens, den Algoryithmus, die Identität und vieles mehr festlegen.
Privatsphäre
Hyperledger bietet dir durch seine Architektur eine angemessene Vertraulichkeit und Datenschutz. Das bedeutet, dass du Datenkanäle nutzen kannst bei denen keine Informationen durchsickern können.
Chain Code Contracts
Hyperledger Fabric bietet dir mit Chain Code eine Funktionalität, um eine bestimmte Art von Transaktion aufzurufen.
Hyperledger Komponenten
Ein wichtiger Teil unseres Hyperledger Fabric Tutorial sind die Komponenten. Denn bevor wir mit der Entwicklung einer Hyperledger Dapp anfangen können, musst du zuerst die Komponenten von Hyperledger Fabric verstehen. Zudem erklären wir dir die Datenstruktur und alle wichtigen Komponenten.
Die Systemarchitektur
Fabrik besteht aus vielen Nodes, die miteinander kommunizieren. Diese bilden das gesamte Netzwerk ab. Zudem gibt es Chain Code, der von der Blockchain ausgeführt wird. Sie speichern Daten und führen Transaktionen aus.
Transaktionen
In Hyperledger Fabric gibt es zwei Arten von Transaktionen.
Deployment-Transaktionen: Sie sind dafür verantwortlich, einen neuen Chain Code mit Parameter als Programm zu erstellen. Danach wird der Chain Code auf der Blockchain installiert.
Invoke-Transaktionen: Damit können Transaktionen aufgerufen werden, die bereits von Chain Code installiert wurden.
Datenstrukturen
Die Daten in Fabric sind nach dem Key-Value-Store (KVS) struktuiert. Die Schlüssel sind meistens Namen, und der Wert sind Blobs. Mit dem Chain Code kannst du die Daten mit der -Get und -Put Option verändern.
Ledger
Der Ledger ist eine Übersicht aller erfolgreichen und erfolglosen Zustandsänderungen. Er besteht also aus geordneten Blöcken, die Transaktionsarray beinhalten.
Nodes
Nodes könne alle Kommunikationseinheit innerhalb des Netzwerks sein. Darunter fallen Computer, Laptops oder auch Zusammenschlüsse von Pcs.
Client
Ein Client ist jemand, der als End-User handeln kann.
Peers
Peer handhabt den Zustand des Ledgers. Zudem stellen sie sicher, dass das Netzwerk optimal agiert. Die Peers können unterstützende Peers sein, was dazu beiträgt, eine Transaktion zu befürworten.
Hyperledger Dapp Programmieren
Nachdem wir nun alle wichtigen Komponenten besprochen haben, können wir jetzt in unserem Hyperledger Fabric Tutorial eine Dapp entwickeln. Du wirst lernen, wie du mit Smart Contracts, Chain Code und anderen Anwendungen innerhalb des Frameworks umgehen musst.
Zuerst müssen wir eine Entwicklungsumgebung einrichten. Diese brauchst du, damit deine App das notwendige Netzwerk zur Verfügung steht. Zudem brauchst du sie, damit du Smart Contracts ausführen kannst.
Hyperledger installieren
Bevor wir anfangen können, müssen wir erstmal die richtige Entwicklungsumgebung installieren.
Hier findest du alles, was du für die Installation brauchst.
Die Hyperledger Composer Anleitung kann dir zusätzlich helfen.
Wenn du alles richtig installiert hast, erhältst du ein „fabric-samples“-Repository.
Um in dieses Verzeichnis zu wechseln, gibt folgendes in die CD Command Line ein:
cd fabric-samples/first-network
Um mit dem Projekt anfangen zu können, musst du das Skript byfn.sh verwenden. Dadurch kannst du das Projekt mit vier Peers beginnen. Diese repräsentieren jeweils zwei verschiedene Organisationen. Es startet zudem die benötigten Container, Chain Codes und Transaktionen.
Zertifikat generieren
Du kannst nun die Zertifikate und Keys für das Netzwerk generieren. Dazu musst du den folgenden Befehl ausführen.
.byfn.sh generate
Du musst dann auf Y drücken, damit das Netzwerk mit den erforderlichen Informationen versorgt wird.
Powering Hyperledger
Als Nächstes müssen wir das Netzwerk mit Strom versorgen. Dafür musst du folgenden Befehl eingeben:
./byfn.sh up
Danach wird das Framework die Chain-Code images kompilieren. Zusätzlich stehen auch die Container zur Verfügung, damit neue Peers dem Netzwerk beitreten können.
Bei Fabric wird go als Standardsprache für den Chain Code benutzt. Es wird aber auch Node.js und Java unterstützt. Für den Wechsel zu Node.js gib Folgendes ein:
.byfn.sh up -l node
Und für Java:
.byfn.sh up -l java
Jetzt können wir das Netzwerk starten.
Um das Netzwerk zu starten, geben wir das Shell Skript startFabric.sh ein. Jetzt haben wir ein Netzwerk mit allen wichtigen Komponenten.
User registrieren
Jetzt müssen wir noch alle wichtigen Klassen installieren. Dafür geben wir npm install ein. Dadurch wird Folgendes installiert:
fabric-network class → aktiviert Transaktionen, Identitäten, Wallets
fabric-ca-client → Benutzer werden bei ihren jeweiligen Zertifizierungsstellen registriert
Jetzt da das Netzwerk läuft und wir alles wichtige installiert haben, können wir einen User registrieren.
Zuerst werden wir den Admin registrieren. Dafür muss der Admin bei der Zertifizierungsstelle einen public, privates und ein X.509 Zertifikat erstellen lassen. Dafür musst du folgendes eingeben:
Node enrollAdmin.js
Wenn du einen weiteren Benutzer registrieren willst, brauchst du:
Node registerUser.js
Blockchain verbinden
Jetzt brauchen wir Informationen aus der Blockchain.
Dafür kannst du ganz einfach deine Datenbank mit der Blockchain verbinden.
Das Kannst du mit:
const { FileSystemWallet, Gateway } = require(‘fabric-network’);
Mit dem folgenden Code erstellst du ein Gateway, um die Applikationen mit dem netzwerk zu verbinden.
const gateway = new Gateway();
await gateway.connect(ccp, { wallet, identity: ‘user1’ });
Das ccp wird zur Identifizierung des Benutzers und der damit verbundenen Wallet Informationen verwendet. Da Hyperledger Fabric auf unterschiedlichen Channels läuft, ist es wichtig sich mit dem richtigen Channel zu verbinden.
const contract = network.getContract(‘fabcar’);
Hyperledger Chain Code
Jetzt brauchen wir noch Smart Contracts. Dafür müssen wir verstehen Abfragen ausführen und den Ledger aktualisieren.
Damit wir einen Smart Contract erstellen können, müssen wir die unterschiedlichen Klassen kennen.
Dafür musst du in das Verzeichnis chaincode/fabcar/javascript/lib. Danach öffne fabcar.js in deinem Editor. Hier findest du die Klassen in den Smart Contract zu definieren.
Eine Transaktion könnte so aussehen:
async queryHouse(ctx, houseNumber) {…}
Hyperledger updaten
Wenn wir jetzt mit dem Smart Contract ein Haus gekauft haben, müssen wir den Leder noch updaten.
Dafür erstellen wir zunächst ein neues Haus. Dafür brauchen wir den invoke.js Funktion. Dafür öffne die Datei und gib folgendes ein:
await contract.submitTransaction(‘createHouse’, ‘MyHouse, ‘Size’, ‘Color’, ‘Owner’);
Dadurch ruft die App createHouse Smart Contract Transaktion auf. Du erhälst dadurch das Haus mit allen Informationen. Jetzt müssen wir den Ledger noch updaten. Das machen wir hiermit:
node invoke.js
Jetzt hast du deine erste einfache Hyperledger App, mit der du mit der Blockchain interagieren kannst. Dadurch kannst du weitere komplexere Hyperledger Applikationen entwickeln.
Gefällt dir unsere Hyperledger Fabric Tutorial? Dann folge uns auf Facebook, Pinterest and Steemit.