一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于智能合约的物联网设备调度方法、系统及设备与流程

2022-11-14 12:49:01 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,具体来说是基于智能合约的物联网摄像头设备调度方法。


背景技术:

2.现有技术中,物联网设备调度通常是使用中心化的服务器,对集群内的节点进行任务调度。物联网设备的工作资源类似云计算资源,传统算法中往往和云计算任务领域相互参照。
3.现有方案没有针对多组织场景下的物联网设备共享方面的研究,只有关于单一系统集群下摄像头调度的方法。
4.现有技术提到的解决方案都是针对单组织用户下的多任务调度算法,涵盖了基于机器学习技术、基于光学模式识别技术。本质上没有解决多个参与方中,在不是“完全信任”的企业联盟场景下的区块链任务调度业务的问题。
5.现有技术没有考虑到任务本身的轻重缓急程度,只是单纯的在多任务下尝试进行尽可能满足大家需要的调度。
6.多个企业组织中分别拥有不同数量、分布地点的物联网设备,大家为了节约成本、提高效率的动机,结合在一起,形成一个联盟,如何实现大家的资源公平共享和互相信任,传统方法无法在算法层面实现上述需求。现有技术有以下未解决的问题:1.现有技术没有考虑到在去中心化环境下对视频数据的隐私保护。
7.2.现有技术无法实现对视频监控(物联网记录信息)的分布式存储。
8.3.现有技术无法实现大规模任务量级、大范围摄像头地域分布、数量环境下的作业调度。
9.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

10.本发明的目的就是为了解决上述问题,提供一种基于智能合约的物联网设备调度方法。
11.为了实现上述目的,本发明的技术方案如下:一种基于智能合约的物联网设备调度方法,包括以下步骤:s1.在区块链上调用智能合约,发布任务;s2.区块链对智能合约任务进行合法性验证,验证通过后,将该智能合约任务放入任务队列中;s3.物联网设备端节点根据自己的工作状态,从任务队列中选取任务执行。
12.进一步的,设备端节点在执行完任务后,如果有任务数据需要上传保存,可以再进行步骤s4:物联网设备端节点将任务数据传输至服务器端节点进行保存。
13.进一步的,调度方如果要获取任务相关数据,可以进行步骤s5:通过智能合约获取任务相关数据。
14.进一步的,物联网设备端节点可以利用加密算法,对任务数据进行加密后进行上传。加密算法步骤如下:s41.随机生成文件解密密钥k2,并利用k2对监控视频片段进行对称加密;s42.用任务发布者的公钥加密k2,获得密文k1;s43.用静态文件密钥下发审计模块的公钥ks1加密k1,获得密文k0;s44.将k0和任务id,作为一个键值对,上传到服务器端节点,写入区块的相关智能合约任务信息中。
15.进一步的,调度方如果需要解密所获取的任务相关数据,可以进行如下步骤:s51.通过智能合约获取静态文件数据及相应的密文k0;s52.将k0发送到静态文件密钥下发审计模块,申请解密;s53.静态文件密钥下发审计模块通过模块的私钥ks1

解密k0,获得密文k1,并将k1发送给调度方;s54.调度方用自己的私钥k1

解密k1,获得真正的文件解密密钥k2,从而解密静态文件数据。
16.进一步的,步骤s53中,静态文件密钥下发审计模块记录每次解密申请的审计日志,并提交至区块链中永久保存。
17.另外,本发明还提供一种基于智能合约的物联网设备调度系统,包括区块链物联网设备端节点、区块链服务器端节点、数据加密根证书授权节点和智能合约程序模块,所述智能合约程序模块部署在各节点上。
18.进一步的,所述数据加密根证书授权节点包括静态文件密钥下发审计模块,所述静态文件密钥下发审计模块,对解密者进行身份验证,并通过私钥ks1

解密密文k0,获得密文k1, 并将k1发送回解密者。
19.进一步的,所述静态文件密钥下发审计模块记录解密申请的审计日志并提交至区块链中永久保存。
20.另外,本发明还提供一种基于智能合约的物联网设备调度设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于智能合约的物联网设备调度程序,所述基于智能合约的物联网设备调度程序,配置有实现基于智能合约的物联网设备调度方法。
21.本发明还提供一种存储介质,所述存储介质上存储有基于智能合约的物联网设备调度程序,所述基于智能合约的物联网设备调度程序,在被执行时,实现基于智能合约的物联网设备调度方法。
22.采用以上技术方案,本发明具有以下优点:1.本发明实现了多个参与方,在不是“完全信任”的企业联盟场景下,进行物联网设备的调度业务。
23.2.本发明实现了去中心化环境下对视频数据的隐私保护。
24.3.本发明实现了大规模任务量级、大范围地域分布、大数量环境下的作业调度,并充分考虑设备端的成本因素,以及大数据的分布存储问题。
附图说明
25.图1是本发明调度系统的组成示意图。
26.图2本发明对文件数据进行加密的步骤图。
27.图3本发明对文件数据进行解密的步骤图。
具体实施方式
28.应当理解,此处所描述的具体实施例仅用以解释本发明,并非是对本发明的限定。
29.实施例1:多个企业组织中分别拥有不同数量、分布地点的物联网设备,如摄像头等。大家为了节约成本、提高效率的动机,结合在一起,形成一个联盟。为了实现大家的资源公平共享和互相信任,本发明基于区块链技术,利用去中心化的信任机制,使得多个参与方,在不是“完全信任”的企业联盟场景下,进行物联网设备的区块链任务调度业务,实现大规模任务量级、大范围地域分布、大数量环境下的作业调度。
30.本发明基于智能合约的物联网设备调度方法,其区块链节点包括物联网设备端节点、服务器端节点以及数据加密根证书授权节点。智能合约程序部署在各节点上。所述数据加密根证书授权节点包括根证书签名模块(用于向各节点赋予身份证书)以及静态文件密钥下发审计模块。
31.以下为了更有针对性的说明,选取摄像头作为物联网设备进行举例。需要指出,此处虽以摄像头设备举例,并不代表本发明仅能用于摄像头设备的调度,本发明实际可以调度各种物联网设备。
32.调度方需要调度物联网摄像头设备时,包括以下步骤:s1.在区块链上调用智能合约,发布任务;s2.区块链对智能合约任务进行合法性验证,验证通过后,将该智能合约任务放入任务队列中;s3.物联网设备端节点根据自己的工作状态,从任务队列中选取任务执行。
33.步骤s1中,发布任务时,任务信息可以包括如下表1的数据。
34.表1字段名数据类型任务id字符串发布者公钥字符串个体精确限制布尔值优先级整数值发布时间戳整数值覆盖区域id整数值是否独占布尔值拍摄时长秒数整数值“个体精确限制”字段表示任务发布者是否需要强制指定某一个摄像头设备进行拍摄,如果是,则不进行动态分配。
[0035]“优先级”字段根据任务发布者对此任务的优先级判断标准,0为最不紧急,100为最为紧急,为了防止某机构的用户恶意占用摄像头集群资源,在一段时间窗口内,同一机构
的组织任务优先级平均值不得超过50,否则将禁止此任务的发布。
[0036]“发布时间戳”作为判断任务发布时间段的unix时间戳,由发布者提交,为了防止用户作恶(故意将自己的时间写入为更旧的时间点),用户需要考虑到自己的时间戳在区块链系统中共识的时间。举个例子,用户在14:00提交了一个任务,如果用户为了加速自己任务的处理速度,将时间戳设为13:59,在区块共识中,各个节点执行智能合约发现当前时间(14:01)已经大于13:59,因此此次发布任务是无效的。因此用户如果需要顺利发布自己的任务,需要考虑到共识机制耗费的时间,比如在14:00时,将“发布时间戳”字段设置为14:05,这样可以顺利保证任务的发布。
[0037]“覆盖区域id”表明了某个摄像头能够覆盖哪些区域,假如a、b、c摄像头经过移动、放大,都能覆盖z地,那么他们的“覆盖区域id集”都有z地的区域id,此字段亦表示任务发布者需要调度哪个区域的摄像头。
[0038]“是否独占”字段描述了此任务是否是独占的。
[0039]“拍摄时长秒数”描述了任务需要拍摄多长时间的秒数。
[0040]
步骤s3中,区块链物联网设备端节点(如摄像头)如果处于空闲状态,即根据自己的覆盖区域id集,从任务队列中取出符合标准的时间戳前10%项任务,再根据优先级进行从大到小排列。如果选取的这些任务是非独占任务,则获取最多前10个非独占的任务开始并发执行,间隔10秒轮转一次拍摄任务,分布保存在10个视频文件中,如果第1个的任务为独占任务,则直接完成独占任务。
[0041]
区块链物联网设备端节点如果处于工作状态,在执行独占任务中,直到任务结束后会重新执行上一段的逻辑。如果在并发执行非独占任务中,并发执行的10个非独占任务执行完1个,则再从任务队列中取出符合标准的前10%项任务,再根据优先级进行排列,获取优先级最大的第1个任务,此任务如果是独占任务,则等待后续9个任务执行结束后,开始执行此独占任务,如果此任务是非独占任务,则直接和后续9个任务同时并发轮流执行。
[0042]
需要明确,此处的执行逻辑仅为举例,本领域技术人员可以根据实际进行变化。
[0043]
设备端节点在执行完任务后,如果有任务数据需要上传保存,可以再进行步骤s4:物联网设备端节点将任务数据传输至服务器端节点进行保存;步骤s4中,物联网设备端节点(如摄像头)捕获的静态文件数据(如监控视频片段),根据当前的任务id,上传至服务器节点中进行存储。
[0044]
物联网设备端节点可以利用加密算法,对监控视频片段进行加密后再上传。如图2所示,加密算法步骤如下:s41.随机生成文件解密密钥k2,并利用k2对监控视频片段进行对称加密;s42.用任务发布者的公钥加密k2,获得密文k1;s43.用静态文件密钥下发审计模块的公钥ks1加密k1,获得密文k0;s44.将k0和任务id,作为一个键值对,上传到服务器端节点,写入区块的相关智能合约任务信息中。
[0045]
由于视频文件的数据体积往往较大,出于成本考虑,可以不将其保存在物联网设备端节点中,可以分布式地保存在各个服务器端主机中,而每个节点都会保存一个映射文件名和文件物理地址的字典,方便在下载静态文件的过程中找到具体从哪一台服务器下载,而且每个文件名和物理地址都会写入区块的相应智能合约任务信息中,以便于调度者
根据智能合约获取相关任务信息。
[0046]
调度方如果要获取任务相关数据,可以进行步骤s5:通过智能合约获取加密后的静态文件数据(如视频监控片段)并解密。
[0047]
如图3所示,步骤s5中,解密步骤如下:s51.通过智能合约获取静态文件数据及相应的密文k0;s52.将k0发送到静态文件密钥下发审计模块,申请解密;s53.静态文件密钥下发审计模块通过模块的私钥ks1

解密k0,获得密文k1,并将k1发送给调度方;s54.调度方用自己的私钥k1

解密k1,获得真正的文件解密密钥k2,从而解密静态文件数据。
[0048]
步骤s53中,静态文件密钥下发审计模块记录每次解密申请的审计日志,并提交至区块链中永久保存。
[0049]
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现发明的目的,此处不做限制。
[0050]
实施例2:此外,本发明实施例还提出一种基于智能合约的物联网设备调度系统,包括区块链物联网设备端节点、区块链服务器端节点、数据加密根证书授权节点和智能合约程序模块,所述智能合约程序模块部署在各节点上。如图1所示。
[0051]
所述区块链物联网设备端节点包括区块链数据轻量存储模块、物联网设备控制接口服务模块、设备端数据传输模块。
[0052]
考虑到物联网设备端的成本限制,物联网设备的性能限制了区块链物联网设备端节点不能保存全量的数据,因此物联网设备端节点只存储区块链数据的区块头数据,不保存区块的区块体数据,在请求具体数据时可以通过其他区块链全量服务器节点进行传递。
[0053]
所述物联网设备控制接口服务模块用于区块链上智能合约和硬件设备通讯的中间件软件服务,将智能合约执行结果的指令作为触发消息,实时监听智能合约上的最新事件,同时通过rs232、rs485、modbus等物联网通讯协议向摄像头设备发送控制信号,包括摄像头的转动、对焦、光圈、焦距、补光等数据。
[0054]
设备端节点上部署的智能合约程序模块,根据设备的分组、种类、地点等信息选择要执行的合约程序,同时控制合约程序的加载、运行、停止和退出逻辑。
[0055]
设备端节点作为区块链系统中的一部分,参与网络中交易的验证工作,在此添加智能合约程序模块可以保证整个网络更加去中心化,增加网络的安全性。不应该只在服务器上进行智能合约的管理。
[0056]
所述设备端数据传输模块将当前物联网设备所捕获的静态文件数据,上传至区块链服务器端节点中。
[0057]
所述区块链服务器端节点包括区块链全量数据存储模块、加密数据静态存储模块、静态文件密文存储模块、服务器端智能合约管理模块(即部署在服务器端节点的智能合约程序模块)、服务器数据传输模块。
[0058]
所述区块链全量数据存储模块保存了区块中的全部数据,区块链全量数据存储分别部署在联盟中不同参与者的服务器中。
[0059]
所述加密数据静态存储模块保存了不同物联网设备上传的加密后的传输数据,如果上传的是视频类数据,由于视频文件的数据体积往往较大,因此需要分布式地保存在各个主机中,而每个节点都会保存一个映射文件名和文件物理地址的字典,方便在下载静态文件的过程中找到具体从哪一台服务器下载。
[0060]
所述静态文件密文存储模块用于存储设备端节点上传的密文和相关信息。主要是保存了一个字典,该字典从任务id映射到文件的密文k0。此字典的密文由于使用了数据加密根证书授权节点和任务发布者的公钥共同加密,因此是完全公开给各个用户查看的。
[0061]
服务器端节点上部署的智能合约程序模块,验证智能合约任务,并排放合约任务到任务队列,同时控制合约程序的加载、运行、停止和退出逻辑,同时在本地模拟执行各个智能合约,以进行验证共识。
[0062]
所述服务器数据传输模块用于向用户提供数据访问和传输服务。所述服务器数据传输模块运行着一个反向代理算法的软件,当用户向任意一台区块链服务器节点申请任意一个监控加密视频文件时,如果请求的文件不在本地,会自动将请求重定向到目标节点,保证都能顺利下载。
[0063]
所述数据加密根证书授权节点包括根证书签名模块、静态文件密钥下发审计模块。
[0064]
所述根证书签名模块通过数据加密根证书授权节点的中间证书,为区块链物联网设备端节点签发身份证书,数据加密根证书授权节点的根证书采用冷证书的设计,避免和外界物理接触。根据联盟中各个参与方的需要,以参与者的法人单位为组织签发一定数量的中间证书,由中间证书为各个区块链物联网设备端节点赋予身份,既保证了联盟根证书的安全性,又能在发生密钥泄露、中间证书管理员作恶后主动注销受影响的证书链,进一步保证区块链系统的安全性。
[0065]
所述静态文件密钥下发审计模块,当任务发布者通过智能合约程序模块,下载到自己的加密文件,以及对应的密文k0后,解密者(即需要解密文件的任务发布者)先需要向“静态文件密钥下发审计模块
”ꢀ
进行身份验证,之后将要解密的密钥加密值k0发送给“静态文件密钥下发审计模块”,模块收到之后,通过对应的解密证书的私钥ks1

解密密文k0,获得密文k1,并将k1发送回解密者,同时记录此次解密申请的审计日志并提交至区块链中永久保存。解密者再用自己的私钥k1

解密k1,获得真正的文件解密密钥k2,从而完成文件的解密。
[0066]
上面所述的解密者可以是任务发布者,也可以是系统中的其他符合要求的使用者。是否符合要求,要结合系统保密设计的需求而定。
[0067]
所述智能合约程序模块包括发布任务模块、任务调度模块、静态文件密文管理模块。
[0068]
所述静态文件密文管理模块作为智能合约的其中一个程序,运行在每一个区块链参与方的节点上(包括区块链物联网设备端节点、区块链服务器端节点)。
[0069]
该程序主体由一个键值对构成,即任务id和密文k0的映射,封装出两个函数,分别是增加add和提取get这两个函数。
[0070]
当用户需要解密静态文件时,首先需要获取密文k0。通过调用静态文件密文存储模块的合约get函数,传入任务id作为参数,即可获得密文k0。
[0071]
该密文是存储在智能合约中的,而智能合约又是运行、记录在区块链上的,因此该密文也是存储在区块链上的。
[0072]
另外,本实施例仅仅是对本发明基于智能合约的物联网设备调度系统,所作的基本表述,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供方法,此处不再赘述。
[0073]
实施例3:本领域的技术人员可以清楚地了解到上述实施例的系统及方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,节点打包设备,或者网络设备等)执行本发明各个实施例所述的方法。
[0074]
所以,本发明还提供了一种基于智能合约的物联网设备调度设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于智能合约的物联网设备调度程序,所述基于智能合约的物联网设备调度程序,配置有实现基于智能合约的物联网设备调度方法。
[0075]
另外,本发明还提供一种存储介质,所述存储介质上存储有基于智能合约的物联网设备调度程序。
[0076]
由于,在现实情况中,在部署设备或程序时,某个程序的运行可以是实行所有步骤,也可以是只实行某一步骤,并通过多个程序配合来实现全部步骤,所以,所述基于智能合约的物联网设备调度程序,在被执行时,实现基于智能合约的物联网设备调度方法中的全部或某一流程。
[0077]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献