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

一种区块链的数据上链方法及装置与流程

2022-03-09 00:52:18 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,尤其涉及一种区块链的数据上链方法及装置。


背景技术:

2.区块链的各产业链条实现数据互通的过程中,由于行业存储的数据量巨大,如何高效实现数据上链是目前区块链平台亟需解决的问题。现有区块链主链加并行多子链共识方式是,各子链将原始数据信息通过单一哈希方法生成检验码后上链,并在主链验证节点生成主校验码,通过在主链上进行主校验码锚定来进行子链间信息互相确权。该方法尽管可靠性较高,但是存在速度慢的问题,不适合用于计算数据量极大的数据。


技术实现要素:

3.本发明提供一种区块链的数据上链方法及装置,以解决现有的交易数据的校验值生成速度慢,从而降低交易效率的问题。
4.本发明提出了一种区块链的数据上链方法,可以有效利用不同编码方式的优点,快速获得一个合理可靠的哈希值,用以解决行业子链数据上链性能问题。
5.本发明第一方面提供一种区块链的数据上链方法,包括:
6.交易提交节点从交易池中获取目标交易数据,并采用预设的多层异构编码算法生成所述目标交易数据的验证值,将所述验证值打包成区块;
7.所述交易提交节点广播所述区块至共识节点,以使得所述共识节点对所述区块进行验证并在验证通过后将所述区块添加至所述区块链;
8.其中,所述多层异构编码算法为:
9.按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块;
10.采用预设快速编码算法对每一所述数据分块进行编码,得到m个编码块,并合并所述m个编码块,得到初始编码结果;m》1;
11.采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值。
12.作为上述方案的改进,在所述采用预设快速编码算法对每一所述数据分块进行编码,得到m个编码块,并合并所述m个编码块,得到初始编码结果之后,还包括:
13.将所述数据分块作为第0层数据分块,且将所述编码块作为第一层编码块,所述初始编码结果作为第一层编码结果;
14.对所述第一层编码结果进行l层编码处理,得到第l 1层的n个编码块;n》1;
15.合并所述第l 1层的n个编码块,得到多层编码结果;
16.令表示第l层编码结果进行数据分块后得到的n
l
个数据分块,则,第l 1层的第n个编码块计算为;
17.18.其中,为第l层的n
l
个数据分块,n
l
为第l层的数据分块数量,表示第l 1层的第n个编码块,f(
·
)表示预设快速编码函数,[
·

·
]表示数据分块的合并操作,表示第l-1层的第k个数据分块,表示第l-1层的第k t个数据分块,t表示从l-1层选择的数据分块数量;
[0019]
则,所述采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值,具体为:
[0020]
采用所述预设验证编码算法对所述多层编码结果进行编码,得到所述目标交易数据的验证值。
[0021]
作为上述方案的改进,所述按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块,具体包括:
[0022]
将所述目标交易数据分为m个预设长度的数据分块,其中,m个数据分块的数据长度之和等于所述目标交易数据的数据总长度。
[0023]
作为上述方案的改进,所述快速编码算法为crc编码。
[0024]
作为上述方案的改进,所述预设验证编码算法为sha编码或md5编码中的任一种。
[0025]
本发明第二方面提供一种区块链的数据上链装置,包括:
[0026]
验证值生成模块,用于交易提交节点从交易池中获取目标交易数据,并采用预设的多层异构编码算法生成所述目标交易数据的验证值,将所述验证值打包成区块;
[0027]
数据上链模块,用于所述交易提交节点广播所述区块至共识节点,以使得所述共识节点对所述区块进行验证并在验证通过后将所述区块添加至所述区块链;
[0028]
其中,所述多层异构编码算法为:
[0029]
按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块;
[0030]
采用预设快速编码算法对每一所述数据分块进行编码,得到m个编码块,并合并所述m个编码块,得到初始编码结果;m》1;
[0031]
采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值。
[0032]
作为上述方案的改进,所述装置还包括多层编码结果获取模块;
[0033]
所述多层编码结果获取模块用于:
[0034]
将所述数据分块作为第0层数据分块,且将所述编码块作为第一层编码块,所述初始编码结果作为第一层编码结果;
[0035]
对所述第一层编码结果进行l层编码处理,得到第l 1层的n个编码块;n》1;
[0036]
合并所述第l 1层的n个编码块,得到多层编码结果;
[0037]
令表示第l层编码结果进行数据分块后得到的n
l
个数据分块,则,第l 1层的第n个编码块计算为;
[0038][0039]
其中,为第l层的n
l
个数据分块,n
l
为第l层的数据分块数量,表示第l 1层的第n个编码块,f(
·
)表示预设快速编码函数,[
·

·
]表示数据分块的合并操作,表
示第l-1层的第k个数据分块,表示第l-1层的第k t个数据分块,t表示从l-1层选择的数据分块数量;
[0040]
则,所述采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值具体为:
[0041]
采用所述预设验证编码算法对所述多层编码结果进行编码,得到所述目标交易数据的验证值。
[0042]
作为上述方案的改进,所述按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块,具体包括:
[0043]
将所述目标交易数据分为m个预设长度的数据分块,其中,m个数据分块的数据长度之和等于所述目标交易数据的数据总长度。
[0044]
作为上述方案的改进,所述快速编码算法为crc编码。
[0045]
作为上述方案的改进,所述预设验证编码算法为sha编码或md5编码中的任一种。
[0046]
与现有技术相比,本发明提供的区块链的数据上链方法及装置具有以下有益效果:
[0047]
本发明提供的区块链的数据上链方法包括:交易提交节点从交易池中获取目标交易数据,并采用预设的多层异构编码算法生成所述目标交易数据的验证值,将所述验证值打包成区块;所述交易提交节点广播所述区块至共识节点,以使得所述共识节点对所述区块进行验证并在验证通过后将所述区块添加至所述区块链。本发明通过多层异构编码算法对目标交易数据进行编码,能有效利用不同编码方式的优点,从而能快速获得一个合理可靠的验证值,进而解决行业子链数据上链性能问题。
附图说明
[0048]
图1是本发明实施例提供的区块链的数据上链方法的流程示意图;
[0049]
图2是本发明实施例提供的多层异构编码算法的流程图;
[0050]
图3是本发明实施例提供的区块链的数据上链装置的结构框图。
具体实施方式
[0051]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
参见图1,图1是本发明实施例提供的区块链的数据上链方法的流程示意图。
[0053]
本发明实施例提供的区块链的数据上链方法,包括步骤s11到步骤s12:
[0054]
步骤s11,提交节点从交易池中获取目标交易数据,并采用预设的多层异构编码算法生成所述目标交易数据的验证值,将所述验证值打包成区块;
[0055]
其中,所述多层异构编码算法为:
[0056]
按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块;
[0057]
采用预设快速编码算法对每一所述数据分块进行编码,得到m个编码块,并合并所述m个编码块,得到初始编码结果;m》1;
[0058]
采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值。
[0059]
步骤s12,所述交易提交节点广播所述区块至共识节点,以使得所述共识节点对所述区块进行验证并在验证通过后将所述区块添加至所述区块链。
[0060]
值得说明的是,本发明实施例提供的多层异构算法,首先使用预设快速编码算法对数据进行分块计算,由于快速编码的计算效率较高,能够有效对数据进行压缩;其次,对所得到的多个编码块合并后的初始编码结果进行二次编码,其中,采用可靠性较高的验证共识编码算法(如sha编码)进行计算,能够进一步的压缩需要存储的校验码数据。此外,由于经过第一层编码之后,数据量已经大大减小,此时再采用验证共识编码算法进行编码,其计算速度也得到了极大的提升,从而能够在保证数据校验的可靠性前提下,大大提升编码的速度,进而提高大数据上链性能。
[0061]
在一种可选的实施方式中,所述按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块,具体包括:
[0062]
将所述目标交易数据分为m个预设长度的数据分块,其中,m个数据分块的数据长度之和等于所述目标交易数据的数据总长度。
[0063]
在一种可选的实施方式中,所述快速编码算法为crc编码。
[0064]
可以理解的是,由于crc编码计算效率高,因为先对所述目标交易数据分块后进行crc编码,能够在有效压缩数据量的同时提高编码效率。
[0065]
在一种可选的实施方式中,所述预设验证编码算法为sha编码或md5编码中的任一种。
[0066]
可以理解的是,在最后一层编码中选用精度较高的编码算法,能够保证数据校验的可靠性。
[0067]
可以理解的是,本发明实施例提供的多层异构编码算法适用于多种共识算法,下面以pop共识算法为例对共识的流程进行详细描述。
[0068]
s1,各节点收集交易数据
[0069]
s2,leader节点从交易池中不断提取交易,使用本发明实施例提供的的多层异构编码算法得到的对应的校验值。
[0070]
s3,leader节点判断达到了closeledger条件,开始提案自己的交易集tmproposeset和校验值。
[0071]
s4,普通节点收到leader节点广播的交易集后,先向leader节点要交易集的头部信息,然后可以判断自已没有哪些交易,并向leader要自己缺少的交易。
[0072]
s5,各节点收集到完整的交易集后,验证校验值并向其它所有节点广播自己的投票。
[0073]
s6,各节点收集其它节点的投票,达到quorum条件,进入到accepted阶段。
[0074]
s7,各节点收集到quorum个validation,校验值区块达成共识,同时进入到下一区块的open阶段。
[0075]
上述实施例是基于原始数据进行一层快速编码,其获得的初始编码结果数据量仍可能较大,因此,可以对所述初始编码结果进行检测,若检测到所述初始编码结果的数据量大于预设阈值时,采用两层及以上快速编码。
[0076]
则,在一种可选的实施方式中,在所述采用预设快速编码算法对每一所述数据分块进行编码,得到m个编码块,并合并所述m个编码块,得到初始编码结果之后,还包括:
[0077]
将所述数据分块作为第0层数据分块,且将所述编码块作为第一层编码块,所述初始编码结果作为第一层编码结果;
[0078]
对所述第一层编码结果进行l层编码处理,得到第l 1层的n个编码块;n》1;
[0079]
合并所述第l 1层的n个编码块,得到多层编码结果;
[0080]
令表示第l层编码结果进行数据分块后得到的n
l
个数据分块,则,第l 1层的第n个编码块计算为;
[0081][0082]
其中,为第l层的n
l
个数据分块,n
l
为第l层的数据分块数量,表示第l 1层的第n个编码块,f(
·
)表示预设快速编码函数,[
·

·
]表示数据分块的合并操作,表示第l-1层的第k个数据分块,表示第l-1层的第k t个数据分块,t表示从l-1层选择的数据分块数量;
[0083]
则,所述采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值,具体为:
[0084]
采用所述预设验证编码算法对所述多层编码结果进行编码,得到所述目标交易数据的验证值。
[0085]
可选的,令当n 1《=n
l-1
时,令k=n 1,并依次往后取t个数据分块。当k t》n
l
时,循环从第l-1层的第k t-n
l
个数据分块中重新取数据。
[0086]
可选的,在第l 1层编码过程中,可以进一步按照设定规则向第l-2层或第l-3层选择数据分块进行合并异构编码,具体实现流程参照上述步骤,在此不做赘述。
[0087]
可选的,所描述的第l-1层数据分块选择方式为向后循环取t个数据分块,但同时也可以选择向前选择t个数据分块,或者进一步的使用其他策略对数据块进行选择,在此不做赘述。
[0088]
参见图2,图2示出了本发明实施例提供的多层异构编码算法的流程图。为了便于更好地理解本发明实施例的多层异构编码算法,以2层快速编码为例,先对所述第1层编码结果进行数据分块,得到第1层的n个数据分块;对于第1层的第1个数据分块,从第0层所有数据分块中按照预设规则抽取预设个数的数据分块进行合并后编码,得到第2层的第1个编码块,对于第2层的第2个数据分块,...,第n个数据分块均是做同样的处理,从而得到第2层的第1个编码块,...,第2层的第n个编码块,并将第1层的所有编码块合并得到多层编码结果,最终使用高可靠性的验证编码算法(如sha编码)进行统一编码,得到原始数据的验证值。
[0089]
参见图2,图2是本发明实施例提供的区块链的数据上链装置的结构框图。本发明实施例提供的区块链的数据上链装置10,其用于执行上述实施例提供的区块链的数据上链方法的全部步骤和流程,包括验证值生成模块11和数据上链模块12;其中,
[0090]
所述验证值生成模块11,用于获易提交节点从交易池中获取目标交易数据,并采用预设的多层异构编码算法生成所述目标交易数据的验证值,将所述验证值打包成区块;
[0091]
其中,所述多层异构编码算法为:
[0092]
按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块;
[0093]
采用预设快速编码算法对每一所述数据分块进行编码,得到m个编码块,并合并所述m个编码块,得到初始编码结果;m》1;
[0094]
采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值。
[0095]
所述数据上链模块12,用于所述交易提交节点广播所述区块至共识节点,以使得所述共识节点对所述区块进行验证并在验证通过后将所述区块添加至所述区块链。
[0096]
在一种可选的实施方式中,所述区块链的数据上链装置10还包括多层编码结果获取模块;
[0097]
所述多层编码结果获取模块用于:
[0098]
将所述数据分块作为第0层数据分块,且将所述编码块作为第一层编码块,所述初始编码结果作为第一层编码结果;
[0099]
对所述第一层编码结果进行l层编码处理,得到第l 1层的n个编码块;n》1;
[0100]
合并所述第l 1层的n个编码块,得到多层编码结果;
[0101]
令表示第l层编码结果进行数据分块后得到的n
l
个数据分块,则,第l 1层的第n个编码块计算为;
[0102][0103]
其中,为第l层的n
l
个数据分块,n
l
为第l层的数据分块数量,表示第l 1层的第n个编码块,f(
·
)表示预设快速编码函数,[
·

·
]表示数据分块的合并操作,表示第l-1层的第k个数据分块,表示第l-1层的第k t个数据分块,t表示从l-1层选择的数据分块数量;
[0104]
则,所述采用预设验证编码算法对所述初始编码结果进行编码,得到所述目标交易数据的验证值具体为:
[0105]
采用所述预设验证编码算法对所述多层编码结果进行编码,得到所述目标交易数据的验证值。
[0106]
在一种可选的实施方式中,所述按照预设分块规则对所述目标交易数据进行分块,得到m个数据分块,具体包括:
[0107]
将所述目标交易数据分为m个预设长度的数据分块,其中,m个数据分块的数据长度之和等于所述目标交易数据的数据总长度。
[0108]
在一种可选的实施方式中,所述快速编码算法为crc编码。
[0109]
在一种可选的实施方式中,所述预设验证编码算法为sha编码或md5编码中的任一种。
[0110]
需要说明的是,本发明实施例提供的一种区块链的数据上链装置用于执行上述实施例的一种区块链的数据上链方法的所有流程步骤,两者的工作原理和有益效果一一对应,这里不再作过多的赘述。
[0111]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员
来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
再多了解一些

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

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

相关文献