CN115203218A - 解决区块链节点并行化处理交易时共识不一致问题的方法 - Google Patents
解决区块链节点并行化处理交易时共识不一致问题的方法 Download PDFInfo
- Publication number
- CN115203218A CN115203218A CN202210728702.6A CN202210728702A CN115203218A CN 115203218 A CN115203218 A CN 115203218A CN 202210728702 A CN202210728702 A CN 202210728702A CN 115203218 A CN115203218 A CN 115203218A
- Authority
- CN
- China
- Prior art keywords
- transaction
- snapshot
- transactions
- version
- node
- 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
Links
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/2308—Concurrency control
-
- 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/466—Transaction processing
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种解决区块链节点并行化处理交易时共识不一致问题的方法,包括获取在N个节点上需并行化处理的M个交易所形成的交易集,并根据交易之间的依赖关系对每个交易建立存储快照版本SV并初始化;当每个节点并行化执行交易时,执行交易的线程会首先收到一份存储快照,快照包含当前交易与其他交易依赖关系以及最近一次交易提交的写入结果;当节点线程完成一个交易处理并需提交时,节点会判断该交易是否满足存储快照版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理。由于存储快照版本全局唯一且提交和中止规则一致,因此,本发明可以使M个交易在N个节点上不仅最后提交顺序一致,中止的次序和次数也是一致的。
Description
技术领域
本发明涉及大数据处理及信息技术领域,更具体地,涉及一种解决区块链节点并行化处理交易时共识不一致问题的方法、区块链智能合约的交易执行装置、一种可读存储介质和一种数据处理终端。
背景技术
区块链系统因共识机制的问题导致交易吞吐量非常有限,交易吞吐量的瓶颈集中在磁盘I/O、网络带宽和交易执行效率上,其中,在交易执行效率的提升是最具有挑战性的。
通常,以太坊的交易执行是顺序处理的,但其交易执行速度受到单核执行的限制。在如何进一步提升交易执行效率上,已有些文献提出通过并行化执行智能合约的方式来提升交易执行的速度。例如,通过多核多线程的方式来并行化处理交易的方法,来达到提升交易执行效率。
然而,上述提升交易执行效率的方法离理想状态相差甚远效果不佳,究其原因,但并行化执行由于是多线程调度,在区块链各节点上,针对同一交易集,由于处理时间的不同以及不同节点上在处理单个交易时,该交易可能会出现中止、重新处理或提交等结果,会导致同一交易集的输入,在不同节点上并行处理时出现不同的结果,从而导致共识机制的问题。
同时,一套对良好行为的激励机制以及对不良行为的惩罚机制(即攻击或滥用协议)是无许可区块链的重要组成部分,通常在以太坊以及类似系统中,交易冲突或交易中止的数量是激励层用来分配区块奖励很重要的一个指标,其不可避免地导致共识机制的问题。
通常,经典的乐观并行控制(Classic OCC,Classic Optimistic ConcurrencyControl,OCC)算法,会给交易事务赋予时间戳,以确定事务调度次序。具体做法如下:
首先,先读取数据库,修改数据的私有副本;
第二,根据事务的时间戳和数据依赖做冲突检测(conflict detection或validation);如果有冲突则选择退回rollback和重启restart;如果无冲突则将修改过的私有副本存到数据库中;
上述方法仅适合冲突概率极低的场景,但在区块链的应用上,在不同节点之间对同一个交易集进行并行化处理时,可能会导致不同的结果(如图1所示):
①、在节点node A上,四个线程处理了四个交易,其交易的提交顺序是:#1-#2-#3-#4;
②、而在节点node B,四个线程并行化处理的4个交易,交易的提交顺序是:#3-#2-#1-#4;
从上述可以看出,在不同节点上,执行相同的交易事务集合,可能产生不同的结果,其中,#1和#3,在不同节点上,出现了不同的提交顺序,由此很大可能导致在这两个节点上某些状态的不同,从而导致对该交易事务集的共识问题。
此外,目前还有一种确定性提交顺序的并行化控制算法(OCC withdeterministic commit order),其通过交易之间的依赖关系图来严格按照区块交易顺序提交交易,从而达到了同一交易在不同节点上的最终执行结果是相同的。虽然这种确定性提交顺序的方法可以保证所有节点的可观察输出结果是一样的,但每个节点实际执行的过程仍然可能不同,究其原因是交易在不同节点上的时间不同,交易有可能在一个节点上提交,而在另一个节点上确实中止的,如果协议依赖这个交易的提交/中止的次数这个指标来做惩罚的话,即用于避免拒绝服务(Denial of Service,DOS)攻击,这将会导致不同节点上对同一交易的处理结果以及状态不同,从而影响节点的共识达成。
请参阅图2,图2所示为现有技术中采用确定性提交顺序的并行化控制算法执行结果示意图。如下图2所示:
(1)在node A上,交易的执行以及提交顺序为#1-#2-#3-#4
(2)但在nodeB上,虽然最终提交顺序是一样的,即#1-#2-#3-#4,但在node B上,由于#3交易比#1交易先执行完成,但系统侦测到会和#1交易冲突,此时需要对#3交易进行丢弃(abort)处理,待#1交易和#2交易执行完成后,重新执行#3交易,即在nodeB上,#3交易进行了一次丢弃处理,这可能会影响node B在激励或惩罚层面的状态变化,而且导致同一输入的交易集合,在不同节点上,并行处理时出现了不一样的结构,影响节点共识。
发明内容
本发明的目的在于提供一种解决区块链节点并行化处理交易时共识不一致问题的方法及装置,其通过确定性中止的并行化优化处理算法,用于解决区块链并行化执行智能合约过程中,不同节点处理过程和结果可能不同的问题。
为实现上述目的,本发明的技术方案如下:
一种解决区块链节点并行化处理交易时共识不一致问题的方法,用于通过多核多线程的方式来并行化处理智能合约交易,其包括如下步骤:
步骤S1:获取在N个节点上需并行化处理的M个交易所形成的交易集,并根据交易之间的依赖关系对每个交易建立存储快照版本SV,并初始化所述存储快照版本SV;其中,所述存储快照版本SV的存储条目包括M个交易在节点预先编排的处理顺序和节点最近一次交易提交的写入结果初始化时,所述最近一次交易提交的写入结果为空;
步骤S2:当节点通过多线程并行化执行多个交易时,所述节点线程会首先收到一份快照,所述快照包含在所述交易之前的所有交易的所述存储快照版本SV;其中,如果单个所述交易执行多次,所述存储快照版本SV编排好了之前多次执行时该交易的依赖关系以及最近的一次提交记录,所述存储快照版本SV的编排根据各交易期望的执行时间以及交易之间的相互依赖关系进行排序,且所述存储快照版本SV所有节点可见;
步骤S3:当进行并行化处理所述交易集中的一个交易时,各节点线程根据分配的交易,判断是否满足所述存储快照版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理,等待下次重新处理;其中,所述提交要求中包括:
对于某个交易的执行,各节点线程调度程序须允许交易先于或当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中;
对于某个交易的执行,各节点线程调度程序不允许后于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中,即使当前交易已经处理完,处于提交状态,也不被允许写入。
进一步地,在所述步骤S2中的交易期望执行的时间,通过交易的gas limit评估。
进一步地,节点交易的执行成功时间以及丢弃的次数可作为节点的奖励机制和/或惩罚机制的参考指标。
进一步地,所述交易之间的相互依赖关系,通过启发式的方式来评估。
进一步地,所述启发式的方式为静态分析。
为实现上述目的,本发明另一个技术方案如下:
一种区块链智能合约的交易执行装置,采用多核多线程的方式来并行化处理智能合约交易,其包括:
初始化模块,获取在N个节点上需并行化处理处理的M个交易所形成的交易集,建立存储快照版本SV,并初始化所述存储快照版本SV;其中,所述存储快照版本SV的存储条目包括M个交易在N个节点预先编排的处理顺序和最近一次交易提交的写入记录初始化时,所述最近一次交易提交的写入记录为空;
快照产生模块,当每一个节点在执行每个交易开始时,所述节点会收到一份快照,所述快照包含在所述交易之前的所有交易的所述存储快照版本SV;其中,如果单个所述交易执行多次,所述存储快照版本SV已编排好了多次交易执行的依赖关系以及最近一次交易提交的写入记录,所述存储快照版本SV的编排根据各交易期望的执行时间以及交易之间的相互依赖关系进行排序,且所述存储快照版本SV所有节点可见;
交易执行模块,当进行并行化处理所述交易集中的一个交易时,各节点线程根据分配的交易,判断是否满足所述存储快照版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理,等待下次重新处理;其中,所述提交要求中包括:
对于某个交易的执行,各节点线程调度程序须允许交易先于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中;
对于某个交易的执行,各节点线程调度程序不允许后于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中,即使当前交易已经处理完,处于提交状态,也不被允许写入。
为实现上述目的,本发明又一技术方案如下:
一种可读存储介质,存储有可执行指令,该可执行指令用于执行如权利要求上述的解决区块链节点并行化处理交易时共识不一致问题的方法。
为实现上述目的,本发明还一技术方案如下:
一种数据处理终端,用于作为P2P网络的共识节点,接收、共识验证并存储所述P2P网络中的区块,所述数据处理终端包括:
上述的可读存储介质;
处理器,该处理器调取并执行所述的可读存储介质中的可执行指令,以执行解决区块链节点并行化处理交易时共识不一致问题的方法。
为实现上述目的,本发明还一技术方案如下:
一种P2P网络,所述P2P网络的共识节点为上述的数据处理终端。
从上述技术方案可以看出,本发明提出的解决区块链节点并行化处理交易时共识不一致问题的方法,其通过最高级别的确定性方法,即中止本身这件事也是确定的,如果一个交易事务在一个节点上被中止一次,那么它在所有的其他节点上,也需要恰好被中止一次,从而达到最高级别的确定性,即避免了并行化处理时该字段的读写冲突。
附图说明
图1所示为现有技术中采用乐观并发控制的并行化控制算法执行结果示意图
图2所示为现有技术中采用确定性提交顺序的并行化控制算法执行结果示意图
图3所示为本发明解决区块链节点并行化处理交易时共识不一致问题的方法流程示意图
图4所示为本发明一较佳实施例的示意图
图5所示为本发明解决区块链节点并行化处理交易时共识不一致问题的执行结果示意图
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步的详细说明。
需要说明的是,在区块链并行化执行交易场景中,针对同一交易集中的交易,由于各线程处理的差异可能出现对同一个交易集的处理结果不一样,从而导致节点共识不一致或状态不一致问题。
本发明提出一种基于确定性终止(OCC-DA,OCC with Deterministic Aborts)方法来解决区块链智能合约并行化执行交易时可能导致共识不一致问题的方法,适用于通过多核多线程的方式来并行化处理智能合约交易的场景。具体地,其基于确定性终止的优化算法来解决上述问题,使不同节点在针对同样的交易进行执行时,各节点的交易执行结果是一样的和确定的。
请参阅图3,图3所示为本发明解决区块链节点并行化处理交易时共识不一致问题的方法流程示意图。如图3所示,该方法用于通过多核多线程的方式来并行化处理智能合约交易,其包括如下步骤:
步骤S1:获取节点需并行化处理处理的M个交易所形成的交易集,建立存储快照版本SV,并初始化所述存储快照版本SV;其中,所述存储快照版本SV的存储条目包括M个交易在节点预先编排的处理顺序和交易之间的依赖关系,以及最近一次交易的写入记录信息;
步骤S2:当每一个节点在执行每个交易开始时,所述节点会收到一份快照,所述快照包含在所述交易之前的所有交易的所述存储快照版本SV;其中,如果单个所述交易执行多次,所述存储快照版本SV已编排好了之前多次执行时该交易的依赖关系以及最近一次交易提交的写入记录,所述存储快照版本SV的编排根据各交易期望的执行时间以及交易之间的相互依赖关系进行排序,且所述存储快照版本SV所有节点可见;
步骤S3:当进行并行化处理所述交易集中的一个交易时,各节点线程根据分配的交易,判断是否满足所述存储快照版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理,等待下次重新处理;其中,所述提交要求中包括:
对于某个交易的执行,各节点线程调度程序须允许交易先于或当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中;
对于某个交易的执行,各节点线程调度程序不允许后于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中,即使当前交易已经处理完,处于提交状态,也不被允许写入。
实施例1
请参阅图4,图4所示为本发明实施例中当多个交易并行执行,对同一全局变量进行相加时的场景的示意图。如图4所示,
本发明提出的OCC-DA(OCC with Deterministic Aborts)方法是基于快照隔离技术的OCC。在每个交易执行的开始,会收到一份快照,该快照包含在该交易之前的所有交易的存储快照版本(storage version of the snapshot)。存储快照版本里面预先编排了交易集中各交易的执行顺序。如果单个交易执行多次,快照里也预先编排好了多次执行结果,该存储快照版本所有节点可见。具体执行流程如图4所示。
在本发明的实施例中,当节点需要处理一个交易集的交易时,节点会对每个交易预先编排好快照存储版本SV(storage version),各交易对应的快照存储版本SV可表达为:(txn,i)->svn,i
(txn,i)代表交集集中的交易#n的第i次执行,对应的SV为svn,i,该(txn,i)->svn,i对应各交易的各次执行全局可见。当进行并行化处理时,各线程根据分配的交易,获取到对应的svn,i。
快照存储版本SV的编排可根据各交易期望的执行时间以及交易之间的相互依赖关系进行排序,规定各交易的提交顺序,如#1-#3-#2-#4,对于交易期望执行的时间,可以通过每个交易的gas limit等参数来评估,对于相互依赖关系,可以通过静态分析或其他启发式的方式来评估,这个不在本专利讨论范围内。
判断是否满足快照存储版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理,等待下次重新处理。
提交要求中包括:
对于某个交易的执行,调度程序须允许交易先于(包含)当前交易#n的存储版本svn,i的交易执行结果写入到存储条目(storage entries)中。
对于某个交易的执行,调度程序不允许后于当前交易#n的存储版本svn,i的交易执行结果写入到存储条目中,即使这个交易已经处理完,处于提交状态,也不被允许写入,该交易要么中止,要么等到之前交易写入后,再处理。
基于以上处理原则,每个节点上是根据同样的算法,基于同样的先决条件(根据gas limit判断交易执行时间),故每个节点的存储版本SV是一样的,基于同样的SV,最终每个节点上对同一个交易的执行结果都是一致的,要么提交,要么中止,从而达到了更高等级的确定性。
请参阅图5,图5所示为本发明解决区块链节点并行化处理交易时共识不一致问题的执行结果示意图。如图5所示,其两个节点上,执行同一交易集,交易的中止和提交顺序一致,该两个不同节点交易执行过程如下:
(1)该交易集中,包含了4个交易#1、#2、#3、#4,根据gas limit以及交易依赖关系,确定的存储快照版本SV中的提交顺序为#1-#2-#3-#4
(2)在node A和nodeB并行化处理交易过程中,针对交易#1,在nodeA上,#1第一个执行完成并提交,但在nodeB上,交易#3先执行完成,node A上的#1和nodeB的#3如果都完成交易提交,必然导致两个节点上状态不一致,且node B的#3不满足存储快照版本SV中的提交顺序(后于#1,#2),故node B上先完成处理的交易#3的提交需要被终止或等待;针对交易2,在nodeA上,由于满足在在#1之后,可顺序提交,在node B上,交易#2先处理完,但由于#1还未完成提交,需要等待#1完成再提交;针对交易#3,在node B上已根据存储快照版本SV对交易#3的第一次交易处理进行了中止,故在node A上同样需要中止一次,第二次处理时完成提交;针对交易#4,满足在#3后提交,故针对#3的第一次处理即可提交完成。
在本发明的实施例中,一种区块链智能合约的交易执行装置,采用多核多线程的方式来并行化处理智能合约交易,其包括初始化模块、快照产生模块和交易执行模块。
初始化模块,获取在N个节点上需并行化处理处理的M个交易所形成的交易集,建立存储快照版本SV,并初始化所述存储快照版本SV;其中,所述存储快照版本SV的存储条目包括M个交易在N个节点预先编排的处理顺序和最近一次交易提交的写入记录初始化时,所述最近一次交易提交的写入记录为空。
快照产生模块,当每一个节点在执行每个交易开始时,所述节点会收到一份快照,所述快照包含在所述交易之前的所有交易的所述存储快照版本SV;其中,如果单个所述交易执行多次,所述存储快照版本SV已接收和编排好了之前多次执行结果,所述存储快照版本SV的编排根据各交易期望的执行时间以及交易之间的相互依赖关系进行排序,且所述存储快照版本SV所有节点可见。
交易执行模块,当进行并行化处理所述交易集中的一个交易时,各节点线程根据分配的交易,判断是否满足所述存储快照版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理,等待下次重新处理;其中,所述提交要求中包括:
对于某个交易的执行,各节点线程调度程序须允许交易先于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中;
对于某个交易的执行,各节点线程调度程序不允许后于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中,即使当前交易已经处理完,处于提交状态,也不被允许写入。
在本发明的实施例中,本发明还提出一种可读存储介质,存储有可执行指令,该可执行指令用于执行上述解决区块链节点并行化处理交易时共识不一致问题的方法。
在本发明的实施例中,还提出一种数据处理终端,用于作为P2P网络的共识节点,接收、共识验证并存储该P2P网络中的区块,该数据处理终端包括如上述的可读存储介质和处理器;该处理器调取并执行所述的可读存储介质中的可执行指令,以执行解决区块链节点并行化处理交易时共识不一致问题的方法。
此外,本发明还提出一种P2P网络,其中该P2P网络的共识节点为前述的数据处理终端。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于可读存储介质中,如只读存储器、磁盘或光盘等。上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。
以上所述的仅为本发明的优选实施例,所述实施例并非用以限制本发明的专利保护范围,因此凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (9)
1.一种解决区块链节点并行化处理交易时共识不一致问题的方法,用于通过多核多线程的方式来并行化处理智能合约交易,其特征在于,包括如下步骤:
步骤S1:获取在N个节点上需并行化处理的M个交易所形成的交易集,并根据交易之间的依赖关系对每个交易建立存储快照版本SV,并初始化所述存储快照版本SV;其中,所述存储快照版本SV的存储条目包括M个交易在节点中预先编排的处理顺序和最近一次交易提交的写入结果,,初始化时,所述最近一次交易的提交结果为空;
步骤S2:当节点通过多线程并行化执行交易时,所述节点线程会首先收到一份对应交易的快照,所述快照包含在所述对应交易的依赖关系以及最近一次交易的提交记录;其中,如果单个所述交易执行多次,所述存储快照版本SV已编排好多次执行时该交易依赖关系以及最近一次提交记录,所述存储快照版本SV的编排根据各交易期望的执行时间以及交易之间的相互依赖关系进行排序,且所述存储快照版本SV全局唯一,对所有节点可见;
步骤S3:当进行并行化处理所述交易集中的一个交易时,各节点线程根据分配的交易,判断是否满足所述存储快照版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理,等待下次重新处理;其中,所述提交要求中包括:
对于某个交易的执行,各节点线程调度程序须允许交易先于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中;
对于某个交易的执行,各节点线程调度程序不允许后于当前交易的所述存储快照版本SV的交易执行结果写入到存储条目中,即使当前交易已经处理完,处于提交状态,也不被允许写入。
2.根据权利要求1所述的解决区块链节点并行化处理交易时共识不一致问题的方法,其特征在于,在所述步骤S2中的交易期望执行的时间,可通过Gas Limit进行评估。
3.根据权利要求2所述的解决区块链节点并行化处理交易时共识不一致问题的方法,其特征在于,每个节点的激励机制和/或惩罚机制的参考指标为交易的成功处理以及丢弃次数。
4.根据权利要求1所述的解决区块链节点并行化处理交易时共识不一致问题的方法,其特征在于,所述交易之间的相互依赖关系,通过启发式的方式来评估。
5.根据权利要求1所述的解决区块链节点并行化处理交易时共识不一致问题的方法,其特征在于,所述启发式的方式为静态分析。
6.一种区块链智能合约的交易执行装置,采用多核多线程的方式来并行化处理智能合约交易,其特征在于,包括:
初始化模块,获取在N个节点上需并行化处理处理的M个交易所形成的交易集,建立存储快照版本SV,并初始化所述存储快照版本SV;其中,所述存储快照版本SV的存储条目包括M个交易在节点上预先编排的处理顺序和节点上最近一次交易提交的写入结果,初始化时,所述最近一次交易提交的写入结果为空;
快照产生模块,当节点通过多线程并行化执行多个交易时,所述节点线程会提前收到一份快照,所述快照包含在所述交易之前的所有交易的所述存储快照版本SV;其中,如果单个所述交易执行多次,所述存储快照版本SV编排好了之前多次执行的依赖关系以及最近一次交易的写入记录,所述存储快照版本SV的编排根据各交易期望的执行时间以及交易之间的相互依赖关系进行排序,且所述存储快照版本SV全局唯一,对所有节点可见;
交易执行模块,当进行并行化处理所述交易集中的一个交易时,各节点线程根据分配的交易,判断是否满足所述存储快照版本SV中规定的提交要求,如果满足则提交,不满足则中止此次交易的处理,等待下次重新处理。
7.一种可读存储介质,存储有可执行指令,该可执行指令用于执行如权利要求1~5任一项所述的解决区块链节点并行化处理交易时共识不一致问题的方法。
8.一种数据处理终端,用于作为P2P网络的共识节点,接收、共识验证并存储所述P2P网络中的区块,所述数据处理终端包括:
如权利要求8所述的可读存储介质;
处理器,该处理器调取并执行所述的可读存储介质中的可执行指令,以执行解决区块链节点并行化处理交易时共识不一致问题的方法。
9.一种P2P网络,其特征在于,所述P2P网络的共识节点为权利要求8所述的数据处理终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210728702.6A CN115203218A (zh) | 2022-06-24 | 2022-06-24 | 解决区块链节点并行化处理交易时共识不一致问题的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210728702.6A CN115203218A (zh) | 2022-06-24 | 2022-06-24 | 解决区块链节点并行化处理交易时共识不一致问题的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115203218A true CN115203218A (zh) | 2022-10-18 |
Family
ID=83578897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210728702.6A Pending CN115203218A (zh) | 2022-06-24 | 2022-06-24 | 解决区块链节点并行化处理交易时共识不一致问题的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203218A (zh) |
-
2022
- 2022-06-24 CN CN202210728702.6A patent/CN115203218A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180158034A1 (en) | Dynamic reordering of blockchain transactions to optimize performance and scalability | |
US10474645B2 (en) | Automatically retrying transactions with split procedure execution | |
US8261024B1 (en) | Address level synchronization of shared data | |
US9170844B2 (en) | Prioritization for conflict arbitration in transactional memory management | |
CN110648124B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN110675255B (zh) | 在区块链中并发执行交易的方法和装置 | |
US8001548B2 (en) | Transaction processing for side-effecting actions in transactional memory | |
JP2012515393A (ja) | トランザクションメモリにおけるトランザクション処理 | |
CN110704112B (zh) | 在区块链中并发执行交易的方法和装置 | |
Romano et al. | On speculative replication of transactional systems | |
US11991298B2 (en) | Method for the execution of an instance of a smart contract by means of a blockchain | |
US11544050B1 (en) | Software patch automation | |
CN110689344B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN110706108B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN111767337B (zh) | 区块的验证方法、装置及设备 | |
CN115203218A (zh) | 解决区块链节点并行化处理交易时共识不一致问题的方法 | |
CN114564412B (zh) | 区块链的确定性交易并发调度方法及系统 | |
CN110515707B (zh) | 基于预先事务处理的确定性并发控制方法及系统 | |
US20090064141A1 (en) | Efficient utilization of transactions in computing tasks | |
CN116450316A (zh) | 交易并行处理的方法、装置、电子设备和存储介质 | |
CN114968364B (zh) | 一种条件语句的处理方法、装置及存储介质 | |
WO2021057165A1 (zh) | 在区块链中并发执行交易的方法和装置 | |
CN117056034A (zh) | 一种Tendermint系统中基于动态分析的事务并行执行方法及装置 | |
Alonso | Database replication for enterprise applications | |
CN110865874A (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 |