基于区块链的农产品供应链追溯系统及方法技术方案

技术编号:19825141 阅读:26 留言:0更新日期:2018-12-19 15:55
本发明专利技术提出了一种基于区块链的农产品供应链追溯系统及方法,主要解决现有技术中存在的追溯速度随着区块链中信息增多而大幅度下降以及追溯准确度较低的技术问题,主要步骤为:功能选择模块发送启源请求;数据上链模块响应启源请求,并发送启源结果;显示模块显示启源结果;功能选择模块判断售点是否将农产品售卖给消费者;数据上链模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求;追溯模块与数据上链模块信息交互;数据上链模块获取新增追溯结果并发送至显示模块;显示模块显示新增追溯结果;追溯模块响应功能选择模块发送的追溯请求,并发送追溯结果;显示模块显示追溯结果。

【技术实现步骤摘要】
基于区块链的农产品供应链追溯系统及方法
本专利技术属于区块链及农业
,涉及一种基于区块链的农产品供应链追溯系统及方法。
技术介绍
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,其最基本的概念,是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式,具有去中心化、信息不可篡改以及隐私保护的特点。农产品供应链就是农产品从农场到顾客手中的整个过程,具体包括包装、运输、储藏、销售等环节。农产品供应链追溯的过程是农产品供应链追溯系统将农产品在供应链中各个环节的流通信息存入数据库,然后在消费者需要时根据农产品信息对数据库的进行搜索,并显示搜索出的信息,衡量农产品供应链追溯系统的标准主要有系统中心化程度、追溯信息信任率、追溯速度以及追溯准确度。目前现有基于区块链的农产品供应链追溯系统及方法的主要流程是,供应链中的售点在功能选择模块中选择上链功能时,数据上链模块将产品在本环节的流通信息记录于区块链中,显示模块显示其上链结果,然后顾客在功能选择模块中选择追溯功能时,追溯模块根据扫描农产品二维码码获得的信息,搜索区块链所有区块中相匹配的追溯信息,显示模块显示其检索结果。此系统及方法利用区块链的分布式验证、不可篡改与隐私保护的特点,针对性地解决了普通农产品供应链追溯系统中中心化程度高、追溯信息信任率低的问题。上述系统及方法的不足之处在于:在追溯时需要搜索所有区块,会导致追溯速度会随着区块链中信息的增加而大幅度下降,而且农场可以利用自己的私钥和数字证书伪造出其他农场的农产品的二维码,导致追溯的准确度降低。
技术实现思路
本专利技术的目的在于克服上述现有技术存在的不足,提出了一种基于区块链的农产品供应链追溯系统及方法,用于解决现有技术中存在的追溯速度随着区块链中信息增多而大幅度下降以及追溯准确度较低的技术问题。为实现上述目的,本专利技术采用的技术方案为:一种基于区块链的农产品供应链追溯系统,包括功能选择模块、追溯模块、数据上链模块和显示模块,其中:所述功能选择模块,用于根据用户的功能请求向追溯模块发送追溯请求,或向数据上链模块发送启源请求或新增追溯请求;所述追溯模块,用于响应功能选择模块发送的追溯请求,并将追溯结果发送至显示模块,或与数据上链模块进行信息交互;所述数据上链模块,用于响应功能选择模块的发送的启源请求,并将启源结果发送至显示模块,和接收功能选择模块的发送的新增追溯请求,与追溯模块进行信息交互,根据追溯模块返回的追溯结果获取新增追溯结果,并将新增追溯结果发送至显示模块;所述显示模块,用于显示追溯模块发送的追溯结果和数据上链模块发送的启源结果或新增追溯结果。上述基于区块链的农产品供应链追溯系统,所述数据上链模块,包括启源子模块、新增追溯子模块和上链适配子模块,其中:所述启源子模块,用于接收功能选择模块发送的启源请求,获取农产品编号和农产品二维码,并向上链适配子模块发送农产品编号和农场名;所述新增追溯子模块,用于接收功能选择模块发送的新增追溯请求,向追溯模块发送追溯请求,根据返回的追溯结果获取农产品编号和新流通信息,并向上链适配子模块发送农产品编号和新流通信息;所述上链适配子模块,用于接收启源子模块发送的农场名和农产品编号,获取启源上链信息,同时对启源上链信息进行上链操作,并将启源上链结果转发至显示模块,和接收新增追溯子模块发送的农产品编号和新流通信息,获取新增上链信息,同时对新增上链信息进行上链操作,并将新增追溯结果转发至显示模块。一种基于区块链的农产品供应链追溯方法,包括以下步骤:(1)功能选择模块向数据上链模块发送农场选择的启源请求;(2)数据上链模块响应功能选择模块发送的启源请求,并将启源结果发送至显示模块:(2a)启源子模块接收启源请求;(2b)启源子模块获取农产品编号productHash和农产品二维码QR_Pic;(2c)启源子模块将农产品编号productHash和农场名farmName发送至上链适配子模块;(2d)上链适配子模块获取启源上链信息;(2e)上链适配子模块对启源上链信息进行上链操作,并发送上链操作结果:上链适配子模块利用委任权益证明DPOS的共识算法验证启源上链信息是否被篡改,若是,将上链失败信息作为启源结果,否则,将启源上链信息作为追溯信息发布于区块链中,并将上链成功信息作为启源结果,并将启源结果发送至显示模块;(3)显示模块显示数据上链模块发送的启源结果;(4)功能选择模块判断当前售点是否将农产品售卖给消费者:功能选择模块判断当前售点是否将农产品售卖给消费者,若是,则向追溯模块发送消费者选择的追溯请求,并执行步骤(9),否则,当前售点发送农产品至下级售点,功能选择模块向数据上链模块发送下级售点选择的新增追溯请求,并执行步骤(5);(5)数据上链模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求:数据上链模块的新增追溯子模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求;(6)追溯模块与数据上链模块进行信息交互:(6a)追溯模块扫描农产品二维码,得到非对称解码信息:追溯模块扫描农产品二维码QR_Pic,得到农产品二维码信息,访问农产品二维码信息中的农场数字证书地址farmDC_addr,利用其中农场的公钥对二维码信息中的加密信息encryptedInfo进行非对称解码,得到包括农产品品种variety、生产时间productedTime和产品编号productHash的非对称解码信息decodingInfo,解码公式为:decodingInfo=farmPublicKeyUnlock(encryptedInfo)其中,farmPublicKeyUnlock(*)表示农场公钥解析函数;(6b)追溯模块根据decodingInfo对区块链进行搜索,得到搜索结果;(6c)追溯模块对搜索结果进行防伪造验证,得到追溯结果,并将追溯结果发送至数据上链模块;(7)数据上链模块获取新增追溯结果,并将新增追溯结果发送至显示模块;(7a)新增追溯子模块判断追溯结果是否是成功的,若是,则执行步骤(7b),否则将失败的追溯结果作为新增追溯结果,执行步骤(7d);(7b)新增追溯子模块根据追溯结果获取农产品编号productHash和新流通信息circulationInfo_new,并发送至上链适配子模块:新增追溯子模块从验证信息中提取农产品编号productHash和流通信息circulationInfo,并将到货信息拼接在流通信息circulationInfo后,形成新的流通信息circulationInfo_new,然后将productHash和circulationInfo_new发送至上链适配子模块;(7c)上链适配子模块获得新增追溯结果;(7d)上链适配子模块将新增追溯结果发送至显示模块;(8)显示模块显示数据上链模块发送的新增追溯结果,并执行步骤(4);(9)追溯模块响应功能选择模块发送的追溯请求,得到追溯结果,并将追溯结果发送至显示模块;本文档来自技高网
...

【技术保护点】
1.一种基于区块链的农产品供应链追溯系统,其特征在于,包括功能选择模块、追溯模块、数据上链模块和显示模块,其中:所述功能选择模块,用于根据用户的功能请求向追溯模块发送追溯请求,或向数据上链模块发送启源请求或新增追溯请求;所述追溯模块,用于响应功能选择模块发送的追溯请求,并将追溯结果发送至显示模块,或与数据上链模块进行信息交互;所述数据上链模块,用于响应功能选择模块的发送的启源请求,并将启源结果发送至显示模块,和接收功能选择模块的发送的新增追溯请求,与追溯模块进行信息交互,根据追溯模块返回的追溯结果获取新增追溯结果,并将新增追溯结果发送至显示模块;所述显示模块,用于显示追溯模块发送的追溯结果和数据上链模块发送的启源结果或新增追溯结果。

【技术特征摘要】
1.一种基于区块链的农产品供应链追溯系统,其特征在于,包括功能选择模块、追溯模块、数据上链模块和显示模块,其中:所述功能选择模块,用于根据用户的功能请求向追溯模块发送追溯请求,或向数据上链模块发送启源请求或新增追溯请求;所述追溯模块,用于响应功能选择模块发送的追溯请求,并将追溯结果发送至显示模块,或与数据上链模块进行信息交互;所述数据上链模块,用于响应功能选择模块的发送的启源请求,并将启源结果发送至显示模块,和接收功能选择模块的发送的新增追溯请求,与追溯模块进行信息交互,根据追溯模块返回的追溯结果获取新增追溯结果,并将新增追溯结果发送至显示模块;所述显示模块,用于显示追溯模块发送的追溯结果和数据上链模块发送的启源结果或新增追溯结果。2.根据权利要求1所述的基于区块链的农产品供应链追溯系统,其特征在于,所述数据上链模块,包括启源子模块、新增追溯子模块和上链适配子模块,其中:所述启源子模块,用于接收功能选择模块发送的启源请求,获取农产品编号和农产品二维码,并向上链适配子模块发送农产品编号和农场名;所述新增追溯子模块,用于接收功能选择模块发送的新增追溯请求,向追溯模块发送追溯请求,根据返回的追溯结果获取农产品编号和新流通信息,并向上链适配子模块发送农产品编号和新流通信息;所述上链适配子模块,用于接收启源子模块发送的农场名和农产品编号,获取启源上链信息,同时对启源上链信息进行上链操作,并将启源上链结果转发至显示模块,和接收新增追溯子模块发送的农产品编号和新流通信息,获取新增上链信息,同时对新增上链信息进行上链操作,并将新增追溯结果转发至显示模块。3.一种基于区块链的农产品供应链追溯方法,其特征在于,包括以下步骤:(1)功能选择模块向数据上链模块发送农场选择的启源请求;(2)数据上链模块响应功能选择模块发送的启源请求,并将启源结果发送至显示模块:(2a)启源子模块接收启源请求;(2b)启源子模块获取农产品编号productHash和农产品二维码QR_Pic;(2c)启源子模块将农产品编号productHash和农场名farmName发送至上链适配子模块;(2d)上链适配子模块获取启源上链信息;(2e)上链适配子模块对启源上链信息进行上链操作,并发送上链操作结果:上链适配子模块利用委任权益证明DPOS的共识算法验证启源上链信息是否被篡改,若是,将上链失败信息作为启源结果,否则,将启源上链信息作为追溯信息发布于区块链中,并将上链成功信息作为启源结果,并将启源结果发送至显示模块;(3)显示模块显示数据上链模块发送的启源结果;(4)功能选择模块判断当前售点是否将农产品售卖给消费者:功能选择模块判断当前售点是否将农产品售卖给消费者,若是,则向追溯模块发送消费者选择的追溯请求,并执行步骤(9),否则,当前售点发送农产品至下级售点,功能选择模块向数据上链模块发送下级售点选择的新增追溯请求,并执行步骤(5);(5)数据上链模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求:数据上链模块的新增追溯子模块接收功能选择模块发送的新增追溯请求,并向追溯模块发送追溯请求;(6)追溯模块与数据上链模块进行信息交互:(6a)追溯模块扫描农产品二维码,得到非对称解码信息:追溯模块扫描农产品二维码QR_Pic,得到农产品二维码信息,访问农产品二维码信息中的农场数字证书地址farmDC_addr,利用其中农场的公钥对二维码信息中的加密信息encryptedInfo进行非对称解码,得到包括农产品品种variety、生产时间productedTime和产品编号productHash的非对称解码信息decodingInfo,解码公式为:decodingInfo=farmPublicKeyUnlock(encryptedInfo)其中,farmPublicKeyUnlock(*)表示农场公钥解析函数;(6b)追溯模块根据decodingInfo对区块链进行搜索,得到搜索结果;(6c)追溯模块对搜索结果进行防伪造验证,得到追溯结果,并将追溯结果发送至数据上链模块;(7)数据上链模块获取新增追溯结果,并将新增追溯结果发送至显示模块;(7a)新增追溯子模块判断追溯结果是否是成功的,若是,则执行步骤(7b),否则将失败的追溯结果作为新增追溯结果,执行步骤(7d);(7b)新增追溯子模块根据追溯结果获取农产品编号productHash和新流通信息circulationInfo_new,并发送至上链适配子模块:新增追溯子模块从验证信息中提取农产品编号productHash和流通信息circulationInfo,并将到货信息拼接在流通信息circulationInfo后,形成新的流通信息circulationInfo_new,然后将productHash和circulationInfo_new发送至上链适配子模块;(7c)上链适配子模块获得新增追溯结果;(7d)上链适配子模块将新增追溯结果发送至显示模块;(8)显示模块显示数据上链模块发送的新增追溯结果,并执行步骤(4);(9)追溯模块响应功能选择模块发送的追溯请求,得到追溯结果,并将追溯结果发送至显示模块;(10)显示模块显示追溯模块发送的追溯结果。4.根据权利要求3所述的基于区块链的农产品供应链追溯方法,其特征在于,步骤(2b)中所述的启...

【专利技术属性】
技术研发人员:刘乃安谢江涛周坤
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1