Hyperledger:如果一个同伴掉线,则无法提交交易

时间:2018-07-19 11:25:22

标签: hyperledger-fabric hyperledger hyperledger-composer hyperledger-cello

当前,我正在对Hyperledger架构进行一些负面测试,以正确理解体系结构。我想测试一个同龄人是否由于某些不需要的异常而崩溃,然后我们如何解决这种情况。我已经在aws上使用超级账本大提琴的帮助下部署了Fabric。我有以下配置的2个实例。

fabric001: {
  cas: ["ca1st.orga"],
  peers: ["anchor@peer1st.orga"],
  orderers: ["orderer1st.orgb"],
  zookeepers: ["zookeeper1st"],
  kafkas: ["kafka1st"]
},
fabric002: {
  cas: ["ca1st.orgb"],
  peers: ["worker@peer2nd.orga", "worker@peer3rd.orga"],
  orderers: ["orderer2nd.orgb"],
  zookeepers: ["zookeeper2nd"],
  kafkas: ["kafka2nd"]
}

默认情况下,部署警告BNA。我已经使用composer-playgroud提交了一些交易,然后借助docker pause container-id命令手动暂停对等方的docker容器之一。之后,我尝试提交交易,但是composer-playground不允许我提交交易。

每个对等点都在默认设置下认可对等点。另外,默认的认可政策如下:

{
  "identities": [
    {"role": { "name": "member", "mspId": "orga" } }
  ],
  "policy": {
    "1-of": [
      {"signed-by": 0 }
    ]
  }
}

根据我的理解,如果一个成员同级执行交易并将其提交给订购者,则应根据上述政策接受该交易,但我看不到相同的结果。在我当前的测试案例中,如果我暂停一个对等方的docker容器,则该结构会停止接受事务,并且一旦我取消暂停它就开始正常工作。

任何人都可以帮助我了解这个问题吗?

1 个答案:

答案 0 :(得分:2)

如果我们使用“ docker pause continerid”暂停docker,我们将面临这种行为。后来,我尝试使用“ docker stop”命令停止对等方,并且能够提交事务。

感谢您的帮助。