Hyperledger Composer启动网络失败:资源耗尽与grpc安装错误
解决Hyperledger Composer业务网络启动失败及grpc依赖安装问题
我来帮你搞定这个问题!从你给出的错误日志来看,核心问题出在chaincode中的grpc依赖安装失败,导致peer节点无法正常加载chaincode,最终触发了RESOURCE_EXHAUSTED(资源耗尽)的通信错误。下面是一步步的排查和解决方法:
1. 修复grpc依赖安装失败问题
从peer的Docker日志可以看到,grpc@1.11.3的安装脚本因为node-pre-gyp的bug执行失败,这是旧版本node-pre-gyp和node v8.9.4兼容性不佳导致的:
- 如果你是本地开发chaincode,进入chaincode的根目录,升级
node-pre-gyp到最新稳定版:npm install node-pre-gyp@latest --save-dev - 或者,考虑更换更兼容的Node.js版本:node v8.9.4较老,建议升级到v8.x系列的LTS最终版(v8.17.0),或者直接切换到v10.x的LTS版本,这些版本对grpc的支持更稳定。
2. 清理npm缓存并重新安装依赖
缓存损坏也可能导致依赖安装异常,执行以下操作重置依赖:
- 清理npm缓存:
npm cache clean --force - 删除chaincode目录下的
node_modules文件夹和package-lock.json文件 - 重新安装所有依赖:
npm install
确保安装过程中没有报错,grpc依赖能正常完成安装。
3. 检查并调整peer节点的资源限制
RESOURCE_EXHAUSTED错误也可能是peer节点的CPU/内存资源不足,无法处理chaincode的加载请求:
- 查看peer容器的资源使用情况:
观察对应的peer容器是否CPU或内存占用接近上限。docker stats - 如果资源不足,调整Docker容器的资源分配:编辑你的
docker-compose.yml文件,给peer节点增加资源限制(示例):peer0.org1.example.com: deploy: resources: limits: memory: 2G cpus: '1.0' - 重启peer容器使配置生效:
docker-compose restart peer0.org1.example.com
4. 重新启动Hyperledger Composer业务网络
在解决上述问题后,重新执行业务网络的停止、安装和启动操作:
- 停止现有网络:
composer network stop -c admin@your-network-name - 重新安装业务网络包:
composer network install -c admin@your-network-name -a your-network.bna - 启动业务网络:
composer network start -c admin@your-network-name -n your-network-name -V 0.0.1 -A admin -S adminpw
记得把命令中的your-network-name、your-network.bna、版本号和密码替换成你实际的信息。
内容的提问来源于stack exchange,提问作者Roshi
相关产品推荐
相关产品推荐

