Dieser Blogpost ist ein Artikel in einer Serie von Artikeln zu dem im Dezember 2019 erschienenen Buch „Blockchain mit SAP“ (Rheinwerk Verlag, Bonn, ISBN 978-3-8362-6914-8).

Dieser Blogpost basiert auf dem sechsten Kapitel dieses Buches, in dem die Konfiguration von Blockchain-Anwendungen mit Hyperledger Fabric beschrieben wird.

Im Rahmen unseres Buches entwickeln wir für Hyperledger Fabric und MultiChain vergleichbare Beispiele. Beginnen wir mit Hyperledger Fabric.

Hyperledger Fabric

Hyperledger Fabric ist eine Enterprise Blockchain für Anwendungen in der Industrie. Hyperledger Fabric ist nur EIN Projekt unter vielen Projekten der Hyperledger Foundation, wenn auch wohl mit Abstand das erfolgreichste. Es hat einen modularen Aufbau, so dass viele Schlüsselkomponenten der Blockchain angepasst werden können. Fabric erlaubt den Aufbau sogenannter privater Blockchain-Netzwerke, zu denen die Teilnehmer zugelassen werden müssen (Permissive Blockchain). Dabei werden Schlüssel ausgetauscht, um eine verschlüsselte Kommunikation im Netzwerk zu realisieren.

Fabric hat im Vergleich zu anderen Blockchains mehrere Knotentypen:

  • Peer
  • Orderer
  • und Certificate-Authority-Knoten.

Peer-Knoten sind weitestgehend mit den Blockchain-Knoten in einem Bitcoin-Netzwerk vergleichbar und speichern die Transaktionsdaten in Blöcken. Des Weiteren speichern Peer-Knoten auch Smart Contracts und führen diese bei Bedarf aus.

Orderer sind eine spezielle Art von Knoten, die für den Konsens im Netzwerk zuständig sind. Im Gegensatz zu Bitcoin gibt es bei Hyperledger Fabric keinen Konsensalgorithmus wie Proof of Work, sondern den Orderer-Knoten, der den Konsens in Bezug auf die Transaktionsdaten herstellt.

Certificate-Authority-Knoten sind Knotentypen, die die Authentifizierung von Teilnehmern mit Hilfe von bereits existierenden Systemen wie LDAP oder Kerberos vornehmen.

Eine weitere Besonderheit von Hyperledger Fabric sind die Channels – verschlüsselte Kommunikationskanäle, die zwischen den Teilnehmern eingerichtet werden müssen und effektiv einer eigenen Blockchain entsprechen. In den meisten Fällen wird in einer Hyperledger-Fabric-Blockchain ein gemeinsamer Kommunikationskanal zwischen allen Teilnehmern eingerichtet. Allerdings muss es nicht dabei bleiben – es können beliebig viele weitere Channels zwischen einzelnen Teilnehmern eingerichtet und somit Untergruppen gebildet werden.

Ein erstes einfaches Beispiel

Als erstes werden wir ein simples Telefonbuch in Hyperledger Fabric realisieren. Die beim Aufbau einer Blockchain-Anwendung zu durchlaufenden Schritte sind immer dieselben, egal wie komplex diese am Ende wird:

  • Aufbau der Blockchain-Knoten (Netzwerk-Infrastruktur)
  • Entwickeln des Chaincodes
    • Entwurf des Datenmodells
    • Programmierung
    • Testing
    • Installation
  • Aufbau weiterer Dienste (wie z.B. eines Node.js-Webservers)

Schlussendlich kommt es dann zu einer Verknüpfung der verschiedenen Dienste zu einer Anwendung in der SAP Cloud Platform.


Aufbau der Blockchain-Knoten

Das erste Netzwerk ist extrem simpel, es wird nur einen Knoten geben. Die SAP Cloud Platform bietet dazu die Option des Dev-Nodes an, auf dem Chaincode entwickelt, installiert und getestet werden kann.

Entwicklung des Chaincodes

Bei Hyperledger Fabric heißen Smart Contracts anders, nämlich Chaincode. Ohne Chaincode gibt es keine Blockchain unter Hyperledger Fabric – es wird zwingend ein Datenmodell der Transaktionen benötigt, die in der Blockchain erfasst werden sollen. Im Gegensatz zu Bitcoin gibt es bei Fabric nämlich kein festes Datenschema. Dieses muss selbst entwickelt werden. Für die Programmierung von Chaincode wird die Sprache Go genutzt. Fertiger Chaincode für die Blockchain muss in Form eines strukturierten ZIP-Archivs bereitgestellt werden, das zur Installation in den Blockchain-Knoten hochgeladen wird.

Schreiben in die Blockchain

Beim Schreiben in die Blockchain werden Schlüssel-Wert-Paare verwendet. Der entsprechende Befehl lautet:

PutState(Schlüssel, Wert)

 

Dies schreibt den Wert unter Angabe des Schlüssels in die Blockchain.

Lesen aus der Blockchain

Das Auslesen eines Werts aus der Blockchain geht wiederum über den Schlüsselnamen. Der Wert des Schlüssels wird mittels GetState ausgelesen:

GetState(Schlüssel, Wert)

 

Ist dies erfolgreich, wird der zuvor gespeicherte Wert aus der Blockchain zurückgeliefert, ansonsten wird eine Fehlermeldung ausgegeben (etwa bei nicht vorhandenem Schlüssel).

History

Ein weiteres Kernfeature der Blockchain ist die History-Funktion, die eine Liste der Wertänderungen für einen gegebenen Schlüssel zurückgibt. Mit

GetHistoryForKey(Schlüssel)

 

wird, bei validen Schlüsselnamen, eine chronologische Auflistung aller Wertänderungen für den angegebenen Schlüssel zurückgegeben.

Diese kurze Übersicht der Befehle reicht auch schon, um alle benötigten Funktionen zum Speichern von Daten in einer Blockchain realisieren zu können.

Die fertige Anwendung

Die fertige Anwendung basiert auf einem SAPUI5-Frontend, welches über REST-API-Aufrufe direkt mit der Blockchain interagiert. Mittels der Buttons können die Funktionen zur Anlage und zur Aktualisierung der Einträge aufgerufen werden.

(c) Rheinwerk Verlag

 

Als kleinen Höhepunkt bietet unsere Applikation eine chronologische Historie der Wertänderungen aus der Blockchain. Hier eine beispielhafte Datenhistorie für einen markierten Eintrag – die Zeitstempel in der linken Spalte erlauben die chronologische Rekonstruktion der Änderungen:

(c) Rheinwerk Verlag

 

Weitere Artikel dieser Serie finden sie hier:

Wollen Sie mehr zur SAP Cloud Platform und der Funktionsweise der Blockchains erfahren? In unserem Buch „Blockchain mit SAP“ erläutern wir Ihnen ausführlich die Funktionsweise und demonstrieren Ihnen anhand zahlreicher Beispiele die Vorzüge dieser innovativen Technologie. Eine ausführliche Leseprobe zum Buch stellt der Verlag online bereit.

Wollen Sie mehr über die Möglichkeiten von Hyperledger Fabric für Ihr Unternehmen erfahren? In unserem Buch „Blockchain mit SAP“ erläutern wir Ihnen ausführlich die Vorteile der Hyperledger-Fabric-Blockchain und wie Sie diese in der SAP Cloud Platform aufsetzen können. Eine ausführliche Leseprobe zum Buch stellt der Verlag online bereit.

S/HANA Studie Banner

SAP S/4: Studie zur Transformation

Die Studie „Erwartungen an S/4HANA in 2022" von techconsult und CamelotITLab zeigt Stolpersteine der Migration und wie sie vermieden werden können. Mit Daten von 200 Unternehmen aus Deutschland.

Hier geht es zum Download

Empfohlene Artikel

Innovation

Intelligentes Rule Mining- und Datenabhängigkeitsanalyse auf Basis von SAP Data Intelligence

Datenregeln beschreiben Geschäftsvorgänge, Definitionen und Einschränkungen für die Daten eines Unternehmens. Diese spiegeln die Geschäftsstruktur wider, …

weiterlesen
Supply Chain Management

Chemische Industrie: Die Supply-Chain-Management-Agenda für 2023

Die Chemische Industrie blickt auf drei Jahre zurück, in denen Themen des Supply-Chain-Managements (SCM) so hoch wie selten zuvor auf …

weiterlesen
Supply Chain Management

Lebensmitteleinzelhandel: der Weg zur Supply Chain der Zukunft

Disruptive Marktentwicklungen setzen die Lieferketten im Lebensmitteleinzelhandel unter Druck. In einer Blogserie werden wir diese Trends untersuchen, ihre Auswirkungen auf die …

weiterlesen

Denken Sie Ihre Value Chain neu mit uns

Kontaktieren Sie uns