Hyperledger Fabric Roadmap :conwic
Hyperledger Fabric Timeline
Hyperledger Fabric timeline :conwic

Hyperledger Fabric ist eine umfassende Implementierung eines Blockchain-Frameworks und damit Basis der von der Linux Foundation gehosteten Hyperledger-Projekte. Hyperledger Fabric wurde ursprünglich von Digital Asset und IBM als kollaborative Softwareentwicklung initiiert und dann an die Linux Foundation übergeben. Fabric bietet eine modulare Architektur mit Rollenverteilung (Peers, Orderer) zwischen den Knoten in der Infrastruktur, Ausführung von Smart Contracts (in Fabric "Chaincode" genannt) und konfigurierbarem Konsens- und Mitgliedschaftsservices. Während ursprünglich standardmäßig der Chaincode in Go und JavaScript (über Hyperledger Composer bzw. seit Version 1.1 nativ) programmiert wurde, können mittlerweile auch anderen Sprachen wie Java verwendet werden, indem entsprechende Module installiert werden. Daher gilt Hyperledger Fabric potenziell flexibler als Mitbewerber, die nur eine geschlossene Smart-Contract-Sprache unterstützen.

Seit der ersten „Developer-Preview“ aus Mitte 2016 wurde das Framework stark erweitert. Die nachfolgenden Abschnitte geben einen Überblick über die bisherigen Releases und einen Ausblick auf künftige Versionen ("Roadmap").

Hyperledger Fabric 0.5 developer preview (17.06.2016)
  • Erste Preview eines privaten Blockchain-Frameworks.
  • Nur zuvor freigegebene Identitäten dürfen mit der Blockchain interagieren.
  • Unterstützung von frei programmierbarem Chaincode (smart contract).
  • Eine Anbindung über die node.js API ist möglich.
  • Die Knoten des Netzwerks werden in eigenen Docker Containern ausgeführt.
Hyperledger Fabric 0.6 preview (16.09.2016)
  • Knapp 250 Fehler und Verbesserungen wurden seit der Developer Preview vorgenommen.
Hyperledger Fabric 1.0 (11.07.2017)
  • Die erste offizielle Version von Hyperledger Fabric wurde freigegeben. Alle für die erste Version geplanten Features wurden umgesetzt.
  • Auf der Seite von Hyperledger Fabric existiert eine umfangreiche Dokumentation zur Installation und Entwicklung von Hyperledger Fabric.
  • Seit der letzten Preview wurden über 2000 Punkte korrigiert und verbessert.
Hyperledger Fabric 1.1 (15.03.2018)
  • Unterstützung von node.js als Programmiersprache für Chaincode.
  • Zur Benachrichtigung von Clients über abgeschlossene Transaktionen kann ab sofort der channelbasierte Event Service genutzt werden.
  • Ab sofort können „Certfificate Revocation Lists“ (CRL) gepflegt werden, um ungültige Identitäten aus der Blockchain auszusperren. Außerdem kann innerhalb des Chaincodes auf die Identität des Transaktionserzeugers sowie auf Attribute aus Zertifikaten zugegriffen werden, um individuelle Berechtigungskonzepte zu ermöglichen.
  • Änderungen an Benutzeridentitäten und Mitgliedschaften („affiliation“) können dynamisch geändert werden.
  • Zur einfacheren Verbindung zum Netzwerk werden Profile in der node.js API unterstützt.
  • Für die interne Kommunikation zwischen den verschiedenen Knoten wird nun Mutual TLS unterstützt.
  • Daten innerhalb der Blockchain können ab sofort zusätzlich verschlüsselt werden. Innerhalb des Chaincodes steht dafür eine entsprechende Bibliothek bereit.
Hyperledger Fabric 1.2 (03.07.2018)
  • Neben der Abtrennung von Daten in verschiedene Channels kann ab sofort innerhalb eines Channels ein privater Datenbereich („Private Data Collection“) definiert werden. Daten innerhalb dieses Bereiches können nur von einem definierten Ausschnitt der Channel-Mitglieder verarbeitet werden.
  • Zur einfacheren Administration des Blockchain Netzwerks können nun (neue) Netzwerk Services (Peers, Orderer, …) automatisch entdeckt werden.
  • Eine Zugriffskontrolle ermöglicht nun die Konfiguration, welche Benutzeridentität mit welche Funktionen eines Peers arbeiten darf. Die Definition kann pro Channel separat erfolgen.
  • Unterstützung von eigener Zustimmungs- (endorsement) und Validierungs- (validation) Logik.
Hyperledger Fabric 1.3 (10.10.2018)
  • Unterstützung von Java als Programmiersprache für Chaincode. Damit steht nun die dritte Sprache zur Entwicklung von Chaincode bereit. Zuvor konnte der Code bereits in node.js und go erstellt werden.
  • Durch den „Identity Mixer“ ist es möglich, Transaktionen anonym durchzuführen und nur tatsächlich benötigte Informationen preiszugeben. Persönliche Daten, die an den Benutzerzertifikaten hängen, werden verschwiegen.
  • Bei Verwendung der CouchDB wird nun „Pagination“ unterstützt. Diese Technik ermöglicht es, von einer Ergebnisliste nur einen Ausschnitt zu lesen. Z.B. könnten zunächst die ersten 20 Treffer gelesen und dem Benutzer angezeigt werden, und erst durch eine Benutzeraufforderung die nächsten 20 Treffern dargestellt werden.
  • Die Endorsement Policy kann nun nicht nur pro Chaincode definiert werden, sondern für besonders sensible Daten auch pro Schlüssel. Dies ermöglicht ein noch granulareres Berechtigungskonzept.
  • Die veraltete „Event Hub“-Technik wird nicht mehr weiter unterstützt. Stattdessen sollte der channelbasierte Event Service genutzt werden, der bereits in Version 1.1 eingeführt wurde.
Hyperledger Fabric 1.4 LTS (09.01.2019)
  • Zur Fehlerdiagnose und zum Monitoring der Knoten existiert ab sofort ein Operations Service, der über eine REST-API angesprochen werden kann. Dies ermöglicht eine einfachere Bereitstellung und bessere Wartbarkeit.
  • Das bestehende node.js SDK ist vereinfacht werden, so dass sich Entwickler stärker auf die Geschäftslogik fokussieren können.
  • Als erste Version von Hyperledger Fabric wird 1.4 einen Langzeit-Support (LTS) erhalten. Dieser ist zunächst bis Januar 2020 begrenzt. Fehlerkorrekturen werden als Patch Releases (1.4.1, 1.4.2, ...) veröffentlicht werden.
Hyperledger Fabric 2.0 Alpha (09.04.2019)
  • Die Alpha-Version bietet einen Vorausblick und ist nicht für Produktionszwecke geeignet.
  • Ab Version 2.0 wird der Transaktionstyp „Fabtoken“ unterstützt. Dadurch wird es ermöglicht, die Besitzansprüche außerhalb der Blockchain bestehender Werte durch Hyperledger Fabric zu verwalten. Der reale Wert wird dazu als virtueller Token in der Blockchain mit seinem Anfangsbesitzer hinterlegt. Der Besitzer kann nun jederzeit den Token und damit den realen Besitzanspruch mit einem anderen Teilnehmer tauschen, wobei dies jederzeit über die Blockchain abgesichert ist. Außerdem kann der aktuelle Besitzer eines Tokens diesen einlösen und erhält im Gegenzug den realen Wert zurück.
  • Die Verwaltung von Chaincodes kann nun dezentral erfolgen. Über die Parameter und mögliche Updates des Chaincodes entscheidet die Mehrheit der Teilnehmer des jeweiligen Channels. Die Endorsement Policy kann zudem auch nachträglich geändert werden. Ein erneutes Installieren des Chaincodes entfällt.
  • Die Docker Images von Hyperledger Fabric nutzen ab sofort Alpine Linux. Diese Linux Distribution zeichnet sich vor allem durch seine Sicherheit und Schlankheit aus. Die Container benötigen weniger Speicherplatz und lassen sich schneller starten.
  • Bereits seit Version 1.4.1 besteht die Möglichkeit, den Konsens-Mechanismus “Raft” zu verwenden. Dadurch kann im produktiven Betrieb auf den Einsatz eines Kafka Clusters verzichtet werden.
Hyperledger Fabric 2.1 (In Entwicklung)
  • Vollständige Unterstützung von Java als Programmiersprache für Chaincode.
  • Der mit Version 1.2 eingeführte private Datenbereich wird weiter verbessert werden. Bisher können gewisse Metadaten zu den privaten Datenbereichen eingesehen werden, bspw. wer mit wem kommuniziert hat. Dies wird zukünftig nicht länger möglich sein.
  • Der FabToken soll „Atomic Swap“ unterstützen. Dabei tauschen zwei Parteien Vermögenswerte aus, ohne dass ein Dritter als Vermittler involviert wird.
  • Unter bestimmten Umständen sollen Transaktionen archiviert werden können. Dadurch soll die Größe der Blockchain verringert werden.