CN113656507B - 区块链系统中执行交易的方法及装置 - Google Patents
区块链系统中执行交易的方法及装置 Download PDFInfo
- Publication number
- CN113656507B CN113656507B CN202110989738.5A CN202110989738A CN113656507B CN 113656507 B CN113656507 B CN 113656507B CN 202110989738 A CN202110989738 A CN 202110989738A CN 113656507 B CN113656507 B CN 113656507B
- Authority
- CN
- China
- Prior art keywords
- transaction
- transactions
- vertex
- group
- accessed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004590 computer program Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供一种区块链系统中执行交易的方法及装置,由区块链的节点执行,该方法包括确定待执行的多个交易对应的顺序以及各个交易各自访问的各个参数;基于所述顺序以及所述各个交易各自访问的各个参数,划分得到第一交易组和第二交易组;其中,所述第二交易组包括至少一个第二交易;任一第二交易与所述第一交易组中的至少一个第一交易存在读写冲突,且该第二交易的顺序在与该第二交易存在读写冲突的第一交易之后;在执行完成所述第一交易组中的各个第一交易之后,并行地执行所述第一交易组中的剩余交易和所述第二交易组中的第二交易。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,特别涉及一种区块链系统中执行交易的方法及装置。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
目前来说,在相关的技术中,区块链系统在计算和存储方面的可扩展性较弱,制约了区块链系统的吞吐量,难以满足应用的需求。因此,需要提供一种区块链系统中执行交易的方法。
发明内容
本说明书一个或多个实施例提供一种区块链系统中执行交易的方法及装置。
根据第一方面,提供一种区块链系统中执行交易的方法,由区块链的节点执行,所述方法包括:
确定待执行的多个交易对应的顺序以及各个交易各自访问的各个参数;
基于所述顺序以及所述各个交易各自访问的各个参数,划分得到第一交易组和第二交易组;其中,所述第二交易组包括至少一个第二交易;任一第二交易与所述第一交易组中的至少一个第一交易存在读写冲突,且该第二交易的顺序在与该第二交易存在读写冲突的第一交易之后;
在执行完成所述第一交易组中的各个第一交易之后,并行地执行所述第一交易组中的剩余交易和所述第二交易组中的第二交易。
根据第二方面,提供一种区块链系统中执行交易的装置,部署于区块链的节点,所述装置包括:
确定模块,用于确定待执行的多个交易对应的顺序及各个交易各自访问的各个参数;
划分模块,用于基于所述顺序以及所述各个交易各自访问的各个参数,划分得到第一交易组和第二交易组;其中,所述第二交易组包括至少一个第二交易;任一第二交易与所述第一交易组中的至少一个第一交易存在读写冲突,且该第二交易的顺序在与该第二交易存在读写冲突的第一交易之后;
执行模块,用于在执行完成所述第一交易组中的各个第一交易之后,并行地执行所述第一交易组中的剩余交易和所述第二交易组中的第二交易。
根据第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法。
根据第四方面,提供一种及计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任一项所述的方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书的实施例提供的区块链系统中执行交易的方法和装置,根据待执行的多个交易对应的顺序以及各个交易各自访问的各个参数,划分得到至少一对相关联的交易组对。可以在执行完成交易组对中的第一交易组中的各个第一交易之后,并行地执行第一交易组中的剩余交易和第二交易组中的第二交易,从而更为高效地实现了对多个交易组的并行执行,使得多个交易组能尽可能地被并行执行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本说明书根据一示例性实施例示出的一种区块链系统的架构图;
图2是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的方法的流程图;
图3是本说明书根据一示例性实施例示出的另一种区块链系统中执行交易的方法的流程图;
图4a是本说明书根据一示例性实施例示出的一种待执行的多个交易中各个交易各自访问的参数列表的示意图;
图4b是本说明书根据一示例性实施例示出的一种有向无环图的示意图;
图4c是本说明书根据一示例性实施例示出的一种分割有向无环图的示意图;
图5是本说明书根据一示例性实施例示出的另一种区块链系统中执行交易的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,是根据一示例性实施例示出的一种区块链系统的架构图。
在图1示出的架构图中,区块链系统包括多个节点,各个节点可以实现为任何具有计算、处理能力的装置、服务器或设备集群等。可以理解,图1仅是示例性的示出6个区块链的节点,实际上区块链系统中可以包括任意数目的节点。
在一种实现方式中,区块链系统包括的各个节点即可以对交易进行共识,得到待执行的多个交易,也可以执行该多个交易。因此,本说明书实施例提供的区块链系统中执行交易的方法可以在该区块链系统包括的各个节点上执行。
在另一种实现方式中,区块链系统包括的多个节点可以被分为用于共识交易的共识节点以及用于执行交易的执行节点。因此,本说明书实施例提供的区块链系统中执行交易的方法可以在该区块链系统包括的执行节点上执行。
具体来说,区块链的节点可以先确定待执行的多个交易对应的顺序以及各个交易各自访问的各个参数。然后,基于该多个交易对应的顺序以及各个交易各自访问的各个参数,将该多个交易划分成多组交易组。该多组交易组中包括至少一对相关联的交易组对,其中,任一相关联的交易组对中可以包括第一交易组和第二交易组,第一交易组中的至少部分第一交易和第二交易组中的至少部分第二交易存在读写冲突。并且,任一第二交易的顺序在与该第二交易存在读写冲突的第一交易之后。
最后,对于任一相关联的交易组对,可以先执行其中第一交易组中的各个第一交易,在执行完成第一交易组中的各个第一交易之后,并行地执行第一交易组中的剩余交易和第二交易组中的第二交易。对于与其它交易组均不相关联的交易组(不属于任一相关联的交易组对的交易组),可以并行执行这些不相关联的交易组。
需要说明的是,一个交易组可以和不同的交易组相关联,即该交易组可以属于不同的交易组对,并且,该交易组在一些交易组对中,可以是第一交易组,在另一些交易组对中,也可以是第二交易组。例如,交易组A和交易组B为一对相关联的交易组对,并且交易组A为第一交易组,交易组B为第二交易组。交易组A和交易组C为一对相关联的交易组对,并且交易组C为第一交易组,交易组A为第二交易组。
下面将结合具体的实施例对本说明书提供的方案进行详细描述。
如图2所示,图2是根据一示例性实施例示出的一种区块链系统中执行交易的方法的流程图,该方法可以由区块链的节点执行。该区块链的节点可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。该方法包括以下步骤:
在步骤201中,确定待执行的多个交易对应的顺序以及各个交易各自访问的各个参数。
在本实施例中,区块链的节点可以获取对交易进行共识的共识结果,该共识结果中包括经过共识的多个待执行的交易,以及该多个交易对应的顺序。区块链的节点可以从该共识结果中获取待执行的多个交易对应的顺序。
在本实施例中,区块链的节点可以通过获取该多个交易中各个交易各自访问的各个参数的标识,确定各个交易各自访问的参数。其中,任一交易访问的参数可以仅包括该交易读取的参数,也可以仅包括该交易写入的参数,还可以既包括该交易读取的参数,也包括该交易写入的参数。
在一种实现方式中,可以由客户端预先获取待发送的交易访问的各个参数的标识,并将该交易和该交易访问的各个参数的标识一起发送给执行分片的节点。在另一种实现方式中,还可以由第二执行分片的节点通过预执行交易,或者利用静态分析根据智能合约的参数等方式,获取该访问的各个参数的标识。
在步骤203中,基于多个交易对应的顺序以及各个交易各自访问的各个参数,划分得到第一交易组和第二交易组。
在本实施例中,第二交易组包括至少一个第二交易,任一第二交易与第一交易组中的至少一个第一交易存在读写冲突,且该第二交易的顺序在与该第二交易存在读写冲突的第一交易之后。
具体来说,可以基于待执行的多个交易对应的顺序以及各个交易各自访问的各个参数,划分得到多组交易组,该多组交易组中包括至少一对相关联的交易组对。其中,任一相关联的交易组对中可以包括第一交易组和第二交易组,第一交易组中的至少部分第一交易和第二交易组中的至少部分第二交易存在读写冲突。并且,任一第二交易的顺序在与该第二交易存在读写冲突的第一交易之后。
其中,第一交易和第二交易存在读写冲突包括以下情况:第二交易中至少部分写入的参数为第一交易中访问的参数,或者第二交易中至少部分读取的参数为第一交易中写入的参数。
在一种可选的实现方式中,可以基于多个交易对应的顺序以及各个交易各自访问的各个参数,生成有向无环图,并根据有向无环图划分得到多组交易组。(该实现方式的详细过程具体可参见下面图3实施例的描述)。可以理解,可以通过本领域中已知的以及将来可能出现的任何合理的方式基于待执行的多个交易对应的顺序以及各个交易各自访问的各个参数,划分得到多组交易组,本实施例对划分得到多组交易组的具体方式方面不限定。
在步骤205中,在执行完成第一交易组中的各个第一交易之后,并行地执行第一交易组中的剩余交易和第二交易组中的第二交易。
在本实施例中,对于任一相关联的交易组对,可以先执行该交易组对中第一交易组中的各个第一交易,在执行完成第一交易组中的各个第一交易之后,并行地执行第一交易组中的剩余交易和第二交易组中的第二交易。对于与其它交易组均不相关联的交易组(不属于任一相关联的交易组对的交易组),可以并行执行这些交易组。
可选地,执行该方案的区块链的节点可以包括多个计算单元和控制单元,可以由控制单元划分得到多组交易组,使得得到的交易组的个数和区块链的节点包括的计算单元的个数相同。然后,将多组交易组分别分发给各个计算单元,使每个计算单元各得到一组交易组,各个计算单元在得到各自的交易组之后,可以开始并行执行交易。如果不同交易组中存在读写冲突的交易,可以先执行顺序在前的交易,在执行完成在前的交易之后,可以通知在后交易对应的计算单元准备执行在后交易。
例如,区块链的节点包括计算单元A,计算单元B,计算单元C以及计算单元D,共4个计算单元。控制单元可以将待执行的多个交易划分成交易组a,交易组b,交易组c以及交易组d,共4个交易组。然后将这4个交易组分别分发给4个计算单元,使得计算单元A得到交易组a,计算单元B得到交易组b,计算单元C得到交易组c,计算单元D得到交易组d。
交易组a包括交易1,交易2和交易3;交易组b包括交易4,交易5和交易6;交易组c包括交易7,交易8和交易9;交易组d包括交易10,交易11和交易12。其中,交易1和交易4存在读写冲突,并且,交易1的顺序在交易4之前。交易2和交易8存在读写冲突,并且,交易2的顺序在交易8之前。交易10和交易11存在读写冲突,并且,交易10的顺序在交易11之前。其它的交易之间均不存在读写冲突,各个计算单元在得到各自的交易组之后,可以同时开始并行执行交易。
具体来说,计算单元A可以先执行和其它交易组中的交易存在读写冲突且顺序在前的交易1和交易2,然后执行不存在读写冲突的交易3。计算单元B可以先执行不存在读写冲突的交易5和交易6,等计算单元A执行完成顺序在前的交易1之后,再执行顺序在后的交易4。计算单元C可以先执行不存在读写冲突的交易7和交易9,等计算单元A执行完成顺序在前的交易2之后,再执行顺序在后的交易8。由于交易组d中没有与其它交易组存在读写冲突的交易,因此,计算单元D可以按顺序执行交易10和交易11,再执行交易12,或先执行交易12,再按顺序执行交易10和交易11。
本说明书的上述实施例提供的区块链系统中执行交易的方法,根据待执行的多个交易对应的顺序以及各个交易各自访问的各个参数,划分得到至少一对相关联的交易组对。可以在执行完成交易组对中的第一交易组中的各个第一交易之后,并行地执行第一交易组中的剩余交易和第二交易组中的第二交易,从而更为高效地实现了对多个交易组的并行执行,使得多个交易组能尽可能地被并行执行。
如图3所示,图3根据一示例性实施例示出的另一种区块链系统中执行交易的方法的流程图,该实施例描述了划分得到多组交易组的过程,该方法可以由区块链的节点执行,包括以下步骤:
在步骤301中,基于待执行的多个交易对应的顺序以及各个交易各自访问的各个参数,生成有向无环图。
在本实施例中,可以基于待执行的多个交易对应的顺序以及各个交易各自访问的各个参数,生成有向无环图。该有向无环图的各个顶点表示各个交易,该有向无环图的各个连接边将多个交易中存在读写冲突的交易所对应的顶点相连接,并且,连接边的箭头指向顺序在后的交易。
具体来说,可以首先生成待执行的多个交易中各个交易各自对应的顶点,然后,在存在读写冲突的交易所对应的顶点之间添加连接边,从而得到有向无环图。针对任意一个顶点,可以基于多个交易对应的顺序以及各个交易各自访问的各个参数,确定该顶点的关联顶点(该顶点对应的交易与关联顶点对应的交易存在读写冲突)。若基于各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分写入的参数中的任一写入的参数被按上述顺序位于该交易之前的至少一个第三交易访问,则可以将与该交易最近的第三交易所对应的顶点确定为该顶点的关联顶点。若基于各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分读取的参数中的任一读取的参数被按上述顺序位于该交易之前的至少一个第四交易写入,则将与该交易最近的第四交易所对应的顶点确定为该顶点的关联顶点。在确定存在该顶点的关联顶点的情况下,在该顶点与关联顶点之间添加连接边。
例如,如图4a所示,为待执行的多个交易中各个交易各自访问的参数列表示意图,并且,各个交易按照各自的顺序进行排列。其中,交易T0访问的参数(用W表示写入的参数,R表示读取的参数)包括写入的参数a和写入的参数b,交易T1访问的参数包括写入的参数f和写入的参数g,交易T2访问的参数包括读取的参数a,交易T3访问的参数包括读取的参数b,写入的参数c,写入的参数d和写入的参数e……(交易T4-交易T13访问的参数具体可见图4a,在此不再赘述)。
如图4b所示,可以根据各个交易各自访问的参数生成各个交易各自对应的各个顶点,然后,在存在读写冲突的交易所对应的顶点之间添加连接边,得到有向无环图。具体来说,对于交易T2,交易T2读取的参数a被交易T0写入,所以,交易T0对应的顶点为交易T2对应的顶点的关联顶点。对于交易T3,交易T3读取的参数b被交易T0写入,所以,交易T0对应的顶点为交易T3对应的顶点的关联顶点。对于交易T9,交易T9读取的参数h被交易T4写入,所以,交易T4对应的顶点为交易T9对应的顶点的关联顶点。交易T9读取的参数i被交易T5写入,所以,交易T5对应的顶点也为交易T9对应的顶点的关联顶点。交易T9写入的参数j被交易T8读取,所以,交易T8对应的顶点也为交易T9对应的顶点的关联顶点。交易T9读取的参数d被交易T3写入,所以,交易T3对应的顶点也为交易T9对应的顶点的关联顶点……(在此不再赘述其它顶点的关联顶点的确定过程)。
在步骤303中,将该有向无环图分割成多个子图,使各个子图中顶点个数相差不超过预设值。
在本实施例中,可以将该有向无环图分割成多个子图,使各个子图中顶点个数相差不超过预设值,并且,各个子图至今的连街边的竖拇指和最少。每个子图对应于一个交易组,任一子图中的顶点对应于该子图对应的交易组中的交易。可选地,可以采用metis算法将该有向无环图分割成多个子图,可以理解,可以采用任意合理的方式将该有向无环图分割成多个子图,本实施例对此方面不限定。
如图4c所示,可以将图4b示出的有向无环图分割成4个子图,每个子图中顶点个数为3或4,相差的个数不超过1个。其中,将子图1中的顶点所对应的交易T0,T2和T10划分为一个交易组,将子图2中的顶点所对应的交易T3,T7,T8和T11划分为一个交易组,将子图3中的顶点所对应的交易T1,T4,T6和T12划分为一个交易组,将子图4中的顶点所对应的交易T5,T9和T13划分为一个交易组。
本说明书的上述实施例提供的区块链系统中执行交易的方法,通过基于多个交易对应的顺序以及各个交易各自访问的各个参数,生成有向无环图,并将该有向无环图分割成多个子图,基于子图划分交易组,从而使得交易组的划分更加合理,进一步提高了交易组并行执得的效率。
应当注意,尽管在上述实施例中,以特定顺序描述了本说明书实施例的方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
与前述区块链系统中执行交易的方法实施例相对应,本说明书还提供了区块链系统中执行交易的装置的实施例。
如图5所示,图5是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的装置框图,该装置部署于区块链的节点,该装置可以包括:确定模块501,划分模块502和执行模块503。
其中,确定模块501,用于确定待执行的多个交易对应的顺序及各个交易各自访问的各个参数。
划分模块502,用于基于上述顺序以及各个交易各自访问的各个参数,划分得到第一交易组和第二交易组。其中,第二交易组包括至少一个第二交易,任一第二交易与第一交易组中的至少一个第一交易存在读写冲突,且该第二交易的顺序在与该第二交易存在读写冲突的第一交易之后。
执行模块503,用于在执行完成第一交易组中的各个第一交易之后,并行地执行第一交易组中的剩余交易和第二交易组中的第二交易。
在一些实施方式中,划分模块502可以包括:划分子模块(图中未示出)。
其中,划分子模块,用于基于上述顺序以及各个交易各自访问的各个参数,划分得到多组交易组,该多组交易组包括第一交易组和第二交易组。
在另一些实施方式中,划分子模块可以包括:生成子模块和分割子模块(图中未示出)。
其中,生成子模块,用于基于上述顺序以及各个交易各自访问的各个参数,生成有向无环图。其中,该有向无环图的各个顶点表示各个交易,该有向无环图的各个连接边将多个交易中存在读写冲突的交易所对应的顶点相连接。
分割子模块,用于将该有向无环图分割成多个子图,使各个子图中顶点个数相差不超过预设值,每个子图对应于一个交易组,任一子图中的顶点对应于该子图对应的交易组中的交易。
在另一些实施方式中,生成子模块被配置用于:生成各个交易各自对应的顶点。针对任一顶点,基于上述顺序以及各个交易各自访问的各个参数,确定该顶点的关联顶点,并在确定存在该顶点的关联顶点的情况下,在该顶点与关联顶点之间添加连接边。其中,该顶点对应的交易与关联顶点对应的交易存在读写冲突。
在另一些实施方式中,访问包括读取和/或写入。
在另一些实施方式中,生成子模块可以通过如下方式基于上述顺序以及各个交易各自访问的各个参数,确定该顶点的关联顶点:
若基于各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分写入的参数被按上述顺序位于该交易之前的第三交易访问,则将该第三交易所对应的顶点确定为该顶点的关联顶点。
若基于各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分读取的参数被按上述顺序位于该交易之前的第四交易写入,则将该第四交易所对应的顶点确定为该顶点的关联顶点。
在另一些实施方式中,执行模块503可以包括多个计算单元,交易组的个数和计算单元的个数相同,并且,一个计算单元对应的执行一个交易组中的交易。
应当理解,上述装置可以预先设置在区块链的节点中,也可以通过下载等方式而加载到区块链的节点中。上述装置中的相应模块可以与区块链的节点中的模块相互配合以实现区块链系统中执行交易的方案。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书一个或多个实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书一个或多个实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图2至图3任一实施例提供的区块链系统中执行交易的方法。
本说明书一个或多个实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述图2至图3任一实施例提供的区块链系统中执行交易的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。其中,软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种区块链系统中执行交易的方法,由区块链的节点执行,所述方法包括:
确定待执行的多个交易对应的顺序以及各个交易各自访问的各个参数;
基于所述顺序以及所述各个交易各自访问的各个参数,划分得到第一交易组和第二交易组;其中,所述第二交易组包括至少一个第二交易;任一第二交易与所述第一交易组中的至少一个第一交易存在读写冲突,且该第二交易的顺序在与该第二交易存在读写冲突的第一交易之后;
在执行完成所述第一交易组中的各个第一交易之后,并行地执行所述第一交易组中的剩余交易和所述第二交易组中的第二交易。
2.根据权利要求1所述的方法,其中,所述基于所述顺序以及所述各个交易各自访问的各个参数,划分得到第一交易组和第二交易组,包括:
基于所述顺序以及所述各个交易各自访问的各个参数,划分得到多组交易组;所述多组交易组包括所述第一交易组和所述第二交易组。
3.根据权利要求2所述的方法,其中,所述基于所述顺序以及所述各个交易各自访问的各个参数,划分得到多组交易组,包括:
基于所述顺序以及所述各个交易各自访问的各个参数,生成有向无环图;其中,所述有向无环图的各个顶点表示所述各个交易,所述有向无环图的各个连接边将所述多个交易中存在读写冲突的交易所对应的顶点相连接;
将所述有向无环图分割成多个子图,使各个子图中顶点个数相差不超过预设值;每个子图对应于一个交易组,任一子图中的顶点对应于该子图对应的交易组中的交易。
4.根据权利要求3所述的方法,其中,所述基于所述顺序以及所述各个交易各自访问的各个参数,生成有向无环图,包括:
生成所述各个交易各自对应的顶点;
针对任一顶点,基于所述顺序以及所述各个交易各自访问的各个参数,确定该顶点的关联顶点,并在确定存在该顶点的关联顶点的情况下,在该顶点与关联顶点之间添加连接边;其中,该顶点对应的交易与关联顶点对应的交易存在读写冲突。
5.根据权利要求4所述的方法,其中,所述访问包括读取和/或写入。
6.根据权利要求5所述的方法,其中,所述基于所述顺序以及所述各个交易各自访问的各个参数,确定该顶点的关联顶点,包括:
若基于所述各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分写入的参数被按所述顺序位于该交易之前的第三交易访问,则将该第三交易所对应的顶点确定为该顶点的关联顶点;
若基于所述各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分读取的参数被按所述顺序位于该交易之前的第四交易写入,则将该第四交易所对应的顶点确定为该顶点的关联顶点。
7.根据权利要求1所述的方法,其中,所述区块链的节点包括多个计算单元,所述交易组的个数和所述计算单元的个数相同,并且,一个计算单元对应的执行一个交易组中的交易。
8.一种区块链系统中执行交易的装置,部署于区块链的节点,所述装置包括:
确定模块,用于确定待执行的多个交易对应的顺序及各个交易各自访问的各个参数;
划分模块,用于基于所述顺序以及所述各个交易各自访问的各个参数,划分得到第一交易组和第二交易组;其中,所述第二交易组包括至少一个第二交易;任一第二交易与所述第一交易组中的至少一个第一交易存在读写冲突,且该第二交易的顺序在与该第二交易存在读写冲突的第一交易之后;
执行模块,用于在执行完成所述第一交易组中的各个第一交易之后,并行地执行所述第一交易组中的剩余交易和所述第二交易组中的第二交易。
9.根据权利要求8所述的装置,其中,所述划分模块包括:
划分子模块,用于基于所述顺序以及所述各个交易各自访问的各个参数,划分得到多组交易组;所述多组交易组包括所述第一交易组和所述第二交易组。
10.根据权利要求9所述的装置,其中,所述划分子模块包括:
生成子模块,用于基于所述顺序以及所述各个交易各自访问的各个参数,生成有向无环图;其中,所述有向无环图的各个顶点表示所述各个交易,所述有向无环图的各个连接边将所述多个交易中存在读写冲突的交易所对应的顶点相连接;
分割子模块,用于将所述有向无环图分割成多个子图,使各个子图中顶点个数相差不超过预设值;每个子图对应于一个交易组,任一子图中的顶点对应于该子图对应的交易组中的交易。
11.根据权利要求10所述的装置,其中,所述生成子模块被配置用于:
生成所述各个交易各自对应的顶点;
针对任一顶点,基于所述顺序以及所述各个交易各自访问的各个参数,确定该顶点的关联顶点,并在确定存在该顶点的关联顶点的情况下,在该顶点与关联顶点之间添加连接边;其中,该顶点对应的交易与关联顶点对应的交易存在读写冲突。
12.根据权利要求11所述的装置,其中,所述访问包括读取和/或写入。
13.根据权利要求12所述的装置,其中,所述生成子模块通过如下方式基于所述顺序以及所述各个交易各自访问的各个参数,确定该顶点的关联顶点:
若基于所述各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分写入的参数被按所述顺序位于该交易之前的第三交易访问,则将该第三交易所对应的顶点确定为该顶点的关联顶点;
若基于所述各个交易各自访问的各个参数,确定该顶点对应的交易中至少部分读取的参数被按所述顺序位于该交易之前的第四交易写入,则将该第四交易所对应的顶点确定为该顶点的关联顶点。
14.根据权利要求8所述的装置,其中,所述执行模块包括多个计算单元,所述交易组的个数和所述计算单元的个数相同,并且,一个计算单元对应的执行一个交易组中的交易。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令所述计算机执行权利要求1-7中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110989738.5A CN113656507B (zh) | 2021-08-26 | 2021-08-26 | 区块链系统中执行交易的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110989738.5A CN113656507B (zh) | 2021-08-26 | 2021-08-26 | 区块链系统中执行交易的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656507A CN113656507A (zh) | 2021-11-16 |
CN113656507B true CN113656507B (zh) | 2024-03-08 |
Family
ID=78493004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110989738.5A Active CN113656507B (zh) | 2021-08-26 | 2021-08-26 | 区块链系统中执行交易的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656507B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114298713B (zh) * | 2022-03-03 | 2022-07-08 | 浙商银行股份有限公司 | 一种联盟链分片方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3052348A1 (en) * | 2018-12-28 | 2019-04-18 | Alibaba Group Holding Limited | Parallel execution of transactions in a blockchain network |
WO2021036260A1 (zh) * | 2019-08-30 | 2021-03-04 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN112748994A (zh) * | 2020-12-31 | 2021-05-04 | 上海简苏网络科技有限公司 | 一种区块链交易并行处理方法及系统 |
CN112837163A (zh) * | 2021-03-22 | 2021-05-25 | 中国工商银行股份有限公司 | 基于区块链的批量交易上链方法及系统 |
CN112988819A (zh) * | 2021-04-30 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链交易执行方法、区块链节点及控制装置 |
CN113064730A (zh) * | 2021-04-30 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 区块链交易执行方法、区块链节点及控制装置 |
CN113127212A (zh) * | 2020-12-04 | 2021-07-16 | 支付宝(杭州)信息技术有限公司 | 一种在区块链中处理交易的方法和装置 |
-
2021
- 2021-08-26 CN CN202110989738.5A patent/CN113656507B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3052348A1 (en) * | 2018-12-28 | 2019-04-18 | Alibaba Group Holding Limited | Parallel execution of transactions in a blockchain network |
WO2021036260A1 (zh) * | 2019-08-30 | 2021-03-04 | 创新先进技术有限公司 | 在区块链中并发执行交易的方法和装置 |
CN113127212A (zh) * | 2020-12-04 | 2021-07-16 | 支付宝(杭州)信息技术有限公司 | 一种在区块链中处理交易的方法和装置 |
CN112748994A (zh) * | 2020-12-31 | 2021-05-04 | 上海简苏网络科技有限公司 | 一种区块链交易并行处理方法及系统 |
CN112837163A (zh) * | 2021-03-22 | 2021-05-25 | 中国工商银行股份有限公司 | 基于区块链的批量交易上链方法及系统 |
CN112988819A (zh) * | 2021-04-30 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 区块链交易执行方法、区块链节点及控制装置 |
CN113064730A (zh) * | 2021-04-30 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 区块链交易执行方法、区块链节点及控制装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113656507A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
Ji et al. | ispan: Parallel identification of strongly connected components with spanning trees | |
US10740290B2 (en) | Systems and methods for key-value stores | |
CN110599166A (zh) | 一种区块链内获取交易依赖关系的方法及装置 | |
CN113656507B (zh) | 区块链系统中执行交易的方法及装置 | |
US11275661B1 (en) | Test generation of a distributed system | |
CN116368494A (zh) | 一种神经网络编译优化方法和相关装置 | |
CN114298713A (zh) | 一种联盟链分片方法、装置及存储介质 | |
Dagdelen et al. | Parallel enumeration of shortest lattice vectors | |
CN114529415A (zh) | 基于区块链的交易验证方法及装置、电子设备 | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、系统及装置 | |
CN109885580A (zh) | 一种热点账户批量更新方法、装置、服务器和存储介质 | |
US20080170080A1 (en) | Method and Apparatus for Processing Object Collision | |
CN107957865B (zh) | 一种神经元重建结果匹配方法 | |
CN113077344B (zh) | 基于区块链的交易方法、装置、电子设备及存储介质 | |
CN115048462A (zh) | 一种基于区块链的数字资产合成方法及装置 | |
CN111190768B (zh) | 数据库执行错误恢复方法、数据库访问方法及装置 | |
US20170090820A1 (en) | Method and device for operating a many-core system | |
CN113918345A (zh) | 一种配置硬件的容量计算方法、装置、计算机设备及介质 | |
CN113656508A (zh) | 区块链系统中执行交易的方法及装置 | |
CN110955380B (zh) | 访存数据生成方法、存储介质、计算机设备和装置 | |
CN111371818B (zh) | 一种数据请求的验证方法、装置及设备 | |
CN112561695B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN116578247B (zh) | 一种基于元数据的数据存取方法及系统 | |
CN115577760B (zh) | 一种数据处理方法、系统及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |