CN110276689B - 基于动态决策的智能合约实现方法 - Google Patents
基于动态决策的智能合约实现方法 Download PDFInfo
- Publication number
- CN110276689B CN110276689B CN201910531666.2A CN201910531666A CN110276689B CN 110276689 B CN110276689 B CN 110276689B CN 201910531666 A CN201910531666 A CN 201910531666A CN 110276689 B CN110276689 B CN 110276689B
- Authority
- CN
- China
- Prior art keywords
- concurrency
- conflict
- transaction
- rate
- dynamic
- 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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
基于动态决策的智能合约实现方法,步骤为:1)基于动态分片方法对单个以及多个区块链平台进行周期性的分片预处理;2)在每个片区上对获得记账权的矿工节点已发布区块内的交易的冲突率进行计算;3)通过冲突率来预测当前时刻的可能的冲突情况并决定采用乐观或悲观的并发控制方法;4)将并发执行智能合约分为两个阶段,并发阶段与串行阶段;5)根据步骤4)中虚拟机线程数、冲突操作数量以及冲突率等影响因素来设置单个或多个并发阶段,对区块链平台以及跨区块链平台交易触发的智能合约并发执行。本发明通过上述方法,提供了一种使用简便、处理高效的智能合约实现方法。
Description
技术领域
本发明创造针对区块链平台以及跨区块链平台低吞吐量对整个系统造成的影响,提出基于动态决策的智能合约实现方法。
背景技术
随着区块链方法的不断发展,全球区块链的数量在不断增多。各种各样具有不同特点、适用于不同应用场景的区块链如比特币、以太坊等公有链以及私有链、联盟链大量共存。由于在设计之初并没有考虑到不同链之间交互的问题,因此使得区块链间彼此相互独立,各区块链之间的数据通信、价值转移无法有效进行,且价值孤岛现象逐渐显现。近年来,随着区块链应用场景的不断丰富和复杂化,越来越多的区块链项目提出跨链的需求与解决方案,跨链方法逐步得到发展。但在跨链数据处理的背景下,随着需要处理的交易数量的大量增加,如何实现高效的数据处理存在诸多方面的挑战。
像以太坊这样的现代加密货币系统,允许通过智能合约进行复杂的交易。但是这些智能合约执行了很多次,却始终没有实现真正的并发性。首先,在将所有合约部署到区块链上之前,他们都是由矿工串行执行的。稍后,验证节点将依次重新执行这些合约,以验证智能合约是否被正确执行。这样的串行执行严重限制了系统吞吐量,使得在跨链背景下,当出现大量且更加复杂的交易时,无法完成高效的数据处理。
发明内容
为了解决现有方法存在的问题,本发明提供一种基于动态决策的智能合约实现方法。本方法利用动态分片方法对单个以及多个区块链平台进行周期性的分片预处理;基于动态决策的多版本并发控制方法,计算每个片区上对获得记账权的矿工节点已发布区块内的交易的冲突率;通过计算得到的冲突率来预测当前时刻可能的冲突情况,并选择出最优的并发控制方法;根据所选的并发控制方法,将并发执行智能合约分为两个阶段,并发阶段与串行阶段;根据实际情况设置单个或多个并发阶段,以实现所有潜在的对智能合约的并发执行。
为了实现上述目的,本发明创造采用的技术方案为:基于动态决策的智能合约实现方法,其特征在于:其步骤为:
步骤1)、针对区块链平台以及跨区块链平台交易数量的不断增加,基于动态分片方法对单个以及多个区块链平台进行周期性的分片预处理;
步骤2)、基于动态决策的多版本并发控制方法,在每个片区上,对获得记账权的矿工节点已发布区块内的交易的冲突率进行计算;
步骤3)、通过冲突率来预测当前时刻的可能的冲突情况,并决定采用乐观或悲观的并发控制方法;
步骤4)、根据所选的并发控制方法,将并发执行智能合约分为两个阶段:并发阶段与串行阶段;
步骤5)、根据步骤4)中虚拟机线程数、冲突操作数量以及冲突率影响因素来设置单个或多个并发阶段,对区块链平台以及跨区块链平台交易触发的智能合约并发执行。
所述的步骤1)中,具体方法如下:
1.1)节点数量信息获取:区块链系统通过路由功能来对网络内的节点进行连接通信,完成彼此间的联系并传播信息,并通过“节点发现协议”来对节点的数量信息进行采集;
1.2)分片预处理:对获取到的节点数量采取合适的分片策略;
1.3)节点数量实时监测:使用“节点发现协议”实时监测区块链平台上节点数量的动态变化;
1.4)周期性分片处理:当节点数量动态变化比较大时,及时的调整分片,缩短或延长周期;
1.5)使用全局存储器来保存分片信息。
所述的步骤2)中,具体方法如下:
2.1)首先采用线性回归预测方法计算过去N分钟样本的冲突率E的回归系数k,冲突率E指的是某一区块内的交易在执行时发生冲突的概率,回归系数k指的是过去N分钟时间里的交易,对冲突率E影响大小的参数;
2.2)其次利用推导的方法预测当前时间t的冲突率E。
所述的步骤3)中,具体方法如下:
3.1)将预测得到的冲突率E用来决策时,需要为E指定阈值σ,阈值σ作为一个标准值需要设置得当,如果σ太大或者太小,决策便会接近纯乐观或者纯悲观状态;
3.2)若E≥σ,即冲突率较高时,则需要采用悲观的并发控制策略进行处理,反之,采用乐观的并发控制策略进行处理;
3.3)基于动态决策的并发控制方法要经历以下步骤:开始→取过去N分钟得到样本→计算回归系数k→预测冲突率E→与阈值比较→决策出并发策略→结束,将预测的冲突率E与指定阈值比较并决策,选择出适合的并发控制策略。
所述的步骤4)中,具体方法如下:
4.1)对于每一个块内的事务,将执行分为两个阶段,即并发阶段与串行阶段;
4.2)在并发阶段,虚拟机从块中选择事务并发执行,若事务发生冲突,则回滚事务,并将它延迟到第二阶段;
4.3)在完成一个事务后会选择下一个事务,直到选择完当前块内的所有事务;
4.4)将无法并发执行的事务在串行阶段顺序执行。
所述的步骤5)中,具体方法如下:
5.1)默认在事务执行时只使用一个并发阶段和一个串行阶段;
5.2)若冲突操作数量过多导致冲突率过高时,根据实际情况设置多个并发阶段,使后面的并发阶段获得足够的额外加速;
5.3)为事务的执行设置合适数量的并发阶段和串行阶段,以实现所有潜在的并发。
本发明创造的有益效果为:
本发明与现有技术相比,本发明提出基于动态决策的智能合约实现方法。本方法利用动态分片方法对单个以及多个区块链平台进行周期性的分片预处理;基于动态决策的多版本并发控制方法,计算每个片区上对获得记账权的矿工节点已发布区块内的交易的冲突率;通过计算得到的冲突率来预测当前时刻可能的冲突情况,并选择出最优的并发控制方法;根据所选的并发控制方法,将并发执行智能合约分为两个阶段,并发阶段与串行阶段;根据实际情况设置单个或多个并发阶段,以实现所有潜在的对智能合约的并发执行。
附图说明
图1为本发明方法流程图。
图2为动态决策并发策略的算法模型。
具体实施方式
基于动态决策的智能合约实现方法,其步骤为:
步骤1)、针对区块链平台以及跨区块链平台交易数量的不断增加,基于动态分片方法对单个以及多个区块链平台进行周期性的分片预处理;
所述的步骤1)中,具体方法如下:
1.1)节点数量信息获取:区块链系统通过路由功能来对网络内的节点进行连接通信,完成彼此间的联系并传播信息,并通过“节点发现协议”来对节点的数量信息进行采集;
1.2)分片预处理:对获取到的节点数量采取合适的分片策略;
1.3)节点数量实时监测:使用“节点发现协议”实时监测区块链平台上节点数量的动态变化;
1.4)周期性分片处理:当节点数量动态变化比较大时,及时的调整分片,缩短或延长周期;
1.5)使用全局存储器来保存分片信息。
步骤2)、基于动态决策的多版本并发控制方法,在每个片区上,对获得记账权的矿工节点已发布区块内的交易的冲突率进行计算;
具体方法如下:
2.1)首先采用线性回归预测方法计算过去N分钟样本的冲突率E的回归系数k,冲突率E指的是某一区块内的交易在执行时发生冲突的概率,回归系数k指的是过去N分钟时间里的交易,对冲突率E影响大小的参数;
2.2)其次利用推导的方法预测当前时间t的冲突率E。
步骤3)、通过冲突率来预测当前时刻的可能的冲突情况,并决定采用乐观或悲观的并发控制方法;
具体方法如下:
3.1)将预测得到的冲突率E用来决策时,需要为E指定阈值σ,阈值σ作为一个标准值需要设置得当,如果σ太大或者太小,决策便会接近纯乐观或者纯悲观状态;
3.2)若E≥σ,即冲突率较高时,则需要采用悲观的并发控制策略进行处理,反之,采用乐观的并发控制策略进行处理;
3.3)基于动态决策的并发控制方法要经历以下步骤:开始→取过去N分钟得到样本→计算回归系数k→预测冲突率E→与阈值比较→决策出并发策略→结束,将预测的冲突率E与指定阈值比较并决策,选择出适合的并发控制策略。
步骤4)、根据所选的并发控制方法,将并发执行智能合约分为两个阶段:并发阶段与串行阶段;
具体方法如下:
4.1)对于每一个块内的事务,将执行分为两个阶段,即并发阶段与串行阶段;
4.2)在并发阶段,虚拟机从块中选择事务并发执行,若事务发生冲突,则回滚事务,并将它延迟到第二阶段;
4.3)在完成一个事务后会选择下一个事务,直到选择完当前块内的所有事务;
4.4)将无法并发执行的事务在串行阶段顺序执行。
步骤5)、根据步骤4)中虚拟机线程数、冲突操作数量以及冲突率影响因素来设置单个或多个并发阶段,对区块链平台以及跨区块链平台交易触发的智能合约并发执行。
具体方法如下:
5.1)默认在事务执行时只使用一个并发阶段和一个串行阶段;
5.2)若冲突操作数量过多导致冲突率过高时,根据实际情况设置多个并发阶段,使后面的并发阶段获得足够的额外加速;
5.3)为事务的执行设置合适数量的并发阶段和串行阶段,以实现所有潜在的并发。
实例说明:
步骤1)、针对区块链平台以及跨区块链平台交易数量的不断增加,基于动态分片方法对单个以及多个区块链平台进行周期性的分片预处理
1.1)节点数量信息获取:区块链系统通过路由功能来对网络内的节点进行连接通信,完成彼此间的联系并传播信息,并通过“节点发现协议”来对节点的数量信息进行采集;
1.2)分片预处理:对获取到的节点数量采取合适的分片策略,可以使用具有高吞吐量的ELASTICO分片策略;
1.3)节点数量实时监测:使用“节点发现协议”实时监测区块链平台上节点数量的动态变化;
1.4)周期性分片处理:当节点数量动态变化比较大时,及时的调整分片,缩短或延长周期;
1.5)使用全局存储器来保存分片信息。
步骤2)、基于动态决策的多版本并发控制方法,在每个片区上,对获得记账权的矿工节点已发布区块内的交易的冲突率进行计算
2.1)首先采用线性回归预测方法计算过去N分钟(N=12分钟)样本的冲突率E的回归系数k(k=0.4),冲突率E指的是某一区块内的交易在执行时发生冲突的概率,回归系数k指的是过去N分钟时间里的交易,对冲突率E影响大小的参数;
2.2)其次利用推导的方法预测当前时间t的冲突率E。
步骤3)、通过冲突率来预测当前时刻的可能的冲突情况,并决定采用乐观或悲观的并发控制方法
3.1)将预测得到的冲突率E用来决策时,需要为E指定阈值σ(σ=5),阈值σ作为一个标准值需要设置得当,如果σ太大或者太小,决策便会接近纯乐观或者纯悲观状态;
3.2)若E≥5,即冲突率较高时,则需要采用悲观的并发控制策略进行处理,若E<5,即冲突率较低时,则需要采用乐观的并发控制策略进行处理;
3.3)基于动态决策的并发控制方法要经历以下步骤:开始→取过去N分钟得到样本→计算回归系数k→预测冲突率E→与阈值比较→决策出并发策略→结束,将预测的冲突率E与指定阈值比较并决策,选择出适合的并发控制策略。
步骤4)、根据所选的并发控制方法,将并发执行智能合约分为两个阶段:并发阶段与串行阶段
4.1)对于每一个块内的事务,将执行分为两个阶段,即并发阶段与串行阶段;
4.2)在并发阶段,虚拟机从块中选择事务并发执行,若事务发生冲突,则回滚事务,并将它延迟到第二阶段,即若出现T1、T2、T3三个事务并发执行,但T1与T2发生冲突,则可以将T2延迟到第二阶段,即串行阶段;
4.3)在完成一个事务后会选择下一个事务,直到选择完当前块内的所有事务;
4.4)在选择完当前块内所有事务后,若仍留有T2、T4、T5无法在第一阶段并发执行,则他们将在串行阶段顺序执行。
步骤5)、根据步骤4)中虚拟机线程数、冲突操作数量以及冲突率影响因素来设置单个或多个并发阶段,对区块链平台以及跨区块链平台交易触发的智能合约并发执行
5.1)默认在事务执行时只使用一个并发阶段和一个串行阶段;
5.2)若冲突操作数量过多导致冲突率过高时,根据实际情况可以设置两个并发阶段,设置太多并发阶段反而会使效率下降,这是因为事务在多个并发阶段回滚所执行的重复工作造成的;
5.3)为事务的执行设置合适数量的并发阶段和串行阶段,以实现所有潜在的并发。
Claims (5)
1.基于动态决策的智能合约实现方法,其特征在于:其步骤为:
步骤1)、针对区块链平台以及跨区块链平台交易数量的不断增加,基于动态分片方法对单个以及多个区块链平台进行周期性的分片预处理;
步骤2)、基于动态决策的多版本并发控制方法,在每个片区上,对获得记账权的矿工节点已发布区块内的交易的冲突率E进行计算;冲突率E指的是某一区块内的交易在执行时发生冲突的概率;
步骤3)、通过冲突率E来预测当前时刻的可能的冲突情况,并决定采用乐观或悲观的并发控制方法;
3.1)将预测得到的冲突率E用来决策时,需要为E指定阈值σ,阈值σ作为一个标准值需要设置得当,如果σ太大或者太小,决策便会接近纯乐观或者纯悲观状态;
3.2)若E≥σ,即冲突率E较高时,则需要采用悲观的并发控制策略进行处理,反之,采用乐观的并发控制策略进行处理;
3.3)基于动态决策的并发控制方法要经历以下步骤:开始→取过去N分钟得到的样本→计算回归系数k→预测冲突率E→与阈值比较→决策出并发策略→结束,将预测的冲突率E与指定阈值比较并决策,选择出适合的并发控制策略;
步骤4)、根据所选的并发控制方法,将并发执行智能合约分为两个阶段:并发阶段与串行阶段;
步骤5)、根据步骤4)中虚拟机线程数、冲突操作数量以及冲突率E影响因素来设置单个或多个并发阶段,对区块链平台以及跨区块链平台交易触发的智能合约并发执行。
2.根据权利要求1所述的基于动态决策的智能合约实现方法,其特征在于:所述的步骤1)中,具体方法如下:
1.1)节点数量信息获取:区块链系统通过路由功能来对网络内的节点进行连接通信,完成彼此间的联系并传播信息,并通过节点发现协议来对节点的数量信息进行采集;
1.2)分片预处理:对获取到的节点数量采取合适的分片策略;
1.3)节点数量实时监测:使用节点发现协议实时监测区块链平台上节点数量的动态变化;
1.4)周期性分片处理:当节点数量动态变化比较大时,及时的调整分片,缩短或延长周期;
1.5)使用全局存储器来保存分片信息。
3.根据权利要求1所述的基于动态决策的智能合约实现方法,其特征在于:所述的步骤2)中,具体方法如下:
2.1)首先采用线性回归预测方法计算过去N分钟样本的冲突率E的回归系数k,回归系数k指的是过去N分钟时间里的交易,对冲突率E影响大小的参数;
2.2)其次利用推导的方法预测当前时间t的冲突率E。
4.根据权利要求1所述的基于动态决策的智能合约实现方法,其特征在于:所述的步骤4)中,具体方法如下:
4.1)对于每一个块内的事务,将执行分为两个阶段,即并发阶段与串行阶段;
4.2)在并发阶段,虚拟机从块中选择事务并发执行,若事务发生冲突,则回滚事务,并将它延迟到第二阶段;
4.3)在完成一个事务后会选择下一个事务,直到选择完当前块内的所有事务;
4.4)将无法并发执行的事务在串行阶段顺序执行。
5.根据权利要求1所述的基于动态决策的智能合约实现方法,其特征在于:所述的步骤5)中,具体方法如下:
5.1)默认在事务执行时只使用一个并发阶段和一个串行阶段;
5.2)若冲突操作数量过多导致冲突率E过高时,根据实际情况设置多个并发阶段,使后面的并发阶段获得足够的额外加速;
5.3)为事务的执行设置合适数量的并发阶段和串行阶段,以实现所有潜在的并发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910531666.2A CN110276689B (zh) | 2019-06-19 | 2019-06-19 | 基于动态决策的智能合约实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910531666.2A CN110276689B (zh) | 2019-06-19 | 2019-06-19 | 基于动态决策的智能合约实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110276689A CN110276689A (zh) | 2019-09-24 |
CN110276689B true CN110276689B (zh) | 2023-05-02 |
Family
ID=67961041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910531666.2A Active CN110276689B (zh) | 2019-06-19 | 2019-06-19 | 基于动态决策的智能合约实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110276689B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111815455B (zh) * | 2020-09-04 | 2021-02-26 | 支付宝(杭州)信息技术有限公司 | 一种交易执行方法、系统及装置 |
CN112508700A (zh) * | 2020-11-25 | 2021-03-16 | 北京电力交易中心有限公司 | 一种交易处理的调度方法、装置、计算机设备及存储介质 |
CN113434522B (zh) * | 2021-05-08 | 2023-06-09 | 华东师范大学 | 一种面向联盟链的状态树上的并行更新方法及更新系统 |
CN113628049B (zh) * | 2021-07-21 | 2024-04-30 | 三峡大学 | 一种基于群体智能的区块链智能合约的冲突裁决方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10250708B1 (en) * | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417217B2 (en) * | 2016-08-05 | 2019-09-17 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
CN109685488A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 转账交易分片处理方法、设备和存储介质 |
-
2019
- 2019-06-19 CN CN201910531666.2A patent/CN110276689B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10250708B1 (en) * | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
Also Published As
Publication number | Publication date |
---|---|
CN110276689A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110276689B (zh) | 基于动态决策的智能合约实现方法 | |
US10936359B2 (en) | Task resource scheduling method and apparatus | |
CN110290021B (zh) | 基于动态规划算法的跨链共识时延优化方法 | |
CN110348571B (zh) | 一种神经网络模型训练方法、装置、芯片和系统 | |
CN110135573B (zh) | 一种深度学习模型的训练方法、计算设备以及系统 | |
CN111724584B (zh) | 一种面向公交信号优先高频多申请的动态控制方法 | |
CN107391317A (zh) | 一种数据恢复的方法、装置、设备及计算机可读存储介质 | |
CN111294234B (zh) | 一种基于智能合约优化模型的并行区块链分片方法 | |
JPH0432940A (ja) | 分散データベース・システム | |
CN111130790B (zh) | 基于区块链节点网络的共识出块方法 | |
CN110233802B (zh) | 一种构建一主链多侧链的区块链架构的方法 | |
CN112862088A (zh) | 一种基于流水线环形参数通信的分布式深度学习方法 | |
CN110223174B (zh) | 区块交易记账方法和系统、数据处理终端、区块链系统 | |
CN107402851A (zh) | 一种数据恢复控制方法及装置 | |
CN103475742B (zh) | 云计算环境中主控节点确定的方法及系统 | |
CN112863166A (zh) | 基于坐标搜索的新增车次算法 | |
CN111209336A (zh) | 基于区块链的数据分配方法、装置及服务器 | |
CN116663639B (zh) | 一种梯度数据同步方法、系统、装置及介质 | |
CN107707395B (zh) | 一种数据传输方法、装置和系统 | |
CN109634979A (zh) | 数据更新方法及装置 | |
CN103645952B (zh) | 一种基于MapReduce的非精确任务并行处理方法 | |
CN111179580B (zh) | 一种勤务路线的评估方法及装置 | |
CN105827550B (zh) | 一种利用滑动窗确定目标参数的方法及装置 | |
Fu et al. | Approximate distributed discrete event simulation using semi-conservative look-ahead estimation | |
CN110874270B (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 |