基于区块链的农情数据可信融合共享模型设计与实现

2023-07-14 01:30伍德伦时玉龙
安徽农业大学学报 2023年3期
关键词:农情哈希结构化

饶 元,伍德伦,时玉龙

基于区块链的农情数据可信融合共享模型设计与实现

饶 元1,2,伍德伦1,2,时玉龙1,2

(1.安徽农业大学信息与计算机学院,合肥 230036;2.智慧农业技术与装备安徽省重点实验室,合肥 230036)

为了提高现有农产品区块链溯源模型中的数据传输和查询效率,提出了基于区块链的农情数据可信融合共享模型。首先构建农情数据采集存储优化模型,通过Kafka节点接收网关数据并将结构化数据、非结构化数据哈希值存于区块链,非结构化数据存储于HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),提升了数据传输效率。其次设计农情数据融合重组共享模型,利用Spark将结构化数据进行重组融合,将融合后的结构化数据、非结构化数据索引存储于Hbase,融合数据哈希值存储于区块链,提升了溯源效率。最后构建农情数据可信验证应用模型,通过比对Hbase中的融合数据哈希值与链上融合数据哈希值、HDFS中各环节非结构化数据哈希值与链上环节哈希值甄别数据真伪,保证了数据的真实性、可信性。在此基础上设计了基于区块链的农情数据可信融合共享系统,并在一玉米供应链进行了实际应用。进行相关测试后发现,与传统的单链型追溯模型相比,本模型全供应链数据存储时间缩短5.26 %,数据查询时间缩短43.47 %。应用结果表明,此模型可以在保证数据可信前提下,通过数据的融合共享提高数据传输效率与数据查询效率,可为农产品供应链溯源系统的研发提供参考。

区块链;Spark;数据可信;融合共享;分布式存储;Hbase

农产品质量安全一直与大众的健康息息相关,迫切需要建立农产品质量追溯体系,实现对农产品产销过程的全面监管[1],而现有的质量追溯体系往往采用各环节主体自行管理,追溯数据可信度不高[2]。区块链技术可以确保数据的可追溯性[3],保证数据的安全性、可信性[4]。

区块链技术已经很好地应用于农产品质量追溯体系设计[5]。伍德伦等[6]利用企业信誉度评估算法来确保农产品产销环节上链数据真实可信。Ren等[7]提出了一种基于IPFS(InterPlanetary File System,星际文件系统)存储的双区块链解决方案,应用于传感器网络中的农业采样数据保护。于华竟等[8]提出了基于区块链多链架构的杂粮追溯模型,实现了追溯数据账本与链间交易记录的实时管控。杨信廷等[9]提出“数据库+区块链”的链上链下追溯信息双存储设计,建立了外联数据库索引的查询方法,通过优化存储架构提升了溯源效率。Leng等[10]设计了基于“用户信息链”和“交易链”的双链农商资源公链,提高了公共服务平台的公信力和系统的整体效率。任守纲等[11]设计了基于CSBFT区块链的农作物全产业链信息溯源平台,提升了数据上链效率。然而,现有的农产品追溯设计仍存在一些问题,农情数据具有异构的特点,包括了文本等结构化数据以及图片、视频等非结构化数据,传统的链上存储模式难以满足非结构化数据存储需求。现有的区块链追溯方法采用链上数据分散化存储模式,数据回溯效率低,采集数据的处理、传输机制也有待完善。

针对以上问题,本研究首先构建了农情数据采集优化存储模型,实现了农情结构化数据、非结构化数据的隔离性存储,提升了数据传输效率;其次设计了农情数据融合重组共享模型,通过分布式数据库存储与数据分类处理提高了农情数据的追溯效率;最后提出了农情数据可信验证应用模型,通过查询数据哈希与原始数据哈希比对保证了数据真实性、可信性。三者结合组成了基于区块链的农情数据可信融合共享模型,保证了数据真实可信前提下,数据传输、查询的高效性。在此模型基础上设计了相应系统并进行了实际应用,最后进行了总结。

1 材料与方法

1.1 Kafka技术与Spark技术

Kafka是由Apache软件基金会开发的一个开源流处理平台[12]。它是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据[13]。Kafka可通过集群来提供实时的消息,其架构由producer(消息生产者)、consumer(消息消费者)、broker(代理服务器)组成,消息都存放在broker上。producer、consumer向Kafka发送和消费数据需要先申请一个主题Topic,消息的生产者生产消息,消息的消费者消费消息都是面向Topic的[14]。本研究采用Kafka数据消费者接收网关发送的数据,并利用Topic消息队列将数据传输至Kafka数据消费者,提高了农情数据传输效率,具体方案如1.2.1节。

Spark是专为大规模数据处理而设计的快速通用的计算引擎[15]。Spark是基于内存计算框架,计算速度非常之快[16]。Spark将处理的每个任务都构造成一个DAG(directed acyclic graph,有向无环图)来执行,实现原理是基于RDD(resilient distributed dataset, 弹性分布式数据集)在内存中对数据进行迭代计算,以实现批量和流式数据的高性能快速计算处理[17]。在Spark 2.0之后,RDDs被Dataset/ DateFrame取代,它是像RDD一样的强类型,但在内部进行了更丰富的优化,它比RDD具有更好的性能[18]。本研究通过将各环节溯源数据转换为DataFrame类型数据,并利用Spark对全环节数据进行融合重组,提升了农情数据溯源效率,具体方案如1.2.2节。

1.2 基于区块链的农情数据可信融合共享模型设计

为了提升农产品区块链溯源系统中数据传输、查询效率,构建了基于区块链的农情数据可信融合共享模型,在农产品各产销环节服务器部署Kafka节点,组成Kafka集群;在农产品各产销环节服务器部署区块链节点,组成区块链网络。其中,区块链网络中智能合约包括存储智能合约、查询智能合约、融合智能合约。存储智能合约主要负责数据上链,验证上链数据、格式是否符合标准;查询智能合约主要负责链上结构化数据查询;融合智能合约主要负责融合后的结构化数据哈希查询。在农产品各产销环节服务器部署HDFS数据节点,在产销链条末尾环节服务器部署HDFS元数据节点,组成HDFS集群。通过服务器、传感器、网关等设备协作,满足农情数据的采集、传输、存储与溯源需求。具体地,如图1所示,基于区块链的农情数据可信融合共享模型由农情数据采集优化存储模型、农情数据融合重组共享模型、农情数据可信验证应用模型三部分组成,通过各模型间配合,提升数据传输效率与查询效率。下面将对各模型进行详细介绍。

图1 基于区块链的农情数据可信融合共享模型

Figure 1 Blockchain based reliable fusion and sharing model of agricultural data

1.2.1 农情数据采集存储模型设计 为了提升农情数据的传输效率,改进现有的农产品区块链存储架构,如图2所示,设计了农情数据采集优化存储模型,在农产品生产、加工、存储、运输、销售等关键环节,部署传感器等物联网设备进行数据采集,采集文本等结构化数据与视频、图片等非结构化数据。通过网关将数据发送至各环节服务器Kafka数据生产者。Kafka数据生产者按所接收数据的特征将其分为结构化数据和非结构化数据,利用Topic消息队列向Kafka数据消费者发送数据。负责结构化数据存储的区块链节点被设置为结构化数据消费者,接收Kafka节点发送的结构化数据;HDFS数据节点被设置为非结构化数据消费者,接收Kafka节点发送的非结构化数据。各环节服务器上的HDFS数据节点按照环节非结构化数据数据项进行分区,通过HDFS数据节点存储非结构化数据,HDFS元数据节点存储非结构化数据目录结构。同时在各环节服务器存储HDFS元数据节点的目录结构。

具体地,进行农情数据存储时,Kafka数据生产者对农情数据进行分类,首先进行非结构化数据存储,部署在环节服务器上的HDFS数据节点,在本地服务器HDFS目录结构文件上查找文件是否存在,如果已存在,直接返回错误信息,否则,HDFS数据节点根据非结构化数据数据项将各数据项存储到相应分区。存储过程具体步骤为:HDFS数据节点向产销链条末尾环节服务器元数据节点发送数据存储准备就绪消息,元数据节点收到HDFS数据节点提交的信息后,发送确认信息给HDFS数据节点。HDFS数据节点收到确认信息后,将数据写入,随后元数据节点更新目录结构,并与本地服务器HDFS目录结构文件同步。最后,服务器数据哈希计算程序利用MD5哈希算法计算非结构化数据哈希值。

图2 农情数据采集优化存储模型

Figure 2 Optimized storage model for agricultural data collection

在农情数据中的非结构化数据存储完成后,将进行结构化数据、非结构化数据哈希值存储,首先,各环节区块链节点调用存储智能合约判断上传数据中是否包含非结构化数据哈希值等数据项,以判断数据格式是否符合标准,若数据项皆为键值对格式且数据项数目与类型正确,继续判断各数据项的值是否在合约标准之内,若数据符合标准,则将数据上传至区块链网络。存储智能合约代码逻辑如下。

算法1:存储智能合约代码逻辑

输入:数据上传节点,结构化数据,非结构化数据哈希值;

输出:操作结果,区块信息;

If(数据上传节点身份正确)

If(结构化数据格式正确&&非结构化数据哈希值!=null)

For(数据项 In 结构化数据)

If(数据项符合标准)

上传数据数组.put(数据项)

Else

输出数据项内容不正确

上传数据数组.put(非结构化数据哈希值)

上传数据数组存储于区块链网络;

输出操作结果与区块高度,交易哈希;

Else

输出数据格式异常;

Else

输出节点身份不正确。

Figure 3 Agricultural data fusion, reorganization and sharing model

1.2.2 数据重组融合模型设计 为了提升农情数据的查询效率,如图3所示,在农情数据采集优化存储模型基础上,构建了农情数据融合重组共享模型,在全供应链农情数据存储成功后,末尾环节服务器作为客户端在各环节服务器HDFS数据节点中查询批次标识为当前批次标识的非结构化数据,批次标识即一批产品的主键,它的格式为:“产品标识(产品的主键)”+“产品品种”+“批次采收时间”。具体地,首先,客户端在本地服务器HDFS目录结构文件查询非结构化数据对应的块及文件所在数据节点位置。客户端收到文件位置信息后,与各环节数据节点建立socket连接并行获取非结构化数据。随后,客户端根据文件大小判断文件类型,若数据小于64 兆字节,则判断为小型非结构化数据,通过SequenceFile将多个小型数据合并为不超过64 兆字节文件,记录为键值对列表。在设计索引时,Key的内容为“BID+SFileID+offset”,Value存储数据内容。其中,BID指具体数据块,SFileID指数据块中具体的SFile位置,offset代表图片在SequenceFile中存储的偏移量。将得到的索引存储于Hbase(Hadoop Database)。若数据大于64 兆字节,则判断为大型非结构化数据,先对数据建立分块索引,再将生成的数据索引存储于Hbase,以保证索引与HDFS中非结构化数据的映射关系。在非结构化数据索引建立成功后,将进行结构化数据融合重组,具体地,产销链条末尾环节区块链节点调用查询智能合约,通过批次标识查询出该批次各环节链上数据。查询智能合约逻辑如下。

算法2:查询智能合约代码逻辑

输入:产销链条末尾区块链节点,批次标识;

输出:溯源数据;

If(节点身份正确)

If(批次标识存在)

查询链上批次标识与当前批次标识相同的数据;

输出批次全环节数据;

Else

输出批次标识错误;

Else

输出节点身份异常。

Figure 4 Application model of agricultural data credibility verification

随后,区块链节点将各产销环节结构化数据转换为DataFrame类型数据,并将各环节数据区块号与交易哈希值作为数据列添加至DataFrame。将得到的DataFrame类型数据提取多项数据列,将批次标识作为主键调用Spark的SQL语句以及方法进行多列数据的关联重组,生成DataFrame类型融合数据,随后对融合数据进行MD5哈希计算得到哈希值,调用存储智能合约将哈希值上传至区块链网络,最后调用Hbase数据写入接口将融合数据存储于Hbase。

1.2.3 数据可信验证模型设计 为了保证农情数据的真实性、可信性,如图4所示,在农情数据融合重组共享模型的基础上设计了农情数据可信验证应用模型,用户通过扫码等操作可调用数据验证接口进行数据验证。具体地,首先进行非结构化数据验证,产销链条末尾环节服务器作为客户端调用HDFS数据查询接口,向元数据节点发送包含了数据分块索引、文件索引、批次标识信息的读文件请求,如果文件不存在,则返回错误信息,否则,元数据节点将该文件对应的块发送给客户端。客户端收到文件位置信息后,与各环节数据节点建立socket连接并行获取数据。随后将数据按照环节进行划分,对各环节数据计算MD5哈希值,与链上对应环节哈希值进行对比,甄别数据真伪。在非结构化数据可信验证完成后,继续调用结构化数据验证模块,末尾环节区块链节点调用融合智能合约根据批次标识查询当前批次融合数据哈希值。随后在Hbase中根据批次标识读取DataFrame类型融合数据,将融合数据进行MD5哈希运算得到哈希值,并将哈希值进行比较,以甄别数据真伪。其中,融合智能合约逻辑如下。

算法3:融合智能合约代码逻辑

输入:产销链条末尾区块链节点,批次标识;

输出:融合数据哈希值;

If(节点身份正确)

If(批次标识存在)

查询链上批次标识与当前批次标识相同的融合数据哈希值;

输出融合数据哈希值;

Else

输出批次标识不存在;

Else

输出节点身份异常。

2 结果与分析

基于区块链的农情数据可信融合共享系统可用于提升农情数据传输效率与溯源效率。保存农产品各环节产生的关键农情数据,并将数据进行安全性储存与高效展示。对本系统各个功能模块进行了细化,系统分为采集层、传输层、存储层、重组层、应用层,如图5系统架构图所示。

采集层主要由各环节节点的传感器设备组成,包括监控设备、温度采集设备、湿度采集设备、光照采集设备、监控等,负责采集农产品产销各环节产生的关键农情数据。传输层由各节点网关与Kafka服务器组成,由传感器设备将数据发送至网关,再由网关将数据发送至Kafka服务器数据生产者,实现数据的高效传输。存储层由区块链与HDFS组成,其中,Kafka发送的结构化数据、非结构化数据哈希值存储于区块链,非结构化数据存储于HDFS,实现结构化数据、非结构化数据的隔离性存储,保证数据的可信性、真实性。重组层由结构化数据重组与非结构化数据重组两部分组成,其中结构化数据利用Spark融合重组为完整供应链数据,将融合数据存储于Hbase,融合数据MD5哈希值存储于区块链网络;其中非结构化采用数据分类建立索引的方式,将索引存储于Hbase,以提高溯源效率。在应用层,提供消费者扫码溯源、农情数据分析等服务,实现农情数据价值传递。

图5 系统架构

Figure 5 System architecture

基于区块链的农情数据可信融合共享系统采用Hyperledger Fabric构建。其环境基础为Centos 7.5、Docker 18.09、fabric-sdk-node 2.2。虚拟机配置为:32 G内存、16 核处理器、16 G硬盘,带宽为20 Mb/s。采用区块链基准测试工具Hyperledger Caliper 生成测试结果。系统主要采用Java、Golang、Javascript编写。移动端采用微信小程序搭建,后端采用SpringBoot框架实现。玉米供应链一般包括玉米的种植、存储、加工、运输以及销售环节,为了实现供应链各环节数据的高效查询与传输,采用了本系统进行了优化。如图6(a)所示,为本系统小程序扫码后溯源环节总览页面,可以查看到各环节溯源信息图片、各环节哈希等,选择种植环节进行点击后,可进入如图6(b)所示的种植环节详情页面,可查看到种植玉米品种、种植地点、种植农场、种植哈希值、视频链接等信息。

图6 玉米溯源页面

Figure 6 Corn traceability page

图7 相关测试

Figure 7 Related tests

为了验证基于区块链的农情数据可信融合共享系统的数据写入与查询效率,测试了全供应链数据存储耗时,为了保证测试结果的真实可靠,验证此模型的查询与存储效率是否高于现有的单链型农产品区块链追溯模型,与单链型农产品区块链追溯模型进行了100 次数据存储、查询效率对比测试。将本研究方法称为改进方法,单链型追溯方法称为传统方法。将每10次测试结果的平均值作为最终值,如图7(a)所示,改进方法供应链数据存储耗时为5.400 s,单个环节平均耗时1.080 s;传统方法供应链数据存储耗时5.700 s,单个环节平均耗时1.140 s,改进方法数据存储时间缩短5.26 %;如图7(b)所示,改进方法追溯平均耗时0.355 s,传统方法追溯平均耗时0.628 s,改进方法追溯时间缩短43.47 %。可见,本系统可明显提升数据查询效率。

3 讨论与结论

与现有农情数据存储溯源模型相比,本模型具有明显的优势:

(1)本研究提出的数据采集存储优化模型,在各环节服务器部署Kafka,组成Kafka集群;在各环节服务器部署区块链节点,构建区块链网络;在各环节服务器部署HDFS数据节点,在产销链条末尾环节服务器部署HDFS元数据节点,构成HDFS集群。在各环节节点部署多传感器设备、多网关,采用了“传感器-网关-Kafka集群”的数据传输逻辑,提高了数据的传输效率。通过在各环节部署HDFS数据节点,分区存储环节数据数据项,产销链条末尾环节服务器元数据节点记录文件目录结构,可提高非结构化数据存储效率。

(2)本研究提出的数据分类融合重组模型,通过对数据按其特征分类为结构化数据与非结构化数据,对结构化数据采用Spark进行数据重组融合、融合数据哈希值上链的方式,对非结构化数据采用按数据大小分类建立索引的方式,解决了链上数据存储分散化造成溯源效率较低的问题,提高了溯源数据的查询效率。

(3)本研究提出的数据可信验证应用模型,可有效保证从Hbase中查询得到的结构化数据、从HDFS中查询得到的非结构化数据的可信性、真实性。对结构化数据采用Hbase中重组数据与链上融合数据哈希值对比的方式,甄别数据真伪;对非结构化数据采用HDFS中各环节数据哈希值与链上数据哈希值对比的方式,甄别数据真伪,保证了数据的可信性。对模型进行应用后发现,此模型单环节数据存储平均耗时为1.080 s,用户溯源平均耗时为0.355 s,与现有的传统型追溯模型相比,此模型追溯时间缩短43.47 %,数据存储时间缩短5.26 %,可提升溯源数据查询效率,可为农产品溯源系统的设计与研发提供参考。

[1] 王新平,柴尚森. 基于多准则决策的食用农产品追溯体系效能影响因素分析[J]. 食品科学,2022,43(5):46-54.

[2] 杨信廷,王杰伟,邢斌,等. 基于区块链的畜牧养殖资产监管身份认证研究[J]. 农业机械学报, 2021, 52(11): 170-180.

[3] 王祖良,郭建新,张婷,等. 农产品质量溯源RFID标签批量识别[J]. 农业工程学报,2020,36(10):150-157.

[4] BABICH V, HILARY G. OM forum-distributed ledgers and operations: what operations management researchers should know about blockchain technology[J]. Manuf Serv Oper Manag, 2020, 22(2): 223-240..

[5] 袁勇,王飞跃.区块链技术发展现状与展望[J]. 自动化学报,2016,42(4):481-494.

[6] 伍德伦,饶元,许磊,等. 农产品区块链信息可信评估差异化共享模型设计与实现[J]. 农业工程学报, 2022, 38(11): 309-317.

[7] REN W, WAN X T, GAN P C. A double-blockchain solution for agricultural sampled data security in Internet of Things network[J]. Future Gener Comput Syst, 2021, 117: 453-461.

[8] 于华竟,徐大明,罗娜,等. 杂粮供应链区块链多链追溯监管模型设计[J]. 农业工程学报,2021,37(20):323-332.

[9] 杨信廷,王明亭,徐大明,等. 基于区块链的农产品追溯系统信息存储模型与查询方法[J]. 农业工程学报, 2019, 35(22): 323-330.

[10] LENG K J, BI Y, JING L B, et al. Research on agricultural supply chain system with double chain architecture based on blockchain technology[J]. Future Gener Comput Syst, 2018, 86: 641-649.

[11] 任守纲,何自明,周正己,等. 基于CSBFT区块链的农作物全产业链信息溯源平台设计[J]. 农业工程学报, 2020, 36(3): 279-286.

[12] 高洪皓,开金宇,周家安,等. 基于概率模型检验的Web服务系统可靠性分析[J]. 东南大学学报(自然科学版), 2017, 47(S1): 132-139.

[13] 金双喜,李永,吴骅,等. 基于Kafka消息队列的新一代分布式电量采集方法研究[J]. 智慧电力,2018,46(2):77-82.

[14] 王郑合,王锋,邓辉,等. 一种优化的Kafka消费者/客户端负载均衡算法[J]. 计算机应用研究, 2017, 34(8): 2306-2309.

[15] 吴信东,嵇圣硙. MapReduce与Spark用于大数据分析之比较[J]. 软件学报,2018,29(6):1770-1791.

[16] 王晨曦,吕方,崔慧敏,等. 面向大数据处理的基于Spark的异质内存编程框架[J]. 计算机研究与发展, 2018, 55(2): 246-264.

[17] 卞琛,于炯,英昌甜,等. 并行计算框架Spark的自适应缓存管理策略[J]. 电子学报,2017,45(2):278-284.

[18] 张鹏,段磊,秦攀,等. 基于Spark的Top-k对比序列模式挖掘[J]. 计算机研究与发展,2017,54(7):1452-1464.

Design and implementation of trusted fusion and sharing model of agricultural data based on Blockchain

RAO Yuan1,2, WU Delun1,2, SHI Yulong1,2

(1. School of Information and Computer, Anhui Agricultural University, Hefei 230036;2. Anhui Provincial Key Laboratory of Smart Agricultural Technology and Equipment, Hefei,230036)

In order to improve the efficiency of data transmission and query in the existing blockchain traceability model agricultural of agricultural products, a Blockchain-based model of trusted fusion and sharing of agricultural data is proposed. Firstly, the optimization model of agricultural data collection and storage is built. The Kafka node receives the gateway data, stores the structured data and unstructured data hash values in the Blockchain, and stores the unstructured data in HDFS (Hadoop distributed file system), which improves the data transmission efficiency. Secondly, the agricultural data fusion, reorganization and sharing model is designed. The structured data is reorganized and fused by Spark. The index of the fused structured data and unstructured data is stored in Hbase, and the hash value of the fused data is stored in the Blockchain, which improves the traceability efficiency. Finally, an application model of agricultural situation data credibility verification is constructed. By comparing the hash value of fusion data in Hbase with the hash value of on chain fusion data, and the hash value of unstructured data in each link of HDFS with the hash value of on chain link, the authenticity and credibility of the data are ensured. On this basis, a trusted fusion and sharing system of agricultural data based on Blockchain is designed and applied in a corn supply chain. After relevant tests, it is found that compared with the traditional single chain traceability model, the data storage time of the whole supply chain of the model proposed in this paper is shortened by 5.26%, and the data query time is shortened by 43.47%.The application results show that this system can improve the data transmission efficiency and data query efficiency through data fusion and sharing on the premise of ensuring data credibility, and can provide a reference for the research and development of agricultural product supply chain traceability system.

Blockchain; Spark; reliable data; integration and sharing; distributed storage; Hbase

10.13610/j.cnki.1672-352x.20230625.004

2023-06-26 17:04:49

TP309.2; TS207.7

A

1672-352X (2023)03-0550-07

2022-06-28

安徽省重点研发和开发计划项目(201904a06020056),安徽省自然科学基金项目(2008085MF203)和安徽省财政农业科技成果转化项目(2022ZH014)共同资助。

[URL] https://kns.cnki.net/kcms2/detail/34.1162.s.20230625.1450.008.html

饶 元,博士,教授。E-mail:raoyuan@ahau.edu.cn 伍德伦,本科生。E-mail:3195949821@qq.com

猜你喜欢
农情哈希结构化
重庆市农情调度体系建设现状及对策分析
促进知识结构化的主题式复习初探
结构化面试方法在研究生复试中的应用
基于OpenCV与均值哈希算法的人脸相似识别系统
基于 Zigbee 网络的农情监测系统设计
基于图模型的通用半结构化数据检索
基于维度分解的哈希多维快速流分类算法
新疆农情信息调度系统建设现状及对策
基于同态哈希函数的云数据完整性验证算法
基于软信息的结构化转换