对多个交易进行分组的方法和区块链节点技术

技术编号:34350001 阅读:66 留言:0更新日期:2022-07-31 05:32
一种对多个交易进行分组的方法和区块链节点,所述方法由区块链节点执行,包括:获取多个交易的预执行读写集;根据所述多个交易的预执行读写集,获取所述多个交易访问的区块链中的变量和/或账户的信息;根据所述信息确定对所述多个交易进行分组的算法。所述多个交易进行分组的算法。所述多个交易进行分组的算法。

【技术实现步骤摘要】
对多个交易进行分组的方法和区块链节点


[0001]本说明书实施例属于区块链
,尤其涉及一种对多个交易进行分组的方法和区块链节点。

技术介绍

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

技术实现思路

[0003]本专利技术的目的在于提供一种对多个交易进行分组的方法,以提高交易并行执行的效率。
[0004]本说明书第一方面提供一种对多个交易进行分组的方法,由区块链节点执行,包括:
[0005]获取多个交易的预执行读写集;
[0006]根据所述多个交易的预执行读写集,获取所述多个交易访问的区块链中的变量和/或账户的信息;
[0007]根据所述信息确定对所述多个交易进行分组的算法。。
[0008]本说明书第二方面提供一种区块链节点,包括:
[0009]获取单元,用于获取多个交易的预执行读写集;根据所述多个交易的预执行读写集,获取所述多个交易访问的区块链中的变量和/或账户的信息;
[0010]确定单元,用于根据所述信息确定对所述多个交易进行分组的算法。
[0011]本说明书第三方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
[0012]本说明书第四方面提供一种区块链节点,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
[0013]本说明书实施例提供的方案通过根据多个交易的关联度适应性地确定对多个交易进行分组的算法,提高了并行执行交易的效率。
附图说明
[0014]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0015]图1示出本说明书实施例所应用的区块链架构图;
[0016]图2为一实施例中多个交易的DAG图的示意图;
[0017]图3为本说明书一实施例中的对交易进行分组的方法流程图;
[0018]图4为本说明书另一实施例中的对交易进行分组的方法流程图;
[0019]图5为本说明书实施例中的区块链节点的架构图;
[0020]图6为本说明书实施例中的在区块链中执行交易的方法流程图;
[0021]图7为本说明书实施例中的在区块链中执行交易的方法流程图;
[0022]图8为本说明书实施例中的一种区块链节点的架构图。
具体实施方式
[0023]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0024]图1示出本说明书实施例所应用的区块链架构图。如图1中,区块链中例如包含主节点1、从节点2~从节点5共6个节点。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接。这些节点上都存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点存储相同的状态数据库。所不同的是,主节点1可负责从客户端接收交易,并向各个从节点发起共识提议,该共识提议中例如包括将要成块的区块(例如区块B1)中的多个交易及该多个交易的排列顺序等信息。在区块链中的节点对共识提议共识成功之后,各个节点可根据共识提议中的排列顺序执行该多个交易,从而生成区块B1。
[0025]可以理解,图1所示的区块链仅仅是示例性的,本说明书实施例不限于应用于图1所示的区块链,例如还可以应用于非主从结构的区块链系统中。
[0026]另外,图1中虽然示出了区块链中包括6个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。具体是,区块链中包含的节点可以满足拜占庭容错(Byzantine FaultTolerance,BFT)要求。所述的拜占庭容错要求可以理解为在区块链内部可以存在拜占庭节点,而区块链对外不体现拜占庭行为。一般的,一些拜占庭容错算法中要求节点个数大于3f+1,f为拜占庭节点个数,例如实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance)。
[0027]区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。区块链中的交易可包括平台交易和合约交易。平台交易主要围绕着平台账号操作,包括创建账号、转账、冻结账号、解冻账号、发行资产、存证等。合约交易主要围绕着合约执行操作,包括部署合约、调用合约、升级合约等。
[0028]例如,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。在交易为调用合约的交易的情况中,From字段表示发起该交易的账户地址,To字段表示交易所调用的合约的账户地址,Data字段中包括调用合约中的函数名、及对该
函数的传入参数等数据,以用于在交易执行时从区块链中获取该函数的代码并执行该函数的代码。
[0029]其中,区块链中的账户通常可以分为两种类型:
[0030]合约账户(contract account):存储执行的智能合约代码以及智能合约代码中状态的值,通常只能通过外部账户调用激活;
[0031]外部账户(Externally owned account):区块链用户的账户。
[0032]区块链中的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在区块链中调用智能合约,是发起一笔指向智能合约地址的交易,使得区块链中每个节点分布式地运行智能合约代码。需要说明的是,除了可以由用户创建智能合约,也可以在创世块中由系统设置智能合约。这类合约一般称为创世合约。一般的,创世合约中可以设置一些区块链的数据结构、参数、属性和方法。此外,具有系统管理员权限的账户可以创建系统级的合约,或者修改系统级的合约(简称为系统合约)。其中,所述系统合约可用于在区块链中增加不同业务的数据的数据结构。
[0033]在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对多个交易进行分组的方法,由区块链节点执行,包括:获取多个交易的预执行读写集;根据所述多个交易的预执行读写集,获取所述多个交易访问的区块链中的变量和/或账户的信息;根据所述信息确定对所述多个交易进行分组的算法。2.根据权利要求1所述的方法,所述根据所述信息确定对所述多个交易进行分组的算法包括:根据所述信息确定所述多个交易之间的关联程度,在确定所述关联程度高于预设阈值时,确定使用并查集算法对所述多个交易进行分组,在确定所述关联程度低于预设阈值时,确定使用DAG算法对所述多个交易进行分组。3.根据权利要求1或2所述的方法,所述信息包括以下至少一项信息:所述多个交易中各个交易的冲突交易的数目;所述多个交易中访问相同变量或账户的第一交易的第一数目;所述多个交易访问的外部账户的数目;所述多个交易访问的合约的数目;所述第一数目与所述多个交易的交易数的比值。4.根据权利要求1或2所述的方法,所述方法由区块链中的主节点执行,所述方法还包括,根据所述确定的算法对所述多个交易进行分组,生成共识提议,所述共识提议中包括所述多个交易的预执行读写集、预执行顺序和分组结果。5.根据权利要求4所述的方法,所述主节点中包括预执行进程、缓存进程和第一共识进程,所述获取多个交易的预执行读写集包括:所述预执行进程预执行接收的多个交易,得到多个交易的预执行读写集,将所述多个交易的预执行读写集发送给所述缓存进程,所述根据所述多个交易的预执行读写集,获取所述多个交易访问的区块链中的变量和/或账户的信息,根据所述信息确定对所述多个交易进行分组的算法包括:所述第一共识进程从所述缓存进程接收多个交易的预执行读写集,根据所述多个交易的预执行读写集获取所述多个交易访问的区块链中的变量和/或账户的信息,根据所述信息确定对所述多个交易进行分组的算法。6.根据权利要求1或2所述的方法,所述方法由区块链中的从节点执行,所述获取多个交易的预执行读写集包括,从所述区块链中的主节点接收共识提议,所述共识提议包括所述多个交易的预执行读写集,所述方法还包括,根据所述确定的算法对所述多个交易进行分组,根据所述多个交易的分组结果并行执行所述多个交易,得到所述多个交易的执行读写集。7.根据权利要求6所述的方法,所述从节点包括第二共识进程、区块管理进程和多个计算进程...

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

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

1