"Error: No valid response from any peers" when executing composer network install on custom fabric network

"Error: No valid response from any peers" when executing composer network install on custom fabric network

我目前正在为我正在处理的 Hyperledger Composer 项目设置自定义 Hyperledger Fabric 网络。

Composer 文件已经可以使用提供的开箱即用的开发结构服务器完美运行,即 ./startFabric.sh。我遵循了 tutorial 关于如何使用给定的 byfn.sh 将现有业务网络部署到多组织情况,并且网络已成功安装(composer network install ... 成功安装了 .bna 在结构网络上)。

现在我尝试修改 byfn.sh 以支持 3(三)个组织,每个组织只有一个对等体。其他文件(crypto-config.yaml, configtx.yaml, scripts/script.sh 和 docker 撰写文件)也相应修改。

script/script.sh 中的 e2e 测试实际上运行成功(直到出现 "END" ASCII 艺术),这让我认为 fabric 网络已成功设置。 docker ps 命令还 shows docker 容器是 运行.

但是,当我尝试在设置结构上执行 composer network install 时,它会输出以下内容:

$ composer network install -c PeerAdmin@example-org1 -a stockchainz.bna
✖ Installing business network. This may take a minute...
Error: Error trying install business network. Error: No valid responses from any peers.
Response from attempted peer comms was an error: Error: Failed to connect before the deadline
Command failed

为什么会出现这个错误,即使端到端测试运行良好?我怀疑 connection.json file 不知何故配置错误,因为 e2e运行得很好(“INSERT_..._CA_CERT”和 "INSERT_ORG_NAME" 已经替换为正确的值)

通过日志挖掘,我发现grpc找不到对等点。事实证明这是一个证书问题,我的怀疑是正确的。设置 GRPC_VERBOSITY=DEBUG 显示 re-executing composer network install:

时的日志
...
D0507 12:21:21.934229064   14853 security_handshaker.cc:127] Security handshake failed: {"created":"@1557231681.934207000","description":"Peer name localhost is not in peer certificate","file":"../deps/grpc/src/core/lib/security/security_connector/security_connector.cc","file_line":780}
...

connection.json 将所有对等点的 url 设置为 grpcs://localhost:<port>。而不是这个:

...
"peer0.org1.example.com": {
    "url": "grpcs://localhost:7051",
    "tlsCACerts" : {
        "pem": "INSERT_ORG1_CA_CERT"
    }
},
...

我改成了这样:

...
"peer0.org1.example.com": {
    "url": "grpcs://localhost:7051",
    "grpcOptions": {
        "ssl-target-name-override": "peer0.org1.example.com"
     },
    "tlsCACerts" : {
        "pem": "INSERT_ORG1_CA_CERT"
    }
},
...

这样做之后,业务网络存档安装成功:

$ composer network install --card PeerAdmin@example-org1 --archiveFile business-net.bna
⠋ Installing business network. This may take a minute...D0507 12:45:04.640298851   15321 dns_resolver.cc:331]        Using native dns resolver
E0507 12:45:04.640363346   15321 trace.cc:57]                Unknown trace var: 'transport_security'
⠸ Installing business network. This may take a minute...I0507 12:45:07.172482196   15321 subchannel.cc:605]          New connected subchannel at 0x2c208d0 for subchannel 0x2b83880
I0507 12:45:07.173478121   15321 subchannel.cc:605]          New connected subchannel at 0x2b10fa0 for subchannel 0x2b572f0
I0507 12:45:07.174495644   15321 subchannel.cc:605]          New connected subchannel at 0x2c0b0e0 for subchannel 0x2b5bbe0
I0507 12:45:07.176448759   15321 subchannel.cc:605]          New connected subchannel at 0x2bac9c0 for subchannel 0x2b17bc0
⠼ Installing business network. This may take a minute...I0507 12:45:07.205505423   15321 subchannel.cc:605]          New connected subchannel at 0x2d6d400 for subchannel 0x2d65330
I0507 12:45:07.206441632   15321 subchannel.cc:605]          New connected subchannel at 0x2c21970 for subchannel 0x2d69b80
⠧ Installing business network. This may take a minute...I0507 12:45:08.365612394   15321 subchannel.cc:605]          New connected subchannel at 0x2c8efa0 for subchannel 0x2b37020
I0507 12:45:08.369911016   15321 subchannel.cc:605]          New connected subchannel at 0x2bb2660 for subchannel 0x2c9d510
✔ Installing business network. This may take a minute...
Successfully installed business network business-net, version 0.1.0

Command succeeded