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

一种适于区块链的低网络占用数据传输方法与流程

2022-06-01 03:11:54 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,具体涉及一种适于区块链的低网络占用数据传输方法。


背景技术:

2.区块链是一个共享账本,具有可追溯、不可篡改、透明和共同维护的特征。区块链网络中,节点与节点之间的平等的关系,通过共识算法实现账本的统一。因而区块链网络需要承载大量的点对点的数据传输。随着区块链应用的发展,区块链网络出现了堵塞,导致出块延迟,严重影响了区块链用户的使用。由于区块链是一种去中心化的系统,参与维护区块链的节点越多,区块链系统就越稳定安全。由于区块链节点的网络条件不同,因而现有的网络传输加速手段并不能适用于全部区块链节点。研究如何提高区块链网络的数据传输效率,成为当前的重要课题。
3.如中国专利cn111447290a,公开日2020年7月24日,公开了区块链网络中的通信方法、业务数据传输方法。所述区块链网络包括p2p网络和中继网络。p2p网络中的区块链节点分别通过p2p网络和中继网络发送探测消息至其它区块链节点,根据探测消息的发送时间和响应消息的接收时间获得与p2p网络对应的第一服务质量数据和与中继网络对应的第二服务质量数据,根据第一服务质量数据和第二服务质量数据的比较结果记录链路优化信息。如此,区块链节点、中继节点可以根据链路优化信息选择服务质量更优的网络通信链路传输业务数据。其通过选择更优的通信链路,提高网络传输效率的效果有限。对于网络上链路普遍拥挤的情况下,难以起到提高通信效率的作用。


技术实现要素:

4.本发明要解决的技术问题是:目前区块链网络通信效率较低的技术问题。提出了种适于区块链的低网络占用数据传输方法,通过压缩数据传输量,能够有效提高区块链网络的通畅程度。
5.为解决上述技术问题,本发明所采取的技术方案为:一种适于区块链的低网络占用数据传输方法,包括:约定二进制报文首尾格式和单次传输长度l,约定自变量x的长度;数据发送方生成n个一元多项式f(x),使n个一元多项式的值域覆盖l位二进制数取值范围;将n个一元多项式编号,并以常规加密通信方式发送给数据接收方;数据发送方将待发送数据转换为二进制数据流;从二进制数据流中抽取长度l的二进制数据;数据发送方将长度l的二进制数据视为二进制数d,选择一个一元多项式,计算使f(x)=d成立的x值;将x值和一元多项式编号y按照约定格式添加报文首尾后,构成报文发送给数据接收方,其中x和y占用的传输长度小于l;数据接收方复原获得f(x)的值;全部报文传输完成后,数据接收方将获得完整的二进制数据流。
6.作为优选,抽取长度l的二进制数据的方法包括:数据发送方将待发送数据转换为二进制数据流;按顺序从二进制数据流截取长度l的二进制数据;剩余二进制数据不足长度
l时,补位至长度l,记录补位长度a;传送完最后一个二进制数d后,将补位长度a以常规方式发送给数据接收方。
7.作为优选,数据发送方生成n个一元多项式f(x)的方法包括:数据发送方随机生成n-m个一元多项式f(x);根据自变量x的长度,获得自变量x的取值范围,计算出n-m个一元多项式的值域集合,记为总值域;获得未落入总值域的长度l的二进制数据的取值,构成遗漏集合;将遗漏集合内的取值,分为m组,将每组内的取值排序;以排序作为自变量x的值,取值作为函数值,形成样本数据,使用样本数据建立一元多项式f(x);m组取值对应建立m个一元多项式,获得n个一元多项式。
8.作为优选,使用样本数据建立一元多项式f(x)的方法包括:使用样本数据建立一元多项式f(x)的方法包括:样本数据记为(xi,fi),i∈[1,k],k为当前被分配的取值数量;建立k个单项,每个单项对应一个样本数据,建立通用特征式,所述通用特征式为自变量减每个样本数据xi值后相乘的乘式;为每个单项建立单项特征式,单项特征式为通用特征式除以自变量减单项对应样本数据xi值后再乘自变量所得的乘式;计算每个单项的单项特征式的取值,将自变量的值设为单项对应样本数据交xi值,代入单项特征式,再乘样本数据的取值fi与自变量xi的比值,得出单项特征值;使用单项对应样本数据的取值fi除以单项特征值,作为单项特征式的项系数,构成单项表达式;k个单项的单项表达式求和即完成一元多项式f(x)的建立。
[0009]
作为优选,生成每组内取值的多个排序,为每个排序生成一元多项式f(x);其中次数最小的一元多项式f(x)作为最终建立的一元多项式f(x)。
[0010]
作为优选,将二进制数d的取值范围划定若干个区间;将一元多项式f(x)的值域落入的区间,与一元多项式f(x)关联存储;数据发送方根据二进制数d落入的区间,找到相关联的若干个一元多项式;计算出若干个自变量x的值,其中满足x值为整数的一元多项式为选定的一元多项式。
[0011]
本发明的实质性效果是:通过将长度l的二进制数d使用长度更短的数据表示,降低需要通过网络传输的数据长度,进而有效的提高任何网络条件节点的数据传输效率,使区块链网络更加通畅;网络传输不使用数据原文,形成数据加密的效果,能够提高数据传输的安全性。
附图说明
[0012]
图1为实施例一低网络占用数据传输方法示意图。
[0013]
图2为实施一抽取二进制数据方法示意图。
[0014]
图3为实施一生成n个一元多项式方法示意图。
[0015]
图4为实施一使用样本数据建立一元多项式方法示意图。
具体实施方式
[0016]
下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
[0017]
实施例一:一种适于区块链的低网络占用数据传输方法,请参阅附图1,包括:步骤a01)约定二进制报文首尾格式和单次传输长度l,约定自变量x的长度;步骤a02)数据发送方生成n个
一元多项式f(x),使n个一元多项式的值域覆盖l位二进制数取值范围;步骤a03)将n个一元多项式编号,并以常规加密通信方式发送给数据接收方;步骤a04)数据发送方将待发送数据转换为二进制数据流;步骤a05)从二进制数据流中抽取长度l的二进制数据;步骤a06)数据发送方将长度l的二进制数据视为二进制数d,选择一个一元多项式,计算使f(x)=d成立的x值;步骤a07)将x值和一元多项式编号y按照约定格式添加报文首尾后,构成报文发送给数据接收方,其中x和y占用的传输长度小于l;步骤a08)数据接收方复原获得f(x)的值;步骤a09)全部报文传输完成后,数据接收方将获得完整的二进制数据流。
[0018]
约定的一元多项式形式表达为:f(x)=a0 a1*x a2*x^2

an*x^n。本实施例约定的n个一元多项式如表1所示。
[0019]
表1 本实施例约定的一元多项式编号y一元多项式136*x^10 28*x^8 32*x^6-15*x^4 9*x^2 12*x-20217*x^8 4*x^6 24*x^5-6*x^4 20*x^3 15*x 110
……
n12*x^12 7*x^10-39*x^8-28*x^6 12*x^5 11*x^3 130*x-36自变量x的长度为4位,即半个字节,编号y的占用的长度不限。传输数据的前4位为变量x的值,剩余位均表示编号y的值。想要完整的覆盖l位二进制数取值范围,需要大量的一元多项式,此时编号y占用的字节数也比较多。理论上,若一次传输中,将l位二进制数取值范围内的每个取值都传输一次,则实际传输的字节数将更多。然而,实际通信中进行传输的数据,将仅传输l位二进制数取值范围内的子集。本实施例将值域中数值较大的一元多项式的编号设为小值,将值域数值较小的一元多项式的编号设为大值。如此,当传输的二进制数d的值较小时,本实施例需要使用较多字节。如表2所示,二进制数d的长度l约定为48位。自变量x的长度为4位,即半个字节。约定的一元多项式形式表达为:f(x)=a0 a1*x a2*x^2

an*x^n。本实施例约定的n个一元多项式如表1所示。编码y的占用的长度不限。用于表示32位长度二进制数时,编码y的上限为44位。超过44位则无提高效率的效果,当编码y的占用的字节数超过44位时,则不再增加一元多项式的数量。为了使有限数量的一元多项式直接表示尽可能多的二进制数d,一元多项式的值域应尽量不重叠或少重叠。当编码y的占用的字节数等于44位,且一元多项式的值域不重叠时,全部一元多项式的总值域恰好能够表示48位二进制数d的全部取值。当使用较小编码的一元多项式传递数据时,将能够节省大量的字节。因而使用较小的编码值表示使用最为频繁的二进制数d,能够得到较佳的数据压缩效果,即获得较佳的数据传输效率的提高。
[0020]
表2 二进制数d对应的x值和编号y
(x,y)二进制(x,y)二进制数d0xf,0x1111100010001001011110010001110000111011110000110000110100xd,0xff101101000011111111000100000000000000000011001111000011110010110101001111000x2,0x29ce001000000010100111001110(00000000)1100000110011000100101100001100111101100
请参阅附图2,抽取长度l的二进制数据的方法包括:步骤b01)数据发送方将待发送数据转换为二进制数据流;步骤b02)按顺序从二进制数据流截取长度l的二进制数据;步骤b03)剩余二进制数据不足长度l时,补位至长度l,记录补位长度a;步骤b04)传送完最后一个二进制数d后,将补位长度a以常规方式发送给数据接收方。如表2中的第三个二进制数
d,其占用字节为5个字节,不足6个字节,因而需要补位8位,即在首端补上8个0。传输完成后,将补位数量8发送给数据接收方,数据接收方将起始的8个0删除,复原获得原始的二进制数据流。括号表示补位,数据接收方将去除括号内的内容。
[0021]
请参阅附图3,数据发送方生成n个一元多项式f(x)的方法包括:步骤c01)数据发送方随机生成n-m个一元多项式f(x);步骤c02)根据自变量x的长度,获得自变量x的取值范围,计算出n-m个一元多项式的值域集合,记为总值域;步骤c03)获得未落入总值域的长度l的二进制数据的取值,构成遗漏集合;步骤c04)将遗漏集合内的取值,分为m组,将每组内的取值排序;步骤c05)以排序作为自变量x的值,取值作为函数值,形成样本数据,使用样本数据建立一元多项式f(x);步骤c06)m组取值对应建立m个一元多项式,获得n个一元多项式。一元多项式能够拟合任意函数,基于样本数据建立拟合即可。
[0022]
请参阅附图4,使用样本数据建立一元多项式f(x)的方法包括:步骤d01)样本数据记为(xi,fi),i∈[1,k],k为当前被分配的取值数量;步骤d02)建立k个单项,每个单项对应一个样本数据,建立通用特征式,通用特征式为自变量减每个样本数据xi值后相乘的乘式;步骤d03)为每个单项建立单项特征式,单项特征式为通用特征式除以自变量减单项对应样本数据xi值所得的乘式;步骤d04)计算每个单项的单项特征式的取值,将自变量的值设为单项对应样本数据xi值,代入单项特征式,得出单项特征值;步骤d05)使用单项对应样本数据的取值fi除以xi的商再除以单项特征值,作为单项特征式的项系数,再乘以自变量,构成单项表达式;步骤d06)k个单项的单项表达式求和即完成一元多项式f(x)的建立。
[0023]
样本数据为:(0x0a,0x139e80)、(0x21,0x67a6d)、(0x30,0x4bb40)和(0x9e,0x3e1a70),则通用特征式为:(x-0x0a)*(x-0x21)*(x-0x30)*(x-0x9e)。建立4个单项,每个单项对应一个样本数据。
[0024]
对于第一个样本数据(0x0a,0x139e80),其单项特征式为:(x-0x21)*(x-0x30)*(x-0x9e),单项特征值为(0x0a-0x21)*(0x0a-0x30)*(0x0a-0x9e)=-0x23*-0x38*-0x148=-0x9cf40。对于第二个样本数据(0x21,0x67a6d),其单项特征式为:(x-0x0a) *(x-0x30)*(x-0x9e),单项特征值为(x-0x0a) *(x-0x30)*(x-0x9e)=(0x21-0x0a) *(0x21-0x30)*(0x21-0x9e)=0x17*-0x15*-0x125=0x228cf。对于第三个样本数据(0x30,0x4bb40),其单项特征式为:(x-0x0a)*(x-0x21)*(x-0x9e),单项特征值为(0x30-0x0a)*(0x30-0x21)*(0x30-0x9e)=0x26*0xf*-0x110=-0x25da0。对于第四个样本数据(0x9e,0x3e1a70),其单项特征式为:(x-0x0a)*(x-0x21)*(x-0x30),单项特征值为(0x9e-0x0a)*(0x9e-0x21)*(0x9e-0x30)=0x94*0x7d*0x6e=0x1f0d38。进而获得4个单项的单项表达式,将单项表达式求和获得:f(x)= ((0x139e80/0x0a)/-0x9cf40)*x*(x-0x21)*(x-0x30)*(x-0x9e) ((0x67a6d/0x21)/0x228cf)*x*(x-0x0a)*(x-0x30)*(x-0x9e) ((0x4bb40/0x30)/-0x25da0)*x*(x-0x0a)*(x-0x21)*(x-0x9e) ((0x3e1a70/0x9e)/0x1f0d38)*x*(x-0x0a)*(x-0x21)*(x-0x30)=-(0x139e80/0x621880)*(x^4-0xef*x^3 0x3474*x^2-0x184d4*x) (0x67a6d/0x4742af)(x^4-0xd8*x^3 0x25ac*x^2-0x12840*x)-(0x4bb40/0x718e00)(x^4-0xc9*x^3 0x1bd4*x^2-0xcbac*x) (0x3e1a70/(0x132a2890))(x^4-0x5b*x^3 0x5a0*x^2-0x189c*x)。完成一元多
项式f(x)的建立。
[0025]
生成每组内取值的多个排序,为每个排序生成一元多项式f(x);其中次数最小的一元多项式f(x)作为最终建立的一元多项式f(x)。
[0026]
将二进制数d的取值范围划定若干个区间;将一元多项式f(x)的值域落入的区间,与一元多项式f(x)关联存储;数据发送方根据二进制数d落入的区间,找到相关联的若干个一元多项式;计算出若干个自变量x的值,其中满足x值为整数的一元多项式为选定的一元多项式。
[0027]
本实施例的有益技术效果是:通过将长度l的二进制数d使用长度更短的数据表示,降低需要通过网络传输的数据长度,进而有效的提高任何网络条件节点的数据传输效率,使区块链网络更加通畅;网络传输不使用数据原文,形成数据加密的效果,能够提高数据传输的安全性。
[0028]
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
再多了解一些

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

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

相关文献