Hyperledger:如果一个对等方宕机,则无法提交交易

Hyperledger : Not able to submit a transaction if one peer is down

目前,我正在对 hyperledger fabric 进行一些负面测试以正确理解架构。我想测试一个对等点是否由于一些不需要的异常而宕机,然后我们如何解决这种情况。我已经在 aws 上的 hyperledger cello anisible 的帮助下部署了 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"]
}

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

在默认设置中,每个节点都在背书节点。另外,默认背书政策如下:

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

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

谁能帮我理解这个问题??

如果我们用 "docker pause continerid" 暂停 docker,我们就会面临这种行为。后来我尝试用 "docker stop" 命令停止对等点,我能够提交交易。

感谢您的帮助。