使用 fabric-sdk-go 安装链代码时连接超时
Connection timeout when installing chaincode using fabric-sdk-go
我有一个问题,在使用 fabric-sdk-go 安装链码时总是出现 grpcs 超时。 GRCPS 请求是从本地计算机向其 docker 容器发出的。
错误消息:
lscc.getinstalledchaincodes failed: SendProposal failed: Transaction processing for endorser [localhost:7051]: Endorser Client Status Code: (2) CONNECTION_FAILED. Description: dialing connection timed out [localhost:7051]
环境:
Mac OSX
docker version: 18.03.1-ce
docker-compose version 1.21.1, build 5a3f1a3
fabric-sdk-go: master
本地结构网络由 official fabric-ca example 设置。
docker-compose.yaml: Gist
本地网络-config.yaml:Gist
客户端转到应用程序:Gist
我的网络有问题吗-config.yaml???
我试过的:
试图在 docker-compose.yaml 中禁用 CORE_PEER_TLS_CLIENTAUTHREQUIRED,失败..
编辑了 /etc/hosts 文件中的 127.0.0.1 peer1-xiaoyudian...,失败..
增加了 peer.timeout.connections 和网络中的其他超时选项-config.yaml,失败..
增加了 grpcOptions.keep-网络中的活动时间-config.yaml,失败了..
将 peers.xxxx.url 的主机从本地主机更改为网络中的域-config.yaml,失败...
在网络中添加了 entityMathcers-config.yaml,失败...
失败....
回答:
来自 rocket.chat 的人告诉我:
- run: export GRPC_GO_LOG_SEVERITY_LEVEL=error
- run: export GRPC_GO_LOG_VERBOSITY_LEVEL=2
- in the client code add this line:
grpclog.SetLogger(logger)
并且日志显示这是与同行握手的证书问题。
您可以尝试将本地主机更改为网络中的域。例如:with peer: localhost -> peer1-xiaoyudian... with orderer: localhost -> orderer1-themis... 与 ca 相同,并使用 entity matcher 将 peer name, orderer, ca 映射到你的 ip 地址。
参考https://github.com/hyperledger/fabric-sdk-go/tree/master/test/fixtures/config/overrides
了解如何覆盖 URL 以使用本地主机。在您的情况下,您必须在提供的样本中结合使用 local_entity_matchers.yaml
& local_orderers_peers_ca.yaml
。
我在您的 network-config.yaml
中还注意到一件事,映射的主机名与实际的对等名称相同。实体匹配器不会在这里启动。请参考上面给出的示例中使用的实体匹配器。
我有一个问题,在使用 fabric-sdk-go 安装链码时总是出现 grpcs 超时。 GRCPS 请求是从本地计算机向其 docker 容器发出的。
错误消息:
lscc.getinstalledchaincodes failed: SendProposal failed: Transaction processing for endorser [localhost:7051]: Endorser Client Status Code: (2) CONNECTION_FAILED. Description: dialing connection timed out [localhost:7051]
环境:
Mac OSX
docker version: 18.03.1-ce
docker-compose version 1.21.1, build 5a3f1a3
fabric-sdk-go: master
本地结构网络由 official fabric-ca example 设置。
docker-compose.yaml: Gist
本地网络-config.yaml:Gist
客户端转到应用程序:Gist
我的网络有问题吗-config.yaml???
我试过的:
试图在 docker-compose.yaml 中禁用 CORE_PEER_TLS_CLIENTAUTHREQUIRED,失败..
编辑了 /etc/hosts 文件中的 127.0.0.1 peer1-xiaoyudian...,失败..
增加了 peer.timeout.connections 和网络中的其他超时选项-config.yaml,失败..
增加了 grpcOptions.keep-网络中的活动时间-config.yaml,失败了..
将 peers.xxxx.url 的主机从本地主机更改为网络中的域-config.yaml,失败...
在网络中添加了 entityMathcers-config.yaml,失败...
失败....
回答: 来自 rocket.chat 的人告诉我:
- run: export GRPC_GO_LOG_SEVERITY_LEVEL=error
- run: export GRPC_GO_LOG_VERBOSITY_LEVEL=2
- in the client code add this line: grpclog.SetLogger(logger)
并且日志显示这是与同行握手的证书问题。
您可以尝试将本地主机更改为网络中的域。例如:with peer: localhost -> peer1-xiaoyudian... with orderer: localhost -> orderer1-themis... 与 ca 相同,并使用 entity matcher 将 peer name, orderer, ca 映射到你的 ip 地址。
参考https://github.com/hyperledger/fabric-sdk-go/tree/master/test/fixtures/config/overrides
了解如何覆盖 URL 以使用本地主机。在您的情况下,您必须在提供的样本中结合使用 local_entity_matchers.yaml
& local_orderers_peers_ca.yaml
。
我在您的 network-config.yaml
中还注意到一件事,映射的主机名与实际的对等名称相同。实体匹配器不会在这里启动。请参考上面给出的示例中使用的实体匹配器。