CN114546884B - 区块链的批量交易冲突检测方法及系统 - Google Patents
区块链的批量交易冲突检测方法及系统 Download PDFInfo
- Publication number
- CN114546884B CN114546884B CN202210422783.7A CN202210422783A CN114546884B CN 114546884 B CN114546884 B CN 114546884B CN 202210422783 A CN202210422783 A CN 202210422783A CN 114546884 B CN114546884 B CN 114546884B
- Authority
- CN
- China
- Prior art keywords
- transaction
- group
- transactions
- conflict detection
- batch
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提出了一种区块链的批量交易冲突检测方法及系统,涉及区块链技术领域,该方法包括:基于预设的分组规则将区块内的批量交易进行分组,生成多个交易组;按照组别并行预执行每个交易组中的全部交易,获取每个交易的执行结果;针对每个交易组,根据组内每个交易的执行结果并行对每个交易组进行冲突检测;获取每个交易组的冲突检测结果,并合并多个交易组的冲突检测结果,以生成批量交易的冲突检测结果。该方法解决了冲突检测执行效率较低且浪费了计算资源的问题,可以对批量的交易进行并行冲突检测,提高冲突检测执行效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链的批量交易冲突检测方法及系统。
背景技术
随着互联网技术的发展,区块链技术已经广泛应用于各个领域中。在实际应用中,区块链的节点在并行调度一批交易时,需要对各个交易进行冲突检测。
相关技术中,在进行一批交易的冲突检测时,通常是采用每次对其中的一笔交易进行冲突检测的方式,或者,采用先执行批量的交易,再对所有交易执行结果进行冲突检测,检测时,所有模块同时对所有交易进行冲突检测的方式。举例而言,在第一种相关方案中,按照预设的并行调度策略生成多笔合约交易间的交易依赖关系,并每次对一笔交易进行冲突检测。在第二种相关方案中,先将区块中交易分发给不同的交易执行模块并行执行后,再通过各个模块对交易执行结果进行冲突检测,该方案中交易调度模块采集多个交易执行模块的交易执行结果,并对所有交易执行结果进行冲突检测,在存在交易冲突时,以将已执行且未冲突的交易执行结果为基础重新执行存在冲突的至少一个交易,并将所有交易检测任务分别同时分发给不同交易执行模块执行,即所有模块同时对所有交易进行冲突检测。
然而,申请人发现,上述第一种方案中,每次仅针对一笔交易进行冲突检测,执行效率较低。上述第二种方案,各模块检测工作量相同,且均为对全量交易的检测,此种冲突检测模式会导致重复检测,且会造成计算资源浪费。即,相关技术中的交易冲突检测方案,执行的效率较低,无法适用于交易量较大的批量检测场景,或者,会存在不必要的重复检测,浪费了计算资源。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种区块链的批量交易冲突检测方法,该方法将区块中的批量交易分组,而后按组对各组交易并行执行冲突检测计算,可以实现对交易冲突检测的并行执行,从而可提高检测并行度,提升冲突检测执行效率。
本申请的第二个目的在于提出一种区块链的批量交易冲突检测系统。
本申请的第三个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请的第一方面实施例在于提出一种区块链的批量交易冲突检测方法方法,该方法包括以下步骤:
基于预设的分组规则将区块内的批量交易进行分组,生成多个交易组;
按照组别并行预执行每个所述交易组中的全部交易,获取每个交易的执行结果;
针对每个所述交易组,根据组内每个交易的执行结果并行对每个所述交易组进行冲突检测;
获取每个所述交易组的冲突检测结果,并合并所述多个交易组的冲突检测结果,以生成所述批量交易的冲突检测结果。
可选地,在本申请的一个实施例中,基于预设的分组规则将区块内的批量交易进行分组,包括:确定所述批量交易中每个交易的接收时间;根据每个交易的所述接收时间的先后关系,将预设的邻近时间范围内的交易分为一组。
可选地,在本申请的一个实施例中,基于预设的分组规则将区块内的批量交易进行分组,还包括:确定所述批量交易中每个交易的类型;将属于同一类型的交易分为一组。
可选地,在本申请的一个实施例中,交易的执行结果包括:执行交易后生成的读集合和写集合,所述获取每个交易的执行结果之后,还包括:生成每个所述交易组的交易读写集。
可选地,在本申请的一个实施例中,根据组内每个交易的执行结果并行对每个所述交易组进行冲突检测,包括:并行检测每个所述交易组内的任一交易是否与当前交易组内除所述任一交易之外的交易存在依赖关系。
为达上述目的,本申请的第二方面实施例还提出了一种区块链的批量交易冲突检测系统,包括以下模块:
分组模块,用于基于预设的分组规则将区块内的批量交易进行分组,生成多个交易组;
预执行模块,用于按照组别并行预执行每个所述交易组中的全部交易,获取每个交易的执行结果;
冲突检测模块,用于针对每个所述交易组,根据组内每个交易的执行结果并行对每个所述交易组进行冲突检测;
生成模块,用于获取每个所述交易组的冲突检测结果,并合并所述多个交易组的冲突检测结果,以生成所述批量交易的冲突检测结果。
可选地,在本申请的一个实施例中,分组模块,具体用于:确定所述批量交易中每个交易的接收时间;根据每个交易的所述接收时间的先后关系,将预设的邻近时间范围内的交易分为一组。
可选地,在本申请的一个实施例中,分组模块,还用于:确定所述批量交易中每个交易的类型;将属于同一类型的交易分为一组。
可选地,在本申请的一个实施例中,交易的执行结果包括:执行交易后生成的读集合和写集合,所述预执行模块,还用于:生成每个所述交易组的交易读写集。
为了实现上述实施例,本申请第三方面实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中的区块链的批量交易冲突检测方法。
本申请的实施例提供的技术方案至少带来以下有益效果:本申请先通过对区块内交易进行分组并预执行交易,然后按组并行地对各组交易进行冲突检测,最后合并各组交易的冲突检测执行结果并输出得到所有块内交易的最终冲突检测执行结果。本申请通过将区块中的批量交易分组,按组对各组交易并行执行冲突检测计算的方式,可实现交易冲突检测并行计算,从而在确保冲突检测的准确性和全面性的基础上,可以提高冲突检测并行度,进而提高冲突检测执行效率,能较好的适用于交易量较大的区块链应用场景。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提出的一种区块链的批量交易冲突检测方法的流程图;
图2为本申请实施例提出的一种具体的区块链的批量交易冲突检测方法的流程图;
图3为本申请实施例提出的一种具体的区块链的批量交易冲突检测方法的原理示意图;
图4为本申请实施例提出的一种区块链的批量交易冲突检测系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例所提出的一种区块链的批量交易冲突检测方法及系统。
图1为本申请实施例提出的一种区块链的批量交易冲突检测方法的流程图,如图1所示,该方法包括以下步骤:
步骤S101,基于预设的分组规则将区块内的批量交易进行分组,生成多个交易组。
其中,区块内的批量交易是区块内当前待进行调度的一批交易,批量交易包括多个交易,具体的交易数量可根据实际需求确定。本申请中的交易指的是对区块链智能合约的一次调用,包含调用智能合约的全部信息,比如,智能合约名称、调用函数名称和参数等。
其中,预设的分组规则是将上述批量交易中存在冲突的可能性较大,比如,预估的冲突概率大于阈值的若干个交易分在一组的规则。
具体的,获取区块内的批量交易后,根据各个交易的信息确定相应的分组规则将区块内的批量交易分组,从而将全部的交易分为多个交易组。在本申请一个实施例中,由于属性相似的交易存在冲突的可能性较大,在本实施例中,可以针对交易的某一属性,将该属性相似的交易分为一组。
作为第一种可能的实现方式,预设规则的可以是按接收交易的时间先后进行分组。在本示例中,先确定批量交易中每个交易的接收时间,然后根据每个交易的接收时间的先后关系,将预设的邻近时间范围内的交易分为一组。具体而言,获取区块链中记录的区块链接收批量交易中每个交易的时间,按照时间先后顺序对批量交易进行排序,将接收时间相近即处于邻近时间范围内的若干个交易分为一组,其中,邻近时间范围内可以根据冲突检测的精确度要求等因素确定。举例而言,将当前交易与该交易的接收时间之后一分钟内的全部交易分为一组,再将下一分钟内接收到的交易分为一组等。
作为第二种可能的实现方式,预设规则的可以是按交易的类型进行分组。在本示例中,确定批量交易中每个交易的类型,将属于同一类型的交易分为一组。具体而言,获取批量交易中每个交易的交易信息,从交易信息中提取每个交易的交易类型,将交易类型相同的交易分为一组。
由此,本申请将块内交易基于预设规则分组,通过预设规则将存在冲突的可能性较大交易分为一组,在后续进行按分组并行冲突检测时,可以提高冲突检测的准确性和可靠性。
步骤S102,按照组别并行预执行每个交易组中的全部交易,获取每个交易的执行结果。
其中,交易的执行结果包括执行交易后生成的读集合和写集合。
具体的,按组并行预执行各个交易组中每个的交易,即同时预执行分组后的每个交易组中的各交易,并获取每个交易的执行结果。
在本申请一个实施例中,获取每个交易的执行结果之后,还包括生成每个交易组的交易读写集。在本实施例中,针对每个交易组,可以收集组内每个交易的读写集,并进行整合,得到每个交易组对应的交易读写集。
步骤S103,针对每个交易组,根据组内每个交易的执行结果并行对每个交易组进行冲突检测。
其中,冲突检测是指对两笔交易之间的交易依赖关系进行分析和检测,可以根据每笔交易的执行结果进行冲突检测。
下面先对交易依赖进行详细说明。具体的,在区块链技术中,通过世界状态表示当前区块链的状态,世界状态是一组关键值 key-value集合,交易通过调用智能合约实现对世界状态的增删和查改等操作。而通过将交易模拟执行的方式,可发现交易对世界状态的依赖和影响,并用读、写集合分别表示确定的依赖和影响。其中,读集合是交易对当前世界状态依赖的key的子集,写集合是交易对当前世界状态影响的key的子集。
在分析交易依赖时,举例而言,若交易1是交易2的前序交易,交易1的读写集合是,交易2的读写集合是。在以下公式表示的情况下,即若则判定交易2依赖交易1,即交易2必须在交易1后执行;否则交易1和交易2可并行执行。也就是说,只有两笔交易读写集完全无重合,或只有读集合有交集时,该两笔交易可并行执行,即检测出该两笔交易无依赖关系。
为了更加清楚的体现本申请的批量交易冲突检测有益效果,下面先对相关技术中每次对一笔交易进行冲突检测的方式的过程进行说明:
在该并行调度的交易冲突检测方法中,基于交易并行调度,首先,主节点在提议区块过程中,需预执行所有交易,并得到所有交易读写集合,随后,对所有交易的读写集合进行冲突检测并构建DAG依赖关系。
举例而言,对于交易1至交易5(下文用Tx1-Tx5表示),根据初始状态并行预执行,得出读写集后进行冲突检测,判定Tx3依赖Tx1、Tx4依赖Tx2和Tx3。将交易Tx1、Tx2、Tx5移出集合S1并加入有向无环图(Directedacyclicgraph,简称DAG)第一层。将Tx1、Tx2、Tx5的写集合(即对状态的更改)写入缓存中。在第二轮迭代中,基于Tx1、Tx2、Tx5的写集合生效后的状态,并行预执行Tx3、Tx4,得到这两笔交易更新后的读写集合。进行冲突检测判定Tx4依赖Tx3,因此将Tx3移出集合S1并加入DAG第二层。将Tx3的写集合写入缓存中。在第三轮迭代中,基于Tx3的写集合生效后的状态,预执行Tx4,得到更新后的读写集合,移出S1并加入DAG第三层。将Tx4的写集合写入缓存中。最终,得到Tx1-Tx5的交易依赖DAG。
由以上描述可知,上述实施例中的冲突检测过程,冲突检测任务执行每次只针对一笔交易进行,无法实现交易冲突检测的并行计算,冲突检测执行效率较低。
而本申请实施例的冲突检测方法,由于对交易进行了分组并且分组并行预执行了每组的交易,因此,可以对分组后交易进行并行冲突检测。
具体的,按照组别根据组内每个交易的执行结果并行的对每个交易组进行冲突检测,对每个交易组进行冲突检测即是对交易组中的全部交易的读写集合进行冲突检测。
在本申请一个实施例中,根据组内每个交易的执行结果并行对每个交易组进行冲突检测包括,并行检测每个交易组内的任一交易是否与当前交易组内除任一交易之外的交易存在依赖关系。即,在本实施例中,可以按照上述读写集合是否存在交集的检测方法,对组内任意两个交易进行冲突检测,检测组内的任一交易是否与该组内的其他一个或多个交易存在依赖关系,从而提高了冲突检测的准确性和全面性。
步骤S104,获取每个所述交易组的冲突检测结果,并合并多个交易组的冲突检测结果,以生成批量交易的冲突检测结果。
具体的,收集每个交易组的冲突检测结果,继续参照步骤S103中的示例,获取第一交易组的冲突检测结果为无冲突,获取第二交易组的冲突检测结果为Tx4依赖Tx3、Tx5依赖Tx4和Tx3,获取获取第一交易组的冲突检测结果为无冲突等。然后合并多个交易组的冲突检测结果,得到批量交易中所有交易的冲突检测执行结果并输出。继续参照上述示例,合并多个交易组的冲突检测结果后生成该批量交易的冲突检测结果为“Tx4依赖Tx3、Tx5依赖Tx4和Tx3”。
进一步的,为了进一步确保冲突检测的准确性,在本申请一个实施例中,获取每个交易组的冲突检测结果后,在合并冲突检测结果之前,还可以将冲突检测结果为无冲突的两个交易组进行合并,再次检测合并后的交易组内是否存在冲突交易,从而扩大了进行依赖分析的交易的范围,确保无冲突的两个交易组内的每个交易之间也不存在依赖关系。
综上所述,本申请实施例的区块链的批量交易冲突检测方法,先通过对区块内交易进行分组并预执行交易,然后按组并行地对各组交易进行冲突检测,最后合并各组交易的冲突检测执行结果并输出得到所有块内交易的最终冲突检测执行结果。该方法通过将区块中的批量交易分组,按组对各组交易并行执行冲突检测计算的方式,可实现交易冲突检测并行计算,从而在确保冲突检测的准确性和全面性的基础上,可以提高冲突检测并行度,进而提高冲突检测执行效率,能较好的适用于交易量较大的区块链应用场景。
为了更加清楚地说明本申请的区块链的批量交易冲突检测方法的实现过程,下面以一个在实际应用中的具体的实施例进行说明。图2为本申请实施例提出的一种具体的区块链的批量交易冲突检测方法的流程图,图3为本申请实施例提出的一种具体的区块链的批量交易冲突检测方法的原理示意图。如图2所示,该方法包括以下步骤:
步骤S201, 基于预设规则将交易分组并按组预执行各组交易,随后按组对各组交易执行结果进行冲突检测。
在本步骤中,基于并行调度交易执行方案,先将块内交易基于预设规则进行分组,预设规则可以为按接收交易的时间先后进行分组,然后对分组后的交易预执行并得到相应的执行结果,比如,交易读写集,即按组对各组的交易并行预执行,并得到相应的执行结果。再按组对分组后的交易执行结果进行冲突检测。
参见图3所示的示例,对于区块内的N个交易,即交易1至交易N(图中用Tx1至TxN)表示,基于预设规则对N个交易进行分组,得到交易组1至交易组K。然后针对K个交易组,分组并行执行组内各交易,获得每个交易执行后得到的读写集,合并整理后得到每个交易组的交易读写集。进一步的,分组并行对各交易组读写集冲突检测,得到每个交易组的交易读写集冲突检测结果。
步骤S201,收集各组交易冲突检测结果并合并,得到最终所有交易的冲突检测执行结果并输出
在本步骤中,收集并合并各组交易的冲突检测执行结果,并输出得到的最终的所有交易的交易冲突检测执行结果。
参见图3所示的示例,合并交易组1至交易组K的交易读写集冲突检测结果,得到所有交易的交易冲突检测执行结果。
为了实现上述实施例,本申请还提出了一种区块链的批量交易冲突检测系统,图4为本申请实施例提出的一种区块链的批量交易冲突检测系统的结构示意图,如图4所示,该系统包括分组模块100、预执行模块200、冲突检测模块和生成模块400。
其中,分组模块100,用于基于预设的分组规则将区块内的批量交易进行分组,生成多个交易组。
预执行模块200,用于按照组别并行预执行每个交易组中的全部交易,获取每个交易的执行结果。
冲突检测模块300,用于针对每个交易组,根据组内每个交易的执行结果并行对每个交易组进行冲突检测。
生成模块400,用于获取每个交易组的冲突检测结果,并合并多个交易组的冲突检测结果,以生成批量交易的冲突检测结果。
可选地,在本申请的一个实施例中,分组模块100,具体用于确定批量交易中每个交易的接收时间;根据每个交易的接收时间的先后关系,将预设的邻近时间范围内的交易分为一组。
可选地,在本申请的一个实施例中,分组模块100,还用于确定批量交易中每个交易的类型;将属于同一类型的交易分为一组。
可选地,在本申请的一个实施例中,交易的执行结果包括执行交易后生成的读集合和写集合,预执行模块200,还用于生成每个交易组的交易读写集。
可选地,在本申请的一个实施例中,冲突检测模块300,具体用于并行检测每个交易组内的任一交易是否与当前交易组内除所述任一交易之外的交易存在依赖关系。
需要说明的是,前述对区块链的批量交易冲突检测方法的实施例的解释说明也适用于该实施例的系统,实现原理类似,此处不再赘述。
综上所述,本申请实施例的区块链的批量交易冲突检测系统,先通过对区块内交易进行分组并预执行交易,然后按组并行地对各组交易进行冲突检测,最后合并各组交易的冲突检测执行结果并输出得到所有块内交易的最终冲突检测执行结果。该系统通过将区块中的批量交易分组,按组对各组交易并行执行冲突检测计算的方式,可实现交易冲突检测并行计算,从而在确保冲突检测的准确性和全面性的基础上,可以提高冲突检测并行度,进而提高冲突检测执行效率,能较好的适用于交易量较大的区块链应用场景。
为了实现上述实施例,本申请还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例中任一所述的区块链的批量交易冲突检测方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (6)
1.一种区块链的批量交易冲突检测方法,其特征在于,包括以下步骤:
基于预设的分组规则将区块内的批量交易进行分组,生成多个交易组;
按照组别并行预执行每个所述交易组中的全部交易,获取每个交易的执行结果;
针对每个所述交易组,根据组内每个交易的执行结果并行对每个所述交易组进行冲突检测;
获取每个所述交易组的冲突检测结果,并合并所述多个交易组的冲突检测结果,以生成所述批量交易的冲突检测结果;
所述交易的执行结果包括:执行交易后生成的读集合和写集合,所述获取每个交易的执行结果之后,还包括:
生成每个所述交易组的交易读写集;
所述根据组内每个交易的执行结果并行对每个所述交易组进行冲突检测,包括:
并行检测每个所述交易组内的任一交易是否与当前交易组内除所述任一交易之外的交易存在依赖关系。
2.根据权利要求1所述的方法,其特征在于,所述基于预设的分组规则将区块内的批量交易进行分组,包括:
确定所述批量交易中每个交易的接收时间;
根据每个交易的所述接收时间的先后关系,将预设的邻近时间范围内的交易分为一组。
3.根据权利要求1所述的方法,其特征在于,所述基于预设的分组规则将区块内的批量交易进行分组,还包括:
确定所述批量交易中每个交易的类型;
将属于同一类型的交易分为一组。
4.一种区块链的批量交易冲突检测系统,其特征在于,包括:
分组模块,用于基于预设的分组规则将区块内的批量交易进行分组,生成多个交易组;
预执行模块,用于按照组别并行预执行每个所述交易组中的全部交易,获取每个交易的执行结果;
冲突检测模块,用于针对每个所述交易组,根据组内每个交易的执行结果并行对每个所述交易组进行冲突检测;
生成模块,用于获取每个所述交易组的冲突检测结果,并合并所述多个交易组的冲突检测结果,以生成所述批量交易的冲突检测结果;
确定所述批量交易中每个交易的类型;
将属于同一类型的交易分为一组;
所述交易的执行结果包括:执行交易后生成的读集合和写集合,所述预执行模块,还用于:
生成每个所述交易组的交易读写集。
5.根据权利要求4所述的系统,其特征在于,所述分组模块,具体用于:
确定所述批量交易中每个交易的接收时间;
根据每个交易的所述接收时间的先后关系,将预设的邻近时间范围内的交易分为一组。
6.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-3中任一所述的区块链的批量交易冲突检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210422783.7A CN114546884B (zh) | 2022-04-21 | 2022-04-21 | 区块链的批量交易冲突检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210422783.7A CN114546884B (zh) | 2022-04-21 | 2022-04-21 | 区块链的批量交易冲突检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114546884A CN114546884A (zh) | 2022-05-27 |
CN114546884B true CN114546884B (zh) | 2022-07-22 |
Family
ID=81667743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210422783.7A Active CN114546884B (zh) | 2022-04-21 | 2022-04-21 | 区块链的批量交易冲突检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546884B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110252426A1 (en) * | 2010-04-08 | 2011-10-13 | International Business Machines Corporation | Processing batch transactions |
CN109508337A (zh) * | 2018-11-12 | 2019-03-22 | 杭州秘猿科技有限公司 | 一种交易并行执行方法、装置、电子设备及系统 |
CN109559226B (zh) * | 2018-11-28 | 2021-03-02 | 连连银加信息技术有限公司 | 区块链交易执行方法、系统及电子设备和存储介质 |
CN111292192A (zh) * | 2020-02-18 | 2020-06-16 | 杭州复杂美科技有限公司 | 一种交易并行执行方法、设备及存储介质 |
-
2022
- 2022-04-21 CN CN202210422783.7A patent/CN114546884B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114546884A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7503039B2 (en) | Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors | |
US7386577B2 (en) | Dynamic determination of transaction boundaries in workflow systems | |
CN110554958B (zh) | 图数据库测试方法、系统、设备和存储介质 | |
US20130262835A1 (en) | Code generation method and information processing apparatus | |
CN111242358A (zh) | 一种双层结构的企业情报流失预测方法 | |
US9213548B2 (en) | Code generation method and information processing apparatus | |
CN103902582B (zh) | 一种减少数据仓库数据冗余的方法和装置 | |
CN114861579A (zh) | 集成电路中时序瓶颈节点分析和时序优化方法及系统 | |
CN114328133A (zh) | 单机构分布式冲突检测方法、系统和存算分离架构 | |
CN112764684A (zh) | 一种存储系统的硬盘性能识别方法和系统 | |
CN114546884B (zh) | 区块链的批量交易冲突检测方法及系统 | |
CN110851434A (zh) | 一种数据存储方法、装置及设备 | |
CN114564412B (zh) | 区块链的确定性交易并发调度方法及系统 | |
CN111767337B (zh) | 区块的验证方法、装置及设备 | |
CN113419964B (zh) | 一种测试案例生成方法、装置、计算机设备及存储介质 | |
CN115858648A (zh) | 数据库生成方法、数据流切分方法、装置、设备及介质 | |
CN112906824B (zh) | 车辆聚类方法、系统、设备及存储介质 | |
CN105868191B (zh) | 数据处理方法及装置 | |
CN107025615B (zh) | 一种基于学习跟踪模型的学习情况统计方法 | |
CN111488496A (zh) | 一种基于滑动窗口的Tango树构建方法及系统 | |
US7536427B2 (en) | Comparing process sizes | |
CN115081233B (zh) | 一种流程仿真方法及电子设备 | |
CN117688564B (zh) | 一种用于智能合约事件日志的检测方法、装置和存储介质 | |
CN117932561B (zh) | 一种联轴器扭矩数据分析方法及系统 | |
Eftimov et al. | Is the statistical significance between stochastic optimization algorithms' performances also significant in practice? |
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 |