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

无网络环境下执行composer network upgrade报RESOURCE_EXHAUSTED错误

解决无网环境下 Composer Network Upgrade 失败问题(搭配 Verdaccio 私有源)

作为经常处理Hyperledger Composer离线部署的开发者,我来帮你一步步排查和解决这个问题——毕竟在无网环境下用私有源,很多坑都藏在配置细节里:

1. 先确认 Verdaccio 是否真的接管了所有依赖拉取

Composer的network命令执行时,可能会绕过你以为的全局配置去拉取依赖,所以先做这几个检查:

  • 执行 npm config get registry,确认输出是你的Verdaccio地址(比如http://your-verdaccio-ip:4873/)
  • 查看项目根目录下有没有.npmrc文件,如果有,里面的registry必须和全局配置一致,避免局部配置覆盖全局设置
  • 登录Verdaccio的Web管理界面(默认是4873端口),搜索composer-cli、composer-admin以及你业务网络的所有依赖包,确认它们都已经被缓存到私有源里了

2. 给 Upgrade 命令显式指定私有源参数

Composer 0.19.0的network upgrade命令默认会走官方npm源,就算你全局配置了私有源也可能不生效,所以必须显式加上--npm-registry参数:

composer network upgrade -c admin@your-network -n your-network -V 1.0.1 --npm-registry http://your-verdaccio-ip:4873/

记得把-V后面的版本号替换成你要升级的实际版本,admin@your-network和your-network替换成你的身份和网络名称。

3. 清理本地缓存,避免残留的公网依赖记录

无网环境下,本地缓存里可能还存着指向公网的依赖信息,导致命令还是尝试去外网拉取:

  • 清理npm缓存:npm cache clean --force
  • 清理Composer的本地缓存:composer clear cache(注意这是Hyperledger Composer的缓存,不是PHP的Composer工具)
  • 删除项目目录下的node_modules和package-lock.json,然后重新从私有源安装依赖:npm install --registry http://your-verdaccio-ip:4873/

4. 检查 Verdaccio 的配置和包完整性

有时候私有源的权限设置或者缓存的包不完整,也会导致升级失败:

  • 打开Verdaccio的配置文件(默认路径是~/.config/verdaccio/config.yaml),检查packages部分的配置是否允许所有包的拉取:
    packages:
      '@*/*':
        access: $all
        publish: $authenticated
        proxy: npmjs
      '**':
        access: $all
        publish: $authenticated
        proxy: npmjs
    
    由于你的环境无网,proxy: npmjs这个配置其实没用,你需要提前在有网环境下把所有需要的依赖包上传到Verdaccio(可以用npm publish命令,或者通过Web界面手动上传)
  • 核对你业务网络package.json里的依赖版本,确保这些版本在Verdaccio中都存在,没有版本不匹配的情况

5. 排查 Hyperledger Fabric 网络本身的问题

有时候升级失败和npm源无关,是Fabric网络的问题:

  • 用docker ps检查Peer、Orderer等容器是否都正常运行
  • 用composer identity list -c admin@your-network确认admin用户的证书有效,且拥有足够的权限执行升级操作

如果以上步骤都试过还是失败,建议加上-d参数开启调试模式重新执行命令,拿到详细的错误日志:

composer network upgrade -c admin@your-network -n your-network -V 1.0.1 --npm-registry http://your-verdaccio-ip:4873/ -d

调试日志会明确告诉你是哪个依赖拉取失败,还是Fabric网络的某个环节出了问题,这样就能精准定位了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:40:47