D Anwendungen für Hyperledger Fabric v2.x aktualisieren

Wenn Sie die Plattformversion upgraden, müssen Sie möglicherweise Änderungen an Ihren vorhandenen Anwendungen vornehmen, damit diese mit der neuen Version von Hyperledger Fabric arbeiten.

Mehrere Versionen der Hyperledger Fabric-SDKs sind verfügbar. Verwenden Sie eine Version des SDK, die mit der Version von Hyperledger Fabric kompatibel ist, auf der Ihre Instanz basiert. Verwenden Sie für Instanzen, die auf Hyperledger Fabric v2.x basieren, Versionen, die mit der Hyperledger Fabric v2.2-Version für langfristigen Support (LTS) kompatibel sind. Oracle Blockchain Platform wurde für Hyperledger Fabric v2.x auf die folgenden Versionen geprüft:
  • Hyperledger Fabric-Client-SDK für Node.js Version 2.2.9
  • Hyperledger Fabric-Client-SDK für Java-Version 2.2.2
  • Hyperledger Fabric-Client-SDK für Go-Version 1.0.0

Für Hyperledger Fabric v2.x ist Go Version 1.20 oder höher erforderlich. Daher müssen Sie möglicherweise ein Upgrade der von Ihnen verwendeten Go-Version durchführen.

Hinweis:

Bei Abfragen können Timeoutfehler auftreten, wenn Sie eine vorhandene Chaincode-Datei .zip erneut bereitstellen und die Indizes im Root-Verzeichnis des Chaincode-Packages gespeichert werden, anstatt im Verzeichnis META-INF. Um Timeoutfehler zu vermeiden, stellen Sie sicher, dass Indizes in vorhandenem Chaincode, den Sie in einer Hyperledger Fabric v2.x-Instanz bereitstellen, sich im folgenden Verzeichnis befinden:
META-INF/statedb/relationaldb/indexes
Weitere Informationen finden Sie unter Datenbankindizes für Status.

Möglicherweise müssen Sie Ihre Anwendung aktualisieren, wenn sie komplexere Vorgänge wie das Verwalten von Chaincode-Lebenszyklen, das Hören auf Ereignisse oder das Verwalten digitaler Wallets mit einem Client-SDK abschließt, wie in den folgenden Abschnitten beschrieben.

Hyperledger Fabric-SDK für Node.js

In der folgenden Tabelle werden die Unterschiede zwischen den Versionen 1.4 und 2.x des Hyperledger Fabric-SDK für Node.js zusammengefasst. Weitere Informationen finden Sie unter Migrieren von Clientanwendungen von Version 1.4 zu Version 2.0 in der Hyperledger Fabric-Dokumentation.

Änderung in Version 2.x Kundenaktion
Das fabric-client-Modul wurde entfernt. Refactoring für Anwendungen zur Verwendung des Moduls fabric-network durchführen.
Wallets, die zum Speichern und Zugreifen auf Identitätsinformationen verwendet werden, wurden neu gestaltet. Richtlinien und Dienstprogramme zum Migrieren von Wallets finden Sie in der Dokumentation zu Hyperledger Fabric.
Die Ereignis-Listener-API und das Verhalten wurden neu gestaltet. Schreiben Sie die Ereignis-Listener neu, um die neue API zu verwenden.
Das SDK bietet keine administrativen und Verwaltungsfunktionen mehr, einschließlich der Möglichkeit, Kanäle zu erstellen und Chaincode-Lebenszyklen zu verwalten. Verwenden Sie die Befehlszeilenschnittstelle für diese Vorgänge. Vorhandene Clients, die Funktionen der Version 1.4 für die Lebenszyklusverwaltung verwenden, funktionieren nicht mit einer Hyperledger Fabric v2.x-Instanz.

In der folgenden Tabelle werden die Klassen aufgeführt, die im Modul Hyperledger Fabric v2.x fabric-network im Vergleich zum Modul Hyperledger Fabric v1.4.7 fabric-network verfügbar sind.

Version 2.x Modulklassen Gewebe-Netzwerk Version 1.4 Modulklassen für Gewebe-Netzwerke

DefaultCheckpointers
Gateway
HsmX509Provider
IdentityProviderRegistry
Transaction
Wallet

AbstractEventHubSelectionStrategy
AbstractEventListener
BaseCheckpointer
BaseWallet
CommitEventListener
Contract
ContractEventListener
CouchDBWallet
EventHubManager
FileSystemCheckpointer
FileSystemWallet
Gateway
HSMWalletMixin
InMemoryWallet
Network
Query
RoundRobinEventHubSelectionStrategy
Transaction
X509WalletMixin

Hyperledger Fabric-SDK für Java

Wenn Ihre Anwendung Lebenszyklus-APIs verwendet, die jetzt im Java-SDK für Hyperledger Fabric 2.0 (InstallProposalRequest, InstantiateProposalRequest und UpgradeProposalRequest) veraltet sind, schreiben Sie Ihre Anwendung neu, um die APIs in der neueren Version des SDK zu verwenden. Weitere Informationen finden Sie in den Versionshinweisen zu Java SDK for Hyperledger Fabric 2.0.

REST-API (REST-Proxy) für Oracle Blockchain Platform

Zum Aufrufen vorhandener Chaincodes sind keine Änderungen erforderlich.

Um die Initialisierungsfunktion für neuere Chaincodes zu unterstützen, für die dies erforderlich ist, wurde der vorhandenen Transaktions-API ein optionaler Parameter isInit hinzugefügt. Weitere Informationen finden Sie unter Transaktion senden in der REST-API-Dokumentation.

REST-API (Konsole) für Oracle Blockchain Platform

Aktualisieren Sie die in allen API-Aufrufen verwendete Version. Für Hyperledger Fabric v1.4.7 lautet die API-Versionsnummer 1.1. Für Hyperledger Fabric v2.x lautet die API-Versionsnummer 2.

Beispiel: Um die Liste der installierten Chaincodes für Hyperledger Fabric v1.4.7 abzurufen, verwenden Sie den folgenden REST-Endpunkt:
/console/admin/api/v1.1/chaincodes
Um die Liste der installierten Chaincodes für Hyperledger Fabric v2.x abzurufen, verwenden Sie den folgenden REST-Endpunkt:
/console/admin/api/v2/chaincodes

Hinweis:

Obwohl die meisten vorhandenen APIs ein neues Hyperledger Fabric v2.x-Äquivalent aufweisen, gibt es keine 1:1-Übereinstimmung. Einige APIs sind für jede Version von Hyperledger Fabric eindeutig, und einige haben unterschiedliche Parameter für jedes Release. Beispiel: Unter Hyperledger Fabric v2.x wurden die Deployment-Funktionen vom Unterpfad chaincode in den Unterpfad channel verschoben. Weitere Informationen finden Sie unter Neue, geänderte und veraltete APIs in der REST-API-Dokumentation.

Da Hyperledger Fabric v2.x einen neuen Chaincode-Lebenszyklus mit neuen Verfahren zum Installieren von Chaincode auf Peers und Starten auf einem Kanal enthält, müssen Sie möglicherweise alle zugehörigen API-Aufrufe aktualisieren. Weitere Informationen: Chaincode-Lebenszyklus.