Hyperledger Explorer在AWS Hyperledger Fabric 1.0实例上安装失败求助
我之前在AWS的Ubuntu服务器(终端标识:ubuntu@ip-172-31-2-180:~/...)上给Hyperledger Fabric 1.0部署Hyperledger Explorer时,也碰到过执行npm run test报错的情况。结合官方步骤和踩坑经验,给你整理几个实用的排查方向:
先确认依赖安装的完整性
很多测试报错都是因为依赖安装不彻底导致的。你可以先进入报错的目录(比如blockchain-explorer/app/test或者blockchain-explorer/client/),删除旧的依赖文件后重新安装:rm -rf node_modules package-lock.json npm install如果安装过程中出现权限警告,Ubuntu下可以尝试加
--unsafe-perm参数绕过权限限制:npm install --unsafe-perm。核对Node.js和npm的版本兼容性
Hyperledger Explorer 1.x对Node.js版本有严格要求,一般需要Node.js 8.x到10.x区间的版本(具体看你用的Explorer版本对应的文档)。你可以用下面的命令查看当前版本:node -v npm -v版本不符的话,推荐用nvm来切换版本,比如安装nvm后执行:
nvm install 10.24.1 nvm use 10.24.1聚焦具体的错误日志
执行npm run test时,终端会输出详细的错误信息,一定要重点关注这些内容:- 如果是
Cannot find module 'xxx',说明对应依赖包没装全,回到上一步重新安装依赖; - 如果是测试用例连接Fabric失败,要检查Fabric网络是否正常运行,以及Explorer配置文件(比如
config.json)里的peer地址、证书路径、组织信息是否和你的Fabric实例匹配。
- 如果是
检查Fabric网络的运行状态
Explorer的测试用例需要连接到正常运行的Fabric网络,先确认你的Fabric 1.0实例容器都在运行:docker ps看看peer、orderer、CA这些核心容器是否都处于
Up状态,要是有容器没启动,先把Fabric网络恢复正常再跑测试。排查文件权限问题
Ubuntu非root用户经常会遇到权限不足的问题,比如无法创建测试日志、无法访问Fabric证书目录。你可以尝试给Explorer目录赋予足够的权限:sudo chmod -R 755 blockchain-explorer/或者执行测试命令时加上
--unsafe-perm:npm run test --unsafe-perm。考虑跳过测试直接构建
如果测试用例是因为你的Fabric网络拓扑和官方示例不一致导致的失败,其实可以先跳过测试,直接执行构建命令完成部署:npm run build之后再手动验证Explorer是否能正常连接并展示Fabric网络数据。
内容的提问来源于stack exchange,提问作者Nikhil Khedkar

