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

多组织环境下Hyperledger Composer REST Server Peer连接失败问题

Hyperledger Composer REST Server 多组织环境下无法连接Peer的问题排查与解决

我来帮你梳理下这个问题的排查方向和可能的解决方案,你遇到的No peers available to query错误通常是REST Server无法和Peer节点建立网络连接,或者使用的卡片配置有问题导致的。

你的问题场景与关键信息

你在Hyperledger Composer多组织部署环境中,尝试搭建集成Google OAuth2.0的持久化REST Server,遵循官方教程配置后,执行Docker启动命令时出现连接失败,容器日志报错:

Error trying to ping. Error: No peers available to query. last error was Error: 14 UNAVAILABLE: Connect Failed

你使用的启动命令:

docker run -d -e COMPOSER_CARD=${COMPOSER_CARD} -e COMPOSER_NAMESPACES=${COMPOSER_NAMESPACES} -e COMPOSER_AUTHENTICATION=${COMPOSER_AUTHENTICATION} -e COMPOSER_MULTIUSER=${COMPOSER_MULTIUSER} -e COMPOSER_PROVIDERS="${COMPOSER_PROVIDERS}" -e COMPOSER_DATASOURCES="${COMPOSER_DATASOURCES}" -v ~/.composer:/home/composer/.composer --name rest --network composer_default -p 3001:3001 org1/composer-rest-server

容器核心日志片段:

[2018-05-13 02:38:15] PM2 log: Launching in no daemon mode
[2018-05-13 02:38:16] PM2 log: Starting execution sequence in -fork mode- for app name:composer-rest-server id:0
[2018-05-13 02:38:16] PM2 log: App name:composer-rest-server id:0 online
WARNING: NODE_APP_INSTANCE value of '0' did not match any instance config file names.
WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode
Discovering types from business network definition ...
Connection fails: Error: Error trying to ping. Error: No peers available to query. last error was Error: 14 UNAVAILABLE: Connect Failed
It will be retried for the next request.
Exception: Error: Error trying to ping. Error: No peers available to query. last error was Error: 14 UNAVAILABLE: Connect Failed
Error: Error trying to ping. Error: No peers available to query. last error was Error: 14 UNAVAILABLE: Connect Failed
    at _checkRuntimeVersions.then.catch (/home/composer/.npm-global/lib/node_modules/composer-rest-server/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:790:34)
    at <anonymous>
[2018-05-13 02:38:29] PM2 log: App [composer-rest-server] with id [0] and pid [14], exited with code [1] via signal [SIGINT]

当前运行的Docker容器列表:

233938f12ef0   org1/composer-rest-server   "pm2-docker composer…"   30 minutes ago   Up 30 minutes   3000/tcp, 0.0.0.0:3001->3001/tcp   rest
6285853fdceb   dev-peer1.org1.example.com-emcs-0.0.3-b1bb3a7f1090c0d1cabf10340188aa72e329e1266595f63d232d9cc38a0ed8b8   "/bin/sh -c 'cd /usr…"   About an hour ago   Up About an hour   dev-peer1.org1.example.com-emcs-0.0.3
1a4f7680cac9   dev-peer0.org1.example.com-emcs-0.0.3-094e3600469176994df7048ec5afad4114ce5203fe267b0c45da52a3d3b9e0b7   "/bin/sh -c 'cd /usr…"   About an hour ago   Up About an hour   dev-peer0.org1.example.com-emcs-0.0.3
b7c7364c88bd   dev-peer0.org2.example.com-emcs-0.0.3-3f76658cf8352417e15be589ed41aa0fa81e702a1bdb6e7e1ce898a015fdd34c   "/bin/sh -c 'cd /usr…"   About an hour ago   Up About an hour   dev-peer0.org2.example.com-emcs-0.0.3
b154cd4f50bd   dev-peer1.org2.example.com-emcs-0.0.3-340eb1dbb0152185d068724d637848c882bd3754f7c9888d57c80bdfb6530774   "/bin/sh -c 'cd /usr…"   About an hour ago   Up About an hour   dev-peer1.org2.example.com-emcs-0.0.3
f9d2a72fde40   dev-peer1.org2.example.com-mycc-1.0-26c2ef32838554aac4f7ad6f100aca865e87959c9a126e86d764c8d01f8346ab   "chaincode -peer.add…"   2 hours ago   Up 2 hours   dev-peer1.org2.example.com-mycc-1.0
d812bef3a1bd   dev-peer0.org1.example.com-mycc-1.0-384f11f484b9302df90b453200cfb25174305fce8f53f4e94d45ee3b6cab0ce9   "chaincode -peer.add…"   2 hours ago   Up 2 hours   dev-peer0.org1.example.com-mycc-1.0
ccb70e752d7b   dev-peer0.org2.example.com-mycc-1.0-15b571b3ce849066b7ec74497da3b27e54e0df1345daff3951b94245ce09c42b   "chaincode -peer.add…"   2 hours ago   Up 2 hours   dev-peer0.org2.example.com-mycc-1.0
6989f8850296   hyperledger/fabric-tools   "/bin/bash -c './scr…"   2 hours ago   Up 2 hours   cli
0eabbd6be684   hyperledger/fabric-peer   "peer node start"   2 hours ago   Up 2 hours   0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp   peer1.org2.example.com
d8c1146a5989   hyperledger/fabric-peer   "peer node start"   2 hours ago   Up 2 hours   0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp   peer1.org1.example.com
142aeb4525ab   hyperledger/fabric-peer   "peer node start"   2 hours ago   Up 2 hours   0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp   peer0.org2.example.com
70ef571ea1ba   hyperledger/fabric-peer   "peer node start"   2 hours ago   Up 2 hours   0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp   peer0.org1.example.com
31c8417beae2   hyperledger/fabric-ca   "sh -c 'fabric-ca-se…"   2 hours ago   Up 2 hours   0.0.0.0:8054->7054/tcp   ca_peerOrg2
ade3061fc517   hyperledger/fabric-orderer   "orderer"   2 hours ago   Up 2 hours   0.0.0.0

排查与解决方案

1. 优先验证COMPOSER_CARD的有效性

这是最常见的问题根源:

  • 先在本地执行composer network ping -c ${COMPOSER_CARD},确认这个卡片能正常连接到Peer节点。如果本地都ping不通,容器里肯定也无法连接。
  • 多组织环境下,你使用的是org1/composer-rest-server镜像,所以卡片必须是org1的有效卡片,包含org1 Peer的正确地址、证书和私钥,不能用org2的卡片。
  • 检查卡片中的Peer地址:在Docker网络内部,必须使用容器的主机名+内部端口(比如grpcs://peer0.org1.example.com:7051),而不是宿主机的IP+映射端口(比如grpcs://localhost:7051),因为容器内的localhost指向自身,不是宿主机。

2. 检查Docker网络的连通性

  • 确认Peer节点和REST Server容器在同一个Docker网络中:执行docker inspect peer0.org1.example.com | grep -A5 Networks,看Peer是否加入了composer_default网络(你的REST Server用的是这个网络)。
  • 如果Peer不在这个网络,需要把REST Server容器加入到Peer所在的网络,或者调整Peer的网络配置。
  • 手动测试容器内的Peer连通性:进入REST Server容器docker exec -it rest bash,然后执行ping peer0.org1.example.com,如果ping不通,说明网络DNS解析有问题,需要检查Docker网络的配置。

3. 验证证书挂载与权限

  • 确认~/.composer目录正确挂载到容器的/home/composer/.composer:进入容器后执行ls /home/composer/.composer/cards,看是否存在你指定的卡片文件。
  • 检查卡片对应的证书文件是否有权限访问,确保容器内的composer用户能读取这些文件(通常挂载目录的权限会自动继承,但若有特殊权限配置可能出问题)。

4. 排除OAuth2配置干扰

有时候OAuth2的配置错误会导致REST Server初始化失败,进而影响Peer连接:

  • 暂时去掉OAuth2相关的环境变量(COMPOSER_AUTHENTICATION、COMPOSER_MULTIUSER、COMPOSER_PROVIDERS),启动一个不带认证的REST Server,看是否能正常连接Peer。
  • 如果不带认证能正常运行,再逐步添加OAuth2的配置,排查是否是JSON格式错误或者参数配置不当导致的问题。

5. 检查Peer节点的状态

虽然容器列表显示Peer都是Up状态,但可以进入CLI容器验证Peer的可用性:

  • 进入CLI容器docker exec -it cli bash,然后执行peer channel list,看Peer是否已经加入了对应的业务网络通道,并且能正常和Orderer通信。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:39:49