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

HyperLedger启动业务网络失败求助(composer v0.19.5)

解决HyperLedger Composer启动业务网络时的npm EAI_AGAIN错误

从你给出的错误日志来看,核心问题是Docker容器内无法解析npm官方源的域名(registry.npmjs.org),导致安装业务网络依赖时失败(错误码EAI_AGAIN是DNS解析超时/失败的典型表现)。下面是针对性的解决步骤:

步骤1:检查并修改Docker的DNS配置

HyperLedger Fabric的容器默认使用主机的DNS配置,如果你的主机DNS无法正常解析外部域名,容器也会跟着出问题。你可以手动指定可靠的DNS服务器:

  • 编辑Docker的配置文件(不同系统路径不同):
    • Linux:/etc/docker/daemon.json
    • Windows/macOS:通过Docker Desktop的设置界面找到"Daemon"->"DNS"选项
  • 添加或修改DNS配置,比如使用谷歌公共DNS:
    {
      "dns": ["8.8.8.8", "8.8.4.4"]
    }
    
  • 重启Docker服务让配置生效:
    • Linux:sudo systemctl restart docker
    • Windows/macOS:在Docker Desktop里点击"Restart"按钮

步骤2:清理残留并重新部署

之前的启动失败可能留下了无效的容器或网络状态,先清理再重新操作:

  1. 停止并删除相关容器:
    docker stop $(docker ps -aq)
    docker rm $(docker ps -aq)
    
  2. 删除已经安装的业务网络:
    composer network delete -c PeerAdmin@hlfv1 -n tutorial-network -V 0.0.1
    
  3. 重新安装业务网络:
    composer network install -c PeerAdmin@hlfv1 -a tutorial-network@0.0.1.bna
    
  4. 再次尝试启动网络:
    composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card
    

步骤3:备选方案——切换npm国内镜像

如果修改DNS后还是无法访问官方源,可以在你的业务网络的package.json里指定国内的npm镜像,这样容器安装依赖时会使用国内源,更稳定:

  • 打开业务网络根目录下的package.json,添加或修改registry字段:
    {
      "name": "tutorial-network",
      "version": "0.0.1",
      "registry": "https://registry.npmmirror.com/"
      // 其他原有字段...
    }
    
  • 重新生成.bna文件:
    composer archive create -t dir -n .
    
  • 再重新执行安装和启动命令。

这些步骤应该能解决你遇到的DNS解析问题,让业务网络顺利启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:02:47