一种基于动态选举的去中心化调度系统及共识算法

专利2025-04-04  31


本发明涉及区块链,尤其涉及一种基于动态选举的去中心化调度系统及共识算法。


背景技术:

1、常见的区块链结构,如比特币,维护一条单一的、细长的链式结构,具有严格的偏序关系,具有更高的防篡改特性。

2、但由于每个节点都会时刻产生相应的事件而发生状态变化,为了保证各节点状态记录更新的异步性,高性能去中心化系统的需求,我们采用block-lattice这种结构来记录各个节点的状态信息。规定每一个节点单独维护自己的状态链,对于每个节点来说,它的状态链是自己私有的。所有节点的状态链组合到一起,形成了dag结构。

3、但由于block-lattice结构中,每个节点各自维护自己的状态链,偏序关系较少,缺乏对全体节点状态统一的共识,这样就有被恶意篡改的风险,因此需要引入一种额外的链式结构—快照链,通过共识算法,对全局节点的当前状态进行快照,并将其记录在快照链上,利用区块链的防篡改特性来提高安全性。


技术实现思路

1、基于上述技术问题,本发明提出了一种基于动态选举的去中心化调度系统及共识算法,构建了一种特殊的节点状态链,记录了各个节点的状态信息;还设计了一种共识算法,确保系统对最终的各节点状态达成共识,形成快照链,具体技术方案如下。

2、第一方面,一种基于动态选举的去中心化调度系统,包括:

3、工作节点:维持与对工作节点进行管理的调度节点之间的心跳,接受该调度节点的任务调度,执行任务并将结果返回给该调度节点;

4、调度节点:与工作节点之间呈一对多的管理关系,通过对任务复杂度与其管理的工作节点资源的计算,将任务合理的调度给工作节点执行;

5、节点状态链:多条节点状态链对各个节点时刻产生相应的事件而发生状态变化的变化信息进行记录;

6、快照链:基于区块链的防篡改特性,通过共识算法,对全局节点的当前状态进行快照,并将其记录在快照链上。

7、具体地,所述节点状态链是一条给定事件集合和偏序关系所构成的严格偏序集,由所有节点的状态链组合到一起,形成dag结构;所述每条节点状态链区块结构包括区块头和区块体,所述区块头包括节点id、时间戳、区块高度、目标哈希、根哈希和区块大小数据,所述区块体包括任务事件。

8、具体地,所述快照链是一条通过共识协议生成并维护的区块链,由共识协议产生的主节点进行维护,采用增量存储的方式生成快照块,一个快照块只保存相比于前一个快照块发生变化的数据;系统中一个状态信息被快照链所快照,则称为该状态被确认;第一次快照该状态的快照块的深度,称为确认数;快照链每增长一个区块,此前所有已确认状态的确认数都增加1,恶意篡改攻击成功的概率随着快照链的不断增加而逐渐下降。

9、具体地,所述快照链区块结构包括区块头和区块区块体,所述区块头包括授权节点id、时段号、时间戳、目标哈希和状态数据的根哈希,所述区块体包括授权节点即将打包快照块时收集到的发生状态更新的各节点最新的状态数据。

10、另一方面,一种基于动态选举的去中心化调度系统共识算法,用于实现所述的一种基于动态选举的去中心化调度系统,所述共识算法选主流程包括以下步骤:

11、步骤s1:根据物理空间分布将网络中的节点划分为多个节点簇,每个簇内节点划分为工作节点和调度节点;

12、步骤s2:在一个簇内,所有调度节点组成竞选组,通过共识机制选出一个主节点,称为授权节点;簇初始化时,指定一个调度节点为授权节点;

13、步骤s3:授权节点选出后,开启计时器,设置时段,在时段内负责收集任务调度事件和任务执行事件,并对事件摘要打包成区块,共识上链;

14、步骤s4:在时段结束时,授权节点收集各个调度节点的资金余额和各自在本轮时段内的硬件资源使用情况,由授权节点计算得到资金分配后各节点的资金量,然后使资金最多的调度节点成为下一个时段的授权节点,并扣除该节点相应的资金;随后将各调度节点竞选后的资金量更新给各调度节点;

15、步骤s5:设置故障判断机制和故障处理机制,循环步骤s3~步骤s4。

16、具体地,所述步骤s3设置时段具体包括:

17、将连续的时间分为若干前后相接的时段,时段的开始和结束由授权节点控制;

18、当授权节点选出后,在节点内启动一个计时器,设置该时段的时间长度,在该时段内负责任务调度事件和任务执行事件的收集;

19、在该时段内,授权节创建快照块时,向其它调度节点发起请求,调度节点将自己的状态链上的最后一个状态块返回给授权节点,同时调度节点向自己管理的工作节点发起请求,得到各工作节点状态链上最后一个状态块,并转发给授权节点,由授权节点进行打包快照块并挂在快照链上;

20、倒计时结束时,表示该时段已结束,从其它调度节点中选出下一个时段的新的授权节点。

21、具体地,所述步骤s4节点竞选具体为:

22、在时段结束时,授权节点要求各调度节点提交各自的资金余额和各自在本轮时段内的硬件资源使用情况,由授权节点对收集到的硬件资源使用情况进行计算,得出各个调度节点应获得的资金分配额度和分配后各节点的资金量,资金分配比例计算式为:

23、

24、其中,x、y、z表示衡量硬件性能的指标:通信冗余、计算冗余、存储冗余;k用来调整硬件性能对资金分配的影响;p用来调整分配的幅度;

25、节点i分配到的资金为:m为资金总量;

26、资金最多的调度节点成为下一个时段的授权节点,该节点需要扣除比资金储备排名第二的竞选节点资金多1的资金量;

27、将各调度节点竞选后的资金量更新给各调度节点。

28、具体地,所述故障判断机制具体为:

29、每当授权节点收到来自其它调度节点的状态块时,都要返回“确认”给调度节点;

30、通过是否返回“确认”,调度节点可以检测授权节点是否发生故障;

31、若调度节点在等待“确认”的过程中发生超时,说明该消息可能丢失,或授权节点断联;此时要求调度节点再次发送事件摘要,如果重复发送三次超时,则该调度节点得出判断为:“授权节点断联”。

32、具体地,所述故障处理机制具体为:若调度节点a无法连接上该时段的授权节点x,则进行以下处理:

33、调度节点a向其它调度节点发出广播“a与x失联”;收到广播的调度节点b如果能连接上授权节点x,则向调度节点a回复“b可连接x”,反之则回复“b与x失联”;调度节点b收到调度节点a的广播时,会在本地记录“a与x失联”,视作对授权节点x作为授权节点的反对票,当调度节点b在本地记录中累计了一半以上的调度节点都在本时段中反对授权节点x,则调度节点b会主动通知其它调度节点放弃x,发起无主竞选;

34、调度节点a发出广播后,等待一段时间,根据收到的回复信息,判断此时网络中如果同样与授权节点x失联的调度节点未超过一半,则调度节点a选择一个可以连接上授权节点x的调度节点c,由调度节点c代为转发任务事件;若有一半以上的调度节点都与授权节点失联,则由这些调度节点联合签名,通知其余调度节点放弃当前授权节点x,重新发起一次无主竞选;

35、经过无主竞选后,确立新的授权节点,新的授权节点需要从链尾往前查找链上记录的各个调度节点所发送的最后一条状态块,然后分别要求各个调度节点重发它们各自在这之后的状态块,然后重新打包上链。

36、具体地,所述故障处理机制还包括:

37、当调度节点收到授权节点返回的“确认”时,向工作节点返回“确认”;若工作节点没有等到“确认”或超时,则重发该状态块,若三次超时,则确认与调度节点之间的心跳检测,检查调度节点是否故障,是否需要寻找替代的调度节点;找到新的调度节点后,重发之前未收到“确认”的对应状态块;

38、当调度节点a和授权节点x发生三次超时后,a仍然要每隔一段时间向x发起一次心跳检测;若a和x恢复连接,则a要向其它调度节点广播“a可以连接x”,更新各个调度节点的本地记录。

39、本发明的有益效果:本发明提出了一种基于动态选举的去中心化调度系统及共识算法,构建节点状态链记录各个节点的状态信息,通过共识算法,对全局节点的当前状态进行快照,并将其记录在快照链上,利用区块链的防篡改特性来提高安全性,提高多任务并发执行的性能和系统共识的吞吐量。提高多任务并发执行的性能和系统共识的吞吐量。该系统中的节点由工作节点和任务调度节点(以下称为“调度节点”)组成。调度节点与工作节点之间呈一对多的管理关系。其中,工作节点需要维持与对其进行管理的调度节点之间的心跳,接受该调度节点的任务调度,执行任务并将结果返回给该调度节点。调度节点具有更强的计算、存储、通信性能,可以通过对任务复杂度与其管理的工作节点资源的计算,将任务合理的调度给工作节点执行。


技术特征:

1.一种基于动态选举的去中心化调度系统,其特征在于,包括:

2.根据权利要求1所述的一种基于动态选举的去中心化调度系统,其特征在于,所述节点状态链是一条给定事件集合和偏序关系所构成的严格偏序集,由所有节点的状态链组合到一起,形成dag结构;所述每条节点状态链区块结构包括区块头和区块体,所述区块头包括节点id、时间戳、区块高度、目标哈希、根哈希和区块大小数据,所述区块体包括任务事件。

3.根据权利要求1所述的一种基于动态选举的去中心化调度系统,其特征在于,所述快照链是一条通过共识协议生成并维护的区块链,由共识协议产生的主节点进行维护,采用增量存储的方式生成快照块,一个快照块只保存相比于前一个快照块发生变化的数据;系统中一个状态信息被快照链所快照,则称为该状态被确认;第一次快照该状态的快照块的深度,称为确认数;快照链每增长一个区块,此前所有已确认状态的确认数都增加1,恶意篡改攻击成功的概率随着快照链的不断增加而逐渐下降。

4.根据权利要求3所述的一种基于动态选举的去中心化调度系统,其特征在于,所述快照链区块结构包括区块头和区块区块体,所述区块头包括授权节点id、时段号、时间戳、目标哈希和状态数据的根哈希,所述区块体包括授权节点即将打包快照块时收集到的发生状态更新的各节点最新的状态数据。

5.一种基于动态选举的去中心化调度系统共识算法,用于实现权利要求1~4任意一项所述的一种基于动态选举的去中心化调度系统,其特征在于,所述共识算法选主流程包括以下步骤:

6.根据权利要求5所述的一种基于动态选举的去中心化调度系统共识算法,其特征在于,所述步骤s3设置时段具体包括:

7.根据权利要求5所述的一种基于动态选举的去中心化调度系统共识算法,其特征在于,所述步骤s4节点竞选具体为:

8.根据权利要求5所述的一种基于动态选举的去中心化调度系统共识算法,其特征在于,所述故障判断机制具体为:

9.根据权利要求5所述的一种基于动态选举的去中心化调度系统共识算法,其特征在于,所述故障处理机制具体为:若调度节点a无法连接上该时段的授权节点x,则进行以下处理:

10.根据权利要求9所述的一种基于动态选举的去中心化调度系统共识算法,其特征在于,所述故障处理机制还包括:


技术总结
本发明公开了一种基于动态选举的去中心化调度系统及共识算法,系统包括:工作节点:维持与对工作节点进行管理的调度节点之间的心跳,接受该调度节点的任务调度,执行任务并将结果返回给该调度节点;调度节点:与工作节点之间呈一对多的管理关系,通过对任务复杂度与其管理的工作节点资源的计算,将任务合理的调度给工作节点执行;节点状态链:多条节点状态链对各个节点时刻产生相应的事件而发生状态变化的变化信息进行记录;快照链:基于区块链的防篡改特性,通过共识算法,对全局节点的当前状态进行快照,并将其记录在快照链上。本方案通过节点状态链和共识算法,提高安全性并提高多任务并发执行的性能和系统共识的吞吐量。

技术研发人员:林劼,徐洋,霍留伟,李志豪,邓裕沛
受保护的技术使用者:电子科技大学
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-23101.html