1.一种基于区块链的工业物联网容错时间同步方法,其特征在于,包括:获取工业物联网的簇节点;所述簇节点包括:簇头节点和簇内节点;
簇头节点周期性广播时间同步包;簇内节点接收簇头节点广播时间同步包,并记录数据:簇内节点自身时间、簇头节点广播时间;
采用最小二乘法,构建簇节点时钟模型;
根据簇节点时钟模型,预测簇节点时间;并在簇节点同步前计算簇头节点广播时间与簇头节点预测时间的偏差,当偏差小于阈值时,簇节点正常进行时间同步,否则,簇节点通过广播方式发起共识请求;
当簇内节点收到共识请求广播包后,组成一个区块链;并通过发起共识请求、广播自身时间、公布结果与达成共识四个阶段共识正确的时间同步信息,若一致认为簇头广播时间异常,则判定簇头发生了故障或被攻击,其包括:当共识结果同意簇头节点广播时间正确时,簇节点正常进行时间同步;
否则,簇内其它节点接收发起簇内节点的广播请求包,解析出时间信息后进行对比分析,根据时钟模型判断出时间信息是否异常,若判断异常,将广播带有身份签名的自身时间信息与异常指示位;
共识请求发起簇节点接收簇内其它节点广播时间信息后进行信息提取,包括:簇内节点身份标识和异常指示位信息,当簇内节点数为3f+1时,存在2f+1节点发送了异常指示位时,则共识结果认为簇头节点发生故障或被攻击,同时公布簇内所有簇节点身份标识、异常指示位信息和共识结果;
否则,正常进行时间同步;
簇内其它节点验证公布信息的真伪,并达成最终共识。
2.如权利要求1所述的基于区块链的工业物联网容错时间同步方法,其特征在于,所述采用最小二乘法,构建簇节点时钟模型,具体包括:所述簇节点时钟模型,满足线性函数:C(t)=αt+β
其中,α表示簇节点时间与真实时间之间的偏差率,β表示起始时间偏差;且采用基于密度的聚类算法剔除记录数据中异常数据,采用最小二乘法计算出簇节点时间与真实时间之间的偏差率α和起始时间偏差β。
3.如权利要求1所述的基于区块链的工业物联网容错时间同步方法,其特征在于,所述阈值的确定,包括:
参考晶振手册中实际测量最大时钟偏移率,结合同步周期,确定阈值。
4.如权利要求1所述的基于区块链的工业物联网容错时间同步方法,其特征在于,还包括:
当簇内节点共识结果认为当前簇头节点发生故障或被攻击时,簇内节点将簇头节点身份标识放入黑名单,并过滤来自簇头节点广播时间包。
5.一种基于区块链的工业物联网容错时间同步系统,其特征在于,包括:簇节点获取模块,用于获取工业物联网的簇节点;所述簇节点包括:簇头节点和簇内节点;
时间同步信息收集模块,用于簇头节点周期性广播时间同步包;簇内节点接收簇头节点广播时间同步包,并记录数据:簇内节点自身时间、簇头节点广播时间;
时钟模型构建模块,用于采用最小二乘法,构建簇节点时钟模型;
时间同步异常分析模块,用于根据簇节点时钟模型,预测簇节点时间;并在簇节点同步前计算簇头节点广播时间与簇头节点预测时间的偏差,当偏差小于阈值时,簇节点正常进行时间同步,否则,簇节点通过广播方式发起共识请求;
时间同步信息共享模块,用于当簇内节点收到共识请求广播包后,组成一个区块链;并通过发起共识请求、广播自身时间、公布结果与达成共识四个阶段共识正确的时间同步信息,若一致认为簇头广播时间异常,则判定簇头发生了故障或被攻击,其用于:当共识结果同意簇头节点广播时间正确时,簇节点正常进行时间同步;
否则,簇内其它节点接收发起簇内节点的广播请求包,解析出时间信息后进行对比分析,根据时钟模型判断出时间信息是否异常,若判断异常,将广播带有身份签名的自身时间信息与异常指示位;
共识请求发起簇节点接收簇内其它节点广播时间信息后进行信息提取,包括:簇内节点身份标识和异常指示位信息,当簇内节点数为3f+1时,存在2f+1节点发送了异常指示位时,则共识结果认为簇头节点发生故障或被攻击,同时公布簇内所有簇节点身份标识、异常指示位信息和共识结果;
否则,正常进行时间同步;
簇内其它节点验证公布信息的真伪,并达成最终共识。
6.如权利要求5所述的基于区块链的工业物联网容错时间同步系统,其特征在于,所述时钟模型构建模块,具体用于:
所述簇节点时钟模型,满足线性函数:C(t)=αt+β
其中,α表示簇节点时间与真实时间之间的偏差率,β表示起始时间偏差;且采用基于密度的聚类算法剔除记录数据中异常数据,采用最小二乘法计算出簇节点时间与真实时间之间的偏差率α和起始时间偏差β。
7.如权利要求5所述的基于区块链的工业物联网容错时间同步系统,其特征在于,所述时间同步异常分析模块包括:阈值确定单元;
所述阈值确定单元,用于参考晶振手册中实际测量最大时钟偏移率,结合同步周期,确定阈值。
8.如权利要求5所述的基于区块链的工业物联网容错时间同步系统,其特征在于,还包括:
过滤模块,用于当簇内节点共识结果认为当前簇头节点发生故障或被攻击时,簇内节点将簇头节点身份标识放入黑名单,并过滤来自簇头节点广播时间包。