CN112801794B - 交易执行方法、装置、电子设备、存储介质 - Google Patents
交易执行方法、装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN112801794B CN112801794B CN202110173205.XA CN202110173205A CN112801794B CN 112801794 B CN112801794 B CN 112801794B CN 202110173205 A CN202110173205 A CN 202110173205A CN 112801794 B CN112801794 B CN 112801794B
- Authority
- CN
- China
- Prior art keywords
- transaction
- address
- state table
- executed
- execution state
- 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
Images
Classifications
-
- 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
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种交易执行方法、装置、电子设备、计算机可读存储介质,该方法包括:遍历指定的交易列表,判断交易列表中第一交易的交易地址是否位于预设执行状态表中;若第一交易的交易地址不位于执行状态表,将第一交易的交易地址放入执行状态表;执行第一交易,并在第一交易执行完毕后从执行状态表中移除第一交易的交易地址;在第一交易的执行过程中,并行执行交易列表中第二交易的判断步骤。本申请方案,可以并行执行交易地址不同的多个交易,提升了交易执行的速度。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种交易执行方法、装置、电子设备、计算机可读存储介质。
背景技术
UTXO(Unspent Transaction Outputs,未花费的交易输出)模型在区块链中用于记录账户余额。UTXO模型可以记录区块链中每一账户地址对应的未花费输入(UnSpendInput),该未花费输入表示该账户的一笔余额,同一账户在UTXO模型中可能包括多个未花费输入。区块链的共识节点在执行交易的过程中,需通过UTXO模型验证交易支付方的总余额是否超过交易中待支付的总额,因此需要从本地磁盘的UTXO模型读取交易支付方的所有未花费输入。共识节点在串行处理区块中每一交易时,每次都涉及磁盘I/O(Input/Output,输入/输出),这导致交易执行的速度较慢。
发明内容
本申请实施例的目的在于提供一种交易执行方法、装置、电子设备、计算机可读存储介质,用于快速执行交易。
一方面,本申请提供了一种交易执行方法,包括:
遍历指定的交易列表,判断所述交易列表中第一交易的交易地址是否位于预设执行状态表中;
若所述第一交易的交易地址不位于所述执行状态表,将所述第一交易的交易地址放入所述执行状态表;
执行所述第一交易,并在所述第一交易执行完毕后从所述执行状态表中移除所述第一交易的交易地址;
在所述第一交易的执行过程中,并行执行所述交易列表中第二交易的判断步骤。
在一实施例中,所述方法还包括:
在遍历所述交易列表的过程中,异步遍历所述待执行队列,判断所述待执行队列中第三交易的交易地址是否位于所述执行状态表;
若所述第三交易的交易地址不位于所述执行状态表,将所述第三交易的交易地址放入所述执行状态表;
执行所述第三交易,并在所述第三交易执行完毕后从所述执行状态表移除所述第三交易的交易地址,从所述待执行队列中移除所述第三交易;
在所述第三交易的执行过程中,并行执行所述待执行队列中第四交易的判断步骤。
在一实施例中,所述交易地址包括发起方地址和接收方地址,所述方法还包括:
若所述第三交易的发起方地址或接收方地址位于所述执行状态表,将所述第三交易放入所述待执行队列的尾部。
在一实施例中,所述交易地址包括发起方地址和接收方地址,所述方法还包括:
若所述第一交易的发起方地址或接收方地址位于所述执行状态表,将所述第一交易放入待执行队列的尾部。
在一实施例中,所述方法还包括:
当预设全局计数器记录的交易数量为零时,计算所述交易列表对应的目标区块的第一根哈希;其中,全局计数器记录所述交易列表中未执行的交易数量;
在区块链网络中广播所述第一根哈希。
在一实施例中,所述方法还包括:
当任一交易执行完毕后,更新所述全局计数器。
在一实施例中,所述方法还包括:
判断接收到的所述目标区块的第二根哈希与所述第一根哈希是否一致;
如果与所述第一根哈希不同的第二根哈希占所有第二根哈希的比值未达到预设比值阈值,确定对所述目标区块完成共识。
在一实施例中,所述方法还包括:
如果与所述第一根哈希不同的第二根哈希占所有第二根哈希的比值达到所述比值阈值,串行执行所述交易列表中的交易并计算所述目标区块的第三根哈希;
判断所述第三根哈希与所述第一根哈希是否一致;
若所述第三根哈希与所述第一根哈希一致,执行超时流程。
在一实施例中,所述方法还包括:
若所述第三根哈希与所述第一根哈希不一致,判断所述第二根哈希与所述第三根哈希是否一致;
如果与所述第三根哈希不同的第二根哈希占所有第二根哈希的比值未达到所述比值阈值,确定对所述目标区块完成共识;
如果与所述第三根哈希不同的第二根哈希占所有第二根哈希的比值达到所述比值阈值,执行超时流程。
另一方面,本申请还提供了一种交易执行装置,包括:
遍历模块,用于遍历指定的交易列表,判断所述交易列表中第一交易的交易地址是否位于预设执行状态表中;
放入模块,用于若所述第一交易的交易地址不位于所述执行状态表,将所述第一交易的交易地址放入所述执行状态表;
执行模块,用于执行所述第一交易,并在所述第一交易执行完毕后从所述执行状态表中移除所述第一交易的交易地址;
所述遍历模块,还用于在所述第一交易的执行过程中,并行执行所述交易列表中第二交易的判断步骤。
进一步的,本申请还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述交易执行方法。
另外,本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述交易执行方法。
本申请方案,通过执行状态表记录当前被执行交易的交易地址,从而可从交易列表中筛选出与执行状态表记录的交易地址不同的交易,从而并行执行无冲突的多个交易,极大地提升了交易执行的速度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请一实施例提供的交易执行方法的应用场景示意图;
图2为本申请一实施例提供的电子设备的结构示意图;
图3为本申请一实施例提供的交易执行方法的流程示意图;
图4为本申请另一实施例提供的交易执行方法的流程示意图;
图5为本申请一实施例提供的交易执行装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本申请实施例提供的交易执行方法的应用场景示意图。如图1所示,该应用场景包括区块链网络中多个共识节点20;共识节点20可以是计算机主机、服务器、服务器集群,可以承担交易的执行和共识工作。
如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是上述共识节点20,用于执行交易执行方法。
存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本申请提供的交易执行方法。
参见图3,为本申请一实施例提供的交易执行方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤340。
步骤310:遍历指定的交易列表,判断交易列表中第一交易的交易地址是否位于预设执行状态表中。
其中,指定的交易列表是目标区块的交易列表,该交易列表中的交易需要被执行。这里,目标区块可以是区块链网络中其它共识节点发送的已打包区块,也可以是执行本申请交易执行方法的共识节点所打包的区块。
第一交易可以为交易列表中的任意一个交易。交易地址可以包括发起方地址(transaction.from)和接收方地址(transaction.to)。
执行状态表(Set<address>stateSet)用于记录当前正被执行的交易的交易地址。
共识节点可以遍历上述交易列表,针对交易列表中的第一交易,判断该第一交易的交易地址是否位于执行状态表。
步骤320:若第一交易的交易地址不位于执行状态表,将第一交易的交易地址放入执行状态表。
步骤330:执行第一交易,并在第一交易执行完毕后从执行状态表中移除第一交易的交易地址。
如果第一交易的交易地址不位于执行状态表,说明当前被执行的交易与第一交易没有冲突,当前可以执行第一交易。共识节点可以将第一交易的交易地址放入执行状态表,并依据UTXO模型执行第一交易,在第一交易执行完毕后,可以从执行状态表中移除第一交易的交易地址。
步骤340:在第一交易的执行过程中,并行执行交易列表中第二交易的判断步骤。
第二交易可以为交易列表中除第一交易以外的任意一个交易。
当确定第一交易的交易地址不位于执行状态表,在执行第一交易的过程中,共识节点可以继续遍历交易列表,针对交易列表中的第二交易,判断该第二交易的交易地址是否位于执行状态表,并依据判断结果执行后续步骤。
为并行执行第二交易的判断步骤,共识节点可以通过多个线程、进程或虚拟机来执行本申请中的交易执行方法。在这种情况下,为避免执行状态表被两个以上执行主体操作,可为执行状态表配置全局锁,访问、更新执行状态表的线程、进程或虚拟机需获取全局锁,并在访问、更新结束后释放全局锁。
示例性的,共识节点可以通过主线程遍历交易列表。针对交易列表中的每一交易,主线程可以获取执行状态表的全局锁,并判断该交易的交易地址是否位于执行状态表。如果该交易的交易地址不位于执行状态表,主线程可以将该交易的交易地址放入执行状态表,并释放全局锁。在将交易的交易地址放入执行状态表之后,主线程可以为该交易开启一个异步线程。异步线程可以执行对应的交易,并在执行完毕后,获取全局锁,从执行状态表中移除交易的交易地址,并释放全局锁。
通过上述措施,交易列表中交易地址不同的交易可以并行处理,从而极大地提高了交易执行的速度。
在一实施例中,共识节点在判断第一交易的交易地址是否位于执行状态表时,如果第一交易的发起方地址或接收方地址位于执行状态表,说明当前被执行的交易与第一交易可能存在冲突,暂不能执行第一交易。共识节点可以将第一交易放入待执行队列(PendingTransactionList)的尾部。其中,待执行队列用于存储等待被执行的交易。
示例性的,共识节点在通过主线程遍历交易列表时,当确定任一交易的发起方地址或接收方地址位于执行状态表,可以释放全局锁,并将该交易放入待执行队列的尾部。
在一实施例中,共识节点在将交易放入待执行队列后,可以判断待执行队列中的交易能否执行,参见图4,为本申请另一实施例提供的交易执行方法的流程示意图,如图4所示,该方法可以包括如下步骤410-步骤440。
步骤410:在遍历交易列表的过程中,异步遍历待执行队列,判断待执行队列中第三交易的交易地址是否位于执行状态表。
其中,第三交易可以为待执行队列中的任意一个交易。
共识节点可以在遍历上述交易列表的过程中,针对待执行队列中的第三交易,异步判断该第三交易的交易地址是否位于执行状态表。
步骤420:若第三交易的交易地址不位于执行状态表,将第三交易的交易地址放入执行状态表。
步骤430:执行第三交易,并在第三交易执行完毕后从执行状态表移除第三交易的交易地址,从待执行队列中移除第三交易。
如果第三交易的交易地址不位于执行状态表,说明当前被执行的交易与第三交易没有冲突,当前可以执行第三交易。共识节点可以将第三交易的交易地址放入执行状态表,并依据UTXO模型执行第三交易,在第三交易执行完毕后,可以从执行状态表中移除第三交易的交易地址,以及,从待执行队列中移除第三交易。
步骤440:在第三交易的执行过程中,并行执行待执行队列中第四交易的判断步骤。
第四交易可以为待执行队列中除第三交易以外的任意一个交易。
当确定第三交易的交易地址不位于执行状态表,在执行第三交易的过程中,共识节点可以继续遍历待执行队列,针对待执行队列中的第四交易,判断该第四交易的交易地址是否位于执行状态表,并依据判断结果执行后续步骤。
共识节点从待执行队列的头部至尾部完成遍历后,可以重新从待执行队列的头部开始遍历过程。共识节点重复遍历待执行队列,直至待执行队列为空。
为异步遍历待执行队列、并行执行第四交易的判断步骤,共识节点可以通过多个线程、进程或虚拟机来执行本申请中的交易执行方法,并为执行状态表配置全局锁以避免执行状态表同一时刻被两个以上执行主体操作。
示例性的,共识节点通过主线程遍历交易列表、通过异步线程执行交易时,可以通过后台线程遍历待执行队列。针对待执行队列中的每一交易,后台线程可以获取执行状态表的全局锁,并判断该交易的交易地址是否位于执行状态表。如果该交易的交易地址不位于执行状态表,后台线程可以将该交易的交易地址放入执行状态表,并释放全局锁。在将交易的交易地址放入执行状态表之后,后台线程可以为该交易开启一个异步线程。异步线程可以执行对应的交易,并在执行完毕后,从待执行队列移除该交易,获取全局锁,从执行状态表中移除该交易的交易地址,并释放全局锁。
通过上述措施,遍历交易列表、遍历待执行队列和执行交易均可以并行实现,交易地址不同的交易可以并行处理;对于任一交易而言,若该交易与被执行的交易存在冲突,将该交易放入待执行队列后,后续可继续判断该交易是否与被执行的交易存在冲突,并在不存在冲突的情况下,可立即执行该交易。由于存在针对交易列表和待执行队列的并行判断过程,可以更快地筛选出可被执行的交易,从而进一步提升交易执行速度。
在一实施例中,共识节点在判断第三交易的交易地址是否位于执行状态表时,如果第三交易的发起方地址或接收方地址位于执行状态表,说明当前被执行的交易与第三交易可能存在冲突,暂不能执行第三交易。共识节点可以将第三交易放入待执行队列的尾部。
示例性的,共识节点通过后台线程遍历待执行队列时,当确定任一交易的发起方地址或接收方地址位于执行状态表,可以释放全局锁,并将该交易放入待执行队列的尾部。
在一实施例中,共识节点可以为交易队列对应的目标区块配置全局计数器(gloable_count),该全局计数器用于记录交易列表中未执行的交易数量,全局计数器的初始值为交易列表中交易总数。
当任一交易执行完毕后,共识节点可以更新全局计数器。示例性的,交易对应的异步线程在将交易执行完毕后,可以将全局计数器减一。
在一实施例中,当全局计数器的交易数量为零时,共识节点可以计算交易列表对应的目标区块的根哈希(root_hash),该根哈希可称为第一根哈希。在计算出第一根哈希之后,共识节点可以在区块链网络中广播上述第一根哈希。共识节点可以通过目标区块的块高或父区块的块哈希来标识该目标区块,并广播块高或父区块的块哈希与第一根哈希之间的映射关系,使得其它共识节点可以获得本共识节点计算出的目标区块的哈希值。其中,块高指的是目标区块在区块链中的位置;父区块指的是区块链中目标区块之前的一个区块。
在一实施例中,共识节点可以接收区块链网络中其它共识节点发送的目标区块的根哈希,可将接收到的根哈希称为第二根哈希。共识节点可以判断接收到的第二根哈希与第一根哈希是否一致,并可以统计与第一根哈希不同的第二根哈希的数量。
共识节点可以计算与第一根哈希不同的第二根哈希的数量,占第二根哈希总数的比值,并判断该比值是否达到预设比值阈值。这里,比值阈值可以是预配置的经验值,用作区块共识完成的标准。示例性的,比值阈值可以是三分之一。
如果与第一根哈希不同的第二根哈希占所有第二根哈希的比值未达到比值取值,共识节点可以确定对目标区块完成共识,并可将目标区块添加到区块链上。
在一实施例中,如果与第一根哈希不同的第二根哈希占所有第二根哈希的比值达到上述比值阈值,共识节点可以串行执行交易列表中交易,并计算目标区块的根哈希,该根哈希可称为第三根哈希。其中,串行执行交易列表中的交易的具体过程可参照现有技术,在此不再赘述。
共识节点可以判断第三根哈希与第一根哈希是否一致。如果第三根哈希与第一根哈希一致,说明未对目标区块完成共识,共识节点可以执行超时流程,在区块链网络中广播viewchange消息。
在一实施例中,如果第三根哈希与第一根哈希不一致,共识节点可以判断第二根哈希与第三根哈希是否一致,并可以统计与第二根哈希不同的第三根哈希的数量。
共识节点可以计算与第三根哈希不同的第二根哈希的数量,占第二根哈希总数的比值,并判断该比值是否达到上述比值阈值。
一种情况下,如果与第三根哈希不同的第二根哈希占所有第二根哈希的比值未达到上述比值阈值,共识节点可以确定对目标区块完成共识,并可将目标区块添加到区块链上。
另一种情况下,如果与第三根哈希不同的第二根哈希占所有第二根哈希的比值达到上述比值阈值,说明未对目标区块完成共识,共识节点可以执行超时流程,在区块链网络中广播viewchange消息。
通过上述措施,共识节点在依据本申请中交易执行方法对目标区块执行共识失败后,可以重新以现有的方法串行执行交易,进一步对目标区块执行共识,从而保障了对区块执行共识的成功率。
图5是本发明一实施例的一种交易执行装置,如图5所示,该装置可以包括:
遍历模块510,用于遍历指定的交易列表,判断所述交易列表中第一交易的交易地址是否位于预设执行状态表中;
放入模块520,用于若所述第一交易的交易地址不位于所述执行状态表,将所述第一交易的交易地址放入所述执行状态表;
执行模块530,用于执行所述第一交易,并在所述第一交易执行完毕后从所述执行状态表中移除所述第一交易的交易地址;
所述遍历模块510,还用于在所述第一交易的执行过程中,并行执行所述交易列表中第二交易的判断步骤。
上述装置中各个模块的功能和作用的实现过程具体详见上述交易执行方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种交易执行方法,其特征在于,包括:
遍历指定的交易列表,判断所述交易列表中第一交易的交易地址是否位于预设执行状态表中;
若所述第一交易的交易地址不位于所述执行状态表,将所述第一交易的交易地址放入所述执行状态表;
执行所述第一交易,并在所述第一交易执行完毕后从所述执行状态表中移除所述第一交易的交易地址;
在所述第一交易的执行过程中,并行执行所述交易列表中第二交易的判断步骤;
所述交易地址包括发起方地址和接收方地址,若所述第一交易的发起方地址或接收方地址位于所述执行状态表,将所述第一交易放入待执行队列的尾部;
在遍历所述交易列表的过程中,异步遍历所述待执行队列,判断所述待执行队列中第三交易的交易地址是否位于所述执行状态表;
若所述第三交易的交易地址不位于所述执行状态表,将所述第三交易的交易地址放入所述执行状态表;
执行所述第三交易,并在所述第三交易执行完毕后从所述执行状态表移除所述第三交易的交易地址,从所述待执行队列中移除所述第三交易;在所述第三交易的执行过程中,并行执行所述待执行队列中第四交易的判断步骤。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第三交易的发起方地址或接收方地址位于所述执行状态表,将所述第三交易放入所述待执行队列的尾部。
3.根据权利要求1至2任一所述的方法,其特征在于,所述方法还包括:
当预设全局计数器记录的交易数量为零时,计算所述交易列表对应的目标区块的第一根哈希;其中,全局计数器记录所述交易列表中未执行的交易数量;
在区块链网络中广播所述第一根哈希。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当任一交易执行完毕后,更新所述全局计数器。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
判断接收到的所述目标区块的第二根哈希与所述第一根哈希是否一致;
如果与所述第一根哈希不同的第二根哈希占所有第二根哈希的比值未达到预设比值阈值,确定对所述目标区块完成共识。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
如果与所述第一根哈希不同的第二根哈希占所有第二根哈希的比值达到所述比值阈值,串行执行所述交易列表中的交易并计算所述目标区块的第三根哈希;
判断所述第三根哈希与所述第一根哈希是否一致;
若所述第三根哈希与所述第一根哈希一致,执行超时流程。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第三根哈希与所述第一根哈希不一致,判断所述第二根哈希与所述第三根哈希是否一致;
如果与所述第三根哈希不同的第二根哈希占所有第二根哈希的比值未达到所述比值阈值,确定对所述目标区块完成共识;
如果与所述第三根哈希不同的第二根哈希占所有第二根哈希的比值达到所述比值阈值,执行超时流程。
8.一种交易执行装置,其特征在于,包括:
遍历模块,用于遍历指定的交易列表,判断所述交易列表中第一交易的交易地址是否位于预设执行状态表中;
放入模块,用于若所述第一交易的交易地址不位于所述执行状态表,将所述第一交易的交易地址放入所述执行状态表;
执行模块,用于执行所述第一交易,并在所述第一交易执行完毕后从所述执行状态表中移除所述第一交易的交易地址;
所述遍历模块,还用于在所述第一交易的执行过程中,并行执行所述交易列表中第二交易的判断步骤;
所述交易地址包括发起方地址和接收方地址,所述放入模块还用于若所述第一交易的发起方地址或接收方地址位于所述执行状态表,将所述第一交易放入待执行队列的尾部;
在遍历所述交易列表的过程中,异步遍历所述待执行队列,判断所述待执行队列中第三交易的交易地址是否位于所述执行状态表;
若所述第三交易的交易地址不位于所述执行状态表,将所述第三交易的交易地址放入所述执行状态表;
执行所述第三交易,并在所述第三交易执行完毕后从所述执行状态表移除所述第三交易的交易地址,从所述待执行队列中移除所述第三交易;
在所述第三交易的执行过程中,并行执行所述待执行队列中第四交易的判断步骤。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任意一项所述的交易执行方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-7任意一项所述的交易执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110173205.XA CN112801794B (zh) | 2021-02-08 | 2021-02-08 | 交易执行方法、装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110173205.XA CN112801794B (zh) | 2021-02-08 | 2021-02-08 | 交易执行方法、装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112801794A CN112801794A (zh) | 2021-05-14 |
CN112801794B true CN112801794B (zh) | 2022-04-15 |
Family
ID=75814819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110173205.XA Active CN112801794B (zh) | 2021-02-08 | 2021-02-08 | 交易执行方法、装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112801794B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414374A (zh) * | 2020-03-20 | 2020-07-14 | 深圳市网心科技有限公司 | 一种区块链交易并发处理方法、装置及设备 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN111797168A (zh) * | 2020-07-09 | 2020-10-20 | 杭州复杂美科技有限公司 | 区块并行处理方法、设备和存储介质 |
-
2021
- 2021-02-08 CN CN202110173205.XA patent/CN112801794B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414374A (zh) * | 2020-03-20 | 2020-07-14 | 深圳市网心科技有限公司 | 一种区块链交易并发处理方法、装置及设备 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN111797168A (zh) * | 2020-07-09 | 2020-10-20 | 杭州复杂美科技有限公司 | 区块并行处理方法、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112801794A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
CN107391628B (zh) | 数据同步方法及装置 | |
FI3382551T3 (fi) | Hajautettu laitteistojäljitys | |
US7593947B2 (en) | System, method and program for grouping data update requests for efficient processing | |
CN107181636B (zh) | 一种负载均衡系统中的健康检查方法及装置 | |
CN116501267B (zh) | 一种独立冗余磁盘阵列卡控制方法和装置 | |
US8676850B2 (en) | Prioritization mechanism for deletion of chunks of deduplicated data objects | |
CN111984421B (zh) | 数据处理方法、装置及存储介质 | |
CN112416794A (zh) | 代码覆盖率的处理方法、装置、设备及存储介质 | |
CN113923002B (zh) | 计算机网络入侵防御方法、装置、存储介质及处理器 | |
CN111078510B (zh) | 一种任务处理进度的记录方法及装置 | |
CN112801794B (zh) | 交易执行方法、装置、电子设备、存储介质 | |
CN104599177B (zh) | 额度资源处理方法、联机交易处理方法及装置 | |
CN113626173A (zh) | 调度方法、装置及存储介质 | |
CN111625507A (zh) | 一种文件处理方法及装置 | |
CN111625505A (zh) | 一种文件拆分方法及装置 | |
CN108600312A (zh) | 一种基于文件分块的多线程并行下载方法 | |
CN110928941A (zh) | 一种数据分片抽取方法及装置 | |
CN111371818B (zh) | 一种数据请求的验证方法、装置及设备 | |
CN112508574A (zh) | 一种区块链的并行交易执行方法、装置和电子设备 | |
CN112487010A (zh) | 一种区块链用户数据表更新方法、设备及存储介质 | |
CN107122489B (zh) | 一种数据对比方法及装置 | |
CN111273888B (zh) | 一种地址相关读写队列维序的方法及装置 | |
CN110908776A (zh) | 定时任务的执行方法及相关装置、计算机可读存储介质 | |
CN112636994A (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 |