Tendermint 共识源码分析
简述Tendermint的共识算法可以看成是POS+BFT,Tendermint在进行BFT共识算法确认区块前,首先使用POS算法从Validators中选举出Proposer。然后由Proposer进行提案,最后使用BFT算法生成区块。Tendermint 的共识协议使用的gossip协议。
另外,源码分析部分由于代码篇幅太长,会省略部分源码,不影响阅读。
角色Tendermint 共识网络中有两个重要角色
Validator: 网络的参与者,也是区块的验证者(预先配置的网络中的一般验证者账户们)
Proposer: 从validator中选举出一个节点成为出块人(选举出的出块人),选举不需要网络通信,这点后面从源码中说明。
共识5个阶段
NewHeight
propose
prevote
precommit
commit
123456789101112131415161718 +--------------------------------------+ v ...