1.一种面向物联网系统的改进共识算法,其特征在于包括以下几个步骤:
步骤S1:边缘服务器根据物联网设备所发送的位置与时间戳信息遴选出诚信设备;
步骤S2:边缘服务器对诚信设备发送的交易进行双层共识;
步骤S3:通过激励的方式,规范边缘服务器的共识行为;
2.根据权利要求1所述的一种面向物联网系统的改进共识算法,其特征在于:步骤S1是首先对所有边缘服务器进行分组,对所有参与工作的设备进行分组后,边缘服务器对设备进行遴选,具体步骤如下:(1)预分配:为每个强节点分配密钥,分配初始信用币等。并根据GeoHash
(Geographical Hash,GeoHash)协议将所有的强节点划分成k个子集合。GeoHash编码长度越长所表示的位置越精确,两个编码的相似相似度越高代表两个位置离得越近。最后,各个子集合中Token最多的节点被选为子集合中的全节点。由此,边缘计算层构成一个双层多中心化的网络结构。
(2)遴选:根据边缘服务器的工作特性,轻节点在规定时间内发送一定数量的位置信息和时间戳信息给距离近的强节点,形成以强节点为中心、四周分布着轻节点的从集合。从集合中的强节点根据轻节点发送的GeoHash和时间戳,生成位置定时器表(Locational Clock,LC),通过位置定时器对从集合中的轻节点进行遴选,挑选出诚信节点,参与共识过程。
3.根据权利要求1所述的一种面向物联网系统的改进共识算法,其特征在于:步骤S2使用改进后的双层PBFT共识算法对轻节点即底层物联网设备发送的交易进行共识,具体如下:(1)pre‑prepare:子集合中的强节点向子集合内其它节点包括全节点发送预准备消息,消息格式为 所有节点接收到预准备消息并验证通过后,进入准备阶段。其中,J‑PRE‑PREPARE表示强节点的预准备消息内容,h表示当前时段的区块高度,v表示节点当前视图,t表示时间戳, 表示第i个子集合中第m个强节点对区块B数字签名, 表示第i个子集合中第m个强节点的位置信息。
(2)J‑prepare:强节点将验证通过的交易以准备消息的形式向子集合内其它强节点进行广播,准备消息格式为 同时,该强节点接收子集合内其它强节点的准备消息。当所有强节点收到的准备消息的数量超过2numi+1时,进入S‑prepare。
其中,J‑PREPARE表示强节点的准备消息内容,numi表示第i个子集合内拜占庭节点的最大数量。
(3)S‑prepare:子集合中的全节点在验证并接收子集合中数量超过2numi+1的准备消息后,向父集合的其它全节点发送准备消息,并接收其它全节点的准备消息,消息格式为<i,B>。当所有全节点收到父集合内的准备消息数量超过2num+1时,进入确认阶段。其中,S‑PREPARE表示全节点的准备消息,A(B)i表示第i个全节点对区块B数字签名。
(4)S‑commit:父集合的全节点向其它的全节点发送确认消息,确认消息格式为<i>。当所有全节点收到确认消息的数量达到2num+1时,进入J‑commit。
其中,S‑COMMIT表示全节点的确认消息内容,num表示父集合内拜占庭节点的最大数量。
(5)J‑commit:子集合内的强节点在进行子集合确认时,需要收到子集合中其它强节点的确认消息且数量达到2numi+1,消息格式为 除此以外,确认消息中还需要有来自子集合中主节点格式为<i>的确认消息才能进入同步阶段。其中,J‑COMMIT表示强节点的确认消息内容。
( 6) R e pl y :全 节 点 接 收 强 节 点 发 送 的 回 执 消 息 ,消 息 格式 为当全节点收到数量为u的回执信息时,向父集合的其它全节点发送回执消息,消息格式为 所有全节点收到回执消息后,
进入Update。其中,J‑REPLY表示强节点的回执消息内容,S‑REPLY表示全节点的回执消息内容。
(7)Update:全节点向其子集合内的所有强节点发送同步消息,消息格式为
强节点接收同步消息,执行同步过程,并将区块缓存在本地节
点,实现整个系统数据的一致性。其中,S‑UPDATE表示全节点的更新信息内容。
4.根据权利要求1所述的一种面向物联网系统的改进共识算法,其特征在于:步骤S3使用Token奖励与信用重置的方法规范边缘服务器的共识行为。具体如下:(1)Token奖励:Token值的大小代表了节点信用的高低,是表示节点可靠性的一种方式,这里使用R代表节点的Token值。在一轮共识完成后,系统根据激励模型对节点的行为奖励一定数量的Token。初始状态下参与共识的强节点,R值统一设置为c,c的取值为固定值
100。子集合中每个强节点的R值具体计算如下:
De∈(0,1], r1∈(0,1],r2∈(0,1],其中, 为第i个子集合中第m个强节点在当前共识中的R值, 为第i个子集合中第m个强节点的哈希计算能力,De为集合的离散程度,o为每个强节点在子集合中共识时间的权重, 为第i个子集合中第m个强节点l p在第n轮共识后的R值,R 为当前强节点的R值,R 为强节点上一轮共识的R值。r1和r2为当前信用值和上一轮共识信用值的权重,赋值大小取决于系统对交易质量的要求高低。
(2)对R值过低或者过高的节点进行信用恢复。按照节点的R值赋予节点等级,阈值的具体取值根据系统对边缘服务器效率的要求设置。当节点的R值低于x时,节点仍可以继续发送交易,但从下一周期开始,该节点的R值将被重置为c。子集合内连续两次担任全节点或者R值高于z的节点,其R值被重置为x并标识。标识后的节点在下面两个周期中不能参与父集合的共识过程。在两个周期后,标记节点的信用值重置为c,重新参与共识过程。