D Actualización de aplicaciones para Hyperledger Fabric v2.x

Al actualizar la versión de la plataforma, es posible que tenga que realizar cambios en las aplicaciones existentes para que funcionen con la nueva versión de Hyperledger Fabric.

Hay disponibles varias versiones de los SDK de Hyperledger Fabric. Utilice una versión del SDK que sea compatible con la versión de Hyperledger Fabric en la que se basa su instancia. Para instancias basadas en Hyperledger Fabric v2.x, utilice versiones compatibles con la versión de soporte a largo plazo (LTS) de Hyperledger Fabric v2.2. Se verificó que Oracle Blockchain Platform funcionara con las siguientes versiones para Hyperledger Fabric v2.x:
  • SDK de cliente de Hyperledger Fabric para Node.js versión 2.2.9
  • SDK de cliente de Hyperledger Fabric para Java versión 2.2.2
  • SDK de cliente de Hyperledger Fabric para Go versión 1.0.0

Hyperledger Fabric v2.x requiere Go versión 1.20 o posterior, por lo que es posible que deba actualizar la versión de Go que utiliza.

Note:

Es posible que encuentre errores de timeout en las consultas si vuelve a desplegar un archivo .zip de código de cadena existente y los índices se almacenan en el directorio raíz del paquete de código de cadena, en lugar de en el directorio META-INF. Para evitar errores de timeout, asegúrese de que los índices del código de cadena existente que despliega en una instancia de Hyperledger Fabric v2.x estén en el siguiente directorio:
META-INF/statedb/relationaldb/indexes
Para obtener más información, consulte Índices de Base de Datos de Estado.

Puede que tenga que actualizar la aplicación si utiliza un SDK de cliente para completar operaciones más complejas, como la gestión de ciclos de vida de código de cadenas, la recepción de eventos o la gestión de carteras digitales, como se explica en las siguientes secciones.

SDK de Hyperledger Fabric para Node.js

En la siguiente tabla se resumen las diferencias entre las versiones 1.4 y 2.x del SDK de Hyperledger Fabric para Node.js. Para obtener más información, consulte Migración de aplicaciones cliente de v1.4 a v2.0 en la documentación de Hyperledger Fabric.

Cambio en la versión 2.x Acción del cliente
Se eliminó el módulo fabric-client. Refactorice las aplicaciones para utilizar el módulo fabric-network.
Las carteras, utilizadas para almacenar y acceder a la información de identidad, fueron rediseñadas. Consulte la documentación de Hyperledger Fabric para obtener directrices y utilidades para migrar carteras.
Se rediseñaron la API y el comportamiento del listener de eventos. Vuelva a escribir los listeners de evento para utilizar la nueva API.
El SDK ya no proporciona capacidades administrativas y de gestión, como la capacidad de crear canales y gestionar los ciclos de vida de los códigos de cadenas. Utilice la interfaz de línea de comandos para estas operaciones. Los clientes existentes que utilizan funciones de la versión 1.4 para la gestión del ciclo de vida no funcionarán con una instancia de Hyperledger Fabric v2.x.

En la siguiente tabla, se muestran las clases que están disponibles en el módulo Hyperledger Fabric v2.x fabric-network frente al módulo Hyperledger Fabric v1.4.7 fabric-network.

Clases de módulos de red de tejido versión 2.x Clases de módulos de red de tejido versión 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 de Hyperledger Fabric para Java

Si la aplicación utiliza API de ciclo de vida que ahora están en desuso en el SDK de Java para Hyperledger Fabric 2.0 (InstallProposalRequest, InstantiateProposalRequest y UpgradeProposalRequest), vuelva a escribir la aplicación para utilizar las API en la versión más reciente del SDK. Para obtener más información, consulte las notas de la versión de Java SDK para Hyperledger Fabric 2.0.

API de REST de Oracle Blockchain Platform (proxy REST)

No se necesitan cambios para llamar a los códigos de cadenas existentes.

Para soportar la función de inicialización para los nuevos códigos de cadenas que la necesitan, se ha agregado un parámetro isInit opcional a la API de transacción existente. Para obtener más información, consulte Envío de una transacción en la documentación de la API de REST.

API de REST de Oracle Blockchain Platform (consola)

Actualice la versión utilizada en todas las llamadas de API. Para Hyperledger Fabric v1.4.7, el número de versión de API es 1.1. Para Hyperledger Fabric v2.x, el número de versión de API es 2.

Por ejemplo, para obtener la lista de códigos de cadenas instalados para Hyperledger Fabric v1.4.7, utilice el siguiente punto final de REST:
/console/admin/api/v1.1/chaincodes
Para obtener la lista de códigos de cadenas instalados para Hyperledger Fabric v2.x, utilice el siguiente punto final de REST:
/console/admin/api/v2/chaincodes

Note:

Aunque la mayoría de las API existentes tienen un nuevo equivalente de Hyperledger Fabric v2.x, no hay una coincidencia 1:1. Algunas API son exclusivas de cada versión de Hyperledger Fabric y otras tienen parámetros diferentes para cada versión. Por ejemplo, en Hyperledger Fabric v2.x, las funciones de despliegue se han movido de la subruta chaincode a la subruta channel. Para obtener más información, consulte API nuevas, modificadas y en desuso en la documentación de la API de REST.

Dado que Hyperledger Fabric v2.x incluye un nuevo ciclo de vida de código de cadena con nuevos procedimientos para instalar código de cadena en pares e iniciarlo en un canal, es posible que deba actualizar las llamadas de API relacionadas. Para obtener más información, consulte Ciclo de vida del código de cadenas.