基于区块链的数据处理方法、装置、设备及可读存储介质制造方法及图纸

技术编号:27462503 阅读:34 留言:0更新日期:2021-02-25 05:27
本申请公开一种基于区块链的数据处理方法、装置、设备以及可读存储介质,其中,方法包括:将至少两个区块中的交易数据添加到执行队列中,从执行队列中按序获取至少两个交易数据;对至少两个交易数据并行执行合约业务,获取每个合约业务被执行时所生成的并行交易读缓存以及并行交易写缓存;在块缓存中确定已合并交易写缓存,在已合并交易写缓存中,获取目标交易数据对应的更新交易读缓存;根据更新交易读缓存、目标交易数据对应的并行交易读缓存及目标交易数据对应的并行交易写缓存,确定目标交易数据的待合并交易写缓存;将目标交易数据的待合并交易写缓存合并至目标交易数据所属的块缓存中。采用本申请,可以提高区块链网络处理交易数据的效率。络处理交易数据的效率。络处理交易数据的效率。

【技术实现步骤摘要】
基于区块链的数据处理方法、装置、设备及可读存储介质


[0001]本申请涉及互联网
,尤其涉及一种基于区块链的数据处理方法、装置、设备以及可读存储介质。

技术介绍

[0002]随着对交易数据安全的重视,政府和企业开始利用区块链网络进行交易数据的存储。
[0003]目前,在业界大多数的区块链网络中,区块都是按照区块高度的顺序串行执行,块内的交易数据所对应的合约业务也是按照交易数据序号的顺序串行执行,例如区块m包括交易数据1、交易数据2、

、交易数据n,则在处理区块m的交易数据时,首先执行交易数据1对应的合约业务,得到交易数据1的交易执行结果1,再根据交易执行结果1以及交易数据2,执行交易数据2对应的合约业务,得到交易数据2的交易执行结果2,继续对后面的交易数据执行对应的合约业务。处理完区块m的交易数据后,再对区块m+1的交易数据1进行处理。
[0004]现有的处理交易数据的方式,显然不能匹配区块链网络所接收到的交易数据的增加速度,进而会导致区块链网络中滞留大量的交易数据,可见目前对区块中的交易数据的处理效率比较低下。

技术实现思路

[0005]本申请实施例提供一种基于区块链的数据处理方法、装置、设备以及可读存储介质,可以提高区块链网络处理交易数据的效率。
[0006]本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:将至少两个区块中的交易数据,按照区块高度的顺序以及交易数据序号的顺序添加到执行队列中,从执行队列中按序获取至少两个交易数据;至少两个交易数据均携带合约信息;对至少两个交易数据并行执行所携带的合约信息对应的合约业务,获取每个合约业务被执行时所生成的并行交易读缓存以及并行交易写缓存;至少两个交易数据包括目标交易数据;在至少两个区块分别对应的块缓存中确定已合并交易写缓存,在已合并交易写缓存中,获取目标交易数据对应的更新交易读缓存;已合并交易写缓存所对应的交易数据,在执行队列中的位置或添加时间处于目标交易数据之前;根据更新交易读缓存、目标交易数据对应的并行交易读缓存以及目标交易数据对应的并行交易写缓存,确定目标交易数据的待合并交易写缓存;将目标交易数据的待合并交易写缓存合并至目标交易数据所属的块缓存中,继续对目标交易数据的下一个交易数据的待合并交易写缓存进行合并处理。
[0007]本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:第一获取模块,用于将至少两个区块中的交易数据,按照区块高度的顺序以及交易数
据序号的顺序添加到执行队列中,从执行队列中按序获取至少两个交易数据;至少两个交易数据均携带合约信息;第二获取模块,用于对至少两个交易数据并行执行所携带的合约信息对应的合约业务,获取每个合约业务被执行时所生成的并行交易读缓存以及并行交易写缓存;至少两个交易数据包括目标交易数据;第三获取模块,用于在至少两个区块分别对应的块缓存中确定已合并交易写缓存,在已合并交易写缓存中,获取目标交易数据对应的更新交易读缓存;已合并交易写缓存所对应的交易数据,在执行队列中的位置或添加时间处于目标交易数据之前;第一合并模块,用于根据更新交易读缓存、目标交易数据对应的并行交易读缓存以及目标交易数据对应的并行交易写缓存,确定目标交易数据的待合并交易写缓存;第二合并模块,用于将目标交易数据的待合并交易写缓存合并至目标交易数据所属的块缓存中,继续对目标交易数据的下一个交易数据的待合并交易写缓存进行合并处理。
[0008]其中,第一获取模块,包括:第一确定单元,用于确定并行执行线程池中空闲线程对应的空闲数量;第一获取单元,用于若空闲数量等于或大于并行执行线程阈值,则通过空闲线程从执行队列中按序获取至少两个交易数据;至少两个交易数据的交易数量等于空闲数量。
[0009]其中,至少两个合约业务包括至少两个智能合约以及至少两个交易执行业务;第二获取模块,包括:第二确定单元,用于根据至少两个合约信息中分别包括的合约标识,确定分别用于执行至少两个交易数据的智能合约;第三确定单元,用于根据至少两个合约信息中分别包括的业务标识,确定至少两个智能合约所分别调用的用于执行至少两个交易数据的交易执行业务;第二获取单元,用于并行执行至少两个交易执行业务,获取每个交易执行业务被执行时所生成的并行交易读缓存以及并行交易写缓存。
[0010]其中,第二获取单元,包括:第一缓存子单元,用于根据至少两个交易执行业务,分别为至少两个交易数据创建初始交易读缓存以及初始交易写缓存;第一获取子单元,用于并行执行至少两个交易执行业务,获取每个交易执行业务被执行时所生成的并行交易读数据以及并行交易写数据;第一存储子单元,用于将每个并行交易读数据存储至对应的初始交易读缓存,得到至少两个交易数据分别对应的并行交易读缓存;第二存储子单元,用于将每个并行交易写数据存储至对应的初始交易写缓存,得到至少两个交易数据分别对应的并行交易写缓存。
[0011]其中,第三获取模块,包括:第三获取单元,用于按照区块高度从高至低的顺序以及交易数据序号从大至小的顺序,在已合并交易写缓存中依次遍历,直至获取到目标交易数据所需读取的已合并交易写缓存;生成更新单元,用于根据目标交易数据所需读取的已合并交易写缓存生成更新交易读缓存。
[0012]其中,第一合并模块,包括:第四确定单元,用于将目标交易数据对应的并行交易读缓存中的并行交易读数据确定为目标并行交易读数据;第四获取单元,用于确定目标并行交易读数据的目标对象,获取更新交易读缓存中与目标对象相关联的更新交易读数据;校验数据单元,用于对目标并行交易读数据以及更新交易读数据进行读数据冲突校验,得到校验结果;第五确定单元,用于根据校验结果、更新交易读数据以及目标交易数据对应的并行交易写缓存,确定目标交易数据的待合并交易写缓存。
[0013]其中,校验结果包括第一校验结果以及第二校验结果;校验数据单元,包括:对比数据子单元,用于将目标并行交易读数据以及更新交易读数据进行对比;第一确定子单元,用于若目标并行交易读数据与更新交易读数据相同,则确定校验结果为第一校验结果;第一校验结果用于指示目标并行交易读数据与更新交易读数据之间不存在读数据冲突;第二确定子单元,用于若目标并行交易读数据与更新交易读数据不相同,则确定校验结果为第二校验结果;第二校验结果用于指示目标并行交易读数据与更新交易读数据之间存在读数据冲突。
[0014]其中,第五确定单元,包括:第三确定子单元,用于若校验结果为第一校验结果,则确定目标交易数据对应的并行交易写缓存为目标交易数据的待合并交易写缓存;第二缓存子单元,用于若校验结果为第二校验结果,则根据更新交易读数据以及目标交易数据所携带的合约信息,生成目标交易数据的待合并交易写缓存。
[0015]其中,第二缓存子单元,具体用于根据目标交易数据所携带的合约信息中的合约标识,确定用于执行目标交易数据的目标智能合约;第二缓存子单元,还具体用于根据目标交易数据所携带的合约信息中的业务标识,确定目标智能合约所调用的用于执行目标交易数据的目标交易执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的数据处理方法,其特征在于,包括:将至少两个区块中的交易数据,按照区块高度的顺序以及交易数据序号的顺序添加到执行队列中,从所述执行队列中按序获取至少两个交易数据;所述至少两个交易数据均携带合约信息;对所述至少两个交易数据并行执行所携带的合约信息对应的合约业务,获取每个合约业务被执行时所生成的并行交易读缓存以及并行交易写缓存;所述至少两个交易数据包括目标交易数据;在所述至少两个区块分别对应的块缓存中确定已合并交易写缓存,在所述已合并交易写缓存中,获取所述目标交易数据对应的更新交易读缓存;所述已合并交易写缓存所对应的交易数据,在所述执行队列中的位置或添加时间处于所述目标交易数据之前;根据所述更新交易读缓存、所述目标交易数据对应的并行交易读缓存以及所述目标交易数据对应的并行交易写缓存,确定所述目标交易数据的待合并交易写缓存;将所述目标交易数据的待合并交易写缓存合并至所述目标交易数据所属的块缓存中,继续对所述目标交易数据的下一个交易数据的待合并交易写缓存进行合并处理。2.根据权利要求1所述的方法,其特征在于,所述从所述执行队列中按序获取至少两个交易数据,包括:确定并行执行线程池中空闲线程对应的空闲数量;若所述空闲数量等于或大于并行执行线程阈值,则通过所述空闲线程从所述执行队列中按序获取所述至少两个交易数据;所述至少两个交易数据的交易数量等于所述空闲数量。3.根据权利要求1所述的方法,其特征在于,所述至少两个合约业务包括至少两个智能合约以及至少两个交易执行业务;所述对所述至少两个交易数据并行执行所携带的合约信息对应的合约业务,获取每个合约业务被执行时所生成的并行交易读缓存以及并行交易写缓存,包括:根据至少两个合约信息中分别包括的合约标识,确定分别用于执行所述至少两个交易数据的智能合约;根据所述至少两个合约信息中分别包括的业务标识,确定所述至少两个智能合约所分别调用的用于执行所述至少两个交易数据的交易执行业务;并行执行所述至少两个交易执行业务,获取每个交易执行业务被执行时所生成的并行交易读缓存以及并行交易写缓存。4.根据权利要求3所述的方法,其特征在于,所述并行执行所述至少两个交易执行业务,获取每个交易执行业务被执行时所生成的并行交易读缓存以及并行交易写缓存,包括:根据所述至少两个交易执行业务,分别为所述至少两个交易数据创建初始交易读缓存以及初始交易写缓存;并行执行所述至少两个交易执行业务,获取每个交易执行业务被执行时所生成的并行交易读数据以及并行交易写数据;将每个并行交易读数据存储至对应的初始交易读缓存,得到所述至少两个交易数据分别对应的并行交易读缓存;将每个并行交易写数据存储至对应的初始交易写缓存,得到所述至少两个交易数据分
别对应的并行交易写缓存。5.根据权利要求1所述的方法,其特征在于,所述在所述已合并交易写缓存中,获取所述目标交易数据对应的更新交易读缓存,包括:按照区块高度从高至低的顺序以及交易数据序号从大至小的顺序,在所述已合并交易写缓存中依次遍历,直至获取到所述目标交易数据所需读取的已合并交易写缓存;根据所述目标交易数据所需读取的已合并交易写缓存生成所述更新交易读缓存。6.根据权利要求1所述的方法,其特征在于,所述根据所述更新交易读缓存、所述目标交易数据对应的并行交易读缓存以及所述目标交易数据对应的并行交易写缓存,确定所述目标交易数据的待合并交易写缓存,包括:将所述目标交易数据对应的并行交易读缓存中的并行交易读数据确定为目标并行交易读数据;确定所述目标并行交易读数据的目标对象,获取所述更新交易读缓存中与所述目标对象相关联的更新交易读数据;对所述目标并行交易读数据以及所述更新交易读数据进行读数据冲突校验,得到所述校验结果;根据所述校验结果、所述更新交易读数据以及所述目标交易数据对应的并行交易写缓存,确定所述目标交易数据的待合并交易写缓存。7.根据权利要求6所述的方法,其特征在于,所述校验结果包括第一校验结果以及第二校验结果;所述对所述目标并行交易读数据以及所述更新交易读数据进行读数据冲突校验,得到所述校验结果,包括:将所述目标并行交易读数据以及所述更新交易读数据进行对比;若所述目标并行交易读数据与所述更新交易读数据相同,则确定所述校验结果为所述第一校验结果;所述第一校验结果用于指示所述目标并行交易读数据与所述更新交易读数据之间不存在读数据冲突;若所述目标并行交易读数据与所述更新交易读数据不相同,则确定所述校...

【专利技术属性】
技术研发人员:刘区城李茂材王宗友孔利蓝虎刘攀周开班朱耿良时一防黄焕坤
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1