在区块链系统中执行区块的方法及装置制造方法及图纸

技术编号:29400149 阅读:16 留言:0更新日期:2021-07-23 22:37
本说明书实施例中提供了一种在区块链系统中执行区块的方法及装置,该区块链系统包括第一分片和多个第二分片,该方法由第一分片中的第一节点执行。该方法包括:从所述多个第二分片接收多个第一跨分片子交易,所述多个第一跨分片子交易都与第一交易对应,所述第一交易为属于所述第一分片的第一区块的交易,所述多个第一跨分片子交易由所述多个第二分片分别在执行各自的第二区块的过程中生成;对所述多个第一跨分片子交易合并执行。

【技术实现步骤摘要】
在区块链系统中执行区块的方法及装置
本说明书一个或多个实施例涉及区块链
,尤其涉及在区块链系统中执行区块的方法及装置。
技术介绍
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。目前限制区块链技术大规模落地应用的一个很重要因素是性能,主要包括吞吐量,吞吐量一般可以通过每秒交易笔数(TransactionPerSecond,简称TPS)来度量。开发者们提出了各种各样的方案来尝试提升区块的吞吐量,这一过程称为“扩容”。典型的“扩容”方案中,可以将区块链系统划分为多个分片,多个分片可以并行的执行交易。单个交易的执行过程中涉及来自多个分片的跨分片子交易时,可能因多个跨分片子交易无法被高效的成功执行,导致相应的交易无法快速的完成执行,从而影响区块链的性能。
技术实现思路
本说明书一个或多个实施例中提供了一种在区块链系统中执行区块的方法及装置。第一方面,提供了一种在区块链系统中执行区块的方法,所述区块链系统包括第一分片和多个第二分片,所述方法由第一分片中的第一节点执行。所述方法包括:从所述多个第二分片接收多个第一跨分片子交易,所述多个第一跨分片子交易都与第一交易对应,所述第一交易为属于所述第一分片的第一区块的交易,所述多个第一跨分片子交易由所述多个第二分片分别在执行各自的第二区块的过程中生成;对所述多个第一跨分片子交易合并执行。第二方面,提供了一种在区块链系统中执行区块的装置,所述区块链系统包括第一分片和多个第二分片,所述装置部署于所述第一分片中的第一节点。所述装置包括:交易接收单元,配置为从所述多个第二分片接收多个第一跨分片子交易,所述多个第一跨分片子交易都与第一交易对应,所述第一交易为属于所述第一分片的第一区块的交易,所述多个第一跨分片子交易由所述多个第二分片分别在执行各自的第二区块的过程中生成;合并处理单元,配置为对所述多个第一跨分片子交易合并执行。第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,该计算设备实现第一方面中所述的方法。第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中所述的方法。通过本说明书一个或多个实施例中提供的方法及装置,在包括多个分片的区块链系统中,对于当前分片从多个其它分片接收的多个跨分片子交易,并且多个跨分片子交易与属于当前分片的某个区块中的原始交易相对应的情况下,当前分片中的节点可以对多个跨分片子交易进行合并执行,从而提升区块链系统的整体性能。附图说明为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本说明书实施例中提供的一种区块链系统的示意图;图2为本说明书实施例中提供的区块链系统中各分片执行区块的示意图;图3为本说明书实施例中提供的一种在区块链系统中执行区块的方法的流程示意图;图4为本说明书实施例中提供的另一种在区块链系统中执行区块的方法的流程示意图;图5为本说明书实施例中示例性提供的第二跨分片子交易的示意图;图6为将多个示例性的第一跨分片子交易合并为新的子交易的示意图;图7为本说明书实施例中提供的一种在区块链系统中执行区块的装置的结构示意图。具体实施方式下面结合附图,对本说明书所提供的各个非限制性实施例进行详细描述。如前所述,可以将区块链系统划分为多个分片。具体而言,可以基于分片机制的不同划分为三种情况:网络分片(networksharding)、交易分片(transactionsharding)以及状态分片(statesharding)。网络分片是将整个区块链网络划分成多个子网络,即划分为多个分片,多个分片可以并行处理网络中不同的交易。交易分片是将交易按某种规则分配到不同分片,从而达到并行处理的目的;其中交易分片的前提是先进行网络分片。状态分片的关键是将整个存储区分开,让不同的分片存储不同账户的状态,单个分片负责存储归属于其自身的部分账户的世界状态,而不是存储区块链系统的全部账户的世界状态;其中状态分片能够解决存储能力瓶颈问题。本说明书实施例中提供的方案可应用于状态分片,可以理解,本说明书实施例的方案也可应用于其它类型的分片。区块链系统被划分为多个分片时,由任意当前分片负责处理的交易,比如从用户设备接收的交易或者由其它节点转发的并且来自用户设备的交易,在其执行过程中可能涉及来自多个其它分片的跨分片子交易,例如涉及基于多个包含存储于其它分片中的状态参数的跨分片子交易,对当前分片中存储的状态进行修改和/或再次产生涉及其它分片的跨分片子交易。此种情况下,往往会因多个跨分片子交易无法被高效的执行而影响区块链的性能。鉴于以上问题,本说明书实施例中至少提供了一种在区块链系统中执行区块的方法及装置。在包括多个分片的区块链系统中,对于任意当前分片从多个其它分片接收的多个跨分片子交易,并且该多个跨分片子交易与属于当前分片的某个区块中的原始交易相对应的情况下,当前分片中的节点可以对多个跨分片子交易进行合并执行,从而提升区块链系统的整体性能。在一些实施例中,区块链系统中不同分片的相互信任的节点可以形成集合。图1为本说明书实施例中提供的一种区块链系统的示意图,其中示出了属于分片1、分片2和分片3的节点,其中各节点可以分别实现为任何具有计算能力的装置、设备或设备集群等。图1中还示出了不同分片的互信的多个节点形成的集合A、集合B、集合C和集合D,其中各个集合中包括分别属于前述3个分片的3个节点,比如,集合A中包括节点1A、节点2A和节点3A,其中,节点1A为分片1中的节点,节点2A为分片2中的节点,节点3A为分片3中的节点。同一分片中的节点可以搭建一条区块链,具体例如,分片1中的节点1A、1B、1C和1D可以搭建一条区块链1,分片2中的节点2A、2B、2C和2D可以搭建一条区块链2,分片3中的节点3A、3B、3C和3D可以搭建一条区块链3。每个分片内部的各参与方节点之间进行共识。各个集合中的任意两个节点彼此互为信任节点。对于各个集合中节点间信任关系的建立,以集合A中的节点1A和节点2A为例进行说明。在一个示例中,前述区块链系统可以包括联盟链系统,节点1A和节点2A属于相同的联盟成员,联盟成员中的节点彼此互相信任;其中节点1A和节点2A可以通过所属联盟成员的内部网络连接。在一个示例中,节点1A和节点2A各自属于彼此认可两个相互独立的机构。如此,可以通本文档来自技高网...

【技术保护点】
1.一种在区块链系统中执行区块的方法,所述区块链系统包括第一分片和多个第二分片,所述方法由第一分片中的第一节点执行,包括:/n从所述多个第二分片接收多个第一跨分片子交易,所述多个第一跨分片子交易都与第一交易对应,所述第一交易为属于所述第一分片的第一区块的交易,所述多个第一跨分片子交易由所述多个第二分片分别在执行各自的第二区块的过程中生成;/n对所述多个第一跨分片子交易合并执行。/n

【技术特征摘要】
1.一种在区块链系统中执行区块的方法,所述区块链系统包括第一分片和多个第二分片,所述方法由第一分片中的第一节点执行,包括:
从所述多个第二分片接收多个第一跨分片子交易,所述多个第一跨分片子交易都与第一交易对应,所述第一交易为属于所述第一分片的第一区块的交易,所述多个第一跨分片子交易由所述多个第二分片分别在执行各自的第二区块的过程中生成;
对所述多个第一跨分片子交易合并执行。


2.根据权利要求1所述的方法,其中,对所述多个第一跨分片子交易合并执行,具体包括:将所述多个第一跨分片子交易合并为第三子交易并执行。


3.根据权利要求1所述的方法,其中,还包括:在对所述多个第一跨分片子交易合并执行之后,基于所述合并执行的结果,更新所述第一区块对应的世界状态。


4.根据权利要求1所述的方法,其中,还包括:
执行第一交易,生成与多个第二分片相对应的多个第二跨分片子交易;
将多个所述第二跨分片子交易分别发送至其各自对应的第二分片,以使得所述多个第二分片产生所述多个第一跨分片子交易。


5.根据权利要求4所述的方法,其中,将所述多个第二跨分片子交易分别发送至其各自对应的第二分片,具体包括:将所述多个第二跨分片子交易分别发送至其各自对应的第二分片中的第二节点,各个所述第二节点和所述第一节点互为信任节点。


6.根据权利要求5所述的方法,其中,所述区块链是联盟链,各个所述第二节点和所述第一节点属于相同的联盟成员。


7.根据权利要求4所述的方法,其中,各个所述第二跨分片子交易和各个所述第一跨分片子交易中包括所述第一交易的标识;和/或,各个所述第二跨分片子交易中不包括所述第一节点的数字签名。


8.根据权利要求4至7中任一项所述的方法,其中,所述多个第二跨分片子交易包括用于指示查询所述多个第二分片中的N个参数的状态值的信息,其中N≥2;所述多个第一跨分片子交易中包括所述N个状态值;
所述对所述多个第一跨分片子交易合并执行,具体包括:在确定已接收所述N个状态值之后,对所述多个第一跨分片子交易合并执行。


9.根据权利要求8所述的方法,其中,所述第二跨分片子交易中调用部署于对应的第二分片中的第一合约,用于查询所述对应的第二分片的一个或多个参数的状态值并生成第一跨分片子交易,所述第一跨分片子交易以所述一个或多个状态值为部分传入参数调用部署于第一分片中的第二合约,所述第二合约用于对所述N个状态值进行处理。


10.根据权利要求8所述的方法,其中,所述第一跨分片子交易中指示其中包括的状态值为待返回的N个状态值中的部分状态值。


11.根据权利要求10所述的方法,其中,所述第一跨分片子交易包括与所述N个状态值分别对应的N个字段,所述N个字段中的与所述第一跨分片子交易未包括的状态值对应的字段的值为NULL。


12.根据权利要求10所述的方法,其中,还包括:在从任一所述第二分片接收所述第一跨分片子交易之后,在与所述第一交易对应的第一存储空间中缓存该第一跨分片子交易;所述确定已接收所述N个状态值具体包括,在确定所述第一存储空间中缓存的多个第二跨分片子交易包括全部N个状态值的情况下,确定已接收所述N个状态值。


13.一种在区块链系统中执行区块的装置,所述区块链系统包括第一分片和多个第二分片,所述装置部署于所述第一分片中的第一节...

【专利技术属性】
技术研发人员:郑子彬徐泉清郑沛霖闫莺张辉
申请(专利权)人:支付宝杭州信息技术有限公司蚂蚁区块链科技上海有限公司
类型:发明
国别省市:浙江;33

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

1