区块链知识系列 - Raft 共识

Raft算法由斯坦福大学的Diego Ongaro和John Ousterhout于2014年在论文《In Search of anUnderstandable Consensus Algorithm》中提出。Raft算法面向对多个决策达成一致的问题,分解了Leader选举、日志复制和安全方面的考虑,并通过约束减少了不确定性的状态空间。

典型的过程包括以下两个主要阶段:

  • Leader选举:开始所有节点都是Follower,在随机超时发生后未收到来自Leader或Candidate消息,则转变角色为Candidate,提出选举请求。最近选举阶段(Term)中得票超过一半者被选为Leader;如果未选出,随机超时后进入新的阶段重试。Leader负责从客户端接收log,并分发到其他节点;
  • 同步日志:Leader会找到系统中日志最新的记录,并强制所有的Follower来刷新到这个记录,数据的同步是单向的。

此处日志并非是指输出消息,而是各种事件的发生记录。

你可能感兴趣的:(区块链知识系列,共识,Raft,共识,区块链,选举,Leader)