本申请属于区块链,特别是涉及一种交易并行过程中数据冲突问题的解决方法及装置。
背景技术:
1、并行技术可以充分利用现代处理器多核处理能力并发执行交易,减少区块执行的整体耗时,显著地提升区块链系统的整体性能。但是,交易并行不可避免地面临交易冲突问题。
2、例如,若多个交易在执行过程中都需要对数据a进行写操作,则对于多个交易而言,数据a为互斥资源,多个交易在并发执行时对于数据a的操作必然会存在冲突。对于多个交易在执行时的互斥资源的冲突问题,目前可以通过读写集、交易依赖图、互斥资源分析等机制规避交易冲突。
3、例如,长安链中,在生成区块时,可以对交易进行并发调度,并将并发顺序记录为交易依赖图,然后将交易依赖图和交易一起打包进区块中。之后节点在执行区块中的多个交易时,可以根据交易依赖图进行并发调度。
4、fisco中,在创建交易时,将可能导致冲突的资源附加在交易中。区块链节点在执行区块中的多个交易时,将对于需要相同资源的交易分配到同一组。同一个组内的交易可以串行执行,组与组之间可以并行执行交易,从而避免了交易因为资源竞争导致的并行冲突。
5、但是以上并行技术,实现手段均是让不存在数据冲突的交易并行执行,存在数据冲突的交易串行执行。对于存在数据冲突的多笔交易,无法并行执行。
技术实现思路
1、有鉴于此,本申请实施例提供了一种交易并行过程中数据冲突问题的解决方法及装置,用以实现并行执行存在数据冲突的多个交易,从而提高交易执行的并发度。
2、本申请实施例的第一方面提供了一种交易并行过程中数据冲突问题的解决方法,应用于区块链,所述方法包括:
3、在并行执行多个所述交易的过程中,若执行到各个所述交易的并行字段,则生成针对各个所述并行字段的并行事件;
4、在多个所述交易均执行完毕后,确定多个所述并行事件的执行顺序;
5、根据所述执行顺序,执行多个所述并行事件,以更新所述区块链的账本中各个所述并行字段的值。
6、本申请实施例的第二方面提供了一种交易并行过程中数据冲突问题的解决装置,应用于区块链,所述装置包括:
7、事件生成模块,用于在并行执行多个所述交易的过程中,若执行到各个所述交易的并行字段,则生成针对各个所述并行字段的并行事件;
8、顺序确定模块,用于在多个所述交易均执行完毕后,确定多个所述并行事件的执行顺序;
9、事件执行模块,用于根据所述执行顺序,执行多个所述并行事件,以更新所述区块链的账本中各个所述并行字段的值。
10、本申请实施例的第三方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
11、本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法。
12、本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行上述第一方面所述的方法。
13、与现有技术相比,本申请实施例包括以下优点:
14、本申请实施例,在多个交易并行执行的过程中,对于每个交易,若执行到交易中的字段,则可以判断该字段是否为可以并行执行的并行字段,该并行字段可以为多个交易之间的冲突字段。对于并行字段,在交易执行过程中可以生成一个并行事件。当交易执行完毕后,对于交易执行过程中得到的多个并行事件,可以确定多个并行事件的执行顺序。根据执行顺序,可以执行多个并行事件,从而得到并行字段的值,从而在区块链的账本中更新并行字段的值。本实施例,对于存在数据冲突的多个交易,可以在多个交易并行执行的过程中,针对存在数据冲突的并行字段,生成对应的并行事件,从而可以先对多个交易并行执行,然后再通过执行并行事件,更新账本中并行字段的值。对于存在数据冲突的多个交易,之前只能串行执行;但是通过本申请中方案,可以先并行执行,在并行执行过程中,在账本中不更新冲突字段的值,而是生成冲突字段的并行事件。相当于,本申请实施例可以同时让更多的交易并行执行,从而更充分地利用了多核处理器的处理能力,提高了并行执行交易时的并发度。此外,对于并行事件按照执行顺序延后执行,可以确保账本中的冲突字段的值与串行执行多个交易的结果一致,保障了执行结果的正确性。
1.一种交易并行过程中数据冲突问题的解决方法,其特征在于,应用于区块链,所述方法包括:
2.如权利要求1所述的方法,其特征在于,在并行执行多个所述交易之前,所述方法还包括:
3.如权利要求2所述的方法,其特征在于,所述若执行到各个所述交易的并行字段,则生成针对各个所述并行字段的并行事件,包括:
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
5.如权利要求1-4任一项所述的方法,其特征在于,所述确定对应的多个所述并行事件的执行顺序,包括:
6.如权利要求1-4任一项所述的方法,其特征在于,所述根据所述执行顺序,执行多个所述并行事件,包括:
7.如权利要求1-4任一项所述的方法,其特征在于,所述交易包括多个所述并行字段,所述根据所述执行顺序,执行多个所述并行事件,包括:
8.如权利要求1-4任一项所述的方法,其特征在于,所述并行事件为延后执行的事件。
9.一种交易并行过程中数据冲突问题的解决装置,其特征在于,应用于区块链,所述装置包括:
10.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的方法。