1.一种基于raft算法的区块链共识方法,其特征在于,具体包括以下步骤:
步骤s1:将区块链中的节点分为管理节点与成员节点,所述成员节点的状态包括跟随者、候选者或领导者,所述管理节点的状态包括跟随者、候选者、领导者或管理者;
步骤s2:所述管理节点初始的状态不为管理者,所有管理节点与成员节点基于常规raft算法进行领导者的选举,由选举出来的状态为领导者的节点负责记录交易事件并生成交易区块;
步骤s3:当所述管理节点的状态从不为管理者转换为管理者时,发送周期性心跳通知广播,收到所述周期性心跳通知广播的成员节点将状态转换为跟随者,状态为管理者的管理节点接管记录交易事件并生成交易区块,并通过周期性心跳广播更新区块链的状态信息;
步骤s4:当所述管理节点退出管理者的状态时,相应状态切换为跟随者,管理节点停止发送周期性心跳通知广播,不再收到周期性心跳通知广播的成员节点的状态从跟随者转换为候选者,转至步骤s2。
2.根据权利要求1所述的一种基于raft算法的区块链共识方法,其特征在于,所述管理节点与成员节点的分类方法为根据节点类型、节点名称、ip地址和端口号进行标识,通过节点名称、ip地址和端口号分为管理节点与成员节点。
3.根据权利要求1所述的一种基于raft算法的区块链共识方法,其特征在于,所述管理节点与成员节点的分类方法为根据节点类型、节点名称、ip地址、端口号和公钥密码进行标识,通过节点名称、ip地址、端口号、基于私钥的签名分为管理节点与成员节点。
4.根据权利要求1所述的一种基于raft算法的区块链共识方法,其特征在于,所述管理节点的数量为1个或多个。
5.根据权利要求4所述的一种基于raft算法的区块链共识方法,其特征在于,所述同一时刻内最多只能有一个管理节点的状态转换为管理者。
6.根据权利要求1所述的一种基于raft算法的区块链共识方法,其特征在于,所述步骤s3中周期性心跳广播更新的区块链的状态信息包括管理节点的设置、成员节点的增加与删除、成员节点在raft常规算法中的状态、指定raft常规算法中的下一个领导者。
7.根据权利要求6所述的一种基于raft算法的区块链共识方法,其特征在于,所述步骤s3中周期性心跳广播更新的区块链的状态信息还包括区块链的更新和区块链的清零。
8.根据权利要求1所述的一种基于raft算法的区块链共识方法,其特征在于,所述成员节点内设有定时器,步骤s4中成员节点在每次收到周期性心跳通知广播时,清零定时器并开始计时,当定时器的记录时间大于广播间隔阈值时,成员节点的状态从跟随者转换为候选者。
9.一种使用基于raft算法的区块链共识方法的装置,其特征在于,包括存储器和处理器,所述以计算机程序的形式存储于所述存储器中,并由所述处理器执行,执行时实现以下步骤:
步骤s1:将区块链中的节点分为管理节点与成员节点,所述成员节点的状态包括跟随者、候选者或领导者,所述管理节点的状态包括跟随者、候选者、领导者或管理者;
步骤s2:所述管理节点初始的状态不为管理者,所有管理节点与成员节点基于常规raft算法进行领导者的选举,由选举出来的状态为领导者的节点负责记录交易事件并生成交易区块;
步骤s3:当所述管理节点的状态从不为管理者转换为管理者时,发送周期性心跳通知广播,收到所述周期性心跳通知广播的成员节点将状态转换为跟随者,状态为管理者的管理节点接管记录交易事件并生成交易区块,并通过周期性心跳广播更新区块链的状态信息;
步骤s4:当所述管理节点退出管理者的状态时,相应状态切换为跟随者,管理节点停止发送周期性心跳通知广播,不再收到周期性心跳通知广播的成员节点的状态从跟随者转换为候选者,转至步骤s2。
10.根据权利要求9所述的一种使用基于raft算法的区块链共识方法的装置,其特征在于,所述管理节点的数量为1个或多个,同一时刻内最多只能有一个管理节点的状态转换为管理者。