[发明专利]一种拜占庭容错共识协议在审
申请号: | 202010087336.1 | 申请日: | 2020-02-11 |
公开(公告)号: | CN111338857A | 公开(公告)日: | 2020-06-26 |
发明(设计)人: | 张晴 | 申请(专利权)人: | 安徽理工大学 |
主分类号: | G06F11/20 | 分类号: | G06F11/20;G06F11/07 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 232001 安徽*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 拜占庭 容错 共识 协议 | ||
1.一种拜占庭容错共识协议是基于主从的BFT算法,其工作在分布式系统下,该系统中存在3f+1个副本节点,其中最多f个节点是错误节点,f不大于系统中所有副本节点的,其包括共识协议、视图变换协议和检查点协议三个子协议;共识协议协调各副本节点对请求执行顺序达成一致,并根据请求提交情况来决定是否自动更换新的主副本节点;当副本节点超时无法达成一致或自动换主不成功时,从副本节点触发视图变换协议,选举新的主副本节点,再次执行共识协议,保证共识一定能够达成;分布式系统每完成一定数目的请求之后,对副本节点的日志进行清理,副本节点对自身的状态进行更新。
2.根据权利要求1所述的拜占庭容错共识协议,其特征在于,所述的共识协议的实现包括以下步骤:
L1.客户端c发送请求给所有副本,即发送request消息给副本节点;
L2.副本节点收到有效的客户端request消息之后,将下一个待分配序列号s分配给该请求,并发送该pre-prepare消息给主副本节点;
L3.主副本节点收到pre-prepare消息后检查其有效性,若通过检查,主副本节点接收该消息。(1)若收到2f+1个一致的pre-prepare消息,这些消息形成cert消息,主副本发送该cert消息给从副本;(2)若副本未能收2f+1个一致的pre-prepare消息,那么根据收到的合法的pre-prepare消息构造cert消息和prepare消息,然后主副本发送这些消息给从副本;
L4.从副本检查该cert消息的有效性:
L4-1.不冲突或轻度冲突:若该cert消息包含2f+1个一致的pre-prepare消息,副本可以执行该请求并回复reply消息给客户;
L4-2.重度冲突:若该cert消息未能包含2f+1个一致的pre-prepare消息,副本根据prepare消息构造commit消息并广播给其他副本,然后转至L5;
L5.副本若收到来自其他副本的2f+1个相匹配的commit消息,便可以执行该请求并回复reply消息给客户;
L6.当客户端收到2f+1个一致的reply时,这说明有2f+1个副本提交并执行了该请求,客户端可认为请求已完成。
3.根据权利要求1所述的拜占庭容错共识协议,其特征在于,所述的视图变换协议的实现包括以下步骤:
C1:从副本节点p广播view_change消息,告诉其他副本节点自身怀疑当前主副本节点,想通过视图转换选择新的主副本节点;当其他副本节点q收到其他副本节点发来的f+1个view_change消息时,广播view_change消息,确定进入视图变换阶段;
C2:新的主副本节点在收到2f+1个有效的view_change消息后,广播new_view消息给其他副本节点,其中一个new_view消息内包含2f+1个view_change消息;
C3:从副本节点收到new_view消息后会根据其包含的view_change消息决定新视图的开始状态;副本节点确定新视图状态后,发送view_confirm消息给其他副本;所有副本节点收到2f+1个一致的view_confirm消息之后,开始处理新视图下的消息。至此,视图变换成功。
4.根据权利要求1所述的拜占庭容错共识协议,其特征在于,所述的检查点协议具体步骤如下:
副本节点每执行一定数量的请求后,触发检查点协议并将自身历史信息包含在checkpoint消息中发送给所有的其他副本节点;
某一副本节点接收到2f+1个checkpoint消息,则该checkpoint消息所包含的状态至少在f+1个正确节点上一致。副本节点根据接收到的checkpoint消息所对应的序列号进行日志清理,即对该序列号对应的消息日志进行删除,副本节点更新自身状态。
5.根据权利要求2所述的共识协议,其特征在于,所述的步骤中副本有两次机会提交请求:
副本可以在L4阶段完成请求的提交;如果未能在L4阶段完成请求的提交,副本会有第二次机会提交请求,即在L5阶段完成请求的提交。
6.根据权利要求2所述的共识协议,其特征在于,所述的步骤中副本在完成请求的提交之后是否变换主副本节点:
如果请求是在L4阶段提交成功,主节点就继续担任主节点;如果请求未在L4阶段提交成功,那么当前主副本的下一个从副本将成为新一轮共识过程中的主副本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽理工大学,未经安徽理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010087336.1/1.html,转载请声明来源钻瓜专利网。