技术特征:
1.一种基于高度的区块链对等网络数据同步方法,其特征在于,包括以下步骤:步骤一:节点高度计算,计算需被正式记录在账本的账本数据集合高度;步骤二:主动广播及接收,账本记录者通过消息广播将该账本数据集合高度同该账本数据集合广播给临近账本记录者,临近账本记录者接收广播的消息并存储在本地;步骤三:定时轮询补差,各账本记录者定时向其周边的记账节点发送节点高度查询请求,并根据请求返回节点高度同本地节点高度进行比较,若请求返回节点高度大于本地节点高度,则启动补差机制进行数据同步。2.根据权利要求1所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,所述账本数据集合高度具体包括区块链对等网络中该账本数据集合所在归属分区的分区号长度、分区号和数字序号。3.根据权利要求1所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,所述步骤二还包括:临近记录者将接收到的消息的转发次数减一,对于次数不为零的消息,将其继续转发广播给区块链对等网络中的其他节点;同时临近记录者将接收消息中的账本数据集合高度存储到本地,并重新计算本地最大连续高度。4.根据权利要求3所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,所述计算本地最大连续高度过程具体包括:s1,查找高度s设置为当前分区最大数据集合高度h;本地最大连续高度h同样设置为分区最大数据集合高度h;s2,在本地存储中寻找查找高度s的前序数据集合高度,并赋值给pres,若找到,则执行步骤s3;如未找到,则执行步骤s4;s3,如pres是本分区第一个数据集合高度,则退出计算过程,h为所计算的本地最大连续高度;如不是,则设置s为pres,执行步骤s2;s4,查找高度s的高度值减一,并赋值给h,返回执行步骤s2。5.根据权利要求3所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,所述临近记录者将接收消息中的账本数据集合高度存储到本地具体包括:对接收消息中的账本数据集合高度进行分段获得多个数据段,并生成每个数据段对应的段位、段位号和段位内位置号;对每个数据段的段位进行分组,并生成每个分组的分组号和分组内位置号,每一个段位均由8192/8个分组构成;每个分组为一个byte;分组记录段位范围内的二进制位图,1为存在,0为不存在,从左向右,由低位向高位排列,获得每个数据段的段内分组集合;将段位号和段内分组集合建立映射关系存储在kv数据库中。6.根据权利要求5所述的一种基于高度的区块链对等网络数据同步方法,其特征在于,还包括对给定本地最大连续高度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,则表示不存在。
技术总结
本发明公开了一种基于高度的区块链对等网络数据同步方法,包括以下步骤:计算需被正式记录在账本的账本数据集合高度账本记录者通过消息广播将该账本数据集合高度同该账本数据集合广播给临近账本记录者,临近账本记录者接收广播的消息并存储在本地;各账本记录者定时向其周边的记账节点发送节点高度查询请求,并根据请求返回节点高度同本地节点高度进行比较,若请求返回节点高度大于本地节点高度,则启动补差机制进行数据同步。本发明在区块链网络系统允许任意节点的自由进出的前提下,快速精确的在分布式对等网络系统中评判节点数据是否处于最新的计算基线;同时也为对等网络中不同节点间数据复制定义了同步标准和范围。范围。范围。
技术研发人员:张秦龙 吕雯
受保护的技术使用者:北京天成通链科技有限公司
技术研发日:2021.12.30
技术公布日:2022/5/25