D Atualizando Aplicativos para Hyperledger Fabric v2.x

Quando você atualiza a versão da plataforma, pode ser necessário fazer alterações em seus aplicativos existentes para que eles funcionem com a nova versão do Hyperledger Fabric.

Várias versões dos SDKs do Hyperledger Fabric estão disponíveis. Use uma versão do SDK compatível com a versão do Hyperledger Fabric na qual sua instância se baseia. Para instâncias baseadas no Hyperledger Fabric v2.x, use versões compatíveis com a versão de suporte de longo prazo (LTS) do Hyperledger Fabric v2.2. O Oracle Blockchain Platform foi verificado para funcionar com as seguintes versões do Hyperledger Fabric v2.x:
  • SDK do cliente do Hyperledger Fabric para Node.js versão 2.2.9
  • SDK do cliente do Hyperledger Fabric para Java versão 2.2.2
  • SDK do cliente Hyperledger Fabric para Go versão 1.0.0

O Hyperledger Fabric v2.x requer o Go versão 1.20 ou posterior, portanto talvez você precise fazer upgrade da versão do Go que usar.

Observação:

Você poderá encontrar erros de timeout nas consultas se implantar um arquivo .zip de chaincode existente novamente e os índices forem armazenados no diretório raiz do pacote de chaincode, em vez de no diretório META-INF. Para evitar erros de timeout, certifique-se de que os índices no chaincode existente que você implanta em uma instância do Hyperledger Fabric v2.x estejam no seguinte diretório:
META-INF/statedb/relationaldb/indexes
Para obter mais informações, consulte Índices de Banco de Dados de Estado.

Talvez seja necessário atualizar seu aplicativo se ele usar um SDK cliente para concluir operações mais complexas, como gerenciar ciclos de vida de chaincode, escutar eventos ou gerenciar carteiras digitais, conforme discutido nas seções a seguir.

SDK do Hyperledger Fabric para Node.js

A tabela a seguir resume as diferenças entre as versões 1.4 e 2.x do SDK do Hyperledger Fabric para Node.js. Para obter mais informações, consulte Migração de aplicativos cliente da v1.4 para a v2.0 na documentação do Hyperledger Fabric.

Alteração na versão 2.x Ação do cliente
O módulo fabric-client foi removido. Refatorar aplicativos para usar o módulo fabric-network.
As carteiras, usadas para armazenar e acessar informações de identidade, foram redesenhadas. Consulte a documentação do Hyperledger Fabric para obter diretrizes e utilitários para migrar wallets.
A API e o comportamento do listener de eventos foram reprojetados. Reescreva os listeners de eventos para usar a nova API.
O SDK não fornece mais recursos administrativos e de gerenciamento, inclui a capacidade de criar canais e gerenciar ciclos de vida do chaincode. Use a interface de linha de comando para essas operações. Os clientes existentes que usam funções da versão 1.4 para gerenciamento do ciclo de vida não funcionarão com uma instância do Hyperledger Fabric v2.x.

A tabela a seguir lista as classes disponíveis no módulo Hyperledger Fabric v2.x fabric-network versus o módulo Hyperledger Fabric v1.4.7 fabric-network.

Classes de módulo fabric-network da versão 2.x Classes de módulo fabric-network da versão 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 do Hyperledger Fabric para Java

Se seu aplicativo usar APIs de ciclo de vida que agora estão obsoletas no Java SDK para Hyperledger Fabric 2.0 (InstallProposalRequest, InstantiateProposalRequest e UpgradeProposalRequest), reescreva seu aplicativo para usar as APIs na versão mais recente do SDK. Para obter mais informações, consulte Notas de versão do Java SDK para Hyperledger Fabric 2.0.

API REST do Oracle Blockchain Platform (Proxy REST)

Nenhuma alteração é necessária para chamar os chaincodes existentes.

Para suportar a função de inicialização de chaincodes mais recentes que o exigem, um parâmetro isInit opcional foi adicionado à API de transação existente. Para obter mais informações, consulte Enviar uma Transação na documentação da API REST.

API REST do Oracle Blockchain Platform (Console)

Atualize a versão usada em todas as chamadas de API. Para o Hyperledger Fabric v1.4.7, o número da versão da API é 1.1. Para o Hyperledger Fabric v2.x, o número da versão da API é 2.

Por exemplo, para obter a lista de códigos de cadeia instalados para o Hyperledger Fabric v1.4.7, use o seguinte ponto final REST:
/console/admin/api/v1.1/chaincodes
Para obter a lista de códigos de cadeia instalados para o Hyperledger Fabric v2.x, use o seguinte ponto final REST:
/console/admin/api/v2/chaincodes

Observação:

Embora a maioria das APIs existentes tenha um novo equivalente do Hyperledger Fabric v2.x, não há uma correspondência de 1:1. Algumas APIs são exclusivas para cada versão do Hyperledger Fabric, e algumas têm parâmetros diferentes para cada versão. Por exemplo, no Hyperledger Fabric v2.x, as funções de implantação foram movidas do subcaminho chaincode para o subcaminho channel. Para obter mais informações, consulte APIs Novas, Alteradas e Obsoletas na documentação da API REST.

Como o Hyperledger Fabric v2.x inclui um novo ciclo de vida de chaincode com novos procedimentos para instalar chaincode em pares e iniciá-lo em um canal, talvez seja necessário atualizar qualquer chamada de API relacionada. Para obter mais informações, consulte Ciclo de Vida do Código de Cadeia.