一个副本出现故障后,Corda BFT公证群集停止

时间:2019-03-15 17:44:52

标签: corda fault-tolerance notary

TL; DR -具有4-5个公证节点的BFT群集在杀死一个副本时会停止运行。

我运行了notary demo,并且Raft集群(带有3个公证节点)的行为符合预期-当我杀死领导者时,有一次选举,公证集群继续提供可靠的服务。

我希望运行BFT集群(具有4个公证节点)时会发生相同的事情-杀死其中一个副本不应阻止集群提供可靠的公证服务。但是,发生的事情是这样:

1)启动BFT公证集群

2)我不能使用gradlew samples:notary-demo:notarise

进行10个交易的公证

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

4)尝试使用gradlew samples:notary-demo:notarise

公证10个交易

5)等待几分钟,没有任何反应(交易未经公证)

6)所有其余的副本终端继续填充re-connecting to replica 1 at /127.0.0.1:11010

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

我调查了how BFT SMaRt works,但据我所知,只要有足够的工作副本(N> = 3f +1),它就应该能够容忍任何故障(包括崩溃停止)

我这里缺少什么吗?我所期望的行为是不合理的-具有4-5个公证节点的BFT群集能够容忍1个节点死亡吗?还是Corda的问题?

1 个答案:

答案 0 :(得分:0)

由于这里没有太多信息,因此很难知道问题出在哪里,但是Corda Repo最近更新了此示例,因此可能值得尝试重新查看该项目以查看它现在是否正常运行。

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

https://github.com/corda/corda/tree/release/os/4.5/samples/notary-demo

相关问题