【发布时间】:2018-08-30 14:44:15
【问题描述】:
问题:我们正试图在 多节点网络 上部署 bna,该网络在 SWARM 中运行。
我们正在使用 Hyperledger Composer 创建链码。
我们有两个虚拟机,分别是 VM1 和 VM2 VM1 和 VM2 通过 SWARM 都作为管理器 连接。 我们设置了一个名为 my-net
的 Overlay swarm 名称VM1 将这些 docker 容器全部部署在 my-net 上 - orderer.example.com - ca.example.com - peer0.org1.example.com - 沙发数据库0
VM2 在 my-net 上部署了这些 docker 容器 - peer1.org1.example.com - 沙发数据库1
现在我们的 connection.json 看起来像这样。用于创建 PeerAdmin Card。
{
"name": "hlfv1",
"x-type": "hlfv1",
"x-commitTimeout": 300,
"version": "1.0.0",
"client": {
"organization": "Org1",
"connection": {
"timeout": {
"peer": {
"endorser": "300",
"eventHub": "300",
"eventReg": "300"
},
"orderer": "300"
}
}
},
"channels": {
"composerchannel": {
"orderers": [
"orderer.example.com"
],
"peers": {
"peer0.org1.example.com": {},
"peer1.org1.example.com": {}
}
}
},
"organizations": {
"Org1": {
"mspid": "OrgMSP",
"peers": [
"peer0.org1.example.com",
"peer1.org1.example.com"
],
"certificateAuthorities": [
"ca.example.com"
]
}
},
"orderers": {
"orderer.example.com": {
"url": "grpc://<pee1IP>:7050"
}
},
"peers": {
"peer0.org1.example.com": {
"url": "grpc://<pee1IP>:7051",
"eventUrl": "grpc://<pee1IP>:7053"
},
"peer1.org1.example.com": {
"url": "grpc://<pee2IP>:8051",
"eventUrl": "grpc://<pee2IP>:8053"
}
},
"certificateAuthorities": {
"ca.example.com": {
"url": "http://<pee1IP>:7054",
"caName": "ca.example.com"
}
}
}
当我们有单个虚拟机并且我们能够在网络上成功部署 bna 时,整个事情都可以正常工作 但是当我们向 my-net 添加另一个 VM 时,我们无法在网络上安装 bna
我们认为我们无法在 connection.json 中放入正确的 IP,因此我们失败了。
注意事项: 我们能够在 Peer0 上创建通道,并且能够成功加入同一个通道中的 peer0 和 peer1。 我们确实认为这可能是 connection.json 问题,但我们无法找出错误。
这是我们在安装 BNA 时看到的错误
安装业务网络。这可能需要一分钟... 错误:错误 尝试安装业务网络。错误:没有任何有效响应 同行。来自尝试的对等通信的响应是一个错误:错误:14 不可用:连接失败
【问题讨论】:
-
根据火箭聊天 - 这个错误
Error: 14 UNAVAILABLE: Connect Failed通常会立即返回,没有明显延迟,这意味着客户端(可能是composer network install)找不到结构服务器(对等) 在 connection.json 文件中指定的地址 - 所以这看起来像是网络解析/路由错误。 -
在 swarm 模式下运行 docker 需要打开几个端口。您可以在此处找到这些参考资料:digitalocean.com/community/tutorials/…。
标签: hyperledger-fabric hyperledger docker-swarm hyperledger-composer