CN117422468B - 基于dag模型的合约链合约并行化方法、设备及存储介质 - Google Patents
基于dag模型的合约链合约并行化方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117422468B CN117422468B CN202311740127.2A CN202311740127A CN117422468B CN 117422468 B CN117422468 B CN 117422468B CN 202311740127 A CN202311740127 A CN 202311740127A CN 117422468 B CN117422468 B CN 117422468B
- Authority
- CN
- China
- Prior art keywords
- contract
- transaction
- group
- ordering
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000012795 verification Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims abstract description 14
- 238000012163 sequencing technique Methods 0.000 claims abstract 9
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001419 dependent effect Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- OVRPUVGBRNDNAS-VIFPVBQESA-N n-[(1s)-1-(2-chloro-6-fluorophenyl)ethyl]-5-cyano-1-methylpyrrole-2-carboxamide Chemical compound N([C@@H](C)C=1C(=CC=CC=1F)Cl)C(=O)C1=CC=C(C#N)N1C OVRPUVGBRNDNAS-VIFPVBQESA-N 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000010494 dissociation reaction Methods 0.000 description 1
- 230000005593 dissociations Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明的一种基于DAG模型的合约链合约并行化方法、设备及存储介质,包括以下步骤,合约分组模块负责将每个合约分配到该合约的排序节点称为合约排序节点,该合约的排序节点将处理后续关于该合约调用交易的排序;组内合约交易处理模块用于合约排序节点对组内各个合约调用交易的排序并广播交由验证节点执行的过程;跨组合约交易处理模块用于在不同合约排序节点并行执行交易场景下,不同合约排序节点下的合约间出现调用时的交易排序和执行问题,即处理跨组合约交易问题。本发明提出了合约分组结合组内合约并行执行的两层合约并行执行模型,保证了合约状态一致性的同时,提高了DAG多链的模型下合约交易并行处理速度。
Description
技术领域
本发明涉及区块链智能合约技术领域,具体涉及一种基于DAG模型的合约链合约并行化方法、设备及存储介质。
背景技术
以太坊为例,EVM处理或验证时,如果交易并行运行,EVM将偏向于竞态条件:两个程序(在本例中是交易)尝试并行地增加uint变量。因为两个程序同时访问变量,所以变量只增加一次而不是两次。为了解决此类并发bug,以太坊选择逐个处理交易。也就是说,EVM是一个单线程状态机。
智能合约交易的单线程串行执行极大制约了交易的执行速度,影响了整个区块的打包或者验证时间,进而降低了交易吞吐量性能。
发明内容
本发明提出的一种基于DAG模型的合约链合约并行化方法、设备及存储介质,可解决DAG结构下智能合约能够并行化执行或者验证且保证各节点执行结束后状态的一致性。
为实现上述目的,本发明采用了以下技术方案:
一种基于DAG模型的合约链合约并行化方法,基于合约分组模块、组内合约交易处理模块、跨组合约交易处理模块,包括以下步骤,
合约分组模块负责将每个合约分配到该合约的排序节点称为合约排序节点,该合约的排序节点将处理后续关于该合约调用交易的排序;
组内合约交易处理模块用于合约排序节点对组内各个合约调用交易的排序并广播交由验证节点执行的过程;
跨组合约交易处理模块用于在不同合约排序节点并行执行交易场景下,不同合约排序节点下的合约间出现调用时的交易排序和执行问题,即处理跨组合约交易问题。
进一步地,基于合约分组模块包括非依赖均衡分组方式和依赖同组方式;
非依赖均衡分组方式是针对于合约不存在调用其他合约的情况,此时,将当前所维护合约数量最少的节点设为该合约的合约排序节点;
依赖同组方式是针对于合约存在调用其他合约的情况,此时,该合约存在依赖合约,其需要与依赖合约同组,即该合约与依赖合约设为同一个合约排序节点。
进一步地,组内合约交易处理模块包括组内合约排序方法;
所述组内合约排序方法,分为两种情况;
第一种是同一合约的多笔调用交易,那么只在该合约的合约链上追加;先将多笔交易并行执行,若存在两个或以上交易对同一合约状态的读写冲突,则冲突的交易转为串行执行顺序;最后,将该阶段的交易追加在该合约链上;
第二种是存在组内跨合约链调用情况;当一个合约调用交易调用了该节点下的另一个合约数据,则利用引用键关联另一个合约链来约束顺序,即该笔合约调用交易排在另一个合约链在此阶段中的交易之后。
进一步地,组内合约交易处理模块还包括组内合约执行方法;
组内合约执行方法中合约排序节点在该阶段时间内根据组内合约排序方法完成组内合约排序后,将排序后各个交易所在的合约链最新阶段广播给验证节点;验证节点将根据合约排序节点的分组并行执行合约交易,进一步地,在各组内按照各合约链最新阶段的交易排序也进行并行执行合约交易;一条合约链上交易执行完成后,更新本地该合约的最新状态。
进一步地,跨组合约交易处理模块包括跨组合约排序方法;
跨组合约排序方法包括跨组合约交易的交易构造与组内合约交易构造不同,跨组合约交易包含两笔交易,一笔是正常的该合约调用交易,另一笔是被调用合约的通知交易;通知交易引用了被调用合约的合约链最新确定交易,用来表明该合约调用交易是依赖通知交易所处的合约状态的;通知交易是发给被调用合约的合约排序节点的,被调用合约的合约排序节点接收到通知交易后,该通知交易所属的合约链暂停追加新的交易;
当该笔跨组合约交易包括合约调用交易被共识完成后,被调用合约的合约链继续追加新的交易,且需要引用键关联通知交易所属的跨组合约交易来约束顺序,避免出现各节点因执行顺序不同,而导致各节点本地的最终合约状态不一致。
进一步地,跨组合约交易处理模块还包括跨组合约执行方法;
跨组合约执行方法包括当验证节点接收到来自不同的合约排序节点发送的合约链最新交易排序顺序,且存在跨组合约交易时,由于通知交易所属的合约链最新交易排序顺序上仅有通知交易,因此该合约链在该阶段时间执行完后的状态随着跨组合约交易中的合约调用交易的更新而可能更新;若跨组合约交易中的合约调用交易未改变被调用合约的状态,则被调用合约状态不会改变。
又一方面,本发明还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。
再一方面,本发明还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。
由上述技术方案可知,本发明的基于DAG模型的合约链合约并行化方法及系统,本发明在DAG多链的模型下,提出了一种基于账户链与合约链的智能合约并行化机制,旨在保证合约状态一致性的条件下,实现在DAG结构下智能合约能够并行化执行或者验证。
具体的说,本发明的有益效果如下:
1、本发明脱离了固有的单节点/主节点打包交易、串行执行、广播出块的流程,将区块交易解离划分为一个合约一链,合约排序节点管理多条合约链,适用于存证、溯源等业务场景。
2、本发明提出的合约分组结合合约链并行,即将合约按照合约排序节点分组并行广播,验证节点按照合约排序节点为第一层来并行执行该合约排序节点的合约链。再按照每条合约链内顺序为第二层来并行执行交易,实现合约交易两层并行执行模型,保证了合约状态一致性的同时,提高了DAG多链架构下合约交易并行处理效率。
3、本发明提出的组内合约排序方法解决了同组内(即同一合约排序节点)不同合约链上合约交易调用依赖冲突问题。
4、本发明提出的跨组合约排序方法解决了跨组(即不同合约排序节点下的不同合约链)合约交易调用依赖冲突问题。
附图说明
图1为本发明的模块示意图;
图2为本发明的组内合约交易处理示意图;
图3为本发明的跨组合约交易处理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
如图1所示,本发明实施例所述的基于DAG模型的合约链合约并行化方法,方案主要流程有合约分组模块、组内合约交易处理模块、跨组合约交易处理模块。其中,合约分组模块主要有非依赖均衡分组方式、依赖同组方式;组内合约交易处理模块主要有组内合约排序方法、组内合约执行方法;跨组合约交易处理模块主要有跨组合约排序方法、跨组合约执行方法。
以下分别具体说明:
合约分组模块
如图1所示,该模块主要负责将每个合约分配到该合约的排序节点(称为合约排序节点),该合约的排序节点将处理后续关于该合约调用交易的排序。一个合约一条链,称其为合约链。合约链上关于该合约调用交易的执行顺序由合约排序节点决定。合约排序节点是区块链上共识节点。
非依赖均衡分组方式。该方式是针对于合约不存在调用其他合约的情况。此时,将当前所维护合约数量最少的节点设为该合约的合约排序节点,避免出现个别节点负载过重问题。
依赖同组方式。该方式是针对于合约存在调用其他合约的情况。此时,该合约存在依赖合约,其需要与依赖合约同组,即该合约与依赖合约设为同一个合约排序节点,避免出现频繁的跨组合约交易而影响交易处理效率。
组内合约交易处理模块
如图2所示,该模块是主要是合约排序节点对组内各个合约调用交易的排序并广播交由验证节点执行的过程。合约排序节点维护了多条合约链。一个阶段时间内,该节点下的多个合约都存在调用交易,则需要对这些合约交易进行排序,确定并行执行顺序,保证执行完成后最终合约状态一致性。
组内合约排序方法,分为两种情况。第一种是同一合约的多笔调用交易,那么只在该合约的合约链上追加。先将多笔交易并行执行,若存在两个或以上交易对同一合约状态的读写冲突,则冲突的交易转为串行执行顺序。最后,将该阶段的交易追加在该合约链上。第二种是存在组内跨合约链调用情况。当一个合约调用交易调用了该节点下的另一个合约数据,则利用引用键关联另一个合约链来约束顺序,即该笔合约调用交易排在另一个合约链在此阶段中的交易之后。如图2,在阶段N,用户A的账户链上有两笔交易Ec1和Ec2,用户B的账户链上有三笔交易Ec1、Ec2、Ec3。c1、c2、c3的合约排序节点都为节点1。两笔Ec1不涉及同一合约的同一变量冲突。两笔Ec2涉及到同一合约的同一变量冲突。Ec3这笔交易调用了c2合约,可能会改变c2合约状态。因此,基于组内合约排序方法,在阶段N,c1合约链上两笔Ec1并行排序,c2合约链两笔Ec2串行排序,c3合约链上Ec3利用引用键约束顺序在c2合约链上所有交易之后。
组内合约执行方法。合约排序节点在该阶段时间内根据组内合约排序方法完成组内合约排序后,将排序后各个交易所在的合约链最新阶段广播给验证节点。验证节点将根据合约排序节点的分组并行执行合约交易,进一步地,在各组内按照各合约链最新阶段的交易排序也进行并行执行合约交易。一条合约链上交易执行完成后,更新本地该合约的最新状态。如图2,验证节点收到合约排序节点1在阶段N的各合约链交易(Ec1、Ec1、Ec3、Ec2、Ec2)的排序后,发起多线程并行处理交易,执行完成后,根据执行结果更新c1、c2和c3合约链状态。
跨组合约交易处理模块
如图3所示,该模块主要是解决在不同合约排序节点并行执行交易场景下,不同合约排序节点下的合约间出现调用时的交易排序和执行问题,即处理跨组合约交易问题。
跨组合约排序方法。跨组合约交易的交易构造与组内合约交易构造不同。跨组合约交易包含两笔交易,一笔是正常的该合约调用交易,另一笔是被调用合约的通知交易。通知交易引用了被调用合约的合约链最新确定交易,用来表明该合约调用交易是依赖通知交易所处的合约状态的。通知交易是发给被调用合约的合约排序节点的。被调用合约的合约排序节点接收到通知交易后,该通知交易所属的合约链暂停追加新的交易。当该笔跨组合约交易(包括合约调用交易)被共识完成后,被调用合约的合约链可以继续追加新的交易,且需要引用键关联通知交易所属的跨组合约交易来约束顺序,避免出现各节点因执行顺序不同,而导致各节点本地的最终合约状态不一致。如图3,在阶段N,用户A的账户链上有两笔交易Ec1和Ec2,用户B的账户链上有三笔交易Ec1、Ec2和Ec3-NEc4。用户C的账户链上有三笔交易Ec0、Ec0和Ec4。c1、c2、c3的合约排序节点都为节点1,c0,c4的合约排序节点都为节点2。两笔Ec1不涉及同一合约的同一变量冲突。两笔Ec2涉及到同一合约的同一变量冲突。Ec3这笔交易跨组调用了c4合约,可能会改变c4合约状态。两笔Ec0不涉及同一合约的同一变量冲突。因此,基于跨组合约排序方法,在阶段N,c1合约链上两笔Ec1并行排序,c2合约链两笔Ec2串行排序,c0合约链上的两笔Ec0并行排序。由于c3合约链上Ec3-Nec4是一笔跨组交易,Nec4是c4合约链上的通知交易,表示该阶段该合约链不再处理该合约的调用交易,也规定了下一个阶段的第一个交易必须引用Ec3所在阶段,因此Ec4不参与阶段N排序。
跨组合约执行方法。当验证节点接收到来自不同的合约排序节点发送的合约链最新交易排序顺序,且存在跨组合约交易时,由于通知交易所属的合约链最新交易排序顺序上仅有通知交易,因此该合约链在该阶段时间执行完后的状态随着跨组合约交易中的合约调用交易的更新而可能更新。若跨组合约交易中的合约调用交易未改变被调用合约的状态,则被调用合约状态不会改变。如图3,验证节点收到合约排序节点1在阶段N的各合约链交易(Ec1、Ec1、Ec3、Ec2、Ec2)的排序后,也收到了合约排序节点2在阶段N的各合约链交易(Ec0、Ec0、NEc4),发起多线程并行处理交易,执行完成后,根据执行结果更新c0、c1、c2、c3和c4合约链状态。
综上所述,本发明实施例、所述的基于DAG模型的合约链合约并行化方法,脱离单节点打包交易出块的固化思维,将合约按照合约排序节点分组并行排序广播,提高合约交易速度;本发明提出了组内合约排序方法解决了同组内合约调用依赖问题;本发明提出了跨组合约排序方法解决了跨组合约调用依赖问题;本发明提出了合约分组结合组内合约并行执行的两层合约并行执行模型,保证了合约状态一致性的同时,提高了DAG多链的模型下合约交易并行处理速度。
又一方面,本发明还公开一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述方法的步骤。
再一方面,本发明还公开一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于DAG模型的合约链合约并行化方法。
可理解的是,本发明实施例提供的系统与本发明实施例提供的方法相对应,相关内容的解释、举例和有益效果可以参考上述方法中的相应部分。
本申请实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述基于DAG模型的合约链合约并行化方法。
上述电子设备提到的通信总线可以是外设部件互连标准(英文:PeripheralComponent Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended IndustryStandard Architecture,简称:EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种基于DAG模型的合约链合约并行化方法,其特征在于,基于合约分组模块、组内合约交易处理模块、跨组合约交易处理模块,包括以下步骤,
合约分组模块负责将每个合约分配到该合约的排序节点称为合约排序节点,该合约的排序节点将处理后续关于合约调用交易的排序,一个阶段时间内,合约排序节点下的多个合约都存在调用交易;
组内合约交易处理模块用于合约排序节点对组内各个合约调用交易的排序并广播交由验证节点执行的过程;
跨组合约交易处理模块用于在不同合约排序节点并行执行交易场景下,不同合约排序节点下的合约间出现调用时的交易排序和执行问题,即处理跨组合约交易问题;
合约分组模块的分组方式包括非依赖均衡分组方式和依赖同组方式;
非依赖均衡分组方式是针对于合约不存在调用其他合约的情况,此时,将当前所维护合约数量最少的节点设为该合约的合约排序节点;
依赖同组方式是针对于合约存在调用其他合约的情况,此时,该合约存在依赖合约,其需要与依赖合约同组,即该合约与依赖合约设为同一个合约排序节点;
组内合约交易处理模块包括组内合约排序方法;
所述组内合约排序方法,分为两种情况;
第一种是同一合约的多笔调用交易,那么只在该合约的合约链上追加;先将多笔交易并行执行,若存在两个或以上交易对同一合约状态的读写冲突,则冲突的交易转为串行执行顺序;最后,将该阶段时间的交易追加在该合约链上;
第二种是存在组内跨合约链调用情况;当一个合约调用交易A调用了该节点下的另一个合约数据,则利用引用键关联另一个合约链来约束顺序,即合约调用交易A排在被调用的另一个合约链在所述阶段时间中的交易之后;
跨组合约交易处理模块包括跨组合约排序方法;
跨组合约排序方法包括:跨组合约交易的交易构造与组内合约交易构造不同,跨组合约交易包含两笔交易,一笔是正常的合约调用交易,另一笔是被调用合约的通知交易;通知交易引用了被调用合约的合约链最新确定交易,用来表明该合约调用交易是依赖通知交易所处的合约状态的;通知交易是发给被调用合约的合约排序节点的,被调用合约的合约排序节点接收到通知交易后,该通知交易所属的合约链暂停追加新的交易;
当该跨组合约交易包括的合约调用交易被共识完成后,被调用合约的合约链继续追加新的交易,且需要引用键关联通知交易所属的跨组合约交易来约束顺序,避免出现各节点因执行顺序不同,而导致各节点本地的最终合约状态不一致。
2.根据权利要求1所述的基于DAG模型的合约链合约并行化方法,其特征在于:组内合约交易处理模块还包括组内合约执行方法;
组内合约执行方法中合约排序节点在该阶段时间内根据组内合约排序方法完成组内合约排序后,将排序后各个交易所在的合约链最新阶段广播给验证节点;验证节点将根据合约排序节点的分组并行执行合约交易,进一步地,在各组内按照各合约链最新阶段的交易排序也进行并行执行合约交易;一条合约链上交易执行完成后,更新本地该合约的最新状态。
3.根据权利要求1所述的基于DAG模型的合约链合约并行化方法,其特征在于:跨组合约交易处理模块还包括跨组合约执行方法;
跨组合约执行方法包括当验证节点接收到来自不同的合约排序节点发送的合约链最新交易排序顺序,且存在跨组合约交易时,由于通知交易所属的合约链最新交易排序顺序上仅有通知交易,因此该合约链在该阶段时间执行完后的状态随着跨组合约交易中的合约调用交易的更新而可能更新;若跨组合约交易中的合约调用交易未改变被调用合约的状态,则被调用合约状态不会改变。
4.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至3中任一项所述方法的步骤。
5.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至3中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311740127.2A CN117422468B (zh) | 2023-12-18 | 2023-12-18 | 基于dag模型的合约链合约并行化方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311740127.2A CN117422468B (zh) | 2023-12-18 | 2023-12-18 | 基于dag模型的合约链合约并行化方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117422468A CN117422468A (zh) | 2024-01-19 |
CN117422468B true CN117422468B (zh) | 2024-03-29 |
Family
ID=89530586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311740127.2A Active CN117422468B (zh) | 2023-12-18 | 2023-12-18 | 基于dag模型的合约链合约并行化方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117422468B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
CN110532038A (zh) * | 2019-08-19 | 2019-12-03 | 杭州趣链科技有限公司 | 一种基于Java智能合约的并行执行方法 |
CN111932257A (zh) * | 2020-08-18 | 2020-11-13 | 工银科技有限公司 | 一种区块链并行化处理方法及装置 |
CN112261159A (zh) * | 2020-12-21 | 2021-01-22 | 支付宝(杭州)信息技术有限公司 | 执行跨片事务的方法及系统、主链节点和目标分片节点 |
CN112579261A (zh) * | 2020-12-21 | 2021-03-30 | 支付宝(杭州)信息技术有限公司 | 退出跨片事务的方法和系统、主链节点和目标分片节点 |
CN112598525A (zh) * | 2021-02-26 | 2021-04-02 | 北京全息智信科技有限公司 | 一种智能合约分簇并行的区块链实现方法及装置 |
CN113743941A (zh) * | 2021-11-04 | 2021-12-03 | 支付宝(杭州)信息技术有限公司 | 一种在区块链中执行交易的方法、区块链和主节点 |
CN113869902A (zh) * | 2021-12-03 | 2021-12-31 | 深圳前海微众银行股份有限公司 | 一种区块链交易执行方法及装置 |
CN114600420A (zh) * | 2019-09-27 | 2022-06-07 | 斯凯维公司D/B/A阿索尼 | 修剪防篡改数据存储装置中的条目 |
CN115578096A (zh) * | 2022-09-06 | 2023-01-06 | 杭州趣链科技有限公司 | 区块链并行交易方法、装置、设备和存储介质 |
CN115760405A (zh) * | 2022-11-22 | 2023-03-07 | 杭州趣链科技有限公司 | 交易执行方法、装置、计算机设备及介质 |
CN116170440A (zh) * | 2023-04-26 | 2023-05-26 | 南方科技大学 | 一种基于可信执行环境的隐私交易保护方法及区块链系统 |
CN116382815A (zh) * | 2023-06-05 | 2023-07-04 | 安徽中科晶格技术有限公司 | 基于dag模型的合约并行化方法 |
CN116501799A (zh) * | 2023-04-26 | 2023-07-28 | 浙江大学 | 一种多链场景下的跨链事务分组并行处理方法 |
WO2023231345A1 (zh) * | 2022-05-30 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 对多个交易进行分组的方法和区块链节点 |
WO2023231338A1 (zh) * | 2022-05-30 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 状态数据的提交方法、节点和区块链系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019072305A2 (en) * | 2018-12-28 | 2019-04-18 | Alibaba Group Holding Limited | PARALLEL EXECUTION OF TRANSACTIONS IN A BLOCK CHAIN NETWORK BASED ON WHITE LISTS OF INTELLIGENT CONTRACTS |
-
2023
- 2023-12-18 CN CN202311740127.2A patent/CN117422468B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377232A (zh) * | 2018-12-20 | 2019-02-22 | 众安信息技术服务有限公司 | 基于dag的区块链的交易定序方法及设备 |
CN110532038A (zh) * | 2019-08-19 | 2019-12-03 | 杭州趣链科技有限公司 | 一种基于Java智能合约的并行执行方法 |
CN114600420A (zh) * | 2019-09-27 | 2022-06-07 | 斯凯维公司D/B/A阿索尼 | 修剪防篡改数据存储装置中的条目 |
CN111932257A (zh) * | 2020-08-18 | 2020-11-13 | 工银科技有限公司 | 一种区块链并行化处理方法及装置 |
CN112579261A (zh) * | 2020-12-21 | 2021-03-30 | 支付宝(杭州)信息技术有限公司 | 退出跨片事务的方法和系统、主链节点和目标分片节点 |
CN112261159A (zh) * | 2020-12-21 | 2021-01-22 | 支付宝(杭州)信息技术有限公司 | 执行跨片事务的方法及系统、主链节点和目标分片节点 |
CN112598525A (zh) * | 2021-02-26 | 2021-04-02 | 北京全息智信科技有限公司 | 一种智能合约分簇并行的区块链实现方法及装置 |
CN113743941A (zh) * | 2021-11-04 | 2021-12-03 | 支付宝(杭州)信息技术有限公司 | 一种在区块链中执行交易的方法、区块链和主节点 |
CN113869902A (zh) * | 2021-12-03 | 2021-12-31 | 深圳前海微众银行股份有限公司 | 一种区块链交易执行方法及装置 |
WO2023231345A1 (zh) * | 2022-05-30 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 对多个交易进行分组的方法和区块链节点 |
WO2023231338A1 (zh) * | 2022-05-30 | 2023-12-07 | 蚂蚁区块链科技(上海)有限公司 | 状态数据的提交方法、节点和区块链系统 |
CN115578096A (zh) * | 2022-09-06 | 2023-01-06 | 杭州趣链科技有限公司 | 区块链并行交易方法、装置、设备和存储介质 |
CN115760405A (zh) * | 2022-11-22 | 2023-03-07 | 杭州趣链科技有限公司 | 交易执行方法、装置、计算机设备及介质 |
CN116170440A (zh) * | 2023-04-26 | 2023-05-26 | 南方科技大学 | 一种基于可信执行环境的隐私交易保护方法及区块链系统 |
CN116501799A (zh) * | 2023-04-26 | 2023-07-28 | 浙江大学 | 一种多链场景下的跨链事务分组并行处理方法 |
CN116382815A (zh) * | 2023-06-05 | 2023-07-04 | 安徽中科晶格技术有限公司 | 基于dag模型的合约并行化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117422468A (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450979B (zh) | 一种区块链共识方法及装置 | |
CN108846749B (zh) | 一种基于区块链技术的分片化的交易执行系统及方法 | |
CN110677462B (zh) | 多区块链网络的访问处理方法、系统、装置及存储介质 | |
CN111932257B (zh) | 一种区块链并行化处理方法及装置 | |
CN110233802B (zh) | 一种构建一主链多侧链的区块链架构的方法 | |
CN106325984B (zh) | 一种大数据任务调度装置 | |
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
CN111324435A (zh) | 分布式任务调度及注册方法、设备和分布式任务调度系统 | |
CN107395674A (zh) | 一种应用系统访问异构区块链平台的方法及装置 | |
CN112698888A (zh) | 应用程序的组件化、组件调用和组件初始化方法及其装置 | |
CN114911528B (zh) | 分支指令处理方法、处理器、芯片、板卡、设备及介质 | |
CN117422468B (zh) | 基于dag模型的合约链合约并行化方法、设备及存储介质 | |
CN111782502A (zh) | 一种自动化测试的方法及装置 | |
US20240095172A1 (en) | Data packet processing method and appratus | |
CN116382874A (zh) | 基于多线程的任务执行方法、装置、电子设备和存储介质 | |
CN116610366A (zh) | 基于优先级的gpgpu分支处理架构及方法 | |
CN111884932B (zh) | 一种链路确定方法、装置、设备和计算机可读存储介质 | |
CN111651469B (zh) | 一种管理区块链系统合约的方法和装置 | |
CN115080231A (zh) | 任务的处理方法及装置 | |
CN114518917A (zh) | 算法模块调度方法、算法模块调度装置以及可读存储介质 | |
CN117350724B (zh) | 基于账户链的智能合约运行方法、设备及存储介质 | |
CN114661432A (zh) | 任务调度方法、装置、设备及存储介质 | |
TWI748513B (zh) | 資料處理方法、系統、電子裝置及存儲介質 | |
CN112351085A (zh) | 一种网络资源安全共享方法 | |
CN118101668B (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 |