朱克濤 胡勝桃



摘要:針對以集中式數據庫為中心的傳統溯源系統中存在溯源數據易被篡改及可信度低的問題,在對稻米流通環節及溯源需求進行分析后,該文提出基于區塊鏈技術分支中的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.
【通聯編輯:梁書】