一种区块链数据的同步方法、装置及电子设备、存储介质制造方法及图纸

技术编号:24946216 阅读:40 留言:0更新日期:2020-07-17 22:56
本发明专利技术实施例公开了一种区块链数据的同步方法、装置及电子设备、存储介质,其中所述方法包括:从第一连接节点设备获取区块链数据对应的数据总树,并基于数据总树中目标总树叶子节点的值,从第二连接节点设备获取目标总树叶子节点对应的目标区间数据树;基于目标区间数据树中不同的目标区间树叶子节点的值从新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据,将各个目标分片数据整合为目标区间数据树对应的目标块区间的区间数据,进而获取各个块区间的区间数据,并对各个块区间的区间数据进行整合,得到区块链数据,完成区块链数据的同步。采用这样的方式,有利于提高同步区块链数据的速度。

【技术实现步骤摘要】
一种区块链数据的同步方法、装置及电子设备、存储介质
本申请涉及计算机
,尤其涉及一种区块链数据的同步方法、装置及电子设备、存储介质。
技术介绍
随着区块链运行,区块高度的逐渐增大,区块链数据也会越来越大,以太坊为例,截至2019年10月,块高度达到了8700000,全节点数据超过了2TB,而且仍在快速增长。对于新加入区块链网络的新增节点设备来说,同步历史区块链数据就需要数月,即便高配置机器,仍然需要数周时间,普通机器甚至都追赶不上数据区块的生成速度。因此,如何加快新增节点设备同步区块链中历史区块数据的速度,成为一个亟待解决的问题。
技术实现思路
本专利技术实施例提供了一种区块链数据的同步方法、装置及电子设备、存储介质,有利于提高新增节点设备同步区块链数据的速度。一方面,本专利技术实施例提供了一种区块链数据的同步方法,所述方法应用于区块链网络中的新增节点设备,所述方法包括:当新增节点设备加入区块链网络时,从第一连接节点设备获取区块链数据对应的数据总树,并基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树,所述区块链网络中的各个节点设备均存储有对所述区块链数据中的各个块区间对应的区间数据进行分片处理后得到的各个区间数据树,以及基于所述各个区间数据树生成的所述区块链数据对应的数据总树,所述数据总树中的各个叶子节点与所述各个区间数据树一一对应;基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据,其中,各个所述目标分片数据为所述不同的目标区间树叶子节点各自对应的分片数据;将各个所述目标分片数据整合为所述目标区间数据树对应的目标块区间的区间数据;获取所述各个块区间的所述区间数据,并对所述各个块区间的所述区间数据进行整合,得到所述区块链数据;其中,所述第一连接节点设备和所述第二连接节点设备均为所述各个连接节点设备中的任一个,所述目标总树叶子节点为所述数据总树包括的各个总树叶子节点中的一个或者多个,所述目标区间树叶子节点为所述目标区间数据树包括的各个区间树叶子节点中一个或者多个。在一个实施例中,一个所述数据总树对应一个区块链根哈希,所述基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树之前,还可以从所述各个连接节点设备获取所述数据总树对应的区块链根哈希,并对比所述各个连接节点设备返回的所述区块链根哈希;若对比得到预设数量阈值的所述区块链根哈希相同,则将所述相同的区块链根哈希确定为区块链指纹数据;判断从所述第一连接节点设备获取的所述数据总树对应的区块链根哈希与所述区块链指纹数据是否匹配,若匹配,则触发执行所述基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树的步骤。在一个实施例中,所述基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据之前,还可以对获取到的所述目标总树叶子节点对应的目标区间数据树进行校验;若校验通过,则触发执行所述基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据的步骤。在一个实施例中,一个所述区间数据树对应一个区间根哈希,所述对获取到的所述目标总树叶子节点对应的目标区间数据树进行校验的具体实施方式为:对获取到的所述目标区间数据树中各个叶子节点的值进行整合处理,并对所述整合处理得到的字符串进行哈希计算,得到所述字符串对应的哈希;将所述字符串对应的哈希与所述目标区间数据树对应的区间根哈希进行对比;若对比得到所述字符串对应的哈希与所述目标区间数据树对应的区间根哈希相同,则确定对所述目标总树叶子节点对应的目标区间数据树校验通过。在一个实施例中,所述数据总树中的各个叶子节点的值为所述各个叶子节点各自对应的区间数据树的区间根哈希,所述若对比得到所述字符串对应的哈希与所述目标区间数据树对应的区间根哈希相同,则确定对所述目标总树叶子节点对应的目标区间数据树校验通过的具体实施方式为:若对比得到所述字符串对应的哈希与所述目标区间数据树对应的区间根哈希相同,则在所述数据总树中获取所述目标区间数据树对应的叶子节点的值;对比所述目标区间数据树对应的区间根哈希与所述目标区间数据树对应的叶子节点的值,若对比得到所述目标区间数据树对应的区间根哈希与所述目标区间数据树对应的叶子节点的值相同,则确定对所述目标总树叶子节点对应的目标区间数据树校验通过。在一个实施例中,所述基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据的具体实施方式为:向所述新增节点设备对应的各个连接节点设备并行发送不同的分片数据获取请求,每个所述分片数据获取请求包括所述目标区间数据树中不同的目标区间树叶子节点的值,以使所述各个连接节点设备基于各自接收到的所述分片数据获取请求中的目标区间树叶子节点的值获取所述不同的目标区间树叶子节点各自对应的目标分片数据;接收所述各个连接节点设备返回的所述不同的目标区间树叶子节点各自对应的目标分片数据。在一个实施例中,所述基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据的具体实施方式为:从所述新增节点设备对应的各个连接节点设备获取网际互连协议IP列表;连接所述IP列表对应的各个目标节点设备,并基于所述目标区间数据树中不同的目标区间树叶子节点的值与所述各个目标节点设备交换分片数据,以获取所述不同的目标区间树叶子节点各自对应的目标分片数据。另一方面,本专利技术实施例提供了一种区块链数据的同步装置,所述同步装置配置于区块链网络中的新增节点设备,包括:通信模块,用于当新增节点设备加入区块链网络时,从第一连接节点设备获取区块链数据对应的数据总树,并基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树;所述通信模块,还用于基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据,其中,各个所述目标分片数据为所述不同的目标区间树叶子节点各自对应的分片数据;处理模块,用于将各个所述目标分片数据整合为所述目标区间数据树对应的目标块区间的区间数据,获取所述各个块区间的所述区间数据,并对所述各个块区间的所述区间数据进行整合,得到所述区块链数据。再一方面,本专利技术实施例提供了一种电子设备,包括处理器、存储器和通信接口,所述处理器、存储器和通信接口相互连接,其中,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如下步骤:通过通信接口从第一连接节点设备获取区块链数据对应的数据总树,并本文档来自技高网...

【技术保护点】
1.一种区块链数据的同步方法,其特征在于,所述方法包括:/n当新增节点设备加入区块链网络时,从第一连接节点设备获取区块链数据对应的数据总树,并基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树,其中,所述区块链网络中的各个节点设备均存储有对所述区块链数据中的各个块区间对应的区间数据进行分片处理后得到的各个区间数据树,以及基于所述各个区间数据树生成的所述区块链数据对应的数据总树,所述数据总树中的各个叶子节点与所述各个区间数据树一一对应;/n基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据,其中,各个所述目标分片数据为所述不同的目标区间树叶子节点各自对应的分片数据;/n将各个所述目标分片数据整合为所述目标区间数据树对应的目标块区间的区间数据;/n获取所述各个块区间的所述区间数据,并对所述各个块区间的所述区间数据进行整合,得到所述区块链数据;/n其中,所述第一连接节点设备和所述第二连接节点设备均为所述各个连接节点设备中的任一个,所述目标总树叶子节点为所述数据总树包括的各个总树叶子节点中的一个或者多个,所述目标区间树叶子节点为所述目标区间数据树包括的各个区间树叶子节点中一个或者多个。/n...

【技术特征摘要】
1.一种区块链数据的同步方法,其特征在于,所述方法包括:
当新增节点设备加入区块链网络时,从第一连接节点设备获取区块链数据对应的数据总树,并基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树,其中,所述区块链网络中的各个节点设备均存储有对所述区块链数据中的各个块区间对应的区间数据进行分片处理后得到的各个区间数据树,以及基于所述各个区间数据树生成的所述区块链数据对应的数据总树,所述数据总树中的各个叶子节点与所述各个区间数据树一一对应;
基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据,其中,各个所述目标分片数据为所述不同的目标区间树叶子节点各自对应的分片数据;
将各个所述目标分片数据整合为所述目标区间数据树对应的目标块区间的区间数据;
获取所述各个块区间的所述区间数据,并对所述各个块区间的所述区间数据进行整合,得到所述区块链数据;
其中,所述第一连接节点设备和所述第二连接节点设备均为所述各个连接节点设备中的任一个,所述目标总树叶子节点为所述数据总树包括的各个总树叶子节点中的一个或者多个,所述目标区间树叶子节点为所述目标区间数据树包括的各个区间树叶子节点中一个或者多个。


2.根据权利要求1所述的方法,其特征在于,一个所述数据总树对应一个区块链根哈希,所述基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树之前,所述方法还包括:
从所述各个连接节点设备获取所述数据总树对应的区块链根哈希,并对比所述各个连接节点设备返回的所述区块链根哈希;
若对比得到预设数量阈值的所述区块链根哈希相同,则将所述相同的区块链根哈希确定为区块链指纹数据;
判断从所述第一连接节点设备获取的所述数据总树对应的区块链根哈希与所述区块链指纹数据是否匹配,若匹配,则触发执行所述基于所述数据总树中目标总树叶子节点的值,从第二连接节点设备获取所述目标总树叶子节点对应的目标区间数据树的步骤。


3.根据权利要求1或2所述的方法,其特征在于,所述基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据之前,所述方法还包括:
对获取到的所述目标总树叶子节点对应的目标区间数据树进行校验;
若校验通过,则触发执行所述基于所述目标区间数据树中不同的目标区间树叶子节点的值从所述新增节点设备对应的各个连接节点设备并行获取至少一个目标分片数据的步骤。


4.根据权利要求3所述的方法,其特征在于,一个所述区间数据树对应一个区间根哈希,所述对获取到的所述目标总树叶子节点对应的目标区间数据树进行校验,包括:
对获取到的所述目标区间数据树中各个叶子节点的值进行整合处理,并对所述整合处理得到的字符串进行哈希计算,得到所述字符串对应的哈希;
将所述字符串对应的哈希与所述目标区间数据树对应的区间根哈希进行对比;
若对比得到所述字符串对应的哈希与所述目标区间数据树对应的区间根哈希相同,则确定对所述目标总树叶子节点对应的目标区间数据树校验通过。


5.根据权利要求4所述的方法,其特征在...

【专利技术属性】
技术研发人员:李宁薄辰龙
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东;44

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

1