CN113656509A - 区块链系统中执行交易的方法及装置 - Google Patents
区块链系统中执行交易的方法及装置 Download PDFInfo
- Publication number
- CN113656509A CN113656509A CN202110991231.3A CN202110991231A CN113656509A CN 113656509 A CN113656509 A CN 113656509A CN 202110991231 A CN202110991231 A CN 202110991231A CN 113656509 A CN113656509 A CN 113656509A
- Authority
- CN
- China
- Prior art keywords
- transaction
- execution
- transactions
- consensus
- fragment
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 239000012634 fragment Substances 0.000 claims abstract description 130
- 238000012163 sequencing technique Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013467 fragmentation Methods 0.000 claims description 5
- 238000006062 fragmentation reaction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 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
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供一种区块链系统中执行交易的方法及装置,所述区块链系统包括执行分片和共识分片,所述方法包括:所述共识分片的节点对接收到的交易进行共识,并将经过所述共识的共识结果发送给所述执行分片的节点,所述共识结果包括待执行的多个交易;所述执行分片的节点执行所述多个交易中的至少部分交易各自对应的操作;其中,任一交易对应的操作包括读和/或写操作。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,特别涉及一种区块链系统中执行交易的方法及装置。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
目前来说,在相关的技术中,区块链系统在计算和存储方面的可扩展性较弱,制约了区块链系统的吞吐量,难以满足应用的需求。因此,需要提供一种区块链系统中执行交易的方法。
发明内容
本说明书一个或多个实施例提供一种区块链系统中执行交易的方法及装置。
根据第一方面,提供一种区块链系统中执行交易的方法,所述区块链系统包括执行分片和共识分片,所述方法包括:
所述共识分片的节点对接收到的交易进行共识,并将经过所述共识的共识结果发送给所述执行分片的节点,所述共识结果包括待执行的多个交易;
所述执行分片的节点执行所述多个交易中的至少部分交易各自对应的操作;其中,任一交易对应的操作包括读和/或写操作。
根据第二方面,提供一种区块链系统中执行交易的方法,所述区块链系统包括第一执行分片和共识分片,所述方法由所述第一执行分片的节点执行,所述方法包括:
接收所述共识分片的节点发送的共识结果;所述共识结果为所述共识分片对交易进行共识得到的;所述共识结果包括待执行的多个交易;
执行所述多个交易中的至少部分交易各自对应的操作;其中,任一交易对应的操作包括读和/或写操作。
根据第三方面,提供一种区块链系统中执行交易的装置,所述区块链系统包括第一执行分片和共识分片,所述装置部署于所述第一执行分片的节点中,所述装置包括:
接收模块,用于接收所述共识分片的节点发送的共识结果;所述共识结果为所述共识分片对交易进行共识得到的;所述共识结果包括待执行的多个交易;
执行模块,用于执行所述多个交易中的至少部分交易各自对应的操作;其中,任一交易对应的操作包括读和/或写操作。
根据第四方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面中任一项所述的方法。
根据第五方面,提供一种及计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面或第二方面中任一项所述的方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书的实施例提供的区块链系统中执行交易的方法和装置,将区块链系统分为执行分片和共识分片,并利用共识分片对接收到的交易进行共识,利用执行分片执行由共识分片共识过的交易,从而将区块链系统的共识和执行的功能解耦,提高了区块链系统的容错率以及交易的执行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本说明书根据一示例性实施例示出的一种区块链系统的架构图;
图2是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的方法的交互流程图;
图3是本说明书根据一示例性实施例示出的另一种区块链系统中执行交易的方法的流程图;
图4a是本说明书根据一示例性实施例示出的一种排序锁队列的示意图;
图4b是本说明书根据一示例性实施例示出的另一种排序锁队列的示意图;
图5是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,是根据一示例性实施例示出的一种区块链系统的架构图。
在图1中,区块链系统可以包括执行分片和共识分片,其中,共识分片可以包括分片AS1,分片AS2,……分片ASn等n个共识分片。执行分片可以包括分片ES1,分片ES2,……分片ESm等m个执行分片。不同的分片各自包括多个节点,各个节点可以实现为任何具有计算、处理能力的装置、服务器或设备集群等。可以理解,图1仅是示例性的示出n个共识分片和m个执行分片,实际上区块链系统中可以包括任意数目的共识分片和执行分片。例如,共识分片的数目可以是一个也可以是多个,执行分片的数目可以是一个也可以是多个,共识分片的数目可以和执行分片的数目相同,也可以不同。
具体来说,首先,共识分片可以与客户端对接,从客户端接收交易,并对接收到的交易进行共识,不同的共识分片可以接收并共识不同的交易。接着,各个共识分片可以将各自共识得到的共识结果发送给各个执行分片的节点,共识结果可以包括待执行的多个交易(即共识成功的多个交易)以及该多个交易的执行顺序,由执行分片的节点完成对该多个交易的执行操作。
需要说明的是,区块链系统如果包括多个执行分片,不同的执行分片可以存储不同账户的状态。任一执行分片的节点可以确定接收的共识结果包括的多个交易中与该执行分片关联的第一交易,并执行该第一交易对应的操作,该操作可以包括读操作和/或写操作。其中,与该执行分片关联的第一交易访问的参数中包括至少一个目标参数,该目标参数对应的账户的状态存储于该执行分片中。另外,该执行分片的节点可以忽略该多个交易中除第一交易之外的交易。
例如,分片AS1接收到交易a和交易b,并对交易a和交易b进行共识。分片AS2接收到交易c和交易d,并对交易c和交易d进行共识……。分片ASn接收到交易x和交易y,并对交易x和交易y进行共识。经过共识之后,分片AS1可以将共识成功的交易a和交易b及其顺序分别发送给分片ES1,分片ES2,……分片ESm。分片AS2可以将共识成功的交易c和交易d及其顺序分别发送给分片ES1,分片ES2,……分片ESm。……分片ASn可以将共识成功的交易x及其顺序分别发送给分片ES1,分片ES2,……分片ESm。
需要说明的是,为了保证不同执行分片在执行交易对应的操作时的执行顺序能够保持一致,各个执行分片可以按照预设的规则对从共识分片接收到的交易进行排序。如根据交易的来源,对交易进行排序。比如,分片AS1共识得到多组交易(一组交易为一个共识结果包括的交易),并发送给各个执行分片,该多组交易分别为C11,C12,C13。分片AS2共识得到多组交易(一组交易为一个共识结果包括的交易),并发送给各个执行分片,该多组交易分别为C21,C22,C23。……分片ASn共识得到多组交易,并发送给各个执行分片,该多组交易分别为Cn1,Cn2,Cn3。各个执行分片接收到各个共识分片发送的多组交易之后,按照C11(来源为分片AS1),C21(来源为分片AS2),……Cn1(来源为分片ASn),C12(来源为分片AS1),C22(来源为分片AS2),……Cn2(来源为分片ASn),C13(来源为分片AS1),C23(来源为分片AS2),……Cn3(来源为分片ASn)顺序,对多组交易进行排序。
接着,分片ES1根据接收到的各个交易各自访问的参数(读取和/或写入的参数)对应的账户,确定与其关联的第一交易包括交易a,交易c……。分片ES2确定与其关联的第一交易包括交易b,……交易x。……分片ESm确定与其关联的第一交易包括交易d,……交易x。其中,交易x为跨分片交易,交易x读取的参数对应的账户的状态存储于分片ES2中,交易x写入的参数对应的账户的状态存储于分片ESm中。最后,分片ES1执行交易a,交易c……各自对应的操作,并基于执行的结果更新分片ES1的世界状态。分片ES2执行交易b,……交易x各自对应的操作,并基于执行的结果更新分片ES2的世界状态。其中,交易x对应的操作包括读取参数S的状态值,因此,还需要将读取的参数S对应的状态值发送给分片ESm。……分片ESm接收分片ES2发送的参数S对应的状态值(以用于执行交易x的写操作),执行交易d,……交易x各自对应的操作,并基于执行的结果更新分片ESm的世界状态。
下面将结合具体的实施例对本说明书提供的方案进行详细描述。
如图2所示,图2是根据一示例性实施例示出的一种区块链系统中执行交易的方法的交互流程图。该区块链系统包括执行分片和共识分片,该方法包括以下步骤:
在步骤201中,客户端向共识分片的节点发送待共识的交易。
在步骤203中,共识分片的节点对接收到的交易进行共识。
在本实施例中,客户端可以向与其对接的共识分片的节点发送待共识的交易,共识分片的节点对接收到的交易进行共识,得到共识结果。共识结果可以包括待执行的多个交易以及该多个交易对应的执行顺序,其中,待执行的交易为共识成功的交易。
在步骤205中,共识分片的节点将经过共识的共识结果发送给执行分片的节点。
在本实施例中,共识分片的节点可以将待执行的多个交易以及该多个交易对应的执行顺序发送给执行分片的节点,由执行分片的节点完成对该多个交易的执行操作。其中,执行分片的数目可以是一个也可以是多个,若执行分片的数目是多个,则共识分片的节点可以将待执行的多个交易以及该多个交易对应的执行顺序分别发送给多个执行分片中各个执行分片各自包括的各个节点。
在步骤207中,执行分片的节点执行共识结果包括的多个交易中的至少部分交易各自对应的操作。
在本实施例中,执行分片的节点可以执行共识结果包括的多个交易中的部分交易或全部交易各自对应的操作。任一交易对应的操作可以仅包括读操作(例如查询账户余额的交易可以仅涉及读操作),也可以仅包括写操作(例如存证的交易可以仅涉及读操作),还可以即包括读操作也包括写操作(例如对账户的某个状态进行更新的交易可以即涉及读操作也涉及写操作)。
在本实施例中,若执行分片的数目是一个,则该执行分片的节点执行多个交易中的全部交易各自对应的操作。若执行分片的数目是多个,则针对多个执行分片中的任一第一执行分片,该第一执行分片的节点执行多个交易中与该第一执行分片关联的第一交易对应的操作。其中,与该第一执行分片关联的第一交易访问的参数中包括至少一个目标参数,目标参数对应的账户的状态存储于该第一执行分片中。
具体地,执行多个交易中与该第一执行分片关联的第一交易对应的操作可以包括:子步骤2071,确定多个交易中各个交易各自访问的参数;以及子步骤2073,基于各个交易各自访问的参数,执行第一交易对应的操作。
首先,在子步骤2071中,可以通过获取该多个交易中各个交易各自访问的各个参数的标识,确定各个交易各自访问的参数。其中,任一交易访问的参数可以仅包括该交易读取的参数,也可以仅包括该交易写入的参数,还可以即包括该交易读取的参数,也包括该交易写入的参数。
在一种实现方式中,可以由客户端预先获取待发送的交易访问的各个参数的标识,并将该交易和该交易访问的各个参数的标识一起发送给执行分片的节点。在另一种实现方式中,还可以由执行分片的节点通过预执行交易,或者利用静态分析根据智能合约的参数等方式,获取接收的交易访问的各个参数的标识。
接着,在子步骤2073中,可以基于各个交易各自访问的参数,执行第一交易对应的操作。在一种实现方式中,可以基于各个交易各自访问的参数,确定多个交易中的第一交易,并记录第一交易的标识,再根据记录的标识执行依次第一交易。
在另一种实现方式中,还可以基于各个交易各自访问的参数,确定第一交易,并确定第一交易访问的各个目标参数(对应的账户的状态存储于第一执行分片中的参数)以及第一交易对应的排序。然后,查找该第一交易访问的各个目标参数各自对应的各个排序锁队列,按照该第一交易对应的排序,在上述各个排序锁队列中加入针对该第一交易的目标信息,并基于上述各个排序锁队列,触发第一交易对应的操作的执行(该实现方式的详细过程具体可参见下面图3实施例的描述)。
在步骤209中,执行分片的节点根据执行的结果更新该执行分片的世界状态。
在本实施例中,在执行多个交易中的至少部分交易对应的操作之后,可以根据执行的结果更新该执行分片的世界状态。具体来说,若执行分片的数目是一个,在执行多个交易中的至少部分交易对应的操作之后,若根据执行结果确定至少部分交易对应的操作包括写操作,则可以基于执行写操作的结果更新该执行分片的世界状态。若执行分片的数目是多个,针对第一执行分片,在执行第一交易对应的操作之后,若根据执行结果确定第一交易对应的操作包括写操作,则可以基于执行写操作的结果更新该第一执行分片的世界状态。
本说明书的上述实施例提供的区块链系统中执行交易的方法,将区块链系统分为执行分片和共识分片,并利用共识分片对接收到的交易进行共识,利用执行分片执行由共识分片共识过的交易,从而将区块链系统的共识和执行的功能解耦,提高了区块链系统的容错率以及交易的执行效率。
如图3所示,图3根据一示例性实施例示出的一种区块链系统中执行交易的方法的流程图,该实施例描述了基于各个交易各自访问的参数执行第一交易对应的操作的过程,该方法可以由第一执行分片的节点执行,包括以下步骤:
在步骤301中,基于多个交易中的各个交易各自访问的参数,确定第一交易。
在本实施例中,可以遍历多个交易中的各个交易各自访问的各个参数,并确定各个参数对应的账户。针对任一交易访问的任一参数,如果确定该参数对应的账户的状态存储于该第一执行分片,则可以确定该参数为目标参数,该交易为与该第一执行分片关联的第一交易。
在步骤303中,确定第一交易访问的各个目标参数以及该第一交易对应的排序。
在本实施例中,第一交易访问的参数中包括至少一个目标参数,可以确定第一交易访问的各个目标参数,并确定该第一交易对应的排序。具体来说,共识分片的节点对接收到的交易进行共识,得到共识结果。共识结果可以包括待执行的多个交易以及该多个交易中各个交易对应的排序。共识分片的节点将共识结果发送给执行分片的节点,执行分片的节点可以从共识结果中获取各个交易各自对应的排序。如果执行分片的数目是多个,不同执行分片的节点接收到的各个交易所对应的排序也是相同的。
在步骤305中,按照上述排序在上述各个目标参数各自对应的各个排序锁队列中加入针对第一交易的目标信息。
在本实施例中,第一执行分片的节点中存储有预设的索引列表,该索引列表中记录有参数与排序锁队列的地址之间的对应关系。可以从该索引列表中查找出第一交易访问的各个目标参数各自对应的各个排序锁队列,然后,按照第一交易对应的排序在各个排序锁队列中加入针对第一交易的目标信息。
其中,在第一交易访问的任一目标参数对应的排序锁队列中加入的针对第一交易的目标信息,包括第一交易的标识及该目标参数在第一交易中的读写属性。第一交易的标识可以包括但不限于第一交易的ID,对第一交易的ID进行哈希计算得到的哈希值,对第一交易的交易数据进行哈希计算得到的哈希值等。
在步骤307中,基于各个排序锁队列,触发第一交易对应的操作的执行。
在本实施例中,可以基于各个排序锁队列中针对第一交易的目标信息的位置,确定是否满足触发条件。具体来说,首先,可以确定第一交易访问的目标参数的个数,作为计数值的初始值。至少在确定任一排序锁队列中针对第一交易的目标信息位于首位的情况下,将该计数值减1。
可选地,在第一交易写入的目标参数所对应的排序锁队列中,如果针对第一交易的目标信息位于首位,则将计数值减1。在第一交易读取的目标参数所对应的排序锁队列中,如果针对第一交易的目标信息位于首位,或者针对第一交易的目标信息之前不存在包括写属性的信息,则将计数值减1。
最后,在计数值为0的情况下,确定满足触发条件。并在满足触发条件的情况下,触发第一交易对应的操作的执行。可以直接执行第一交易对应的操作,也可以将第一交易放入执行池中,并从中随机取出交易执行对应的操作。
在步骤309中,针对各个排序锁队列,执行对上述目标信息的出队列操作。
在本实施例中,在第一交易对应的操作执行完成之后,可以针对各个排序锁队列,执行对上述目标信息的出队列操作。对于任一排序锁队列,可以将上述目标信息删除,并将该目标信息之后针对其它交易的目标信息前移一位。
为了便于理解,下面提供一个完整的应用实例,对本实施例的方案进行示意性说明。具体来说,区块链系统包括执行分片A,执行分片A的节点存储有预设的索引列表,列表中包括参数k1对应的排序锁队列1的地址,参数k2对应的排序锁队列2的地址,……参数km对应的排序锁队列m的地址。其中,参数k1,参数k2,……参数km对应的账户的状态均存储于执行分片A中。
执行分片A接收到多个交易,按顺序排列为交易1,交易2和交易3。其中,交易1访问的参数包括读取的参数k1和写入的参数k2,其访问的目标参数的个数为2,将2作为交易1对应的计数值的初始值。交易2访问的参数包括读取的参数k1和读取的参数k2,其访问的目标参数的个数为2,将2作为交易2对应的计数值的初始值。交易3访问的参数包括读取的参数k1和写入的参数k2,其访问的目标参数的个数为2,将2作为交易3对应的计数值的初始值。
首先,可以基于预设的索引列表,查找到参数k1对应的排序锁队列1的地址,以及参数k2对应的排序锁队列2的地址。并按照交易的排序依次将针对交易1的第一目标信息,针对交易2的第二目标信息以及针对交易3的第三目标信息分别加入排序锁队列1和排序锁队列2中。
如图4a所示,在排序锁队列1中,位于首位的是针对交易1的第一目标信息,包括交易1的标识TX1以及参数k1在交易1中的读写属性“读”。位于第二位的是针对交易2的第二目标信息,包括交易2的标识TX2以及参数k1在交易2中的读写属性“读”。位于第三位的是针对交易3的第三目标信息,包括交易3的标识TX3以及参数k1在交易3中的读写属性“读”。在排序锁队列2中,位于首位的是针对交易1的第一目标信息,包括交易1的标识TX1以及参数k2在交易1中的读写属性“写”。位于第二位的是针对交易2的第二目标信息,包括交易2的标识TX2以及参数k2在交易2中的读写属性“读”。位于第三位的是针对交易3的第三目标信息,包括交易3的标识TX3以及参数k2在交易3中的读写属性“写”。
由图4a可知,第一目标信息在排序锁队列1和排序锁队列2中,均位于首位,因此,可以将交易1对应的计数值两次减1。第二目标信息在排序锁队列1中,虽然没有位于首位,但第二目标信息之前的第一目标信息对应的读写属性为读,因此,可以将交易2对应的计数值减1。第三目标信息在排序锁队列1中,也没有位于首位,但第三目标信息之前的第一目标信息和第二目标信息对应的读写属性均为读,因此,可以将交易3对应的计数值减1。此时,交易1对应的计数值为0,交易2对应的计数值为1,交易3对应的计数值为1。
由于交易1对应的计数值为0,可以将交易1放入执行池,等待执行。在交易1对应的操作执行完成之后,执行对第一目标信息的出队列操作,具体地,删除排序锁队列1和排序锁队列2中的第一目标信息,并分别将之后的第二目标信息和第三目标信息各前移一位。如图4b所示,为执行对第一目标信息的出队列操作之后的排序锁队列1和排序锁队列2。
由图4b可知,第二目标信息在排序锁队列2中,位于首位,因此,可以将交易2对应的计数值再减1。而第三目标信息在排序锁队列2中,没有位于首位,所以交易3对应的计数值不变。此时,交易2对应的计数值为0。可以将交易2放入执行池,等待执行。在交易2对应的操作执行完成之后,执行对第二目标信息的出队列操作,具体地,删除排序锁队列1和排序锁队列2中的第二目标信息,并将之后的第三目标信息各前移一位。
本说明书的上述实施例提供的区块链系统中执行交易的方法,基于第一交易访问的各个目标参数各自对应的各个排序锁队列,触发第一交易对应的操作的执行。保证了所有发送到区块链系统的交易都具有一个全局唯一的顺序,从而保证了不同执行分片对交易执行的一致性,更有效地利用了计算资源,提高了交易执行的效率。
应当注意,尽管在上述的实施例中,以特定顺序描述了本说明书实施例的方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
与前述区块链系统中执行交易的方法实施例相对应,本说明书还提供了区块链系统中执行交易的装置的实施例。
如图5所示,图5是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的装置框图,该区块链系统包括第一执行分片和共识分片,该装置部署于第一执行分片的节点中,该装置可以包括:接收模块501和执行模块502。
其中,接收模块501,用于接收共识分片的节点发送的共识结果,该共识结果为共识分片对交易进行共识得到的,该共识结果可以包括待执行的多个交易。
执行模块502,用于执行多个交易中的至少部分交易各自对应的操作。其中,任一交易对应的操作包括读和/或写操作。
在一些实施方式中,第一执行分片为区块链系统包括的多个执行分片之一,执行模块502可以包括:执行子模块(图中未示出)。
其中,执行子模块,用于执行多个交易中与第一执行分片关联的第一交易对应的操作。
在另一些实施方式中,该装置还可以包括:更新模块(图中未示出)。
其中,更新模块,用于在执行第一交易对应的操作之后,根据执行的结果更新第一执行分片的世界状态。
在另一些实施方式中,执行子模块可以包括:获取子模块和操作子模块(图中未示出)。
其中,获取子模块,用于获取多个交易中各个交易各自访问的参数,任一交易访问的参数包括该交易读取的参数和/或写入的参数。
操作子模块,用于基于各个交易各自访问的参数,执行第一交易对应的操作,其中,第一交易访问的参数中包括至少一个目标参数,目标参数对应的账户的状态存储于所述第一执行分片中。
在另一些实施方式中,操作子模块被配置用于:基于各个交易各自访问的参数,确定第一交易,确定第一交易访问的各个目标参数以及第一交易对应的排序,按照上述排序在各个目标参数各自对应的各个排序锁队列中加入针对第一交易的目标信息,并基于各个排序锁队列,触发第一交易对应的操作的执行。
在另一些实施方式中,该装置还可以包括:出队模块(图中未示出)。
其中,出队模块,用于针对各个排序锁队列,执行对目标信息的出队列操作。
在另一些实施方式中,在第一交易访问的任一目标参数对应的排序锁队列中加入的针对第一交易的目标信息包括第一交易的标识及该目标参数在第一交易中的读写属性。
应当理解,上述装置可以预先设置在第一执行分片的节点中,也可以通过下载等方式而加载到第一执行分片的节点中。上述装置中的相应模块可以与第一执行分片的节点中的模块相互配合以实现区块链系统中执行交易的方案。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书一个或多个实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书一个或多个实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图2至图3任一实施例提供的区块链系统中执行交易的方法。
本说明书一个或多个实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述图2至图3任一实施例提供的区块链系统中执行交易的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。其中,软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (25)
1.一种区块链系统中执行交易的方法,所述区块链系统包括执行分片和共识分片,所述方法包括:
所述共识分片的节点对接收到的交易进行共识,并将经过所述共识的共识结果发送给所述执行分片的节点,所述共识结果包括待执行的多个交易;
所述执行分片的节点执行所述多个交易中的至少部分交易各自对应的操作;其中,任一交易对应的操作包括读和/或写操作。
2.根据权利要求1所述的方法,其中,所述区块链系统包括多个执行分片;
其中,所述将经过所述共识的共识结果发送给所述执行分片的节点,包括:
将所述共识结果分别发送给所述多个执行分片中各个执行分片各自包括的各个节点。
3.根据权利要求2所述的方法,其中,所述执行分片的节点执行所述多个交易中的至少部分交易各自对应的操作,包括:
所述多个执行分片中的第一执行分片的节点执行所述多个交易中与所述第一执行分片关联的第一交易对应的操作。
4.根据权利要求3所述的方法,其中,所述方法还包括:
在执行所述第一交易对应的操作之后,所述第一执行分片的节点根据执行的结果更新所述第一执行分片的世界状态。
5.根据权利要求3所述的方法,其中,所述执行所述多个交易中与所述第一执行分片关联的第一交易对应的操作,包括:
确定所述多个交易中各个交易各自访问的参数;任一交易访问的参数包括该交易读取的参数和/或写入的参数;
基于所述各个交易各自访问的参数,执行所述第一交易对应的操作;其中,所述第一交易访问的参数中包括至少一个目标参数;所述目标参数对应的账户的状态存储于所述第一执行分片中。
6.根据权利要求5所述的方法,其中,所述基于所述各个交易各自访问的参数,执行所述第一交易对应的操作,包括:
基于所述各个交易各自访问的参数,确定所述第一交易;
确定所述第一交易访问的各个目标参数以及所述第一交易对应的排序;
按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述第一交易的目标信息;
基于所述各个排序锁队列,触发所述第一交易对应的操作的执行。
7.根据权利要求6所述的方法,其中,所述基于所述各个排序锁队列,触发所述第一交易对应的操作的执行,包括:
基于所述各个排序锁队列中所述目标信息的位置,确定满足触发条件;
在满足触发条件的情况下,触发所述第一交易对应的操作的执行。
8.根据权利要求7所述的方法,其中,所述基于所述各个排序锁队列中所述目标信息的位置,确定满足触发条件,包括:
确定所述第一交易访问的目标参数的个数,作为计数值的初始值;
至少在确定任一排序锁队列中所述目标信息位于首位的情况下,将所述计数值减1;
在所述计数值减为0的情况下,确定满足触发条件。
9.根据权利要求6所述的方法,其中,在所述第一交易对应的操作执行完成之后,还包括:
针对所述各个排序锁队列,执行对所述目标信息的出队列操作。
10.根据权利要求6所述的方法,其中,在所述第一交易访问的任一目标参数对应的排序锁队列中加入的针对所述第一交易的目标信息包括所述第一交易的标识及该目标参数在所述第一交易中的读写属性。
11.一种区块链系统中执行交易的方法,所述区块链系统包括第一执行分片和共识分片,所述方法由所述第一执行分片的节点执行,所述方法包括:
接收所述共识分片的节点发送的共识结果;所述共识结果为所述共识分片对交易进行共识得到的;所述共识结果包括待执行的多个交易;
执行所述多个交易中的至少部分交易各自对应的操作;其中,任一交易对应的操作包括读和/或写操作。
12.根据权利要求11所述的方法,其中,所述第一执行分片为所述区块链系统包括的多个执行分片之一;
所述执行所述多个交易中的至少部分交易各自对应的操作,包括:
执行所述多个交易中与所述第一执行分片关联的第一交易对应的操作。
13.根据权利要求12所述的方法,其中,所述方法还包括:
在执行所述第一交易对应的操作之后,根据执行的结果更新所述第一执行分片的世界状态。
14.根据权利要求12所述的方法,其中,所述执行所述多个交易中与所述第一执行分片关联的第一交易对应的操作,包括:
获取所述多个交易中各个交易各自访问的参数;任一交易访问的参数包括该交易读取的参数和/或写入的参数;
基于所述各个交易各自访问的参数,执行所述第一交易对应的操作;其中,所述第一交易访问的参数中包括至少一个目标参数;所述目标参数对应的账户的状态存储于所述第一执行分片中。
15.根据权利要求14所述的方法,其中,所述基于所述各个交易各自访问的参数,执行所述第一交易对应的操作,包括:
基于所述各个交易各自访问的参数,确定所述第一交易;
确定所述第一交易访问的各个目标参数以及所述第一交易对应的排序;
按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述第一交易的目标信息;
基于所述各个排序锁队列,触发所述第一交易对应的操作的执行。
16.根据权利要求15所述的方法,其中,在所述第一交易对应的操作执行完成之后,还包括:
针对所述各个排序锁队列,执行对所述目标信息的出队列操作。
17.根据权利要求15所述的方法,其中,在所述第一交易访问的任一目标参数对应的排序锁队列中加入的针对所述第一交易的目标信息包括所述第一交易的标识及该目标参数在所述第一交易中的读写属性。
18.一种区块链系统中执行交易的装置,所述区块链系统包括第一执行分片和共识分片,所述装置部署于所述第一执行分片的节点中,所述装置包括:
接收模块,用于接收所述共识分片的节点发送的共识结果;所述共识结果为所述共识分片对交易进行共识得到的;所述共识结果包括待执行的多个交易;
执行模块,用于执行所述多个交易中的至少部分交易各自对应的操作;其中,任一交易对应的操作包括读和/或写操作。
19.根据权利要求18所述的装置,其中,所述第一执行分片为所述区块链系统包括的多个执行分片之一;
所述执行模块包括:执行子模块,用于执行所述多个交易中与所述第一执行分片关联的第一交易对应的操作。
20.根据权利要求19所述的装置,其中,所述装置还包括:
更新模块,用于在执行所述第一交易对应的操作之后,根据执行的结果更新所述第一执行分片的世界状态。
21.根据权利要求19所述的装置,其中,所述执行子模块包括:
获取子模块,用于获取所述多个交易中各个交易各自访问的参数;任一交易访问的参数包括该交易读取的参数和/或写入的参数;
操作子模块,用于基于所述各个交易各自访问的参数,执行所述第一交易对应的操作;其中,所述第一交易访问的参数中包括至少一个目标参数;所述目标参数对应的账户的状态存储于所述第一执行分片中。
22.根据权利要求21所述的装置,其中,所述操作子模块被配置用于:
基于所述各个交易各自访问的参数,确定所述第一交易;
确定所述第一交易访问的各个目标参数以及所述第一交易对应的排序;
按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述第一交易的目标信息;
基于所述各个排序锁队列,触发所述第一交易对应的操作的执行。
23.根据权利要求22所述的装置,其中,所述装置还包括:
出队模块,用于针对所述各个排序锁队列,执行对所述目标信息的出队列操作。
24.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令所述计算机执行权利要求11-17中任一项所述的方法。
25.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求11-17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110991231.3A CN113656509B (zh) | 2021-08-26 | 2021-08-26 | 区块链系统中执行交易的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110991231.3A CN113656509B (zh) | 2021-08-26 | 2021-08-26 | 区块链系统中执行交易的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656509A true CN113656509A (zh) | 2021-11-16 |
CN113656509B CN113656509B (zh) | 2024-05-31 |
Family
ID=78482215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110991231.3A Active CN113656509B (zh) | 2021-08-26 | 2021-08-26 | 区块链系统中执行交易的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656509B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659988A (zh) * | 2019-09-10 | 2020-01-07 | 杭州秘猿科技有限公司 | 区块链共识与执行的并行处理方法、装置和电子设备 |
WO2020082871A1 (zh) * | 2018-10-26 | 2020-04-30 | 阿里巴巴集团控股有限公司 | 一种并行化执行区块链交易的方法、装置及系统 |
CN112039860A (zh) * | 2020-08-18 | 2020-12-04 | 上海简苏网络科技有限公司 | 一种在联盟链中实现联合共识分片的方法和装置 |
WO2021012572A1 (zh) * | 2019-07-25 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 区块链交易数据处理方法、装置、计算机设备和存储介质 |
CN112838930A (zh) * | 2021-01-25 | 2021-05-25 | 网易(杭州)网络有限公司 | 区块链交易的执行方法及装置、电子设备、存储介质 |
CN113205417A (zh) * | 2021-04-27 | 2021-08-03 | 华东师范大学 | 一种面向联盟链的交易并行处理方法及系统 |
-
2021
- 2021-08-26 CN CN202110991231.3A patent/CN113656509B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020082871A1 (zh) * | 2018-10-26 | 2020-04-30 | 阿里巴巴集团控股有限公司 | 一种并行化执行区块链交易的方法、装置及系统 |
WO2021012572A1 (zh) * | 2019-07-25 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 区块链交易数据处理方法、装置、计算机设备和存储介质 |
CN110659988A (zh) * | 2019-09-10 | 2020-01-07 | 杭州秘猿科技有限公司 | 区块链共识与执行的并行处理方法、装置和电子设备 |
CN112039860A (zh) * | 2020-08-18 | 2020-12-04 | 上海简苏网络科技有限公司 | 一种在联盟链中实现联合共识分片的方法和装置 |
CN112838930A (zh) * | 2021-01-25 | 2021-05-25 | 网易(杭州)网络有限公司 | 区块链交易的执行方法及装置、电子设备、存储介质 |
CN113205417A (zh) * | 2021-04-27 | 2021-08-03 | 华东师范大学 | 一种面向联盟链的交易并行处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
陈冰容;张延华;孙恩昌;李萌;杨奎;: "基于区块链技术的数字电影流动放映系统", 电子技术应用, no. 08, 6 August 2020 (2020-08-06) * |
Also Published As
Publication number | Publication date |
---|---|
CN113656509B (zh) | 2024-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109951547B (zh) | 事务请求并行处理方法、装置、设备和介质 | |
CN112669155B (zh) | 基于区块链的交易分发执行方法、装置服务器及存储介质 | |
CN113067866B (zh) | 异构系统间的批量文件传输方法及装置 | |
US20040024863A1 (en) | Method, system, and program for discovering components within a network | |
CN118363932B (zh) | 基于无人机的智能巡逻方法及系统 | |
CN113064730A (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
CN113656510A (zh) | 区块链系统中执行交易的方法及装置 | |
CN113656508A (zh) | 区块链系统中执行交易的方法及装置 | |
CN112884587B (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
CN113505138B (zh) | 区块链系统中状态证明及执行区块的方法及装置 | |
CN112988819B (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
CN114253920A (zh) | 一种交易重新排序方法、装置、设备及可读存储介质 | |
CN113760999A (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
CN111737166B (zh) | 数据对象的处理方法、装置及设备 | |
CN113656509A (zh) | 区块链系统中执行交易的方法及装置 | |
CN113656507B (zh) | 区块链系统中执行交易的方法及装置 | |
CN113254467B (zh) | 在区块链系统中执行交易的方法和区块链节点 | |
CN112884588B (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
CN114356512A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN111552458B (zh) | 一种游戏系统架构的构建方法、实现方法、装置及系统 | |
CN112883068A (zh) | 区块链交易执行方法、区块链节点及控制装置 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN109701275B (zh) | 基于网络游戏影子角色的操作交互方法及装置 | |
CN113157451A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN113268539A (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 |