D Aggiornamento delle applicazioni per Hyperledger Fabric v2.x

Quando si aggiorna la versione della piattaforma, potrebbe essere necessario apportare modifiche alle applicazioni esistenti in modo che funzionino con la nuova versione di Hyperledger Fabric.

Sono disponibili più versioni degli SDK Hyperledger Fabric. Utilizzare una versione dell'SDK compatibile con la versione di Hyperledger Fabric su cui si basa l'istanza. Per le istanze basate su Hyperledger Fabric v2.x, utilizzare versioni compatibili con la release di supporto a lungo termine Hyperledger Fabric v2.2 (LTS). È stato verificato che Oracle Blockchain Platform funzioni con le seguenti versioni di Hyperledger Fabric v2.x:
  • SDK client Hyperledger Fabric per Node.js versione 2.2.9
  • SDK client Hyperledger Fabric per Java versione 2.2.2
  • SDK client Hyperledger Fabric per Go versione 1.0.0

Hyperledger Fabric v2.x richiede Go versione 1.20 o successiva, pertanto potrebbe essere necessario aggiornare la versione di Go in uso.

Nota

È possibile che si verifichino errori di timeout nelle query se si distribuisce di nuovo un file .zip con codice concatenato esistente e gli indici vengono memorizzati nella directory radice del package codice concatenato, anziché nella directory META-INF. Per evitare errori di timeout, assicurarsi che gli indici nel codice concatenato esistente distribuiti in un'istanza di Hyperledger Fabric v2.x si trovino nella directory seguente:
META-INF/statedb/relationaldb/indexes
Per ulteriori informazioni, vedere Indici di database di stato.

Potrebbe essere necessario aggiornare l'applicazione se utilizza un SDK client per completare operazioni più complesse come la gestione dei cicli di vita dei codici concatenati, l'ascolto di eventi o la gestione di portafogli digitali, come descritto nelle sezioni seguenti.

SDK Hyperledger Fabric per Node.js

La tabella seguente riassume le differenze tra le versioni 1.4 e 2.x dell'SDK Hyperledger Fabric per Node.js. Per ulteriori informazioni, vedere Migrazione delle applicazioni client dalla versione 1.4 alla versione 2.0 nella documentazione di Hyperledger Fabric.

Modifica nella versione 2.x Azione cliente
Il modulo fabric-client è stato rimosso. Refactoring delle applicazioni per utilizzare il modulo fabric-network.
I wallet, utilizzati per memorizzare e accedere alle informazioni di identità, sono stati riprogettati. Consultare la documentazione di Hyperledger Fabric per linee guida e utility per la migrazione dei wallet.
L'API e il funzionamento del listener eventi sono stati riprogettati. Riscrivere i listener di eventi per utilizzare la nuova API.
L'SDK non fornisce più funzionalità amministrative e di gestione, include la possibilità di creare canali e gestire i cicli di vita dei codici concatenati. Utilizzare l'interfaccia della riga di comando per queste operazioni. I client esistenti che utilizzano le funzioni della versione 1.4 per la gestione del ciclo di vita non funzioneranno con un'istanza di Hyperledger Fabric v2.x.

La tabella seguente elenca le classi disponibili nel modulo Hyperledger Fabric v2.x fabric-network rispetto al modulo Hyperledger Fabric v1.4.7 fabric-network.

Classi di moduli fabric-network versione 2.x Classi di moduli fabric-network versione 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 per Java

Se l'applicazione utilizza API del ciclo di vita che non sono più valide nell'SDK Java per Hyperledger Fabric 2.0 (InstallProposalRequest, InstantiateProposalRequest e UpgradeProposalRequest), riscrivere l'applicazione per utilizzare le API nella versione più recente dell'SDK. Per ulteriori informazioni, consulta le note di rilascio di Java SDK per Hyperledger Fabric 2.0.

API REST Oracle Blockchain Platform (proxy REST)

Non sono necessarie modifiche per richiamare i codici concatenati esistenti.

Per supportare la funzione di inizializzazione per i codici concatenati più recenti che lo richiedono, è stato aggiunto un parametro isInit facoltativo all'API di transazione esistente. Per ulteriori informazioni, consulta la sezione relativa all'invio di una transazione nella documentazione relativa all'API REST.

API REST di Oracle Blockchain Platform (console)

Aggiornare la versione utilizzata in tutte le chiamate API. Per Hyperledger Fabric v1.4.7 il numero di versione dell'API è 1.1. Per Hyperledger Fabric v2.x il numero di versione dell'API è 2.

Ad esempio, per ottenere la lista dei codici concatenati installati per Hyperledger Fabric v1.4.7, utilizzare il seguente endpoint REST:
/console/admin/api/v1.1/chaincodes
Per ottenere la lista dei codici concatenati installati per Hyperledger Fabric v2.x, utilizzare il seguente endpoint REST:
/console/admin/api/v2/chaincodes

Nota

Sebbene la maggior parte delle interfacce API esistenti disponga di un nuovo equivalente Hyperledger Fabric v2.x, non esiste una corrispondenza 1:1. Alcune API sono univoche per ogni versione di Hyperledger Fabric e alcune hanno parametri diversi per ogni release. Ad esempio, nel file Hyperledger Fabric v2.x le funzioni di distribuzione sono state spostate dal percorso secondario chaincode al percorso secondario channel. Per ulteriori informazioni, consulta la sezione relativa alle API nuove, modificate e non più valide nella documentazione relativa alle API REST.

Poiché Hyperledger Fabric v2.x include un nuovo ciclo di vita del codice concatenato con nuove procedure per l'installazione del codice concatenato sui peer e l'avvio su un canale, potrebbe essere necessario aggiornare eventuali chiamate API correlate. Per ulteriori informazioni, vedere Ciclo di vita del codice di catena.