当前位置: 首页 > 专利查询>杜晓楠专利>正文

DBFT共识网络中数据同步的方法、计算机可读存储介质和DBFT共识网络技术

技术编号:25756280 阅读:14 留言:0更新日期:2020-09-25 21:05
本发明专利技术涉及一种DBFT共识网络中数据同步的方法、计算机可读存储介质和DBFT共识网络。本发明专利技术通过设置新高度状态、议案状态,并且针对所述新视图消息和新高度消息进行数据同步处理,可以使得DBFT共识网络中的新加入节点或者断网节点能够尽可能的即时感知到自己的区块高度跟其他的节点不一致,从而停止参与DBFT共识过程,并向周围节点进行数据同步。

【技术实现步骤摘要】
DBFT共识网络中数据同步的方法、计算机可读存储介质和DBFT共识网络
本专利技术涉及分布式网络领域,更具体地说,涉及一种DBFT共识网络中数据同步的方法、计算机可读存储介质和DBFT共识网络。
技术介绍
DBFT(DelegatedByzantineFaultTolerance)是一种通用的共识机制模块,提出了一种改进的拜占庭容错算法,使其能够适用于区块链系统。这种共识机制是在Castro和Liskov提出的“实用拜占庭容错算法”(PracticalByzantineFaultTolerance)的基础上,经过改进后使其能够适用于区块链系统。拜占庭容错技术被广泛应用在分布式系统中,比如分布式文件系统、分布式协作系统、云计算等。在DBFT共识网络中,新加入节点或者断网节点的区块高度如果与其他节点不一致,那么需要停止参加DBFT共识过程,并向周围节点进行数据同步。但是现有技术的DBFT共识网络中,新加入节点或者断网节点无法即时感应到自己的区块高度与其他节点不一致。如果有作恶节点发布虚假高度,那么将会造成新加入节点或者断网节点永远无法更新到最新区块。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种DBFT共识网络中数据同步的方法、计算机可读存储介质和DBFT共识网络,使得DBFT共识网络中的新加入节点或者断网节点能够尽可能的即时感知到自己的区块高度跟其他的节点不一致,从而停止参与DBFT共识过程,并向周围节点进行数据同步。本专利技术解决其技术问题所采用的技术方案是:构造一种DBFT共识中数据同步的方法,包括以下步骤:在新DBFT节点加入DBFT网络时进入新高度状态,在所述新高度状态中,如果在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于所述新DBFT节点的区块高度,所述新DBFT节点暂停DBFT共识并从其他DBFT节点下载区块;新高度状态结束之后进入议案状态,在所述议案状态中,主DBFT节点发起议案,全部DBFT节点广播新视图消息,所述新视图消息包括所述DBFT节点的区块高度和视图号,每个DBFT节点接收并存储其余DBFT节点的高度和视图,并在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于自己的区块高度时暂停DBFT共识并从其他DBFT节点下载区块;议案状态结束之后进入投票状态,在所述投票状态中,DBFT节点对所述议案进行投票并广播自己的投票且接收其他DBFT节点的投票;投票状态结束之后进入预承诺状态,在所述预承诺状态中,统计所述投票并给出预承诺投票,并基于预承诺投票结果进入承诺状态或者返回议案状态;在承诺状态中,根据所述预承诺结果做出承诺;所述承诺状态结束之后进入结束状态,在所述结束状态中,将最终区块落盘并广播新高度消息,所述新高度消息包括当前DBFT节点的区块高度;在所述结束状态结束之后返回所述新高度状态。在本专利技术所述的DBFT共识中数据同步的方法中,每个DBFT节点在接收到所述新视图消息之后,执行以下步骤:当发现所述新视图消息中的DBFT节点的区块高度大于自己的区块高度,则缓存所述区块高度,如果缓存之后发现超过2/3的DBFT节点的区块高度大于自己的区块高度,所述DBFT节点暂停DBFT共识并从其他DBFT节点下载区块以同步区块,且在同步完成之后进入所述新高度状态;当发现所述新视图消息中的DBFT节点的区块高度等于自己的区块高度,则判断当前状态是否是非承诺状态或非结束状态,如果是则更新所述新视图消息的视图号,并且重新进入议案状态。在本专利技术所述的DBFT共识中数据同步的方法中,DBFT节点在接收到所述新高度消息之后,缓存所述新高度消息;当缓存之后发现超过2/3的DBFT节点的区块高度大于所述当前区块高度,所述DBFT节点暂停DBFT共识并从其他DBFT节点下载区块以同步区块,且在同步完成之后进入所述新高度状态。在本专利技术所述的DBFT共识中数据同步的方法中,在所述预承诺状态中,DBFT节点在其接收到的所述投票状态中投出的赞成票超过2/3时投出预承诺赞成票否则将投出预承诺反对票,并收集其余DBFT节点的预承诺投票;当预承诺状态结束时,如果收到的预承诺赞成票没有超过2/3则重新进入所述议案状态,否则进入承诺状态。在本专利技术所述的DBFT共识中数据同步的方法中,在所述承诺状态中,如果预承诺状态中投出的预承诺赞成票超过2/3,广播承诺赞成票给其余DBFT节点。在本专利技术所述的DBFT共识中数据同步的方法中,一旦进入任何状态,开启所述状态的定时器,所述定时器超时,进入下一状态。本专利技术解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的DBFT共识中数据同步的方法。本专利技术解决其技术问题采用的另一技术方案是,构造一种DBFT共识网络,包括多个DBFT节点,所述DBFT节点上存储有计算机程序,其特征在于,所述程序被处理器执行时实现所述的DBFT共识中数据同步的方法。实施本专利技术的DBFT共识网络中数据同步的方法、计算机可读存储介质和DBFT共识网络,可以使得DBFT共识网络中的新加入节点或者断网节点能够尽可能的即时感知到自己的区块高度跟其他的节点不一致,从而停止参与DBFT共识过程,并向周围节点进行数据同步。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术的DBFT共识中数据同步的方法的第一优选实施例的状态流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术涉及一种DBFT共识中数据同步的方法。在新DBFT节点加入DBFT网络时进入新高度状态,在所述新高度状态中,如果在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于所述新DBFT节点的区块高度,所述新DBFT节点暂停DBFT共识并从其他DBFT节点下载区块新高度状态结束之后进入议案状态。在所述议案状态中,主DBFT节点发起议案,全部DBFT节点广播新视图消息,所述新视图消息包括所述DBFT节点的区块高度和视图号,每个DBFT节点接收并存储其余DBFT节点的高度和视图,并在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于自己的区块高度时暂停DBFT共识并从其他DBFT节点下载区块。议案状态结束之后进入投票状态,在所述投票状态中,DBFT节点对所述议案进行投票并广播自己的投票且接收其他DBFT节点的投票。投票状态结束之后进入预承诺状态,在所述预承诺状态中,统计所述投票并给出预承诺投票,并基于预承诺投票结果进入承诺状态或者返回议案状态。在承诺状态中,根据所述预承诺结果做出承诺。所述承诺状态结束之后进入结束状态,在所述结束状态中,将最终区块落盘并广播新高度消息,所述新高度消息包括当前DBF本文档来自技高网...

【技术保护点】
1.一种DBFT共识中数据同步的方法,其特征在于,包括以下步骤:/n在新DBFT节点加入DBFT网络时进入新高度状态,在所述新高度状态中,如果在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于所述新DBFT节点的区块高度,所述新DBFT节点暂停DBFT共识并从其他DBFT节点下载区块;/n新高度状态结束之后进入议案状态,在所述议案状态中,主DBFT节点发起议案,全部DBFT节点广播新视图消息,所述新视图消息包括所述DBFT节点的区块高度和视图号,每个DBFT节点接收并存储其余DBFT节点的高度和视图,并在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于自己的区块高度时暂停DBFT共识并从其他DBFT节点下载区块;/n议案状态结束之后进入投票状态,在所述投票状态中,DBFT节点对所述议案进行投票并广播自己的投票且接收其他DBFT节点的投票;/n投票状态结束之后进入预承诺状态,在所述预承诺状态中,统计所述投票并给出预承诺投票,并基于预承诺投票结果进入承诺状态或者返回议案状态;/n在承诺状态中,根据所述预承诺结果做出承诺;/n所述承诺状态结束之后进入结束状态,在所述结束状态中,将最终区块落盘并广播新高度消息,所述新高度消息包括当前DBFT节点的区块高度;/n在所述结束状态结束之后返回所述新高度状态。/n...

【技术特征摘要】
1.一种DBFT共识中数据同步的方法,其特征在于,包括以下步骤:
在新DBFT节点加入DBFT网络时进入新高度状态,在所述新高度状态中,如果在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于所述新DBFT节点的区块高度,所述新DBFT节点暂停DBFT共识并从其他DBFT节点下载区块;
新高度状态结束之后进入议案状态,在所述议案状态中,主DBFT节点发起议案,全部DBFT节点广播新视图消息,所述新视图消息包括所述DBFT节点的区块高度和视图号,每个DBFT节点接收并存储其余DBFT节点的高度和视图,并在所述DBFT网络中有超过2/3的DBFT节点的区块高度大于自己的区块高度时暂停DBFT共识并从其他DBFT节点下载区块;
议案状态结束之后进入投票状态,在所述投票状态中,DBFT节点对所述议案进行投票并广播自己的投票且接收其他DBFT节点的投票;
投票状态结束之后进入预承诺状态,在所述预承诺状态中,统计所述投票并给出预承诺投票,并基于预承诺投票结果进入承诺状态或者返回议案状态;
在承诺状态中,根据所述预承诺结果做出承诺;
所述承诺状态结束之后进入结束状态,在所述结束状态中,将最终区块落盘并广播新高度消息,所述新高度消息包括当前DBFT节点的区块高度;
在所述结束状态结束之后返回所述新高度状态。


2.根据权利要求1所述的DBFT共识中数据同步的方法,其特征在于,每个DBFT节点在接收到所述新视图消息之后,执行以下步骤:
当发现所述新视图消息中的DBFT节点的区块高度大于自己的区块高度,则缓存所述区块高度,如果缓存之后发现超过2/3的DBFT节点的区块高度大于自己的区块高度,所述DBFT节点暂停DBFT共识并从其他DBFT节点下载区块以同步区块,且在同步完成之后进入所述新高度状态;
当发现所...

【专利技术属性】
技术研发人员:杜晓楠
申请(专利权)人:杜晓楠
类型:发明
国别省市:新加坡;SG

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1