我遇到一个问题,即使用fabric-sdk-go安装链码时总会出现grpcs超时。 GRCPS请求是从本地机器到其docker容器。
ERRORMSG:
lscc.getinstalledchaincodes失败:SendProposal失败:endorser的事务处理[localhost:7051]:Endorser Client Status Code:(2)CONNECTION_FAILED。说明:拨号连接超时[localhost:7051]
ENV:
Mac OSX
docker version:18.03.1-ce
docker-compose版本1.21.1,build 5a3f1a3
fabric-sdk-go:master
本地结构网络由official fabric-ca example设置。
docker-compose.yaml:Gist
local network-config.yaml:Gist
客户端转到应用:Gist
我的network-config.yaml ???
有什么问题我尝试了什么:
试图在docker-compose.yaml中禁用CORE_PEER_TLS_CLIENTAUTHREQUIRED,失败..
使用127.0.0.1 peer1-xiaoyudian ......编辑/ etc / hosts文件,失败..
增加了network.config.yaml中的peer.timeout.connections和其他超时选项,失败了..
在network-config.yaml中增加了grpcOptions.keep-alive-time,失败了..
将peers.xxxx.url的主机从localhost更改为network-config.yaml中的域,失败...
在network-config.yaml中添加了entityMathcers,失败了......
...失败
答案: 来自rocket.chat的人告诉我:
- run:export GRPC_GO_LOG_SEVERITY_LEVEL = error
- run:export GRPC_GO_LOG_VERBOSITY_LEVEL = 2
- 在客户端代码中添加以下行: grpclog.SetLogger(记录器)
醇>
日志说这是与同行握手的证书问题。
答案 0 :(得分:1)
您可以尝试将localhost更改为网络中的域。例如:与peer:localhost - > peer1-xiaoyudian ... with orderer:localhost - > orderer1-themis ...与ca相同,并使用entity matcher将您的IP地址映射到对等名称,orderer,ca。
答案 1 :(得分:1)
参考https://github.com/hyperledger/fabric-sdk-go/tree/master/test/fixtures/config/overrides
如何重写URL以使用localhost。在您的情况下,您必须使用local_entity_matchers.yaml
& local_orderers_peers_ca.yaml
合并了所提供的样本。
我在network-config.yaml
注意到的另一件事,映射的主机名与实际的对等名相同。实体匹配器不会在这里踢。请参阅上面给出的示例中使用的实体匹配器。