最近在看etcd-raft
的代码,感谢以下链接的分享.
etcd-raft及etcdexample中各组件分析
etcd-raft使用分析
etcd中的raft实现
共识算法:Raft
raft 动画
etcd-raft算法走读
raft协议小结
分布式一致性算法:Raft 算法(论文翻译)
初看raft算法,似乎要比基于bft的tendermint共识算法更简单一些,读完论文发现不是这样.本系列主要分为四个部分:
- raftexample 分析及raft作为一个library在其中的应用.
- raft library 模块分析
- raft 论文及证明
- etcd-raft 算法模块与论文实现不同的地方.
在etcd-raft中实现了prevote,这个是原论文中没有提及到的地方.主要处理的是某一个节点网络隔离相当长的时间,他当前的term为5000,而整个集群当前的term为100,在这种情况下怎样处理,在论文中没有明确地进行说明.
在raft-rs中也对这一块进行了实现.