1.一种分布式系统中的增强拜占庭共识方法,其特征在于,包括初始化流程和共识流程,所述初始化流程包括以下步骤:S10:对网络中的所有节点进行分组,并将主节点编号为N0,副本节点分别编号为Ni,i的取值为[1,N],N为副本节点的数量,N个副本节点随机平均分为G个节点组,G=3f+1,f为拜占庭节点的数量;
S20:在每个节点组内,组长节点leader定期向组员节点follower发送心跳信号,以维持其领导地位;
S30:如果所述组员节点follower在预设的时间周期内没有收到来自所述组长节点leader发送的心跳信号,所述组员节点follower将自身状态转变为候选人节点candidate,并开始进行领导选举;
S40:所述候选人节点candidate向节点组内的其他节点广播竞选消息,并邀请投票支持自己;
S50:如果所述候选人节点candidate在竞选超时之前获得了超过半数的投票,将成为新的组长节点leader;
所述共识流程包括请求阶段、预准备阶段、准备阶段和响应阶段;
在所述请求阶段:客户端节点Client向主节点发送交易请求msg;
在所述预准备阶段:所述主节点接收到客户端节点Client发送的交易请求msg后,向所有节点广播预准备消息;
在所述准备阶段:当节点接收到主节点广播的预准备消息后,判断自己是否是组长节点,如果是组长节点,验证主节点信息是否正确,当验证主节点信息为正确时,则继续共识并将预准备消息放入临时存储池中,然后广播准备消息给其他节点;
在所述响应阶段:当节点接收到组长节点广播的准备消息后,判断自己是否是组长节点或主节点,如果是组长节点或主节点,当接收到超过2f+1个节点广播的准备消息后,节点判定该共识有效并存储到本地存储池,然后向客户端节点Client发送包含时间戳的回执。
2.根据权利要求1所述的分布式系统中的增强拜占庭共识方法,其特征在于,在步骤S50中,如果所述候选人节点candidate在竞选超时之后获得低于半数的投票,所述候选人节点candidate将继续广播竞选消息,重新发起下一轮竞选。
3.根据权利要求1所述的分布式系统中的增强拜占庭共识方法,其特征在于,所述方法还包括:在所述准备阶段,当验证主节点信息为错误时,则不接收预准备消息并直接放弃该次共识。
4.根据权利要求1所述的分布式系统中的增强拜占庭共识方法,其特征在于,所述方法还包括:在所述准备阶段,如果不是组长节点,则将预准备消息放入临时存储池,并等待组长节点广播的准备消息。
5.根据权利要求1所述的分布式系统中的增强拜占庭共识方法,其特征在于,所述方法还包括:在所述响应阶段,当节点没有接收到超过2f+1个节点广播的准备信息时,节点将继续等待直到接收到超过2f+1个节点广播的准备信息。
6.根据权利要求1所述的分布式系统中的增强拜占庭共识方法,其特征在于,所述方法还包括:如果不是组长节点或主节点,当接收到超过2f+1个节点广播的准备消息后,节点判定此次共识有效并存储到本地存储池。
7.根据权利要求6所述的分布式系统中的增强拜占庭共识方法,其特征在于,所述方法进一步包括:如果不是组长节点或主节点,当没有接收到超过2f+1个节点广播的准备消息时,节点将继续等待直到接收到超过2f+1个节点广播的准备信息。
8.一种分布式系统中的增强拜占庭共识装置,其特征在于,包括初始化流程模块和共识流程模块;
所述初始化流程模块包括:
分组单元,用于对网络中的所有节点进行分组,并将主节点编号为N0,副本节点分别编号为Ni,i的取值为[1,N],N为副本节点的数量,N个副本节点随机平均分为G个节点组,G=3f+1,f为拜占庭节点的数量;
心跳信号单元,用于在每个节点组内,组长节点leader定期向组员节点follower发送心跳信号,以维持其领导地位;
状态转变单元,用于如果所述组员节点follower在预设的时间周期内没有收到来自所述组长节点leader发送的心跳信号,所述组员节点follower将自身状态转变为候选人节点candidate,并开始进行领导选举;
广播竞选单元,用于候选人节点candidate向节点组内的其他节点广播竞选消息,并邀请投票支持自己;
组长节点单元,用于如果所述候选人节点candidate在竞选超时之前获得了超过半数的投票,将成为新的组长节点leader;
所述共识流程模块包括:
请求单元,用于客户端节点Client向主节点发送交易请求msg;
预准备阶段单元,用于主节点接收到客户端节点Client发送的交易请求msg后,向所有节点广播预准备消息;
准备单元,用于当节点接收到主节点广播的预准备消息后,判断自己是否是组长节点,如果是组长节点,验证主节点信息是否正确,当验证主节点信息为正确时,则继续共识并将预准备消息放入临时存储池中,然后广播准备消息给其他节点;
响应单元,用于当节点接收到组长节点广播的准备消息后,判断自己是否是组长节点或主节点,如果是组长节点或主节点,当接收到超过2f+1个节点广播的准备消息后,节点判定该共识有效并存储到本地存储池,然后向客户端节点Client发送包含时间戳的回执。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1-7中任一项所述增强拜占庭共识方法的步骤。