首页 > 解决方案 > Hyperledger Fabric - 在 fabcar 上查询汽车返回错误:14 不可用:连接失败

问题描述

背景

我目前正在学习 Hyperledger Fabric。因此,我在本地安装了先决条件,并尝试按照本教程了解fabcar.

问题

一切都很顺利,直到我跑了node query.js,它返回了这个错误:

Store path:/home/me/fabric-samples/fabcar/hfc-key-store
Successfully loaded user1 from persistence
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: 14 UNAVAILABLE: Connect Failed
    at new createStatusError (/home/me/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:64:15)
    at /home/me/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:583:15
Query has completed, checking results
error from query =  { Error: 14 UNAVAILABLE: Connect Failed
    at new createStatusError (/home/me/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:64:15)
    at /home/me/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:583:15
  code: 14,
  metadata: Metadata { _internal_repr: {} },
  details: 'Connect Failed' }

解决方案尝试

我已经尝试遵循类似问题的答案,尤其是这个: Hyperledger fabcar sample fabric shows connect failed ERROR

所以我跑了ifconfig(删除所有容器后):

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:b3:67:1a:ec  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp1s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether c8:d3:ff:25:43:ff  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 282  bytes 24402 (24.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 282  bytes 24402 (24.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.30  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::99eb:462:7866:d63  prefixlen 64  scopeid 0x20<link>
        ether 30:e3:7a:2c:4d:ae  txqueuelen 1000  (Ethernet)
        RX packets 419  bytes 86802 (86.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 391  bytes 64650 (64.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

localhost然后我用192.168.1.30in替换query.js

var peer = fabric_client.newPeer('grpc://192.168.1.30:7051');

invoke.js

var peer = fabric_client.newPeer('grpc://192.168.1.30:7051');
var order = fabric_client.newOrderer('grpc://192.168.1.30:7050')
event_hub.setPeerAddr('grpc://192.168.1.30:7053');

我从头开始做了所有的事情,但是在查询汽车时它产生了同样的错误。

我也尝试过这里的解决方案,但是我的 bashrc 中没有代理行,所以没有什么可评论的。

任何帮助表示赞赏。

其他信息

操作系统:Ubuntu 18.04

npm 版本:6.14.1

docker ps -a

CONTAINER ID        IMAGE                        COMMAND                  CREATED              STATUS                          PORTS                                        NAMES
63e05790822a        hyperledger/fabric-peer      "peer node start"        About a minute ago   Exited (2) About a minute ago                                                peer0.org1.example.com
5c0403f2016c        hyperledger/fabric-orderer   "orderer"                About a minute ago   Up About a minute               0.0.0.0:7050->7050/tcp                       orderer.example.com
b3875081b310        hyperledger/fabric-couchdb   "tini -- /docker-ent…"   About a minute ago   Up About a minute               4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp   couchdb
710379df45ac        hyperledger/fabric-ca        "sh -c 'fabric-ca-se…"   About a minute ago   Up About a minute               0.0.0.0:7054->7054/tcp                       ca.example.com

标签: dockerhyperledger-fabrichyperledger

解决方案


因为我不知道还能做什么,所以我删除了所有内容并从头开始,这次使用的是最新的 fabric-samples 版本(我之前没有意识到我使用的是旧版本)。之后它工作顺利,即没有遇到任何错误。


推荐阅读