问题:我们正在尝试在SWARM中运行的多节点网络上部署bna。
我们正在使用Hyperledger Composer来创建链代码。
我们有两个VM,说VM1和VM2 VM1和VM2都通过SWARM连接作为管理器。我们已经设置了一个名为my-net的Overlay swarm名称
VM1将这些docker容器全部部署在my-net上 - orderer.example.com - ca.example.com - peer0.org1.example.com - couchdb0
VM2在my-net上部署了这些docker容器 - peer1.org1.example.com - couchdb1
现在我们的connection.json看起来像这样。用于创建PeerAdmin卡。
{
"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时,我们无法在网络上安装bna
我们认为我们无法在connection.json中输入正确的IP,因为我们失败了。
注意事项:我们能够在Peer0上创建通道,并且能够成功地在同一通道中加入peer0和peer1。我们认为它可能是connection.json问题,但我们无法弄清楚错误。
这是我们在安装BNA时看到的错误
安装业务网络。这可能需要一分钟......错误:尝试安装业务网络时出错。错误:没有来自任何同行的有效回复。尝试的对等通信的响应是一个错误:错误:14 UNAVAILABLE:连接失败
我一直在使用docker swarm处理这类问题。为了能够使用不同的主机进行这种下行和运行,我现在使用Rancher来管理docker容器之间的网络通信。希望这会帮助你。
尝试将频道的值更改为:
"channels": {
"composerchannel": {
"orderers": [
"orderer.example.com"
],
"peers": {
"peer0.org1.example.com": {
"endorsingPeer": true,
"chaincodeQuery": true,
"eventSource": true
},
"peer1.org1.example.com": {
"endorsingPeer": true,
"chaincodeQuery": true,
"eventSource": true
}
}
}
}