基于联盟链的智能温室群数据共享及决策协同方案

2022-11-04 09:57
中国农业大学学报 2022年12期
关键词:决策分析哈希温室

景 旭 马 蓓

(西北农林科技大学 信息工程学院,陕西 杨凌 712100)

智能温室群数据共享及决策是指温室群中的智能控制系统工作过程中不同设备和控制系统之间交互数据的共享,以及在共享的基础上进一步做出决策,可以使得温室群中的数据得到合理的利用。不同温室内的物联网设备实现数据共享获取统一的决策标准,能够更加精准的控制温室内的环境。智能温室群的数据共享及决策可以为作物提供更优的生长环境[1],实现高效、连续的生产从而提高土地的利用率,并且可以使总体控制系统参照全局数据实现整体控制,避免了因为局部数据的局限做出不适宜作物生长的决策。智能温室群的数据共享及决策能够提升温室群的工作效率,提高作物的质量及产量,符合绿色发展的理念,具有重要的研究意义。

传统的农业物联网通过建立管理设备的控制系统实现数据的共享。例如,在单温室内设计分布式多源农林物联网感知数据共享平台[2]、环境信息采集和发布系统[3]、温室智能监控系统[4]、温室信息管理系统[5]、温度场监测系统[6]和分区灌溉系统[7],和提出温室环境相关活动自动化优化方案[8]、数据预处理和决策融合方法[9]等对农业物联网数据进行共享。在温室群中建立温室群双模糊调控系统[10]、温室群监控系统软件[11]、温室群环境远程监控系统[12],设计物联网群控终端变量协调控制方法[13],实现对温室群的管控。现有文献可以看出,目前无论是单个温室还是温室群数据在共享过程中,数据管理均存在超级管理员,具有任意篡改原始数据的权限,导致共享数据和决策结果不可信;在各个控制系统内,设备对决策的执行情况无法验证,不能准确判断设备工作状态。

联盟链[14]是仅对特定的组织团体开放的区块链[15]系统,主要特点是共识[16]过程受到预选节点的控制,其数据可能允许所有用户可读,也可能只允许受限于参与者读取。在结构上,联盟链采用“部分去中心化”的方式,将节点运行在组成联盟共同体的有限数量机构中[17]。联盟链由联盟成员机构共同维护,联盟节点通过成员机构的网关节点接入,并且联盟链具有防篡改性、可追溯性的特点,因此适用于智能温室群物联网多成员机构动态数据的存储、管理[18]。

针对上述问题,本研究拟采用联盟链实现智能温室群的数据共享及决策协同,以期解决温室群中数据共享不可信以及决策执行情况无法验证的问题,保证温室数据的可信共享以及决策执行结果的真实性。

1 基于联盟链的智能温室群数据共享与决策协同方案

1.1 智能温室群业务

单智能温室控制系统以独立温室的自动控制为主,主要关注局域环境的自动调控,缺乏多智能温室集中控制,缺少局域环境间的信息交换。它的调控机制一般是比较死板的程式化设置参数,缺少基于专家知识、针对具体作物生理特点和生长规律的灵活调控。

智能温室群是由数个智能温室组成的群体,可跨智能温室交换信息,在培育同一种作物的状态下,不同温室之间产生的环境数据和决策数据可相互作为信息源,为总体控制提供全面的数据依据,使温室内的环境控制做决策时更具有准确性,从而提高温室管理效率。多个温室在一个整体区域内分布,温室群分布要使各个温室尽可能的光照分布均匀、间距合适、方位合理[19]。在温室分布合理的基础上,需要各个温室单独控制温室内环境,即每个智能温室内都有独立的控制系统,控制系统主要由一些控制装置、传感器[20]以及边缘服务器整体联动构成。每个边缘服务器将传感器采集到的数据收集起来,作为决策的基础。根据做出的决策,边缘服务器发送命令至控制装置,最终达到调控环境的目的。通过建立智能温室群,在空间结构上可以解决独立管理复杂的问题。但是智能温室群数据共享时可能会存在数据不可信的问题,会导致协同决策结果不可信,不能为作物提供最优的生长环境;也可能会出现决策结果没有协同执行,影响温室群的总体调控效果。

1.2 方案总体框架

借助联盟链的数据防篡改性、强共识性保障数据高度可信等特点,本研究将单个智能温室的边缘服务器作为节点,以智能温室群组成联盟链,实现联盟链在智能温室群内共享数据,保证数据可信;联盟链上存储一段时间内环境数据的散列,将完整的数据汇聚到数据决策方,平衡了数据可信与环境数据上链存储量过大的矛盾;在可信数据集上基于人工神经网络的决策结果更加全面和准确;基于联盟链决策协同的执行过程,保证智能温室群精准控制,构建基于联盟链的智能温室群数据共享与决策协同方案。

本研究每个温室内的边缘服务器按角色划分为数据提供方和决策分析方。按照边缘服务器的角色和数据决策方为节点搭建联盟链网络,形成智能温室群联盟链网络的总体框架见图1。

图1 智能温室群联盟链网络的总体框架Fig.1 General frame of consortium blockchain network of the intelligent greenhouse group

1)传感器:主要包括土壤温湿度传感器、空气温湿度传感器、二氧化碳传感器、光照强度传感器等,与对应的边缘服务器连接,主要是用于采集智能温室环境信息。

2)控制装置:主要包括风机、湿帘、灌溉、遮阳、温控、天窗等装置,主要用于控制智能温室改变环境的状态。

3)数据提供方:集中采集类传感器采集的数据,为数据决策方提供数据。

4)数据决策方:利用数据提供方的历史数据离线训练决策模型;根据最近的环境数据,基于训练好的模型做出决策。

5)决策执行方:执行数据决策方的决策结果,调动控制装置执行。

6)联盟链网络:以数据提供方、数据决策方以及决策分析方作为联盟链节点,形成联盟链网络。联盟链网络中记录了智能温室群中不同节点间的交互日志[21]。

7)智能合约[22]:一系列部署在区块链上模块化、可重用、自动执行的链上代码。数据提供方、模型训练方和决策分析方通过调用智能合约在联盟链中存储或获取数据。

1.3 基于联盟链的智能温室群数据共享及决策协同交互流程

基于联盟链的智能温室群数据共享及决策协同的交互过程是数据提供方、数据决策方及决策分析方在联盟链网络中调用各类智能合约对数据进行操作。数据提供方将数据摘要上链,为数据决策方提供数据源可验证的依据。数据决策方将决策数据摘要上链以便于决策分析方从链上获取可验证的决策结果,发送至控制装置实现控制。决策分析方将执行状态数据及哈希值上链以便于验证决策结果执行的真实性。基于联盟链的智能温室群数据交互流程如下:

1)各类传感器采集温室内的环境数据后,传送到本温室的数据提供方,如图2中的①所示。

2)数据提供方调用存储数据的智能合约将自身数据资源的摘要存储到联盟链上;联盟链向数据提供方返回摘要的存储地址。数据摘要包含边缘服务器编号、哈希生成时间、哈希值A,如图2中的②所示。

3)数据决策方接收到数据提供方提供的数据,使用SHA256散列函数生成哈希值B;同时,从联盟链中获取相同数据存储在链上的哈希值A;将A与B比对一致的数据存储到数据决策方的本地数据库;数据决策方利用本地数据库的数据训练决策模型。

4)数据决策方利用数据提供方发送最近的环境数据传入决策模型输出决策结果,利用SHA256生成散列值,调用存储决策数据摘要的智能合约将数据存储到联盟链上,如图2中的③所示。

5)决策数据摘要存储到联盟链后,各决策分析方从联盟链上获取决策数据摘要并分析,将分析后的数据发送至控制装置,如图2中的④所示。

6)控制装置按照接收的分析结果执行指令,执行状态发生变化,向决策分析方返回当前执行状态;决策分析方调用存储状态数据的智能合约将返回的执行状态存储到联盟链上,保证决策结果的执行的可信性,如图2中的⑤所示。

图2 基于联盟链的智能温室群数据交互流程Fig.2 Data interaction process of intelligent greenhouse group on consortium blockchain

1.4 数据提供方数据存储流程

智能温室群中,每个边缘服务器对应不同的温室,边缘服务器记为ESi,i为边缘服务器的编号,i∈Z。在每个边缘服务器下层,连接着各种类型的传感器和控制装置。控制装置标记如下:风机SDF、湿帘SWP、灌溉SRW、遮阳SSU、温控STR、天窗SSK。

考虑到各类传感器采集环境数据的频率不同,对边缘服务器设定合理的存储数据的时间间隔,使数据提供方可以周期性地将数据摘要存储到链上。边缘服务器既是数据提供方又是决策分析方,则数据提供方可以提供决策分析方的决策结果。数据提供方的基础数据项包括服务器编号、传感器编号、采集时间、采集数据和决策结果。采集数据的数据项包括空气温度、空气湿度、二氧化碳浓度、光照强度、土壤湿度及土壤温度等。决策结果包括控制装置的类型和执行动作。数据提供方以设定时间段内的数据为一批次,借助于SHA256散列函数生成哈希值,记为哈希值A,并且记录生成哈希值的时间,记为T。数据提供方为了保证自身数据可验证,以key-value的形式将数据摘要上链,key值设定为边缘服务器编号ESi拼接哈希生成时间T,value值设定为哈希值A。数据提供方数据存储流程如图3所示。

图3 数据提供方数据存储流程Fig.3 Data storage procedure of the data provider

1.5 决策协同流程

1.5.1数据准备

数据决策方接收到数据提供方发送的基础环境数据和哈希生成时间(数据决策方标记为MT),利用SHA256散列函数生成哈希值B,并且根据数据提供方边缘服务器编号和提供的哈希生成时间作为key值,从链上获得相匹配的value值即哈希值A。数据决策方比对哈希值A和B,若比对成功,将数据提供方发送的数据保存至数据决策方的本地数据库;否则,不接受数据,以此保证数据的可信性。

1.5.2决策模型

人工神经网络[23]是基于现代神经网络对生物神经网络的研究抽象所得的运算模型,具有良好的自适应和自学习能力[24],可以很好地处理非线性问题。通常包含3层结构:输入层、隐藏层、输出层。输入层输入向量为X=(x1,x2,…,xn)T;隐藏层输出向量为H=(h1,h2,…,hm)T;输出层输出向量为O=(o1,o2,…,oi)T。输入层到隐藏层之间的权值用wij表示,阈值用vj表示;隐含层到输出层之间的权值用wjk表示,阈值用vk表示。具体人工神经网络示意图见图4。

x1,x2,…,xn为输入层输入向量X的元素;h1,h2,…,hm为隐藏层输出向量H的元素;o1,o2,…,oi为输出层输出向量O的元素;wij,vj分别表示输入层到隐藏层之间的权值和阈值;wjk,vk分别表示隐含层到输出层之间的权值和阈值。x1,x2,…,xn are the elements of the input vector X of the input layer;h1,h2,…,hm are the elements of the hidden layer output vector H;o1,o2,…,oi are the elements of the output vector O of the output layer;wij,vj respectively represent the weights and thresholds between the input layer and the hidden layer;wjk and vk respectively represent the weights and thresholds between the hidden layer and the output layer.图4 人工神经网络示意图Fig.4 Schematic diagram of artificial neural network

温室本身是一个多变量、高耦合、时变的非线性复杂系统[25],很难建立准确的数学模型,需要选择一个非线性的模型处理数据,所以本方案选用人工神经网络建立决策模型。温室群内决策时要同时确定控制装置类型和执行操作,共同组成决策结果。本研究使用2个人工神经网络,2个网络的输入参数一致,都以温室群内的基础环境数据和决策结果作为输入层的参数,第一个网络用于预测控制装置类型,第二个网络用于预测执行动作。输入层节点个数由输入量决定,则输入层确定为8个节点。输出层的节点由输出结果所决定,温室中的控制装置包括风机、湿帘、灌溉、遮阳、温控、天窗,则第一个网络对应的输出结果有6个;控制装置当中连续设备执行动作包括增大(上升)和减小(下降)2种状态,开关设备执行动作包括工作和关闭两种状态,则第二个网络对应的输出结果有4个。采用式(3)确定第一个人工神经网络隐藏层的节点数为11个,第二个人工神经网络隐藏层的节点数为6个。各层节点数确定,以第一个人工神经网络为例,信号传播过程为:

式中:hj为隐藏层输出向量H的元素;oi为输出层输出向量O的元素;wij,vj分别表示输入层到隐藏层之间的权值和阈值;wjk,vk分别表示隐含层到输出层之间的权值和阈值,其中i,k为输入层节点数,j为隐藏层节点数。f表示激活函数,这里选用sigmoid函数:

隐藏层节点数计算公式为:

式中:n为输入层节点个数;l为输出层节点个数;m为隐藏层节点数。

模型训练过程中,将训练数据分为训练集和测试集,训练集用来计算梯度和神经网络的权值,测试集用于验证模型的有效性,依此建立决策模型。

1.5.3决策数据上链

数据决策方得到决策模型后,将基础环境数据传入决策模型,从而输出基础环境数据对应的决策,将决策数据摘要以key-value的方式存储至联盟链中,key值设为服务器编号和利用基础环境数据生成哈希值的拼接,value值为控制装置、执行操作和决策数据哈希值。

1.5.4决策数据执行

当决策数据摘要存储到联盟链后,各决策分析方根据服务器编号和基础数据哈希值从链上查询匹配的决策结果。若匹配成功,则解析决策数据,解析结果发送至控制装置,控制装置执行解析结果并返回执行结果。决策分析方接收到控制装置的执行结果,记录决策返回时间,以决策返回时间和控制装置的编号为key值,决策执行结果为value值,存储控制装置的状态数据至联盟链。控制装置执行状态被存储,使得决策结果有反馈,能更准确的控制温室内的环境。若是匹配不成功,则无决策结果可执行,重新发送数据至数据决策方做决策。

2 基于联盟链的智能温室群数据共享与决策协同智能合约

在智能温室群中数据共享及决策协同的整个过程,多次调用智能合约完成节点在联盟链中存储和获取数据。存储的数据包括数据提供方数据摘要、数据决策方决策数据摘要以及决策分析方状态数据。获取的数据主要包括数据决策方哈希值和决策分析方决策数据。

1)数据决策方决策数据上链。

根据决策数据的存储流程,将设定好的key值和value值放入结构体DecisionInfo,DecisionInfo作为参数传入智能合约算法Decisioninfoupload (DecisionInfo),判断参数是否符合要求,符合执行PutState函数完成数据存储,不符合输出错误信息,如算法1所示。

算法1:

Decisioninfoupload (DecisionInfo)

输入:DecisionInfo

输出:("Decision data store Success/Decision data store Error")

var decisioninfo DecisionInfo

function,args:= stub.GetFunctionAndParameters()∥获取函数名,以及字符串

if function == "Decisioninfoupload" {∥函数名是否相同

if len(args) !=5 {∥判断参数个数

return shim.Error("Decision data store Error ")

} else {

DercisionInfoBytes,err:= json.Marshal(decisioninfo) ∥生成json数据

return PutState(DecisionInfoBytes) ∥数据上链}}

2)决策分析方决策数据获取。

将服务器编号ESi和基础数据哈希值BaseHashedValue放入结构体DecisionKey,作为唯一标识从链上查询对应的结果,判断参数是否符合要求,符合执行GetHistory函数完成数据查询,不符合输出错误信息,如算法2所示。

算法2:

Decisioninfodownload(DecisionKey)

输入:DecisionKey

输出:("Decision data store Success/Decision data store Error")

if function == " Decisioninfodownload" {

if len(args) !=3{

return shim.Error("Decision data store Error ")

} else {

return GetHistory(DecisionKey)}

3 测试与分析

3.1 测试环境

1)智能温室群的试验条件:智能温室4个,均种植了相同的番茄幼苗,对应ES1、ES2、ES3、ES4边缘服务器,控制装置包括风机、湿帘、灌溉、遮阳、温控、天窗各1个。

2)数据形式:数据来源于陕西省杨凌区揉谷镇温室群番茄幼苗生长1个月的数据,包括二氧化碳传感器、光照强度传感器、土壤温度传感器、土壤湿度传感器和空气温度传感器采集的数据。

3)联盟链网络:选用Hyperledger Fabric 1.4.0搭建联盟链网络。ES1、ES2、ES3、ES4、MT等peer节点充当记账节点,独立部署1个order节点。状态数据库采用levelDB,区块最大交易数为10 笔,最大打包时间间隔4 s。

4)人工神经网络算法:选用patrikeh的人工神经网络算法(https:∥github.com/patrikeh/go-deep.git)完成决策模型的训练。

5)系统环境:ubuntu虚拟机18.04,8 G内存,70 G存储磁盘。

6)性能测试工具:Hyperledger Caliper是一个通用的区块链性能测试框架,允许用户使用自定义的用例测试不同的区块链解决方案,并得到一组性能测试结果。

3.2 功能测试

1)智能温室群联盟链网络搭建。

本方案以智能温室群的边缘服务器和决策服务器作为节点搭建联盟链网络,分为边缘服务器组织和数据决策方组织。边缘服务器组织egdeserver有peer0.egdeserver.itcast.cn,peer1.egdeserver.itcast.cn,peer2.egdeserver.itcast.cn,peer3.egdeserver.itcast.cn等4个节点,既是数据提供方又是决策分析方,对应ES1、ES2、ES3、ES4;数据决策方组织training只有1个peer0.training.itcast.cn节点,对应MT。

2)数据提供方数据摘要存储及数据共享。

数据提供方向数据决策方发送了10 000条数据,将这些数据的摘要存储到链上,采用Hyperledger Fabric的命令行模式调用Sensorinfoupload函数完成数据上链,数据摘要存储后可使用Hyperledger explorer查看存储结果(图5)。决策数据上链的key值为ES1_2022-4-12 21:50,value值为:5362F9EF26CCE079BF48A39723D22C832FAF58BB149FCF1B5B95049C81048879,数据提供方发送数据证据存储成功。

3)模型决策过程。

数据决策方利用环境数据做决策,第一个神经网络决策出需要执行的控制装置,输入环境数据为:空气温度21.46 ℃,空气相对湿度29.49%,光照强度21 535 Lx,土壤相对湿度56.13%,土壤温度18.1 ℃,二氧化碳浓度2 613.95 μmol/L;控制装置中风机、湿帘、灌溉、遮阳、温控、天窗,分别对应矩阵的1,2,…,6列,输出的矩阵为[0 0 0 1 0 0],控制装置的决策中第4列为1,代表遮阳控制装置将执行动作。第二个神经网络决策出控制装置要执行的操作,设备状态包括打开、关闭、增大、减小,分别对应矩阵的1,2,…,4列,输出的矩阵为[1 0 0 0],设备执行动作的决策中第1列为1,代表要将遮阳板打开,以此降低温室的光照强度。

模型训练的过程中,随着训练次数的增加,第一个网络和第二个网络的精确度不断提升,训练次数达到3 000 次时,模型趋于稳定(图6(a));训练时间与训练次数呈正相关,训练次数为2 400 次时,第一个网络所需训练时间为44.43 s,第二个网络所需训练时间为33.69 s,整体上第一个网络所花费时间多于第二个网络(图6(b))。

图5 数据提供方数据摘要的存储结果Fig.5 Data summary storage results for data provider

图6 决策模型的训练效果Fig.6 Training effect of the decision model

4)决策数据存储。

数据决策方将决策数据摘要同样以key-value的形式使用invoke调用Decisioninfoupload函数完成数据上链,使用Hyperledger explorer查看存储结果(图7)。决策数据上链的key值为:ES1_c0 ed8e698101b2c95968a1b703b19c6f7cf85c91791b2c6977e5c84543422acd,value值为Control:4,decision:1,hashedValue:b11cefcc254daf1311f1a871f218b7ef667ffda7089cc7c5e530167112a9064d,ES1边缘服务器基础环境数据对应的决策数据上链成功。

图7 数据决策方的决策数据摘要存储结果Fig.7 The decision data summary storage results of the data decision maker

5)决策数据执行过程。

① 决策分析方从链上查询决策数据,使用invoke调用Decisioninfodownload函数完成数据链上查询,结果见图7。

②根据决策结果,决策分析方首先判断服务器编号,属于自身的服务器编号,对基础数据的哈希值进行比对,服务器编号和基础数据哈希值同时比对成功后解析决策数据,确定为1号温室内将遮阳装置打开。

③决策分析方将分析结果发送至控制装置,控制装置接收到指令,将遮阳板打开。

④控制装置接收到决策分析方的命令并执行后,向决策分析方返回执行状态,决策分析方将控制装置的执行状态上链,调用Stateinfoupload函数完成数据上链,使用Hyperledger explorer查看存储结果(图8)。状态数据上链的key值为:2021-10-12 9:10_SSU,value值为sensordata:1,hashvalue:26ea6c55f47a86db219f34acea41b4355244dd36e4195548ad7e40a86b2b8bbf;状态数据上链成功,可查询到遮阳装置的执行状态为1,代表遮阳装置执行了操作,决策结果得到了反馈,提高了决策的可信性。若是未达到环境控制的目的,可从链上查看设备执行情况。

图8 决策分析方的状态数据存储结果Fig.8 State data storage results for decision analysts

3.3 性能测试

在区块的最大打包数和最大存储量确定的情况下,改变区块打包时间,以此来测试向联盟链存储数据和从联盟链查询数据时的平均时延和吞吐量。

区块打包时间由2 s递增至10 s,设定决策数据上链与查链的交易总量为1 000,交易发送率为100事务数/s。区块打包时间为4 s时决策数据上链的平均时延最小为30.4 s(图9(a));区块打包时间5 或6 s时,决策数据查链的平均时延最小为0.022 s(图9(b))。

图9 决策数据上链和查链的平均时延Fig.9 Average delay on blockchain and query blockchain of the decision data

区块打包时间由2 s递增至10 s的过程中,区块打包时间为4 s时,决策数据上链吞吐量最大为27.3事务数/s(10(a));4 s之后,随着区块打包时间的增大,决策数据上链的吞吐量在不断下降。决策数据查链6 s时吞吐量最大(10(b)),但总体上随着区块打包时间的变化,决策数据查链吞吐量变化不大。因此,最终将区块打包时间设置为4 s。

图10 决策数据存储和查询的吞吐量Fig.10 Throughput of decision data storage and query

4 结 论

本研究分析了国内外智能温室数据共享及决策的现状,指出智能温室中数据共享及决策中数据不可信以及决策执行情况无法验证的问题,结合联盟链具有的防篡改和可验证的特点,提出了基于联盟链的智能温室群数据共享及决策协同方案。

本研究中每个温室内的边缘服务器按角色划分为数据提供方和决策分析方,以边缘服务器和数据决策方为节点搭建联盟链网络,形成符合智能温室群管理的总体框架;基于联盟链的智能温室群数据共享及决策协同的交互过程是数据提供方、数据决策方及决策分析方在联盟链中调用智能合约对数据进行操作,基于时序图设计了传感器、数据提供方、智能合约、联盟链网络、数据决策方、决策分析方、控制装置等实体之间的数据交互流程;数据提供方将时间段内的温室环境数据传送给数据决策方,并将数据摘要上链,以链上链下的方式实现数据哈希可验证;数据决策方接收可信的数据基于决策模型离线决策,将决策数据摘要以key-value的形式上链;决策分析方从联盟链上获得决策结果后,发送给控制装置执行,将执行结果存储到联盟链。利用Hyperledger Fabric 1.4.0搭建联盟链网络进行测试分析,结果表明该方案可以实现数据提供方摘要数据存储及数据共享、决策模型训练、决策数据摘要上链与决策过程的链上执行;当区块的最大打包数和最大存储字节确定的条件下,改变区块打包时间为2~10 s,得出当区块打包时间为4 s时,数据存储到联盟链中平均时延最低为30.4 s,吞吐量最大27.3事务数/s。

猜你喜欢
决策分析哈希温室
现代温室羊肚菌栽培技术
基于特征选择的局部敏感哈希位选择算法
苍松温室 苍松灌溉
苍松温室 苍松灌溉
哈希值处理 功能全面更易用
文件哈希值处理一条龙
可以避免一个温室化的地球吗?
赛博作战辅助决策分析框架设计
当前军事决策分析关注的几个问题
巧用哈希数值传递文件