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.
- 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 |
---|---|
|
|
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.
/console/admin/api/v1.1/chaincodes
/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 subcaminhochaincode
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.