区块链的并行执行方法、装置、终端设备及计算机介质与流程

未命名 08-02 阅读:77 评论:0


1.本技术涉及区块链技术领域,尤其涉及一种区块链的并行执行方法、装置、终端设备及计算机可读存储介质。


背景技术:

2.随着区块链技术的不断发展,区块链技术在金融、智能制造、供应链及物流等领域逐渐发挥越来越大的作用,然而,虽然区块链本身存在提高效率、降低成本及提高数据安全性等特点,但是,当前的区块链仍然存在自身性能不足这一缺陷;
3.目前,技术人员为了解决区块链存在的上述缺陷,往往选择控制区块链通过并行处理的方式处理交易事件,从而令区块链能够更充分的应用硬件资源以提高执行效率,但是,由于区块链在执行并行处理的的过程中,是通过分析地址from和to被关联交易来识别执行状态树状态是否有冲突的,同时,由于包含合约规则的交易事件在执行合约的过程中会出现很多子交易集,因此,区块链在执行并行处理的过程中,就只能对不含合约规则的交易事件进行分析,而无法检测包含合约规则的交易事件在执行合约的过程中是否存在冲突。


技术实现要素:

4.本技术的主要目的在于提供一种区块链的并行执行方法、装置、终端设备及计算机可读存储介质,旨在令区块链可以在并行处理多个交易事件的过程中,分析多个交易事件之间是否存在冲突交易,从而提升区块链的执行效率。
5.为实现上述目的,本技术提供一种区块链的并行执行方法,其特征在于,所述区块链的并行执行方法包括以下步骤:
6.获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;
7.确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;
8.当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。
9.进一步地,所述对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集的步骤,包括:
10.对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值;
11.将多个所述交易事件各自对应的所述键值写入多个所述交易事件各自对应的所述初始读写集内以生成实时读写集。
12.进一步地,在所述对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值的
步骤之后,所述方法还包括:
13.判断所述交易事件是否删除所述初始读写集内的包含的默认键值;
14.若判断到所述交易事件会删除所述初始读写集内的包含的所述默认键值,则获取删除标识,并将所述删除标识写入所述初始读写集内以生成实时读写集。
15.进一步地,在所述对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值的步骤之后,所述方法还包括:
16.确定所述键值对应的键值数量,并判断所述键值数量是否大于1;
17.若判断到所述键值数量大于1,则在多个所述键值中确定最后写入所述初始读写集内的目标键值,并对多个所述键值中除所述目标键值外的其他键值执行删除操作。
18.进一步地,所述确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易的步骤,包括:
19.确定多个所述实时读写集各自包含的读集,并读取各所述读集以获取多个所述实时读写集各自所记录的键值;
20.将多个所述键值相互之间进行比对得到各比对结果,并基于各所述比对结果判断多个所述交易事件中是否存在冲突交易。
21.进一步地,所述读取各所述读集以获取多个所述实时读写集各自所记录的键值的步骤,包括:
22.将所述读集内包含的缓存位数组进行初始化,并通过预设的多个哈希函数对所述读集内包含的元素进行映射以得到多个哈希值;
23.基于多个所述哈希值对所述缓存位数组进行修改得到修改结果,在所述修改结果为多个所述哈希值各自在所述缓存位数组内对应的数值为1时,将所述元素确定为键值。
24.进一步地,在所述基于各所述键值判断多个所述交易事件中是否存在冲突交易的步骤之后,所述方法还包括:
25.当判断到多个所述交易事件中存在冲突交易时,在多个所述交易事件中确定存在冲突交易的目标交易事件;
26.对多个所述交易事件中除所述目标交易事件外的各其他交易事件执行所述并行处理操作以生成待合并交易结果;
27.将所述待合并交易结果与所述目标交易事件执行串行处理操作以生成与多个所述交易事件对应的目标交易结果。
28.此外,为实现上述目的,本技术还提供一种区块链的并行执行装置,所述装置包括:
29.生成模块,用于获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;
30.判断模块,用于确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;
31.处理模块,用于当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。
32.此外,为实现上述目的,本技术还提供一种终端设备,所述终端设备包括:存储器、
处理器及存储在所述存储器上并可在所述处理器上运行的区块链的并行执行程序,所述区块链的并行执行程序被所述处理器执行时实现如上述的区块链的并行执行方法的步骤。
33.此外,为实现上述目的,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链的并行执行程序,所述区块链的并行执行程序被处理器执行时实现如上述的区块链的并行执行方法的步骤。
34.本技术实施例提供的区块链的并行执行方法、装置、终端设备及计算机可读存储介质,通过获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。
35.在本技术实施例中,终端设备首先控制预设的区块链网络对交易池进行读取,从而获取交易池内包含的多个交易事件,区块链网络对多个交易事件执行并行处理操作以生成多个交易事件各自对应的实时读写集,之后,区块链网络读取多个交易事件各自对应的实时读写集以获取各实时读写集各自所记录的键值,区块链网络进而将各键值相互之间进行比对得到各比对结果,并基于各比对结果判断多个交易事件中是否存在冲突交易,再之后,区块链网络在确定多个交易事件中不存在冲突交易时,生成与多个交易事件对应的目标交易结果,并将目标交易结果打包成区块进行存储。
36.如此,本技术实施例通过生成多个交易事件各自对应的实时读写集,并基于实时读写集内所记录的键值判断多个交易事件之间是否存在冲突交易的方式,令区块链能够在并行处理多个交易事件的过程中,分析多个交易事件之间是否存在冲突交易,从而提升区块链的执行效率。
附图说明
37.图1是本技术实施例方案涉及的硬件运行环境的终端设备的结构示意图;
38.图2为本技术区块链的并行执行方法第一实施例的流程示意图;
39.图3为本技术区块链的并行执行方法一实施例涉及的详细流程示意图;
40.图4为本技术区块链的并行执行方法一实施例涉及的读集查询原理图;
41.图5为本技术区块链的并行执行方法一实施例涉及的功能模块示意图
42.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
43.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
44.参照图1,图1为本技术实施例方案涉及的硬件运行环境的终端设备结构示意图。
45.需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。本技术实施例终端设备可以是执行本技术区块链的并行执行方法的设备,该终端设备具体可以是移动终端、数据存储控制终端、pc或者便携计算机等终端。
46.如图1所示,该终端设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,
通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
47.本领域技术人员可以理解,图1中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
48.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及区块链的并行执行程序。
49.在图1所示的终端设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本技术终端设备中的处理器1001、存储器1005可以设置在终端设备中,所述终端设备通过处理器1001调用存储器1005中存储的区块链的并行执行程序,并执行以下操作:
50.获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;
51.确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;
52.当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。
53.进一步地,处理器1001调用存储器1005中存储的区块链的并行执行程序,还执行以下操作:
54.对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值;
55.将多个所述交易事件各自对应的所述键值写入多个所述交易事件各自对应的所述初始读写集内以生成实时读写集。
56.进一步地,处理器1001调用存储器1005中存储的区块链的并行执行程序,还执行以下操作:
57.判断所述交易事件是否删除所述初始读写集内的包含的默认键值;
58.若判断到所述交易事件会删除所述初始读写集内的包含的所述默认键值,则获取删除标识,并将所述删除标识写入所述初始读写集内以生成实时读写集。
59.进一步地,处理器1001调用存储器1005中存储的区块链的并行执行程序,还执行以下操作:
60.确定所述键值对应的键值数量,并判断所述键值数量是否大于1;
61.若判断到所述键值数量大于1,则在多个所述键值中确定最后写入所述初始读写集内的目标键值,并对多个所述键值中除所述目标键值外的其他键值执行删除操作。
62.进一步地,处理器1001调用存储器1005中存储的区块链的并行执行程序,还执行以下操作:
63.确定多个所述实时读写集各自包含的读集,并读取各所述读集以获取多个所述实
时读写集各自所记录的键值;
64.将多个所述键值相互之间进行比对得到各比对结果,并基于各所述比对结果判断多个所述交易事件中是否存在冲突交易。
65.进一步地,处理器1001调用存储器1005中存储的区块链的并行执行程序,还执行以下操作:
66.将所述读集内包含的缓存位数组进行初始化,并通过预设的多个哈希函数对所述读集内包含的元素进行映射以得到多个哈希值;
67.基于多个所述哈希值对所述缓存位数组进行修改得到修改结果,在所述修改结果为多个所述哈希值各自在所述缓存位数组内对应的数值为1时,将所述元素确定为键值。
68.进一步地,处理器1001调用存储器1005中存储的区块链的并行执行程序,还执行以下操作:
69.当判断到多个所述交易事件中存在冲突交易时,在多个所述交易事件中确定存在冲突交易的目标交易事件;
70.对多个所述交易事件中除所述目标交易事件外的各其他交易事件执行所述并行处理操作以生成待合并交易结果;
71.将所述待合并交易结果与所述目标交易事件执行串行处理操作以生成与多个所述交易事件对应的目标交易结果。
72.基于上述的终端设备,提供本技术区块链的并行执行方法的各个实施例。
73.请参照图2,图2为本技术区块链的并行执行方法第一实施例的流程示意图。
74.应当理解的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,本技术区块链的并行执行方法当然也可以以不同于此处的顺序执行所示出或描述的步骤。
75.在本实施例中,本技术区块链的并行执行方法,可以包括以下步骤:
76.步骤s10:获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;
77.在本实施例中,多个用户首先通过用户终端将各自发起的交易事件发送至终端设备,由终端设备将多个交易事件添加至区块链网络上部署的交易池内,终端设备进而控制区块链网络读取交易池以获取多个交易事件,区块链网络进而对多个交易事件执行并行处理操作从而生成多个交易事件各自对应的实时读写集。
78.示例性地,例如,多个用户首先通过各自对应的用户终端发起交易事件tx,多个用户进而各自将事件tx分别发送至终端设备,由终端设备将获取的多个交易事件分辨添加至区块链网络上部署的交易池内,之后,终端设备控制区块链网络读取交易池以获取交易池内包含的多个交易事件tx1、tx2、....、txn再之后,区块链网络上对交易事件tx1、tx2、....、txn执行并行处理操作从而生成易事件tx1、tx2、....、txn各自对应的实时读写集s1、s2、...、sn。
79.需要说明的是,在本实施例中,在另一实施例中,区块链网络在交易池中获取多个交易事件tx1、tx2、....、txn之后,还可以首先将多个交易事件tx1、tx2、....、txn中的任意两个交易事件之间执行串行处理操作从而形成交易事件组,区块链网络进而对多个交易事件组执行并行处理操作以生成多个交易事件组各自对应的实时读写集s1、s2、...、sn。
80.进一步地,在一种可行的实施例中,上述步骤s10中“对多个所述交易事件执行并
行处理操作以生成多个所述交易事件各自对应的实时读写集”的步骤,具体可以包括:
81.步骤s101:对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值;
82.在本实施例中,区块链网络首先对多个交易事件执行并行处理操作以确定多个交易事件各自对应的状态值,进而根据各状态值确定多个交易事件各自对应的始读写集和需要写入初始读写集内的键值。
83.步骤s102:将多个所述交易事件各自对应的所述键值写入多个所述交易事件各自对应的所述初始读写集内以生成实时读写集;
84.在本实施例中,区块链网络在对多个交易事件执行并行处理操作的过程中,将多个交易事件各自对应的键值分别写入多个交易事件各自对应的初始读写集中以替换初始读写集内包含的默认键值,从而生成实时读写集。
85.示例性地,例如,区块链网络首先确定对交易事件tx1、tx2、....、txn执行并行处理操作从而确定交易事件tx1、tx2、....、txn各自对应的状态值,同时,区块链网络确定交易事件tx1、tx2、....、txn各自对应的初始读写集,和初始读写集内包含的写集writeset,之后,区块链网络基于获取的各状态值确定交易事件tx1、tx2、....、txn各自需要写入写集writeset内的key值,并将交易事件tx1、tx2、....、txn各自对应的key值写入多个交易事件各自对应的写集writeset内,以令各key值替换各写集writeset内记录的默认key值,从而生成各实时读写集s1、s2、...、sn。
86.进一步地,在一种可行的实施例中,在上述步骤s101之后,本技术区块链的并行执行方法还可以包括:
87.步骤a10:判断所述交易事件是否删除所述初始读写集内的包含的默认键值;
88.在本实施例中,区块链网络在确定多个交易事件各自对应的键值之后,判断交易事件通过将键值写入初始读写集之后是否会删除初始读写集内包含的默认键值。
89.步骤a20:若判断到所述交易事件会删除所述初始读写集内的包含的所述默认键值,则获取删除标识,并将所述删除标识写入所述初始读写集内以生成实时读写集;
90.在本实施例中,区块链网络若判断到将交易事件通过将键值写入初始读写集以删除初始读写集内包含的默认键值,则获取技术人员预设的删除标识,并以删除标识替换键值,从而将删除标识写入初始读写集内以生成实时读写集。
91.示例性地,例如,区块链网络在确定交易事件tx1、tx2、....、txn各自需要写入初始读写集内的key值之后,判断交易事件是否通过将key值写入初始读写集以删除初始读写集内包含的默认key值,之后,区块链网络在确定交易事件通过将key值写入初始读写集以删除初始读写集内包含的默认key值时,获取技术人员预设的删除标识,并以删除标识替换key值,从而将删除标识写入至各初始读写集包含的写集writeset内,以删除标识替换各写集writeset内包含的默认key值从而生成实时读写集s1、s2、...、sn。
92.进一步地,在一种可行的实施例中,在上述步骤s101之后,本技术区块链的并行执行方法,还可以包括:
93.步骤b10:确定所述键值对应的键值数量,并判断所述键值数量是否大于1;
94.在本实施例中,区块链网络在确定多个交易事件各自对应的键值之后,检测多个交易事件各自需要向初始读写集内写入的键值的键值数量,并进一步判断键值数量是否大
于1。
95.步骤b20:若判断到所述键值数量大于1,则在多个所述键值中确定最后写入所述初始读写集内的目标键值,并对多个所述键值中除所述目标键值外的其他键值执行删除操作;
96.在本实施例中,区块链网络若判断到交易事件需要向初始读写集中写入的键值的键值数量大于1时,则进一步在多个键值中确定最后写入初始读写集内的目标键值,并将多个键值中除目标键值之外的其他键值进行删除以仅保留目标键值,从而通过目标键值替换初始读写集内包含的默认键值以生成新的实时读写集。
97.示例性地,例如,区块链网络在确定交易事件tx1、tx2、....、txn各自需要写入初始读写集内的key值之后,判断交易事件tx1、tx2、....、txn各自需要向初始读写集内包含的写集writeset内写入的key值数量,并判断key值数量是否大于1,之后,区块链网络若判断到key值数量大于1时,确定交易事件需要向写集writeset内写入多个key值,区块链网络进而在多个key值中确定交易事件最后向写集writeset内写入的目标key值,并将多个key值中除目标key值以外的其他key值删除,从而通过目标key值替换写集writeset内包含的默认key值以生成新的实时读写集s1、s2、...、sn。
98.步骤s20:确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;
99.在本实施例中,区块链网络在生成多个实时读写集之后,读取多个交易事件各自对应的实时读写集以确定多个实时读写集内各自所记录的键值,区块链网络进而将多个键值相互之间进行比对得到各比对结果,并根据各比对结果判断多个交易事件中是否存在冲突交易。
100.示例性地,例如,区块链网络在生成实时读写集s1、s2、...、sn之后,读取交易事件tx1、tx2、....、txn各自对应的实时读写集s1、s2、...、sn,并确定各实时读写集各自所记录的key值,之后,区块链网络将获取的各key值相互之间进行比对从而得到各比对结果,区块链网络进而根据各比对结果判断交易事件tx1、tx2、....、txn中是否存在冲突交易。
101.进一步地,在一种可行的实施例中,上述步骤s20,具体可以包括:
102.步骤s201:确定多个所述实时读写集各自包含的读集,并读取各所述读集以获取多个所述实时读写集各自所记录的键值;
103.在本实施例中,区块链网络首先确定多个交易事件各自对应的实时读写集,并确定实时读写集内包含的读集,区块链网络进而读取各读集以获取各读集各自所记录的键值。
104.步骤s202:将多个所述键值相互之间进行比对得到各比对结果,并基于各所述比对结果判断多个所述交易事件中是否存在冲突交易;
105.在本实施例中,区块链网络将获取的各键值相互之间进行比对得到各比对结果,区块链网络进而在确定各比对结果均为各键值相互之间不一致时,确定多个交易事件之间不存在冲突交易,而在确定各比对结果中包含比对结果为各键值相互之间一致时,确定多个交易事件之间存在冲突交易。
106.示例性地,例如,区块链网络首先确定交易事件tx1、tx2、....、txn各自对应的实时读写集s1、s2、...、sn,并确定各实时读写集各自对应的读集redset,区块链网络进而读
取各读集redset以确定各读集redset内各自所记录的key值,之后,区块链网络将获取的各key值相互之间进行比较从而得到各比对结果,在各比对结果均为各key值相互之间不一致时,区块链网络确定交易事件tx1、tx2、....、txn中不存在冲突交易,同样的,在各比对结果中存在各key值相互之间一致的比对结果时,区块链网络确定交易事件tx1、tx2、....、txn中存在冲突交易。
107.进一步地,在一种可行的实施例中,上述步骤s201中“读取各所述读集以获取多个所述实时读写集各自所记录的键值”的步骤,具体可以包括:
108.步骤s2011:将所述读集内包含的缓存位数组进行初始化,并通过预设的多个哈希函数对所述读集内包含的元素进行映射以得到多个哈希值;
109.在本实施例中,区块链网络在读取各读集各自所记录的键值时,首先将读集内包含的缓存位数组进行初始化,从而令缓存位数组内每个位置都为0,同时,区块链网络获取技术人员预设的多个哈希函数,并通过多个哈希函数对读集内包含的元素进行映射从而得到与元素对应的多个哈希值。
110.步骤s2012:基于多个所述哈希值对所述缓存位数组进行修改得到修改结果,在所述修改结果为多个所述哈希值各自在所述缓存位数组内对应的数值为1时,将所述元素确定为键值;
111.在本实施例中,区块链网络确定与元素对应的多个哈希值各自在缓存位数组内后对应的位置,并基于多个哈希值将缓存位数组对应的位置的数值从0修改至1进而生成修改结果,之后,区块链网络判断修改结果是否为多个哈希值各自在缓存位数组内对应的位置为1,区块链网络在判断到修改结果为多个哈希值各自在缓存位数组内对应的位置为1时,确定该元素为读集内包含的键值。
112.示例性地,例如,请参照图4,图4为本技术区块链的并行执行方法一实施例涉及的读集查询原理图,如图4所示,区块链网络在读取各读集redset内所记录的key值时,首先对读集redset内包含的缓存位数组进行初始化,从而令缓存位数组内各位置对应的数值均为0,同时,区块链网络获取技术人员预设的k个哈希函数h1(x)、h2(x)、...、hk(x),区块链网络进而将读集redset内包含的元素分别带入哈希函数h1(x)、h2(x)、...、hk(x)内从而得到多个哈希值,并确定多个哈希值在缓存位数组上对应的位置,之后,区块链网络将多个哈希值各自在缓存位数组上对应位置的数值从0调节至1从而生成修改结果,再之后,区块链网络判断修改结果是否为多个哈希值各自在缓存位数组内对应的位置的数值为1,区块链网络在判断到修改结果为多个哈希值各自在缓存位数组内对应的位置为1时,则确定读集redset内包含的元素为key值,同样的,如果区块链网络在判断到修改结果不为多个哈希值各自在缓存位数组内对应的位置为1时,则确定读集redset内包含的元素不为key值。
113.步骤s30:当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存;
114.在本实施例中,区块链网络在确定多个交易事件中不存在冲突交易时,生成与多个交易事件对应的目标交易结果,并将目标交易结果打包为目标区块进而存储目标区块以供区块链网络上的各节点直接查看。
115.示例性地,例如,区块链网络在确定交易事件tx1、tx2、....、txn各自对应的实时读写集内包含的key值均不一致时,则确定交易事件tx1、tx2、....、txn中不包含冲突交易,
进而生成与交易事件tx1、tx2、....、txn对应的目标交易结果,区块链网络进而将目标交易结果打包形成目标区块block2,区块链网络进而存储目标区块block2以供区块链网络上的各节点直接查看。
116.在本实施例中,多个用户首先通过用户终端将各自发起的交易事件发送至终端设备,由终端设备将多个交易事件添加至区块链网络上部署的交易池内,终端设备进而控制区块链网络读取交易池以获取多个交易事件,区块链网络进而对多个交易事件执行并行处理操作从而生成多个交易事件各自对应的实时读写集,之后,区块链网络在生成多个实时读写集之后,读取多个交易事件各自对应的实时读写集以确定多个实时读写集内各自所记录的键值,区块链网络进而将多个键值相互之间进行比对得到各比对结果,并根据各比对结果判断多个交易事件中是否存在冲突交易,最后,区块链网络在确定多个交易事件中不存在冲突交易时,生成与多个交易事件对应的目标交易结果,并将目标交易结果打包为区块,进而存储区块以供区块链网络上的各节点直接查看。
117.如此,本技术实施例通过生成多个交易事件各自对应的实时读写集,并基于实时读写集内所记录的键值判断多个交易事件之间是否存在冲突交易的方式,令区块链能够在并行处理多个交易事件的过程中,分析多个交易事件之间是否存在冲突交易,从而提升区块链的执行效率。
118.进一步地,请参照图3,图3为本技术区块链的并行执行方法第二实施例的流程示意图,基于上述本技术区块链的并行执行方法的第一实施例,在此提出本技术区块链的并行执行方法第二实施例。
119.在上述步骤s20之后,本技术区块链的并行执行方法还可以包括:
120.步骤c10:当判断到多个所述交易事件中存在冲突交易时,在多个所述交易事件中确定存在冲突交易的目标交易事件;
121.在本实施例中,区块链网络若判断到获取的各比对结果中包含各键值相互之间一致的比对结果时,区块链网络确定多个交易事件中存在冲突交易,区块链网络进而基于多个交易事件各自对应的键值在多个交易事件中确定存在冲突交易的目标交易事件。
122.步骤c20:对多个所述交易事件中除所述目标交易事件外的各其他交易事件执行所述并行处理操作以生成待合并交易结果;
123.在本实施例中,区块链网络对多个交易事件中除了目标交易事件之外的各其他交易事件执行并行处理操作从而生成待合并交易结果。
124.步骤c30:将所述待合并交易结果与所述目标交易事件执行串行处理操作以生成与多个所述交易事件对应的目标交易结果;
125.在本实施例中,区块链网络而将待合并交易结果与目标交易事件执行串行处理操作从而生成目标交易结果,区块链网络将目标交易结果打包为目标区块,进而存储目标区块以供区块链网络上的各节点直接查看。
126.具体地,区块链网络若确定各比对结果中包含多个key值一致的比对结果时,区块链网络确定交易事件tx1、tx2、....、txn中存在冲突交易,之后,区块链网络在各key值中确定数值相同的各目标key值,并将数值相同的各目标key值各自对应的交易事件确定为存在冲突交易的目标交易事件,例如,当交易事件tx2和tx3各自对应的key值一致时,区块链网络确定交易事件tx2和tx3为存在冲突交易的目标交易事件,再之后,区块链网络将目标交
易事件tx3移除,并对交易事件tx1、tx2、....、txn中除交易事件tx3之外的各其他交易事件执行并行处理操作从而生成带合并交易结果s8,最后,区块链网络对带合并交易结果s8和交易事件tx3执行串行处理操作,从而得到目标交易结果,区块链网络进而将目标交易结果打包形成区块block2,区块链网络进而存储区块block2以供区块链网络上的各节点直接查看。
127.在本实施例中,区块链网络若判断到获取的各比对结果中包含各键值相互之间一致的比对结果时,区块链网络确定多个交易事件中存在冲突交易,区块链网络进而基于多个交易事件各自对应的键值在多个交易事件中确定存在冲突交易的目标交易事件,之后,区块链网络对多个交易事件中除了目标交易事件之外的各其他交易事件执行并行处理操作从而生成待合并交易结果,再之后,区块链网络而将待合并交易结果与目标交易事件执行串行处理操作从而生成目标交易结果,区块链网络将目标交易结果打包为目标区块,进而存储目标区块以供区块链网络上的各节点直接查看。
128.如此,本技术实施例通过在确定多个交易事件中存在冲突交易时,首先对除了存在冲突交易的目标交易事件外的各其他交易事件执行并行处理操作从而生成待合并交易结果,进而将待合并交易结果与目标交易事件进行串行执行操作以生成目标交易结果的方式,令区块链能够在对并行处理多个交易事件的过程中,及时解决冲突交易。
129.进一步地,请参照图3,图3为本技术区块链的并行执行方法一实施例涉及的详细流程示意图,基于上述本技术区块链的并行执行方法的第一实施例和/或者第二实施例,在此提出本技术区块链的并行执行方法的优选实施例。
130.在本实施例中,多个用户首先通过各自对应的用户终端发起交易事件tx,多个用户进而各自将事件tx分别发送至终端设备,由终端设备将获取的多个交易事件分辨添加至区块链网络上部署的交易池内,之后,如果采用传统的区块链技术对交易事件tx1、tx2、....、txn执行处理的话,主要通过图4上半部分所示,由区块链网络对交易事件tx1、tx2、....、txn执行串行处理操作,即,区块链网络首先对交易事件tx1进行处理以确定交易事件tx1对应的实时读写集s1,之后,区块链网络在对实时读写集s1和交易事件tx2进行串行处理并依次完成对多个交易事件的执行从而得到目标交易结果,但是,采用这中方式会大大降低区块链网络自身的性能和处理效果;
131.因此,如图3下半部分所示,在本实施例中,通过控制区块链网络在交易池中一次获取多个交易事件tx1、tx2、....、txn,并将多个交易事件tx1、tx2、....、txn中的任意两个交易事件之间执行串行处理操作从而形成交易事件组,区块链网络进而对多个交易事件组执行并行处理操作以生成多个交易事件组各自对应的实时读写集s1、s2、...、sn,之后,区块链网络读取各实时读写集并确定各实时读写集内所记录的key值,进而通过key值判断多个交易事件中是否存在冲突交易,再之后,区块链网络若判断到交易事件tx3与其他交易事件之间存在冲突交易时,则对除交易事件tx3之外的各其他交易事件进行处理以将各交易事件组对应的交易结果s5和s6进行合并得到待合并交易结果s8,区块链网络进而将待合并交易结果s8与交易事件tx3进行串行处理得到目标交易结果,进而将目标交易结果打包形成目标区块block2,从而保存目标区块block2。
132.此外,为实现上述目的,本技术还提供一种区块链的并行执行装置,请参照图3,图3为本技术区块链的并行执行方法一实施例涉及的功能模块示意图,如图3所示,本技术区
块链的并行执行装置包括:
133.生成模块10,用于获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;
134.判断模块20,用于确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;
135.处理模块30,用于当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。
136.进一步地,生成模块10,包括:
137.键值确定单元,用于对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值;
138.键值录入单元,用于将多个所述交易事件各自对应的所述键值写入多个所述交易事件各自对应的所述初始读写集内以生成实时读写集。
139.进一步地,生成模块10,还包括:
140.删除确认单元,用于判断所述交易事件是否删除所述初始读写集内的包含的默认键值;
141.标识更新单元,用于若判断到所述交易事件会删除所述初始读写集内的包含的所述默认键值,则获取删除标识,并将所述删除标识写入所述初始读写集内以生成实时读写集。
142.进一步地,生成模块10,还包括:
143.数量判断单元,用于确定所述键值对应的键值数量,并判断所述键值数量是否大于1;
144.键值删除单元,用于若判断到所述键值数量大于1,则在多个所述键值中确定最后写入所述初始读写集内的目标键值,并对多个所述键值中除所述目标键值外的其他键值执行删除操作。
145.进一步地,判断模块20,包括:
146.键值读取单元,用于确定多个所述实时读写集各自包含的读集,并读取各所述读集以获取多个所述实时读写集各自所记录的键值;
147.键值比对单元,用于将多个所述键值相互之间进行比对得到各比对结果,并基于各所述比对结果判断多个所述交易事件中是否存在冲突交易。
148.进一步地,键值读取单元,包括:
149.缓存初始化子单元,用于将所述读集内包含的缓存位数组进行初始化,并通过预设的多个哈希函数对所述读集内包含的元素进行映射以得到多个哈希值;
150.缓存修改子单元,用于基于多个所述哈希值对所述缓存位数组进行修改得到修改结果,在所述修改结果为多个所述哈希值各自在所述缓存位数组内对应的数值为1时,将所述元素确定为键值。
151.进一步地,处理模块30,包括:
152.冲突确定单元,用于当判断到多个所述交易事件中存在冲突交易时,在多个所述交易事件中确定存在冲突交易的目标交易事件;
153.冲突分解单元,用于对多个所述交易事件中除所述目标交易事件外的各其他交易事件执行所述并行处理操作以生成待合并交易结果;
154.冲突解决单元,将所述待合并交易结果与所述目标交易事件执行串行处理操作以生成与多个所述交易事件对应的目标交易结果。
155.此外,本技术还提供一种终端设备,该终端设备上有可在处理器上运行的区块链的并行执行程序,所述终端设备执行所述区块链的并行执行程序时实现如以上任一项实施例所述的区块链的并行执行方法的步骤。
156.本技术终端设备的具体实施例与上述区块链的并行执行方法各实施例基本相同,在此不作赘述。
157.此外,本技术还提供一种计算机可读存储介质,该计算机可读存储介质上存储有区块链的并行执行程序,所述区块链的并行执行程序被处理器执行时实现如以上任一项实施例所述区块链的并行执行方法的步骤。
158.本发计算机可读存储介质的具体实施例与上述区块链的并行执行方法各实施例基本相同,在此不作赘述。
159.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
160.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
161.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是执行本技术区块链的并行执行方法的设备,该终端设备具体可以是移动终端、数据存储控制终端、pc或者便携计算机等终端等)执行本技术各个实施例所述的方法。
162.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种区块链的并行执行方法,其特征在于,所述区块链的并行执行方法包括以下步骤:获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。2.如权利要求1所述的区块链的并行执行方法,其特征在于,所述对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集的步骤,包括:对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值;将多个所述交易事件各自对应的所述键值写入多个所述交易事件各自对应的所述初始读写集内以生成实时读写集。3.如权利要求2所述的区块链的并行执行方法,其特征在于,在所述对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值的步骤之后,所述方法还包括:判断所述交易事件是否删除所述初始读写集内的包含的默认键值;若判断到所述交易事件会删除所述初始读写集内的包含的所述默认键值,则获取删除标识,并将所述删除标识写入所述初始读写集内以生成实时读写集。4.如权利要求2所述的区块链的并行执行方法,其特征在于,在所述对多个所述交易事件执行并行处理操作以确定多个所述交易事件各自包含的初始读写集,和多个所述交易事件各自需要写入所述初始读写集内的键值的步骤之后,所述方法还包括:确定所述键值对应的键值数量,并判断所述键值数量是否大于1;若判断到所述键值数量大于1,则在多个所述键值中确定最后写入所述初始读写集内的目标键值,并对多个所述键值中除所述目标键值外的其他键值执行删除操作。5.如权利要求1所述的区块链的并行执行方法,其特征在于,所述确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易的步骤,包括:确定多个所述实时读写集各自包含的读集,并读取各所述读集以获取多个所述实时读写集各自所记录的键值;将多个所述键值相互之间进行比对得到各比对结果,并基于各所述比对结果判断多个所述交易事件中是否存在冲突交易。6.如权利要求5所述的区块链的并行执行方法,其特征在于,所述读取各所述读集以获取多个所述实时读写集各自所记录的键值的步骤,包括:将所述读集内包含的缓存位数组进行初始化,并通过预设的多个哈希函数对所述读集内包含的元素进行映射以得到多个哈希值;基于多个所述哈希值对所述缓存位数组进行修改得到修改结果,在所述修改结果为多个所述哈希值各自在所述缓存位数组内对应的数值为1时,将所述元素确定为键值。
7.如权利要求1所述的区块链的并行执行方法,其特征在于,在所述基于各所述键值判断多个所述交易事件中是否存在冲突交易的步骤之后,所述方法还包括:当判断到多个所述交易事件中存在冲突交易时,在多个所述交易事件中确定存在冲突交易的目标交易事件;对多个所述交易事件中除所述目标交易事件外的各其他交易事件执行所述并行处理操作以生成待合并交易结果;将所述待合并交易结果与所述目标交易事件执行串行处理操作以生成与多个所述交易事件对应的目标交易结果。8.一种区块链的并行执行装置,其特征在于,所述装置包括:生成模块,用于获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;判断模块,用于确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;处理模块,用于当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链的并行执行程序,所述区块链的并行执行程序被所述处理器执行时实现如权利要求1至7中任一项所述的区块链的并行执行方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链的并行执行程序,所述区块链的并行执行程序被处理器执行时实现如权利要求1至7中任一项所述的区块链的并行执行方法的步骤。

技术总结
本申请公开了一种区块链的并行执行方法、装置、终端设备及计算机可读存储介质,方法包括:获取交易池内包含的多个交易事件,对多个所述交易事件执行并行处理操作以生成多个所述交易事件各自对应的实时读写集;确定多个所述实时读写集各自所记录的键值,并基于各所述键值判断多个所述交易事件中是否存在冲突交易;当多个所述交易事件组中不存在冲突交易时,生成与多个所述交易事件对应的目标交易结果,并基于所述交易结果形成目标区块进行保存。采用本申请能够实现令区块链能够在并行处理多个交易事件的过程中,分析多个交易事件之间是否存在冲突交易,从而提升区块链的执行效率。率。率。


技术研发人员:商松 芦桂明 曹梦龙 田翔 沈书航 桂宏昱 许强 王恩凯 简海波 庞同庆 张骁 宋慧敏
受保护的技术使用者:无锡吉利区块链科技有限公司
技术研发日:2023.03.23
技术公布日:2023/7/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐