D Mise à jour d'applications pour Hyperledger Fabric v2.x

Lorsque vous mettez à niveau la version de la plate-forme, il se peut que vous deviez apporter des modifications à vos applications existantes afin qu'elles fonctionnent avec la nouvelle version de Hyperledger Fabric.

Plusieurs versions des trousses SDK Hyperledger Fabric sont disponibles. Utilisez une version de la trousse SDK compatible avec la version de Hyperledger Fabric sur laquelle repose votre instance. Pour les instances basées sur Hyperledger Fabric v2.x, utilisez des versions compatibles avec la version de soutien à long terme (LTS) de Hyperledger Fabric v2.2. Oracle Blockchain Platform a été vérifié pour fonctionner avec les versions suivantes de Hyperledger Fabric v2.x :
  • Trousse SDK client Hyperledger Fabric pour Node.js version 2.2.9
  • Trousse SDK client Hyperledger Fabric pour Java version 2.2.2
  • Trousse SDK client Hyperledger Fabric pour Go version 1.0.0

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

Note :

Vous pourriez rencontrer des erreurs de temporisation sur les interrogations si vous déployez à nouveau un fichier .zip de code de chaîne existant et que les index sont stockés dans le répertoire racine du paquetage de code de chaîne, plutôt que dans le répertoire META-INF. Pour éviter les erreurs de temporisation, assurez-vous que les index du code de chaîne existant que vous déployez dans une instance Hyperledger Fabric v2.x se trouvent dans le répertoire suivant :
META-INF/statedb/relationaldb/indexes
Pour plus d'informations, voir Index de base de données d'état.

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

Trousse SDK Hyperledger Fabric pour Node.js

Le tableau suivant résume les différences entre les versions 1.4 et 2.x de la trousse SDK Hyperledger Fabric pour Node.js. Pour plus d'informations, reportez-vous à la section Migration des applications client de la version 1.4 vers la version 2.0 dans la documentation sur Hyperledger Fabric.

Modification de la version 2.x Action du client
Le module fabric-client a été supprimé. Refactoriser 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. Consultez la documentation sur Hyperledger Fabric pour obtenir des directives et des utilitaires permettant de migrer les portefeuilles.
L'API et le comportement du module d'écoute d'événements ont été repensés. Réécrivez les modules d'écoute d'événement pour utiliser la nouvelle API.
La trousse SDK ne fournit plus de fonctions d'administration et de gestion et permet notamment de créer des canaux et de gérer les cycles de vie du code de chaîne. Utilisez l'interface de ligne de commande pour ces opérations. Les clients existants qui utilisent des fonctions de 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 fabric-network de Hyperledger Fabric v2.x par rapport au module fabric-network de Hyperledger Fabric v1.4.7.

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

Trousse SDK Hyperledger Fabric pour Java

Si votre application utilise des API de cycle de vie qui sont maintenant obsolètes dans la trousse SDK Java pour Hyperledger Fabric 2.0 (InstallProposalRequest, InstantiateProposalRequest et UpgradeProposalRequest), réécrivez votre application pour utiliser les API de la version la plus récente de la trousse SDK. Pour plus d'informations, consultez les notes de version sur la trousse SDK Java pour Hyperledger Fabric 2.0.

API REST d'Oracle Blockchain Platform (mandataire REST)

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

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

API REST d'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 de chaîne installés pour Hyperledger Fabric v1.4.7, utilisez le point d'extrémité REST suivant :
/console/admin/api/v1.1/chaincodes
Pour obtenir la liste des codes de chaîne installés pour Hyperledger Fabric v2.x, utilisez le point d'extrémité REST suivant :
/console/admin/api/v2/chaincodes

Note :

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 uniques à chaque version de Hyperledger Fabric, et certaines ont des paramètres différents pour chaque version. Par exemple, sur Hyperledger Fabric v2.x, les fonctions de déploiement sont passées du sous-chemin chaincode au sous-chemin channel. Pour plus d'informations, voir Nouvelles API, modifiées et obsolètes dans la documentation sur les API REST.

Comme Hyperledger Fabric v2.x inclut un nouveau cycle de vie du code de chaîne avec de nouvelles procédures pour installer le code de chaîne sur les pairs et le démarrer sur un canal, vous devrez peut-être mettre à jour les appels d'API connexes. Pour en savoir plus, voir Cycle de vie du code de chaîne.