基于Hyperledger Fabric的稻米质量溯源系统的设计与实现
2022-05-30朱克涛胡胜桃
朱克涛 胡胜桃
摘要:针对以集中式数据库为中心的传统溯源系统中存在溯源数据易被篡改及可信度低的问题,在对稻米流通环节及溯源需求进行分析后,该文提出基于区块链技术分支中的Hyperledger Fabric构建稻米质量溯源系统,通过调用智能合约将稻米信息存储在分布式账本中,由于区块链技术具有防篡改性和去中心化的特点,能够保证稻米信息不易被篡改,从而提高稻米溯源信息的可信度,通过对系统进行吞吐量测试,试验结果表明本系统可应用于生产实践当中。
关键词:稻米;Hyperledger Fabric;智能合约;溯源信息
中图分类号:TP399 文献标识码:A
文章编号:1009-3044(2022)21-0041-03
开放科学(资源服务)标识码(OSID):
1 引言
稻米是世界上最重要的粮食作物之一,是全球农业经济的重要支柱[1]。近年来,食品安全问题频发,农药、化肥、生长调节剂、兽药等化学品滥用,工业废弃物排放增加,造成毒大米泛滥,严重危害了人民的身体健康[2]。构建一个溯源系统可以追溯稻米来源,有效解决质量安全问题[3]。
目前,在对稻米溯源系统的研究上,主要以物联网技术、RFID、二维码技术、无线传感网络等为基础,对稻米从农田到餐桌的过程中产生的数据进行追踪溯源。传统农产品溯源系统普遍以集中式数据库为中心[4],从种植到销售的各个环节产生的数据都上传至集中式数据库中,这会带来数据安全问题:一些商家可能会通过篡改数据而改变溯源数据的真实性;中心化数据库一旦遭到攻击或者发生损坏,其溯源数据可能会被破坏甚至消失;由此消费者无法获取到可信的溯源数据。
区块链技术具有去中心化存储、隐私保护、防篡改等特点[5],提供了开放、分散和容错的事务机制,成为新一代匿名在线支付、汇款和数字资产交易的核心,被广泛应用于各大交易平台[6]。可以将这些技术与溯源业务结合起来进而提高大米溯源的可信度和安全性。本文结合稻米从种植到销售的流通过程(业务逻辑)提出采用Hyperledger Fabric构建稻米质量溯源系统,并通过安徽牧马湖农业开发集团的稻米溯源案例对提出的溯源系统进行安全性和业务性能分析。
2 系统模型
2.1 稻米质量溯源流程分析
通过对牧马湖农业开发集团下的稻米种植基地的考察,稻米流通主要分为五个环节:1)种植环节,将育苗期的水稻秧苗下地种植。2)加工环节,水稻成熟后需对其进行剥壳、焯米、半成品加工等一系列的操作。3)质检环节,对加工好的水稻按批次取样抽检。4)运输环节,质检合格的稻米通过货车运输至各销售点。5)销售环节,对接收的稻米产品进行签收以及出售。每个环节通过客户端对应的链码将信息上传至区块链网络中,数字编码在系统中具有唯一性,消费者可以通过数字编码在对应客户端中查询稻米的流通信息,溯源流程如图1所示。
2.2 系统架构
Hyperledger Fabric作为联盟链的代表具有去中心化、部署成本低、可扩展性高和数据安全可追溯等特点[7],其介于公有链与私有链之间,相较于公链更加适合企业内部管理,只有通过认证才可以加入联盟链中,相较于私有链能够对外服务,联盟链更加符合实体对象较多的应用场景,本文研究对象中涉及多方实体对象,所以本文选择Hyperledger Fabric作为区块链的技术切入点。
系统架构主要分为数据层、网络层、合约层、应用层,如图2所示。
1)数据层包括水稻种植信息、加工信息、质检信息、运输信息、销售信息的采集。
2)网络层采用Hyperledger Fabric的去中心化的分布式网络,加入同一通道中的节点可以通过锚节点进行通信,通过Kafka共识算法确保交易的一致性。
3)合约层方面,通过上述分析的溯源流程,针对每个环节编写不同的智能合约(基于Go语言),通过智能合约实现应用与区块链的交互服务。
4)应用层是提供稻米质量溯源信息交互服务的可视化界面,通过智能合约提供的API接口对区块数据进行信息交互,主要为种植环节客户端、加工环节客户端、运输环节客户端、质检环节客户端、消费者溯源客户端。
3 系统实现
3.1 区块链网络模块
基于所要构建的系统架构,设计了基于区块链技术的网络模型,如图3所示,五个Peer节点分别对应种植环节、加工环节、质检环节、运输环节、销售环节,分属于五个组织:种植户、加工厂商、质检厂商、运输、销售,排序节点采用Kafka集群的方式。Kafka具有高扩展性的特点,具有很高的容错能力[8]。Orderer节点对Peer节点验证通过后的交易进行排序,Orderer与Kafka集群直接通信,每个Peer节点根据业务逻辑编写智能合约并且会有一个CA证书机构用于身份注册和认证,采用支持复杂查询的CouchDB状态数据库对Peer节点进行数据的存储,智能合约中提供的查询功能可供消费者进行信息的查询。各组织及安装智能合约的信息如表1所示。
3.2 智能合约设计
智能合约是一组情景—应对型的程序化规则和逻辑, 是部署在区块链上的去中心化、可信共享的程序代码。智能合约同样具有区块链数据的一般特征, 如分布式记录、存储和验证, 不可篡改和伪造等[9]。由于溯源系统涉及种植、加工、质检、运输、销售五个环节且每个环节业务功能不完全相同。种植环节中需要上传水稻基本信息和生长信息,基本信息可以一次上链,生长信息需要定期根据水稻生长情况上链;运输环节中需要把水稻入库出库信息和运输中定位信息上链;加工环节中需要把加工操作的步骤和加工人员信息上链;质检环节中需要把质检报告上链;销售环节需要把签收信息进行上链,基于以上需求,本文采用分模塊的智能合约,对不同环节设计不同智能合约,对应组织安装其对应业务逻辑的智能合约。本文溯源系统链码采用Go语言编写,链码功能包括上传和查询稻米种植信息、运输信息、加工信息、质检信息。以种植环节智能合约为例,智能合约结构如下:
1)定义稻米结构体,其中包含稻米名称、种植时间、种植地点等,如图4所示。
2)实现对链码的初始化和调用,调用包括稻米溯源信息查询、上链、初始化账本等功能。
3)编写实现方法,通过上述设计的功能编写对应的方法,图6为稻米信息上传功能代码,对上传信息判断是否符合长度要求,若符合则将信息保存在账本当中。
3.3 上链与溯源流程设计
本文溯源系统上链流程如图7所示,开发工具采用Fabirc- SDK-Java(以下简称SDK),首先客户端发起上链服务请求,SDK对请求的用户通过CA进行认证,认证通过后对应组织节点的链码会被调用,调用成功后上链信息会被存储在CouchDB数据库,上链信息结果会被返回客户端。溯源过程与上链流程相似,用户输入溯源码后,系统会将溯源码对应的稻米信息通过前端页面显示给用户。
4 系统测试与分析
4.1 功能测试
测试平台为VMware虚拟机中预装的Centos7.9,虚拟机为内存16G、硬盘50G的配置,Hyperledger Fabric采用1.4.0版本,部署方式用单机多节点部署,运行在Docker容器中。
Hyperledger Fabric网络启动前,需配置crypto-config.yaml和configtx.yaml文件用于生成组织信息、证书信息、创世区块等,通过docker-compose.yaml文件启动网络。待网络启动后创建通道会生成通道配置文件,所有节点加入同一个通道当中,Org1、Org2、Org3、Org4、Org5分别对应五个环节的组织,将不同的链码安装到对应组织的Peer节点,客户端发起服务请求后,Peer节点会调用智能合约完成对应功能,图8为上链数据详情。在系统查询界面,输入溯源码可以完整地看到稻米流通的信息,图9为对稻米溯源信息查询。查看种植过程,会调用智能合约进行查询。上述操作的区块链后台反馈如图10,显示认证成功后会根据输入的溯源码进行查询并将查询信息通过SDK传送至客户端,用户就完成对稻米信息的查询。
4. 2 性能测试
对于区块链溯源来说,吞吐量 ( Transaction Per Second ,TPS) 可以很直观地反映系统的整体性能,吞吐量计算公式如下:
TPS = 事务处理数量 / 响应时间 (1)
系统吞吐量可以由服务器单位时间内处理的交易数量来表示,以牧马湖农业开发集团稻米流通为例,稻米生产为按需加工,因此稻米溯源信息为同一批次的稻米,对同一次批次稻米只需上链一次,更多是需要对稻米信息进行查询,所以本试验主要针对系统查询请求的吞吐量进行测试,测试工具采用Caliper-Benchmark对区块链进行基准测试。图11为测试结果,本次测试系统在交易并发量为50~1300笔/s时,系统吞吐量的变化情况。经过压力测试,交易并发量在50~150笔/s时,系统吞吐量提升较为明显,交易量700~1100笔/s时,系统吞吐量无明显的变化,交易并发量在1200笔/s附近达到峰值,之后再提升交易量,由于交易并发量较大,系统吞吐量已呈下降趋势。通过对系统测试,其功能性得到有效验证,系统吞吐量可以达到200~310笔/s,可以应用于生产实践当中[10]。
5 结论
本文研究从稻米质量溯源流程出发,设计并实现了基于Hyperledger Fabric的稻米质量溯源系统,利用Hyperledger Fabric具有去中心化和不可被篡改的特性,有效解决了稻米质量溯源信息可信度低的问题,从性能上来看,本文设计的系统交易吞吐量可达200~300笔/s,方案的可行性得到了验证,通过将水稻质量溯源与区块链技术结合能够有效防止不法商家通过篡改稻米信息而将质量不合格的产品流入市场。
参考文献:
[1] Fang Fuping,Cheng Shihua.The development of rice science, technology and industry in China[J].Journal of Agriculture,2018,8(1):92-98.
[2] Guo Lijing,Wang Ying.Study on overdose of pesticides in rice production in China: based on the perspective of maximizing social and private interests[J].Journal of Ecolo-gy and Rural Environment,2018,34(5):401-407.
[3] Sun S,Wang X.Promoting traceability for food supply chain with certification[J].Jo-urnal of Cleaner Production,2019,217:658-665.
[4] 李明佳,汪登,曾小珊,等.基于区块链的食品安全溯源体系设计[J].食品科学,2019,40(3):279-285.
[5] Lu Y.The blockchain: state-of-the-art and research challenges[J].Journal of Industrial Information Integration,2019(15):80-90.
[6] Creydt M,Fischer M.Blockchain and more–Algorithm driven food traceability[J].Food Control,2019,105:45-51.
[7] 黄立波,王伟,徐彦军,等.基于区块链的数字结业证书管理系统及其性能评估[J].华东师范大学学报(自然科学版),2020(6):72-81.
[8] 冯国富,胡俊辉,陈明.基于区块链的水产品交易溯源系统研究与实现[J].渔业现代化,2022,49(1):44-51.
[9] 袁勇,王飞跃.区块链技术發展现状与展望[J].自动化学报,2016,42(4):481-494.
[10] 张朝栋,王宝生,邓文平.基于侧链技术的供应链溯源系统设计[J].计算机工程,2019,45(11):1-8.
【通联编辑:梁书】