基于区块链的交易方法、装置、电子设备及存储介质制造方法及图纸

技术编号:29158829 阅读:27 留言:0更新日期:2021-07-06 22:59
本申请提供了一种基于区块链的交易方法、装置、电子设备及存储介质,不仅将待执行交易执行分组操作,得到至少一个目标交易组别,在最近一次执行的分组操作不是对当前交易轮次所执行的首次分组操作时,确定当前交易轮次中的至少一个目标交易;其中,目标交易为可采纳的交易或待定的交易或需要重新执行的交易;将当前交易轮次中未被采纳的目标交易,作为新的待执行交易,进行下一交易轮次的分组操作。通过根据交易状态对交易进行分类,只针对部分交易进行重新分组,从而提高区块链交易执行的效率。

【技术实现步骤摘要】
基于区块链的交易方法、装置、电子设备及存储介质
本申请涉及区块链
,特别涉及一种基于区块链的交易方法、装置、电子设备及存储介质。
技术介绍
目前,基于账户模型的区块链交易执行都是顺序执行,以保证区块链所有节点执行交易后整体状态的一致性。但是,按照顺序执行每一个交易,不能完全的有效利用计算机可并行执行的优势,现有的一些研究基于交易分组等进行并行执行,但是存在分组不准确,反而需要重新执行,执行效率较慢,无法利用已经执行的交易分组对后续交易分组进行最大化的正确分组。从而导致现有的基于账户模型的区块链的交易执行效率较慢。
技术实现思路
有鉴于此,本申请提供一种基于区块链的交易方法、装置、电子设备及存储介质,可以有效地提高区块链交易执行的效率。本申请第一方面提供了一种基于区块链的交易方法,包括:对当前交易轮次需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别;其中,每一个所述目标交易组别中的待执行交易的地址信息集合,与其他目标交易组别中的待执行交易的地址信息集合均不存在交集;若最近一次执行的所述分组操作不是对当前交易轮次所执行的首次分组操作,则确定当前交易轮次中的至少一个目标交易;其中,所述目标交易为可采纳的交易或待定的交易或需要重新执行的交易;所述待定的交易为允许直接复用前一交易轮次中的交易执行结果的交易;判断每一个所述目标交易是否均被采纳;若判断出每一个所述目标交易均被采纳,则结束当前交易轮次的交易;若判断出任一所述目标交易未被采纳,则将未被采纳的所述目标交易,作为新的待执行交易,并针对所述新的待执行交易,返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别。可选的,所述基于区块链的交易方法,还包括:若最近一次执行的所述分组操作是对当前交易轮次所执行的首次分组操作,则并行处理每一个所述目标交易组别;其中,所述目标交易组别中的一个或多个所述待执行交易串行执行。可选的,所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别,包括:获取当前交易轮次的需要执行的交易集合;其中,所述需要执行的交易集合中包括至少一个待执行交易以及每一个所述待执行交易的地址信息集合;在所有所述待执行交易中,确认每两个待执行交易的地址信息集合有交集的待执行交易;在所有所述待执行交易中,将待执行交易的地址信息集合有交集的待执行交易作为同一个目标交易组别。可选的,所述若最近一次执行的所述分组操作是对当前交易轮次所执行的首次分组操作,则并行处理每一个所述目标交易组别之后,还包括:判断前一交易轮次中待定的交易集合是否为空;其中,所述待定的交易集合由至少一个所述待定的交易组成;若判断出前一交易轮次中待定的交易集合为空,则将当前交易轮次中的每一个所述目标交易组别中的待执行交易的执行结果,赋值给所述需要执行的交易集合,并返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别;若判断出前一交易轮次中待定的交易集合不为空,则将当前交易轮次中的每一个目标交易组别中的已经执行完的待执行交易的与所述待定的交易集合合并后,赋值给所述需要执行的交易集合,并返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别。可选的,所述若判断出任一所述目标交易未被采纳,则将未被采纳的所述目标交易,作为新的待执行交易,并针对所述新的待执行交易,返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别之后,还包括:将未被采纳的目标交易的地址信息集合以及与所述未被采纳的目标交易发生冲突的交易的地址信息集合,存入至交易分组依赖库中的同一张依赖表。可选的,所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别之前,还包括:初始化交易分组依赖库;其中,所述交易分组依赖库由多张依赖表组成,所述交易分组依赖库的依赖变量为:交易的交易方地址信息、被交易方地址信息以及合约地址信息。可选的,所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别之前,还包括:初始化需要执行的交易集合、需要执行的前轮交易集合、可采纳的交易集合、待定的交易集合以及当前采纳的交易在区块中的最大序列号变量。可选的,所述目标交易组别中的待执行交易按照交易索引从小到大进行排序,所述若最近一次执行的所述分组操作不是对当前交易轮次所执行的首次分组操作,则确定当前交易轮次中的至少一个目标交易,包括:确定存在冲突交易的目标交易组别;针对每一个所述存在冲突交易的目标交易组别,确定所述存在冲突交易的目标组别的冲突指数;其中,所述冲突指数为所述存在冲突交易的目标交易组别中第一个发生冲突的待执行交易的交易索引值;将所有所述存在冲突交易的目标组别的冲突指数的最小值,确定为目标冲突指数;将待执行交易的交易索引值小于所述目标冲突指数的待执行交易,确定为可采纳的交易;将待执行交易的交易索引值大于或等于所述目标冲突指数,且不属于待定的交易集合中的待执行交易,确定为需要重新执行的交易;将没有冲突交易的目标交易组别中,待执行的交易索引值大于或等于所述目标冲突指数的待执行交易,确定为待定的交易。本申请第二方面提供了一种基于区块链的交易装置,包括:分组单元,用于对当前交易轮次需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别;其中,每一个所述目标交易组别中的待执行交易的地址信息集合,与其他目标交易组别中的待执行交易的地址信息集合均不存在交集;确定单元,用于若最近一次执行的所述分组操作不是对当前交易轮次所执行的首次分组操作,则确定当前交易轮次中的至少一个目标交易;其中,所述目标交易为可采纳的交易或待定的交易或需要重新执行的交易;所述待定的交易为允许直接复用前一交易轮次中的交易执行结果的交易;第一判断单元,用于判断每一个所述目标交易是否均被采纳;结束单元,用于若所述第一判断单元判断出,每一个所述目标交易均被采纳,则结束当前交易轮次的交易;激活单元,用于若所述第一判断单元判断出,任一所述目标交易未被采纳,则将未被采纳的所述目标交易,作为新的待执行交易,并针对所述新的待执行交易,激活所述分组单元执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别。可选的,所述基于区块链的交易装置,还包括:处理单元,用于若最近一次执行的所述分组操作是对当前交易轮次所执行的首次分组操作,则并行处理每一个所述目标交易组别;其中,所述目标交易组别中的一个或多个所述待执行交易串行执行。可选的,所述分组单元,包括:获取单元,用于获取当前交易轮次的需要执行的本文档来自技高网...

【技术保护点】
1.一种基于区块链的交易方法,其特征在于,包括:/n对当前交易轮次需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别;其中,每一个所述目标交易组别中的待执行交易的地址信息集合,与其他目标交易组别中的待执行交易的地址信息集合均不存在交集;/n若最近一次执行的所述分组操作不是对当前交易轮次所执行的首次分组操作,则确定当前交易轮次中的至少一个目标交易;其中,所述目标交易为可采纳的交易或待定的交易或需要重新执行的交易;所述待定的交易为允许直接复用前一交易轮次中的交易执行结果的交易;/n判断每一个所述目标交易是否均被采纳;/n若判断出每一个所述目标交易均被采纳,则结束当前交易轮次的交易;/n若判断出任一所述目标交易未被采纳,则将未被采纳的所述目标交易,作为新的待执行交易,并针对所述新的待执行交易,返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别。/n

【技术特征摘要】
1.一种基于区块链的交易方法,其特征在于,包括:
对当前交易轮次需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别;其中,每一个所述目标交易组别中的待执行交易的地址信息集合,与其他目标交易组别中的待执行交易的地址信息集合均不存在交集;
若最近一次执行的所述分组操作不是对当前交易轮次所执行的首次分组操作,则确定当前交易轮次中的至少一个目标交易;其中,所述目标交易为可采纳的交易或待定的交易或需要重新执行的交易;所述待定的交易为允许直接复用前一交易轮次中的交易执行结果的交易;
判断每一个所述目标交易是否均被采纳;
若判断出每一个所述目标交易均被采纳,则结束当前交易轮次的交易;
若判断出任一所述目标交易未被采纳,则将未被采纳的所述目标交易,作为新的待执行交易,并针对所述新的待执行交易,返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别。


2.根据权利要求1所述的交易方法,其特征在于,还包括:
若最近一次执行的所述分组操作是对当前交易轮次所执行的首次分组操作,则并行处理每一个所述目标交易组别;其中,所述目标交易组别中的一个或多个所述待执行交易串行执行。


3.根据权利要求1所述的交易方法,其特征在于,所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别,包括:
获取当前交易轮次的需要执行的交易集合;其中,所述需要执行的交易集合中包括至少一个待执行交易以及每一个所述待执行交易的地址信息集合;
在所有所述待执行交易中,确认每两个待执行交易的地址信息集合有交集的待执行交易;
在所有所述待执行交易中,将待执行交易的地址信息集合有交集的待执行交易作为同一个目标交易组别。


4.根据权利要求2所述的交易方法,其特征在于,所述若最近一次执行的所述分组操作是对当前交易轮次所执行的首次分组操作,则并行处理每一个所述目标交易组别之后,还包括:
判断前一交易轮次中待定的交易集合是否为空;其中,所述待定的交易集合由至少一个所述待定的交易组成;
若判断出前一交易轮次中待定的交易集合为空,则将当前交易轮次中的每一个所述目标交易组别中的待执行交易的执行结果,赋值给所述需要执行的交易集合,并返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别;
若判断出前一交易轮次中待定的交易集合不为空,则将当前交易轮次中的每一个目标交易组别中的已经执行完的待执行交易的与所述待定的交易集合合并后,赋值给所述需要执行的交易集合,并返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别。


5.根据权利要求1所述的交易方法,其特征在于,所述若判断出任一所述目标交易未被采纳,则将未被采纳的所述目标交易,作为新的待执行交易,并针对所述新的待执行交易,返回执行所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别之后,还包括:
将未被采纳的目标交易的地址信息集合以及与所述未被采纳的目标交易发生冲突的交易的地址信息集合,存入至交易分组依赖库中的同一张依赖表。


6.根据权利要求1所述的交易方法,其特征在于,所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别之前,还包括:
初始化交易分组依赖库;其中,所述交易分组依赖库由多张依赖表组成,所述交易分组依赖库的依赖变量为:交易的交易方地址信息、被交易方地址信息以及合约地址信息。


7.根据权利要求1所述的交易方法,其特征在于,所述对当前交易轮次的需要执行的交易集合中的待执行交易执行分组操作,得到至少一个目标交易组别之前,还包括:
初始化需要执行的交易集合、需要执行的前轮交易集合、可采纳的交易集合、待定的交易集合以及当前采纳的交易在区块中的最大序列号变量。


8.根据权利要求1所述的交易方法,其特征在于,所述目标交易组别中的待执行交易按照交易索引从小到大进行排序,所述若最近一次执行的所述分组操作不是对当前交易轮次所执行的首次分组操作,则确定当前交易轮次中的至少一个目标交易,包括:
确定存在冲突交易的目标交易组别;
针对每一个所述存在冲突交易的目标交易组别,确定所述存在冲突交易的目标组别的冲突指数;其中,所述冲突指数为所述存在冲突交易的目标交易组别中第一个发生冲突的待执行交易的交易索引值;
将所有所述存在冲突交易的目标组别的冲突指数的最小值,确定为目标冲突指数;
将待执行交易的交易索引值小于所述目标冲突指数的待执行交易,确定为可采纳的交易;
将待执行交易的交易索引值大于或等于所述目标冲突指数,且不属于待定的交易集合中的待执行交易,确定为需要重新执行的交易;
将没有冲突交易的目标交易组别中,待执行的交易索引值大于或等于所述目标冲突指数的待执行交易,确定为待定的交易。


9.一种基于区块链的交易装置,其特征在于,包括:
分组单元,用于对当前交易...

【专利技术属性】
技术研发人员:柳宇航胡慧潘
申请(专利权)人:恒生电子股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1