1.一种基于区块链的工业物联网节点共识方法,其特征在于,该方法包括适用于工业物联网的轻量级区块链中记账节点选举方法和区块确认方法;
所述记账节点选举方法具体包括以下步骤:S1:通过LEACH算法进行分层成簇;
S2:数据稳定传输阶段,通过转发率、丢包率和节点处理延迟综合评判节点行为,普通节点和簇头节点双向监督对方行为,簇头节点相互监督彼此行为;
数据稳定传输阶段,普通节点能直接向汇聚节点检举簇头节点的异常通信,每发现一次异常通信,将其节点的信用评分减1;
定义通信品质为:
Q=α*DT+(1‑FR)*α+β*Rs式中,Q表示通信品质,DT、FR、Rs分别表示工业物联网节点的处理延迟、转发率、丢包率,α、λ、β分别为工业物联网节点的处理延迟、转发率、丢包率所占的权值比重,设置一个阈值F,定义优质通信次数为Cs,失败通信次数为Cf,当Q<F时,Cs增加1,反之则Cf增加1;根据Beta分布,定义节点质量 若η小于一定阈值,则判断该节点为非正常节点,将其信用评分减1;
S3:区块链出块时间间隔内,汇聚节点通过簇头节点的信用评分进行从大到小排名生成候选节点域名单,选取前21个候选节点域,在每个节点域中考虑簇头节点管理的节点的剩余能量、节点信用评分和节点令牌数,推选出一个节点作为记账节点,选举出记账节点集合后,通过产生位于1‑21的随机数随机从21个记账节点中选取一个节点作为本轮共识的出块节点,最后将记账节点选举结果作为交易发布记录到区块链网络中;
所述区块确认方法具体包括以下步骤:S4:记账节点将收集的数据打包按时间戳排序放入区块,将区块发布给相邻普通节点,普通节点之间相互传递区块,普通节点验证区块的合法性,若合法则向汇聚节点回复“确认||区块ID||确认节点ID”报文;
S5:若汇聚节点收到超过普通节点总数2/3的回复报文,则汇聚节点单独验证该区块的合法性,若区块通过汇聚节点的验证,则汇聚节点向全网广播“接收区块+区块ID”报文;
S6:各个节点将汇聚节点向全网广播的报文记录到本地日志中,记账节点集合中的节点将该区块连接到区块链中。
2.根据权利要求1所述的一种基于区块链的工业物联网节点共识方法,其特征在于,所述步骤S1具体包括:
S11:随机选取总节点的5%个节点作为临时簇头,其余的节点按照距离簇头的距离选择最近的簇头加入;
S12:初始的分簇完成之后,每个簇根据簇内节点的剩余能量求取节点的簇头阈值,通过产生随机数,簇内节点产生的随机数小于簇头阈值的节点为簇头节点,成簇完成后进入数据稳定传输阶段。
3.根据权利要求1所述的一种基于区块链的工业物联网节点共识方法,其特征在于,所述步骤S3中,被选上的记账节点在接下来3轮中不参与竞选。
4.根据权利要求1所述的一种基于区块链的工业物联网节点共识方法,其特征在于,所述步骤S3中,定义节点剩余能量为E,节点信用评分为ν,令牌数为n,定义工业物联网节点综合品质为 其中,κ、 μ分别表示节点剩余能量、节点信用评分、节点拥有令牌数所占的权值比重;节点综合品质越高,被推选进入记账节点集合的概率越大。
5.根据权利要求1所述的一种基于区块链的工业物联网节点共识方法,其特征在于,所述步骤S4中,当普通节点向汇聚节点回复“确认||区块ID||确认节点ID”报文时,普通节点押注自己一定的令牌数赌注区块验证成功与否,若区块通过汇聚节点的验证,普通节点按当时押注令牌占投验证通过的比例来分得投注总的令牌数,反之亦然。
6.根据权利要求1所述的一种基于区块链的工业物联网节点共识方法,其特征在于,所述步骤S5中,对区块的验证包括以下步骤:
1)检查区块的ID是否合法,即区块ID从前往后按顺序排列;
2)检查本区块头中前一区块哈希摘要是否与前一区块哈希值相同;
3)检查时间戳是否合法,即当前区块链UNIX时间戳必须严格大于前n个区块时间戳中值。