You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyperledger Fabric Java链码部署失败:NameResolver 'unix'地址类型不被支持

Hyperledger Fabric Java链码提交阶段失败问题排查

环境信息

  • Hyperledger Fabric版本:2.5.4 / 2.5.10
  • Java版本:11
  • 项目类型:Maven工程
  • 链码基础:基于官方资产转移Java链码及Fabric合约Maven示例
  • 部署网络:fabric_test双组织测试网络(Org1、Org2)

部署流程与前置状态

已按官方部署流程完成以下步骤且全部成功:

  1. 链码打包
  2. 在Org1、Org2两个组织上安装链码
  3. 为两个组织完成链码审批

提交前执行就绪状态检查命令:

peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name mychaincodejava --version 1.0 --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" --output json

注:${PWD}指向test-network文件夹

检查输出结果:

{
    "Approvals": {
        "Org1MSP": true,
        "Org2MSP": true
    }
}

执行链码提交命令:

peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name mychaincodejava --version 1.0 --sequence 1 --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt"

提交阶段错误信息

执行提交命令后,通过./monitordocker.sh fabric_test监控到以下错误:

dev-peer0.org1.example.com-mychaincodejava-4e5..|Thread[main,5,main] 08:23:25:895 INFO    org.hyperledger.fabric.contract.ContractRouter main                              Starting chaincode as client
dev-peer0.org1.example.com-mychaincodejava-4e5..|Thread[main,5,main] 08:23:26:451 SEVERE  org.hyperledger.fabric.contract.ContractRouter startRouting                      Address types of NameResolver 'unix' for 'peer0.org1.example.com:7052' not supported by transport
dev-peer0.org1.example.com-mychaincodejava-4e5..|java.lang.IllegalArgumentException: Address types of NameResolver 'unix' for 'peer0.org1.example.com:7052' not supported by transport
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at io.grpc.internal.ManagedChannelImplBuilder.getNameResolverProvider(ManagedChannelImplBuilder.java:849)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:699)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:272)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.shim.impl.ChaincodeSupportClient.<init>(ChaincodeSupportClient.java:40)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.shim.ChaincodeBase.connectToPeer(ChaincodeBase.java:178)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.contract.ContractRouter.startRouting(ContractRouter.java:100)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.contract.ContractRouter.main(ContractRouter.java:177)
dev-peer0.org1.example.com-mychaincodejava-4e5..|
dev-peer0.org1.example.com-mychaincodejava-4e5..|Exception in thread "main" org.hyperledger.fabric.contract.ContractRuntimeException: Unable to start routing
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.contract.ContractRouter.startRouting(ContractRouter.java:103)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.contract.ContractRouter.main(ContractRouter.java:177)
dev-peer0.org1.example.com-mychaincodejava-4e5..|Caused by: java.lang.IllegalArgumentException: Address types of NameResolver 'unix' for 'peer0.org1.example.com:7052' not supported by transport
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at io.grpc.internal.ManagedChannelImplBuilder.getNameResolverProvider(ManagedChannelImplBuilder.java:849)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:699)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:272)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.shim.impl.ChaincodeSupportClient.<init>(ChaincodeSupportClient.java:40)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.shim.ChaincodeBase.connectToPeer(ChaincodeBase.java:178)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   at org.hyperledger.fabric.contract.ContractRouter.startRouting(ContractRouter.java:100)
dev-peer0.org1.example.com-mychaincodejava-4e5..|   ... 1 more
peer0.org2.example.com|2025-02-08 08:23:27.664 UTC 006e WARN [lifecycle] Work -> could not launch chaincode 'mychaincodejava:4e5e6ee3ddad97b25c131663cb0549bfe9625622e83577fc8c191e079f840fc1': chaincode registration failed: container exited with 1
peer0.org1.example.com|2025-02-08 08:23:27.664 UTC 0077 WARN [lifecycle] Work -> could not launch chaincode 'mychaincodejava:4e5e6ee3ddad97b25c131663cb0549bfe9625622e83577fc8c191e079f840fc1': chaincode registration failed: container exited with 1

已尝试的排查步骤

  • 连通性检查:提交前所有容器运行正常,节点间可通信。telnet peer0.org1.example.com 7052无法连接,但telnet 172.18.0.8 7052可连接。
  • 链码环境变量验证:链码配置的节点地址(peer0.org1.example.com:7052、peer0.org2.example.com:9052)正确,test-network的yaml配置与官方示例一致。
  • Docker网络排查:确认所有节点均处于fabric_test网络内,容器名称配置正确。

内容的提问来源于stack exchange,提问作者minteck ui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:02:09