胡牛平, 景征駿, 史培中, 吳 旭
(1.江蘇理工學(xué)院 機(jī)械工程學(xué)院, 江蘇 常州 213001; 2.江蘇理工學(xué)院 計(jì)算機(jī)工程學(xué)院, 江蘇 常州 213001)
面對(duì)快速多變、日趨個(gè)性化的全球市場(chǎng),越來越多的企業(yè)為了自身的發(fā)展,面向訂單設(shè)計(jì)(engineering to order,ETO)的生產(chǎn)模式在我國(guó)制造企業(yè)中所占的比例越來越大[1]。ETO屬于離散性較強(qiáng)的生產(chǎn)類型,是“面向訂單”制造環(huán)境中最復(fù)雜的一種,ETO型企業(yè)高度個(gè)性化的客戶需求,使得企業(yè)的制造過程數(shù)據(jù)極為多且復(fù)雜,所以ETO型企業(yè)對(duì)生產(chǎn)過程的信息安全存儲(chǔ)以及逆向追溯的問題十分重視。傳統(tǒng)的ETO型企業(yè)追溯系統(tǒng)需要通過企業(yè)龐大的中心數(shù)據(jù)庫層層查找產(chǎn)品信息,不僅耗時(shí)久,而且存在著數(shù)據(jù)丟失和被篡改的風(fēng)險(xiǎn),是一種效率相對(duì)不高的產(chǎn)品追溯手段。所以企業(yè)急需一種安全且高效的追溯系統(tǒng)來保證產(chǎn)品數(shù)據(jù)安全存儲(chǔ)的同時(shí),也可逆向追溯產(chǎn)品的生產(chǎn)信息。
區(qū)塊鏈作為一種去中心化、安全性高、可追溯性強(qiáng)的網(wǎng)絡(luò),其在工程實(shí)踐中的應(yīng)用已經(jīng)相當(dāng)廣泛。例如,趙利霞和葉春明[2]在疫情信息共享工作方面融入了區(qū)塊鏈技術(shù),減少了信息的失真且增強(qiáng)了信息的可追溯性;王楠等[3]將區(qū)塊鏈技術(shù)應(yīng)用于數(shù)據(jù)共享的方面,極大地保證了數(shù)據(jù)的安全性。孫建梅和蔣雨真[4]通過研究區(qū)塊鏈在建筑業(yè)應(yīng)用的表現(xiàn)對(duì)比,建立了基于模糊層次分析法的區(qū)塊鏈平臺(tái)對(duì)建筑領(lǐng)域適用性評(píng)價(jià)指標(biāo)體系。夏凱文等[5]在改進(jìn)了拜占庭容錯(cuò)算法后利用以太坊區(qū)塊鏈和星際文件系統(tǒng)開發(fā)了氣象數(shù)據(jù)共享系統(tǒng)。周航等[6]通過研究適用于各單元共識(shí)交易的電力區(qū)塊鏈系統(tǒng)優(yōu)化調(diào)度,解決了各中小型用戶之間及其與大電網(wǎng)之間交易存在不透明環(huán)節(jié)的互信問題。申玉民等[7]通過開發(fā)基于區(qū)塊鏈的建筑信息模型圖紙多人協(xié)同創(chuàng)作系統(tǒng),利用區(qū)塊鏈去中心化、可追溯和防篡改的特性解決了多人協(xié)同創(chuàng)作下建筑信息模型圖紙版本混亂、不易溯源以及數(shù)據(jù)安全風(fēng)險(xiǎn)等問題。方燚飚等[8]、王曈等[9]、Agrawal等[10]、Xu等[11]對(duì)區(qū)塊鏈在生產(chǎn)中供應(yīng)鏈的應(yīng)用方面做出非常系統(tǒng)的研究,他們通過構(gòu)建多鏈的形式將區(qū)塊鏈技術(shù)解決制造業(yè)中不同場(chǎng)景下供應(yīng)鏈的產(chǎn)品追溯問題。李廣橋等[12]、畢婭等[13]、田琛[14]對(duì)于區(qū)塊鏈在制造企業(yè)中協(xié)同作業(yè)的框架模式進(jìn)行了深入的探討和研究,他們共同從安全性、可擴(kuò)展性和性能表現(xiàn)三個(gè)維度分析了區(qū)塊鏈在企業(yè)協(xié)同制造中的應(yīng)用情況,得出結(jié)論,區(qū)塊鏈在這三個(gè)維度上相比同類交易系統(tǒng)更具有優(yōu)勢(shì)。
關(guān)于ETO型企業(yè)的生產(chǎn)鏈實(shí)現(xiàn)生產(chǎn)過程追溯問題,以上學(xué)者所提的方案并不適用,需要針對(duì)企業(yè)生產(chǎn)鏈的數(shù)據(jù)追溯能力做出更為詳細(xì)的設(shè)計(jì),采用hyperledger fabric區(qū)塊鏈框架設(shè)計(jì)并實(shí)現(xiàn)一套ETO型企業(yè)生產(chǎn)過程溯源系統(tǒng)。
ETO型企業(yè)利用頒布證書驗(yàn)證成員身份機(jī)制、通道隔離機(jī)制、跨鏈操作便捷等優(yōu)點(diǎn),采用hyperledger fabric區(qū)塊鏈構(gòu)建生產(chǎn)過程溯源系統(tǒng)的網(wǎng)絡(luò)框架,和其他區(qū)塊鏈技術(shù)相比,該技術(shù)更加適合企業(yè)生產(chǎn)鏈追溯的開發(fā)。
fabric是超級(jí)賬本聯(lián)盟(hyperledger)推出的核心區(qū)塊鏈框架,適合在復(fù)雜的企業(yè)內(nèi)和企業(yè)間搭建聯(lián)盟鏈。根據(jù)超級(jí)賬本聯(lián)盟的目標(biāo), fabric被建設(shè)為一個(gè)模塊化的、支持可插拔組件的基礎(chǔ)聯(lián)盟鏈框架。
fabric區(qū)塊鏈采用分布式存儲(chǔ)結(jié)構(gòu),其每一個(gè)存在于鏈上的節(jié)點(diǎn)都擁有一份完整的分類賬的備份,其分類賬由所有節(jié)點(diǎn)來維護(hù)。fabric區(qū)塊鏈?zhǔn)且环N聯(lián)盟鏈,提出了成員服務(wù)提供商(MSP)的概念,MSP將鏈上各成員之間的控制結(jié)構(gòu)關(guān)系抽象化,再通過頒發(fā)證書、用戶認(rèn)證、后臺(tái)加密等來增加用戶的可信度。另外,在fabric區(qū)塊鏈中,還存在一種特有的稱為通道的概念,類似于局域網(wǎng),但實(shí)質(zhì)上是由排序節(jié)點(diǎn)劃分和管理的私有原子廣播通道,目的是對(duì)通道的信息進(jìn)行隔離,使得通道外的實(shí)體必須要通過身份驗(yàn)證后,才可以讀寫通道內(nèi)的信息,否則將無法訪問通道內(nèi)的信息,從而實(shí)現(xiàn)交易的隱私性[15]。
區(qū)塊鏈上存儲(chǔ)的數(shù)據(jù)能防止篡改和丟失,得益于其鏈?zhǔn)酱鎯?chǔ)區(qū)塊結(jié)構(gòu)及存儲(chǔ)在區(qū)塊中的默克爾樹[16],結(jié)構(gòu)如圖1所示。所有鏈上區(qū)塊均以鏈?zhǔn)浇Y(jié)構(gòu)存儲(chǔ),每當(dāng)產(chǎn)生新的區(qū)塊僅可追加在該鏈的最后一個(gè)區(qū)塊的后面,且每個(gè)區(qū)塊的結(jié)構(gòu)分為三個(gè)部分,分別為區(qū)塊頭、區(qū)塊體數(shù)據(jù)、區(qū)塊元數(shù)據(jù)。區(qū)塊頭存儲(chǔ)上一區(qū)塊的哈希值,使得每一區(qū)塊都唯一指定前一區(qū)塊,如果這一哈希值發(fā)生錯(cuò)誤或者被修改,這一區(qū)塊以及之后的區(qū)塊都會(huì)失效從而產(chǎn)生斷鏈的情形,所以只要不發(fā)生斷鏈的情況,鏈上的數(shù)據(jù)均可信可追溯。區(qū)塊體數(shù)據(jù)包含了交易的ID(identity document)、通道ID、時(shí)間戳及Merkle根等經(jīng)過驗(yàn)證的、塊創(chuàng)建過程中發(fā)生價(jià)值交換的所有追溯記錄。其中Merkel樹是基于哈希算法的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)在被分為多個(gè)小的數(shù)據(jù)塊在最底層,將這些數(shù)據(jù)哈希之后作為葉子節(jié)點(diǎn),再將它們的哈希值兩兩合并哈希生成父節(jié)點(diǎn),重復(fù)執(zhí)行直到生成一個(gè)根節(jié)點(diǎn)。在Merkle樹中,任意數(shù)據(jù)的篡改都會(huì)導(dǎo)致該節(jié)點(diǎn)的父節(jié)點(diǎn)及父節(jié)點(diǎn)以上的節(jié)點(diǎn)發(fā)生改變,最終導(dǎo)致根節(jié)點(diǎn)發(fā)生變化,這一機(jī)制也使得保存在區(qū)塊鏈上的數(shù)據(jù)具有不可篡改的特性。區(qū)塊元數(shù)據(jù)部分會(huì)保存一些區(qū)塊的相關(guān)配置及排序節(jié)點(diǎn)的證書簽名等。
圖1 區(qū)塊結(jié)構(gòu)示意圖
ETO型企業(yè)是一種面向訂單設(shè)計(jì)的企業(yè),相較于一般制造企業(yè),其生產(chǎn)過程較長(zhǎng),環(huán)節(jié)較多。ETO型企業(yè)生產(chǎn)過程大致需要經(jīng)歷合同簽訂、產(chǎn)品設(shè)計(jì)、工單設(shè)計(jì)、組件生產(chǎn)、產(chǎn)品組裝、產(chǎn)品質(zhì)檢這6個(gè)步驟。其中詳細(xì)過程為,企業(yè)市場(chǎng)部門在接到訂單和客戶簽訂合同后獲取產(chǎn)品的定制需求,企業(yè)將產(chǎn)品需求交給設(shè)計(jì)部門完成圖紙的設(shè)計(jì),之后生產(chǎn)部門就會(huì)按照合同的交貨日期及車間生產(chǎn)計(jì)劃等來設(shè)計(jì)合理的生產(chǎn)工單,然后將這些工單交付給對(duì)應(yīng)的生產(chǎn)車間進(jìn)行生產(chǎn),組件生產(chǎn)車間會(huì)首先接到生產(chǎn)組件的工單,完成組件加工后,將組件交付給組裝車間完成產(chǎn)品的組裝,組裝完成的產(chǎn)品最后經(jīng)過質(zhì)檢工序,至此完成產(chǎn)品全部生產(chǎn)過程。具體業(yè)務(wù)流程如圖2所示。
圖2 ETO型企業(yè)產(chǎn)品生產(chǎn)流程
ETO型企業(yè)的生產(chǎn)鏈主要包括市場(chǎng)部門、產(chǎn)品設(shè)計(jì)部門、生產(chǎn)部門、離散加工車間、組裝線車間、質(zhì)檢部門。各部門中存在大量的生產(chǎn)信息數(shù)據(jù),然而對(duì)于追溯產(chǎn)品生產(chǎn)過程的問題,并不需要全部的數(shù)據(jù),只需要其中關(guān)鍵信息即可。因此在保證產(chǎn)品信息逆向可追溯的基礎(chǔ)上,提取了生產(chǎn)鏈各環(huán)節(jié)的關(guān)鍵信息(表1)。
表1 生產(chǎn)流程關(guān)鍵數(shù)據(jù)
在深入研究ETO型企業(yè)生產(chǎn)鏈的流程后,結(jié)合fabric區(qū)塊鏈框架,建立如圖3所示的ETO型企業(yè)產(chǎn)品生產(chǎn)過程數(shù)據(jù)溯源模型,通過鏈上鏈下雙存儲(chǔ)模式,將ETO型企業(yè)生產(chǎn)鏈中重要生產(chǎn)信息直接上鏈,大文件進(jìn)行鏈下存儲(chǔ)后將哈希地址上鏈,實(shí)現(xiàn)信息的安全存儲(chǔ),企業(yè)監(jiān)管部門通過智能合約的調(diào)用查詢區(qū)塊鏈上信息,實(shí)現(xiàn)產(chǎn)品信息的監(jiān)管和生產(chǎn)過程的溯源。
圖3 基于fabric區(qū)塊鏈的ETO型企業(yè)生產(chǎn)過程溯源模型
該模型包含7個(gè)角色,分別為企業(yè)監(jiān)管部門、市場(chǎng)部門、產(chǎn)品設(shè)計(jì)部門、排產(chǎn)部門、離散車間、組裝線及質(zhì)檢部門。企業(yè)監(jiān)管部門主要負(fù)責(zé)生產(chǎn)過程監(jiān)管及產(chǎn)品的生產(chǎn)過程溯源,其余部門為生產(chǎn)過程各環(huán)節(jié)部門。模型中各角色通過區(qū)塊鏈節(jié)點(diǎn)和區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行交互,交互媒介為部署在區(qū)塊鏈上的智能合約,合約中制定了上鏈數(shù)據(jù)的內(nèi)容、格式及交互邏輯等。
模型中為生產(chǎn)鏈的各個(gè)生產(chǎn)環(huán)節(jié)設(shè)計(jì)各自的數(shù)據(jù)處理模塊,這些模塊通過調(diào)用智能合約實(shí)現(xiàn)本環(huán)節(jié)的數(shù)據(jù)上傳和追溯的功能;各生產(chǎn)環(huán)節(jié)的上傳數(shù)據(jù)模塊中,較大的流媒體文件會(huì)保存到鏈下存儲(chǔ)服務(wù)星際文件系統(tǒng)(IPFS)中,再將文件的地址索引上傳到區(qū)塊鏈上[17-18],查詢模塊可以根據(jù)相應(yīng)的編號(hào)查詢本環(huán)節(jié)的最新生產(chǎn)信息,以及歷史修改記錄;模型中監(jiān)管部門需要負(fù)責(zé)產(chǎn)品追溯監(jiān)管,其追溯模塊擁有追溯產(chǎn)品信息和監(jiān)管產(chǎn)品生產(chǎn)過程的能力,并且可以同時(shí)調(diào)用生產(chǎn)鏈中一個(gè)或多個(gè)生產(chǎn)環(huán)節(jié)的智能合約的查詢函數(shù),監(jiān)管產(chǎn)品的生產(chǎn)狀態(tài)或追溯產(chǎn)品的生產(chǎn)流程數(shù)。
智能合約在觸發(fā)條件滿足時(shí)可自動(dòng)執(zhí)行合約邏輯,以信息化的方式傳播、驗(yàn)證或執(zhí)行合約協(xié)議,使區(qū)塊鏈及時(shí)對(duì)外部治理做出反應(yīng)[19]。企業(yè)監(jiān)管部門的追溯智能合約,通過產(chǎn)品的產(chǎn)品編號(hào)(PID)及產(chǎn)品的工單號(hào)圖紙?zhí)杹碜匪莓a(chǎn)品的全部生產(chǎn)過程的相關(guān)信息。生產(chǎn)過程部門的數(shù)據(jù)上鏈智能合約,實(shí)現(xiàn)生產(chǎn)過程部門的追溯數(shù)據(jù)上鏈。
通過組建超級(jí)賬本多通道網(wǎng)絡(luò),為不同生產(chǎn)部門創(chuàng)建賬本數(shù)據(jù)交互的接口,各部門節(jié)點(diǎn)通過智能合約之間的調(diào)用實(shí)現(xiàn)跨鏈間的數(shù)據(jù)交互。接下來介紹數(shù)據(jù)上鏈合約算法和生產(chǎn)數(shù)據(jù)追溯的算法,算法1描述了數(shù)據(jù)上鏈操作,用戶在通過身份驗(yàn)證后,調(diào)用fabric區(qū)塊鏈軟件開發(fā)工具(SDK)庫的接口,實(shí)現(xiàn)數(shù)據(jù)的上鏈;算法2描述了數(shù)據(jù)追溯的操作,其中步驟2~步驟10通過輸入產(chǎn)品的唯一標(biāo)識(shí)(ID),逐步追溯產(chǎn)品的所有生產(chǎn)環(huán)節(jié)信息。
1)算法1:數(shù)據(jù)上鏈智能合約算法。
輸入:身份信息(auth),上鏈的信息(chain data)。
輸出:完成交易的txID。
①if(auth is valid)then//驗(yàn)證身份信息;
②SDK(func==set) //選擇數(shù)據(jù)上鏈函數(shù);
③if TypeLegal(chain data) ok then //檢查數(shù)據(jù)是否規(guī)范;
④blockchain(chain data)//數(shù)據(jù)上鏈,同步到區(qū)塊賬本;
⑤return TxID //數(shù)據(jù)上鏈成功,返回交易號(hào);
⑥else;
⑦return(Chain data TypeIl Legal)//上鏈數(shù)據(jù)不規(guī)范,上鏈?zhǔn)?
⑧return (auth Error) //身份驗(yàn)證失敗。
2)算法2:生產(chǎn)數(shù)據(jù)追溯算法。
輸入:身份信息(auth),待查詢產(chǎn)品的唯一標(biāo)識(shí)號(hào)(PID)。
輸出:productID的所有生產(chǎn)流程相關(guān)數(shù)據(jù)(PIDdate)。
①if(auth is valid)then//驗(yàn)證身份信息;
②SDK(func==trace)//選擇產(chǎn)品追溯函數(shù);
③If(質(zhì)檢,組裝,組件賬本中存在PID)then;
④trace(PIDdate,qualify,assemble,components)//追溯產(chǎn)品質(zhì)檢、組裝、組件信息存入PIDdate;
⑤Trace(PIDdate,workList)//通過PIDdate中綁定的工單號(hào)追溯產(chǎn)品工單信息,存入PIDdate;
⑥Trace(PIDdate,drawing,contract)//通過PIDdate中的圖紙編號(hào)與合同編號(hào),追溯圖紙與合同信息,存入PIDdate;
⑦return (PIDdate)//追溯成功,返回產(chǎn)品信息;
⑧else;
⑨return (trace PIDdate Error)//追溯過程出錯(cuò),返回錯(cuò)誤信息;
⑩retrun (auth Error)//身份驗(yàn)證失敗。
通過對(duì)ETO型企業(yè)的生產(chǎn)流程分析,研究構(gòu)建基于區(qū)塊鏈技術(shù)的生產(chǎn)過程追溯系統(tǒng),創(chuàng)建部門通道隔離部門隱私數(shù)據(jù)以及編寫智能合約來上傳數(shù)據(jù)到區(qū)塊鏈網(wǎng)絡(luò)和監(jiān)管追溯鏈上數(shù)據(jù),可以實(shí)現(xiàn)對(duì)ETO型企業(yè)生產(chǎn)過程數(shù)據(jù)的有效監(jiān)管和數(shù)據(jù)安全。
如圖4所示,追溯系統(tǒng)架構(gòu)分為資源層、區(qū)塊鏈平臺(tái)層、后臺(tái)管理層、應(yīng)用層4層。
圖4 追溯系統(tǒng)架構(gòu)
1)資源層包括搭建網(wǎng)絡(luò)的硬件和軟件資源,比如計(jì)算機(jī)、服務(wù)器、操作系統(tǒng)等。
2)區(qū)塊鏈平臺(tái)層是通過fabric區(qū)塊鏈框架搭建區(qū)塊鏈網(wǎng)絡(luò)后臺(tái),包括組織通道的創(chuàng)建、節(jié)點(diǎn)部署、智能合約的編寫等。
3)后臺(tái)管理層分為4部分,分別為系統(tǒng)管理、業(yè)務(wù)管理、區(qū)塊鏈管理及數(shù)據(jù)庫管理。這一層主要負(fù)責(zé)系統(tǒng)的一些業(yè)務(wù)上的數(shù)據(jù)管理及系統(tǒng)的配置連接管理。
4)應(yīng)用層主要為系統(tǒng)所連接的一些上鏈數(shù)據(jù)和查詢追溯數(shù)據(jù)的終端設(shè)備,各部門可以通過終端設(shè)備直接與區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互。
ETO型企業(yè)生產(chǎn)過程數(shù)據(jù)追溯系統(tǒng)采用hyperledger fabric 2.3框架實(shí)現(xiàn),實(shí)驗(yàn)創(chuàng)建了6個(gè)用戶通道、5個(gè)排序節(jié)點(diǎn),共識(shí)機(jī)制采用raft共識(shí),智能合約采用了Go編程語言來實(shí)現(xiàn),同時(shí),SDK選擇與智能合約的編程語言相匹配的GO_SDK工具包,來編寫服務(wù)端與前端用戶的數(shù)據(jù)交互接口。后臺(tái)管理服務(wù)端采用Go編程語言的Gin框架實(shí)現(xiàn),客戶端選用了Vue框架來完成,鏈下存儲(chǔ)服務(wù)的IPFS采用了2臺(tái)虛擬機(jī)完成搭建。實(shí)驗(yàn)中各部門節(jié)點(diǎn)均在一臺(tái)虛擬機(jī)創(chuàng)建出各個(gè)設(shè)備虛擬節(jié)點(diǎn),所有虛擬機(jī)上均搭載Ubuntu18.04系統(tǒng)。關(guān)于區(qū)塊鏈網(wǎng)絡(luò)配置,實(shí)驗(yàn)設(shè)置區(qū)塊的生成策略為每2 s產(chǎn)生一個(gè)區(qū)塊或每50個(gè)交易就會(huì)打包產(chǎn)生一個(gè)區(qū)塊。
ETO型制造企業(yè)產(chǎn)品生產(chǎn)過程數(shù)據(jù)交易上鏈和追溯測(cè)試過程信息界面如圖5至圖7所示,系統(tǒng)結(jié)合ETO型企業(yè)柔性生產(chǎn)的過程,把相應(yīng)的生產(chǎn)信息按環(huán)節(jié)上傳到區(qū)塊鏈網(wǎng)絡(luò),實(shí)現(xiàn)數(shù)據(jù)的安全存儲(chǔ)和共享,監(jiān)管部門通過產(chǎn)品的唯一標(biāo)識(shí)碼來溯源產(chǎn)品當(dāng)前狀態(tài)下的生產(chǎn)流程信息。如圖5和圖6所示,企業(yè)生產(chǎn)過程中的市場(chǎng)部門在完成合同的簽訂后將合同上傳到區(qū)塊鏈網(wǎng)絡(luò),區(qū)塊鏈上則生成新的交易和區(qū)塊,上傳的合同信息保存在新生成的區(qū)塊中,介于區(qū)塊鏈的極難篡改和易追溯的特性使得合同的防篡改能力和可追溯性得到了極大的提升。
圖5 合同上鏈交易信息
圖7 產(chǎn)品溯源信息
系統(tǒng)的追溯模塊下,監(jiān)管部門用戶在系統(tǒng)追溯模塊下輸入產(chǎn)品的標(biāo)識(shí)號(hào)后,系統(tǒng)會(huì)通過該產(chǎn)品標(biāo)識(shí)號(hào)調(diào)用智能合約在區(qū)塊鏈上查詢?cè)摦a(chǎn)品的質(zhì)檢信息、組裝信息、組件信息、工單信息、圖紙和合同的詳細(xì)信息。如圖7所示,測(cè)試用例以編號(hào)為product-001(以下用P1表示)的產(chǎn)品追溯過程示例,系統(tǒng)在獲取到該編號(hào)后,首先會(huì)查詢質(zhì)檢和組裝賬本,查詢這兩個(gè)賬本中產(chǎn)品ID為P1的質(zhì)檢和組裝信息,然后向上追溯該產(chǎn)品所涉及的組件信息,查詢組件賬本中所有用于組裝P1的組件信息;在組裝和組件生產(chǎn)過程中涉及的工單信息,則通過已經(jīng)追溯到的組裝和組件信息中工單的ID,來追溯所設(shè)計(jì)工單的詳細(xì)信息;生產(chǎn)工單中包含的執(zhí)行圖紙ID和目標(biāo)生產(chǎn)合同ID,正是產(chǎn)品P1的圖紙信息和合同信息關(guān)鍵溯源key,通過這兩個(gè)ID查詢圖紙賬本和合同賬本,可以迅速追溯到P1的所用圖紙?jiān)敿?xì)信息和產(chǎn)品合同詳細(xì)信息。至此,完成產(chǎn)品編號(hào)為P1的全部生產(chǎn)過程信息的溯源。
此外,追溯信息中所涉及的較大的多媒體流文件,例如合同文件、圖紙文件等,均存儲(chǔ)在IPFS上,查詢的信息僅顯示文件存儲(chǔ)在星際文件服務(wù)上的哈希地址,文件以鏈接形式供用戶下載查看。通過測(cè)試可以看到,系統(tǒng)將ETO型企業(yè)每一生產(chǎn)環(huán)節(jié)的關(guān)鍵數(shù)據(jù)存儲(chǔ)到區(qū)塊鏈網(wǎng)絡(luò)中,生成區(qū)塊進(jìn)行存證,并且系統(tǒng)可以通過產(chǎn)品唯一標(biāo)識(shí)碼向上溯源生產(chǎn)過程的數(shù)據(jù)信息,實(shí)現(xiàn)了基于區(qū)塊鏈的ETO型企業(yè)生產(chǎn)過程數(shù)據(jù)可信溯源,有效地防止關(guān)鍵生產(chǎn)數(shù)據(jù)丟失和被篡改的風(fēng)險(xiǎn),極大地提升了生產(chǎn)過程的可追溯性。
實(shí)驗(yàn)采用開源區(qū)塊鏈測(cè)試工具tape來測(cè)試所構(gòu)建的區(qū)塊鏈網(wǎng)絡(luò)的性能。測(cè)試市場(chǎng)部門通道的數(shù)據(jù)上鏈?zhǔn)聞?wù)和查詢事務(wù)吞吐率的網(wǎng)絡(luò)性能測(cè)試,結(jié)果如圖8所示。設(shè)置tape工具向Fabric發(fā)送事務(wù)的并發(fā)量為225,測(cè)試20組發(fā)送不同交易量的TPS(transaction per second)數(shù)據(jù),交易數(shù)量為50~1 000,每組以50個(gè)交易為遞增量,可以得到記賬交易事件的TPS基本保持在70~90,表現(xiàn)相對(duì)穩(wěn)定,而查詢鏈上數(shù)據(jù)的TPS數(shù)值能夠一直保持在250左右處于較高的水平。因此,建立的基于區(qū)塊鏈的生產(chǎn)過程數(shù)據(jù)追溯網(wǎng)絡(luò)具有不錯(cuò)的查詢與寫入吞吐量。
圖8 網(wǎng)絡(luò)壓力測(cè)試結(jié)果
為了測(cè)試基于區(qū)塊鏈的ETO型企業(yè)生產(chǎn)過程追溯系統(tǒng)的數(shù)據(jù)上鏈記賬延遲時(shí)間以及查詢鏈上賬本數(shù)據(jù)延遲時(shí)間,首先測(cè)試了各個(gè)部門上傳數(shù)據(jù)到區(qū)塊鏈的平均記賬時(shí)間和查詢鏈上數(shù)據(jù)的查詢平均時(shí)間(圖9)。記賬平均時(shí)間為0.4~0.5 s,查詢平均時(shí)間為0.3~0.4 s,完成記賬和查詢的所需時(shí)間很短。
圖9 各生產(chǎn)部門記賬與查詢平均延時(shí)
此外,還測(cè)試了單個(gè)部門多次記賬和查詢的詳細(xì)的時(shí)間變化。以市場(chǎng)部門為例,進(jìn)行50次記賬和查詢測(cè)試,測(cè)試結(jié)果如圖10和圖11所示,記賬平均時(shí)間為0.408 s,查詢平均時(shí)間為0.361 s。
圖10 合同上鏈記賬延時(shí)
圖11 合同數(shù)據(jù)追溯查詢延時(shí)
綜上測(cè)試結(jié)果顯示,該區(qū)塊鏈追溯生成數(shù)據(jù)網(wǎng)絡(luò)的上傳數(shù)據(jù)和查詢的延遲較低,能夠充分滿足企業(yè)生產(chǎn)線的數(shù)據(jù)采集和追溯的需求。
通過hyperledger fabric區(qū)塊鏈技術(shù)設(shè)計(jì)并實(shí)現(xiàn)針對(duì)ETO型企業(yè)生產(chǎn)鏈的生產(chǎn)過程數(shù)據(jù)追溯系統(tǒng),使得ETO型企業(yè)在生產(chǎn)過程中數(shù)據(jù)可以有效、安全地存儲(chǔ)在區(qū)塊鏈上。并且,企業(yè)的監(jiān)管部門可以實(shí)時(shí)監(jiān)管并追溯鏈上數(shù)據(jù),提高了ETO型企業(yè)協(xié)同加工制造環(huán)節(jié)之間生產(chǎn)數(shù)據(jù)的安全性和可追溯性,對(duì)ETO型企業(yè)完善生產(chǎn)鏈的數(shù)據(jù)追溯研究有重要參考意義。
就本系統(tǒng)而言,仍還有部分地方需要改善來提升系統(tǒng)在生產(chǎn)過程中的效率。接下來的工作,將針對(duì)ETO型企業(yè)產(chǎn)品的工藝離散特性,準(zhǔn)備采用有序聚合簽名與區(qū)塊鏈整合的方式來進(jìn)一步提高ETO型企業(yè)產(chǎn)品數(shù)據(jù)的工藝可追溯性,利用有序聚合簽名的保序性驗(yàn)證產(chǎn)品加工的離散工藝正確性,最后簽名上傳到區(qū)塊鏈上以供產(chǎn)品數(shù)據(jù)追溯。