0

我有一个问题,使用fabric-sdk-go安装链码时总是出现grpcs超时。GRCPS 请求是从本地机器向其 docker 容器发出的。

错误消息:

lscc.getinstalledchaincodes failed: SendProposal failed: Transaction processing for endorser [localhost:7051]: Endorser Client Status Code: (2) CONNECTION_FAILED。说明:拨号连接超时 [localhost:7051]

环境:

Mac OSX

码头工人版本:18.03.1-ce

docker-compose 版本 1.21.1,构建 5a3f1a3

fabric-sdk-go: 大师

本地fabric网络由官方fabric-ca示例搭建。

docker-compose.yaml:要点

本地网络-config.yaml:要点

客户端应用程序:Gist

我的 network-config.yaml 有什么问题吗???

我试过的:

  1. 试图在 docker-compose.yaml 中禁用 CORE_PEER_TLS_CLIENTAUTHREQUIRED,失败..

  2. 使用 127.0.0.1 peer1-xiaoyudian... 行编辑 /etc/hosts 文件,失败..

  3. 在 network-config.yaml 中增加 peer.timeout.connections 和其他超时选项,失败..

  4. 增加 network-config.yaml 中的 grpcOptions.keep-alive-time,失败..

  5. 将 peers.xxxx.url 的主机从 localhost 更改为 network-config.yaml 中的域,失败...

  6. 在 network-config.yaml 中添加了 entityMathcers,失败...

  7. 失败的....

答:rocket.chat 的某个人告诉我:

  1. 运行:导出 GRPC_GO_LOG_SEVERITY_LEVEL=error
  2. 运行:导出 GRPC_GO_LOG_VERBOSITY_LEVEL=2
  3. 在客户端代码中添加这一行:grpclog.SetLogger(logger)

日志说这是与同行握手的证书问题。

4

2 回答 2

1

您可以尝试将 localhost 更改为网络中的域。例如:with peer: localhost -> peer1-xiaoyudian... with orderer: localhost -> orderer1-themis... 与 ca 相同,并使用实体匹配器将 peer name、orderer、ca 映射到您的 IP 地址。

于 2018-06-12T01:44:15.473 回答
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与实际对等名称相同。实体匹配器不会在这里发挥作用。请参阅上面给出的示例中使用的实体匹配器。

于 2018-06-12T17:15:44.963 回答