Usar os SDKs do Hyperledger Fabric para Desenvolver Aplicativos
Os SDKs do Hyperledger Fabric agora estão obsoletos. No entanto, você pode instalar e usar os SDKs do Hyperledger Fabric para desenvolver aplicativos para o Oracle Blockchain Platform.
As APIs REST fornecidas pelo Oracle Blockchain Platform foram criadas com o máximo de flexibilidade em mente; você pode chamar uma transação, chamar uma consulta ou exibir o status de uma transação. Consulte API REST para Oracle Blockchain Platform.
No entanto, essa flexibilidade significa que você provavelmente desejará encapsular os pontos finais de API existentes em um aplicativo para fornecer controle no nível do objeto. Os aplicativos podem conter operações muito mais refinadas.
Versões do SDK
Várias versões dos SDKs do Hyperledger Fabric estão disponíveis. Use a versão do SDK que corresponde à versão do Hyperledger Fabric na qual sua instância se baseia.
Instalando o Hyperledger Fabric SDK para Node.js
Informações sobre como usar o Fabric SDK para Node.js podem ser encontradas aqui: Documentação do Hyperledger Fabric SDK para Node.js
Na guia Ferramentas de Desenvolvedor, abra o painel Desenvolvimento de Aplicativos. Você pode instalar o SDK do Hyperledger Fabric Node.js usando o link nesta guia.
Instalando o Hyperledger Fabric SDK para Java
Informações sobre como usar o Fabric SDK para Java podem ser encontradas aqui: Documentação do Hyperledger Fabric SDK para Java
- Você pode instalar o Hyperledger Fabric Java SDK usando o link desta guia.
- (Hyperledger Fabric v2.x) Você deve modificar o SDK para trabalhar com o Oracle Blockchain Platform seguindo as instruções em Atualizar os SDKs do Hyperledger Fabric v2.x para Trabalhar com o Oracle Blockchain Platform.
Instale uma ferramenta de criação, como o Apache Maven.
Estruturando seu Aplicativo
Estruture seu aplicativo Java de modo semelhante ao seguinte exemplo:
/Application
/artifacts
/cypto
/orderer
Contains the certificates required for the application to act on the orderer node
In participant instances only contains TLS certificates
/peer
Contains the certificates required for the application to act on the peer node
/src
chaincode.go if installing and deploying chaincode to the blockchain
/java
pom.xml or other build configuration files
/resources
Any resources used by the Java code, including artifacts such as the endorsement policy yaml file and blockchain configuration properties
/src
Java source filesEstruture seu aplicativo Node.js semelhante ao seguinte exemplo:
/Application
/artifacts
/cypto
/orderer
Contains the certificates required for the application to act on the orderer node
In participant instances only contains TLS certificates
/peer
Contains the certificates required for the application to act on the peer node
/src
chaincode.go if installing and deploying chaincode to the blockchain
/node
package.json file
application.js
/app
Any javascript files called by the application
/tools
Executando o aplicativo
Agora você está pronto para executar e testar o aplicativo. Além de quaisquer mensagens de status retornadas pelo seu aplicativo, você pode verificar o razão na console do Oracle Blockchain Platform para ver suas alterações:
- Vá para a guia Canais na console e localize e clique no nome do canal que está executando o chaincode.
- No painel Razão do canal, exiba o resumo do razão do chaincode.
Atualize os SDKs Hyperledger Fabric v2.x para Trabalhar com o Oracle Blockchain Platform
Há uma incompatibilidade entre um componente de infraestrutura do OCI e o Java SDK fornecido com o Hyperledger Fabric v2.x. Siga as etapas deste tópico para corrigir esse problema.
Métodos de atualização do SDK do Hyperledger Fabric
Há duas maneiras de atualizar o SDK:
- Faça download do pacote modificado no console. Criamos um arquivo
grpc-netty-shaded-1.38.0.jaratualizado, que é o módulo referenciado pelo Java SDK que requer modificações. - Construa o pacote manualmente, conforme descrito neste tópico.
Para fazer download do arquivo grpc-netty-shaded-1.38.0.jar, clique na guia Ferramentas de Desenvolvedor do console e selecione o painel Desenvolvimento de Aplicativos.
Criando o pacote manualmente
Para o projeto fabric-sdk-java, conclua as etapas a seguir para reconstruir o pacote grpc-netty-shaded para conectar os pares e os solicitantes ao cliente grpcs (via TLS). O pacote grpc-netty-shaded é um subprojeto de grpc-java.
-
Instalar dependências do projeto:
mvn install -
Faça download do código-fonte
grpc-java:git clone https://github.com/grpc/grpc-java.git - Localize a versão do
grpcque ofabric-sdk-javausa e verifique o código.No diretóriogrpc-java, verifique a versão dogrpcque ofabric-sdk-javausa:cd grpc-java && git checkout v1.38.0 -
Altere o código para evitar um erro
alpnno servidor. Crie um arquivo de patchgrpc-java-patchcom o seguinte conteúdo:diff --git a/netty/src/main/java/io/grpc/netty/ProtocolNegotiators.java b/netty/src/main/java/io/grpc/netty/ProtocolNegotiators.java index 19d3e01b7..ebc4786a3 100644 — a/netty/src/main/java/io/grpc/netty/ProtocolNegotiators.java +++ b/netty/src/main/java/io/grpc/netty/ProtocolNegotiators.java @@ -611,7 +611,8 @@ final class ProtocolNegotiators { SslHandshakeCompletionEvent handshakeEvent = (SslHandshakeCompletionEvent) evt; if (handshakeEvent.isSuccess()) { SslHandler handler = ctx.pipeline().get(SslHandler.class); if (sslContext.applicationProtocolNegotiator().protocols() + if (handler.applicationProtocol() == null + || sslContext.applicationProtocolNegotiator().protocols() .contains(handler.applicationProtocol())) { // Successfully negotiated the protocol. logSslEngineDetails(Level.FINER, ctx, "TLS negotiation succeeded.", null); -
Aplicar o patch:
git apply grpc-java.patch -
Crie o projeto para gerar o pacote de patch de destino. Use gradle para criar o projeto
grpc-java-shaded:cd netty/shaded gradle build -PskipAndroid=true -PskipCodegen=trueApós a conclusão do build, o pacote
.jarcom patch de destino estará disponível emgrpc-java/netty/build/libs/grpc-netty-shaded-1.38.0.jar. -
Adicione o pacote com patch no repositório local do Maven.
Substitua o pacotegrpc-netty-shaded.jaroriginal pelo pacote corrigido de uma das duas maneiras a seguir:-
Use o Maven para instalar o pacote por arquivo local:
Você deve manter os destinosmvn install:install-file -Dfile=grpc-netty-shaded-build/grpc-netty-shaded-1.38.0.jar -DgroupId=io.grpc -DartifactId=grpc-netty-shaded -Dversion=1.38.0 -Dpackaging=jargroupid,artifactideversioniguais ao pacote que deseja substituir. -
Substitua manualmente o pacote. Vá para o repositório Maven local, localize o diretório onde o pacote de destino está localizado e substitua o pacote por um pacote com patches.
-
-
Execute o projeto.