在Quorum的RAFT consensus docs中,提到了
这种链扩展逻辑是确定性的:相同的确切行为 将在群集中的每个节点上发生,保留区块链 同步。
如果正在进行领导者变更,共识算法如何确保所有关注者节点具有相同的分类帐?是否有可能某些关注节点首先从前一个领导者获得一个新块,一些节点首先从新领导者那里获得一个新块?是否有任何同步机制来避免这种行为?
答案 0 :(得分:1)
在领导层变更期间,关注者节点可能会从前任领导者那里获得阻止;但是他们不会使用它,直到新领导人承诺这个障碍可能不会发生。
筏复制分两个阶段进行:准备阶段和提交阶段。两者都通过Append
消息发生,该消息具有committed
水印。
新木筏领导者首先修复了追随者的日志。也就是说,它会覆盖日志的未提交部分,使其与自己的部分匹配,然后提交它们。
一旦块的转换数低于节点的承诺水印,它就可以用于业务;在此之前,节点必须假定该块可能不正确并且可以删除。
我强烈建议您使用https://raft.github.io/上的可视化效果: