1.一种区块链上交易的并行执行方法,其特征在于,所述区块链上交易的并行执行方法包括:
步骤一,读取待执行的一个或多个区块内的所有交易;根据所有交易的from和to地址分成X组,同一个地址的所有交易分到同一组,同一组内的交易按照原来交易的顺序进行排列;
步骤二,并发执行各个组,各个组内的交易按照顺序执行,并记录下每一个交易读写的合约变量和账户地址以及相应的操作,等待交易执行完毕;
步骤三,检查各组交易之间是否有冲突的交易;Y个组产生冲突的所有交易按原始顺序重新排序,找出发生冲突的第一笔交易A,将产生冲突的Y个组重新根据各个交易的交易涉及地址重新分组成Z个组;没有冲突,则交易执行完成;
步骤四,将重新分组的Z个组中交易的原始位置在交易A之后的所有交易重新按组并发执行,并记下每个交易的涉及地址;
步骤五,记录原来X‑Y组的交易涉及地址以及Z组的交易涉及地址,重新进行步骤三。
2.如权利要求1所述的区块链上交易的并行执行方法,其特征在于,所述步骤一的分组以后每个组的地址和另一个组涉及的地址不同。
3.如权利要求1所述的区块链上交易的并行执行方法,其特征在于,步骤三中各组交易之间的冲突的判断方法包括:如果两个组都有交易中对同一个合约变量或者账户地址进行写操作;或者一个组中交易A对合约变量或者账户地址进行写操作,另一个组中交易B对合约变量或者账户地址进行读操作,并且A交易在区块链上的位置位于B交易之前,则这两个组产生冲突,为冲突组合;
如果a组和b组由于某一地址冲突,b组和c组由于另一地址冲突,则a、b、c三组为一个冲突组合;冲突判断之后产生0个或者多个冲突组合。
4.如权利要求1所述的区块链上交易的并行执行方法,其特征在于,步骤三中重新分组的方法包括:
对于一个冲突组合,先将冲突组合内的所有交易按照区块链上的顺序排序,并将第一个交易作为第一个组;然后按顺序将每一个交易的涉及地址与现有组的所有涉及地址进行冲突比较:
若所有的组均不和当前交易产生冲突,则将当前交易作为一个新组;
如果当前交易的涉及地址与其中的组发生冲突,则将冲突的组和交易合并成一个组,并将所有交易按照区块链上的顺序排序。
5.一种实施权利要求1所述区块链上交易的并行执行方法的区块链上交易的并行执行控制系统。
6.一种终端,其特征在于,所述终端搭载实现权利要求1~3任意一项所述区块链上交易的并行执行方法的控制器。
7.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1‑4任意一项所述的区块链上交易的并行执行方法。