欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019106835820
申请人: 天津理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于LORA通信技术实现的区块链系统,包括由不少于2个机器人构成的机器人集群,每个机器人即为集群内的一个节点,其特征在于它是由不少于n个的区块组成LORA区块链网络,其中n是不小于2的自然数,且每个区块都是该LORA区块链网络中的一个LORA通讯节点;所述区块之间按照时间顺序依次呈单向数据连接方式,形成链式结构;所述作为集群内的一个节点的机器人单体是由LORA通讯模块和控制器构成,控制器与LORA通讯模块之间呈双向数据联系。

2.根据权利要求1所述一种基于LORA通信技术实现的区块链系统,其特征在于所述LORA通讯模块采用的是深圳市摩仑科技有限公司的Intorobot-ant开发板,每个开发板均由通讯单元和无线收发器单元构成;所述通讯单元和无线收发器单元之间呈双向数据连接;

所述作为LORA通讯节点的区块是由机器人单体上的LORA通讯模块产生并在机器人集群内广播的一个数据包,且数据包是根据通讯的不同时间顺序采用链式结构呈单向连接;

所述机器人单体上只有1个LORA通讯模块;所述机器人单体与机器人单体之间依LORA通讯模块进行相互通讯,呈双向数据连接。

3.根据权利要求2所述一种基于LORA通信技术实现的区块链系统,其特征在于所述通讯单元是STM32L151低功耗芯片;所述无线收发器单元是SX1278芯片;所述STM32L151低功耗芯片和SX1278芯片之间通过AT指令呈双向数据连接。

4.根据权利要求1所述一种基于LORA通信技术实现的区块链系统,其特征在于所述基于LORA通信技术实现的区块链系统的LORA通信频率为433MHz;

所述LORA区块链网络是精简后的微区块链网络;所述每一个区块都包含7部分内容,分别是节点编号、区块编号、区块生成时间、区块共享内容、本区块的哈希值、前一区块的哈希值和16位循环冗余校验;所述节点编号代表当前区块是由对应ID的机器人单体生成的;所述区块编号n-1、n、n+1表示当前区块在链式结构中排列的位置;所述本区块哈希值是通过本ID产生的数据,采用DJB-Hash算法运算后得到的;所述前一区块的哈希值是直接通过LORA模块接收前一区块编号对应的SELFHASH。

5.一种所述上述区块链系统的集群内每个机器人的网络分层架构,其特征在于它包括五层,分别是物理层、透传层、点对点通信层、微区块链层和共识算法层五层,且每个机器人单体的网络分层架构的最后一层将形成集群的一致性行为,达到去中心化实现的目的;所述物理层由集群内各个机器人的LORA通讯模块构成;所述透传层是指SX1278芯片处于透传工作模式,以实现基本的透传功能;所述点对点通信层则是利用LORA通讯模块中的通讯单元保障同一时间下,集群内只有一个LORA通讯模块广播数据,而其他LORA通讯模块则处于接收模式;所述微区块链层是将点对点通讯层的数据以区块形式打包广播,并利用DJB哈希算法,按照时间顺序形成单向链式结构;所述共识算法层是利用区块中的区块共享内容来实现的一种基于LORA通信技术的区块链系统的共识算法,可以通过机器人节点之间的数据双向传递,形成一致性机制;

所述去中心化实现是指所有的集群一致性行为由所有机器人共同决定,任何时刻都不会取决于任何一个机器人单体的影响,不存在任何阶段性的中心;所述去中心化实现的方法主要有两种,第一种是非中介化,利用基于LORA物联网通信技术的区块链系统的,实现在没有中介情况下,所有节点达成共识,实现完全去中心化;第二种是竞争,根据节点之间的行为,即传感器数据,更改每个节点的权重,从而实现部分去中心化。

6.根据权利要求5所述一种区块链系统的集群内每个机器人的网络分层架构,其特征在于所述基于LORA物联网通信技术的区块链系统的共识算法,是由以下步骤构成:(1)在所有机器人单体上运行区块链系统的网络分层架构,使集群内的各个机器人单体加入集群的微区块链网络;

(2)根据集群目标设定,构建包含所有可能目标的范围,形成数据池,即:创建目标域数据池;

(3)对节点进行数据池映射:选取映射关系与遍历方法,将数据池分散到每个机器人单体;

(4)每个机器人单体将各自的数据池整理成一个数组队列,并采用循环结构对队列中的每一项进行验证;由于机器人单体各自所处的环境差异,将导致验证的结果不会完全一样,因此,需要设定一个精度要求,所述精度要求是指期望得到的传感器数值与实际传感器数值之间的差异,可以用一个浮点数来表示;当数组队列中存在满足精度要求的数据时,即:指期望得到的传感器数值与实际传感器数值之间的差异小于设定的浮点数,就可以利用微区块链网络进行广播;

(5)判断是否达成共识:当某个机器人单体接收到其他机器人单体广播的数据后,将会进行验证,一旦验证结果满足精度,那么就会投正票,否则就会投反票,所投的票是一个完整区块组成的数据包,利用区块共享内容来表明正反票;当整个区块链网络中,对于某个机器人单体上的某个队列数据项有超过50%的正票,那么就以这个数据作为结果,并开始创建新的数据池;当所有机器人单体上的所有队列数据都不超过50%的正票,则将数据池重新划分,生成新的队列;

可以明显看出,机器人集群的一致性行为取决于每个机器人单体的投票,而并非由某个机器人单体所决定的,所以当敌人入侵某机器人单体后,并不会对整体的一致性造成严重影响,只有当超过50%的机器人单体被控制,才可以夺取整个集群的控制权。

7.根据权利要求6所述一种区块链系统的集群内每个机器人的网络分层架构,其特征在于所述步骤(3)中映射关系的选取应当满足两个要求:第一,映射关系要满足双射;第二,遍历方法要能遍历到数据池中的每一个数据。

8.根据权利要求6所述一种区块链系统的集群内每个机器人的网络分层架构,其特征在于所述步骤(4)中采用循环结构对队列中的每一项进行验证的方法是:根据队列中的数据,通过选择结构调用相对应的数据处理函数,将期望得到的传感器数值与传感器实际反馈回来的数值相比较,判断是否满足精度要求,若满足则表示队列中的这个数据符合本机器人单体的实际情况,然后利用微区块链网络进行广播;若不满足则表示队列中的这个数据不符合本机器人单体的实际情况,那么将会开始判断下一个队列数据;

所述步骤(4)中微区块链网络进行广播是产生的广播数据是指区块的七部分内容,即:

节点编号、区块编号、区块生成时间、区块共享内容、本区块的哈希值、前一区块的哈希值和

16位循环冗余校验。

9.一种基于LORA通信技术实现的区块链系统的工作方法,其特征在于它包括以下内容:

(1)每个机器人单体都配有LORA通信模块和控制器,将其作为网络分层架构中的物理层;LORA通信模块将通过通讯单元STM32L151低功耗芯片对无线收发器单元SX1278芯片进行初始化设置,使其工作频率处于集群通讯频率,工作模式处于透传模式;控制器与通讯单元呈双向数据流关系;控制器负责机器人单体的运动控制作用;

(2)利用通讯单元STM32L151低功耗芯片,按照网络分层架构,设置SX1278芯片处于透传工作模式,然后再搭建点对点通信层;

(3)利用接受函数、通讯中断函数和延时函数搭建点对点通信层,其中,通讯中断函数是默认以集群通讯频率为触发信号的;当有集群通讯频率的信号触发时,会立刻进入通讯中断函数,并调用接收函数;同时,设定每个机器人单体的延时时间t不同,延时是从全部机器人单体加入集群微区块链网络,并接收到创世区块时算起的,当延时时间t达到,就会广播数据,区块共享内容可以是固定不变的,但不能与实际使用的内容冲突;并设定每个机器人单体广播信息时需要满足两个条件,第一,必须达到延时时间,第二,必须调用过接收函数,从而可以保证同一时间只有一个LORA通讯模块广播数据,其他LORA通讯模块处于接收状态;

(4)编写区块的数据结构,将节点编号、区块编号、区块生成时间、区块共享内容、本区块的哈希值、前一区块的哈希值和16位循环冗余校验7个部分,以数组的形式保存,并按照广播数据的时间顺序单向链接,利用DJB哈希算法,对数组进行哈希运算,将哈希值存储在本区块的哈希值,同时,将接收到的上一区块的哈希值存储到前一区块的哈希值中,形成链式结构,成为精简后的区块链,也就是指微区块链层;

(5)在STM32L151低功耗芯片上编写共识算法;所述共识算法在本研究中是采用投票实现的,在每个机器人单体上开始运行网络分层架构,加入集群的微区块链网络,当所有LORA通讯节点通过投票机制达成共识时,则实现了区块链的去中心化功能。

10.根据权利要求9所述一种区块链系统的集群内每个机器人的网络分层架构,其特征在于所述步骤(3)中点对点通讯的内容就是以区块为数据结构形成的数据包;

所述步骤(1)和步骤(3)中集群通讯频率是433MHz;

所述基于LORA物联网通信技术的区块链系统的工作方法中的库函数是采用摩仑公司的库函数,且其库函数是开源的;所述步骤(1)中的初始化设置采用的库函数是LoRa.radioSetFreq(433175000);所述步骤(2)中透传工作模式设置采用的库函数是Cloud.setProtocol(PROTOCOL_P2P);所述步骤(3)中点对点通信层的搭建采用的库函数是LoRa.radioStartRx()接收函数、LoRaRadioEventCallback()通讯中断函数和delay(t)延时函数。