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

实例化链码时遭遇Error: error endorsing chaincode错误,请求技术支持

解决链码实例化时的"transport is closing"错误

我来帮你分析下这个困扰你的链码实例化错误——rpc error: code = Unavailable desc = transport is closing,这类问题通常和Peer与Orderer的网络连通性、TLS配置,或者链码容器的启动状态有关。结合你给出的操作步骤,我整理了几个关键的排查方向:

1. 先确认Peer与Orderer的网络是否连通

  • 在出现错误的Peer节点上,用telnet orderer0.andyke.com 7050或者nc -zv orderer0.andyke.com 7050测试端口是否能正常打通。如果不通,大概率是防火墙拦截、路由配置错误或者域名解析出了问题,得先把网络可达性解决掉。
  • 同时检查Orderer节点的服务状态,看看Orderer日志里有没有连接拒绝、TLS握手失败这类报错,确认Orderer本身是否在正常运行。

2. 验证TLS证书配置是否正确

你的实例化命令用了--tls和--cafile $ORDERER_CA,这里要注意几个点:

  • 确认$ORDERER_CA环境变量指向的确实是Orderer节点的根CA证书,文件路径要正确,并且Peer节点有读取权限。
  • 检查Peer节点core.yaml里的TLS配置,比如peer.tls.enabled是否开启、peer.tls.rootcert.file是否指向正确的CA证书,要保证和Orderer的TLS配置兼容。
  • 可以临时做个测试:关闭TLS(修改Peer和Orderer的配置后重启服务),用不带--tls和--cafile的命令重新实例化,如果能成功,就说明问题出在TLS配置上。

3. 再次确认链码安装状态与容器启动情况

虽然你说已经在所有Peer上安装了链码,但还是要仔细核对:

  • 在每个Peer节点上执行peer chaincode list --installed,确保tester链码的2.0版本存在,并且所有Peer上的链码哈希值一致(哈希不一致会导致背书失败)。
  • 链码实例化时会自动启动链码容器,用docker ps -a查看Peer节点的容器列表,看看有没有tester相关的容器启动失败。如果有,用docker logs <容器ID>查看容器日志,里面通常会有链码初始化失败的具体原因。

4. 检查通道配置与背书策略

你的背书策略是"AND ('BankoneMSP.peer','BanktwoMSP.peer')",这里要确认:

  • onetwochannel通道里确实包含了BankoneMSP和BanktwoMSP两个组织,并且这两个组织的所有Peer都已经成功加入通道(用peer channel list可以查看)。
  • 背书策略的语法是否正确,比如引号嵌套有没有问题,MSP名称是否和实际配置完全一致(大小写、拼写都不能错)。

5. 深挖Peer和Orderer的日志细节

从你提供的日志截图里,重点找这些信息:

  • Peer日志里有没有与Orderer建立连接失败、TLS握手错误,或者链码启动超时的记录。
  • Orderer日志里有没有拒绝Peer连接、通道配置验证失败的内容。

如果以上步骤还是没解决问题,可以检查下Peer节点的资源使用情况(比如CPU、内存是不是不够,导致链码容器启动不起来),或者提供更详细的日志片段来进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 17:57:49