Hyperledger Explorer启动失败:DiscoveryService返回channel1访问拒绝错误
Hyperledger Fabric Explorer启动失败排查求助
已完成部署动作
- 基于fabric-samples搭建测试网络,包含1个Orderer节点、2个分属Org1MSP、Org2MSP的Peer节点
- 成功创建并加入
channel1,完成锚节点配置 - 按官方文档配置Explorer的
docker-compose.yaml与connection-profile/test-network.json,同步crypto文件至指定目录
问题现象
启动Explorer时失败,核心报错:
[DiscoveryService]: send[channel1] - Channel:channel1 received discovery error:access denied
Peer节点日志输出两个关键错误:
- 身份验证失败:
x509: certificate signed by unknown authority(验证ca.org1.example.com证书时ECDSA签名验证不通过) - 权限策略不满足:发现查询不符合Writers子策略要求
已尝试相关排查但未解决,请求协助定位问题。
排查方向与验证步骤
1. 核对Crypto文件同步与路径配置
- 确认Explorer容器挂载的crypto目录与Fabric测试网络的crypto文件完全一致,重点检查
ca.org1.example.com/ca-cert.pem是否完整,无损坏或缺失 - 检查
connection-profile/test-network.json中certificateAuthorities下的CA证书路径,确保容器内可访问,且文件权限设置为可读(避免容器用户无读取权限)
2. 验证Explorer身份证书有效性
- 确认
connection-profile中配置的adminPrivateKey和signedCert对应Org管理员身份,而非普通用户证书 - 用openssl命令手动验证证书链:
确认输出openssl verify -CAfile ./crypto/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem ./crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pemOK,无签名验证错误
3. 检查Channel的Writers策略
- 导出channel1的配置区块并解析:
peer channel fetch config config_block.pb -o localhost:7050 -c channel1 --tls --cafile ./crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem configtxlator proto_decode --input config_block.pb --type common.Block --output config_block.json - 查看
config_block.json中channel_group.groups.Application.policies.Writers的规则,确认Explorer使用的身份是否符合策略要求(比如是否要求管理员身份)
4. 确认Docker网络连通性
- 检查Explorer容器是否加入测试网络的Docker网络(默认网络名为
test-network):docker network inspect test-network | grep <explorer容器名称> - 若未加入,需在
docker-compose.yaml中添加网络配置,指定连接到test-network
5. 核对MSP配置一致性
- 确认
connection-profile/test-network.json中的MSP ID(Org1MSP、Org2MSP)与Fabric网络配置完全一致(大小写敏感) - 检查MSP的
rootCerts路径是否指向CA根证书,而非其他中间证书
内容的提问来源于stack exchange,提问作者Hari N
相关产品推荐
相关产品推荐

