【问题标题】:Deploy a BNA on a multi-node network which is running in SWARM (overlay)在 SWARM(覆盖)中运行的多节点网络上部署 BNA
【发布时间】: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


【解决方案1】:

我一直在使用 docker swarm 处理这类问题。为了能够使用不同的主机启动和运行这种基础设施,我现在使用 Rancher 来管理 docker 容器之间的网络通信。希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    尝试将通道的值更改为:

    "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
                }
            }
        }
    }
    

    【讨论】:

    • 好吧,应用它只识别对等点的行为方式。您是否曾经在 swarm 网络上进行过 .bna 部署,因为我理解您所描绘的 peer 设置都是默认设置,即使您不使用它们也已经隐含。
    • 是的,与您的设置相同,一个组织中的两个对等节点使用 docker swarm。您创建的频道的名称是什么?
    • 既然你已经成功创建了一个频道,那就说明网络配置没问题。它确实在 connection.json 设置中。你确定你使用的端口是正确的吗?
    猜你喜欢
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2019-01-30
    • 1970-01-01
    相关资源
    最近更新 更多