关键词:
Raft
共识机制
拜占庭容错
迭代哈希
心跳门限
摘要:
目的为解决原始Raft算法无法处理由拜占庭节点引发的恶意竞选问题和日志易篡改问题,方法提出一种能够抵抗拜占庭节点的AntiB-Raft(anti-Byzantine Raft)算法。在候选者请求更换Leader(领导者)阶段,采用心跳监测门限机制确定候选者是否可以成功获得足够的选票成为Leader,约定只有当超过半数节点都认定当前Leader宕机的情况下,候选者才能获得超过半数的选票进而成为新的Leader,防止拜占庭节点在当前Leader未宕机的情况下恶意拉取选票导致正常Leader被更换;在日志校验阶段,采用迭代哈希算法进行日志加密,并选择合适的校验时机进行日志校验,约定每经过K笔交易或Leader更换时进行一次日志校验,确保已经同步的日志正确无误;日志校验过程中,当日志校验失败时采用二分法快速回滚,可以迅速定位到问题日志位置并进行重传操作,大大提高工作效率。结果模拟100节点选举过程,Raft算法中恶意候选者获得选票数超过50%,替换掉正常的Leader,本文算法、RB-Raft算法均未超50%,避免了恶意拉票;抗拜占庭方面,Raft算法无法识别错误日志,而AntiB-Raft算法错误日志识别率可达100%,且共识时延比已有算法RB-Raft降低了28%。结论本文所提算法AntiBRaft具备抗拜占庭能力,与已有算法RB-Raft相比降低了共识时延,效率得到了明显提升。