当前位置: 首页 > 专利查询>新疆大学专利>正文

区块链节点的数据同步方法、装置及存储介质制造方法及图纸

技术编号:29964254 阅读:18 留言:0更新日期:2021-09-08 09:28
本发明专利技术公开了一种区块链节点的数据同步方法、装置及存储介质,应用于数据处理技术领域。本发明专利技术提供的方法包括:获取区块链的实时状态,基于所述实时状态对本地状态进行判断;若判断结果为本地状态与实时状态不一致,则向命名数据网络发起状态同步请求;接收所述命名数据网络基于所述状态同步请求反馈的区块链的世界状态树根,并基于所述世界状态树根向所述命名数据网络发起状态树重建请求;接收所述命名数据网络基于所述状态树重建请求反馈的待同步状态数据,并根据预设规则对本地状态进行数据同步。本发明专利技术用于提高区块链节点进行数据同步的效率。据同步的效率。据同步的效率。

【技术实现步骤摘要】
区块链节点的数据同步方法、装置及存储介质


[0001]本专利技术涉及数据处理
,尤其涉及区块链节点的数据同步方法、装置及存储介质。

技术介绍

[0002]区块链系统是一种去中心化、由多个节点参与的分布式共享账本,由系统中的所有节点共同维护区块链上的所有交易。同时,区块链需要借助所有节点,通过节点间的共识协议来确保各自数据的一致性。当参与节点发生故障时或者区块链系统有新的参与节点时,这些节点的数据可能会落后与其他节点所维护的数据。为了保证所有节点维护的数据的一致性,需要进行区块链节点之间的数据同步。
[0003]当区块链系统中的节点发现自己所维护的节点落后于其他节点的数据,可以发起数据同步请求,其他节点在接收到数据同步请求,可以将落后节点请求的数据打包发送给落后节点。
[0004]但这种方法需要从对等节点拉取大量数据进行同步,大量网络流量重复发送,且在同步数据量大、落后节点多的情况下,数据同步的效率不高。

技术实现思路

[0005]本专利技术提供一种区块链节点的数据同步方法、装置及存储介质,以提高区块链节点进行数据同步的效率。
[0006]一种区块链节点的数据同步方法,所述方法包括区块链中的任一区块链节点执行的如下步骤:
[0007]获取区块链的实时状态,基于所述实时状态对本地状态进行判断;
[0008]若判断结果为本地状态与实时状态不一致,则向命名数据网络发起状态同步请求;
[0009]接收所述命名数据网络基于所述状态同步请求反馈的区块链的世界状态树根,并基于所述世界状态树根向所述命名数据网络发起状态树重建请求;
[0010]接收所述命名数据网络基于所述状态树重建请求反馈的待同步状态数据,并根据预设规则对本地状态进行数据同步。
[0011]一种区块链节点的数据同步方法,所述方法包括命名数据网络节点执行的如下步骤:
[0012]在接收到区块链任一节点发起的状态同步请求时,将世界状态树根反馈给所述发起所述状态同步请求的区块链节点;
[0013]当接收到区块链任一节点发起的状态树重建请求时,基于所述状态树重建请求在本地进行查询,得到与所述状态树重建请求对应的状态数据,作为待同步状态数据,并将所述待同步状态数据反馈给发起所述状态树重建请求的区块链节点。
[0014]一种区块链节点的数据同步装置,所述装置为区块链节点,所述区块链节点包括:
[0015]实时状态获取模块,用于获取区块链的实时状态,基于所述实时状态对本地状态进行判断;
[0016]状态同步请求发起模块,用于若判断结果为本地状态与实时状态不一致,则向命名数据网络发起状态同步请求;
[0017]状态树重建请求模块,用于接收所述命名数据网络基于所述状态同步请求反馈的区块链的世界状态树根,并基于所述世界状态树根向所述命名数据网络发起状态树重建请求;
[0018]本地状态同步模块,用于接收所述命名数据网络基于所述状态树重建请求反馈的待同步状态数据,并根据预设规则对本地状态进行数据同步。
[0019]一种区块链节点的数据同步装置,所述装置为命名数据网络节点,所述命名数据网络节点包括:
[0020]状态同步请求接收模块,用于在接收到区块链任一节点发起的状态同步请求时,将世界状态树根反馈给所述发起所述状态同步请求的区块链节点;
[0021]状态数据反馈模块,用于当接收到区块链任一节点发起的状态树重建请求时,基于所述状态树重建请求在本地进行查询,得到与所述状态树重建请求对应的状态数据,作为待同步状态数据,并将所述待同步状态数据反馈给发起所述状态树重建请求的区块链节点。
[0022]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述区块链节点的数据同步方法的步骤。
[0023]本专利技术提供的区块链节点的数据同步方法、装置及存储介质,通过获取区块链的实时状态,当区块链任一节点的本地状态落后于实时状态,则向命名数据网络发起状态同步请求,并接收命名数据网络反馈的世界状态树根,基于世界状态树根发起状态树重建请求,根据命名数据网络返回的待同步状态数据,区块链的任一节点对本地状态进行同步,实现区块链节点的数据同步,提高区块链节点进行数据同步的效率。
附图说明
[0024]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0025]图1是本专利技术一实施例中区块链节点的数据同步方法的一应用环境示意图;
[0026]图2是本专利技术一实施例中区块链节点的数据同步方法的流程示意图;
[0027]图3是本专利技术一实施例中区块链节点的数据同步装置的结构示意图;
[0028]图4是本专利技术一实施例中计算机设备的一示意图。
具体实施方式
[0029]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施
例,都属于本专利技术保护的范围。
[0030]本专利技术实施例提供的区块链节点的数据同步方法,可应用在如图1的应用环境中,如图1所示,区块链节点101直接连接NDN网络节点102,并与其他区块链节点104以P2P的方式进行通信。其中,区块链节点101为本地状态与区块链的最新状态不一致的区块链节点,区块链节点104为区块链实时节点存储着最新的状态数据,作为一种优选方式,区块链网络采用基于以太坊体系架构,使用默克尔帕特里夏树作为世界状态的存储结构。
[0031]在一实施例中,如图2所示,提供一种区块链节点的数据同步方法,以该方法应用在图1中的应用环境为例进行说明,所述方法包括S301至S306:
[0032]S301,区块链节点获取区块链的实时状态,基于实时状态对本地状态进行判断。
[0033]其中,获取区块链当前的实时状态信息,根据实时状态信息判断区块链节点的本地状态是否与实时状态信息一致。
[0034]区块链的实时状态具体是以太坊架构中的世界状态。世界状态是指地址(账户)到账户状态的映射,被视作随着交易的执行而持续更新的全局状态。以太坊的所有账户信息以及交易数据都体现在世界状态之中,并且由世界状态树进行保存。状态数据指包含账户信息以及交易数据等表示区块链状态的数据。
[0035]区块链中的区块由区块头和区块体组成,世界状态树的根节点以及根节点哈希值存储在区块头中。因此,通过获取区块链当前最新生成的区块,新区块中的世界状态树存储了区块链的最新状态的状态数据。
[0036]S302,若区块链节点的判断结果为本地状态与实时状态不一致,则向命名数据网络发起状态本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链节点的数据同步方法,其特征在于,所述方法包括区块链中的任一区块链节点执行的如下步骤:获取区块链的实时状态,基于所述实时状态对本地状态进行判断;若判断结果为本地状态与实时状态不一致,则向命名数据网络发起状态同步请求;接收所述命名数据网络基于所述状态同步请求反馈的区块链的世界状态树根,并基于所述世界状态树根向所述命名数据网络发起状态树重建请求;接收所述命名数据网络基于所述状态树重建请求反馈的待同步状态数据,并根据预设规则对本地状态进行数据同步。2.根据权利要求1所述的区块链节点的数据同步方法,其特征在于,所述获取区块链的实时状态,基于所述实时状态对本地状态进行判断的步骤包括:获取区块链的区块广播信息,根据所述区块广播信息确定区块链中新生成区块的世界状态根;将世界状态根的哈希值与本地状态根的哈希值进行比较,若两者的哈希值不一致,则比较新生成区块的区块号与本地区块的区块号;若比较结果为所述新生成区块的区块号大于所述本地区块的区块号,则确认本地状态落后于实时状态。3.根据权利要求1所述的区块链节点的数据同步方法,其特征在于,所述接收所述命名数据网络基于所述状态同步请求反馈的区块链的世界状态树根,并基于所述世界状态树根发起状态树重建请求的步骤包括:根据所述世界状态树根获取对应的区块链状态数据,并将所述区块链状态数据与本地状态数据进行对比;若对比结果为区块链状态数据无法与本地状态数据进行状态数据续接,则基于所述区块链状态数据,向所述命名数据发起状态树重建请求,请求所述区块链状态数据的子状态数据。4.根据权利要求1所述的区块链节点的数据同步请求,其特征在于,所述接收所述命名数据网络基于所述状态树重建请求反馈的待同步状态数据,并根据预设规则对本地状态进行数据同步的步骤包括:接收所述命名数据网络反馈的与所述世界状态树根对应的子节点信息;基于所述子节点信息发起状态获取请求,并接收所述命名数据网络反馈的对应的状态数据;当接收到所有本地状态不存在的状态数据,基于哈希变换规则对本地状态树进行重建,实现本地状态的数据同步。5.根据权利要求4所述的区块链节点的数据同步方法,其特征在于,基于所述子节点信息发起状态获取请求,并接收所述命名数据网络反馈的对应的状态数据的步骤包括:基于所述子节点信息,确定所述子节点对应的子节点哈希值;在本地状态中查找所述节点哈希值,若没有查询到对应的节点哈希值,则以所述节点哈希值为查询索引所述命名数据网络发起状态数据获取请求。6.一种区块链节点的数据同步方法,其特征在于,所述方法包括命名数据网络节点执行的如下步骤:
在接收到区块链任一节点发起的...

【专利技术属性】
技术研发人员:陈权杨文忠马红桥康鹏李闯雷景皓侯温馨王卓雯王敏妥美妹杨晴雯
申请(专利权)人:新疆大学
类型:发明
国别省市:

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

1