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

一种区块链网络高效率数据传输方法与流程

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


1.本发明涉及信息技术领域,具体涉及一种区块链网络高效率数据传输方法。


背景技术:

2.区块链是一种去中心化的分布式账本技术。区块链网络采用点对点数据传输方式,区块链节点之间是平等的关系。存储于其中的数据或信息,具有不可伪造、全程留痕、可以追溯、公开透明及集体维护等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制。为了维护区块链节点记录的账本统一性,区块链节点需要执行共识算法,在进行共识算法的过程中,区块链节点需要广播大量的数据。近年来随着区块链技术的应用的发展,区块链业务逐渐繁忙,导致区块链网络日益繁忙。甚至出现堵塞情况,严重影响了区块链用户的使用。因而需要研究提高区块链网络数据传输效率的方法。
3.如中国专利cn111447290a,公开日2020年7月24日,公开了区块链网络中的通信方法、业务数据传输方法。区块链网络包括p2p网络和中继网络。p2p网络中的区块链节点分别通过p2p网络和中继网络发送探测消息至其它区块链节点,根据探测消息的发送时间和响应消息的接收时间获得与p2p网络对应的第一服务质量数据和与中继网络对应的第二服务质量数据,根据第一服务质量数据和第二服务质量数据的比较结果记录链路优化信息。如此,区块链节点、中继节点可以根据链路优化信息选择服务质量更优的网络通信链路传输业务数据。其技术方案取得提高传输效率依赖于通信链路是否存在更优链路,若通信链路整体拥堵,则其技术方案无法取得有益效果。且寻找最优链路又增加了通信链路的负担。


技术实现要素:

4.本发明要解决的技术问题是:目前区块链网络数据传输效率较低的技术问题。提出了一种区块链网络高效率数据传输方法,能够提高区块链网络的数据传输效率。
5.为解决上述技术问题,本发明所采取的技术方案为:一种区块链网络高效率数据传输方法,包括:约定传输二进制位长度为l,记为二进制数d,获得二进制数d的取值范围;获得二进制数d的中位值d,设定二进制数d的分布概率为以d为数学期望值,方差为σ^2的正态分布;将分布概率区间(0,η)划分为若干个概率区间,η为正泰分布的最高概率值;获得每个概率区间对应的二进制数d的取值并划归为一组;为每组设置组编号,为每组的二进制数d按照分布概率降序排序,分布概率相同时以数值降序排列,排序序号作为二进制数d的替代值;发送数据的节点将待传输数据转换为二进制数据流,将二进制流补位后截取为若干个长度l的二进制数d;获得二进制数d落入的组编号和替代值,将组编号和替代值发送给接收数据的节点;接收数据的节点根据组编号和替代值获得二进制数d;全部二进制数d被传输后,发送数据的节点将补位长度发送给接收数据的节点,接收数据的节点去除补位长度后,获得完整的数据。
6.作为优选,设置组编号的方法包括:计算每个概率区间的中位值,将若干个概率区间按照中位值降序排列;将m个概率区间划为一类,m的初值为2,随着排序的增加m的值逐渐
增大;为每个类设置霍夫曼编码作为类编码,为每个类中的概率区间编制序号作为区间序号,类编码和区间序号拼接作为组编号。
7.作为优选,设定标识符,将标识符视为组参与分配组编号,分配的组编号即表示标识符,标识符表示组编号与上一次相同。
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.作为优选,区块链网络维护活跃账户表,活跃账户表记录账户、活跃度和账户编码;预设考察周期内账户进行一次交易,则活跃度增加1;考察周期结束后,按照活跃度将账户降序排列,去除活跃度低于预设值的账户;将排列的前若干个账户编制霍夫曼编码,作为账户编码写入活跃账户表;区块链节点发送区块时,若区块内的账户存在于活跃账户表中,则将区块内的账户替换为对应的账户编码;收到区块的区块链节点将区块备份,将区块内的账户编码换回账户后验证存储区块;将区块的备份发送给其他区块链节点。
11.本发明的实质性效果是:通过压缩需要传输的数据长度,直接提高区块链网络数据传输的效率;结合传输数据的分布概率,将分布概率较高的数据使用更短的编码表示,能够获得更高的压缩率,提高数据传输的效率;通过维护活跃账户表,使用账户编码替代账户,进一步缩短区块链网络需要传输的数据长度,提高数据传输效率。
附图说明
12.图1为实施例一数据传输方法示意图。
13.图2为实施例一设置组编号方法示意图。
14.图3为实施例一活跃账户表使用方法示意图。
具体实施方式
15.下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
16.实施例一:一种区块链网络高效率数据传输方法,请参阅附图1,包括:步骤a01)约定传输二进制位长度为l,记为二进制数d,获得二进制数d的取值范围;步骤a02)获得二进制数d的中位值d,设定二进制数d的分布概率为以d为数学期望值,方差为σ^2的正态分布;步骤a03)将分布概率区间(0,η)划分为若干个概率区间,η为正泰分布的最高概率值;步骤a04)获得每个概率区间对应的二进制数d的取值并划归为一组;步骤a05)为每组设置组编号,为每组的二进制数d按照分布概率降序排序,分布概率相同时以数值降序排列,排序序号作为二进制数d的替代值;步骤a06)发送数据的节点将待传输数据转换为二进制数据流,将二进制流补位后截取为若干个长度l的二进制数d;步骤a07)获得二进制数d落入的组编号和替代值,将组编号和替代值发送给接收数据的节点;步骤a08)接收数据的节点根据组编号和替代值获得二进制数d;步骤a09)全部二进制数d被传输后,发送数据的节点将补位长度发送给接收数据的节点,接收数据的节点去除补位长度后,获得完整的数据。本实施例中约定单次传输
二进制长度l为16位,即2个字节。二进制数d的取值范围为:0x0000至0xffff,总共16的4次方个取值情况。区块链网络中需要传递大量的哈希值,哈希值是通过散列函数获得的,接近于正态分布的随机值。使用较短的替代值表示分布概率较高的二进制数d,能够压缩区块链网络需要传输的数据长度,提高数据传输效率。将分布概率区间(0,η)划分为16个概率区间,分别设置组编号。组编号加上排序序号即可表示二进制数d。
17.在步骤a07)中,本实施例进行以下判断,判断组编号和替代值占用长度是否超过长度l,若超过长度l则直接发送二进制数d。组编号和替代值被设定为不等于长度l。即当接收数据的节点收到的长度正好为l时,则直接接收,若收到的长度不等于l,则按照组编号和替代值找到相应的二进制数d的值。由于限定组编号和替代值超过长度l即直接发送二进制数d,因而接收数据的节点将仅能收到长度小于l的组编号和替代值,或者收到长度刚好等于l的二进制数d。
18.本实施例获得二进制数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的排序。
19.请参阅附图2,设置组编号的方法包括:步骤b01)计算每个概率区间的中位值,将若干个概率区间按照中位值降序排列;步骤b02)将m个概率区间划为一类,m的初值为2,随着排序的增加m的值逐渐增大;步骤b03)为每个类设置霍夫曼编码作为类编码,为每个类中的概率区间编制序号作为区间序号,类编码和区间序号拼接作为组编号。设定标识符,将标识符视为组参与分配组编号,分配的组编号即表示标识符,标识符表示组编号与上一次相同。
20.将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压缩率相同。
21.发送数据的节点一次发送多个二进制数d,具体包括:获得每个二进制数d的组编号和替代值;将多个二进制数d的编号和替代值拼接后发送给接收数据的节点。当一次发送多个二进制数d时,需要使全部二进制数d均使用组编号和替代值的方式,即使多个二进制数d中,存在某个二进制数d的组编号和替代值占用长度超过l,只要多个二进制数d整体上缩短了占用长度,即可采用一次发送多个二进制数d的方式。
22.本实施例通过设置活跃账户表,实现将用户账户替换为编码的效果,以进一步缩
短区块占用的长度,请参阅附图3,包括:步骤c01)区块链网络维护活跃账户表,活跃账户表记录账户、活跃度和账户编码;步骤c02)预设考察周期内账户进行一次交易,则活跃度增加1;步骤c03)考察周期结束后,按照活跃度将账户降序排列,去除活跃度低于预设值的账户;步骤c04)将排列的前若干个账户编制霍夫曼编码,作为账户编码写入活跃账户表;步骤c05)区块链节点发送区块时,若区块内的账户存在于活跃账户表中,则将区块内的账户替换为对应的账户编码;步骤c06)收到区块的区块链节点将区块备份,将区块内的账户编码换回账户后验证存储区块;步骤c07)将区块的备份发送给其他区块链节点。
23.表1 本实施例的活跃账户表账户活跃度账户编码0xbea59c06980dfb2102414100x942e6286df39fae1001365100xbd3230d9e2a3a49652101100x73751305e208b986012011100x7827b26aceac7a62402561111请参阅表1,若收到区块的节点,在对应账户的位值获得数值1110,则表明对应的账户地址为0x73751305e208b9,将区块内的1110替换回0x73751305e208b9。通过活跃账户表对账户地址进行霍夫曼编码,能够进一步的缩短区块内对应账户地址部分的长度,缩小区块大小,提高区块链网络传输效率。
24.本实施例的有益技术效果是:通过压缩需要传输的数据长度,直接提高区块链网络数据传输的效率;结合传输数据的分布概率,将分布概率较高的数据使用更短的编码表示,能够获得更高的压缩率,提高数据传输的效率;通过维护活跃账户表,使用账户编码替代账户,进一步缩短区块链网络需要传输的数据长度,提高数据传输效率。
25.以上的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
再多了解一些

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

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

相关文献