一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区块链节点快速广播区块的方法与流程

2022-06-02 12:17:35 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,具体涉及一种区块链节点快速广播区块的方法。


背景技术:

2.区块链是一种去中心化的分布式账本技术。区块链网络采用点对点数据传输方式,区块链节点之间是平等的关系。存储于其中的数据或信息,具有不可伪造、全程留痕、可以追溯、公开透明及集体维护等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制。由于区块链网络是一种去中心化的系统,为了达成账本的统一,区块链节点之间需要执行共识算法,实现账本的统一。在共识过程中,区块链节点需要广播大量的区块数据,给区块链网络带来的巨大的负载。随着区块链应用的推广,区块链网络出现了拥堵,影响了用户的使用,甚至影响到区块链系统的安全。
3.如中国专利cn110572460a,公开日2019年12月13日,一种基于区块链系统的数据传输方法、装置、计算机设备及存储介质,属于通信技术领域。本技术通过在局域网内设置代理节点,由代理节点接收局域网内各个节点设备发送的待传输数据,对各个节点设备待传输数据进行压缩,生成多个数据传输报文,分别向该局域网之外的各个目标节点设备发送该多个数据传输报文,能够仅对公网暴露代理节点的ip地址和通信端口,降低了局域网内各节点设备遭受网络攻击的风险,提升了区块链系统间数据传输的安全性。其技术方案虽然提高了数据传输的安全性,但降低了区块链网络数据传输的效率,影响了区块的广播效率,不利于提高区块链达成共识的效率。


技术实现要素:

4.本发明要解决的技术问题是:目前区块链节点传输区块效率较低的技术问题。提出了一种区块链节点快速广播区块的方法,能够有效提高区块链节点广播区块的效率。
5.为解决上述技术问题,本发明所采取的技术方案为:一种区块链节点快速广播区块的方法,包括:在区块链网络中建立多个通信环,使每个区块链节点均参与多个通信环;区块链节点广播经过验证的区块时,将区块进行压缩;区块链节点依次向所在的通信环的下一个节点发送区块;若预设时长内未收到所在通信环的上一个节点发送的区块,则向对应通信环的下下个节点发送区块,直到区块链节点所在的全部通信环的上一个节点均发送了区块。同组编号的区块链节点之间的通信延迟低于预设阈值。
6.作为优选,将区块进行压缩的方法包括:区块链网络约定传输二进制位长度为l;长度为l的二进制数记为二进制数d,获得二进制数d的取值范围,获得二进制数d的中位值d;设定二进制数d的分布概率为以d为数学期望值,方差为σ^2的正态分布;将分布概率区间(0,η)划分为若干个概率区间,η为正泰分布的最高概率值;获得每个概率区间对应的二进制数d的取值并划归为一组;为每组设置组编号,为每组的二进制数d按照分布概率降序排序,分布概率相同时以数值降序排列,排序序号作为二进制数d的替代值;发送数据的节点将待传输数据转换为二进制数据流,将二进制流补位后截取为若干个长度l的二进制数d;
获得二进制数d落入的组编号和替代值,将组编号和替代值发送给接收数据的节点;接收数据的节点根据组编号和替代值获得二进制数d;全部二进制数d被传输后,发送数据的节点将补位长度发送给接收数据的节点,接收数据的节点去除补位长度后,获得完整的数据。
7.作为优选,设置组编号的方法包括:计算每个概率区间的中位值,将若干个概率区间按照中位值降序排列;设定标识符,将标识符视为概率区间加入到概率区间的排列任意位置;将m个概率区间划为一类,m的初值为2,随着排序的增加m的值逐渐增大;为每个类设置霍夫曼编码作为类编码,为每个类中的概率区间编制序号作为区间序号,类编码和区间序号拼接作为组编号;标识符对应的组编号代表标识符,所述标识符表示当前传输的组编号与上一次传输时相同。
8.作为优选,发送数据的节点一次发送多个二进制数d,具体包括:获得每个二进制数d的组编号和替代值;将多个二进制数d的编号和替代值拼接后发送给接收数据的节点。
9.作为优选,获得二进制数d的排序序号k的方法为:计算概率区间对应的二进制数d的取值范围的中位值d;二进制数d的值记为h,当h≥d时,k=2*|h-d| 1,当h《d时,k=2*|h-d|。
10.本发明的实质性效果是:将区块链节点分为若干个通信环,每个区块链节点指定需要广播区块的下一个区块链节点,避免区块链节点重复的向相同的区块链节点广播区块,提高广播区块的效率;传输区块前将区块进行压缩,减少需要传输的数据长度,提高区块的广播传输效率;结合传输数据的分布概率,将分布概率较高的数据使用更短的编码表示,能够获得更高的压缩率,提高数据传输的效率。
附图说明
11.图1为实施例一快速广播区块方法示意图。
12.图2为实施例一通信环示意图。
13.图3为实施例一区块进行压缩方法示意图。
14.图4为实施例一设置组编号方法示意图。
15.其中:10、区块链节点,20、通信环。
具体实施方式
16.下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
17.实施例一:一种区块链节点快速广播区块的方法,请参阅附图1,包括:步骤a01)在区块链网络中建立多个通信环20,使每个区块链节点10均参与多个通信环20;步骤a02)区块链节点10广播经过验证的区块时,将区块进行压缩;步骤a03)区块链节点依次向所在的通信环20的下一个节点发送区块;步骤a04)若预设时长内未收到所在通信环20的上一个节点发送的区块,则向对应通信环0的下下个节点发送区块,直到区块链节点10所在的全部通信环20的上一个节点均发送了区块。
18.请参阅附图2,同组编号的区块链节点之间的通信延迟低于预设阈值。每个区块链节点均参与多个通信环。当区块链节点10收到参与的其中一个通信环的上一个节点发送的区块后,区块链节点10验证区块。验证通过后向通信环20的下一个节点发送区块。由于当前
通信环20内一开始即收到了上一个节点发送的区块,因而在当前通信环20内不需要判断是否能够在预设时长内收到上一个节点发送的区块。在其他通信环20中,则需要等待预设时长,若期间未收到其他通信环的上一个节点发送的区块,则向对应通信环内的下下个节点发送区块。若等待预设时长后,仍然未收到上一个节点发送的区块,则再次向下下个节点的下一个节点发送区块。
19.请参阅附图3,将区块进行压缩的方法包括:步骤b01)区块链网络约定传输二进制位长度为l;步骤b02)长度为l的二进制数记为二进制数d,获得二进制数d的取值范围,获得二进制数d的中位值d;步骤b03)设定二进制数d的分布概率为以d为数学期望值,方差为σ^2的正态分布;步骤b04)将分布概率区间(0,η)划分为若干个概率区间,η为正泰分布的最高概率值;步骤b05)获得每个概率区间对应的二进制数d的取值并划归为一组;步骤b06)为每组设置组编号,为每组的二进制数d按照分布概率降序排序,分布概率相同时以数值降序排列,排序序号作为二进制数d的替代值;步骤b07)发送数据的节点将待传输数据转换为二进制数据流,将二进制流补位后截取为若干个长度l的二进制数d;步骤b08)获得二进制数d落入的组编号和替代值,将组编号和替代值发送给接收数据的节点;步骤b09)接收数据的节点根据组编号和替代值获得二进制数d;步骤b10)全部二进制数d被传输后,发送数据的节点将补位长度发送给接收数据的节点,接收数据的节点去除补位长度后,获得完整的数据。本实施例中约定单次传输二进制长度l为16位,即2个字节。
20.在步骤b07)中,本实施例进行以下判断,判断组编号和替代值占用长度是否超过长度l,若超过长度l则直接发送二进制数d。组编号和替代值被设定为不等于长度l。即当接收数据的节点收到的长度正好为l时,则直接接收,若收到的长度不等于l,则按照组编号和替代值找到相应的二进制数d的值。由于限定组编号和替代值超过长度l即直接发送二进制数d,因而接收数据的节点将仅能收到长度小于l的组编号和替代值,或者收到长度刚好等于l的二进制数d。
21.二进制数d的取值范围为:0x0000至0xffff,总共16的4次方个取值情况。区块链网络中需要传递大量的哈希值,哈希值是通过散列函数获得的,接近于正态分布的随机值。使用较短的替代值表示分布概率较高的二进制数d,能够压缩区块链网络需要传输的数据长度,提高数据传输效率。将分布概率区间(0,η)划分为16个概率区间,分别设置组编号。组编号加上排序序号即可表示二进制数d。获得二进制数d的排序序号k的方法为:计算概率区间对应的二进制数d的取值范围的中位值d;二进制数d的值记为h,当h≥d时,k=2*|h-d| 1,当h《d时,k=2*|h-d|。值得注意的是,本实施例认为二进制数d符合以d为数学期望值,方差为σ^2的正态分布,并非是要求二进制数d真实符合正态分布,而是利用正态分布的概率计算式,确定二进制数d的排序序号。当标准差σ足够大时,正态分布在一定区间内,基本接近均匀分布。从而能够利用正态分布概率计算式,确定二进制数d的排序。
22.请参阅附图4,设置组编号的方法包括:步骤c01)计算每个概率区间的中位值,将若干个概率区间按照中位值降序排列;步骤c02)设定标识符,将标识符视为概率区间加入到概率区间的排列任意位置;步骤c03)将m个概率区间划为一类,m的初值为2,随着排序的增加m的值逐渐增大;步骤c04)为每个类设置霍夫曼编码作为类编码,为每个类中的概率区间编制序号作为区间序号,类编码和区间序号拼接作为组编号;步骤c05)标识符对应的组编号代表标识符,标识符表示当前传输的组编号与上一次传输时相同。
23.将16个概率区间划分为6类,6个类的霍夫曼编码分别为0,1,10,110,1110,11110。每个概率区间具有0x1000个数值。对应的第1组范围为:(0x74ff,0x84ff],第2组(0x6fff,0x74ff]∪(0x84ff,0x89ff],第3组(0x6aff,0x6fff]∪(0x89ff,0x8eff],第4组(0x65ff,0x6aff]∪(0x8eff,0xfeff],第5组(0x60ff,0x65ff]∪(0x93ff,0xffef],第6组(0x5bff,0x60ff]∪(0x93ff,0x98ff]等。第1组的数值共有0x1000个,表示全部0x1000个数值需要0x1000个排序序号,需要占用12位长度,加上类编号0和区间序号0占用2位。表示第1组的二进制数d,需要使用14位长度。相对于2字节的原数组,节省了的2位长度,能够压缩12.5%的长度。同样的,对于第2组而言,其类编号为0,区间序号为1,同样占用14位长度,与组1压缩率相同。
24.发送数据的节点一次发送多个二进制数d,具体包括:获得每个二进制数d的组编号和替代值;将多个二进制数d的编号和替代值拼接后发送给接收数据的节点。当一次发送多个二进制数d时,需要使全部二进制数d均使用组编号和替代值的方式,即使多个二进制数d中,存在某个二进制数d的组编号和替代值占用长度超过l,只要多个二进制数d整体上缩短了占用长度,即可采用一次发送多个二进制数d的方式。
25.本实施例的有益技术效果是:将区块链节点分为若干个通信环,每个区块链节点指定需要广播区块的下一个区块链节点,避免区块链节点重复的向相同的区块链节点广播区块,提高广播区块的效率;传输区块前将区块进行压缩,减少需要传输的数据长度,提高区块的广播传输效率;结合传输数据的分布概率,将分布概率较高的数据使用更短的编码表示,能够获得更高的压缩率,提高数据传输的效率。
26.以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献