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

如何修复Hyperledger Fabric应用中的"Error:14 UNAVAILABLE: TCP Write failed"错误

解决Hyperledger Fabric应用TCP Write/Read Failed事件监听问题

看起来你的交易其实已经成功上链了,只是前端的事件监听环节出了问题导致没收到反馈。结合你用的Ubuntu 18.04环境,我给你几个针对性的排查方案:

1. 检查Event Hub的端口映射与连接地址

这个报错直接指向eventhub,大概率是应用和Fabric Peer的事件端口连接不畅:

  • 打开项目的docker-compose.yaml文件,找到Peer服务的配置,确认是否有**7053端口(默认事件端口)**的主机映射,比如:
    ports:
      - "7051:7051"
      - "7053:7053"  # 这个是事件监听端口,必须映射到主机
    
    如果没有就加上,然后重启Fabric容器:docker-compose down -v && docker-compose up -d
  • 检查应用的配置文件(比如config.js),确认Event Hub的连接地址是ws://localhost:7053或者你的主机IP,而不是Docker容器的内部域名(比如peer0.org1.example.com:7053,主机可能无法解析)。

2. 调整Peer的事件监听配置

有时候Peer默认的事件监听设置会导致本地连接不稳定:

  • 在docker-compose.yaml的Peer服务命令里添加以下参数,让Peer监听所有网络地址并允许外部事件连接:
    command: peer node start
    environment:
      - CORE_PEER_EVENTS_ADDRESS=0.0.0.0:7053
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=localhost:7051
    
  • 重启Peer容器后,再测试操作。

3. 开放Ubuntu防火墙端口

Ubuntu 18.04默认的ufw防火墙可能会阻止7053端口的TCP连接:

  • 运行命令开放端口:
    sudo ufw allow 7053/tcp
    sudo ufw reload
    
  • 也可以暂时关闭防火墙测试:sudo ufw disable,如果问题消失,说明是防火墙的限制。

4. 调整应用的事件监听超时

应用的事件监听超时设置太短也会导致TCP读写失败:

  • 找到应用中创建Event Hub的代码段,调整超时参数,比如把requestTimeout从默认的30秒改成60秒:
    const eventHub = new EventHub();
    eventHub.setPeerAddr('ws://localhost:7053', {
      requestTimeout: 60000,
      sslTargetNameOverride: 'peer0.org1.example.com'
    });
    
  • 重启应用后测试。

5. 清理Docker缓存并重启所有组件

有时候是Docker容器的网络缓存问题:

  • 停止并清理所有Fabric容器和卷:
    docker-compose down -v
    docker system prune -f
    
  • 重新启动Fabric网络,再启动应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:47:21