1.一种在区块链中并发执行交易的方法,所述方法在区块链中的第一节点执行,所述第一节点中当前通过预设的预定数目的执行体并发执行交易,所述预定数目的执行体中包括第一执行体,所述第一执行体当前在处理第一交易,所述方法由所述第一执行体执行,包括:
在处理第一交易的过程中进行预定操作之后,在共享内存中记录与第一交易对应的第一待处理任务、以及与该第一待处理任务对应的执行信息,以相对于所述第一交易进入等待过程;
对于所述共享内存中已经记录的多个待处理任务,确定其中是否存在等待过程结束的待处理任务,所述多个待处理任务由所述预定数目的执行体记录;以及
在确定第二待处理任务对应的等待过程结束的情况中,基于与所述第二待处理任务对应的执行信息,继续执行该第二待处理任务,其中,所述多个待处理任务中包括所述第二待处理任务。
2.根据权利要求1所述的方法,还包括,在确定所述多个待处理任务各自的等待过程都未结束的情况中,从共享内存中的第一缓冲区获取待处理的第二交易,并开始执行所述第二交易。
3.根据权利要求1所述的方法,其中,所述共享内存中包括第二缓冲区,其中,在处理第一交易的过程中进行预定操作之后,在共享内存中记录与第一交易对应的第一待处理任务、以及与该第一待处理任务对应的执行信息包括,在处理完成第一交易之后,在确定第二交易未提交的情况中,在所述第二缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第二交易根据预定提交顺序为所述第一交易的前一个交易。
4.根据权利要求3所述的方法,其中,对于所述共享内存中已经记录的多个待处理任务,确定其中是否存在等待过程结束的待处理任务包括,基于共享内存中记录的当前应提交的交易,确定所述第二缓冲区中对应于最小交易编号的待处理任务的等待过程是否结束,以确定所述第二缓冲区中是否存在等待过程结束的待处理任务,其中,所述交易编号对应于交易的提交顺序。
5.根据权利要求4所述的方法,其中,在确定第二待处理任务对应的等待过程结束的情况中,基于与所述第二待处理任务对应的执行信息,继续执行该第二待处理任务包括,在确定所述第二缓冲区中的第二待处理任务的等待过程结束的情况中,基于与所述第二待处理任务对应的执行信息,继续执行对第三交易的提交,其中所述第二待处理任务与所述第三交易相对应。
6.根据权利要求1所述的方法,其中,所述共享内存中包括第三缓冲区,所述第一交易中包括对第一变量的读取操作,其中,在处理第一交易的过程中进行预定操作之后,在共享内存中记录与第一交易对应的第一待处理任务、以及与该第一待处理任务对应的执行信息包括,在请求对所述第一变量的读取之后,在所述第三缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第一待处理任务中包括对所述第一变量的记录。
7.根据权利要求6所述的方法,其中,所述第三缓冲区中包括所述第二待处理任务,所述第二待处理任务与第二交易中对第二变量的读取操作相对应,对于所述共享内存中已经记录的多个待处理任务,确定其中是否存在等待过程结束的待处理任包括,确定所述第二变量的变量值是否被返回,在确定所述第二变量的变量值被返回的情况中,确定该第二待处理任务的等待过程结束。
8.根据权利要求7所述的方法,其中,对于所述共享内存中已经记录的多个待处理任务,确定其中是否存在等待过程结束的待处理任务包括,对于所述第三缓冲区中已经记录的多个待处理任务,基于各个待处理任务对应的交易编号从小至大的顺序,依次确定各个待处理任务的等待过程是否结束,其中,所述第二待处理任务为首次确定的等待过程结束的待处理任务,其中,所述交易编号对应于交易的预定提交顺序。
9.根据权利要求7所述的方法,其中,确定所述第二变量的变量值是否被返回包括,基于在共享内存中的预定地址是否存储有第二变量的变量值,确定所述第二变量的变量值是否被返回,其中,所述预定地址与所述第二交易相对应。
10.根据权利要求7所述的方法,其中,在确定第二待处理任务对应的等待过程结束的情况中,基于与所述第二待处理任务对应的执行信息,继续执行该第二待处理任务包括,在确定所述第三缓冲区中存在等待过程结束的第二待处理任务的情况中,基于与所述第二待处理任务对应的执行信息和所述第二变量的变量值,继续执行所述第二交易。
11.根据权利要求1所述的方法,其中,所述共享内存中包括第四缓冲区,所述第一交易中包括对第一变量的读取操作,其中,在处理第一交易的过程中进行预定操作之后,在共享内存中记录与第一交易对应的第一待处理任务、以及与该第一待处理任务对应的执行信息包括,在执行到所述读取操作的代码之后,确定提交顺序在第一交易之前、且未提交的各个交易是否为已执行了对第一变量的写操作的冲突交易,所述各个交易中包括第二交易,在确定所述第二交易为距离第一交易最近的冲突交易的情况中,在第四缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第一待处理任务中包括对第二交易的记录。
12.根据权利要求11所述的方法,其中,对于所述共享内存中已经记录的多个待处理任务,确定其中是否存在等待过程结束的待处理任务包括,基于共享内存中记录的当前应提交的交易,确定在所述第四缓冲区中记录的多个待处理任务中是否存在等待过程结束的待处理任务。
13.根据权利要求1所述的方法,其中,所述共享内存中包括第五缓冲区,所述第一交易中包括对第一变量的读取操作,其中,在处理第一交易的过程中进行预定操作之后,在共享内存中记录与第一交易对应的第一待处理任务、以及与该第一待处理任务对应的执行信息包括,在执行到所述读取操作的代码之后,推断提交顺序在第一交易之前、且未提交的各个交易是否为将要对第一变量进行写操作的冲突交易,所述各个交易中包括第二交易,在推断所述第二交易为距离第一交易最近的冲突交易的情况中,在所述第五缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第一待处理任务中包括对第二交易的记录。
14.根据权利要求1所述的方法,其中,所述共享内存中包括至少一个缓冲区,所述至少一个缓冲区与至少一种待处理任务分别对应,其中,对于所述共享内存中已经记录的多个待处理任务,确定其中是否存在等待过程结束的待处理任务包括,基于所述至少一个缓冲区的预定顺序,确定各个缓冲区中是否存在等待过程结束的待处理任务。
15.一种在区块链中并发执行交易的装置,所述装置部署在区块链中的第一节点中的第一执行体中,所述第一节点中当前通过预设的预定数目的执行体并发执行交易,其中包括第一执行体,所述第一执行体当前在处理第一交易,所述装置,包括:
记录单元,配置为,在处理第一交易的过程中进行预定操作之后,在共享内存中记录与第一交易对应的第一待处理任务、以及与该第一待处理任务对应的执行信息,以相对于所述第一交易进入等待过程;
确定单元,配置为,对于所述共享内存中已经记录的多个待处理任务,确定其中是否存在等待过程结束的待处理任务,所述多个待处理任务由所述预定数目的执行体记录;以及
继续执行单元,配置为,在确定第二待处理任务对应的等待过程结束的情况中,基于与所述第二待处理任务对应的执行信息,继续执行该第二待处理任务,其中,所述多个待处理任务中包括所述第二待处理任务。
16.根据权利要求15所述的装置,还包括,交易执行单元,配置为,在确定所述多个待处理任务各自的等待过程都未结束的情况中,从共享内存中的第一缓冲区获取待处理的第二交易,并开始执行所述第二交易。
17.根据权利要求15所述的装置,其中,所述共享内存中包括第二缓冲区,其中,所述记录单元还配置为,在处理完成第一交易之后,在确定第二交易未提交的情况中,在所述第二缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第二交易根据预定提交顺序为所述第一交易的前一个交易。
18.根据权利要求17所述的装置,其中,所述确定单元还配置为,基于共享内存中记录的当前应提交的交易,确定所述第二缓冲区中对应于最小交易编号的待处理任务的等待过程是否结束,以确定所述第二缓冲区中是否存在等待过程结束的待处理任务,其中,所述交易编号对应于交易的提交顺序。
19.根据权利要求18所述的装置,其中,所述继续执行单元还配置为,在确定所述第二缓冲区中的第二待处理任务的等待过程结束的情况中,基于与所述第二待处理任务对应的执行信息,继续执行对第三交易的提交,其中所述第二待处理任务与所述第三交易相对应。
20.根据权利要求15所述的装置,其中,所述共享内存中包括第三缓冲区,所述第一交易中包括对第一变量的读取操作,其中,所述记录单元还配置为,在请求对所述第一变量的读取之后,在所述第三缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第一待处理任务中包括对所述第一变量的记录。
21.根据权利要求20所述的装置,其中,所述第三缓冲区中包括所述第二待处理任务,所述第二待处理任务与第二交易中对第二变量的读取操作相对应,所述确定单元还配置为,确定所述第二变量的变量值是否被返回,在确定所述第二变量的变量值被返回的情况中,确定该第二待处理任务的等待过程结束。
22.根据权利要求21所述的装置,其中,所述确定单元还配置为,对于所述第三缓冲区中已经记录的多个待处理任务,基于各个待处理任务对应的交易编号从小至大的顺序,依次确定各个待处理任务的等待过程是否结束,其中,所述第二待处理任务为首次确定的等待过程结束的待处理任务,其中,所述交易编号对应于交易的预定提交顺序。
23.根据权利要求21所述的方法,其中,所述确定单元还配置为,基于在共享内存中的预定地址是否存储有第二变量的变量值,确定所述第二变量的变量值是否被返回,其中,所述预定地址与所述第二交易相对应。
24.根据权利要求21所述的装置,其中,所述继续执行单元还配置为,在确定所述第三缓冲区中存在等待过程结束的第二待处理任务的情况中,基于与所述第二待处理任务对应的执行信息和所述第二变量的变量值,继续执行所述第二交易。
25.根据权利要求15所述的装置,其中,所述共享内存中包括第四缓冲区,所述第一交易中包括对第一变量的读取操作,其中,所述记录单元还配置为,在执行到所述读取操作的代码之后,确定提交顺序在第一交易之前、且未提交的各个交易是否为已执行了对第一变量的写操作的冲突交易,所述各个交易中包括第二交易,在确定所述第二交易为距离第一交易最近的冲突交易的情况中,在第四缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第一待处理任务中包括对第二交易的记录。
26.根据权利要求25所述的装置,其中,所述确定单元还配置为,基于共享内存中记录的当前应提交的交易,确定在所述第四缓冲区中记录的多个待处理任务中是否存在等待过程结束的待处理任务。
27.根据权利要求15所述的装置,其中,所述共享内存中包括第五缓冲区,所述第一交易中包括对第一变量的读取操作,其中,所述记录单元还配置为,在执行到所述读取操作的代码之后,推断提交顺序在第一交易之前、且未提交的各个交易是否为将要对第一变量进行写操作的冲突交易,所述各个交易中包括第二交易,在推断所述第二交易为距离第一交易最近的冲突交易的情况中,在所述第五缓冲区中记录与第一交易对应的第一待处理任务,其中,所述第一待处理任务中包括对第二交易的记录。
28.根据权利要求15所述的装置,其中,所述共享内存中包括至少一个缓冲区,所述至少一个缓冲区与至少一种待处理任务分别对应,其中,所述确定单元还配置为,基于所述至少一个缓冲区的预定顺序,确定各个缓冲区中是否存在等待过程结束的待处理任务。
29.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-14中任一项的所述的方法。
30.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-14中任一项所述的方法。