楊晨雪 孫志國
(中國農業科學院農業信息研究所,北京 100081)
目前,我國農產品供應鏈管理主要存在粗放生產、信息的透明化程度低、信息不對稱、供應鏈環節過多、鏈條過長等問題。農產品供應鏈本質上是一個包含了從農產品生產開始、經過農產品的加工、運輸及存儲、最后送至消費者的涉及供應鏈各節點活動的一個供需網絡,通過對農產品生產管理信息流、物流和資金流的控制,達到從“田間”到“餐桌”的整體功能網鏈結構。在傳統的商品流通環節往往要通過批發商、零售商層層轉包,使得中間費用居高不下,消費者同時還需要面對假貨和誠信問題。淘寶、天貓、京東、拼多多等電商崛起后,整個供應鏈縮短了,信息成本得到降低,產品價格也隨之降低,但是產品的真假和生產者誠信問題仍然難以得到解決,雖然通過消費評價可以約束商品供應者,但是刪差評等暗箱操作問題突出,政府、生產者、流通商、消費者信息不對稱,交易雙方存在信任問題[1]。信息共享是農產品供應鏈管理的一個重要基礎和前提,而供應鏈信息整合管理策略的實施也會極大促進農產品生產者、運輸者、消費者等各個參與者之間信息與知識的交流和共享。如何管理和優化農產品供應鏈中各流程的信息,建立健全的農產品供應鏈信息管理系統,規范農產品供應鏈管理,保證市場上農產品質量和數量的正常供應和食品安全,達到提高經濟效益的目的,是當今社會需要研究的重要課題。
2020 年4 月9 日,中共中央、國務院辦公廳印發《關于構建更加完善的要素市場化配置體制機制的意見》,引導要素向先進生產力集聚,明確“健全要素市場運行機制,建立分類統一、規范有效的交易規則和服務體系。健全要素市場化交易平臺,夯實要素市場交易基礎設施,健全交易風險防范處置機制”。隨著移動通信技術、大數據和云計算等技術的快速發展,我國數字金融得到了快速發展。數字金融與農業領域中供應鏈產業的融合發展將在農業技術革新、產業變革中起到重要作用。數字金融的一個前沿技術問題是區塊鏈技術的應用。區塊鏈建立一種信任機制將分散的參與主體快速簡便地建立信任聯系。從農業供應鏈角度看,農業生產經營主體包括農產品生產者、農產品銷售商、產品銷售者等多類型參與主體,通過接受區塊鏈法則將傳統數據經濟中難以管理的“身份”參與主體,結合可信的農業市場數據管理平臺,數字化農業生產經營參與主體的信用等級,達到吸引更多的農業供應鏈參與者加入農產品供應區塊鏈平臺的目的。
本文針對我國農產品供應鏈中信息數據存儲管理能力弱、被竊取、篡改、刪除和信息不一致等問題,通過引入區塊鏈技術,探索構建能夠銜接農產品生產、運輸、消費等相關方在區塊鏈賬本上共同記錄票據信息和交易信息的農產品供應鏈數據管理系統。該系統通過結合區塊鏈去中心化、不可篡改、開放透明、機器自治、可匿名的特性,構建一種面向農產品供應鏈中農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據的安全管理方法與機制,能夠有效保障和管理農產品供應鏈中各節點的信息數據,保證農產品從生產、倉儲、運輸、配送、銷售整個供應鏈信息采集、存儲和共享的安全、透明。通過農產品供應區塊鏈數據管理系統,消費者可以查詢所購農產品在供應鏈中各環節的信息,運輸信息記錄平臺可以確保農產品在供應鏈的物流運作環節中始終處于可控的最佳溫度環境,農產品生產者可以根據農產品的銷售情況分析市場需求,規劃農產品的再生產。
區塊鏈的概念源自比特幣,在2008 年,由中本聰(Satoshi Nakamoto)在《比特幣白皮書:一種點對點的電子現金系統》中提出[2],作為比特幣的底層技術,區塊鏈不局限于比特幣及各類數字貨幣,還可以視為由點對點網絡、分布式賬本、共識機制、密碼學等技術組合后形成的一個去中心化分布式數據庫系統[3]。近年來,區塊鏈技術以其去中心化、不可篡改、開放透明、機器自治、可匿名等特性[4‐5],被廣泛用于管理和保障各行業數據的安全,例如銀行、財政財務管理、農產品和商品供應鏈管理、食品安全、醫療健康管理、社會公益等[6‐8]。區塊鏈技術可以有效的簡化行業中的業務流程、降低業務成本、提高協同效率,在保證數據真實性、完整性的前提下促進數據共享,建設可信體系等方面都發揮了重要作用。
在學術研究領域,區塊鏈技術還可以被定義為一種文件檔案管理技術,作為可信文件保存的理論評估框架,對電子文件進行準確、可靠、長期的保存[9‐12]。隨后,Lemieux 等人利用web 原理和技術建立一種區塊鏈記錄事務數據模型,有效解決了缺失記錄相關數據及檔案之間的關聯性問題[13]。在農業領域中,基于區塊鏈文件檔案管理技術的特征十分切合農產品供應鏈中農產品生產、運輸、消費等相關方信息的管理需求,在保障農產品供應鏈數據庫中的信息數據的安全、可信、穩定、可溯源、信息共享、大吞吐量等方面具有突出優點。在中國知網文獻數據庫中以“農業”和“區塊鏈”為關鍵詞搜索相關論文,數量達90 余篇,涉及多個農業領域,其中在農產品溯源領域應用最多[14]。例如美國嘉吉公司火雞區塊鏈項目可以支持消費者通過輸入火雞包裝上標注的標簽代碼來追溯火雞養殖信息,沃爾瑪利用區塊鏈技術實現旗下超市生鮮產品端到端的溯源。在國內螞蟻金服聯合騰訊和中國平安發起“步步雞”項目溯源雞的養殖環境和養殖過程[15]。中國農業科學院孫志國等[1]于2016 年提出在食品安全溯源體系中引入區塊鏈技術,低成本高效率地解決食品安全中的信任難題,實現安全可信任的食品追溯。
近幾年興起的區塊鏈技術極大助推了金融相關技術的快速發展以及在農業各個行業領域的應用,用于儲存、管理和保障數據的安全。農業物聯網(農產品安全溯源、農業環境檢測)、農業大數據(智慧監管、農產品市場信息)中儲存、分析、處理海量數據和信息的基礎問題都得到了較好的解決。但是,還是存在流程效率低、拓展性弱;災備和行為監管方案復雜度高、建設成本高;數據的實效性、真實性、完整性難以保障等痛點。區塊鏈技術在農產品供應鏈管理方面研究方面起步較晚,深入研究和應用較少,尤其是針對農產品供應區塊鏈中需要存儲各類型農業生產經營參與主體用戶信息,包括農產品生產管理信息、運輸記錄信息、消費者信用管理信息、農戶‐消費者交易信息等大型異構數據的存儲,抽取、管理與訪問控制的相關技術尚屬研究空白。因此,研究可靠安全的基于區塊鏈技術的農產品供應鏈數據管理系統設計方法是實現農業智能化供應鏈的關鍵。
綜上所述,本文通過結合星際數據系統和智能合約技術,對農產品供應鏈中的信息安全管理進行研究,設計一個安全、可信、穩定、可溯源、信息共享、大吞吐量的農產品供應鏈數據管理系統,無縫對接農業生產經營參與主體(農產品生產者、農產品銷售商、產品銷售者等),可以有效保障農產品生產、倉儲、運輸、配送、銷售等一系列供應鏈活動的信息化管理平臺,確保整個供應鏈進行充分安全透明的可信任信息共享,促進農產品產銷無縫銜接、推動農業轉型升級、助力農民脫貧增收。
針對目前區塊鏈技術并不能有效存儲和管理產品供應鏈數據庫中農產品生產經營主體信息和交易信息的大型異構數據,本文基于區塊鏈和數據庫技術,結合星際文件系統(Inter‐Planetary File System,IPFS)和智能合約技術保障大型異構信息數據安全存儲和訪問的特點,對農產品供應鏈中生產、運輸、銷售等節點的信息安全管理進行研究,提出了面向農產品供應鏈中大型異構信息數據高效抽取方法,以及信息數據管理與訪問控制方法,研發面向農產品供應鏈信息數據管理系統的區塊鏈技術支撐平臺。本文所提的基于區塊鏈的農產品供應鏈數據管理系統具有去中心化、不可篡改、可信任的特性,能夠切實保障農產品供應鏈信息數據的安全、可信、穩定、可溯源、信息共享和大吞吐量。
基于區塊鏈的農產品供應鏈數據管理系統可以通過直接對底層供應鏈數據庫中的信息數據和交易原生數據進行管理,來實現各類型農業生產經營參與主體用戶的行為記錄和數據備份,以事務日志的形式存儲在農產品供應鏈數據庫中。創建農產品供應鏈中農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據庫,在事務日志中記錄對數據庫所做的所有操作,在農產品供應區塊鏈數據管理系統發生故障時幫助事務進行恢復,且支持事務復制備份到數據庫。因此,本文通過抽取并分析農產品供應區塊鏈數據庫的事務日志來實現農產品供應鏈信息數據的備份以及各類型農業生產經營參與主體用戶行為的監管。
在農產品供應區塊鏈數據管理系統中,通過結合新興的區塊鏈和IPFS 技術,提出基于區塊鏈的數據庫主從復制技術,針對解析、融合目標數據庫的事務日志和農戶和消費者用戶信息,設計基于MySQL 數據庫的事務日志抽取方法,實現含有農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息事務日志的快速抽取,并將各類信息事務日志及交易記錄分別存儲至區塊鏈和IPFS 網絡。基于區塊鏈的農產供應鏈數據管理系統的主從復制架構示意圖如1 所示,總體上分為四個步驟。
第一步,在農產品供應區塊鏈信息管理主數據庫中記錄農產品供應鏈中各節點事務操作的詳細信息,主要包括農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的信息數據,更新事務操作,并在農產品供應區塊鏈信息管理數據庫的日志表或日志數據中記錄。
第二步,開啟一個農產品供應區塊鏈信息管理中間件的本地線程,建立一個農產品供應鏈信息管理數據庫客戶端連接。農產品供應鏈中生產、運輸、銷售等節點中間件數據管理系統可采用實時抽取和定時抽取農產品供應鏈信息管理數據庫操作日志兩種方式,實現對該信息管理主數據庫事務日志的抽取。
第三步,抽取農產品供應區塊鏈信息管理中間件的數據到操作日志中,同時,將操作日志加密,并存儲到農產品供應區塊鏈信息管理網絡中。針對涉及新增農產品生產管理信息或是交易信息數據的操縱,通過抽取解析日志中農產品供應鏈信息管理系統中農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的信息數據存儲路徑,獲取農產品供應鏈中的信息數據,同時存儲到農產品區塊鏈IPFS平臺。
第四步,根據需求同步或者重建農產品供應鏈信息管理數據庫中相應的信息數據,獲得農產品供應區塊鏈上獲取主庫事務日志,例如農產品交易信息。
農產品供應區塊鏈數據管理系統采用主從復制的方式,通過操作日志的方式,將農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據保存到農產品供應區塊鏈信息管理網絡中,可以靈活的、準確的、安全的轉移農產品供應鏈中的主庫信息數據。在農產品供應區塊鏈上存儲的日志信息可以當作農產品供應鏈數據主庫操作日志的中繼站,其他農產品供應鏈信息管理數據庫通過獲取區塊鏈上完整的操作日志同步目標數據庫,可以備份主庫中數據,保證備份數據庫與主庫數據的一致性。
MySQL 數據庫因其免費開源的優點,近幾年成為中小型應用的首選數據庫軟件。通過對當前市場上的MySQL 數據庫使用情況進行調研,現階段比較主流的版本為MySQL 5.7,該版本在安全性、靈活性、性能方面都進行了大幅的改進。因此,本文選擇基于MySQL 的農產品供應鏈信息管理數據庫的行為審計,依靠解析底層的BinLog 數據來實現各類型農業生產經營參與主體用戶操作的審計。農產品供應區塊鏈數據管理系統將對MySQL 的事務日志抽取方法進行設計,以實現MySQL 農產品供應鏈信息管理數據庫事務日志的抽取。
該MySQL農產品供應鏈信息管理數據庫的二進制日志主要用于記錄數據表中實時的變更情況,例如增加農業生產經營參與主體信息、運輸記錄信息變更、增加農戶‐消費者交易信息等,可以作為監管農產品供應區塊鏈信息管理數據庫操作行為的依據,以及數據庫同步或重建的信息數據支撐。MySQL農產品供應鏈信息管理數據庫中二進制日志文件包括Row Level(行模式)、Statement Level(語句模式)、Mixed(混合模式)三種存在形式。為保障主從復制中事務日志的完整性,避免出現主從復制不一致的情況,本系統選擇采用基于Row Level 模式的復制方式記錄農產品供應鏈信息管理數據庫中的數據變化情況。
農產品供應區塊鏈數據管理系統采用MySQL數據庫中的Canal 解析工具實現二進制日志解析。具體的,融合Canal 解析工具,分別在記錄農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據的主庫服務器和中間件服務器上架設事務日志抽取工具的服務端和客戶端。現有的二進制日志雖然能夠作為從農產品供應鏈信息管理數據庫同步或重建數據的重要依據,但由于二進制日志中僅存有事務的操作語句,并未記錄事務執行時相關的各類型農業生產經營參與主體用戶信息,從而無法實現審計各類型農業生產經營參與主體用戶操作的目的。
MySQL農產品供應鏈信息管理數據庫并未向農業生產經營主體用戶提供審計的功能,但在每個農業生產經營參與主體用戶連接數據庫時會默認執行一條結構化查詢語言操作語句,通過使用init‐connect功能在各類型農業生產經營參與主體用戶登錄時記錄其關鍵信息來實現審計。因此,系統結合init‐con‐nect 和二進制日志,通過融合init‐connect 中的各類型農業生產經營參與主體用戶信息和二進制日志中的操作記錄,實現事務操作和各類型農業生產經營參與主體用戶信息集一體的詳細審計。其中日志解析模塊主要用于對二進制日志記錄的操作類型進行判斷;日志過濾模塊則用于選擇我們關注的操作類型(如 query、Table_map、write_row、update_row、de‐lete_row);日志融合模塊則通過獲取到的query 中的thread_id,到MySQL 中的各類型農業生產經營參與主體用戶連接信息表中抽取相應的連接信息,并拼接到當前日志中;最后日志存儲模塊則用于存儲處理好的事務日志;而數據管理模塊和Zookeeper 則用于持久化存儲事務日志及對增量訂閱和消費進行管理。
目前,區塊鏈技術更多被應用于處理賬本交易等小型數據[16]。當區塊鏈處理大型數據時,通常采用增大每個區塊存儲數量的方法來實現,但是會影響全網共識的時效性,降低全網數據的可信度[17]。面向農產品供應鏈信息管理數據庫日志及供應鏈信息數據,數據庫記錄的每條事務日志類似區塊鏈的每筆交易,將事務日志存儲于區塊鏈上是切實可行的。此外,由于當前區塊鏈平臺缺少對區塊上的交易進行訪問權限的控制,任何人都可隨意查看存儲在區塊上的交易數據。但是,農產品供應鏈信息管理數據庫中的數據包含許多密級信息,涉及不同級別的信息數據保密,并不能完全公開,造成在實際應用過程中存在數據透明和數據保密難以達到平衡。因此,針對區塊鏈技術存儲農產品供應鏈信息管理數據庫面臨的大型異構數據存儲困難、信息數據隱私保護等問題,本文對農產品供應鏈中的信息安全管理進行研究,探索建立面向農產品供應鏈中異構信息數據的信息共識和分布式存儲方法,以及研究如何對鏈上的信息數據設定相應的訪問控制機制。
3.2.1 農產品供應鏈異構信息數據安全存儲模型
農產品供應區塊鏈中需要存儲各類型農業生產經營參與主體用戶信息,包括農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據,通常采用區塊鏈與第三方數據庫或信息數據管理系統相結合的鏈上鏈下存儲模式來實現[18]。本文結合面向農產品供應鏈數據庫中信息管理場景,將農產品供應鏈信息管理數據庫中的事務日志都封裝成字符串的形式,有效的適用于區塊鏈的交易格式。因此,農產品供應區塊鏈數據管理系統直接對供應鏈中農產品生產管理信息、運輸記錄信息、消費者信用管理信息、農戶‐消費者交易信息事務日志進行加密后存儲至區塊鏈,這樣既能保障農產品區塊鏈信息管理系統事務日志的隱私和安全,也能夠對鏈上數據進行解密后恢復日志數據。針對鏈下存儲摒棄傳統的信息數據存儲系統,采用IPFS 數據存儲系統,通過與區塊鏈協同配合,能夠有效保障農產品供應鏈信息數據的完整性和真實性。
農產品供應區塊鏈數據管理系統使用IPFS來作為農產品供應鏈中農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據的分布式存儲平臺,以此實現農產品供應鏈信息數據持久且安全的分布式存儲。在實驗環境中,搭建了3 個節點的IPFS 私有網絡集群,分別為供應商節點私有網絡集群、銷售商節點私有網絡集群、物流商節點私有網絡集群,允許IPFS 節點只連接到擁有共享密鑰的其他對等節點,網絡中的節點不響應來自網絡外節點的通信,其架構如圖2所示。
每個IPFS 節點需要供應商、銷售商、物流商分別運行守護進程服務和集群服務,守護進程用于監控當前IPFS 節點的狀態,若當前節點集群服務崩潰,守護進程將會重啟本節點的集群服務。集群服務則用于保持各節點之間的通訊,同時向外提供API接口供各類型農業生產經營參與主體用戶使用IPFS 功能。系統設置的供應商、銷售商和物流商三個節點的IPFS 私有網絡集群,能夠有效地保證農產品供應區塊鏈數據管理系統的去中心化特征,且后期可按照需求增加節點,具有較好的擴展性。
為了實現農產品供應鏈信息管理系統中數據的安全存儲,系統從該供應鏈數據庫中所在服務器抽取信息數據和交易原生數據,以事務日志形式封裝成的信息數據的格式上傳至IPFS 進行備份。該系統首先抽取到農產品供應鏈信息管理數據庫事務日志,然后解析日志,達到識別農產品供應鏈信息管理系統中新增農產品生產管理信息或是交易信息數據的操作,并從中獲取新增農產品生產管理信息或是交易信息數據在設備上的存放路徑的目的,抽取供應鏈系統中的生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務等活動的異構信息數據,同時,運行數據抽取的后臺監聽服務,保證數據傳輸的安全性。當農產品供應區塊鏈信息管理系統中間件拿到數據的存放路徑后,分別通過供應商節點、銷售商節點、物流商節點的抽取接口完成農產品生產管理信息或是交易信息的數據抽取。最后,通過IPFS 私有網絡集群的數據上傳接口,將農產品生產管理信息或是交易信息的數據存儲至IPFS 上。
為減輕該農產品供應鏈數據管理系統中區塊鏈存儲數據的壓力,同時保障農產品供應鏈各類型農業生產經營參與主體信息數據隱私和安全的傳輸和存儲,對抽取的農產品供應鏈數據庫中的各類型生產經營參與主體信息數據事務日志進行加密和哈希處理。首先我們將待上鏈的事務日志表示為代表交易的類型,可以表示為:封裝后的農產品供應區塊鏈數據管理存儲的交易={各類型農業生產經營參與主體用戶私鑰,交易資產,交易元數據}。這里交易資產是通過各類型農業生產經營參與主體用戶密鑰對事務日志進行加密。其中交易資產={事務編號,操作者名,加密后的密文}。元數據可以用于聲明農產品供應區塊鏈事務日志所關聯的表名,作為模糊搜索的鍵值可以搜索該表存在鏈上的所有日志。
3.2.2 基于區塊鏈智能合約的農產品供應鏈信息數據訪問控制模型
本文選擇基于區塊鏈智能合約的農產品供應鏈信息數據訪問控制方法,結合基于IPFS 哈希尋址的訪問方式,能夠有效的保障不同的農業生產經營參與主體用戶在各自的權限范圍內訪問數據,保證各類型農業生產經營參與主體用戶只需提供數據的哈希地址即可訪問相應的數據。
由于在農產品供應鏈中農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據中包含多種密級,僅僅采用基于角色的訪問控制策略,無法滿足對不同類型農業生產經營參與主體用戶角色對不同密級農產品供應鏈信息數據的訪問控制。農產品供應鏈信息數據中經常涉及普通型農業生產經營參與主體用戶或低權限各類型農業生產經營參與主體用戶申請訪問高密級的農產品供應鏈信息數據的情況,例如種植蘋果的農戶查詢種植其他水果的農戶信息,購買蘋果的消費者查詢購買其他水果的消費者信息,種植蘋果的農戶查詢購買他農產品的消費者還購買了其他農戶水果的信息等?,F有的合約方案大都未考慮到對各類型農業生產經營參與主體用戶進行臨時的授權。此外,農產品供應鏈信息數據還涉及私密級的農產品供應鏈信息數據,這類數據一般需要由多方授權才能對信息數據進行查看和訪問,例如消費者想查看其他消費者的消費記錄,這也是在農產品供應鏈信息數據管理場景下需要實現的訪問控制方式。
基于上述農產品供應鏈中信息管理的需求,針對不同密級的農產品供應鏈信息數據,農產品供應區塊鏈數據管理系統通過設置不同農業生產經營參與主體角色,形成基于角色的分級訪問控制機制?;诓煌r業生產經營參與主體用戶角色的訪問控制模型,通過對各類型農業生產經營參與主體用戶的身份和職責進行審核評定,從而分配給各類型農業生產經營參與主體用戶角色相應訪問權限。使用該農業生產經營角色的訪問控制模型可以有效的管理系統數據和訪問農產品供應鏈上各節點資源。
首先,采用智能合約分級存儲數據哈希地址,為不同的各類型農業生產經營參與主體用戶設定了不同的訪問權限,而不同的訪問權限將對應不同的農產品供應鏈信息數據密級。與原始數據哈希地址的存儲方法不同,本文將針對不同密級的農產品供應鏈信息數據進行分類判斷后,把信息數據的IPFS 哈希地址存儲至智能合約。智能合約的存儲模塊將按照農產品供應鏈信息密級可以分成多個等級。此外,將農產品供應鏈數據庫數據信息的唯一標識,存儲在本地環境上。
然后,創建各類型農業生產經營參與主體用戶并授予權限,農產品供應區塊鏈數據管理系統管理中心由合約的擁有者,即系統超級管理員維護。各類型農業生產經營參與主體用戶初始時需要向該農產品供應區塊鏈數據管理系統的管理中心申請賬戶,信息管理中心為各類型農業生產經營參與主體用戶生成相應的密鑰返回給各類型農業生產經營參與主體用戶,同時根據各類型農業生產經營參與主體用戶的角色為各類型農業生產經營參與主體用戶分配相應的權限等級,并寫入合約的權限添加模塊。例如消費者可以通過農產品供應鏈信息密級一級權限查詢種植蘋果的農戶信息,如果想獲得更高權限,例如蘋果運輸信息、蘋果的種子信息等,可以通過付費的方式升級相應的權限等級。
同時,設置現有各類型農業生產經營參與主體用戶臨時授權,在各類型農業生產經營參與主體用戶創建之初已為各類型農業生產經營參與主體用戶生成了相應的密鑰,并且對改密鑰對應的訪問權限進行了分配。結合農產品供應鏈信息數據實際使用情況,為了提供各類型農業生產經營參與主體用戶臨時訪問更高密級的信息數據,在智能合約內設置動態權限控制模塊,通過動態的為各類型農業生產經營參與主體用戶設定臨時的訪問權限,來實現更靈活的農產品供應鏈信息數據訪問控制。
最后,設置修改各類型農業生產經營參與主體用戶授權,農場品供應區塊鏈數據管理系統為新各類型農業生產經營參與主體用戶或現有各類型農業生產經營參與主體用戶設定了當前的最高訪問權限。為了修改或撤銷某個用戶的權限或臨時權限,同樣的可以選擇調用方法來重置當前用戶的權限級別,權限將會根據覆蓋掉之前的值。該系統還設置了各類型農業生產經營參與主體用戶查詢數據IPFS 地址,現在各類型農業生產經營參與主體用戶可使用自己的賬戶對智能合約中的數據發起查詢請求。當各類型農業生產經營參與主體用戶向智能合約申請訪問一個級別的信息數據時,需先判定當前訪問各類型農業生產經營參與主體用戶權限是否大于現有的權限。如果符合相應權限,即可訪問對應的農產品供應鏈信息數據。
結合前面提出的面向農產品供應鏈中異構信息數據高效抽取方法和基于區塊鏈的農產品供應鏈中異構數據管理與訪問控制方法,設計了農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據的區塊鏈中間件系統,并通過與農產品供應區塊鏈和IPFS 平臺進行集成,實現農產品供應鏈信息管理系統數據的安全災備、行為監管和訪問控制。
農產品供應鏈涉及各類型農業生產經營參與主體之間的信息,包括農產品的生產、運輸、倉儲、銷售等環節,相應地系統需要實現的功能要包括農產品生產管理信息、運輸記錄信息、消費者信用管理信息、農戶‐消費者交易信息記錄的環節。基于區塊鏈農產供應鏈數據管理系統主要面向農產品供應鏈管理員,包括農產品供應鏈數據管理、農產品供應鏈數據抽取、農產品供應鏈數據安全存儲、農產品供應鏈數據安全訪問四個模塊,如圖3 所示。
系統采用BigchainDB 作為底層的區塊鏈數據存儲平臺,有效支撐農產品供應鏈信息管理數據庫信息共識、數據存儲、數據查詢等服務。系統包括兩個業務流程,分別為農產品供應區塊鏈信息管理數據庫的審計日志上鏈和數據備份流程,數據驗證和還原流程。當各類型農業生產經營參與主體用戶對農產品供應鏈各模塊相關信息數據表進行插入、更新、刪除和查詢語句操作時,觸發器獲取農產品供應區塊鏈信息管理數據庫的審計日志中的結構化查詢語言操作語句,通過Socket 客戶端發送至中間件的Socket 服務端。系統記錄農產品生產管理信息、運輸記錄信息、消費者信用管理信息、農戶‐消費者交易信息的中間件后臺,需對接收的結構化查詢語言操作語句進行分析和數據封裝。該操作包括新增農產品供應鏈信息數據的原生交易數據,通過抽取農產品供應鏈信息數據的存儲位置的方式,獲取農產品供應鏈各類型農業生產經營參與主體之間交易信息數據。當農產品供應鏈各模塊相關信息數據庫中的各類信息數據遭受攻擊或被惡意篡改破壞,管理員可對農產品供應鏈中各類型農業生產經營參與主體之間信息數據進行校驗和恢復。
本文設計基于區塊鏈技術的農產品供應鏈數據管理系統,可以將農業生產經營主體包括農產品供應商、農產品銷售商、產品銷售者等多類型參與主體緊密地關聯起來,實現農產品生產管理、運輸記錄、消費者信用管理、農戶‐消費者交易服務的大型異構信息數據的可信管理,提高農產品供應信息管理的智能化水平。但目前系統還處于起步階段,需要不斷的擴展和完善。在未來工作中,可以進一步優化智能合約內的訪問控制邏輯和各類型農業生產經營參與主體用戶權限表的設計,從而改進農產品生產者、運輸者、消費者等用戶權限列表數據過多時,出現的存儲和查詢效率降低的問題。