1.一种基于信誉与投票机制的改进PBFT共识方法,其特征在于,包括以下步骤:对节点进行状态划分,即根据节点的信誉值从高到低将节点分为可信节点、正常节点、异常节点、不可信节点以及无效节点5个状态,另外设置一个与信誉值无关的状态为审查节点,若可信节点未产生有效区块,其状态转换为审查节点;若正常节点多次产生有效节点,且其信誉值达到可信节点的区间,则该正常节点转换为可信节点;若正常节点未产生有效区块,则状态转换为审查节点;若异常节点多次产生有效区块且信誉值达到正常节点的阈值,则转换为正常节点;若异常节点故障或作恶,其状态转换为不可信节点;若不可信节点多次产生有效区块且其信誉值达到异常节点的阈值,则状态转换为异常节点;若不可信节点故障或作恶,则状态转换为无效节点;若审查节点故障,且其信誉值处于可信节点的区间,则状态装换为异常节点;若审查节点作恶,或者审查节点故障且其信誉值未处于信誉节点的区间,则其状态转换为异常节点,节点信誉值设置为[0,K),系统刚运行时所有节点的初始信誉值均为K1,如果节点成功产生有效区块,系统会奖励k点信誉值;可信节点的信誉值为[K2‑150),正常节点的信誉值为[K1‑K2),异常节点的信誉值为[K3‑K1),不可信节点的信誉值为[K4‑K3),无效节点的信誉值为0;K2、K1、K3、K4分别为可信节点、正常节点、异常节点、不可信节点的阈值;可信节点、正常节点具有参与主节点选举的权限;可信节点、正常节点、异常节点具有参与选举主节点时投票的权限;可信节点、正常节点、异常节点、不可信节点具有参与共识过程的权限;根据投票计算选举出主节点的过程包括:其中,Scoren为参与选举的节点的得分;creditn是参选节点n的信誉值,creditk是投票节点k的信誉值,votek是k节点投票的投票情况,支持、反对和弃权分别对应1、‑1和0;K是信誉值的最大值,N是参与投票的节点数量;λ和μ为权重比例,λ+μ=1;
根据节点在共识过程的表现进行节点状态的转换;
根据节点的状态进行权限分配,具有参选权限的节点可参与主节点选举,并根据投票计算选举出主节点;
主节点接收客户端发送的请求,广播该请求给备份节点,开始共识过程;;
共识过程中,如果主节点故障或作恶,根据主节点异常情况进行视图切换。
2.根据权利要求1所述的一种基于信誉与投票机制的改进PBFT共识方法,其特征在于,当可信节点参加选举主节点时,λ为0.65、μ为0.35;当正常节点参加选举主节点时,λ为
0.45、μ为0.55。
3.根据权利要求1所述的一种基于信誉与投票机制的改进PBFT共识方法,其特征在于,共识过程包括:
主节点广播一致性提案消息;
备份节点接收一致性提案消息,判断主节点是否故障或者作恶,若主节点故障或作恶,则根据主节点异常情况进行视图切换;
否则备份节点广播一致性确认消息;
若主节点在规定时间内收到备份节点广播的2f个有效的一致性确认消息,则达成共识,其他节点执行主节点的请求消息,发布区块;否则执行视图切换过程;
其中,f是最大可容忍的拜占庭节点数。
4.根据权利要求1所述的一种基于信誉与投票机制的改进PBFT共识方法,其特征在于,进行视图切换的过程包括:
当主节点响应超时,重新选择主节点,新的主节点向备份节点广播new‑view消息,并且视图编号加1,新的主节点执行上一个视图未完成的操作;
当主节点响应未超时,若备份节点认为主节点作恶,该备份节点向其他备份节点广播view‑change事件,若收到2f个不同备份节点的视图编号为v+1的view‑change事件则选择新的主节点,新的主节点向备份节点广播new‑view消息,并且视图编号加1,新的主节点执行上一个视图未完成的操作。