I am trying to deploy a Java chaincode on Hyperledger Fabric using the test network (fabric_test). My Java project is a Maven project and java version used is 11. I am running Hyperledger Fabric version 2.5.4 or 2.5.10
The chaincode I am deploying is based on the examples from the Hyperledger Fabric GitHub repository:
fabric-samples/asset-transfer-basic
fabric-chaincode-java/examples
I am following deployment process described in the Hyperledger Fabric Docs
- .5/deploy_chaincode.html:
- Packaging the chaincode
- Installing it on both organizations (
Org1
andOrg2
) - Approving it for each organization
All these steps succeeds. However, during the commit phase, the monitoring fabric_test gives following error in the logs:
dev-peer01.example-mychaincodejava-4e5..|Thread[main,5,main] 08:23:25:895 INFO org.hyperledger.fabric.contract.ContractRouter main Starting chaincode as client
dev-peer01.example-mychaincodejava-4e5..|Thread[main,5,main] 08:23:26:451 SEVERE org.hyperledger.fabric.contract.ContractRouter startRouting Address types of NameResolver 'unix' for 'peer01.example:7052' not supported by transport
dev-peer01.example-mychaincodejava-4e5..|java.lang.IllegalArgumentException: Address types of NameResolver 'unix' for 'peer01.example:7052' not supported by transport
dev-peer01.example-mychaincodejava-4e5..| at io.grpc.internal.ManagedChannelImplBuilder.getNameResolverProvider(ManagedChannelImplBuilder.java:849)
dev-peer01.example-mychaincodejava-4e5..| at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:699)
dev-peer01.example-mychaincodejava-4e5..| at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:272)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.shim.impl.ChaincodeSupportClient.<init>(ChaincodeSupportClient.java:40)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.shim.ChaincodeBase.connectToPeer(ChaincodeBase.java:178)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.contract.ContractRouter.startRouting(ContractRouter.java:100)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.contract.ContractRouter.main(ContractRouter.java:177)
dev-peer01.example-mychaincodejava-4e5..|
dev-peer01.example-mychaincodejava-4e5..|Exception in thread "main" org.hyperledger.fabric.contract.ContractRuntimeException: Unable to start routing
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.contract.ContractRouter.startRouting(ContractRouter.java:103)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.contract.ContractRouter.main(ContractRouter.java:177)
dev-peer01.example-mychaincodejava-4e5..|Caused by: java.lang.IllegalArgumentException: Address types of NameResolver 'unix' for 'peer01.example:7052' not supported by transport
dev-peer01.example-mychaincodejava-4e5..| at io.grpc.internal.ManagedChannelImplBuilder.getNameResolverProvider(ManagedChannelImplBuilder.java:849)
dev-peer01.example-mychaincodejava-4e5..| at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:699)
dev-peer01.example-mychaincodejava-4e5..| at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:272)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.shim.impl.ChaincodeSupportClient.<init>(ChaincodeSupportClient.java:40)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.shim.ChaincodeBase.connectToPeer(ChaincodeBase.java:178)
dev-peer01.example-mychaincodejava-4e5..| at org.hyperledger.fabric.contract.ContractRouter.startRouting(ContractRouter.java:100)
dev-peer01.example-mychaincodejava-4e5..| ... 1 more
peer02.example|2025-02-08 08:23:27.664 UTC 006e WARN [lifecycle] Work -> could not launch chaincode 'mychaincodejava:445e6ee3ddad97b25c131663cb0549bfe9625622e83577fc8c191e079f840fc1': chaincode registration failed: container exited with 1
peer01.example|2025-02-08 08:23:27.664 UTC 0077 WARN [lifecycle] Work -> could not launch chaincode 'mychaincodejava:445e6ee3ddad97b25c131663cb0549bfe9625622e83577fc8c191e079f840fc1': chaincode registration failed: container exited with 1
I did these followings to try resolving it:
- Checked connectivity: The peers can communicate with each other, and all containers are running before the commit step. Using telnet tried the connectivity:
telnet peer01.example 7052
and telnet 172.18.0.8 7052
, with IP address it gets connected but with domain name it does not.
Verified chaincode environment variables: The chaincode is using the correct peer addresses (peer01.example:7052 and peer02.example:9052). I checked the yaml files for the test-network, its the same what's given in the GitHub of fabric-samples.
Looked into Docker network issues: Inspected the docker network
fabric_test
, all peer appears to be in this network with proper name.