1.基于动态决策的智能合约实现方法,其特征在于:其步骤为:步骤1)、针对区块链平台以及跨区块链平台交易数量的不断增加,基于动态分片方法对单个以及多个区块链平台进行周期性的分片预处理;
步骤2)、基于动态决策的多版本并发控制方法,在每个片区上,对获得记账权的矿工节点已发布区块内的交易的冲突率进行计算;
步骤3)、通过冲突率来预测当前时刻的可能的冲突情况,并决定采用乐观或悲观的并发控制方法;
3.1)将预测得到的冲突率E用来决策时,需要为E指定阈值σ,阈值σ作为一个标准值需要设置得当,如果σ太大或者太小,决策便会接近纯乐观或者纯悲观状态;
3.2)若E≥σ,即冲突率较高时,则需要采用悲观的并发控制策略进行处理,反之,采用乐观的并发控制策略进行处理;
3.3)基于动态决策的并发控制方法要经历以下步骤:开始→取过去N分钟得到样本→计算回归系数k→预测冲突率E→与阈值比较→决策出并发策略→结束,将预测的冲突率E与指定阈值比较并决策,选择出适合的并发控制策略;
步骤4)、根据所选的并发控制方法,将并发执行智能合约分为两个阶段:并发阶段与串行阶段;
步骤5)、根据步骤4)中虚拟机线程数、冲突操作数量以及冲突率影响因素来设置单个或多个并发阶段,对区块链平台以及跨区块链平台交易触发的智能合约并发执行。
2.根据权利要求1所述的基于动态决策的智能合约实现方法,其特征在于:所述的步骤
1)中,具体方法如下:
1.1)节点数量信息获取:区块链系统通过路由功能来对网络内的节点进行连接通信,完成彼此间的联系并传播信息,并通过“节点发现协议”来对节点的数量信息进行采集;
1.2)分片预处理:对获取到的节点数量采取合适的分片策略;
1.3)节点数量实时监测:使用“节点发现协议”实时监测区块链平台上节点数量的动态变化;
1.4)周期性分片处理:当节点数量动态变化比较大时,及时的调整分片,缩短或延长周期;
1.5)使用全局存储器来保存分片信息。
3.根据权利要求1所述的基于动态决策的智能合约实现方法,其特征在于:所述的步骤
2)中,具体方法如下:
2.1)首先采用线性回归预测方法计算过去N分钟样本的冲突率E的回归系数k,冲突率E指的是某一区块内的交易在执行时发生冲突的概率,回归系数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)若冲突操作数量过多导致冲突率过高时,根据实际情况设置多个并发阶段,使后面的并发阶段获得足够的额外加速;
5.3)为事务的执行设置合适数量的并发阶段和串行阶段,以实现所有潜在的并发。