Hyperledger fabric 从客户端发送查询请求时出错:没有可用于查询的对等方
从客户端发送查询请求时,我收到以下错误Hyperledger fabric 从客户端发送查询请求时出错:没有可用于查询的对等方,hyperledger-fabric,blockchain,hyperledger,Hyperledger Fabric,Blockchain,Hyperledger,从客户端发送查询请求时,我收到以下错误 FabricError: No peers available to query. Errors: ["Failed to connect before the deadline URL:grpcs://localhost:12051","Failed to connect before the deadline URL:grpcs://localhost:11051"]. 下面是我的connection-org3.json连接配置文件的一部分 "
FabricError: No peers available to query. Errors: ["Failed to connect before the deadline
URL:grpcs://localhost:12051","Failed to connect before the deadline
URL:grpcs://localhost:11051"].
下面是我的connection-org3.json
连接配置文件的一部分
"organizations": {
"Org3": {
"mspid": "Org3MSP",
"peers": [
"peer0.org3.bc4scm.de",
"peer1.org3.bc4scm.de"
],
"certificateAuthorities": [
"ca.org3.bc4scm.de"
]
}
},
"peers": {
"peer0.org3.bc4scm.de": {
"url": "grpcs://localhost:11051",
"tlsCACerts": {
"path": "crypto-config/peerOrganizations/org3.bc4scm.de/tlsca/tlsca.org3.bc4scm.de-cert.pem"
},
"grpcOptions": {
"ssl-target-name-override": "peer0.org3.bc4scm.de"
}
},
"peer1.org3.bc4scm.de": {
"url": "grpcs://localhost:12051",
"tlsCACerts": {
"path": "crypto-config/peerOrganizations/supplier.bc4scm.de/tlsca/tlsca.org3.bc4scm.de-cert.pem"
},
"grpcOptions": {
"ssl-target-name-override": "peer1.org3.bc4scm.de"
}
}
},
"certificateAuthorities": {
"ca.org3.bc4scm.de": {
"url": "https://localhost:9054",
"caName": "ca-supplier",
"tlsCACerts": {
"path": "crypto-config/peerOrganizations/org3.bc4scm.de/tlsca/tlsca.org3.bc4scm.de-cert.pem"
},
"httpOptions": {
"verify": false
}
}
}
下面是我的docker composer文件的一部分
peer0.org3.bc4scm.de:
container_name: peer0.org3.bc4scm.de
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer0.org3.bc4scm.de
- CORE_PEER_ADDRESS=peer0.org3.bc4scm.de:11051
- CORE_PEER_LISTENADDRESS=0.0.0.0:11051
- CORE_PEER_CHAINCODEADDRESS=peer0.org3.bc4scm.de:11052
- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:11052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.bc4scm.de:12051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org3.bc4scm.de:11051
- CORE_PEER_LOCALMSPID=Org3MSP
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org3.bc4scm.de/peers/peer0.org3.bc4scm.de/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/org3.bc4scm.de/peers/peer0.org3.bc4scm.de/tls:/etc/hyperledger/fabric/tls
- peer0.org3.bc4scm.de:/var/hyperledger/production
ports:
- 11051:11051
peer1.org3.bc4scm.de:
container_name: peer1.org3.bc4scm.de
extends:
file: peer-base.yaml
service: peer-base
environment:
- CORE_PEER_ID=peer1.org3.bc4scm.de
- CORE_PEER_ADDRESS=peer1.org3.bc4scm.de:12051
- CORE_PEER_LISTENADDRESS=0.0.0.0:12051
- CORE_PEER_CHAINCODEADDRESS=peer1.org3.bc4scm.de:12052
- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:12052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org3.bc4scm.de:11051
- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org3.bc4scm.de:12051
- CORE_PEER_LOCALMSPID=Org3MSP
volumes:
- /var/run/:/host/var/run/
- ../crypto-config/peerOrganizations/org3.bc4scm.de/peers/peer1.org3.bc4scm.de/msp:/etc/hyperledger/fabric/msp
- ../crypto-config/peerOrganizations/supplier.bc4scm.de/peers/peer1.org3.bc4scm.de/tls:/etc/hyperledger/fabric/tls
- peer1.org3.bc4scm.de:/var/hyperledger/production
ports:
- 12051:12051
我从Fabcar示例中获得了这段代码,并尝试从Org3而不是Org1中的客户端进行查询。我创建了一个管理员用户,然后在此组织中成功创建了一个用户。根据我的观察,我从下面的代码行执行中得到了错误
const result = await contract.evaluateTransaction('queryAllProducts','123');
这个问题的可能原因是什么?感谢您在这方面的见解
更新:
我检查了peer0.prg3.bs4scm.de中打开的端口
root@e52992a76c3d:/opt/gopath/src/github.com/hyperledger/fabric/peer# netstat -tulpn | grep LISTEN
tcp 0 0 127.0.0.1:9443 0.0.0.0:* LISTEN 1/peer
tcp 0 0 127.0.0.11:46353 0.0.0.0:* LISTEN -
tcp6 0 0 :::11051 :::* LISTEN 1/peer
tcp6 0 0 :::6060 :::* LISTEN 1/peer
tcp6 0 0 :::11052 :::* LISTEN 1/peer
在这里,我可以看到端口11051和11052已打开并正在侦听
此外,还有一个容器用于安装链码
cd0b165e5186 dev-peer0.org3.bc4scm.de-scmlogic-1.0-9c7e776aa8a752e530f79d0b456f1bda28aac3f5db0af734be2f315d8d1a4f53 "/bin/sh -c 'cd /usr…" 48 seconds ago Up 47 seconds dev-peer0.org3.bc4scm.de-scmlogic-1.0
当我查看该对等机(peer0.org3)的日志时,我可以看到不断打印出错误日志。它正在抱怨与org1的连接
019-07-06 10:26:52.278 UTC [gossip.discovery] expireDeadMembers -> WARN 164 Exiting
2019-07-06 10:26:56.381 UTC [gossip.comm] func1 -> WARN 165 peer1.org1.bc4scm.de:8051, PKIid:42214b7584f3fabcdb84e5770c62e4cf0f7c00b2a9d0441d772925882d4457a7 isn't responsive: EOF
2019-07-06 10:26:56.381 UTC [gossip.discovery] expireDeadMembers -> WARN 166 Entering [42214b7584f3fabcdb84e5770c62e4cf0f7c00b2a9d0441d772925882d4457a7]
2019-07-06 10:26:56.381 UTC [gossip.discovery] expireDeadMembers -> WARN 167 Closing connection to Endpoint: peer1.org1.bc4scm.de:8051, InternalEndpoint: , PKI-ID: 42214b7584f3fabcdb84e5770c62e4cf0f7c00b2a
这可能是由多种原因造成的:
如果您在那里发现了问题,但无法解决,请务必告诉我。这可能是由于多种原因造成的:
如果您在那里发现了一些问题,但无法解决,请告诉我。您可以检查,即使使用浏览器(Firefox)也可以访问peer
request on firefox-localhost:11051
如果您可以看到响应,表示您的对等机可以访问,或者如果没有,则表示您的端口没有打开,然后转到docker文件并打开相同的端口,然后使用docker compose启动对等机,对您想要访问的每个对等机执行相同的操作
甚至您也可以使用以下方法检查对等方的日志-
docker logs --follow peer0.org3.bc4scm.de
更新:---
您可以检查两个对等点的核心\u对等\u八卦\u引导和核心\u对等\u八卦\u外部端点
**CORE_PEER_GOSSIP_BOOTSTRAP=<a list of peer endpoints within the peer's org>
CORE_PEER_GOSSIP_EXTERNALENDPOINT=<the peer endpoint, as known outside the org>**
for peer0.org3.bc4scm.de
CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org3.bc4scm.de:12051
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.bc4scm.de:11051
for peer1.org3.bc4scm.de :
CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org3.bc4scm.de:11051
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org3.bc4scm.de:12051
**CORE\u PEER\u GOSSIP\u BOOTSTRAP=您可以检查是否可以使用浏览器(Firefox)访问PEERrequest on firefox-localhost:11051
如果您可以看到响应,表示您的对等机可以访问,或者如果没有,则表示您的端口没有打开,然后转到docker文件并打开相同的端口,然后使用docker compose启动对等机,对您想要访问的每个对等机执行相同的操作
甚至您也可以使用以下方法检查对等方的日志-
docker logs --follow peer0.org3.bc4scm.de
更新:---
您可以检查两个对等点的核心\u对等\u八卦\u引导和核心\u对等\u八卦\u外部端点
**CORE_PEER_GOSSIP_BOOTSTRAP=<a list of peer endpoints within the peer's org>
CORE_PEER_GOSSIP_EXTERNALENDPOINT=<the peer endpoint, as known outside the org>**
for peer0.org3.bc4scm.de
CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org3.bc4scm.de:12051
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.bc4scm.de:11051
for peer1.org3.bc4scm.de :
CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org3.bc4scm.de:11051
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org3.bc4scm.de:12051
**CORE\u PEER\u GOSSIP\u BOOTSTRAP=我遇到了同样的问题,并意识到问题在于我已将“asLocalhost”属性设置为false,并试图访问位于的对等方。下面是正确设置了特性的工作线。(我从一个使用fabcar的示例中提取,这在其他方面非常好)
我也遇到了同样的问题,并意识到问题在于我将“asLocalhost”属性设置为false,并试图访问位于的对等方。下面是正确设置了特性的工作线。(我从一个使用fabcar的示例中提取,这在其他方面非常好)
您可以检查是否可以使用浏览器(Firefox)访问peer。firefox上的请求-localhost:11051如果您可以看到响应表示您的对等方可访问,或者如果不可访问,则表示您的端口未打开,然后转到docker文件并打开相同的端口,然后使用docker compose启动对等方,对您要访问的每个对等方执行相同操作。:)您可以检查是否可以使用浏览器(Firefox)访问peer。firefox上的请求-localhost:11051如果您可以看到响应表示您的对等方可访问,或者如果不可访问,则表示您的端口未打开,然后转到docker文件并打开相同的端口,然后使用docker compose启动对等方,对您要访问的每个对等方执行相同操作。:)非常感谢。我从对等容器中获取了日志并更新了我的问题。请看一看。再次感谢,谢谢。我从对等容器中获取了日志并更新了我的问题。请看一看。再次感谢,谢谢。我从对等容器中获取了日志并更新了我的问题。请看一看。再次感谢。如上文所述,检查CORE\u PEER\u Tassip\u引导和CORE\u PEER\u Tassip\u EXTERNALENDPOINT可能会对您有所帮助。谢谢。我从对等容器中获取了日志并更新了我的问题。请看一看。再次感谢。如上所述,检查CORE\u PEER\u Tassip\u引导和CORE\u PEER\u Tassip\u EXTERNALENDPOINT可能会对您有所帮助。