一种基于区块链的物联网设备控制方法及系统与流程

文档序号:16545184发布日期:2019-01-08 20:48阅读:303来源:国知局
一种基于区块链的物联网设备控制方法及系统与流程

本发明涉及通信技术领域,特别涉及一种基于区块链的物联网设备控制方法及系统。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。

从技术特点上,区块链一般被认为具有:

分布式容错性:网络及其鲁棒,容错1/3左右节点的异常状态。

不可篡改性:一致提交后的数据会一直存在,不可被销毁或修改。

隐私保护性:密码学保证了未经授权者能访问到数据,但无法解析。

随之带来的业务特性可能包括:

可信任性:区块链技术可以提供天然可信的分布式账本平台,不需要额外第三方中介机构。

降低成本:跟传统技术相比,区块链技术可能带来更短的时间,更少的人力和维护成本。

增强安全:区块链技术将有利于安全可靠的审计管理和账目清算,减少犯罪可能性和各种风险。

对等网络,即对等计算机网络,是一种在对等者之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。其可以定义为:网络的参与者共享他们所拥有的一部分硬件资源,这些共享资源通过网络提供服务和内容,能被其它对等节点直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者,又是资源、服务和内容的获取者。

在对等网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。

随着物联网技术的快速发展,万物互联的智慧生活新时代渐行渐近。当前,物联网设备市场呈现指数级增长,势头迅猛。人们在享受物联网带来的便利的同时,物联网终端的安全问题逐渐暴露出来。一方面,设备接入及控制的安全性需要物联网平台通过一系列技术方案来保障,另一方面,设备之间的交互需求也日益增加。在这种情况下,如何保证对设备控制权限的管控、防止操作记录被篡改,以及设备之间的互联成为一个亟需解决的问题。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种基于区块链的物联网设备控制方法及系统,以克服现有技术中不能保证对设备控制权限的管控、防止操作记录被篡改,以及设备之间的互联等问题。

为解决上述技术问题,本发明采用的技术方案是:

一方面,提供了一种基于区块链的物联网设备控制方法,所述方法包括如下步骤:

s1:物联网设备通过设备网关在物联网平台上进行注册;

s2:用户通过所述物联网平台发布设备控制指令;

s3:所述物联网平台调用区块链服务,通过所述区块链服务与智能合约交互,调用智能合约相应的接口;

s4:所述智能合约触发与所述设备控制指令相应的合约事件;

s5:所述设备网关监听到合约事件后,根据所述合约事件中的内容判断如何处理所述设备控制指令。

进一步的,所述步骤s1具体包括:

物联网设备通过设备网关向物联网平台发起注册请求,物联网平台接收到注册请求后,记录所述物联网设备的唯一标识以及所述设备网关的唯一标识,并且将所述物联网设备的唯一标识以及所述设备网关的唯一标识与用户关联。

进一步的,所述步骤s5具体包括:

所述设备网关监听到合约事件后,判断合约事件中的设备网关是否是自己,若是,则根据物联网设备的唯一标识向相应的物联网设备发送设备控制指令,若不是,则不做任何操作。

进一步的,所述步骤s2具体包括:

用户在所述物联网平台上选择支持的设备控制指令,并点击下发。

进一步的,所述方法还包括:

s6:所述物联网设备执行完所述设备控制指令后,将执行结果反馈给智能合约和物联网平台。

进一步的,所述步骤s6具体包括:

所述物联网设备执行完所述设备控制指令后,将执行结果反馈给所述设备网关,通过所述设备网关与所述智能合约交互,将执行结果发送给所述智能合约记录,所述区块链服务监听到指令执行结果事件后发送给所述物联网平台更新设备执行结果。

进一步的,所述物联网设备通过设备网关在物联网平台上进行注册后还包括:

所述物联网平台定期检测所述物联网设备的状态。

进一步的,所述物联网平台定期检测所述物联网设备的状态具体包括:

物联网平台定时发出检测指令,通过所述区块链服务与智能合约交互,触发设备状态检测事件,设备网关监听到设备状态检测事件后,监听并记录设备状态数据,并将设备状态数据发送回物联网平台。

进一步的,所述物联网平台定期检测所述物联网设备的状态具体还包括:

若是设备网关监听到有物联网设备发生故障,同一个用户的其他物联网设备将根据事先设定好的规则,做出相应的故障处理动作。

另一方面,提供了一种基于区块链的物联网设备控制系统,所述系统至少包括:

物联网平台,用于物联网设备注册管理,以及发布设备控制指令;

区块链服务,用于所述物联网平台与智能合约之间的交互以及监听指令执行结果事件;

智能合约,用于提供外部调用的接口以及合约事件,所述智能合约部署于区块链中;

设备网关,用于监听智能合约中触发的事件,根据所述合约事件中的内容判断如何处理所述设备控制指令,以及用于管理物联网设备。

进一步的,所述物联网平台至少包括:

设备注册管理模块,用于注册管理物联网设备;

操作指令发布模块,用于提供给用户发布设备控制指令。

进一步的,所述区块链服务至少包括:

智能合约调用接口,用于与智能合约交互;

事件监听模块,用于监听至少包括指令执行结果事件。

进一步的,所述智能合约至少包括:

外部调用的接口,用于与所述区块链服务交互;

合约事件,用于提供与所述设备控制指令相对应的事件。

进一步的,所述设备网关至少包括:

设备管理服务,用于监听智能合约中触发的事件,根据所述合约事件中的内容判断如何处理所述设备控制指令。

进一步的,所述设备管理服务至少包括:

mqtt服务,用于提供给设备管理服务与物联网平台交互,将设备注册信息以及设备状态数据发送给物联网平台;

web3j,用于提供给设备管理服务与智能合约交互,加载线上运行的智能合约,监听合约事件;

jna,用于提供给设备管理服务与物联网设备交互,控制物联网设备执行所述设备控制指令以及将设备状态数据返回给设备管理服务。

本发明实施例提供的技术方案带来的有益效果是:

1、本发明提供的基于区块链的物联网设备控制方法及系统,采用区块链智能合约作为载体下发设备执行指令。由于基于数据一致的分布式记账技术,只有在短时间内控制51%以上的节点才能有机会更改数据,且要更改数据,就要更改区块,而每个区块链会记录前一个区块的hash值,所以如果要在全网改变这些区块上的数据需要非常巨大的算力,并且由于区块链采用了大量的密码学技术,比如非对称算法,椭圆曲线,rsa等,因此,本发明提供的基于区块链的物联网设备控制方法及系统,能够非常好的追溯记录所有的执行指令,指令执行结果以及设备状态,并且防止相关数据被轻易篡改,简化安全性控制的流程;

2、本发明提供的基于区块链的物联网设备控制方法及系统,基于区块链智能合约作为载体下发设备执行指令,设备指令下发的方式实现去中心化,服务更加稳定,可用性更高;

3、本发明提供的基于区块链的物联网设备控制方法及系统,基于对等网络,同一个用户的所有设备可以实现互联通信,状态感知;

4、本发明提供的基于区块链的物联网设备控制方法及系统,基于事件监听框架,设备网关可以监听到区块链网络发生的任何事件,实现设备状态同步,设备间操作感知,相比于定时轮训的方式,极大地降低设备网关的负载。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的基于区块链的物联网设备控制方法实施例1的流程图;

图2是本发明提供的基于区块链的物联网设备控制方法实施例2的流程图;

图3是本发明提供的基于区块链的物联网设备控制系统的结构示意图;

图4是本发明提供的基于区块链的物联网设备控制系统中设备管理服务的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

如图1所示,图1是本发明提供的基于区块链的物联网设备控制方法实施例1的流程图,所述方法包括如下步骤:

s1:物联网设备通过设备网关在物联网平台上进行注册。

具体的,新的物联网设备接入前,需在通过设备网关中的设备管理服务向物联网平台进行注册。

进一步的,所述步骤s1具体包括:

物联网设备联网后,通过设备网关中的设备管理服务向物联网平台发起注册请求,物联网平台接收到注册请求后,创建物联网设备并获取物联网设备注册认证所需的信息,记录所述物联网设备的唯一标识以及所述设备网关的唯一标识,并且将所述物联网设备的唯一标识以及所述设备网关的唯一标识与用户关联。这里需要说明的是,注册认证所需的信息除了唯一标识以外,还包括私钥、设备通信队列名等信息。其中,设备管理服务中通过mqtt服务传入注册认证所需的信息,将物联网设备接入物联网平台。

s2:用户通过所述物联网平台发布设备控制指令。

具体的,当用户需要操作某个物联网设备时,可以在所述物联网平台上选择支持的设备控制指令,并点击下发。

s3:所述物联网平台调用区块链服务,通过所述区块链服务与智能合约交互,调用智能合约相应的接口。

具体的,物联网平台调用区块链服务,通过区块链服务与智能合约交互,区块链服务中封装有智能合约调用接口,通过智能合约调用接口调用智能合约中相应的接口,实现区块链服务与智能合约的交互。

s4:所述智能合约触发与所述设备控制指令相应的合约事件。

具体的,智能合约中提供有与所述设备控制指令相对应的合约事件,智能合约根据接收到的设备控制指令触发相应的合约事件。

s5:所述设备网关监听到合约事件后,根据所述合约事件中的内容判断如何处理所述设备控制指令。

进一步的,所述步骤s5具体包括:

所述设备网关中的设备管理服务监听到合约事件后,判断合约事件中的设备网关唯一标识是否是自己,若是,说明是发给自己的指令,则根据物联网设备的唯一标识向相应的物联网设备发送设备控制指令,若不是,说明不是发给自己的指令,则不做任何操作。

这里需要说明的是,本发明实施例提供的基于区块链的物联网设备控制方法中,一个设备网关可以管理多个物联网设备,设备网关上部署有设备管理服务,设备管理服务启动时会通过web3j加载线上运行的智能合约,监听合约事件,对于监听到的属于自身的指令,设备管理服务通过jna控制相应的物联网设备执行相应的动作。

进一步的,本发明实施例提供的基于区块链的物联网设备控制方法中所述物联网设备通过设备网关在物联网平台上进行注册后还包括:

所述物联网平台定期检测所述物联网设备的状态。

具体的,物联网平台对于接入的物联网设备会定时发出检测指令,通过所述区块链服务与智能合约交互,触发设备状态检测事件,设备网关中的设备管理服务监听到设备状态检测事件后,通过jna调用设备状态检测接口返回设备状态数据,并记录设备状态数据,通过mqtt服务将设备状态数据发送回物联网平台。其中,若是设备网关监听到有物联网设备发生故障,同一个用户的其他物联网设备将根据事先设定好的规则,做出相应的故障处理动作。

事先设定好的规则在具体实施时,物联网平台拥有注册的设备列表,设备间通信统一使用json格式,物联网平台能够通过页面配置基于1-n个设备的故障或采集的数据来设定阈值,同时可以设置满足条件后其他设备执行的动作。例如:在智能家居场景下,智能厨房设备如果发生故障,瓦斯检测设备触发检测,当瓦斯超过一定浓度后,智能门窗根据故障及瓦斯浓度自动开启窗户通风。所以这里规则用程序化来表示如下:

ifbreakdownandgas>100thenwindow.open()。

这里需要说明的是,只有同一个用户的物联网设备间会记录各自的设备状态数据。

实施例2

如图2所示,图2是本发明提供的基于区块链的物联网设备控制方法实施例2的流程图,该方法除了包括上述步骤s1至s5以外,还包括:

s6:所述物联网设备执行完所述设备控制指令后,将执行结果反馈给智能合约和物联网平台。

进一步的,所述步骤s6具体包括:

所述物联网设备执行完所述设备控制指令后,通过jna回调接口将执行结果反馈给设备网关中的设备管理服务。通过所述设备网关中的设备管理服务与所述智能合约交互,将执行结果发送给所述智能合约,具体的,设备管理服务通过调用智能合约中的recordactionlog方法记录指令执行结果。同时所述区块链服务监听到指令执行结果事件后发送给所述物联网平台更新设备执行结果。

实施例3

如图3所示,图3是本发明提供的基于区块链的物联网设备控制系统的结构示意图,该系统至少包括:

物联网平台,用于物联网设备注册管理,以及发布设备控制指令。

具体的,物理网平台主要用于物联网设备注册管理、消息管理、以及发布设备控制指令。

进一步的,所述物联网平台至少包括:

设备注册管理模块,用于注册管理物联网设备;

操作指令发布模块,用于提供给用户发布设备控制指令。

具体的,物联网平台作为设备注册管理和设备控制指令下发的统一平台,通过web页面实现操作,进而实现设备管理、设备控制指令下发等功能。

区块链服务,用于所述物联网平台与智能合约之间的交互以及监听指令执行结果事件。

进一步的,所述区块链服务至少包括:

智能合约调用接口,用于与智能合约交互;

事件监听模块,用于监听至少包括指令执行结果事件。

具体的,区块链服务中封装了外部调用智能合约的智能合约调用接口以及事件监听模块,区块链服务主要用于物联网平台与智能合约之间的交互。

智能合约,用于提供外部调用的接口以及合约事件,所述智能合约部署于区块链中。

具体的,本发明实施例中,智能合约使用solidity语言编写,而部署智能合约的区块链兼容solidity编写的智能合约运行以及web3j的调用。

进一步的,所述智能合约至少包括:

外部调用的接口,用于与所述区块链服务交互;

合约事件,用于提供与所述设备控制指令相对应的事件。

具体的,智能合约中除了包含外部调用的接口和合约事件,还包括智能合约的元数据。

外部调用的接口中至少包括:

execaction:执行指令接口,接口中触发execactionevent事件;

notifydevicestatus:通知设备状态接口,接口中触发notifydevicestatusevent事件;

recordactionlog:记录指令执行结果接口,接口中触发recordactionlogevent事件。

合约事件至少包括:

execactionevent:即与所述设备控制指令相对应的事件;

notifydevicestatusevent:即设备状态检测事件;

recordactionlogevent:即记录指令执行结果事件。

元数据至少包括:

contractaddress:调用的智能合约地址,不同的智能合约通过合约地址区分;

baseaccount:创建智能合约的账户。

设备网关,用于监听智能合约中触发的事件,根据所述合约事件中的内容判断如何处理所述设备控制指令,以及用于管理物联网设备。

具体的,本发明实施例中的设备网关的操作系统选用raspherrypi操作系统,且设备网关包括多个。

进一步的,所述设备网关至少包括:

设备管理服务,用于监听智能合约中触发的事件,根据所述合约事件中的内容判断如何处理所述设备控制指令。

具体的,设备网关中还包括安全模块,安全模块用于设备安全控制。其中,安全模块主要提供以下两个功能:1、密钥管理;2加解密运算。每个设备都会有一个基于区块链的账户,每个账户拥有一组非对称加密的公私钥,其中私钥就存储于安全模块中。当接收到数据并且确认是发送给自己的数据时,通过安全模块对数据内容解密,因此保证了安全性。同理当设备网关发送数据时,同样通过安全模块进行加密后再发送加密后的数据。本发明实施例中的设备管理服务使用java语言。

进一步的,参照图4所示,图4是本发明提供的基于区块链的物联网设备控制系统中设备管理服务的结构示意图,所述设备管理服务至少包括:

mqtt服务,用于提供给设备管理服务与物联网平台交互,将设备注册信息以及设备状态数据发送给物联网平台。

具体的,一方面,新得物联网设备接入前需在物联网平台创建设备并获取设备注册认证所需的信息,包括设备唯一标识,私钥,设备通信队列名等。设备管理服务中通过mqtt服务传入认证信息将设备接入物联网平台。另一方面,物联网平台对于接入的设备会定时发出检测指令,设备管理服务接收到检测指令后,通过jna调用设备状态检测接口返回设备状态,通过mqtt服务将设备状态发送回物联网平台。

web3j,用于提供给设备管理服务与智能合约交互,加载线上运行的智能合约,监听合约事件。

具体的,web3j是一个轻量级,高度模块化的,被动型的,安全的java和android库,用于处理智能合约以及与区块链网络上的客户端进行集成。使得用户可以使用区块链,而无需为平台编写自己的集成代码。

设备管理服务启动时会通过web3j加载线上运行的智能合约,通过eventobservable接口监听合约事件,对于监听到的属于自身的指令,通过jna控制设备执行相应的动作。

设备执行完动作后通过jna回调接口将执行结果反馈给设备管理服务,设备管理服务通过web3j调用智能合约中的recordactionlog方法记录指令执行结果,同时区块链服务也将监听到指令执行结果事件并发送给物联网平台更新设备执行结果。

设备检测结果同样通过eventobservable接口获取到,并且会记录在设备网关的本地存储中,用于后续的故障处理。

jna,用于提供给设备管理服务与物联网设备交互,控制物联网设备执行所述设备控制指令以及将设备状态数据返回给设备管理服务。

jna是javanativeaccess的简写,提供一组java工具类在运行期间动态访问系统本地库而不需要编写任何native/jni代码。开发人员只要在一个java接口中描述目标nativelibrary的函数与结构,jna将自动实现java接口到nativefunction的映射。

综上所述,本发明实施例提供的技术方案带来的有益效果是:

1、本发明提供的基于区块链的物联网设备控制方法及系统,采用区块链智能合约作为载体下发设备执行指令。由于基于数据一致的分布式记账技术,只有在短时间内控制51%以上的节点才能有机会更改数据,且要更改数据,就要更改区块,而每个区块链会记录前一个区块的hash值,所以如果要在全网改变这些区块上的数据需要非常巨大的算力,并且由于区块链采用了大量的密码学技术,比如非对称算法,椭圆曲线,rsa等,因此,本发明提供的基于区块链的物联网设备控制方法及系统,能够非常好的追溯记录所有的执行指令,指令执行结果以及设备状态,并且防止相关数据被轻易篡改,简化安全性控制的流程;

2、本发明提供的基于区块链的物联网设备控制方法及系统,基于区块链智能合约作为载体下发设备执行指令,设备指令下发的方式实现去中心化,服务更加稳定,可用性更高;

3、本发明提供的基于区块链的物联网设备控制方法及系统,基于对等网络,同一个用户的所有设备可以实现互联通信,状态感知;

4、本发明提供的基于区块链的物联网设备控制方法及系统,基于事件监听框架,设备网关可以监听到区块链网络发生的任何事件,实现设备状态同步,设备间操作感知,相比于定时轮训的方式,极大地降低设备网关的负载。

需要说明的是:上述实施例提供的基于区块链的物联网设备控制系统在触发控制业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于区块链的物联网设备控制系统与基于区块链的物联网设备控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1