张雅倩,刘江平*,陈晨
(1.内蒙古农业大学 计算机与信息工程学院,内蒙古 呼和浩特 010018;2.内蒙古自治区农牧业大数据研究与应用重点实验室,内蒙古 呼和浩特 010030)
伴随国家经济快速发展,人民生活水平不断上升,饮食逐渐趋于多样化,食品安全越来越受到公众关注。中国作为农产品生产、消费和贸易大国,质量安全监管仍存在许多亟待解决的问题[1]。从种植基地到消费者餐桌的农产品供应链涉及多个不同环节,包括生产、原料、加工、包装、运输、仓储、销售等,每个环节都有可能存在造成质量安全受损的因素[2]。为更合理监督农产品质量安全,全球各国政府、企业、科研机构和高校积极利用物联网、云计算、大数据、RFID(Radio Frequency Identi⁃fication,射频识别)、二维码、条形码等技术手段构建农产品质量安全溯源防伪系统,现已推广至水果、蔬菜、粮油、肉蛋类、水产品等多个领域,并初步取得成效[3-4]。但农产品供应链参与主体多、环节复杂多样、数据结构多源、产业链和周期较长、涉猎范围宽泛,传统溯源防伪系统多采用数据中心化储存,独自管理各个环节,容易造成数据孤岛化、共享性差、信息易篡改、可信性弱、数据不对称等问题[5]。因此,针对这样的情况研究先进溯源技术对保障农产品质量安全具有积极价值和重要意义。
溯源系统是一套以各类农产品可追溯标识为主线,利用科技串联农产品供应链各个环节,全程记录并跟踪农产品主要业务的信息系统[6]。传统农产品溯源系统多采用物联网技术作为基础,通过传感器网络采集生产、加工、运输、销售等过程数据,并在应用终端对数据进行处理分析,整个物联网溯源系统拥有无线感知信息、远程智能控制、软硬件结合等特点,可以实现农产品安全质量跟踪溯源[7]。刘一健等[8]提出基于RFID的生鲜农产品追溯系统,主要由中央数据库、各个追溯节点、质量安全预警检测、数据审计和产品信息查询系统共同组成,可实现通过短信、互联网、终端软件查询农产品追溯信息;王昆等[9]提出基于激光标签的农产品追溯系统,为农产品建立激光标签识别二维码,实现对农产品溯源信息的处理和融合;邱春红等[10]提出基于Hadoop开源数据处理架构的农产品追溯系统,采用物联网技术采集农产品供应链信息,将采集数据存储在HDFS(Hadoop Dis⁃tributed File System,分布式文件系统)中,可完成企业管理、产品追溯、产品展示、基础信息库、后台和系统管理等功能;王亿等[11]提出基于物联网的现代农产品溯源系统,硬件部分包含数据采集、定位、RFID、无线通信和LCD液晶显示屏模块,软件部分采用GS1代码编译,能够实现管理企业产品、产地、环境、库存等功能。
区块链是一种集合分布式数据存储、共识机制、点对点传输、智能合约、加密算法等计算机新型应用技术的共享账本[12],其实质是被称作区块的记录列表不断加长并通过密码学相互连接在一起。在防伪溯源系统中,区块链技术能够为供应链中的每一方提供相关角色的可追溯性信息[13],但节点用户仅能在共享系统中查看和存储产品数据,不可以随意做出修改,其主要优势有去中心化、可追溯性、公开透明、集体维护性、不可伪造、不可虚构和不可篡改[7]。张哲等[14]提出基于区块链技术的生鲜农产品追溯系统框架,分析生鲜农产品从种植养殖、生产加工、物流运输和分销销售全产业供应链的追溯现状和存在问题;艾洪福等[15]提出基于区块链技术的农产品溯源系统,运用超级账本方式搭建“主链+辅链”的溯源模型,并对具体农产品橘子进行相关实验;陈明等[16]提出基于区块链的河豚供应链可信溯源优化研究,设计多链存储和快速查询模式,为拥有复杂供应链的河豚行业提供高效安全的溯源模型。
综上所述,应用物联网技术实现农产品质量溯源的研究,虽然实现了“智慧农业”的基本需求,但溯源数据存放于中心数据库,不仅安全性难以得到保障,还存在信息获取困难、共享性差、信息不对称、监管效率低等弊端,而应用区块链技术的农产品质量溯源研究,重点在于框架搭建和效果实现,缺少区块链技术与农产品溯源系统融合的研究细节。本文设计了一种基于Hyperledger Fab⁃ric超级账本和物联网技术的农产品防伪溯源系统,构建“区块链+多数据库”溯源模式,结合相应前后端技术设计出农产品供应链溯源防伪管理平台,同时加入智能合约算法,为农户、原料厂商、加工厂商、运输部门、分销部门以及消费者提供信息管理和质量溯源服务,从根源上做到降低质量安全风险、精准定位问题产业、提高产品召回效率、保障人民健康安全。
农产品全产业供应链包含产前、产中、产后3个阶段,主要涉及育种、生产、种植、加工、仓储、物流、分销、零售企业和消费者等活动主体,控制节点包含育苗、种植、收割、加工、仓储、运输、检验、销售、购买和查询等主要环节,其中各环节的主要信息有育苗、环境、生产资料、检疫、资质、人员工作等,其特点是厂商独立、环节繁多、数据异构、缺乏标准,极易形成各自管理的“数据孤岛”,制约农产品质量防伪溯源和监督管理的发展[17]。
由此引入Hyperledger Fabric区块链技术设计农产品防伪溯源模型(图1),本文将农产品供应链主要划分为原料生产、农户种植、加工仓储、物流运输、分销批零、监管部门检测和消费者查询等多个环节。各个系统中分装不同的物联网监测设备用于采集相关信息,一方面可以减少人为因素干扰,保证上传数据的准确性和真实性,另一方面可以提升各系统农业自动化、智能化、数字化水平,利用物联网技术实时采集数据,做到精准部署、远程控制、科学栽培,提升农产品质量和产量。数据经过处理暂存于系统区块链节点的交易池中,节点利用P2P网络接收和广播交易信息,并将相应数据打包成区块,上传至区块链网络中,农产品区块链数据库负责存储系统节点上传的区块链信息。监管部门可以向溯源防伪系统发起检查农产品安全质量的请求,消费者也可以通过手机、电话、平板电脑、计算机等应用终端查看农产品包装上的二维码、条形码和RFID标签,从而检测自己购买农产品的质量安全。
图1 农产品防伪溯源模型Fig.1 Anti-counterfeiting traceability model for agricultural products
区块是组成公开账簿(区块链)链式存储结构的数据元素,聚合了交易数据、时间戳、前区块哈希值等信息,一般由区块头和区块体构成[18]。Hy⁃perledger Fabric区块的数据结构分为3大部分:Header(区块头)、Data(区块 体)、Metadata(元数据),其结构如图2所示,区块头包含3个字段,分别是当前区块号(number)、前区块头哈希值(pre⁃vious_hash)、前区块数据哈希值(data_hash);区块体只包含data字段,对应展示交易信息的数据,其中链码表示节点交易之间的智能合约,Certificate和Public Key分别表示交易过程中产生的证书及公钥;元数据和当前区块相关,主要用于描述区块体的相关信息,包含排序节点的配置文件夹、签名、证书、公钥、交易标记、偏移等信息。
图2 Hyperledger Fabric区块结构Fig.2 Hyperledger Fabric block structure
在区块链中有1种快速归纳和校验数据完整性的哈希二叉树数据结构Merkle树,用于采集并表示区块中的所有交易,其查询根节点存于区块体中。Merkle树是自底向上构建起来的,假设区块中存在4个交易信息,分别用Tx A、Tx B、Tx C、Tx D表示,经过哈希处理(Hash)得到HA、HB、HC、HD构成Merkle树的叶子结点,而A节点和B节点的哈希处理又组成了它们的父节点HAB,继续类似操作获得HAB和HCD节点组合成Merkle树根节点,该过程共产生32字节哈希值,同时归纳出4个交易的所有数据,不但节省空间同时还保证了数据的安全。
本文采用Hyperledger Fabric默认的哈希算法SHA256(Secure Hash Algorithm,安全散列算法),对于任意长度的消息,该算法都会产生1个256位被称作消息摘要的哈希值,该算法主要包含常量初始化、信息预处理、逻辑运算等流程。如图3所示,算法初始化常量指的是十六进制表示的8个初始哈希值(Hi)和64个混淆常量(Ki),分别取自自然数中前8个质数(2,3,5,7,11,13,17,19)平方根小数部分的前32位和前64个质数立方根小数部分的前32位;信息预处理过程的主要工作是将原始数据分成512 bit大小的块,若分块不足512 bit大小时,会为分块填充补1个bit 1,接着再补bit 0,直至区块总长度是512 bit的整数倍;逻辑运算是整个算法的核心部分,主要进行压缩函数处理,也就是拆解、扩散和混淆3个过程,首先将分块拆解成大小为32 bit的16个字(Wi),再将其扩散成64个字,经扩散得到的字Wi与混淆常量Ki结合,引入选择函数Ch(Choose)、多数函数Ma(Majority)、跨位相加函数∑0和∑1,其中选择函数Ch的作用是当H4的值为1时取H5的值,当H4的值为0时取H6的值,多数函数Ma的作用是0数量多的情况下取0,1数量多的情况下取1。64个扩散字经过64轮混淆计算后与初始哈希值相加得到本组的哈希值,将本组哈希值作为下一组的初始哈希值,再进行一系列计算直至得到最后1组哈希值。本文采用go语言实现SHA256算法,经过初始化常量、数据预处理、压缩函数扩散和混淆过程等多次循环计算获得系统最终的哈希值。
图3 SHA256哈希算法流程图Fig.3 SHA256 hash algorithm flowchart
Hyperledger Fabric中的智能合约是由事件驱动、获得多方承认、具有状态、可以部署在区块链平台上的1段程序代码,又称为链码(Chaincode),是区块链底层和应用系统交互的中间件,可以用计算机语言代替法律语言记录合约条款,其特点是数据透明、不可篡改、长期运行[19]。当智能合约被上传到区块链网络中,多方用户进行交易触发合约事先设置的自动执行条件,用户与执行程序代码的结果达成协议后更新数据库中合约的执行情况,同时监督合约条款的规范性,智能合约的执行控制权不会完全落入交易任一方,保证了追溯信息上传和用户之间交易的科学性[20]。本文实现的农产品溯源系统采用Hyperledger Fabric1.4智能合约,使用go语言进行编写,在Docker环境中执行,很大程度减少了人工参与,充分体现出区块链去中心化和数据防篡改的优势。
根据农产品质量安全溯源防伪信息需要多方参与、公开透明、方便查询等特点,本文采用区块链3.0阶段比较成熟的Hyperledger Fabric平台作为构建溯源系统的核心,该平台具备建立通道(Channel)的功能,允许参与者为交易新建独立账本,并且只有相同通道的参与者拥有该通道的账本,安全性能极高,可以满足所有溯源需求。本文设计的溯源防伪系统采用包含区块链层、物联网层和应用层的3层架构模式(图4)。
图4 农产品质量追溯系统架构图Fig.4 Agricultural product quality traceability system architecture diagram
区块链层包括数据存储层、服务层和接口层。Hyperledger Fabric的服务层是农产品溯源防伪系统的核心部分,有成员服务、区块链服务和链码服务3部分。成员服务提供注册、登记、申请证书等功能,只有当节点用户获得证书后才能加入区块链网络,这由Fabric CA组件进行处理,充分满足商业应用的隐私、安全、审计、监管需求。区块链服务负责实现分布式账本的存储计算、节点排序、P2P网络传输及背书验证管理等功能,是区块链的底层支撑。链码服务和底层账本之间是解耦的,更新时不会影响原来数据,本文利用go语言编写智能合约,在Docker容器中运行、安装和实例化后通 过GRPC(Google Remote Procedure Call,Google远程过程调用)通信协议连接相同通道的节点。接口层负责为第三方应用的二次开发提供调用接口,可以安装测试链码、查询交易数据和监听网络事件。数据存储层包括存储区块链世界状态的键值对类型数据库CouchDB、存储后台账号密码和系统菜单等管理信息的链下数据库MySQL、存储生成验证码和系统配置信息的Redis(Remote Dictionary Server,远程字典服务)数据库、存储图片资源的高性能分布式文件系统FastDFS,采用多数据库方式实现多级存储,可以有效减少私有链的存储容量,方便对接前端查询管理界面,不但实现节约资源的目标,同时还加快了查询速率。
物联网层包括感知层、传输层和终端层。感知层主要依赖光照、温湿度、气压、土壤氮磷钾、气体浓度等传感器采集农作物原料生产和农户种植环节的数据,利用RFID技术追踪农产品的物流、仓储、加工和销售信息,并利用传输层NB-IoT(Narrow Band Internet of Things,窄带物联网)、BlueTooth(蓝牙)、WiFi、以太网等通讯设备和协议自动上传数据至终端网页和小程序,整个过程多为机器参与,减少了人为因素干扰,增加了溯源信息可信性。
应用层包括用户层和终端层。用户层指的是使用该系统的监管部门、消费者和农产品供应链上的企业及工作人员,不但允许供应链参与主体通过系统终端层的网页和微信小程序上传原料生产、农户种植、加工仓储、物流运输、分销批零等基础数据,同时还为消费者和监管部门提供平台对农产品信息进行追溯查询。本文设计的终端层网页以RuoYi前后端分离框架和HTTP协议为基础,采用JavaScript、Vue、Html等语言进行开发,前端数据可视化操作界面通过调用服务器提供的API接口与后端数据库进行对接,为用户提供注册登录、请求权限、上传数据、管理数据等功能。
为农产品种植到销售的整个供应链引入物联网系统,准确实时上传农产品本身和物流信息,部署分为2部分,一部分应用温湿度、气体、光照强度、土壤氮磷钾含量、电导率、酸碱度、气压、风向传感器监测原料生产和农户种植过程,主要采集农作物生长周期内的肥料、种质、育苗、土壤环境、种植环境数据;另一部分应用RFID、条码识别技术追踪农产品加工仓储和物流运输过程[21],主要采集农产品加工工序、运输途经地等信息。本文根据农产品溯源部署需求设计出农田环境监测系统和运输物流追踪方案,这2部分物联网设备采集到的信息为区块链溯源系统提供主要数据来源,减少了人为因素干扰,提升了原始数据的可靠性和科学性。
其中农田环境监测设备的功能框图如图5所示,采用STM32F103RCT6芯片作为主控制器,连接温湿度传感器DHT11、光照强度传感器BH1750、土壤湿度传感器YL-69、气压计BMP180和型号为WH-NB73的NB-IoT模组,共采集温度、湿度、土壤湿度、气压以及光照强度5个环境变量,将采集到的数据通过NB-IoT基站主动上报至物联网云平台的服务器端,服务器会根据ModBus协议对数据进行解析处理,应用终端依赖物联网云平台JS JDK二次开发端口申请访问设备数据,并调用API接口引入数据分析、数据管理、数据可视化以及数据存储等功能,将农田环境信息展示在区块链溯源系统的种植过程详情界面中,农户可以利用该设备监测农田环境并及时调整种植方案,供应链其它环节企业及消费者可以利用该平台追溯产品生产地信息,确保农产品品质。
图5 农田环境监测设备功能框图Fig.5 Functional block diagram of farmland environmental monitoring equipment
另外,本文还为区块链溯源系统设计出关于农产品运输物流的追踪方案(图6),首先系统会赋予新添加的农作物1个ID号码,并根据该号码为农作物分配包含基本信息的RFID或二维码标签,当农作物每次经过筛选加工或者仓储运输工序时,员工可以通过生产车间的扫描端查看相关信息,该信息也会被上传至溯源平台的数据库中,系统可以实时更新并跟踪其物流动态,实现追溯过程透明化、科学化、及时化和准确化。
图6 农产品运输物流追踪方案Fig.6 Logistics tracking solutions for the transportation of agricultural products
本文在虚拟机Ubuntu22.04系统中设计搭建区块链网络实验环境,系统硬盘为100 GB,运行内存为4 GB,同时在Windows10的IDEA中搭建RuoYi前后端分离网页项目,前端和后端分别采用RuoYi-Vue和Spring Boot全新开源框架,应用Vue和Java语言进行编写,简化了搭建应用平台的过程。而其它主要软件及版本号如表1所示,采用较为稳定的Hyperledger Fabric1.4.0搭建区块链网络,在CouchDB数据库中存储账本信息,并使用go语言编写智能合约,使用Node SDK编写区块链网络的API,区块链网络和应用端的交互过程是网页端向服务器提交请求后调用区块链网络的中间件app.js,从而实现调用智能合约使业务数据上链和查询农产品区块链信息的功能。
表1 系统搭建试验软件环境Table 1 The system builds an experimental software environment
Hyperledger Fabric具有6大核心模块,分别是系 统 模 块peer、orderer、工 具 模 块cryptogen、con⁃figtxgen、configtxlator以及Fabric-CA[22],其具体作用如表2所示,利用这些模块构建系统基础区块链网络,其中不同组织(Org)由不同种类的peer节点构成。本文根据农产品供应链框架搭建的区块链网络共包含5个不同的组织,分别代表原料生产、农户种植、加工仓储、物流运输以及分销批零系统,每个组织可以根据实际需求录入多个peer节点。为减少试验复杂度,本文采用易于部署的So⁃lo机制为所有组织录入单一peer节点,客户端peer节点可以通过GRPC协议发起通信后与orderer节点连接将信息打包成区块存入账本数据库中,这种orderer-Solo单节点通信模式在本节点排序和生成区块,非常适用于独立开发和试验测试[23]。
表2 Hyperledger Fabric核心模块及作用Table 2 Hyperledger Fabric core modules and roles
在搭建好试验基础环境后利用Docker容器模拟多机系统部署区块链网络,过程如图7所示,首先生成系统和账本中的第1个区块,该区块信息包含在genesis.block文件中,接着利用configtxgen工具创建channel、生成锚节点文件、启动网络,然后分别启动orderer、peer节点,最后部署并调用智能合约。
图7 区块链网络部署流程Fig.7 Blockchain network deployment process
根据农产品供应链中参与方分工的不同,构建出具备不同功能的对应节点对农产品溯源过程的数据信息进行录入、存储和维护,5个组织对应的节点、域名、智能合约如表3所示,未列出的证书节点域名是ca.trace.com、共识节点域名是order⁃er.trace.com,表中org1表示农户种植组织、org2表示原料生产组织、org3表示加工仓储组织、org4表示分销批零组织、org5表示物流运输组织。
表3 供应链参与方与组织节点对应关系Table 3 Supply chain participants correspond to organiza⁃tional nodes
智能合约(chaincode)分别被安装在不同的peer节点上,通过GRPC协议与peer节点进行数据交互,其过程如图8所示,chaincode调用Start()方法向peer发送注册信息register,此时状态为[创建],peer收到消息后注册并更新状态为[建立],同时发送ready消息给chaincode,更新状态为[准备],接着进行初始化操作,chaincode收到peer发送的init消息后调用Init()代码,成功后返回com⁃pleted消息,此时chaincode可以被调用了,peer发送transaction消息给链码时调用chaincode,智能合约收到消息后会调用Invoke()方法并根据逻辑发送一系列消息给peer,同时peer也会做出相应回应,二者会定期发送keepalive消息以确保彼此的在线状态。
图8 智能合约与peer节点交互过程Fig.8 The process of smart contract interaction with peer nodes
本文设计的农产品溯源系统包含多个使用go语言编写的智能合约,所有智能合约根据crops_id这一参数溯源所有记录过程,其中Farmercc表示农户种植智能合约,主要包含物联网设备采集的农作物种植环境、农户ID、作物所在地等基本信息;Drivercc表示物流运输智能合约,包含司机姓名电话、物流途经地址、货物ID等信息;Materialcc表示原料生产智能合约,包含原料厂商负责人、检测结果、出入库时间等信息;Retailercc表示分销批零智能合约,包含分销批零店铺信息;Productpro⁃cesscc表示加工仓储智能合约,包含操作人员姓名、电话、操作时间等信息。每个智能合约都包含初始化Init()、交易Invoke()、查询queryById()和queryByCropsId()、初始化账本initLedger()、记录作物信息record()、添加信息create()等函数,以Farmercc运行过程为例,在Ubuntu系统终端chaincode/Farmercc/go目录下通过以下命令安装智能合约:
本文设计的农产品溯源防伪系统采用分布式多数据库上传存储数据(图9),系统利用CouchDB存储区块链最新世界状态交易账本信息,通过编写docker-compose.yml配置文件设置CouchDB用户名、密码、端口等信息,同时将管理后端的用户账号密码、系统菜单、管理信息等数据存储在安装于Ubuntu系统中的链下数据库MySQL中,Redis用于存储后端生成的验证码和系统配置信息,FastDFS用于存储大量的图片资源。
图9 分布式多数据库结构Fig.9 Distributed multi-database architecture
基于区块链和物联网技术的农产品溯源防伪系统搭建完成后,对其基本功能进行实验测试,在Ubuntu22.04系统中查看Docker容器的内容(图10),可以看出容器中主要包含chaincode、peer和orderer节点、CouchDB、MySQL以及FastDFS数据库,启动Docker容器即可启动所有区块链服务。
图10 Docker容器Fig.10 Docker containers
系统管理后端登录界面,包含用户名、登录密码以及验证码3个部分,验证码成功显示,证明平台与服务器端Redis连接成功,用户可以根据注册时录入的用户名和密码登录平台并对农产品供应链各环节数据信息进行管理和分析。
登录成功后,会进入区块链农产品防伪溯源平台,该平台不但可以成功记录产品、零售商以及物流信息,同时还可以展示出利用物联网设备采集到的农作物种子、幼苗、成苗生长环境的数据和图片。本文所做试验将内蒙古燕谷坊生产链的主要环节进行区分,并将其产品燕麦胚芽米添加至序列中,对区块链溯源系统的应用效果进行基本测试,主要测试系统对于燕麦胚芽米种植过程、流通行为、厂商质检、生产行为及农产信息存储等功能。
如图11所示,在用户管理界面中根据用户的身份创建不同的角色,每个角色都有不同的名称和权限字符,可以根据用户的工作需求赋予其相应的数据权限,也可对角色进行增删改查等基本操作。本文根据燕谷坊产业环节在系统中共设置7个角色,分别是普通用户、种植户、司机、原料厂商负责人、加工厂员工、加工厂商负责人以及零售商,将不同的角色划分到不同部门,其中种植户属于农户部门、司机属于运输部门、原料厂商负责人属于原料部门、加工厂员工及负责人属于加工部门、零售商属于销售部门。
图11 角色管理界面Fig.11 Role management interface
图12为农作物数据上链管理过程,(a)为农作物管理界面,该界面仅对种植户及超级管理员开放,种植户可以通过该界面添加并记录作物的一些基本信息,包含名称、类型、肥料名称、种植方式、年度、是否套袋、育苗、灌溉、施肥、除草周期、详细地址及备注。(b)为农作物链上数据详情界面,当种植户添加相关信息后,系统会为该作物赋予一个用于追溯防伪查询的ID号码,本文添加的农作物是燕麦,系统为其生成的ID号码为68173644076334567241。(c)为农作物链上种植过程详情界面,当赋予农作物ID号码后,物联网农田环境监测设备会向区块链溯源查询系统反馈作物的生长环境信息,将传感器所测温度、光照情况、土壤水分含量上传至农作物管理界面,一方面方便农户及时处理农田中不利影响因素,另一方面为区块链溯源系统提供更加科学的数据源。
图12 农作物数据上链管理界面Fig.12 Crop data on-chain management interface
模拟农产品发货物流状态追踪过程(图13),产品从梧州发货,途径来宾最终到达柳州,物流追溯过程展示在地图中,消费者可以根据产品ID号码迅速查看产品当前所在地、产品运输状态和通知人员信息。
图13 农作物物流追踪过程界面Fig.13 Crop logistics tracking process interface
由第三方监管部门根据国家安全标准为农产品提供相应质量检验(图14),当检验合格后会生成带有公章的检验报告,区块链系统负责将检验结果存储于数据库中,消费者可以通过搜索产品ID查看质检报告。
图14 厂商质检详情界面Fig.14 Manufacturer quality inspection details interface
图15展示产品生产加工管理过程,(a)为员工工作量证明界面,加工厂商负责人可以根据工作需求为员工分发任务,区块链系统会为员工记录相应工作量,证明其身份、工作时间以及操作内容;(b)为生产基本信息添加界面,只有厂商负责人和超级管理员有权限添加生产基本信息,主要包含品名、配料、负责人、生产车间、工时、存储方法、净含量以及食用推荐等;(c)为产品加工详情界面,当添加完生产基本信息后系统会实现生产信息数据上链,意味着防伪区块链正式形成,产品已经历过生产、加工、质检、运输等流水线作业。
图15 产品生产加工管理界面Fig.15 Product production and processing management interface
图16展示农产品溯源主界面,左侧为区块信息,分为区块高度、区块编号、前置Hash值以及数据Hash值;中间部分为产品和零售商信息,分为生产厂商、负责人、联系电话、产品名称、净含量、生产车间、工时、保存方法和食用推荐等信息,当在上方输入框中输入产品ID时就会展示这些产品基本信息;右侧为农产品种植过程、流通行为、厂商质检、生产行为以及农产信息功能框。
本文设计研究了一种基于Hyperledger Fabric区块链和物联网技术的农产品溯源系统,分析了现如今由单一物联网技术构建的溯源系统存在的不足,并设计出溯源模型,将农产品供应链环节划分成原料生产、农户种植、加工仓储、物流运输、分销批零、监管部门检测和消费者查询等多个部分,同时对实际搭建成功的溯源系统进行基础功能实验,测试表明通过该系统可追踪到原料、种植、加工、运输、检测以及销售等环节的关键信息,基本满足当前用户对农产品溯源系统的需求。
(1)本文将Hyperledger Fabric联盟区块链技术引入农产品溯源系统,发挥出区块链信息服务透明、数据不可篡改、可追溯性强的特点优势,保障了农产品复杂供应链数据不被随意隐藏和改动,提升了农产品溯源信息的安全性。
(2)将物联网技术与区块链技术相融合,利用传感器等硬件设备代替人工监测农作物种植环境,为农户提供更加科学种植方案的同时也减少了人工采集溯源信息不准确的影响。
(3)设计出链上CouchDB数据库结合链下MySQL数据库的多级存储方式,同时还利用Re⁃dis远程字典服务数据库存储验证码等信息,利用高性能分布式文件系统FastDFS数据库存储图片资源,相比于单一区块链数据库更易于查询过滤信息,提升了存储的可扩展性。
本文提出的农产品溯源方案不但可以保证消费者的合理权益,同时也可以为供应链企业提供信息服务,提升企业竞争意识,促进农产品行业健康发展,设计结构合理,具备一定的应用和推广价值。但方案目前还处于试验研究阶段,缺少应用案例,系统的功能还不够完善,为此后续还需优化区块链智能合约算法和数据存储技术,并通过实际应用提升系统的执行效率。