首页 文章

Quorum中的RAFT一致性算法如何确保确定性链扩展?

提问于
浏览
1

在Quorum的RAFT consensus docs中提到了这一点

此链扩展逻辑是确定性的:在集群中的每个节点上都会发生相同的确切行为,从而使区块链保持同步 .

在领导者变更正在进行的情况下,共识算法如何确保所有跟随者节点具有相同的分类帐?是否有可能某些关注节点首先从前一个领导者获得一个新块,一些节点首先从新领导者那里获得一个新块?是否有任何同步机制来避免这种行为?

1 回答

  • 1

    在领导层变更期间,跟随者节点可能会从前任领导者那里获得阻止;但是他们不会使用它,直到新领导人承诺可能不会发生 .

    筏复制分两个阶段进行:准备阶段和提交阶段 . 两者都通过 Append 消息发生,该消息具有 committed 水印 .

    新的木筏领导者首先修复了追随者的日志 . 也就是说,它会覆盖日志的未提交部分,使其与自己匹配,然后提交 .

    一旦块的转换数低于节点的承诺水印,它就可以用于业务;在此之前,节点必须假定该块可能不正确并且可以删除 .

    我强烈建议在https://raft.github.io/上使用可视化:

    • 关闭大多数节点,但保持领导者和另一个节点处于活动状态;

    • 向领导者索取 Value ;

    • 关闭领导者,打开其他节点;

    • 超时您刚刚重新激活的节点之一(不是具有您请求的值的节点) .

    • 看看会发生什么 .

相关问题