区块链系统中的交易执行方法和区块链节点技术方案

技术编号:36805838 阅读:9 留言:0更新日期:2023-03-09 00:14
一种区块链系统中的交易执行方法和区块链节点。由节点执行的方法涉及包括第一代码段、第二代码段和第三代码段的智能合约,该方法包括:接收用于调用第一代码段的第一链上交易;根据第一链上交易执行第一代码段,获得用于调用第二代码段的链下交易;根据链下交易执行第二代码段,获得用于调用第三代码段的第二链上交易,第二链上交易包括链下进行第一操作的操作结果;根据第二链上交易执行第三代码段,以实现:记录第二链上交易包括的操作结果,在已记录的操作结果的数量达到第一预设数量且存在至少第二预设数量个相同的目标操作结果,而目标操作结果与世界状态相一致的情况下,根据目标操作结果进行第二操作,并存储第二操作的操作结果。二操作的操作结果。二操作的操作结果。

【技术实现步骤摘要】
区块链系统中的交易执行方法和区块链节点


[0001]本说明书实施例属于区块链
,尤其涉及一种区块链系统中的交易执行方法和区块链节点。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。

技术实现思路

[0003]本专利技术的目的在于提供一种区块链系统中的交易执行方法和区块链节点,高耗时交易的执行不会对区块链系统中生成区块的时间造成较大影响,可以提高区块链系统的性能。
[0004]第一方面,提供了一种区块链系统中的交易执行方法,所述区块链系统中部署有智能合约,所述智能合约包括第一代码段、第二代码段和第三代码段,所述区块链系统包括多个区块链节点,所述方法由所述区块链节点执行。所述方法包括:接收用于调用所述第一代码段的第一链上交易;根据所述第一链上交易执行所述第一代码段,获得用于调用所述第二代码段的链下交易,所述链下交易用于指示在链下进行第一操作;根据所述链下交易执行所述第二代码段,获得所述第一操作的操作结果,并生成用于调用所述第三代码段的第二链上交易,所述第二链上交易中包括所述第一操作的操作结果;将所述第二链上交易广播至所述区块链系统中的其它区块链节点,以及从所述区块链系统的其它区块链节点接收其对应生成的第二链上交易;根据所述第二链上交易执行所述第三代码段,以实现:在所述智能合约的合约状态中与所述第一链上交易关联地记录所述第二链上交易中所包括的操作结果,在已记录的与所述第一链上交易关联的操作结果的数量达到第一预设数量,已记录的与所述第一链上交易关联的操作结果中存在至少第二预设数量个相同的目标操作结果,并且所述目标操作结果与所述区块链系统在当前时刻的世界状态相一致的情况下,根据所述目标操作结果执行第二操作,并存储所述第二操作的操作结果。
[0005]第二方面,提供了一种区块链系统中的区块链节点,所述区块链系统中部署有智能合约,所述智能合约包括第一代码段、第二代码段和第三代码段,所述区块链系统包括多个区块链节点。所述区块链节点包括:通信处理单元,配置为接收用于调用所述第一代码段的第一链上交易;链上交易执行单元,配置为根据所述第一链上交易执行所述第一代码段,获得用于调用所述第二代码段的链下交易,所述链下交易用于指示在链下进行第一操作;链下交易执行单元,配置为根据所述链下交易执行所述第二代码段,获得所述第一操作的操作结果,并生成用于调用所述第三代码段的第二链上交易,所述第二链上交易中包括所述第一操作的操作结果;所述通信处理单元,还配置为将所述第二链上交易广播至所述区
块链系统中的其它区块链节点,以及从所述区块链系统的其它区块链节点接收其对应生成的第二链上交易;所述链上交易执行单元,还配置为根据所述第二链上交易执行所述第三代码段,以实现:在所述智能合约的合约状态中与所述第一链上交易关联地记录所述第二链上交易中所包括的操作结果,在已记录的与所述第一链上交易关联的操作结果的数量达到第一预设数量,已记录的与所述第一链上交易关联的操作结果中存在至少第二预设数量个相同的目标操作结果,并且所述目标操作结果与所述区块链系统在当前时刻的世界状态相一致的情况下,根据所述目标操作结果执行第二操作,并存储所述第二操作的操作结果。
[0006]第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中所述的方法。
[0007]第四方面,提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
[0008]在本说明书实施例的方案中,区块链节点在第一链上交易的触发下通过智能合约来执行的操作被划分为高耗时的第一操作和低耗时的第二操作,第一链上交易可以触发智能合约的第一代码段生成链下交易;多个区块链节点可以分别在链下独立执行该链下交易,单个区块链节点在执行前述链下交易的过程中,可以通过执行智能合约的第二代码段来完成对第一操作的执行,获得第一操作的操作结果并生成包含该操作结果的第二链上交易;最后,可以基于多个区块链节点各自生成的第二链上交易分别执行智能合约的第三代码段,实现从第一操作的多个操作结果中确定出正确的目标操作结果,基于目标操作结果完成对低耗时的第二操作的执行并将第二操作的操作结果上链。总而言之,区块链节点在链上交易的触发下通过智能合约执行的操作,可以被划分为高耗时操作和低耗时操作两个组成部分,高耗时操作在链下执行,低耗时操作在链上执行,不会对区块链系统中生成区块的时间造成较大影响,可以提高区块链系统的性能。
附图说明
[0009]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0010]图1示出了一实施例中的区块链架构图;
[0011]图2为PBFT共识算法中的共识过程示意图;
[0012]图3是相关技术中的共识节点的区块链数据存储的结构示意图;
[0013]图4为MPT树的结构示意图;
[0014]图5为本说明书实施例中提供的一种区块链系统中的交易执行方法的流程图;
[0015]图6为本说明书实施例中示例性提供的执行由区块链节点生成的链上交易的过程示意图;
[0016]图7为本说明书实施例中提供一种区块链节点的结构示意图。
具体实施方式
[0017]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明
书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0018]图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链系统100中包括N个节点,图1中示意示出节点1

节点8。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接,所述连接例如可以为TCP连接等,用于在节点之间传输数据。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链系统中的每个节点可通过执行相同的链上交易而产生相同的状态,区块链系统中的每个节点可存储相同的状态数据库,状态数据库中存储的全部账户的状态也经常被表述为区块链系统的世界状态。
[0019]区块链领域中的交易是指在区块链系统中执行的任务单元,其可以被划分为链上交易和链下交易两种类型本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链系统中的交易执行方法,所述区块链系统中部署有智能合约,所述智能合约包括第一代码段、第二代码段和第三代码段,所述区块链系统包括多个区块链节点,所述方法由所述区块链节点执行,所述方法包括:接收用于调用所述第一代码段的第一链上交易;根据所述第一链上交易执行所述第一代码段,获得用于调用所述第二代码段的链下交易,所述链下交易用于指示在链下进行第一操作;根据所述链下交易执行所述第二代码段,获得所述第一操作的操作结果,并生成用于调用所述第三代码段的第二链上交易,所述第二链上交易中包括所述第一操作的操作结果;将所述第二链上交易广播至所述区块链系统中的其它区块链节点,以及从所述区块链系统的其它区块链节点接收其对应生成的第二链上交易;根据所述第二链上交易执行所述第三代码段,以实现:在所述智能合约的合约状态中与所述第一链上交易关联地记录所述第二链上交易中所包括的操作结果,在已记录的与所述第一链上交易关联的操作结果的数量达到第一预设数量,已记录的与所述第一链上交易关联的操作结果中存在至少第二预设数量个相同的目标操作结果,并且所述目标操作结果与所述区块链系统在当前时刻的世界状态相一致的情况下,根据所述目标操作结果执行第二操作,并存储所述第二操作的操作结果。2.根据权利要求1所述的方法,所述第一链上交易用于指示多个期望查询的key;其中,所述根据所述第二链上交易执行所述第三代码段,还实现:在所述目标操作结果与所述区块链系统在当前时刻的世界状态相一致的情况下,向所述业务请求方返回所述目标操作结果中所包括的所述多个期望查询的key的值,所述第一链上交易来自所述业务请求方。3.根据权利要求1所述的方法,所述根据所述第二链上交易执行所述第三代码段,还实现:在所述智能合约的合约状态中与所述第一链上交易关联地记录所述第二链上交易中所包括的操作结果的哈希值,根据已记录的与所述第一链上交易关联的哈希值,确定已记录的与所述第一链上交易关联的操作结果中是否存在至少第二预设数量个相同的目标操作结果。4.根据权利要求1所述的方法,所述第一操作包括,从所述区块链系统的世界状态中查询多个被查询的key的值,和/或,基于区块链系统的世界状态中存储的多个被查询的key的值执行所述第二代码段中定义的计算逻辑。5.根据权利要求1

4中任一项所述的方法,所述第一操作的操作结果中包括多个被查询的key的值;其中,所述根据所述第二链上交易执行所述第三代码段,还实现:确定所述区块链系统中区块高度不小于k的若干目标区块分别对应的状态更新信息,所述状态更新信息用于更新所述区块链系统的世界状态,所述状态更新信息中包括若干被更新的key的值,k表征所述第一上链交易所属区块的区块高度;根据所述被更新的key的值,确定所述目标操作结果所包括的所述多个被查询的key的值与所述区块链系统在当前时刻的世界状态是否一致。6.根据权利要求5所述的方法,所述多个被查询的key中包括若干待更新的key;其中,所述根据所述目标操作结果执行所述第二操作,并存储所述第二操作的操作结
果,具体包括:根据所述目标操作结果所包括的所述多个待更新的key的值确定其各自对应的更新值,并根据所述多个待更新的key各自对应的更新值更新所述区块链系统的世界状态。7.根据权利要求6所述的方法,所述第一代码段和所述链下交易中指示所述若干待更新的key;或者,所述第二代码段中指示所述若干待更新的key。8.根据权利要求5所述的方法,所述第一链上交易用于指示多个期望查询的key;所述多个被查询的key中包括所述多个期望查询的key。9.一种区块链系统中的区块链节点,所述区块链系统中部署有智能合约,所述智能合约包括第一代码段、第二代码段和第三代码段,所述区块链系统包括多个区块链节点,所述区块链节点包括:通信处理单元,配置为接收用于调用所述第一...

【专利技术属性】
技术研发人员:刘晓建
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

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

1