CN113656510A - 区块链系统中执行交易的方法及装置 - Google Patents

区块链系统中执行交易的方法及装置 Download PDF

Info

Publication number
CN113656510A
CN113656510A CN202110991244.0A CN202110991244A CN113656510A CN 113656510 A CN113656510 A CN 113656510A CN 202110991244 A CN202110991244 A CN 202110991244A CN 113656510 A CN113656510 A CN 113656510A
Authority
CN
China
Prior art keywords
transaction
target
sequencing
execution
lock queue
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.)
Pending
Application number
CN202110991244.0A
Other languages
English (en)
Inventor
张召
徐泉清
戚晓冬
卓海振
陈之豪
金澈清
张辉
闫莺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
East China Normal University
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by East China Normal University, Alipay Hangzhou Information Technology Co Ltd, Ant Blockchain Technology Shanghai Co Ltd filed Critical East China Normal University
Priority to CN202110991244.0A priority Critical patent/CN113656510A/zh
Publication of CN113656510A publication Critical patent/CN113656510A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书提供一种区块链系统中执行交易的方法及装置,该方法由区块链的节点执行,包括:确定接收的交易访问的各个目标参数以及所述交易对应的排序;按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述交易的目标信息;基于所述各个排序锁队列,触发所述交易对应的操作的执行;其中,所述交易对应的操作包括读和/或写操作。

Description

区块链系统中执行交易的方法及装置
技术领域
本说明书一个或多个实施例涉及区块链技术领域,特别涉及一种区块链系统中执行交易的方法及装置。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链是一种按照时间顺序将数据区块以顺序相连的方式 组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账 本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越 来越多的重视和应用。
目前来说,在相关的技术中,区块链系统在计算和存储方面的可扩展性较弱,制约了区块链系统的吞吐量,难以满足应用的需求。因此,需要提供一种区块链系统中 执行交易的方法。
发明内容
本说明书一个或多个实施例提供一种区块链系统中执行交易的方法及装置。
根据第一方面,提供一种区块链系统中执行交易的方法,由区块链的节点执行,所述方法包括:
确定接收的交易访问的各个目标参数以及所述交易对应的排序;
按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述交 易的目标信息;
基于所述各个排序锁队列,触发所述交易对应的操作的执行;其中,所述交易对应的操作包括读和/或写操作。
根据第二方面,提供一种区块链系统中执行交易的装置,部署于区块链的节点,所述装置包括:
确定模块,用于确定接收的交易访问的各个目标参数以及所述交易对应的排序;
添加模块,用于按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述交易的目标信息;
执行模块,用于基于所述各个排序锁队列,触发所述交易对应的操作的执行;其中,所述交易对应的操作包括读和/或写操作。
根据第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法。
根据第四方面,提供一种及计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任 一项所述的方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书的实施例提供的区块链系统中执行交易的方法和装置,基于接收的交易访问的各个目标参数各自对应的各个排序锁队列,触发该交易对应的操作的执行。保 证了所有发送到区块链系统的交易都具有一个全局唯一的顺序,从而更有效地利用了 计算资源,提高了交易执行的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例, 对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图 获得其它的附图。
图1是本说明书根据一示例性实施例示出的一种区块链系统的架构图;
图2是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的方法的流程图;
图3a是本说明书根据一示例性实施例示出的一种排序锁队列的示意图;
图3b是本说明书根据一示例性实施例示出的一种排序锁队列的示意图;
图4是本说明书根据一示例性实施例示出的另一种区块链系统中执行交易的方法的交互流程图;
图5是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中相同数字表示相同或相似的要素。以下示例性实 施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅 是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该” 也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的 术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但 这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如, 在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息 也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为 “在……时”或“当……时”或“响应于确定”。
如图1所示,是根据一示例性实施例示出的一种区块链系统的架构图。需要说明的是,本说明书的实施例提供的区块链系统中执行交易的方案并不依赖于图1示出的 区块链系统架构,该方案也可应用于其它区块链系统架构中。
在图1中,区块链系统可以包括执行分片和共识分片,其中,共识分片可以包括 分片AS1,分片AS2,……分片ASn等n个共识分片。执行分片可以包括分片ES1, 分片ES2,……分片ESm等m个执行分片。不同的分片各自包括多个节点,各个节点 可以实现为任何具有计算、处理能力的装置、服务器或设备集群等。可以理解,图1 仅是示例性的示出n个共识分片和m个执行分片,实际上区块链系统中可以包括任意 数目的共识分片和执行分片。例如,共识分片的数目可以是一个也可以是多个,执行 分片的数目可以是一个也可以是多个,共识分片的数目可以和执行分片的数目相同, 也可以不同。
具体来说,首先,共识分片可以与客户端对接,从客户端接收交易,并对接收到 的交易进行共识,不同的共识分片可以接收并共识不同的交易。接着,各个共识分片 可以将各自共识得到的共识结果发送给各个执行分片的节点,共识结果可以包括待执 行的多个交易(即共识成功的多个交易)以及该多个交易的执行顺序,由执行分片的 节点完成对该多个交易的执行操作。
需要说明的是,区块链系统如果包括多个执行分片,不同的执行分片可以存储不同账户的状态。任一执行分片的节点可以确定接收的共识结果包括的多个交易中与该 执行分片关联的第一交易,并执行该第一交易对应的操作,该操作可以包括读操作和/ 或写操作。其中,与该执行分片关联的第一交易访问的参数中包括至少一个目标参数, 该目标参数对应的账户的状态存储于该执行分片中。另外,该执行分片的节点可以忽 略该多个交易中除第一交易之外的交易。(对于任意一个执行分片的节点执行任意一 个第一交易对应的操作的详细过程,具体可参见下面图2实施例的描述)
例如,分片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和交易y及其顺序分别发送给分片 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中,按照上述排序在上述各个目标参数各自对应的各个排序锁队列中加入针对该交易的目标信息。
在本实施例中,区块链的节点中存储有预设的列表,该列表中记录有参数与排序锁队列的地址之间的对应关系。可以从该列表中查找出该交易访问的各个目标参数各 自对应的各个排序锁队列,然后,按照该交易对应的排序在各个排序锁队列中加入针 对该交易的目标信息。
具体来说,针对任一目标参数,可以从上述预设列表中查找该目标参数对应的排序锁队列的目标地址。若查找到该目标地址,基于该目标地址在该目标参数对应的排 序锁队列中按照上述排序加入针对该交易的目标信息。若未查找到该目标地址,可以 创建该目标参数对应的排序锁队列,将针对该交易的目标信息添加到新创建的排序锁 队列中的首位,并在该预设列表中添加新创建的排序锁队列的目标地址与该目标参数 的对应关系。
其中,在该交易访问的任一目标参数对应的排序锁队列中加入的针对该交易的目标信息,包括该交易的标识及该目标参数在该交易中的读写属性。该交易的标识可以 包括但不限于该交易的ID,对该交易的ID进行哈希计算得到的哈希值,对该交易的 交易数据进行哈希计算得到的哈希值等。
在步骤205中,基于各个排序锁队列,触发该交易对应的操作的执行。
在本实施例中,该交易对应的操作可以仅包括读操作(例如查询账户余额的交易可以仅涉及读操作),也可以仅包括写操作(例如存证的交易可以仅涉及读操作), 还可以即包括读操作也包括写操作(例如对账户的某个状态进行更新的交易可以即涉 及读操作也涉及写操作)。
具体地,步骤205基于各个排序锁队列,触发该交易对应的操作的执行可以包括:子步骤2051,基于各个排序锁队列中针对该交易的目标信息的位置,确定满足触发条 件;以及子步骤2053,在满足触发条件的情况下,触发该交易对应的操作的执行。
首先,在子步骤2051中,可以确定该交易访问的目标参数的个数,作为计数值的初始值。至少在确定任一排序锁队列中针对该交易的目标信息位于首位的情况下,将 该计数值减1。
可选地,在该交易写入的目标参数所对应的排序锁队列中,如果针对该交易的目标信息位于首位,则将计数值减1。在该交易读取的目标参数所对应的排序锁队列中, 如果针对该交易的目标信息位于首位,或者针对该交易的目标信息之前不存在包括写 属性的信息,则将计数值减1。在计数值为0的情况下,确定满足触发条件。
最后,在子步骤2053中,在满足触发条件的情况下,触发该交易对应的操作的执行。可以直接执行该交易对应的操作,也可以将该交易放入执行池中,并从中随机取 出交易执行对应的操作。
可选地,在步骤207中,针对各个排序锁队列执行对针对该交易的目标信息的出队列操作。
在本实施例中,在该交易对应的操作执行完成之后,可以针对各个排序锁队列,执行对针对该交易的目标信息的出队列操作。对于任一排序锁队列,可以将上述目标 信息删除,并将该目标信息之后针对其它交易的目标信息前移一位。
为了便于理解,下面提供一个完整的应用实例,对本实施例的方案进行示意性说明。具体来说,区块链的节点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中。
如图3a所示,在排序锁队列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中的读写属性“写”。
由图3a可知,第一目标信息在排序锁队列1和排序锁队列2中,均位于首位,因 此,可以将交易1对应的计数值两次减1。第二目标信息在排序锁队列1中,虽然没 有位于首位,但第二目标信息之前的第一目标信息对应的读写属性为读,因此,可以 将交易2对应的计数值减1。第三目标信息在排序锁队列1中,也没有位于首位,但 第三目标信息之前的第一目标信息和第二目标信息对应的读写属性均为读,因此,可 以将交易3对应的计数值减1。此时,交易1对应的计数值为0,交易2对应的计数值 为1,交易3对应的计数值为1。
由于交易1对应的计数值为0,可以将交易1放入执行池,等待执行。在交易1 对应的操作执行完成之后,执行对第一目标信息的出队列操作,具体地,删除排序锁 队列1和排序锁队列2中的第一目标信息,并分别将之后的第二目标信息和第三目标 信息各前移一位。如图3b所示,为执行对第一目标信息的出队列操作之后的排序锁队 列1和排序锁队列2。
由图3b可知,第二目标信息在排序锁队列2中,位于首位,因此,可以将交易2 对应的计数值再减1。而第三目标信息在排序锁队列2中,没有位于首位,所以交易3 对应的计数值不变。此时,交易2对应的计数值为0。可以将交易2放入执行池,等 待执行。在交易2对应的操作执行完成之后,执行对第二目标信息的出队列操作,具 体地,删除排序锁队列1和排序锁队列2中的第二目标信息,并将之后的第三目标信 息各前移一位。
本说明书的上述实施例提供的区块链系统中执行交易的方法,基于接收的交易访问的各个目标参数各自对应的各个排序锁队列,触发该交易对应的操作的执行。保证 了所有发送到区块链系统的交易都具有一个全局唯一的顺序,从而更有效地利用了计 算资源,提高了交易执行的效率。
如图4所示,图4是根据一示例性实施例示出的一种区块链系统中执行交易的方法的交互流程图。该实施例以图1示出的区块链系统的构架为基础,描述了区块链系 统中执行交易的方案,该区块链系统包括执行分片和共识分片,该方法包括以下步骤:
在步骤401中,客户端向共识分片的节点发送待共识的交易。
在步骤403中,共识分片的节点对接收到的交易进行共识。
在本实施例中,客户端可以向与其对接的共识分片的节点发送待共识的交易,共识分片的节点对接收到的交易进行共识,得到共识结果。共识结果可以包括待执行的 多个交易以及该多个交易对应的执行顺序,其中,待执行的交易为共识成功的交易。
在步骤405中,共识分片的节点将经过共识的共识结果发送给执行分片的节点。
在本实施例中,共识分片的节点可以将待执行的多个交易以及该多个交易对应的执行顺序发送给执行分片的节点,由执行分片的节点完成对该多个交易的执行操作。 其中,执行分片的数目可以是一个也可以是多个,若执行分片的数目是多个,则共识 分片的节点可以将待执行的多个交易以及该多个交易对应的执行顺序分别发送给多个 执行分片中各个执行分片各自包括的各个节点。
在步骤407中,执行分片的节点确定共识结果包括的多个交易中各个交易各自访问的参数。
在本实施例中,执行分片的节点可以通过获取该多个交易中各个交易各自访问的各个参数的标识,确定各个交易各自访问的参数。其中,任一交易访问的参数可以仅 包括该交易读取的参数,也可以仅包括该交易写入的参数,还可以即包括该交易读取 的参数,也包括该交易写入的参数。
在一种实现方式中,可以由客户端预先获取待发送的交易访问的各个参数的标识, 并将该交易和该交易访问的各个参数的标识一起发送给共识分片的节点,由共识分片的节点对该交易共识之后,再将该交易和该交易访问的各个参数的标识一起发送给执 行分片的节点。在另一种实现方式中,还可以由执行分片的节点通过预执行交易,或 者利用静态分析根据智能合约的参数等方式,获取接收的交易访问的各个参数的标识。
在步骤409中,执行分片的节点基于各个交易各自访问的参数,执行第一交易对应的操作。
在本实施例中,若执行分片的数目是多个,则针对多个执行分片中的任一第一执行分片,该第一执行分片的节点执行多个交易中与该第一执行分片关联的第一交易对 应的操作。其中,与该第一执行分片关联的第一交易访问的参数中包括至少一个目标 参数,目标参数对应的账户的状态存储于该第一执行分片中。
在本实施例中,任一交易对应的操作可以仅包括读操作(例如查询账户余额的交易可以仅涉及读操作),也可以仅包括写操作(例如存证的交易可以仅涉及读操作), 还可以即包括读操作也包括写操作(例如对账户的某个状态进行更新的交易可以即涉 及读操作也涉及写操作)。
在一种实现方式中,可以基于各个交易各自访问的参数,确定多个交易中的第一交易,并记录第一交易的标识,再根据记录的标识执行依次第一交易。
在另一种实现方式中,还可以基于各个交易各自访问的参数,确定第一交易,并确定第一交易访问的各个目标参数(对应的账户的状态存储于第一执行分片中的参数) 以及第一交易对应的排序。然后,查找该第一交易访问的各个目标参数各自对应的各 个排序锁队列,按照该第一交易对应的排序,在上述各个排序锁队列中加入针对该第 一交易的目标信息,并基于上述各个排序锁队列,触发第一交易对应的操作的执行。
在步骤411中,执行分片的节点根据执行的结果更新该执行分片的世界状态。
在本实施例中,执行分片的节点在执行第一交易对应的操作之后,可以根据执行的结果更新该执行分片的世界状态。具体来说,若执行分片的数目是多个,针对多个 执行分片中的任一第一执行分片,在执行第一交易对应的操作之后,若根据执行结果 确定第一交易对应的操作包括写操作,则可以基于执行写操作的结果更新该第一执行 分片的世界状态。
本说明书的上述实施例提供的区块链系统中执行交易的方法,将区块链系统分为执行分片和共识分片,并利用共识分片对接收到的交易进行共识,利用执行分片执行 由共识分片共识过的交易,从而将区块链系统的共识和执行的功能解耦,提高了区块 链系统的容错率以及交易的执行效率。
应当注意,尽管在上述实施例中,以特定顺序描述了本说明书实施例的方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行 全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。 附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个 步骤分解为多个步骤执行。
与前述区块链系统中执行交易的方法实施例相对应,本说明书还提供了区块链系统中执行交易的装置的实施例。
如图5所示,图5是本说明书根据一示例性实施例示出的一种区块链系统中执行交易的装置框图,部署于区块链的节点,该装置可以包括:确定模块501,添加模块 502和执行模块503。
其中,确定模块501,用于确定接收的交易访问的各个目标参数以及该交易对应的排序。
添加模块502,用于按照该排序在各个目标参数各自对应的各个排序锁队列中加入针对该交易的目标信息。
执行模块503,用于基于各个排序锁队列,触发该交易对应的操作的执行,其中,该交易对应的操作包括读和/或写操作。
在一些实施方式中,该交易访问的目标参数包括该交易中读取的参数和/或写入的 参数。
在另一些实施方式中,在任一目标参数对应的排序锁队列中加入的针对该交易的目标信息包括该交易的标识及该目标参数在该交易中的读写属性。
在另一些实施方式中,执行模块503可以包括:确定子模块和触发子模块(图中 未示出)。
其中,确定子模块,用于基于各个排序锁队列中目标信息的位置,确定满足触发条件。
触发子模块,用于在满足触发条件的情况下,触发该交易对应的操作的执行。
在另一些实施方式中,确定子模块被配置用于:确定该交易访问的目标参数的个数,作为计数值的初始值,至少在确定任一排序锁队列中目标信息位于首位的情况下, 将计数值减1,在计数值为0的情况下,确定满足触发条件。
在另一些实施方式中,该装置还可以包括:释放模块(图中未示出)。
其中,释放模块,用于针对各个排序锁队列,执行对目标信息的出队列操作。
在另一些实施方式中,添加模块可以通过如下方式按照上述排序在任一目标参数对应的排序锁队列中加入针对该交易的目标信息:
从预设列表中查找该目标参数对应的排序锁队列的目标地址。若查找到该目标地址,基于该目标地址在该目标参数对应的排序锁队列中按照该排序加入针对该交易的 目标信息;若未查找到所述目标地址,创建该目标参数对应的排序锁队列,将针对该 交易的目标信息添加到新创建的排序锁队列的首位。
在另一些实施方式中,区块链系统可以包括执行分片和共识分片,部署该装置的节点为执行分片的节点。该装置还可以包括:接收模块(图中未示出)。
其中,接收模块,用于从共识分片的节点接收经过共识的待执行的该交易。
在另一些实施方式中,区块链系统包括多个执行分片,部署该装置的节点为多个执行分片中的第一执行分片的节点。其中,该交易访问的目标参数对应的账户状态存 储于第一执行分片中。
应当理解,上述装置可以预先设置在区块链的节点中,也可以通过下载等方式而加载到区块链的节点中。上述装置中的相应模块可以与区块链的节点中的模块相互配 合以实现区块链系统中执行交易的方案。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离 部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或 者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部模块来实现本说明书一个或多个实施例 方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书一个或多个实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图2至图3任一实施例提供的区块链系统 中执行交易的方法。
本说明书一个或多个实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述图2至图 3任一实施例提供的区块链系统中执行交易的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于 系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参 见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。 在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特 定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处 理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现, 为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了 各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的 特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方 法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。其中,软件模块 可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可 擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任 意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定 本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改 进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种区块链系统中执行交易的方法,由区块链的节点执行,所述方法包括:
确定接收的交易访问的各个目标参数以及所述交易对应的排序;
按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述交易的目标信息;
基于所述各个排序锁队列,触发所述交易对应的操作的执行;其中,所述交易对应的操作包括读和/或写操作。
2.根据权利要求1所述的方法,其中,所述交易访问的目标参数包括所述交易中读取的参数和/或写入的参数。
3.根据权利要求2所述的方法,其中,在任一目标参数对应的排序锁队列中加入的针对所述交易的目标信息包括所述交易的标识及该目标参数在所述交易中的读写属性。
4.根据权利要求1所述的方法,其中,所述基于所述各个排序锁队列,触发所述交易对应的操作的执行,包括:
基于所述各个排序锁队列中所述目标信息的位置,确定满足触发条件;
在满足触发条件的情况下,触发所述交易对应的操作的执行。
5.根据权利要求4所述的方法,其中,所述基于所述各个排序锁队列中所述目标信息的位置,确定满足触发条件,包括:
确定所述交易访问的目标参数的个数,作为计数值的初始值;
至少在确定任一排序锁队列中所述目标信息位于首位的情况下,将所述计数值减1;
在所述计数值为0的情况下,确定满足触发条件。
6.根据权利要求1所述的方法,其中,在所述交易对应的操作执行完成后,还包括:
针对所述各个排序锁队列,执行对所述目标信息的出队列操作。
7.根据权利要求1所述的方法,其中,通过如下方式按照所述排序在任一目标参数对应的排序锁队列中加入针对所述交易的目标信息:
从预设列表中查找该目标参数对应的排序锁队列的目标地址;
若查找到所述目标地址,基于所述目标地址在该目标参数对应的排序锁队列中按照所述排序加入针对所述交易的目标信息;
若未查找到所述目标地址,创建该目标参数对应的排序锁队列,将针对所述交易的目标信息添加到新创建的排序锁队列的首位。
8.根据权利要求1所述的方法,其中,所述区块链系统包括执行分片和共识分片;执行所述方法的节点为所述执行分片的节点;
其中,所述方法还包括:从所述共识分片的节点接收经过共识的待执行的所述交易。
9.根据权利要求8所述的方法,其中,所述区块链系统包括多个执行分片,执行所述方法的节点为所述多个执行分片中的第一执行分片的节点;
其中,所述交易访问的目标参数对应的账户状态存储于所述第一执行分片中。
10.一种区块链系统中执行交易的装置,部署于区块链的节点,所述装置包括:
确定模块,用于确定接收的交易访问的各个目标参数以及所述交易对应的排序;
添加模块,用于按照所述排序在所述各个目标参数各自对应的各个排序锁队列中加入针对所述交易的目标信息;
执行模块,用于基于所述各个排序锁队列,触发所述交易对应的操作的执行;其中,所述交易对应的操作包括读和/或写操作。
11.根据权利要求10所述的装置,其中,所述交易访问的目标参数包括所述交易中读取的参数和/或写入的参数。
12.根据权利要求11所述的装置,其中,在任一目标参数对应的排序锁队列中加入的针对所述交易的目标信息包括所述交易的标识及该目标参数在所述交易中的读写属性。
13.根据权利要求10所述的装置,其中,所述执行模块包括:
确定子模块,用于基于所述各个排序锁队列中所述目标信息的位置,确定满足触发条件;
触发子模块,用于在满足触发条件的情况下,触发所述交易对应的操作的执行。
14.根据权利要求13所述的装置,其中,所述确定子模块被配置用于:
确定所述交易访问的目标参数的个数,作为计数值的初始值;
至少在确定任一排序锁队列中所述目标信息位于首位的情况下,将所述计数值减1;
在所述计数值为0的情况下,确定满足触发条件。
15.根据权利要求10所述的装置,其中,所述装置还包括:
释放模块,用于针对所述各个排序锁队列,执行对所述目标信息的出队列操作。
16.根据权利要求10所述的装置,其中,所述添加模块通过如下方式按照所述排序在任一目标参数对应的排序锁队列中加入针对所述交易的目标信息:
从预设列表中查找该目标参数对应的排序锁队列的目标地址;
若查找到所述目标地址,基于所述目标地址在该目标参数对应的排序锁队列中按照所述排序加入针对所述交易的目标信息;
若未查找到所述目标地址,创建该目标参数对应的排序锁队列,将针对所述交易的目标信息添加到新创建的排序锁队列的首位。
17.根据权利要求10所述的装置,其中,所述区块链系统包括执行分片和共识分片;部署所述装置的节点为所述执行分片的节点;
其中,所述装置还包括:
接收模块,用于从所述共识分片的节点接收经过共识的待执行的所述交易。
18.根据权利要求17所述的装置,其中,所述区块链系统包括多个执行分片,部署所述装置的节点为所述多个执行分片中的第一执行分片的节点;
其中,所述交易访问的目标参数对应的账户状态存储于所述第一执行分片中。
19.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令所述计算机执行权利要求1-9中任一项所述的方法。
20.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
CN202110991244.0A 2021-08-26 2021-08-26 区块链系统中执行交易的方法及装置 Pending CN113656510A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110991244.0A CN113656510A (zh) 2021-08-26 2021-08-26 区块链系统中执行交易的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110991244.0A CN113656510A (zh) 2021-08-26 2021-08-26 区块链系统中执行交易的方法及装置

Publications (1)

Publication Number Publication Date
CN113656510A true CN113656510A (zh) 2021-11-16

Family

ID=78482218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110991244.0A Pending CN113656510A (zh) 2021-08-26 2021-08-26 区块链系统中执行交易的方法及装置

Country Status (1)

Country Link
CN (1) CN113656510A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117527832A (zh) * 2024-01-03 2024-02-06 杭州趣链科技有限公司 一种区块链的交易排序方法、装置、电子设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214847A (ja) * 1993-01-18 1994-08-05 Fuji Xerox Co Ltd トランザクション処理制御システム
CN109636384A (zh) * 2018-10-26 2019-04-16 阿里巴巴集团控股有限公司 一种并行化执行区块链交易的方法、装置及系统
CN109766312A (zh) * 2019-01-07 2019-05-17 深圳大学 一种区块链存储方法、系统、装置及计算机可读存储介质
CN110659988A (zh) * 2019-09-10 2020-01-07 杭州秘猿科技有限公司 区块链共识与执行的并行处理方法、装置和电子设备
US20200013025A1 (en) * 2018-07-06 2020-01-09 International Business Machines Corporation Conditional deferred transactions for blockchain
CN110738497A (zh) * 2019-12-19 2020-01-31 腾讯科技(深圳)有限公司 一种数据处理方法、装置、节点设备及存储介质
CN112748994A (zh) * 2020-12-31 2021-05-04 上海简苏网络科技有限公司 一种区块链交易并行处理方法及系统
CN112883068A (zh) * 2021-04-30 2021-06-01 支付宝(杭州)信息技术有限公司 区块链交易执行方法、区块链节点及控制装置
CN113205417A (zh) * 2021-04-27 2021-08-03 华东师范大学 一种面向联盟链的交易并行处理方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214847A (ja) * 1993-01-18 1994-08-05 Fuji Xerox Co Ltd トランザクション処理制御システム
US20200013025A1 (en) * 2018-07-06 2020-01-09 International Business Machines Corporation Conditional deferred transactions for blockchain
CN109636384A (zh) * 2018-10-26 2019-04-16 阿里巴巴集团控股有限公司 一种并行化执行区块链交易的方法、装置及系统
CN109766312A (zh) * 2019-01-07 2019-05-17 深圳大学 一种区块链存储方法、系统、装置及计算机可读存储介质
CN110659988A (zh) * 2019-09-10 2020-01-07 杭州秘猿科技有限公司 区块链共识与执行的并行处理方法、装置和电子设备
CN110738497A (zh) * 2019-12-19 2020-01-31 腾讯科技(深圳)有限公司 一种数据处理方法、装置、节点设备及存储介质
CN112748994A (zh) * 2020-12-31 2021-05-04 上海简苏网络科技有限公司 一种区块链交易并行处理方法及系统
CN113205417A (zh) * 2021-04-27 2021-08-03 华东师范大学 一种面向联盟链的交易并行处理方法及系统
CN112883068A (zh) * 2021-04-30 2021-06-01 支付宝(杭州)信息技术有限公司 区块链交易执行方法、区块链节点及控制装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张森;叶剑;李国刚;: "面向冷链物流的区块链技术方案研究与实现", 计算机工程与应用, no. 03, 31 December 2020 (2020-12-31), pages 24 - 32 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117527832A (zh) * 2024-01-03 2024-02-06 杭州趣链科技有限公司 一种区块链的交易排序方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US10635576B2 (en) Branch coverage guided symbolic execution for hybrid fuzz testing of software binaries
CN110247984A (zh) 业务处理方法、装置及存储介质
CN113067866B (zh) 异构系统间的批量文件传输方法及装置
CN111984421B (zh) 数据处理方法、装置及存储介质
CN113656510A (zh) 区块链系统中执行交易的方法及装置
US8429218B2 (en) Process restart on a compute node
CN113656508A (zh) 区块链系统中执行交易的方法及装置
CN112884587B (zh) 区块链交易执行方法、区块链节点及控制装置
CN112988819B (zh) 区块链交易执行方法、区块链节点及控制装置
CN113656509A (zh) 区块链系统中执行交易的方法及装置
CN112883067A (zh) 区块链交易执行方法、区块链节点及控制装置
CN113656509B (zh) 区块链系统中执行交易的方法及装置
CN112596669A (zh) 一种基于分布式存储的数据处理方法及装置
CN113656507B (zh) 区块链系统中执行交易的方法及装置
CN111552458B (zh) 一种游戏系统架构的构建方法、实现方法、装置及系统
CN112884588B (zh) 区块链交易执行方法、区块链节点及控制装置
CN114356512A (zh) 一种数据处理方法、设备以及计算机可读存储介质
CN114721801A (zh) 批量任务执行时间的动态调度方法及装置
CN114253920A (zh) 一种交易重新排序方法、装置、设备及可读存储介质
CN113254467A (zh) 在区块链系统中执行交易的方法和区块链节点
CN111371818B (zh) 一种数据请求的验证方法、装置及设备
CN112883068A (zh) 区块链交易执行方法、区块链节点及控制装置
CN112988818A (zh) 区块链交易执行方法、区块链节点及控制装置
CN111737166A (zh) 数据对象的处理方法、装置及设备
CN107220031B (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