基于检查点的区块链数据同步方法及系统技术方案

技术编号:36048144 阅读:13 留言:0更新日期:2022-12-21 10:57
本发明专利技术公开了基于检查点的区块链数据同步方法及系统,应用于区块链节点,包括:当前区块链节点在区块数达到检查点长度的整数倍后,当前区块链节点将自身的最新状态发送给区块链的其他节点;当前区块链节点接收到其他节点的最新状态数据后,根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点;当前区块链节点将落后的区块,按照设定区间划分为若干个同步请求包,将同步请求包发送给区块链的其他节点;其他节点从自身节点上查询出相应的数据,将查询到的数据打包后发送给当前区块链节点;当前区块链节点收到打包数据后,对当前打包数据进行校验,如果校验状态一致,则将打包数据中的区块落盘,并更新当前区块链节点的状态。状态。状态。

【技术实现步骤摘要】
基于检查点的区块链数据同步方法及系统


[0001]本专利技术涉及区块链
,特别是涉及基于检查点的区块链数据同步方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提到了与本专利技术相关的
技术介绍
,并不必然构成现有技术。
[0003]区块链技术是一种分布式的、安全的、去中心化的系统,用来对大量数据进行组织和维护,具有不可篡改性、高度可信赖性、提供数据完整性等特点。其链上数据采用分布式副本存储,每一个参与区块链的节点都保存有一份数据副本,因此可有效避免集中化存储的单点故障问题;且区块链自身的链式哈希指针结构可确保其上数据无法被任意删改,是对数据完整性的有效保护。
[0004]区块链网络在运行过程中由于网络抖动、突然断电、磁盘故障等原因,可能会导致部分节点的执行速度落后于大多数节点或者直接宕机。因此数据失效恢复机制在区块链中显得尤为重要。而现有的解决方案多种多样,有的采用线下人工干预或者通过特定工具定时检测的方法来解决,有的通过节点重新启动来同步落后数据,但是这类方法耗时耗力,而且不满足时效性。还有的会暂停落后节点参与共识,只有当落后节点完成数据同步,拥有最新状态时才能重新参与到共识中去,此种方法不利于系统的稳定性。

技术实现思路

[0005]为了解决现有技术的不足,本专利技术提供了基于检查点的区块链数据同步方法及系统;在不额外增加系统负担的情况下,利用检查点的通信检查各节点数据的一致性,并对缺块节点进行数据同步。同步期间,落后节点仍可正常参与共识。
[0006]第一方面,本专利技术提供了基于检查点的区块链数据同步方法;基于检查点的区块链数据同步方法,应用于区块链节点,包括:当前区块链节点在区块数达到检查点长度的整数倍后,当前区块链节点将自身的最新状态发送给区块链的其他节点;同时,当前区块链节点也接收其他节点发来的最新状态数据;当前区块链节点接收到其他节点的最新状态数据后,根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点;当前区块链节点将落后的区块,按照设定区间划分为若干个同步请求包,将同步请求包发送给区块链的其他节点;其他节点接收到同步请求包以后,根据同步请求包的请求,从自身节点上查询出相应的数据,将查询到的数据打包后发送给当前区块链节点;当前区块链节点收到打包数据后,将打包数据加入缓存,并对缓存中的数据进行排序,并对当前打包数据进行校验,如果校验状态一致,则将打包数据中的区块落盘,并更新当前区块链节点的状态。
[0007]第二方面,本专利技术提供了基于检查点的区块链数据同步系统;
基于检查点的区块链数据同步系统,包括:若干个区块链节点;当前区块链节点在区块数达到检查点长度的整数倍后,当前区块链节点将自身的最新状态发送给区块链的其他节点;同时,当前区块链节点也接收其他节点发来的最新状态数据;当前区块链节点接收到其他节点的最新状态数据后,根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点;当前区块链节点将落后的区块,按照设定区间划分为若干个同步请求包,将同步请求包发送给区块链的其他节点;其他节点接收到同步请求包以后,根据同步请求包的请求,从自身节点上查询出相应的数据,将查询到的数据打包后发送给当前区块链节点;当前区块链节点收到打包数据后,将打包数据加入缓存,并对缓存中的数据进行排序,并对当前打包数据进行校验,如果校验状态一致,则将打包数据中的区块落盘,并更新当前区块链节点的状态。
[0008]与现有技术相比,本专利技术的有益效果是:1、本专利技术提出的基于检查点的区块链数据同步方法,可在系统运行过程中及时发现节点数据缺失,状态落后,并自动恢复,不增加系统额外负担,不用人工干预,省时省力。
[0009]2、本专利技术提出的基于检查点的区块链数据同步方法,在不影响系统正常共识的情况下,主动索取落后区块数据,帮助落后节点自动将账本同步到当前区块链的最新账本状态,大大增强了整个区块链系统的可用性。
[0010]3、本专利技术提出的基于检查点的区块链数据同步方法,检查点大小可灵活配置,单次同步数据量可灵活配置,大大增强了数据同步的灵活性。
附图说明
[0011]构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0012]图1为实施例一的方法流程图。
具体实施方式
[0013]应该指出,以下详细说明都是示例性的,旨在对本专利技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本专利技术所属
的普通技术人员通常理解的相同含义。
[0014]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本专利技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0015]在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0016]本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
[0017]实施例一本实施例提供了基于检查点的区块链数据同步方法;如图1所示,基于检查点的区块链数据同步方法,应用于区块链节点,包括:S101:当前区块链节点在区块数达到检查点长度的整数倍后,当前区块链节点将自身的最新状态发送给区块链的其他节点;同时,当前区块链节点也接收其他节点发来的最新状态数据;S102:当前区块链节点接收到其他节点的最新状态数据后,根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点;S103:当前区块链节点将落后的区块,按照设定区间划分为若干个同步请求包,将同步请求包发送给区块链的其他节点;其他节点接收到同步请求包以后,根据同步请求包的请求,从自身节点上查询出相应的数据,将查询到的数据打包后发送给当前区块链节点;S104:当前区块链节点收到打包数据后,将打包数据加入缓存,并对缓存中的数据进行排序,并对当前打包数据进行校验,如果校验状态一致,则将打包数据中的区块落盘,并更新当前区块链节点的状态。
[0018]进一步地,所述S101中,最新状态,包括:当前区块链节点当前最高区块号以及当前区块链节点所有区块的哈希值。
[0019]进一步地,所述S101中,检查点长度用K表示,检查点长度表示区块间隔。
[0020]进一步地,所述S102:根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点,具体包括:进行哈希值对比和最高区块号对比,如果当前区块链节点的哈希值跟其他节点的哈希值不一致,或者当前区块链节点的最高区块号小于其他节点的最高区块号,则说明当前区块链节点自身状态落后于其他节点,启动数据同步流程。
[0021]进一步地,所述S102中,还包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于检查点的区块链数据同步方法,其特征是,应用于区块链节点,包括:当前区块链节点在区块数达到检查点长度的整数倍后,当前区块链节点将自身的最新状态发送给区块链的其他节点;同时,当前区块链节点也接收其他节点发来的最新状态数据;当前区块链节点接收到其他节点的最新状态数据后,根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点;当前区块链节点将落后的区块,按照设定区间划分为若干个同步请求包,将同步请求包发送给区块链的其他节点;其他节点接收到同步请求包以后,根据同步请求包的请求,从自身节点上查询出相应的数据,将查询到的数据打包后发送给当前区块链节点;当前区块链节点收到打包数据后,将打包数据加入缓存,并对缓存中的数据进行排序,并对当前打包数据进行校验,如果校验状态一致,则将打包数据中的区块落盘,并更新当前区块链节点的状态。2.如权利要求1所述的基于检查点的区块链数据同步方法,其特征是,最新状态,包括:当前区块链节点当前最高区块号以及当前区块链节点所有区块的哈希值。3.如权利要求1所述的基于检查点的区块链数据同步方法,其特征是,根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点,具体包括:进行哈希值对比和最高区块号对比,如果当前区块链节点的哈希值跟其他节点的哈希值不一致,或者当前区块链节点的最高区块号小于其他节点的最高区块号,则说明当前区块链节点自身状态落后于其他节点,启动数据同步流程。4.如权利要求1所述的基于检查点的区块链数据同步方法,其特征是,所述当前区块链节点接收到其他节点的最新状态数据后,根据哈希值和最高区块号判断当前区块链节点是否落后于其他节点,还包括:如果当前区块链节点自身状态与其他节点是同步的,则将最新状态数据落盘。5.如权利要求1所述的基于检查点的区块链数据同步方法,其特征是,所述同步请求包,包括:待同步数据的总区间数T、当前同步数据的区间数编号C、自身的最高区块号和最新状态数据;所述将同步请求包发送给区块链的其他节点,是指:将同步请求包按区间划分顺序依次发送给区块链的其他节点。6.如权利要求1所述的基于检查点的区块链数据同步方法,其特征是,所述将查询到的数据打包后发送给当前区块链节点,其中,被打包的数据,包括:其他区块链节点所有区块的哈希值、查询的区块数据、区块链节点的最新状态、同步请求包中的待同步数据的总段数和当前同步数据的段数编号。7.如权利要求1所述的基于检查点的区块链数据同步方法,其特...

【专利技术属性】
技术研发人员:王娟张国艳戴振利齐庆庆李若寒
申请(专利权)人:山东区块链研究院
类型:发明
国别省市:

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

1