System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书实施例属于区块链,尤其涉及一种交易执行方法、装置和区块链系统。
技术介绍
1、区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。用户可以通过区块链节点参与实现区块链的相关事务,例如,区块链系统中分别对应不同用户的多个区块链节点,可以基于同态加密、零知识证明等隐私技术针对某一节点的私有数据进行安全多方计算(secure multi-party computation,smpc)。再例如,基于区块链网络可以在不同用户账户之间实现转账;再例如,还可以基于区块链网络发行数字画作、数字头像、gif等数字藏品对应的nft(non-fungible token,非同质化代币),以便nft所承载的数字藏品的所有权能够在区块链网络的用户之间流通,从而产生对应于数字藏品的价值。
2、现阶段,往往由区块链系统中的任一节点(如主从架构下的主节点)针对某一区块中的多笔交易发起共识提议,并由该节点与其他节点(如从节点)共同参与共识后分别执行这些交易。其中,为加快该区块的整体执行速度(即减少该区块中全部交易的整体执行耗时),各个节点会分别对所述多笔交易进行分组以得到多个交易组,并以交易组为单位进行调度分发并执行。对此,为了减少占绝大部分的从节点的工作量,以缩短从节点共识后的交易执行整体耗时,相关技术提出分组前置的方案,即由主节点对交易进行分组,并由主节点和从节点共
3、然而,在前述分组前置的方案中,各个从节点需要在共识完成后按组执行多笔交易,并在执行完成后提交执行结果。由于需要多个节点参与的共识过程往往耗时较长,所以从节点在执行交易之前仍然需要耗费较长时间等待共识完成,其整体交易处理效率仍有待进一步提升。
技术实现思路
1、本说明书的目的在于提供一种交易执行方法、装置和区块链系统。
2、根据本说明书一个或多个实施例的第一方面,提供了一种交易执行方法,应用于区块链系统,所述区块链系统包括第一节点和第二节点,所述方法包括:
3、第一节点基于待执行的第一批交易各自的预执行读写集确定第一批交易的分组结果信息,并将第一批交易和所述分组结果信息提供至第二节点,所述分组结果信息用于指示对第一批交易进行分组得到的m个交易组,m为正整数;以及,发起针对第二批交易的第一共识提议,并与第二节点共同参与共识;
4、第二节点在共识完成前,根据所述分组结果信息确定所述m个交易组并按组执行第一批交易;以及,在共识完成且通过的情况下,若确定第二批交易与第一批交易为同一批交易,则根据第一批交易中各笔已执行交易的执行结果更新相应的状态数据。
5、根据本说明书一个或多个实施例的第二方面,提供了一种交易执行方法,应用于区块链系统中的第二节点,所述区块链系统还包括第一节点,所述方法包括:
6、接收第一节点发送的第一批交易和分组结果信息,以及,获取第一节点针对第二批交易发起的第一共识提议,并与第一节点共同参与共识;其中,所述分组结果信息由第一节点基于待执行的第一批交易各自的预执行读写集确定,用于指示对第一批交易进行分组得到的m个交易组,m为正整数;
7、在共识完成前,根据所述分组结果信息确定所述m个交易组并按组执行第一批交易;以及,在共识完成且通过的情况下,若确定第二批交易与第一批交易为同一批交易,则根据第一批交易中各笔已执行交易的执行结果更新相应的状态数据。
8、根据本说明书一个或多个实施例的第三方面,提供了一种区块链系统,所述区块链系统包括第一节点和第二节点,其中:
9、第一节点用于基于待执行的第一批交易各自的预执行读写集确定第一批交易的分组结果信息,并将第一批交易和所述分组结果信息提供至第二节点,所述分组结果信息用于指示对第一批交易进行分组得到的m个交易组,m为正整数;以及,发起针对第二批交易的第一共识提议,并与第二节点共同参与共识;
10、第一节点用于在共识完成前,根据所述分组结果信息确定所述m个交易组并按组执行第一批交易;以及,在共识完成且通过的情况下,若确定第二批交易与第一批交易为同一批交易,则根据第一批交易中各笔已执行交易的执行结果更新相应的状态数据。
11、根据本说明书一个或多个实施例的第四方面,提供了一种交易执行装置,应用于区块链系统,所述区块链系统包括第一节点和第二节点,所述装置包括:
12、提供及发起单元,用于使第一节点基于待执行的第一批交易各自的预执行读写集确定第一批交易的分组结果信息,并将第一批交易和所述分组结果信息提供至第二节点,所述分组结果信息用于指示对第一批交易进行分组得到的m个交易组,m为正整数;以及,发起针对第二批交易的第一共识提议,并与第二节点共同参与共识;
13、执行及更新单元,用于使第二节点在共识完成前,根据所述分组结果信息确定所述m个交易组并按组执行第一批交易;以及,在共识完成且通过的情况下,若确定第二批交易与第一批交易为同一批交易,则根据第一批交易中各笔已执行交易的执行结果更新相应的状态数据。
14、根据本说明书一个或多个实施例的第五方面,提供了另一种交易执行装置,应用于区块链系统中第二节点,所述区块链系统还包括第一节点,所述装置包括:
15、接收及获取单元,用于接收第一节点发送的第一批交易和分组结果信息,以及,获取第一节点针对第二批交易发起的第一共识提议,并与第一节点共同参与共识;其中,所述分组结果信息由第一节点基于待执行的第一批交易各自的预执行读写集确定,用于指示对第一批交易进行分组得到的m个交易组,m为正整数;
16、执行及更新单元,用于在共识完成前,根据所述分组结果信息确定所述m个交易组并按组执行第一批交易;以及,在共识完成且通过的情况下,若确定第二批交易与第一批交易为同一批交易,则根据第一批交易中各笔已执行交易的执行结果更新相应的状态数据。
17、根据本说明书一个或多个实施例的第六方面,提出了一种电子设备,包括:
18、处理器;
19、用于存储处理器可执行指令的存储器;
20、其中,所述处理器通过运行所述可执行指令以实现如第一方面或第二方面中任一项所述的方法。
21、根据本说明书一个或多个实施例的第七方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面中任一项所述方法的步骤。
22、可以理解的是,本方案中的第一节点除了针对第一批交易发起第一共识提议之外,还会在确定第一批交易的分组结果信息后将第一批交易和该信息提供至第二节点,使得第二节点在等待第一共识提议共识完成的这段时间内可以根据分组结果信息先提前本文档来自技高网...
【技术保护点】
1.一种交易执行方法,应用于区块链系统,所述区块链系统包括第一节点和第二节点,所述方法包括:
2.根据权利要求1所述的方法,第一节点将第一批交易和所述分组结果信息提供至第二节点,包括:
3.根据权利要求2所述的方法,
4.根据权利要求1所述的方法,第一节点基于待执行的第一批交易各自的预执行读写集确定第一批交易的分组结果信息,包括:
5.根据权利要求1所述的方法,第二节点包含控制组件和N个计算组件,N为大于1的整数,第二节点按组执行第一批交易,包括:
6.根据权利要求1所述的方法,第二节点包含控制组件和N个计算组件,N为大于1的整数,第二节点执行任一交易组中的各笔交易,包括:
7.根据权利要求6所述的方法,所述控制组件将所述至少一个最短依赖组分发至所述N个计算组件中相应的计算组件,包括:
8.根据权利要求6所述的方法,任一计算组件执行自身获取到的任一最短依赖组中包含的各笔交易,包括:
9.根据权利要求1所述的方法,还包括:
10.根据权利要求1所述的方法,还包括:
12.一种区块链系统,所述区块链系统包括第一节点和第二节点,其中:
13.一种交易执行装置,应用于区块链系统,所述区块链系统包括第一节点和第二节点,所述装置包括:
14.一种交易执行装置,应用于区块链系统中第二节点,所述区块链系统还包括第一节点,所述装置包括:
15.一种电子设备,包括:
16.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-11中任一项所述方法的步骤。
...【技术特征摘要】
1.一种交易执行方法,应用于区块链系统,所述区块链系统包括第一节点和第二节点,所述方法包括:
2.根据权利要求1所述的方法,第一节点将第一批交易和所述分组结果信息提供至第二节点,包括:
3.根据权利要求2所述的方法,
4.根据权利要求1所述的方法,第一节点基于待执行的第一批交易各自的预执行读写集确定第一批交易的分组结果信息,包括:
5.根据权利要求1所述的方法,第二节点包含控制组件和n个计算组件,n为大于1的整数,第二节点按组执行第一批交易,包括:
6.根据权利要求1所述的方法,第二节点包含控制组件和n个计算组件,n为大于1的整数,第二节点执行任一交易组中的各笔交易,包括:
7.根据权利要求6所述的方法,所述控制组件将所述至少一个最短依赖组分发至所述n个计算组件中相应的计算组件,包括:
8...
【专利技术属性】
技术研发人员:陶友贤,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。