基于MQTT协议的区块链智慧农业系统*

2021-12-05 09:33周久军陈兰丽
智慧农业导刊 2021年12期
关键词:合约服务器区块

熊 辉 ,陈 晴 ,周久军 ,陈兰丽

(1.武汉职业技术学院,湖北 武汉 430074;2.湖北理工学院,湖北 黄石 435003;3.瑞典乌普萨拉大学 工程科学系,瑞典 乌普萨拉 SE-75105)

党的十八大以来,党中央、国务院高度重视数字农业农村建设,作出实施大数据战略和数字乡村战略、大力推进“互联网+”现代农业等一系列重大部署。我国2018年开始实施《中共中央、国务院关于实施乡村振兴战略的意见》《国家乡村振兴战略规划(2018-2022年)》《数字乡村发展战略纲要》等,要求加强对农业生产数字化改造,增加农业遥感、物联网、大数据的应用,提高农业精准化水平,加快推动农业农村生产经营精准化、管理服务智能化、乡村治理数字化。

智慧农业是农业与信息技术的深度融合[1-3],充分利用区块链、物联网和云计算等信息技术,通过传感设备和大数据网络,对农业生产、流通、销售等各个环节实施精细化管理、自动化管理和智能化管理。智慧农业的开展有助于推动农业产业的转型升级,延伸农业产业链条,促进相关产业融合发展。

1 技术背景

1.1 区块链技术

区块链(Blockchain)是一种基于分布式记账本的共识机制[4]。区块链是在计算机网络节点之间共享的分布式数据库。作为数据库,区块链以数字格式用电子方式存储信息。区块链因其在比特币等加密货币系统中的关键作用而被广为人知。该系统被用于维护安全且分散的交易记录。区块链的创新在于,它保证了数据记录的保真度和安全性,并在不需要可信第三方的情况下产生信任。

典型数据库和区块链之间的一个关键区别是数据的结构方式。区块链以组的形式收集信息,称为“块”(block),包含一组信息。区块具有一定的存储容量,填充后,将关闭并链接到先前填充的区块,形成一个称为“区块链”的数据链。新添加的区块之后的所有新信息将编译成一个新形成的区块,填充后也将添加到链中。

区块链是一种协作的、防篡改的分类账,可以维护交易记录。交易记录(数据)被归类为块。通过包含基于前一块数据的独特标识符,块连接到上一个区块。因此,如果数据在一个区块中更改,则其唯一标识符更改,可在随后的每个区块中看到这些更改(提供篡改证据)。这种多米诺骨牌效应允许区块链内的所有用户知道前一个区块的数据是否被篡改。由于区块链网络难以更改或破坏,因此它提供了一种弹性的协作记录保存方法。

1.2 智能合约实现方法

智能合约(Smart contract)是一种计算机代码,可以内置到区块链中,以促进、验证或协商合同协议。智能合约在用户同意的一系列条件下运行。当这些条件得到满足时,协议条款将自动执行。智能合约是自动执行的合同,买卖双方之间的协议条款直接写入代码。

智能合约只是存储在区块链上的程序,在满足预定条件时运行。它们通常用于自动化协议的执行,以便所有参与者能够立即确定结果,而无需任何中间人的参与,不存在时间损失。智能合约使交易具有可追踪性、透明性和不可逆性。

智能合约使用编程语言进行编码,协议中的规则、条款和条件通过受控编码实施,反映了合同签订各方批准协议的所有要求。因此,智能合约的主要目标是将合同条款嵌入系统软硬件的组合中,使各方违约变得困难,违约成本变得高昂,最终增加合同的安全性,降低攻击的可能性。智能合约是区块链技术的自动化机制,区块链智慧农业将智能合约作为系统设计的核心,对农业过程中生产链、供应链、资金链实时跟踪和对所涉及的所有步骤实现总体控制。

1.3 物联网MQTT协议

物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。物联网设备(主要是低功耗传感器)将用于定期更新来自环境参数的实时数据。

消息队列遥测传输协议(MQTT:Message Queuing Telemetry Transport)[5]是IBM公司开发的物联网应用层协议。它运行在TCP/IP应用层中,依赖TCP协议,因此具有非常高的可靠性。它是一种ISO标准消息传递协议,旨在通过不可靠的网络连接各种传感器。

MQTT协议基于客户端-服务器模型,在协议中主要有三种身份:发布者(Publisher)、服务器(Broker)以及订阅者(Subscriber)。MQTT服务器为每个连接的客户端(订阅者)添加一个标签,该标签与服务器中的所有订阅相匹配,服务器会将消息转发给与标签相匹配的每个客户端,这样的一个标签就是主题。MQTT所发的消息包含主题和内容,客户端可以订阅任意主题,若有其他客户端发布主题时符合所订阅的主题,就会由网关发送到客户端。MQTT消息的发布者和订阅者都是客户端,服务器作为中转,将发布者发布的消息转发给所有订阅该主题的订阅者。

MQTT的主要优势主要表现在:(1)效率高。MQTT消息带宽小,这使其成为任何电池供电传感器的理想选择,使用MQTT作为消息传递协议可以延长传感器的电池寿命。(2)易于实现。MQTT能够简单实现接收远程传感器系统上的消息。由于大部分复杂工作都是在服务器上实现的,因此远程系统可以利用网络共享资源。(3)可靠性高。MQTT用于任务关键型传感器系统,允许通过声明其服务质量(QoS)级别来定义消息的重要性,在项目中使用MQTT可以让订阅者和发布者收到所有重要信息。(4)数据兼容性高。协议允许以消息、数字、单词,甚至可扩展标记语言(XML)或JavaScript对象表示法(JSON)发送任何类型的文本数据。

2 区块链智能农业系统的实现

2.1 区块链与MQTT协议集成交互

物联网设备适合以低功耗和低成本监控、收集数据,但物联网设备在信息安全方面存在短板,使用区块链作为基础网络可以解决这些问题。智慧农业通过物联网、区块链智能合约进行农产品供应链管理或生产可追溯性控制,可以使业务流程更加顺畅,节省流程处理的时间。区块链的关键特征是不可篡改,任何数据都不能在区块链内操作而不改变整个序列或历史,这个特性可以保护物联网设备上传的数据。在本文设计的场景中,智慧农业系统中积累的数据主要存储在MQTT云服务器。MQTT协议在其某些步骤中缺乏安全性,无法加密数据。为提高农产品可追踪数据的透明度,需使用区块链用于数据与云服务器的交互。

农产品、种子或者农药、农资产品分类集中储存在各地仓库中,方便运输和保存。一个典型的农产品储运系统,在仓库和运输车中应配置温度传感器、亮度传感器、湿度传感器等物联网设备,这些设备上定期产生数据,通过MQTT协议传送至云服务器。云服务器上加载了基于区块链的智能合约程序,智能合约将自动进行数据自检。若发现数据与智能合约中约定的关键指标不符时,将会作为一个事件记录在区块链中。同时,将数据保存在MQTT云服务器,通知订阅者查询。智能合约参与各方作为使用者,可以通过智能手机、电脑等设备,通过HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer))传输协议打开分布式应用程序,通过程序查看基于区块链MQTT云服务器的数据,并进一步形成决策。

2.2 基于MQTT协议的区块链智慧农业系统概述

智慧农业是信息技术、物联网硬件设备发展到一定阶段的产物。通过对农业生产的智能控制和精细化管理提高农业生产效率,通过对可信数据的精确感知,实现农业的产业化发展,系统提升农业的整体发展。未来我国将利用区块链构建农业可信数据平台,并在数据采集、数据存储以及数据应用三个方面不断拓展“区块链+物联网”智慧农业框架。图1是本文设计的一种基于MQTT协议的区块链智慧农业系统。

该系统的主要参与者是仓库、商店、农民、物流运输企业、批发商和零售商。首先,管理机构在区块链网络内部署合同,该网络标记为第1步。在第2步中,对区块链网络中分布式存储和物联网设备实施主题订阅机制,这使得物联网设备能够连接MQTT云服务器。在从第3步到第8步的农产品生产销售步骤中,物联网设备产生的数据定期收集并存储到MQTT服务器,而一些复杂或关键的数据则存储在区块链中。智能合约对数据进行定期检查,保障数据安全性、可追溯性并便于维护。系统各参与者通过创建基于主题的订阅发布系统连接到MQTT云服务器,MQTT协议在物联网传感器数据收集方面比超文本传输协议(HTTP)快,与标准HTTP相比属于轻量级应用[6],系统对异常数据响应时间非常迅速。由于区块链存储限制,因此系统不会将每个数据存储到区块链中。数据一般会通过MQTT服务器存储和提供,仅有智能合约要求的关键数据通过区块链保存。基于区块链智能合约的MQTT云有助于存储、共享和发布数据,使智慧农业系统内合同所有者各方能够有效聚合数据,形成共识,提高农产品生产销售效率。

3 结束语

智慧农业通过生产领域的智能化、经营领域的差异性以及服务领域的全方位信息服务,推动农业产业链的改造升级,实现农业精细化、高效化与绿色化,保障农产品安全、农业竞争力提升和农业可持续发展。智慧农业是我国农业现代化发展的必然趋势,基于MQTT协议的区块链智慧农业系统中区块链技术维护数据准确安全,智能合约保证交易透明公正,必将促进智慧农业进一步发展。

猜你喜欢
合约服务器区块
《红楼梦》的数字化述评——兼及区块链的启示
区块链助跑财资管理
2018年全球服务器市场将保持温和增长
一场区块链引发的全民狂欢
区块链助力企业创新
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵