Hyperledger Composer und andere relevante Projekte von Hyperledger

Hyperledger Fabric kann auf zwei Arten verwendet werden. Zum einen als ursprüngliche Variante direkt mit einem Low-Level Ansatz und zum anderen als neuere Variante mit Hilfe des High-Level-Blockchain-Tools namens Hyperledger Composer.

Folgende Abbildung gibt eine Übersicht über bestehende für Fabric relevante Projekte von Hyperledger.

Cello ist ein Blockchain-Modul-Toolkit und eines der Hyperledger-Projekte der Linux Foundation. Ziel von Hyperledger Cello ist es, das schnell und unkompliziert Blockchain „as a Service“ zu ermöglichen, um damit den Aufwand für die Erstellung, Verwaltung und Beendigung von Blockchains zu reduzieren. Es ist generisch für verschiedene Blockchain-Implementierungen von Hyperledger ausgelegt, so wird z. B. statt Chaincode der Begriff Smart Contract verwendet.

Explorer als weiteres Projekt von Hyperledger ist ein Blockchain-Analyse-Tool, welches Blöcke, Transaktionen und zugehörige Daten, Netzwerkinformationen (Name, Status, Liste der Knoten), Chaincodes sowie alle anderen im Ledger gespeicherten relevanten Informationen anzeigen und abfragen kann.

Caliper ist ein Blockchain-Benchmark-Tool, mit der es möglich ist die Leistung einer bestimmten Blockchain-Implementierung mit einer Reihe von vordefinierten Anwendungsfällen zu messen.

Vorteile bei der direkten Verwendung von Hyperledger Fabric

Mit Fabric können direkt alle Einstellungsmöglichkeiten verwendet werden, z. B. können beliebig viele Kanäle verwendet werden.

Die unmittelbare Verwendung von Fabric unterstützt eine Ver- und Entschlüsselung mit AES-256 der Daten beim Schreiben und Lesen durch Chaincode auf die verteilte Datenbank.

Gegenüber Composer gibt es noch einen weiteren Vorteil. Wenn eine externe Bibliothek benötigt wird, ist es möglich Änderungen direkt hinzufügen bzw. diese durch Kompilierung zu inkludieren. Bei einer Implementierung mittels Golang stehen viele systemnahen Bibliotheken wie beispielsweise Verschlüsselungsroutinen von Golang zur Verfügung.

Durch die Verwendung des High-Level Hyperledger Componser würde grundsätzlich eine weitere Abhängigkeit von Software (einem weiteren Layer) bestehen, der Fehler und Updateverzögerungen beinhalten könnte. In jedem Fall muss zunächst ein Fabric-Netzwerk erstellt werden. Composer selbst bietet keine Möglichkeit ein Fabric-Netzwerk zu verwalten. Aus den eben genannten Gründen wird von der Verwendung von Hyperledger Composer als Tool zur Implementierung eher abgeraten. Der Aspekt der Performance müsste hier noch aber genauer untersucht werden.

Abgrenzung von Fabric zu anderen Blockchainlösungen

Das Open-Source-Blockchain-Framework Hyperledger Fabric wurde ursprünglich nur von IBM entwickelt. Die Entwickler von IBM beschreiben in einem Paper (siehe unten) warum welche Technologie- und Designentscheidungen für Fabric getroffen wurden und informieren dort auch über ein Benchmark, bei dem Bitcoin mit einer in Fabric implementierten Kryptowährung verglichen wird.

Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains. Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart und Christopher Ferris.  https://arxiv.org/abs/ 1801.10228

Fabric hat folgende Eigenschaften:

  • Hyperledger Fabric als private, zugangsbeschränkte Blockchain verwendet keine Kryptowährung und somit keine Schürfung (engl. mining). Dies steht im Gegensatz zu vielen anderen Blockchain-Plattformen, die auf eine Kryptowährung angewiesen sind, um Programme auszuführen. Der Konsensmechanismus von Fabric ist deshalb weniger rechenaufwendig.
  • Fabric unterstützt die Implementierung von Smart Contracts in den gängigen generischen Programmiersprachen Golang und JavaScript und ist daher potentiell flexibler und einfacher erweiterbar als eine geschlossene domänenspezifische Sprache. Weitere Unterstützungen für andere Sprachen sind in der Entwicklung (z. B. für Java).
  • Komponenten wie Konsensmechanismus und Mitgliederverwaltung sind als Plug-and-Play-Module entwickelt worden um sie einfach austauschen zu können. In vielen anderen Blockchain-Implementierungen sind die einzelnen Komponenten unveränderlich, weil diese fest codiert wurden.
  • Kanäle (engl. channels) ermöglichen es einer Gruppe von Teilnehmern separate Blockchains innerhalb eines Netzwerks zu erstellen, um die Wahrung des Datenschutzes und der Vertraulichkeit zu gewährleisten. Daten müssen somit nur dort gespeichert werden, wo sie auch verwendet werden müssen. Diese Möglichkeit der Unterteilung in viele einzelne Blockchains innerhalb einer Anwendung ist vermutlich ein Alleinstellungsmerkmal von Fabric.

Hyperledger Projekte

Hyperledger betreibt verschiedene Projekte bzw. Frameworks für Blockchainanwendungen. Jedes dieser Projekte begann außerhalb von Hyperledger. Fabric ist eines dieser Blockchain-Frameworks, welches hauptsächlich von IBM entwickelt und an Hyperledger gesponsert wurde. Die folgende Tabelle zeigt eine Übersicht über die bestehenden Blockchain-Frameworks in Hyperledger.

Diese Frameworks sind vollständig getrennte Projekte mit verschiedenen Zielsetzungen, Technologien und Implementierungen.

Gründung des Hyperledger Projekts

Im Dezember 2015 gab die Linux Foundation die Gründung des Hyperledger Projekts bekannt. Ziel des Projekts ist es, eine branchenübergreifende Zusammenarbeit für die Entwicklung von Blockchain-Technologien als Open-Source-Projekte voranzutreiben, wobei besonderes Augenmerk laut eigenen Aussagen auf die Verbesserung der Performance, Zuverlässigkeit und Variabilität dieser Systeme gelegt wird (im Vergleich zu vergleichbaren Implementierungen in bestehenden Kryptowährungen), sodass diese in der Lage sein sollen, globale Geschäftstransaktionen (z. B. der Finanzindustrie) zu unterstützen.

Blockchainarten

Blockchains sind in öffentliche und private unterteilt. Die öffentlichen Blockchains sind für jedermann zugänglich und jeder kann dort als Teilnehmer agieren und letztendlich Daten hinzufügen. Eine private Blockchain dagegen ist immer ein geschlossenes System, indem nur berechtigte Kooperationspartner in einem geteilten Netzwerk miteinander interagieren und entsprechend ihre Knoten in das Netzwerk für die verteilte Datenbank mit einbringen. Es erfolgt somit eine Limitation der Teilnehmerberechtigten. Diese Variante empfiehlt sich beispielsweise für den Bankenbereich wegen seiner Datenschutzproblematik.