一种基于交易量预测的区块链系统分层协同调度优化方法

文档序号:38677653发布日期:2024-07-16 22:26阅读:16来源:国知局
一种基于交易量预测的区块链系统分层协同调度优化方法

本发明涉及区块链,尤其涉及一种基于交易量预测的区块链系统分层协同调度优化方法。


背景技术:

1、由于区块链系统在无信任的环境下以共识为目标,相比于传统的中心化系统,吞吐量低且延迟较高。区块链的低性能始终被人诟病,对于提高区块链性能的研究是十分必要的。提高区块链系统的吞吐量和响应速度一直都是一项具有挑战性的任务。随着区块链系统越来越多地部署在容器中,如何管理集群中的这些容器,合理分配集群资源以提高区块链系统的性能是需要研究的问题。

2、区块链系统性能优化领域的研究较多,这些研究专注于共识机制和智能合约,通常都只聚焦于一个方面,如交易执行模型的重建(如fabricsharp和fabric++通过对交易的重排序以解决交易间读冲突的问题)、控制参数优化和智能合约优化等。而整合各个层次的协同优化方案的策略还是缺失的。

3、现有的关于容器资源管理的研究有kubernetes默认调度策略,基于阈值的调度策略和基于多目标优化的调度策略。kubernetes是目前广泛使用的容器管理工具,kubernetes默认调度策略,通过节点评估选择最适合当前服务部署的节点。调度器通过kubernetes的监测(watch)机制来发现集群中新创建且尚未被调度到节点上的pod。调度器会将所发现的每一个未调度的pod调度到一个合适的节点上来运行。调度器会依据下文的调度原则来做出调度选择,但在多服务场景未能考虑集群资源状况。

4、常用的调度策略有还基于阈值的调度策略和基于多目标优化的调度策略,基于阈值的调度策略结合集群的实际部署场景和任务需求,手动设置相关阈值参数,在原有调度策略的基础上进行简单的策略优化。这种方法最重要的优点是它的简单性和方便性。这种策略虽然能在一定程度上优化和改善集群资源分配,但对于资源需求变化突然频繁的交易,却未能达到预期的效果。在遇到响应时间敏感的交易时无法及时或提前响应,对区块链系统性能造成一定影响。并且资源类型多种多样,待确定的阈值也较多,增加了操作和维护的工作量。

5、基于多目标优化的调度策略,多目标优化调度在决定如何在集群中的节点上分配资源和调度容器时考虑了多个目标或准则。这种方法在复杂的分布式系统中特别有用,其中存在多个竞争目标,需要平衡以实现最佳的整体性能。在多目标优化调度方法中,调度器同时考虑多个目标,例如最小化响应时间,最大化资源利用率和降低能耗。调度器使用优化算法来找到平衡这些目标的最佳解决方案。常用的多目标优化算法有遗传算法、粒子群优化和蚁群优化。粒子群算法和遗传算法在调度过程中经常出现局部解,在解决调度问题时,通常会导致集群负载波动较大等问题,通常需要结合其他算法进行优化。

6、综上所述,现有的技术方案主要存在以下缺陷:

7、(1)现有对区块链性能优化的研究通常都只聚焦于一个层级,交易执行模型优化、智能合约优化和单一参数优化,而一个整合各个层级的优化策略是缺失的。

8、(2)基于简单阈值的调整策略,针对区块链系统中交易量变化突然频繁的情况,在遇到响应时间敏感的交易时无法及时或提前响应,存在滞后性的特点,对区块链系统的整体造成一定影响。

9、(3)kubernetes原生调度策略中的默认评分函数仅利用cpu和内存利用率两种资源的差值,忽略了集群中其他资源性能指标对于调度任务的影响,并且在资源对象请求申请资源时,只是按照资源请求量决定进行调度的优先级顺序,不考虑当前集群环境中的资源实际情况,缺少合理分配资源的灵活性。

10、(4)基于简单阈值的调度策略对于资源需求变化突然频繁的任务,却未能达到预期的效果。而且,随着任务类型的增加,待确定的阈值也增加,这增加了操作和维护的工作量。

11、(5)资源调度是一个np(non-deterministic polynomial,非确定性多项式)hard类型的问题。现有的多目标优化方法经常会陷入局部优化,很难达到全局优化,优化效果较差。


技术实现思路

1、针对现有技术的不足,本发明提供一种基于交易量预测的区块链系统分层协同调度优化方法,以解决由于区块链是一种去中心化的分布式数据库,在无信任的环境下以共识为目标,使得整个区块链系统在处理交易和数据时的相对低速度和吞吐量,可能会对区块链系统的实际应用造成一些限制和挑战的问题。

2、本发明的技术方案为:

3、一种基于交易量预测的区块链系统分层协同调度优化方法,包括以下步骤:

4、步骤1:在区块链系统中增加区块链系统的性能指标、交易信息指标和区块链系统部署在容器中所使用的资源情况指标,实时收集区块链系统的性能指标和交易信息指标,将交易信息指标存储到时序数据库influxdb,使用前端可视化技术对交易信息指标中的提交的交易数量、区块链的区块高度进行可视化;

5、所述区块链系统的性能指标包括区块链的吞吐量和延迟;所述交易信息指标包括区块链交易发送率、区块链交易接收率、提交的交易数量和区块链的区块高度;所述区块链系统部署在容器中所使用的资源情况指标包括cpu使用量、内存使用量和网络传输带宽;

6、步骤2:使用负载测试工具对区块链系统进行装载测试,然后使用采集区块链系统的交易发送量数据并存储到时序数据库influxdb中;所述交易发送量数据为客户端发送到区块链系统中的交易的数据量;

7、步骤3:利用时间序列预测模型对交易发送量数据进行预测,得到预测的区块链系统的交易发送量数据;所述时间序列预测模型为lstm长短期记忆网络模型;

8、步骤3.1:对时序数据库influxdb中的交易发送量数据进行数据清洗,得到清洗后的交易发送量数据;

9、步骤3.2:将清洗后的交易发送量数据按照时间顺序划分为训练序列和测试序列;具体的,对于每个交易发送量数据,设置划分时间点,将划分时间点前的设定长度的交易发送量数据作为训练序列,将划分时间点后的设定长度的交易发送量数据作为测试序列;

10、步骤3.3:对训练序列和测试序列进行归一化处理,得到归一化后的训练序列和测试序列;

11、步骤3.4:利用归一化后的训练序列对lstm长短期记忆网络模型进行训练,在训练过程中,通过反向传播算法不断调整模型的参数,得到训练完成的lstm长短期记忆网络模型;

12、步骤3.5:使用归一化后的测试序列对训练完成的lstm长短期记忆网络模型进行验证,将归一化后的测试序列中的划分时间点前的设定长度的交易发送量数据输入到lstm长短期记忆网络模型中,得到对划分时间点后的设定长度的交易发送量数据的预测结果,使用评估指标mse和r2分数评估lstm长短期记忆网络模型的预测性能,根据评估结果调整模型的参数,得到最终的lstm长短期记忆网络模型;

13、步骤3.6:获取当前时刻前设定长度的交易发送量数据并利用最终的lstm长短期记忆网络模型预测当前时刻后的设定长度的交易发送量数据;

14、步骤4:通过控制变量的方法对区块链系统进行实验测试,确定区块大小的阈值和区块链交易接收率的阈值,并根据预测的交易发送量数据调整交易接收率和区块大小使得区块链系统整体性能达到最优;

15、步骤4.1:每次改变一个变量,通过控制变量的方法对区块链系统进行多轮次的实验测试观察变量应用到区块链系统后的性能表现,将最优性能所对应的区块大小和区块链交易接收率配置为区块大小的阈值和交易接收率的阈值;所述变量包括区块大小和区块链交易接收率;所述区块链系统整体性能达到最优的标准为:衡量系统性能的指标power最大,区块链系统整体性能达到最优;

16、根据区块链系统的性能指标,计算衡量系统性能的指标power的方法为:

17、

18、其中,throughput是区块链系统的吞吐量,a为任意一个大于1的常数,responsetime是交易的平均延迟;power为衡量系统性能的指标;

19、步骤4.2:根据预测的交易发送量数据、配置的区块大小的阈值和区块链交易接收率的阈值调整区块大小和区块链交易接收率,使得区块链系统整体性能达到最优;

20、调整区块大小和区块链交易接收率的方法具体为:当满足公式(2)时,调高交易的接收率;当满足公式(3)时,进行区块大小的调整;

21、if(trd≥rt1)  (2)

22、

23、其中,trd为是特定时间间隔内的交易发送率,tr是客户端发送交易的平均速率;txmax是区块链系统可接收的一笔交易的最大尺寸;rt1是配置的区块链交易接收率的阈值;bsize是配置的区块大小的阈值;

24、步骤5:将系统整体性能最优的区块链系统部署到容器中,每一个区块链节点对应一个容器,构建区块链系统的docker容器镜像并使用kubernetes进行容器编排和容器资源调度。

25、步骤5.1:将区块链系统部署到容器中;

26、步骤5.2:收集每一个容器的区块链系统部署在容器中所使用的资源情况指标,利用heapster将收集的区块链系统部署在容器中所使用的资源情况指标进行汇总,然后导到第三方工具中,使用前端可视化技术对区块链系统部署在容器中所使用的资源情况指标进行可视化;

27、步骤5.3:区块链系统的资源需求多样且动态变化,根据监测到的区块链系统部署在容器中所使用的资源情况指标,使用多目标优化算法中的蚁群算法进行资源的调度优化,针对区块链系统中各个节点对于cpu、内存和网络资源不同的需求做出不同的调度安排;

28、步骤5.3.1:根据区块链系统节点与节点之间的约束信息以及kubernetes集群中主机可用资源信息,构建调度问题求解模型;所述kubernetes集群中包括若干个主机;

29、所述调度问题求解模型为:

30、aik∈{0,1}  (4)

31、

32、

33、

34、

35、

36、其中,a为具有二元值的分配矩阵,aik为分配矩阵中的矩阵元素,如果第i个容器分配到了第k个集群主机上,那么aik=1,否则aik=0,如公式(4)所示;i为容器的编号,k表示集群中主机的编号;m为集群中主机的数量;n为容器的数量;j表示不等于i的容器的编号;为容器的资源需求,h表特定的资源类型,包含cpu、内存和网络,h表示资源类型的集合;表示主机可利用的资源;

37、步骤5.3.2:将区块链系统容器的资源需求信息即区块链系统部署在容器中所使用的资源情况指标、kubernetes集群中主机可用资源信息、调度问题求解模型及约束条件输入到蚁群算法求解器中求解,得到解决方案;

38、步骤5.3.3:将蚁群算法求解器求得的解决方案输入到容器部署器中,生成kubernetes部署文件;

39、步骤5.3.4卸载正在运行中的容器,根据kubernetes部署文件将区块链系统容器重新调度到节点上,通过kubernetes集群管理工具观察容器的状态和节点的状态确保已经成功调度到节点上并正常运行,若正常运行则结束调度,否则重复步骤5.2.4直至成功调度到节点上并正常运行;

40、与现有技术相比较,本发明的有益效果为:

41、(1)本发明增加区块链系统的性能指标、交易量指标和资源使用情况指标为后续优化提供数据支持。实时监控和可视化关键指标和数据,可以实时观测系统的运行情况,并做出必要的调整。

42、(2)本发明采用基于交易量预测的动态优化方法应对变化突然频繁的交易以及动态调整的滞后性,使用动态调整的方法后,根据衡量系统整体性能的power公式可以得出,相较于单一参数优化,系统的整体性能有一定的提升。

43、(3)本发明采用基于蚁群算法的多目标调度优化方法应对容器资源使用情况的动态特性。蚁群算法相对于多目标优化优化算法中的粒子群算法和遗传算法,随着负载期望的变化来调整任务的目标节点,虽然算法复杂度较高,但可以保证负载相对均衡。区块链系统部署在容器中,由于部署区块链系统的主机资源有限,使用该方法后,可以满足区块链系统的任务需求也可以做到合理分配现有的资源,使资源利用率尽可能最大化。

44、综上所述,本发明提出的一种基于交易量预测的区块链系统分层协同调度优化方法可以提高区块链系统整体性能,扩展了区块链在生产生活中的应用场景,能够满足更多的应用需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1