交易执行方法和区块链节点技术

技术编号:36686663 阅读:5 留言:0更新日期:2023-02-27 19:50
本说明书实施例提供了一种交易执行方法和区块链节点。该方法的一具体实施方式包括:基于多个交易的读写集,对所述多个交易进行分组得到多个第一交易分组,所述多个第一交易分组访问不相同的变量;获取第二节点通过可信执行环境执行目标第一交易分组所产生的目标读集和目标写集;基于世界状态对所述目标读集进行验证;在验证通过的情况下,将所述目标写集作为目标第一交易分组的执行结果。作为目标第一交易分组的执行结果。作为目标第一交易分组的执行结果。

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


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

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
[0003]在当前区块链技术中,区块链系统的每个参与节点都需要独立执行一遍交易,也就是说,同一个交易需要在区块链系统中的每个参与节点上都执行一遍,这会导致计算资源的浪费。

技术实现思路

[0004]本说明书的实施例提供了一种交易执行方法和区块链节点,可以减少区块链系统中交易执行的冗余度,降低区块链系统中计算资源的浪费。
[0005]根据第一方面,提供了一种交易执行方法,应用于区块链的第一节点,上述方法包括:基于多个交易的读写集,对上述多个交易进行分组得到多个第一交易分组,上述多个第一交易分组访问不相同的变量;获取第二节点通过可信执行环境执行目标第一交易分组所产生的目标读集和目标写集;基于世界状态对上述目标读集进行验证;在验证通过的情况下,将上述目标写集作为目标第一交易分组的执行结果。
[0006]根据第二方面,提供了一种区块链节点,包括:分组单元,配置为基于多个交易的读写集,对上述多个交易进行分组得到多个第一交易分组,上述多个第一交易分组访问不相同的变量;获取单元,配置为获取第二节点通过可信执行环境执行目标第一交易分组所产生的目标读集和目标写集;验证单元,配置为基于世界状态对上述目标读集进行验证;结果确定单元,配置为在验证通过的情况下,将上述目标写集作为目标第一交易分组的执行结果。
[0007]根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行如第一方面中任一实现方式描述的方法。
[0008]根据第四方面,提供了一种区块链节点,包括存储器和处理器,其特征在于,上述存储器中存储有可执行代码,上述处理器执行上述可执行代码时,实现如第一方面中任一实现方式描述的方法。
[0009]根据本说明书实施例提供的交易执行方法和区块链节点,首先,基于多个交易的读写集,对多个交易进行分组得到多个第一交易分组,多个第一交易分组访问不相同的变量,因此,多个第一交易分组可以并行执行。基于此,第一节点可以获取第二节点通过可信执行环境执行目标第一交易分组所产生的目标读集和目标写集,并基于世界状态对目标读
集进行验证,在验证通过的情况下,将目标写集作为目标第一交易分组的执行结果。由于目标写集是由第二节点的可信执行环境产生的,而可信执行环境可以保证其内部代码的安全性、认证性和完整性。所以,在输入确定的情况下,通过可信执行环境可以得到预期执行结果。因此,在目标读集验证通过的情况下,通过可信执行环境得到的目标写集可信。所以第一节点可以将目标写集作为目标第一交易分组的执行结果存储到本地,而本地不需要执行目标第一交易分组中的交易。由此,可以减少区块链系统中交易执行的冗余度,降低区块链系统中计算资源的浪费。且多个第一交易分组可以并行执行,提高了交易执行的效率。
附图说明
[0010]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1示出了一个实施例中的区块链架构图;
[0012]图2示出了本说明书实施例可以应用于其中的一个应用场景的示意图;
[0013]图3示出了根据一个实施例的交易执行方法的流程示意图;
[0014]图4示出了根据一个实施例的区块链节点的结构示意图。
具体实施方式
[0015]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0016]图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链100中例如包含8个节点。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点可通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点可存储相同的状态数据库。可以理解,图1中虽然示出了区块链中包括8个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。
[0017]区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。在交易调用区块链中的智能合约的情况中,From字段表示发起该交易的账户地址,To字段表示交易所调用的合约的账户地址,Data字段中包括调用合约中的函数名、及对该函数的传入参数等数据,以用于在交易执行时从区块链中获取该函数的代码并执行该函数的代码。
[0018]区块链中可提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在以太坊中调用智能合约,是发
起一笔指向智能合约地址的交易,使得以太坊网络中每个节点分布式地运行智能合约代码。需要说明的是,除了可以由用户创建智能合约,也可以在创世块中由系统设置智能合约。这类合约一般称为创世合约。一般的,创世合约中可以设置一些区块链的数据结构、参数、属性和方法。此外,具有系统管理员权限的账户可以创建系统级的合约,或者修改系统级的合约(简称为系统合约)。其中,所述系统合约可用于在区块链中增加不同业务的数据的数据结构。
[0019]在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署合约)的交易发送到如图1所示的区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成一致后,确定合约的合约地址“0x6f8ae93
…”
,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并将合约代码保存在该合约的状态存储中,从而合约创建成功。
[0020]在调用合约的场景中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种交易执行方法,应用于区块链的第一节点,所述方法包括:基于多个交易的读写集,对所述多个交易进行分组得到多个第一交易分组,所述多个第一交易分组访问不相同的变量;获取第二节点通过可信执行环境执行目标第一交易分组所产生的目标读集和目标写集;基于世界状态对所述目标读集进行验证;在验证通过的情况下,将所述目标写集作为目标第一交易分组的执行结果。2.根据权利要求1所述的方法,其中,具有执行结果的交易分组的状态为已执行,不具有执行结果的交易分组的状态为未执行,以及所述方法还包括:从状态为未执行的第一交易分组中选取一个第一交易分组作为待执行第一交易分组,在可信执行环境中执行所述待执行第一交易分组中的交易;将所述待执行第一交易分组执行时生成的读集和写集进行发送。3.根据权利要求2所述的方法,其中,所述将所述待执行第一交易分组执行时生成的读集和写集进行发送,包括:将所述待执行第一交易分组执行时生成的读集和写集,发送给其他节点,或者发送到预设的存储位置。4.根据权利要求1所述的方法,其中,所述获取第二节点通过可信执行环境执行目标第一交易分组所产生的目标读集和目标写集,包括:从所述第二节点或者预设的存储位置,获取所述第二节点通过可信执行环境执行目标第一交易分组所产生的目标读集和目标写集。5.根据权利要求1所述的方法,其中,所述方法还包括:获取所述目标第一交易分组所产生的所述目标读集的校验信息和所述目标写集的校验信息;根据校验信息校验所述目标读集和所述目标写集的完整性。6.根据权利要求1所述的方法,其中,所述多个交易按顺序排列,以及,所述基于多个交易的读写集,对所述...

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

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

1