LibraBFT共识
tags:区块链-libra
共识
使用了LibraBFT共识协议的共识组件支持状态机响应。
概述
LibraBFT概述
尤物共识的优势
尤物的扩展和修正
实现细节
这个共识组件主要在actor程序模块中被实现——例如,用于不同的子组件之间的通信,子组件在任务运行时使用了tokio框架。actor模块的主要异常是共识数据结构区块存储上,它管理区块、执行、QC和其它共享数据。在共识组件中有如下几个主要的子组件:
1.交易管理器:是一套内存池组件接口,它支持交易的提交和拉取。申请人请求从内存池拉取交易到自己的区块表中。
2.状态计算器:是一套接收异常组件的接口。它可以执行区块、提交区块,并且同步状态。
3.区块存储:维护了一棵树,这棵树包括个人区块,区块执行信息,投票信息,QC和持久存储信息。它负责维护这个数据结构的一致性,同时可以被其它子组件接收。
4.事件跟踪器:负责处理独特事件(例如,处理新的周期,处理提议,处理投票)。它为每个事件类型和处理协议暴露同步处理的函数。
5.领跑者:负责共识协议的活跃性。在申请人的当前周期中,由于证书超时或QC和建议区块时,它会改变(停止)周期。
6.安全规则:负责共识协议的安全性。它处理QC和帐单信息以了解新的提交,保证两个投票规则——甚至在重启的情况下。(因为所有的安全数据保存在本地)