跨链交易组执行方法、计算机设备和存储介质技术

技术编号:36615963 阅读:18 留言:0更新日期:2023-02-15 00:22
本发明专利技术提供一种跨链交易组执行方法、计算机设备和存储介质,该方法包括:接收第一交易组;对第一交易组的各第一交易执行如下操作:在第一交易为第一平行链交易时,判断第一交易所调用的第一合约的第一方法体的always success约束是否为true:是,则第一交易验证通过;在各为第一平行链交易的第一交易均验证通过时,按序执行各为主链交易的第一交易以执行第一交易组;其中,执行后的第一交易组用于供第一平行链的平行链节点:根据执行后的第一交易组中的各为主链交易的第一交易的执行结果执行各为第一平行链交易的第一交易以执行第一交易组。本申请以交易组形式实现主链和平行链的跨链操作。链的跨链操作。链的跨链操作。

【技术实现步骤摘要】
跨链交易组执行方法、计算机设备和存储介质


[0001]本申请涉及区块链
,具体涉及一种跨链交易组执行方法、计算机设备和存储介质。

技术介绍

[0002]假设有主链交易tx1和平行链交易tx2,tx1是主链交易,tx2是pc1的是平行链交易;由于tx1由主链节点先执行,tx2由pc1的平行链节点后执行;如果tx2执行失败了,tx1需要回滚。但如果tx1和tx2在一个交易组中,tx1已经执行成功了,没有办法回滚;因此,tx1和tx2不能放到同一个交易组中。

技术实现思路

[0003]鉴于现有技术中的上述缺陷或不足,期望提供一种以交易组形式实现主链和平行链的跨链操作的跨链交易组执行方法、计算机设备和存储介质。
[0004]第一方面,本专利技术提供一种适用于主链节点的跨链交易组执行方法,各平行链的各合约的各可被交易组调用的方法体均配置有always success约束,上述方法包括:
[0005]接收第一交易组;其中,第一交易组包括至少一条主链交易和至少一条第一平行链的第一平行链交易;
[0006]对第一交易组的各第一交易执行如下操作:
[0007]在第一交易为第一平行链交易时,判断第一交易所调用的第一合约的第一方法体的always success约束是否为true:是,则第一交易验证通过;
[0008]在各为第一平行链交易的第一交易均验证通过时,按序执行各为主链交易的第一交易以执行第一交易组;
[0009]其中,执行后的第一交易组用于供第一平行链的平行链节点:根据执行后的第一交易组中的各为主链交易的第一交易的执行结果执行各为第一平行链交易的第一交易以执行第一交易组。
[0010]第二方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的跨链交易组执行方法。
[0011]第三方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的跨链交易组执行方法。
[0012]本专利技术诸多实施例提供的跨链交易组执行方法、计算机设备和存储介质通过接收第一交易组;对第一交易组的各第一交易执行如下操作:在第一交易为第一平行链交易时,判断第一交易所调用的第一合约的第一方法体的always success约束是否为true:是,则第一交易验证通过;在各为第一平行链交易的第一交易均验证通过时,按序执行各为主链交易的第一交易以执行第一交易组;其中,执行后的第一交易组用于供第一平行链的平行链节点:根据执行后的第一交易组中的各为主链交易的第一交易的执行结果执行各为第一
success约束为false的各平行链的各合约的各可被交易组调用的方法体,或,主链上记录各平行链的各合约的各可被交易组调用的方法体的always success约束,可实现相同的技术效果;
[0029]主链节点执行步骤S12,接收交易组txgroup1{tx1(mainchain.A.lock),tx2(pc1.B.miner)};
[0030]主链节点分别对tx1、tx2执行如下操作:
[0031]由于tx1是主链交易,则跳过;
[0032]由于tx2是平行链交易,则主链节点执行步骤S14,从主链查找pc1.B.miner的always success约束是否为true:
[0033]由于pc1.B.miner的always success约束为true,则tx2验证通过;
[0034]由于tx2验证通过,则主链节点执行步骤S16,执行tx1以执行txgroup1;
[0035]pc1的平行链节点获取由主链节点执行后的txgroup1;
[0036]假设由主链节点执行后的txgroup1的tx1的执行结果为执行正确,则pc1的平行链节点执行tx2以执行txgroup1;
[0037]假设由主链节点执行后的txgroup1的tx1的执行结果为执行失败,则pc1的平行链节点执行txgroup1失败。
[0038]主链节点执行步骤S12,接收交易组txgroup2{tx3(mainchain.A.lock),tx4(pc1.B.transfer)};
[0039]主链节点分别对tx3、tx4执行如下操作:
[0040]由于tx3是主链交易,则跳过;
[0041]由于tx4是平行链交易,则主链节点执行步骤S14,从主链查找pc1.B.transfer的always success约束是否为true:
[0042]由于pc1.B.transfer的always success约束不为true,则tx2验证不通过;
[0043]由于tx2验证不通过,则主链节点执行txgroup2失败;
[0044]pc1的平行链节点由主链节点执行后的txgroup2;
[0045]由于主链节点执行txgroup2失败,则pc1的平行链节点执行txgroup2失败。
[0046]一般来说,主链节点无法感知到平行链节点,若主链节点可以与平行链节点相互感知,则在更多实施例中,各平行链的各合约的各可被交易组调用的方法体的always success约束记录在所属的链上,判断第一交易所调用的第一合约的第一方法体的always success约束是否为true包括“从第一平行链上查找第一交易所调用的第一合约的第一方法体的always success约束是否为true”,可实现相同的技术效果。
[0047]在现有技术中,假设有主链交易tx1和平行链交易tx2,tx1是主链交易,tx2是pc1的是平行链交易;由于tx1由主链节点先执行,tx2由pc1的平行链节点后执行;如果tx2执行失败了,tx1需要回滚。但如果tx1和tx2在一个交易组中,tx1已经执行成功了,没有办法回滚;因此,tx1和tx2不能放到同一个交易组中。
[0048]而在上述实施例中,可以以交易组形式实现主链和平行链的跨链操作,使得主链和平行链的跨链操作变得更为便捷。
[0049]图2为图1所示方法的一种优选实施方式的流程图。如图2所示,主链和平行链的各合约的各可被交易组调用的方法体均配置有prev约束和next约束;
[0050]步骤S14包括:
[0051]S141:在第一交易为主链交易时,判断第一交易所调用的第一方法体是否属于可被交易组调用的方法体,判断第一方法体是否属于合规的方法体,判断第一交易的上一笔交易所调用的第二方法体的名称与第一方法体的第一prev约束是否相同,以及,判断第一交易的下一笔交易所调用的第三方法体的名称与第一方法体的第一next约束是否相同:在上述判断均为是时,则第一交易验证通过;
[0052]S142:在第一交易为第一平行链交易时,判断第一交易所调用的第一方法体是否属于可被交易组调用的方法体,判断第一方法体是否属于合规的方法体,判断第一交易的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨链交易组执行方法,其特征在于,各平行链的各合约的各可被交易组调用的方法体均配置有always success约束,所述方法适用于主链节点,所述方法包括:接收第一交易组;其中,所述第一交易组包括至少一条主链交易和至少一条第一平行链的第一平行链交易;对所述第一交易组的各第一交易执行如下操作:在所述第一交易为所述第一平行链交易时,判断所述第一交易所调用的第一合约的第一方法体的always success约束是否为true:是,则所述第一交易验证通过;在各为所述第一平行链交易的第一交易均验证通过时,按序执行各为所述主链交易的第一交易以执行所述第一交易组;其中,执行后的所述第一交易组用于供所述第一平行链的平行链节点:根据执行后的所述第一交易组中的各为所述主链交易的第一交易的执行结果执行各为所述第一平行链交易的第一交易以执行所述第一交易组。2.根据权利要求1所述的方法,其特征在于,各平行链的各合约的各可被交易组调用的方法体的always success约束记录在主链上,所述判断所述第一交易所调用的第一合约的第一方法体的always success约束是否为true包括:从主链上查找所述第一交易所调用的第一合约的第一方法体的always success约束是否为true。3.根据权利要求1所述的方法,其特征在于,各平行链的各合约的各可被交易组调用的方法体的always success约束记录在所属的链上,所述判断所述第一交易所调用的第一合约的第一方法体的always success约束是否为true包括:从所述第一平行链上查找所述第一交易所调用的第一合约的第一方法体的always success约束是否为true。4.根据权利要求1

3任一项所述的方法,其特征在于,主链和平行链的各合约的各可被交易组调用的方法体均配置有prev约束和next约束;所述在所述第一交易为所述第一平行链交易时,判断所述第一交易所调用的第一合约的第一方法体的always success约束是否为true:是,则所述第一交易验证通过包括:在所述第一交易为主链交易时,判断所述第一交易所调用的第一方法体是否属于可被交易组调用的方法体,判断所述第一方法体是否属于合规的方法体,判断所述第一交易的上一笔交易所调用的第二方法体的名称与所述第一方法体的第一prev约束是否相同,以及,判断所述第一交易的下一笔交易所调用的第三方法体的名称与所述第一方法体的第一next约束是否相同:在上述判断均为是时,则第一交易验证通过;在所述第一交易为所述第一平行链交易时,判断所述第一交易所调用的第一方法体是否属于可被交易组调用的方法体,判断所述第一方法体是否属于合规的方法体,判断所述第一交易的上一笔交易所调用的第二方法体的名称与所述第一方法体的第一prev约束是否相同,判断所述第一交易的下一笔交易所调用的第三方法体的名称与所述第一方法体的第一next约束是否相同,以及,判断所述第一交易所调用的第一合约的第一方法体的always success约束是否为true:在上述判断均为是时,则第一交易验证通过;所述在各为所述第一平行链交易的第一交易均验证通过时,按序执行各为所述主链交易的第一交易以执行所述第一交易组包括:
在各所述第一交易均验证通过时,按序执行各为所述主链交易的第一交易以执行所述第一交易组。5.根据权利要求4所述的方法,其特征在于,所述判断所述第一交易的上一笔交易所调用的第二方法体的名称与所述第一方法体的第一prev约束是否相同包括:在所述第一prev约束为null时,不执行所述判断所述第一交易的上一笔交易所调用的第二方法体的名称与所述第一方法体的第一prev约束是否相同;在所述第一prev约束不为null时,判断所述第一交易的上一笔交易所调用的第二方法体的名称与所述第一方法体的第一prev约束是否相同;所述判断所述第一交易的下一笔交易所调用的第三方法体的名称与所述第一方法体的第一next约束是否相同包括:在所述第一next约束为null时,不执行所述判断所述第一交易的下一笔交易所调用的第三方法体的名称与所述第一方法体的第一next约束是否相同;在所述第一next约束不为null时,判断所述第一交易的下一笔交易所调用的第三方法体的名称与所述第一方法体的第一next约束是否相同。6.根据权利要求4所述的方法,其特征在于,主链和平行链的各可被交易组调用的方法体配置的prev约束和next约束记录在主链上,所述判断所述第一交易的上一笔交易所调用的第二方法体的名称与所述第一方...

【专利技术属性】
技术研发人员:王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:

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

1