在区块链中执行交易的方法及区块链的主节点技术

技术编号:34638892 阅读:11 留言:0更新日期:2022-08-24 15:13
本说明书提供一种在区块链中执行交易的方法及区块链的主节点,所述区块链包括主节点和从节点,其中,在区块链中执行交易的方法由所述主节点执行,所述方法包括:预执行属于第一区块的多个交易;确定所述多个交易中的第一交易为预设类型的交易;在预执行所述多个交易之后,与所述从节点对所述第一区块进行共识;在完成对所述第一区块的共识之后,重新执行所述第一交易。述第一交易。述第一交易。

【技术实现步骤摘要】
在区块链中执行交易的方法及区块链的主节点


[0001]本说明书一个或多个实施例涉及区块链
,特别涉及一种在区块链中执行交易的方法及区块链的主节点。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证数据区块不可篡改和不可伪造。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
[0003]目前来说,交易的执行效率难以提升,需要一种高效执行交易的方案。

技术实现思路

[0004]本说明书一个或多个实施例提供一种在区块链中执行交易的方法及区块链的主节点。
[0005]根据第一方面,提供一种在区块链中执行交易的方法,所述区块链包括主节点和从节点,所述方法由所述主节点执行,所述方法包括:
[0006]预执行属于第一区块的多个交易;
[0007]确定所述多个交易中的第一交易为预设类型的交易;
[0008]在预执行所述多个交易之后,与所述从节点对所述第一区块进行共识;
[0009]在完成对所述第一区块的共识之后,重新执行所述第一交易。
[0010]根据第二方面,提供一种区块链中的主节点,所述区块链还包括从节点,主节点包括:
[0011]预执行进程,用于预执行属于第一区块的多个交易,并确定所述多个交易中的第一交易为预设类型的交易;
[0012]共识进程,用于在预执行所述多个交易之后,与所述从节点对所述第一区块进行共识;
[0013]计算进程,用于在完成对所述第一区块的共识之后,重新执行所述第一交易。
[0014]根据第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法。
[0015]根据第四方面,提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任一项所述的方法。
[0016]本说明书的实施例提供的技术方案可以包括以下有益效果:
[0017]本说明书的实施例提供的在区块链中执行交易的方法及区块链的主节点,在主节点对当前区块进行预执行完成之后,如果确定当前区块的多个交易中存在预设类型的交易,则在完成对当前区块的共识之后,重新执行预设类型的交易。从而有效提高了区块链中
区块的执行速度,以及提高了区块链系统的性能。
[0018]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0019]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1是本说明书实施例所应用的区块链架构图;
[0021]图2是本说明书根据一示例性实施例示出的PBFT共识算法中的共识过程示意图;
[0022]图3是本说明书根据一示例性实施例示出的一种区块链中执行交易的过程示意图;
[0023]图4是本说明书根据一示例性实施例示出的一种区块链的主节点和从节点的结构图;
[0024]图5是本说明书根据一示例性实施例示出的一种在区块链中执行交易的方法流程图;
[0025]图6是本说明书根据一示例性实施例示出的一种区块链中的主节点的框图。
具体实施方式
[0026]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0027]区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及通过共识竞争新区块的记账权等。在私有链中,网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。联盟链是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
[0028]如图1所示,是本说明书实施例所应用的区块链架构图。
[0029]在图1所示的区块链架构图中,区块链中例如包含主节点1、从节点2~从节点6共6个节点。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点可通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点可存储相同的状态数据库。所不同的是,主节点1可负责对接收的交易进行预执行,并向各个从节点发起共识提议,
该共识提议中例如包括将要成块的区块(例如区块B1)中的多个交易及各个交易的预执行读写集和预执行顺序等信息。在区块链中的各个节点对共识提议共识成功之后,各个从节点可根据共识提议中的预执行顺序执行该多个交易,从而生成区块B1。
[0030]可以理解,图1中虽然示出了区块链中包括6个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。具体是,区块链中包含的节点可以满足拜占庭容错(Byzantine Fault Tolerance,BFT)要求。所述的拜占庭容错要求可以理解为在区块链内部可以存在拜占庭节点,而区块链对外不体现拜占庭行为。一般的,一些拜占庭容错算法中要求节点个数大于3f+1,f为拜占庭节点(即恶意节点)个数,例如实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance)。
[0031]区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。在交易调用区块链中的智能合约的情况中,From字段表示发起该交易的账户地址,To字段表示交易所调用的合约的账户地址,Data字段中包括调用合约中的函数名、及对该函数的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在区块链中执行交易的方法,所述区块链包括主节点和从节点,所述方法由所述主节点执行,所述方法包括:预执行属于第一区块的多个交易;确定所述多个交易中的第一交易为预设类型的交易;在预执行所述多个交易之后,与所述从节点对所述第一区块进行共识;在完成对所述第一区块的共识之后,重新执行所述第一交易。2.根据权利要求1所述的方法,其中,所述预设类型的交易为读集中包括预设变量的交易,所述预设变量采用随机数作为状态值。3.根据权利要求2所述的方法,其中,所述确定所述多个交易中的第一交易为预设类型的交易,包括:在预执行所述第一交易的过程中,确定所述第一交易调用智能合约;在调用所述智能合约时,判断是否调用预设接口;若调用所述预设接口,则确定所述第一交易为预设类型的交易。4.根据权利要求2所述的方法,其中,所述重新执行所述第一交易,包括:获取共识结果;所述共识结果中包括经过共识后的目标状态值;所述目标状态值为所述第一交易的读集中所述预设变量的状态值;基于所述目标状态值重新执行所述第一交易。5.根据权利要求1所述的方法,其中,在确定所述多个交易中的第一交易为预设类型的交易之后,所述方法还包括:对所述第一交易进行标记。6.根据权利要求1所述的方法,其中,所述第一交易为所述第一区块的多个交易中首个被预执行的预设类型的交易;其中,在重新执行所述第一交易之后,所述方法还包括:重新执行所述多个交易中在所述第一交易之后被预执行的交易。7.根据权利要求1所述的方法,其中,所述主节点包括预执行进程,共识进程和计算进程;所述主节点通过所述预执行进程预执行所述多个交易,并确定所述多个交易中的第一交易为预设类型的交易;所述主节点通过所述共识进程对所述第一区块进行共识;所述主节点通过所述计算进程重新执行所述第一交易。8.根据权利要求7所述的方法,其中,所述主节点还包括缓存进程,所述缓存进程存储有所述区块链的最新世界状态的状态数据;其中,在所述预执行进程预执行所述多个交易之后,还包括:所述预执行进程将预执行所述多个交易得到的各个交易的预执行读写集提交给所述缓存进程,所述缓存进程根据所述各个交易的预执行读写集中的预执行写集更新存储的世界状态的状态数据。9.根据权利要求8所述的方法,在所述计算进程重新执行所述第一交易之后,还包括:所述计算进程向所述缓存进程发送重新执行事件通知,所述重新执行事件通知包括重新执行所述第一交易得到的执行写集;所述缓存进程利用所述执行写集重新更新存储的世界状态的状态数据。10.根据权利要求8所述的方法,其中,所述预执行进程预执行所述多个交易,包括:所述预执行进程从所述缓存进程读取所述多个交易的预执行读集,并利用读取的所述预执行读集预执行所述多个交易。
11.根据权利要求10所述的方法,其中,所述主节点还包括管理进程和存储进程;所述存储进程存储有所述区块链的状态数据库;所述方法还包括:所述共识进程从所述缓存进程获取所述各个交易的预执行读写集;所述管理进程从所述共识进程获取所述各个交易的预执行读写集中的预执行写集;在对所述第一区块进行共识的过程中,所述管理进程并行地基于所述预执行写集,更新所述存储进程存储的所述区块...

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

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

1