Hyperledger Fabric Roadmap und Timeline

HYPERLEDGER FABRIC TIMELINE & ROADMAP


:conwic stellt die Releasehistorie und Roadmap von Hyperledger Fabric, der flexiblen Distributed-Ledger-Plattform vor.

Hyperledger Fabric Timeline

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 1.4.1 (11.04.2019)
  • Der Konsens-Mechanismus „Raft“ kann verwendet werden. Der Einsatz eines Kafka Clusters kann somit vermieden werden.
  • Es wurden neue Gesundheitschecks eingeführt (u.a. für CouchDB, Kafka, Orderer und Endorser).
  • Das „CAR“ Format wird nicht mehr unterstützt.
  • Unterstützung von Go 1.11.5
Hyperledger Fabric 1.4.2 (17.07.2019)
  • Die Migration eines Kafka-basierten Orderers nach Raft wurde umgesetzt.
  • Ein Rollback für einen Channel kann über die CLI durchgeführt werden. Der Zustand kann wahlweise auf einen beliebigen vorherigen Block oder den Genesis Block zurückgesetzt werden.
  • Die Orderer-Endpunkte können nun pro Organisation definiert werden.
  • Bei Abfragen von historischen Daten wurden Informationen aus Blöcken 256, 512, 768 usw. nicht zurückgegeben. Dies wurde korrigiert.
 
Hyperledger Fabric 1.4.3 (26.08.2019)
  • Zertifikate für die Rollen von Orderer und Administator-Identitäten von Organisationen können nun ausgestellt werden.
  • Wenn private Datenbereiche aktiviert werden, müssen Peers nun nicht mehr neu gestartet werden. 
 
Hyperledger Fabric 1.4.4 (14.11.2019)
  • Wenn der Orderer umgezogen wurde, konnten anschließend Peers nicht mehr einem Channel hinzugefügt werden, da die Orderer-Adresse aus dem Genesisblock ermittelt wurde. Ab sofort kann die (neue) Orderer-Adresse bei der Konfiguration der Peers hinterlegt werden.Es werden nun Warnungen protokolliert, bevor Zertifikate ablaufen.
  • Es werden nun Warnungen protokolliert, bevor Zertifikate ablaufen.
  • Unterstützung von Go 1.12.12
Hyperledger Fabric 2.0 Beta (12.12.2019)
  • Die Beta-Version bietet einen Vorausblick und ist nicht für Produktionszwecke geeignet.
  • Die Beta-Version ist „feature complete“.
  • Ein Upgrade-Guide ist auf der offiziellen Homepage verfügbar. Manuelle Änderungen müssen sowohl für die Datenbanken der Peers als auch im Chaincode (nur bei golang) vorgenommen werden.
  • Das Ausführen von Chaincode wird nicht mehr zwangsweise in einem Docker Container stattfinden müssen. Docker wird der Standard bleiben. Kompiliert und ausgeführt werden kann der Chaincode aber auch durch externe Services, bspw. durch Kubernetes Pods.
  • Die Performance beim Verwenden der CouchDB wurde verbessert.
  • Die Konsensus „Solo“ und „Kafka“ sind überholt und werden zukünftig wegfallen.
  • Das in der Version 2.0 Alpha eingeführte Fabtoken Management wurde wieder entfernt. In einer späteren Version wird es in überarbeiteter Form wieder eingeführt werden.
Hyperledger Fabric 2.0.0 (09.01.2020)
  • Chaincodes können ab sofort dezentral verwaltet werden. Mehrere Organisationen können nach erfolgter Übereinstimmung Parameter des Chaincodes ändern (u.a. die Endorsement Policy).
  • Die privaten Datenbereiche wurden erweitert, so dass die Daten nicht mehr für einzelne Teilnehmer eines Channels freigegeben werden müssen. Stattdessen können die Informationen mit Organisationen geteilt werden.
  • Chaincode kann ab sofort über externe Tools kompiliert und ausgeführt werden. Dies ist eine optionale Möglichkeit.
  • Durch neue Caching Möglichkeiten der Peers kann die Performance der CouchDB erhöht werden.
Hyperledger Fabric 1.4.5 (19.02.2020)
  • Es kann eine separate TLS Konfigurationen für Raft Cluster und Clients angegeben werden.
  • Die Anzahl von gleichzeitigen TCP-Verbindungen zwischen Peers und der CouchDB wurde reduziert.
 
Hyperledger Fabric 1.4.6 (25.02.2020)
  • Die Version beinhaltet nur Fehlerkorrekturen.
 
Hyperledger Fabric 2.0.1 (26.02.2020)

Diese Version enthält diverse Fehlerbehebungen, unter anderem die folgenden:

  • In bestimmten Situationen konnte es zu abweichenden Ergebnissen der Endorsement Policy kommen.
  • Kafka Cluster können nachträglich um weitere Knoten ergänzt werden. Bisher führte dies zu einem Absturz.
  • Bisher haben auch Peers von Organisationen, die nicht Bestandteil eines privaten Datenbereichs waren, diesen erhalten. Dieses Problem wurde behoben.
  • Konfigurierte Validierungen für Blöcke wurden bisher ignoriert. Nun werden sie beim Erstellen eines Channels berücksichtigt und müssen konfiguriert werden.
Hyperledger Fabric 2.1.0 (15.04.2020)
  • Peers können ab sofort mit einem Limit versehen werden, welches die maximale Anzahl an parallelen Anfragen limitiert. Anfragen darüber hinaus werden mit einem Fehler abgelehnt.
  • Private Schlüssel im SEC 1 Format werden neuerdings unterstützt.
  • In Docker Images wird Alpine 3.11 eingesetzt.
  • Ein Update auf die Go-Version 1.14.1 ist erfolgt.
Hyperledger Fabric 1.4.7 (14.05.2020)
  • Die Version beinhaltet nur Fehlerkorrekturen.
  • Unterstützung von Go 1.13.9
Hyperledger Fabric 2.1.1 (01.06.2020)
Diese Version enthält diverse Fehlerbehebungen und Optimierungen, unter anderem:
  • Ein Problem bei der Untestützung mehrerer Signaturen von einer Organisation wurde gelöst.
  • Die Meldungen von möglichen Fehlern bei der Installation von Chaincode sind nun besser verständlich.
  • Ein Problem im Zusammenhang mit fehlerhaften Chaincode Builds und dem erneuten Installieren von Chaincode wurde behoben.
Hyperledger Fabric 2.2.0 LTS (09.07.2020)
Nach Version 1.4 ist diese Version die nächste LTS-Version. Korrekturen werden als Patch Releases (2.2.1, 2.2.2, …) veröffentlicht werden. Die wichtigsten Neuerungen sind:
  • TLS 1.3 wird ab sofort unterstützt und automatisch verwendet.
  • Die Details eines Chaincodes können ab sofort abgefragt werden.
  • Der Orderer kann nun ohne Genesisblock erneut gestartet werden, sofern der Genesisblock auf „Datei“ eingestellt ist.
  • In bestimmten Konstellationen konnte es zu Problemen kommen, wenn ein Orderer einen Channel zuerst verlassen hat und später wieder eingetreten ist. Der Fehler wurde korrigiert.
  • Die Performance bei der Verwendung von privaten Datenbereichen wurde verbessert.
  • In Docker Images wird Alpine 3.12 eingesetzt.
  • Ein Update auf die Go-Version 1.14.4 ist erfolgt.
  • Ein Update auf die CouchDB Version 3.1.0 ist erfolgt.
  • Die Beispiele und Tutorials zum Erstellen eines ersten Netzwerks wurden entfernt.
  • Die Konsenstypen „Solo“ und „Kafka“ wurden als “deprecated“ markiert.
  • Der alte Chaincode Lebenszyklus der Versionen 1.x ist als „deprecated“ markiert. Im Update-Guide auf Version 2.x ist beschrieben, wie eine Anpassung erfolgen kann.
Hyperledger Fabric 1.4.8 (22.07.2020)
  • Die Version beinhaltet nur Fehlerkorrekturen.
  • Unterstützung von Go 1.13.12
Hyperledger Fabric 1.4.9 (30.09.2020)
  • Es wurden Verbesserungen und Korrekturen im Umgang mit auslaufenden oder ausgelaufenen Zertifikaten durchgeführt.
  • Die Effizienz beim Einsatz von Hardware Security Modulen (HSM) wurde verbessert.
Hyperledger Fabric 2.2.1 (30.09.2020)
  • Es wurden Verbesserungen und Korrekturen im Umgang mit auslaufenden oder ausgelaufenen Zertifikaten durchgeführt.
  • Die Effizienz beim Einsatz von Hardware Security Modulen (HSM) wurde verbessert
Hyperledger Fabric 2.3.0 (18.11.2020)
  • Die API zum Beitreten und Verlassen von Channels wurde erleichtert. Dadurch kann der System Channel wegfallen, was wiederum die Performance und Skalierbarkeit verbessert. Da der Orderer außerdem nicht mehr in dem Prozess involviert ist, wird der Datenschutz somit erhöht.
  • Der aktuelle Status eines Channels kann als „Snapshot“ festgehalten werden. Dadurch können Peers einem Channel basierend auf diesem Snapshot beitreten. In der Folge müssen vor dem Checkpoint liegende Daten nicht geladen werden, wodurch Zeit und Speicherkapazität reduziert werden können.
  • Bei der Konfiguration eines Orderers muss nun ein Arbeitspfad angegeben werden.
  • Alle Korrekturen bis zu Version 2.2.1 sind in die Version 2.3.0 eingeflossen.
  • Unterstützung von Go 1.14.12
 
 
Hyperledger Fabric 1.4.10 (27.01.2021)
  • Die Version beinhaltet nur Fehlerkorrekturen.
Hyperledger Fabric 2.2.2 (27.01.2021)
  • Es wurden Korrekturen beim Löschen von Schlüsseln durchgeführt. Je nach verwendetem Chaincode konnte das Verhalten voneinander abweichen.
  • Falls Schlüssel in privaten Datenbereichen gelöscht wurden, sollte eine Reparatur der defekten Blöcke durchgeführt werden.
  • Unter Umstanden wurden PKCS#11 Sitzungen nicht korrekt geschlossen. Der Fehler wurde korrigiert.
  • Beim Raft-Konsensus kann nun der Tick Intervall in der Orderer-Konfiguration definiert werden.
  • Unterstützung von Go 1.14.12
 
Hyperledger Fabric 1.4.11 (02.03.2021)
  • Die Version beinhaltet nur Fehlerkorrekturen.
Hyperledger Fabric 2.3.1 (03.02.2021)
  • Es wurden Korrekturen beim Löschen von Schlüsseln durchgeführt. Je nach verwendetem Chaincode konnte das Verhalten voneinander abweichen.
  • Falls Schlüssel in privaten Datenbereichen gelöscht wurden, sollte eine Reparatur der defekten Blöcke durchgeführt werden.
Hyperledger Fabric 2.2.3 (23.04.2021)
  • Beim Einsatz von GO 1.15.x kann es zu Abweichungen bei der Überprüfung von Namen im Vergleich zu vorherigen GO-Versionen kommen. Daher wurde ein Modus eingeführt, so dass die Prüfung die gleichen Ergebnisse wie zuvor liefert.
  • Unterstützung von Go 1.15.7
Hyperledger Fabric 2.3.2 (23.04.2021)
  • Ein Fehler beim Zurücksetzen auf einen Snapshot mit Block Nummer 0 wurde korrigiert.
  • Unterstützung von Go 1.15.7
  • Unterstützung von CouchDB v3.1.1
Hyperledger Fabric 2.3.3 oder 2.4.0 (in Entwicklung)
  • Der BFT-Konsensus soll eingeführt werden.
  • Der Ledger eines Peers soll geräumt werden können, so dass nach dem Erstellen eines Snapshots vorherige Daten entfernt werden. Dadurch kann Speicherplatz auf den Peers eingespart werden.
  • Die Dokumentation wird insbesondere im Deployment-Bereich erweitert. Auch werden weitere Beispiele zum Aufbau und Starten eines Netzwerks bereitgestellt.