【技术实现步骤摘要】
一种区块链的并行交易执行方法、装置和电子设备
本专利技术涉及区块链
,尤其是在区块生成和区块验证中交易执行这一
技术介绍
区块链网络上的节点在生成区块时,需要选择并依确定性的顺序,顺次执行一组交易,达成新的世界状态,方可生成区块,进而参与共识。同样,区块链节点在验证区块时,需要依同样的确定性的顺序,顺次执行区块里包含的一组交易并达成新的世界状态,方可验证区块并进而参与共识。因为交易是顺次执行,为了提高出块速度,每个区块能够包含的交易数量可能非常有限,这严重影响区块链的并发能力等性能。执行逻辑复杂、耗时较长的交易时,这个问题就更突出。
技术实现思路
为了解决上述技术问题中的至少一个,本专利技术提供了一种区块链的并行交易执行方法、装置、电子设备和可读存储介质。本专利技术的第一方面,提供了一种区块链的并行交易执行方法,包括:获取每个交易的有效依赖关系;根据所述每个交易的有效依赖关系,为所述每个交易分配交易桶;并行地执行每个交易桶中的交易。可选地,获取每个交易的有效依赖关系,包括:获取每个交易的目标智能合约的有效依赖关系;和/或,获取每个交易声明的有效依赖关系。其中,预先设置每个交易的目标智能合约的有效依赖关系,直接获取每个交易的目标智能合约的有效依赖关系作为交易的有效依赖关系;或者,规定每个交易需要声明有效依赖关系,将交易声明的有效依赖关系作为交易的有效依赖关系;又或者,预先设置每个交易的目标智能合约的有效依赖关系,以及,每
【技术保护点】
1.一种区块链的并行交易执行方法,其特征在于,包括:/n获取每个交易的有效依赖关系;/n根据所述每个交易的有效依赖关系,为所述每个交易分配交易桶;/n并行地执行每个交易桶中的交易。/n
【技术特征摘要】 【专利技术属性】
1.一种区块链的并行交易执行方法,其特征在于,包括:
获取每个交易的有效依赖关系;
根据所述每个交易的有效依赖关系,为所述每个交易分配交易桶;
并行地执行每个交易桶中的交易。
2.如权利要求1所述的方法,其特征在于,获取每个交易的有效依赖关系,包括:
获取每个交易的目标智能合约的有效依赖关系;和/或,获取每个交易声明的有效依赖关系。
3.如权利要求1所述的方法,其特征在于,获取每个交易的有效依赖关系,包括:
获取每个交易的目标智能合约的依赖关系和依赖解除;
获取所述每个交易声明的依赖关系和依赖解除;
根据所述每个交易的目标智能合约的依赖关系和依赖解除,以及所述每个交易声明的依赖关系和依赖解除,确定所述每个交易的有效依赖关系。
4.如权利要求3所述的方法,其特征在于,根据所述每个交易的目标智能合约的依赖关系和依赖解除,以及所述每个交易声明的依赖关系和依赖解除,确定所述每个交易的有效依赖关系,包括:
对于所述每个交易中的任一交易,当所述任一交易的目标智能合约的依赖关系和所述任一交易声明的依赖关系均不为未设定时,计算所述任一交易的目标智能合约的依赖关系和所述任一交易声明的依赖关系的并集,将所述并集减去所述任一交易的目标智能合约的显式依赖解除和所述任一交易的显式依赖解除,得到所述任一交易的有效依赖关系。
5.如权利要求3所述的方法,其特征在于,根据所述每个交易的目标智能合约的依赖关系和依赖解除,以及所述每个交易声明的依赖关系和依赖解除,确定所述每个交易的有效依赖关系,包括:
对于所述每个交易中的任一交易,当所述任一交易的目标智能合约的依赖关系和所述任一交易声明的依赖关系均为未设定时,确定所述任一交易的有效依赖关系为未设定;
对于所述每个交易中的任一交易,当所述任一交易的目标智能合约的依赖关系和所述任一交易声明的依赖关系中的一个为未设定时,将所述任一交易的目标智能合约的依赖关系和所述每个交易声明的依赖关系中的另一个减去所述任一交易的目标智能合约的显式依赖解除和所述任一交易声明的显式依赖解除,得到所述任一交易的有效依赖关系。
6.如权利要求1所述的方法,其特征在于,根据所述每个交易的有效依赖关系,为所述每个交易分配交易桶,包括:
对于所述每个交易中的任一交易,当所述任一交易的有效依赖关系为不相关时,为所述任一交易分配单独的交易桶。
7.如权利要求1所述的方法,其特征在于,根据所述每个交易的有效依赖关系,为所述每个交易分配交易桶,包括:
对于所述每个交易中的任一交易,当所述任一交易的有效依赖关系为未设定时,将所述任一交易分配至用于存放有效依赖关系为未设定的至少一个交易的交易桶;
对于所述每个交易中的任一交易,当所述任一交易的有效依赖关系为一个或多个地址时,将所述任一交易分配至用于存放有效依赖关系相同的交易的交易桶。
8.如权利要求6或7所述的方法,其特征在于,方法还包括:
当用于分配的交易桶不存在时,创建对应的交易桶。
9.如权利要求1所述的方法,其特征在于,并行地执行每个交易桶中的交易,包括:
为每个交易桶创建一个线程,各个线程并行地执行每个交易桶中的交易。
10.如权利要求1所述的方法,其特征在于,并行地执行每个交易桶中的交易,包括:
创建多个线程,每个线程对应至少一个用于存放有效依赖关系为不相关的交易的交易桶,和/或,每个线程对应至少一个用于存放有效依赖关系相同的交易的交易桶;
各个线程并行地执行对应的多个交易桶中的交易。
11.如权利要求1所述的方法,其特征在于,获取每个交易的有效依赖关系之后,还包括:
将所述有效依赖关系更新至区块链网络的世界状态数据。
12.如权利要求1所述的方法,其特征在于,所述执行每个交易桶中的交易之后,还包括:
判断所述每个交易桶中的交易在执行时使用的依赖关系与所述有效依赖关系是否一致;如果是,确定交易执行成功;否则,确定交易执行失败。
13.如权利要求12所述的方法,其特征在于,所述确定交易执行失败之后,还包括:
如果确定目标智能合约的依赖关系和/或依赖解除有误导致交易执行失败,修正所述目标智能合约的依赖关系和/或依赖解除,如果确定交易声明的依赖解除导致交易执行失败,执行惩罚交易发起方的处理流程。
14.如权利要求1所述的方法,其特征在于,
当区块生成时,或者,当区块验证时,获取每个交易的有效依赖关系,根据所述每个交易的有效依赖关系,为所述每个交易分配交易桶,并行地执行每个交易桶中的交易。
技术研发人员:张建钢,
申请(专利权)人:北京全息智信科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。