System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于区块链,尤其涉及一种区块链并行执行方法、装置、计算机设备及存储介质。
技术介绍
1、在区块链系统中,特别是在以evm(ethereum virtual machine,以太坊虚拟机)作为执行环境的区块链系统中,区块交易往往是按照串行方式执行的,这意味着交易会按照它们在区块中的顺序逐一被执行,交易执行速度较慢。
技术实现思路
1、有鉴于此,本申请实施例提供一种区块链并行执行方法、装置、计算机设备及存储介质,以提升区块链执行交易的速度。
2、本申请实施例的第一方面提供了一种区块链并行执行方法,所述区块链并行执行方法包括:
3、获取每笔交易模拟执行时产生的第一读写集合;
4、根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系;
5、根据所述依赖关系,对所述每笔交易并行执行。
6、在一个实施例中,所述根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系之前,还包括:
7、计算所述每笔交易的哈希值;
8、对所述每笔交易的所述第一读写集合和对应的哈希值进行哈希映射,使得通过所述哈希值调用所述第一读写集合。
9、在一个实施例中,所述根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系,包括:
10、根据交易区块中包含的所述每笔交易的哈希值,获取所述每笔交易的所述第一读写集合;
11、
12、在一个实施例中,所述根据所述依赖关系,对所述每笔交易并行执行,包括:
13、将交易区块中包含的每笔交易封装为相应的交易任务;
14、通过多个线程,对不具有所述依赖关系的交易任务进行并行执行,同时对具有所述依赖关系的交易任务,根据所述依赖关系有序的进行并行执行;其中,每个线程用于执行一个交易任务;
15、在所述交易任务执行结束后,获得相应的执行结果,所述执行结果包括执行所述交易任务产生的第二读写集合和交易费用。
16、在一个实施例中,在获得相应的执行结果之后,还包括:
17、校验所述执行结果,对执行失败的交易任务进行重复执行,直至重复执行的交易任务被执行成功;
18、将执行成功的交易任务产生的第二读写集合写入全局映射表,以使所述多个线程中的其他线程通过查询所述全局映射表来感知交易任务的状态。
19、在一个实施例中,所述区块链并行执行方法,还包括:
20、根据所述每笔交易的执行结果,统一结算每笔交易的交易费用。
21、在一个实施例中,所述根据所述依赖关系,对所述每笔交易并行执行,还包括:
22、获取执行账本;
23、从全局映射表或所述执行账本中读取数据,以使每个线程执行相应的交易任务。
24、本申请实施例的第一方面提供的区块链并行执行方法,通过获取交易区块中包含的每笔交易在模拟执行时产生的第一读写集合;然后根据第一读写集合,对每笔交易进行冲突检测,获得每笔交易之间的依赖关系;最后根据依赖关系,对每笔交易并行执行,如此,根据依赖关系实现每笔交易的并行执行,有利于解决交易并行执行时产生冲突的问题,使得区块链处理交易时的每秒交易量(transactionspersecond,tps)得到显著提升。
25、本申请实施例的第二方面提供一种区块链并行执行装置,所述区块链并行执行装置包括:
26、第一获取模块,用于获取每笔交易模拟执行时产生的第一读写集合;
27、第二获取模块,用于根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系;
28、交易执行模块,用于根据所述依赖关系,对所述每笔交易并行执行。
29、本申请实施例的第三方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例的第一方面所述的区块链并行执行方法的步骤。
30、本申请实施例的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例的第一方面所述的区块链并行执行方法的步骤。
31、可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本文档来自技高网...【技术保护点】
1.一种区块链并行执行方法,其特征在于,所述区块链并行执行方法包括:
2.如权利要求1所述的区块链并行执行方法,其特征在于,所述根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系之前,还包括:
3.如权利要求2所述的区块链并行执行方法,其特征在于,所述根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系,包括:
4.如权利要求2所述的区块链并行执行方法,其特征在于,所述根据所述依赖关系,对所述每笔交易并行执行,包括:
5.如权利要求4所述的区块链并行执行方法,其特征在于,在获得相应的执行结果之后,还包括:
6.如权利要求4或5所述的区块链并行执行方法,其特征在于,所述区块链并行执行方法,还包括:
7.如权利要求5所述的区块链并行执行方法,其特征在于,所述根据所述依赖关系,对所述每笔交易并行执行,还包括:
8.一种区块链并行执行装置,其特征在于,所述区块链并行执行装置包括:
9.一种计算机设备,包括存储器、处理器以及存储在所述存储
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的区块链并行执行方法的步骤。
...【技术特征摘要】
1.一种区块链并行执行方法,其特征在于,所述区块链并行执行方法包括:
2.如权利要求1所述的区块链并行执行方法,其特征在于,所述根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系之前,还包括:
3.如权利要求2所述的区块链并行执行方法,其特征在于,所述根据所述第一读写集合,对所述每笔交易进行冲突检测,获得所述每笔交易之间的依赖关系,包括:
4.如权利要求2所述的区块链并行执行方法,其特征在于,所述根据所述依赖关系,对所述每笔交易并行执行,包括:
5.如权利要求4所述的区块链并行执行方法,其特征在于,在获得相应的执行结果之后,还包括:
6.如权利要求4或5所述的区...
【专利技术属性】
技术研发人员:韦懿杰,汪小益,夏立伟,姚文豪,刘毅恒,张帅,
申请(专利权)人:杭州高新区滨江区块链与数据安全研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。