本发明专利技术公开了一种基于高度的区块链对等网络数据同步方法,包括以下步骤:计算需被正式记录在账本的账本数据集合高度账本记录者通过消息广播将该账本数据集合高度同该账本数据集合广播给临近账本记录者,临近账本记录者接收广播的消息并存储在本地;各账本记录者定时向其周边的记账节点发送节点高度查询请求,并根据请求返回节点高度同本地节点高度进行比较,若请求返回节点高度大于本地节点高度,则启动补差机制进行数据同步。本发明专利技术在区块链网络系统允许任意节点的自由进出的前提下,快速精确的在分布式对等网络系统中评判节点数据是否处于最新的计算基线;同时也为对等网络中不同节点间数据复制定义了同步标准和范围。范围。范围。
【技术实现步骤摘要】
一种基于高度的区块链对等网络数据同步方法
[0001]本专利技术涉及区块链
,尤其涉及一种基于高度的区块链对等网络数据同步方法,适用于区块链对等网络、共识一致的区块链数据同步。
技术介绍
[0002]数据同步的存在是因为计算机在存储数据的的时候,不同的存储介质读写效率有较大差别,所以缓存的设计被大多数计算机系统采用。存在缓存机制的计算机,在写入数据的时候,系统不会立即将数据写入读写速度慢的存储介质中(如外存),而是保存在读写速度快的存储介质中(如内存);在读取数据的时候,系统会查看读写速度快的存储介质中是否有该数据的备份,如果有则可以直接读取这个备份。这样系统可以减少对外存的访问,大大提高系统性能。
[0003]区块链网络系统是一种分布式计算和存储系统,在区块链网络系统的每一个核心构成节点上,需要保证存储同样内容的数据拷贝,以确保各个节点处于相同的计算基线。区别于传统的分布式系统,区块链网络系统是对等网络结构,每一个节点都拥有平等的记账权,而数据拷贝的一致性就是平等记账权的前提和基本保证;同时区块链网络系统允许任意节点自由进出,即节点可以随时加入或退出网络,由此可见,区块链网络系统必然涉及到节点间频繁的数据同步操作。因此,需要提出一种能够在对等网络环境下,快速界定节点需要补充的数据拷贝的内容和范围的机制。
[0004]申请号为CN202110317042.8 的专利申请文件公开了一种数据同步方法、装置、计算机可读介质及电子设备,该方法包括:获取当前区块链节点的请求起始高度和请求结束高度;获取邻接节点的区块高度,邻接节点是与当前区块链节点处于同一区块链网络的其他区块链节点;若邻接节点的区块高度大于当前区块链节点的区块高度,则根据请求起始高度、请求结束高度、预设的滑动窗口尺寸以及邻接节点的区块高度之间的数值关系确定目标高度,目标高度大于请求结束高度;根据目标高度和请求结束高度之间的高度差值对外发送数据同步请求。该方法利用区块链网络中的当前区块链节点和邻接节点的数据资源来实现数据同步,但是该方案没有采用定时轮询补差机制来保证区块链网络中的所有节点都完成数据同步操作,且也没有设计相应的数据存储形式来存储本地的高度数据,在数据同步和存储效率方面有待提高。
技术实现思路
[0005]本专利技术的目的在于克服现有技术的不足,提供一种基于高度的区块链对等网络数据同步方法,在区块链共识一致的前提下,通过高度来判断未知数据集合是否一致,可有效的解决区块链网络节点间数据同步和数据一致性的问题。
[0006]本专利技术的目的是通过以下技术方案来实现的:一种基于高度的区块链对等网络数据同步方法,包括以下步骤:步骤一:节点高度计算,计算需被正式记录在账本的账本数据集合高度;
步骤二:主动广播及接收,账本记录者通过消息广播将该账本数据集合高度同该账本数据集合广播给临近账本记录者,临近账本记录者接收广播的消息并存储在本地;步骤三:定时轮询补差,各账本记录者定时向其周边的记账节点发送节点高度查询请求,并根据请求返回节点高度同本地节点高度进行比较,若请求返回节点高度大于本地节点高度,则启动补差机制进行数据同步。
[0007]具体的,账本数据集合高度具体包括区块链对等网络中该账本数据集合所在归属分区的分区号长度、分区号和数字序号。
[0008]步骤二还包括:临近记录者将接收到的消息的转发次数减一,对于次数不为零的消息,将其继续转发广播给区块链对等网络中的其他节点;同时临近记录者将接收消息中的账本数据集合存储到本地,并重新计算本地最大连续高度。
[0009]具体的,计算本地最大连续高度过程具体包括:S1,查找高度S设置为当前分区最大数据集合高度h;本地最大连续高度H同样设置为分区最大数据集合高度h;S2,在本地存储中寻找查找高度S的前序数据集合高度,并赋值给PreS,若找到,则执行步骤S3;如未找到,则执行步骤S4;S3,如PreS是本分区第一个数据集合高度,则退出计算过程,H为所计算的本地最大连续高度;如不是,则设置S为PreS,执行步骤S2;S4,查找高度S的高度值减一,并赋值给H,返回执行步骤S2。
[0010]具体的,临近记录者将接收消息中的账本数据集合高度存储到本地具体包括:对接收消息中的账本数据集合高度进行分段获得多个数据段,并生成每个数据段对应的段位、段位号和段位内位置号;对每个数据段的段位进行分组,并生成每个分组的分组号和分组内位置号,每一个段位均由8192/8个分组构成;每个分组为一个byte;分组记录段位范围内的二进制位图,1为存在,0为不存在,从左向右,由低位向高位排列,获得每个数据段的段内分组集合;将段位号和段内分组集合建立映射关系存储在KV数据库中。
[0011]进一步的,上述账本数据集合高度数据存储过程中还包括对给定本地最大连续高度H的本地数据集合检索,该过程具体为:1)通过给定本地最大连续高度H与8192取余,获得段位号seg;2)通过给定本地最大连续高度H与8192取模,获得段位内位置号offset;3)根据段位号seg,检索KV数据库,获得段内分组集合marks;4)通过段位内位置号offset与8192取余,获得分组号partID;5)通过段位内位置号offset与8192取模,获得分组内位置号partPos;6)根据分组号partID在段内分组集合marks中找到对应的段内分组mark,并进一步根据分组内位置号partPos在段内分组mark中找到给定本地最大连续高度H对应的二进制位;7)如二进制位的值为1,则表示存在本地最大连续高度为H的本地数据集合;如为0,则表示不存在。
[0012]本专利技术的有益效果:本专利技术可在区块链网络系统允许任意节点的自由进出的前提下,快速精确的在分布式对等网络系统中评判节点数据是否处于最新的计算基线;同时,也为对等网络中不同
节点间数据复制定义了同步标准和范围,可有效的解决区块链网络节点间数据同步和数据一致性的问题。
附图说明
[0013]图1是本专利技术的方法步骤流程图。
具体实施方式
[0014]为了对本专利技术的技术特征、目的和有益效果有更加清楚的理解,现对本专利技术的技术方案精选以下详细说明。显然,所描述的实施案例是本专利技术一部分实施例,而不是全部实施例,不能理解为对本专利技术可实施范围的限定。基于本专利技术的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的其他所有实施例,都属于本专利技术的保护范围。
[0015]现有的区块链网络系统是一种分布式计算和存储系统,在区块链网络系统的每一个核心构成节点上,需要保证存储同样内容的数据拷贝,以确保各个节点处于相同的计算基线。区别于传统的分布式系统,区块链网络系统是对等网络结构,每一个节点都拥有平等的记账权,而数据拷贝的一致性就是平等记账权的前提和基本保证;同时区块链网络系统允许任意节点自由进出,即节点可以随时加入或退出网络,由此可见,区块链网络系统必然涉及到节点间频繁的数据同步操作。因此,需要提出一种能够在区块链对等网络环境下,快速界定节点需要补充的数本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于高度的区块链对等网络数据同步方法,其特征在于,包括以下步骤:步骤一:节点高度计算,计算需被正式记录在账本的账本数据集合高度;步骤二:主动广播及接收,账本记录者通过消息广播将该账本数据集合高度同该账本数据集合广播给临近账本记录者,临近账本记录者接收广播的消息并存储在本地;步骤三:定时轮询补差,各账本记录者定时向其周边的记账节点发送节点高度查询请求,并根据请求返回节点高度同本地节点高度进行比较,若请求返回节点高度大于本地节点高度,则启动补差机制进行数据同步。2.根据权利要求1所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,所述账本数据集合高度具体包括区块链对等网络中该账本数据集合所在归属分区的分区号长度、分区号和数字序号。3.根据权利要求1所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,所述步骤二还包括:临近记录者将接收到的消息的转发次数减一,对于次数不为零的消息,将其继续转发广播给区块链对等网络中的其他节点;同时临近记录者将接收消息中的账本数据集合高度存储到本地,并重新计算本地最大连续高度。4.根据权利要求3所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,所述计算本地最大连续高度过程具体包括:S1,查找高度S设置为当前分区最大数据集合高度h;本地最大连续高度H同样设置为分区最大数据集合高度h;S2,在本地存储中寻找查找高度S的前序数据集合高度,并赋值给PreS,若找到,则执行步骤S3;如未找到,则执行步骤S4;S3,如PreS是本分区第一个数据集合高度,则退出计算过程,H为所计算的本地最大连续高度;如不是,则设置S为PreS,执行步骤S...
【专利技术属性】
技术研发人员:张秦龙,吕雯,
申请(专利权)人:北京天成通链科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。