D Mise à jour des applications pour Hyperledger Fabric v2.x

Lorsque vous mettez à niveau la version de la plate-forme, vous devrez peut-être apporter des modifications à vos applications existantes afin qu'elles fonctionnent avec la nouvelle version d'Hyperledger Fabric.

Plusieurs versions des SDK Hyperledger Fabric sont disponibles. Utilisez une version du SDK compatible avec la version d'Hyperledger Fabric sur laquelle votre instance est basée. Pour les instances basées sur Hyperledger Fabric v2.x, utilisez des versions compatibles avec la version de prise en charge à long terme (LTS) d'Hyperledger Fabric v2.2. Il a été vérifié qu'Oracle Blockchain Platform fonctionne avec les versions suivantes pour Hyperledger Fabric v2.x :
  • SDK client Hyperledger Fabric pour Node.js version 2.2.9
  • SDK client Hyperledger Fabric pour Java version 2.2.2
  • SDK client Hyperledger Fabric pour Go version 1.0.0

Hyperledger Fabric v2.x requiert Go version 1.20 ou ultérieure, vous devrez donc peut-être mettre à niveau la version de Go que vous utilisez.

Remarques :

Des erreurs de délai d'expiration peuvent survenir sur les requêtes si vous déployez à nouveau un fichier de code chaîne .zip existant et que les index sont stockés dans le répertoire racine du package de code chaîne, plutôt que dans le répertoire META-INF. Pour éviter les erreurs de délai d'expiration, assurez-vous que les index du code chaîne existant que vous déployez vers une instance Hyperledger Fabric v2.x se trouvent dans le répertoire suivant :
META-INF/statedb/relationaldb/indexes
Pour plus d'informations, reportez-vous à Index de base de données d'état.

Vous devrez peut-être mettre à jour votre application si elle utilise un SDK client pour effectuer des opérations plus complexes telles que la gestion des cycles de vie des codes chaîne, l'écoute des événements ou la gestion des portefeuilles numériques, comme indiqué dans les sections suivantes.

SDK Hyperledger Fabric pour Node.js

Le tableau suivant récapitule les différences entre les versions 1.4 et 2.x du kit SDK Hyperledger Fabric pour Node.js. Pour plus d'informations, reportez-vous à la section Migration d'applications client de v1.4 vers v2.0 dans la documentation Hyperledger Fabric.

Modification de la version 2.x Action client
Le module fabric-client a été supprimé. Refactorisez les applications pour utiliser le module fabric-network.
Les portefeuilles, utilisés pour stocker et accéder aux informations d'identité, ont été repensés. Reportez-vous à la documentation Hyperledger Fabric pour obtenir des instructions et des utilitaires sur la migration de portefeuilles.
L'API et le comportement du processus d'écoute d'événement ont été repensés. Réécrivez les processus d'écoute d'événement pour utiliser la nouvelle API.
Le kit SDK ne fournit plus de fonctionnalités d'administration et de gestion, et offre également la possibilité de créer des canaux et de gérer les cycles de vie des codes chaîne. Utilisez l'interface de ligne de commande pour ces opérations. Les clients existants qui utilisent les fonctions de la version 1.4 pour la gestion du cycle de vie ne fonctionneront pas avec une instance Hyperledger Fabric v2.x.

Le tableau suivant répertorie les classes disponibles dans le module Hyperledger Fabric v2.x fabric-network par rapport au module Hyperledger Fabric v1.4.7 fabric-network.

Classes de module fabric-network version 2.x Classes de module fabric-network version 1.4

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

SDK Hyperledger Fabric pour Java

Si votre application utilise des API de cycle de vie qui sont désormais en phase d'abandon dans le kit SDK Java pour Hyperledger Fabric 2.0 (InstallProposalRequest, InstantiateProposalRequest et UpgradeProposalRequest), réécrivez votre application pour l'utiliser dans la version la plus récente du kit SDK. Pour plus d'informations, reportez-vous aux notes sur la version du kit SDK Java pour Hyperledger Fabric 2.0.

API REST Oracle Blockchain Platform (proxy REST)

Aucune modification n'est nécessaire pour appeler des codes chaîne existants.

Afin de prendre en charge la fonction d'initialisation pour les codes chaîne les plus récents qui en ont besoin, un paramètre facultatif isInit a été ajouté à l'API de transaction existante. Pour plus d'informations, reportez-vous à Envoyer une transaction dans la documentation de l'API REST.

API REST Oracle Blockchain Platform (console)

Mettez à jour la version utilisée dans tous les appels d'API. Pour Hyperledger Fabric v1.4.7, le numéro de version de l'API est 1.1. Pour Hyperledger Fabric v2.x, le numéro de version de l'API est 2.

Par exemple, pour obtenir la liste des codes chaîne installés pour Hyperledger Fabric v1.4.7, utilisez l'adresse REST suivante :
/console/admin/api/v1.1/chaincodes
Afin d'obtenir la liste des codes chaîne installés pour Hyperledger Fabric v2.x, utilisez l'adresse REST suivante :
/console/admin/api/v2/chaincodes

Remarques :

Bien que la plupart des API existantes aient un nouvel équivalent Hyperledger Fabric v2.x, il n'y a pas de correspondance 1:1. Certaines API sont propres à chaque version d'Hyperledger Fabric, et d'autres ont des paramètres différents pour chaque version. Par exemple, sur Hyperledger Fabric v2.x, les fonctions de déploiement ont été déplacées du sous-chemin chaincode vers le sous-chemin channel. Pour plus d'informations, reportez-vous à Nouvelles API, modifiées et en phase d'abandon dans la documentation relative à l'API REST.

Etant donné qu'Hyperledger Fabric v2.x inclut un nouveau cycle de vie de code chaîne avec de nouvelles procédures d'installation de code chaîne sur des homologues et de démarrage sur un canal, vous devrez peut-être mettre à jour les appels d'API associés. Pour plus d'informations, reportez-vous à Cycle de vie des codes chaîne.