Corda BFT公证人群集在一个副本宕机后停止

Corda BFT公证人群集在一个副本宕机后停止,corda,fault-tolerance,notary,Corda,Fault Tolerance,Notary,TL;DR-当一个复制副本被杀死时,具有4-5个公证节点的BFT群集将停止运行 我运行了Raft集群(有3个公证节点),其行为与预期一致——当我杀死领导者时,将进行选举,公证集群将继续提供可靠的服务 我希望在运行BFT集群(具有4个公证节点)时也会发生同样的情况——杀死其中一个副本不应阻止集群提供可靠的公证服务。然而,发生的情况如下: 1) 启动BFT公证人集群 2) 我可以使用gradlew示例:公证人演示:公证人 3) 停止群集中的一个副本 4) 尝试使用gradlew示例:公证人演示:公证

TL;DR-当一个复制副本被杀死时,具有4-5个公证节点的BFT群集将停止运行

我运行了Raft集群(有3个公证节点),其行为与预期一致——当我杀死领导者时,将进行选举,公证集群将继续提供可靠的服务

我希望在运行BFT集群(具有4个公证节点)时也会发生同样的情况——杀死其中一个副本不应阻止集群提供可靠的公证服务。然而,发生的情况如下:

1) 启动BFT公证人集群

2) 我可以使用
gradlew示例:公证人演示:公证人

3) 停止群集中的一个副本

4) 尝试使用
gradlew示例:公证人演示:公证人对10笔交易进行公证

5) 等待几分钟,什么也没有发生(交易未经公证)

6) 所有剩余的副本终端继续填充
在/127.0.0.1:11010重新连接到副本1

为了安全起见,我决定向集群添加另一个公证人节点。但是,没有任何变化-有5个公证节点,杀死其中一个节点会使集群停止运行

我研究过,但据我所知,只要有足够的工作副本(N>=3f+1),它应该能够容忍任何故障(包括崩溃停止)


这里有我遗漏的东西吗?我所期望的行为是不合理的吗?4-5个公证人节点的BFT集群能够容忍1个节点死亡?或者这是Corda的一个问题?

很难知道这个问题是什么,因为这里没有太多信息,但是Corda回购协议最近更新了这个样本,因此可能值得再次访问该项目,看看它现在是否正常工作

以下是最近4.5版本公证人演示的链接: