黃 意 閆愛(ài)軍 王智濤 雷雙全 高澤松 廖強(qiáng)強(qiáng)
1.武漢海關(guān)信息中心
2.西安熱工研究院有限公司
3.中國(guó)華能集團(tuán)有限公司
4.西安清宇網(wǎng)絡(luò)科技有限公司
5.上海電力大學(xué)
樣品檢測(cè)是保障火力發(fā)電廠安全穩(wěn)定運(yùn)行的重要保障手段之一,通過(guò)出具準(zhǔn)確的數(shù)據(jù)評(píng)判產(chǎn)品是否合格、查找發(fā)電過(guò)程中異常的原因、尋求異常解決方法。樣品檢測(cè)涉及樣品種類(lèi)繁多,主要有水、煤、油、金屬材料、催化劑等,通常由發(fā)電廠所屬的檢測(cè)實(shí)驗(yàn)室承擔(dān)著本單位例行檢測(cè)、大小修事故排查的檢測(cè)測(cè)試工作,但有些檢測(cè)測(cè)試項(xiàng)目,由于所使用的儀器昂貴、檢測(cè)頻次低或不具備檢測(cè)資質(zhì)等原因,需要委托相關(guān)單位檢測(cè)測(cè)試[1]。
委托檢測(cè)是檢測(cè)過(guò)程中的重要環(huán)節(jié)和關(guān)鍵控制點(diǎn),但是由于涉及待檢測(cè)樣品的跨區(qū)域流通、檢測(cè)周期長(zhǎng)、中間環(huán)節(jié)多[2],極易造成樣品混淆、原始樣品難以追溯、多項(xiàng)檢測(cè)結(jié)果不易整合、檢測(cè)結(jié)果不便查看、異常結(jié)果不便追溯等問(wèn)題[3]。
本項(xiàng)目針對(duì)上述問(wèn)題,提出了采用基于區(qū)塊鏈的發(fā)電廠樣品委托檢測(cè)物流及信息管理系統(tǒng),設(shè)計(jì)了樣品標(biāo)識(shí)子系統(tǒng)、樣品物流子系統(tǒng)和樣品信息流子系統(tǒng),最后通過(guò)使用Python 機(jī)器語(yǔ)言中Django模塊完成程序的架構(gòu)部分,通過(guò)結(jié)合MySQL 數(shù)據(jù)庫(kù),采用B/S(Browser/Server,瀏覽器/服務(wù)器)模式,以完成面向Web端的應(yīng)用系統(tǒng)[4]。實(shí)現(xiàn)委托樣品全過(guò)程閉環(huán)管理,動(dòng)態(tài)實(shí)時(shí)靈活的控制訪問(wèn),提升了樣品檢測(cè)的可靠性、及時(shí)性和可溯源性。
物流:樣品準(zhǔn)備→樣品傳遞→樣品接收→樣品檢測(cè)→樣品處置。
信息流:一次標(biāo)識(shí)→二次標(biāo)識(shí)→三次標(biāo)識(shí)→檢測(cè)分析及報(bào)告(編寫(xiě)、審核、批準(zhǔn)、蓋章)→報(bào)告查看。
1.2.1 樣品準(zhǔn)備
樣品的準(zhǔn)備由電廠來(lái)完成,分為取樣、分割、存儲(chǔ)、標(biāo)識(shí)等。在此過(guò)程中,需取得最具代表性的樣品,并按照規(guī)定分割,在發(fā)電廠所屬的檢測(cè)實(shí)驗(yàn)室存儲(chǔ)留樣;采用有效的標(biāo)識(shí)方法,在每個(gè)分割后的樣品上,盡可能準(zhǔn)確、詳盡地獲取樣品重要信息和全面信息。
最常用的信息記錄了樣品的品名、型號(hào)、數(shù)量、依據(jù)標(biāo)準(zhǔn)、生產(chǎn)日期、制造單位以及其他的信息。對(duì)于產(chǎn)品類(lèi)樣品,上述信息基本上滿足了檢測(cè)的要求;但是對(duì)于從主體設(shè)備或流程上取樣獲得的樣品,除了上述信息,最好有取樣部位的描述、照片、狀態(tài)、取樣人、取樣方法等記錄。
1.2.2 樣品傳遞
樣品傳遞通常由物流公司來(lái)完成。通過(guò)物流郵寄方式傳遞;也有可能由電廠使用自有運(yùn)輸工具傳遞。有可能出現(xiàn)丟失、延期、損壞等意外。
在此過(guò)程中,如果是物流公司承運(yùn),則其按照本公司的編碼規(guī)則重新進(jìn)行標(biāo)識(shí),將樣品運(yùn)輸至檢測(cè)機(jī)構(gòu)所在的地址。電廠在運(yùn)輸過(guò)程中只能獲取主要的運(yùn)輸進(jìn)度信息,但是不能獲取樣品在運(yùn)輸過(guò)程中的狀態(tài)信息。
1.2.3 樣品接收
樣品接收由檢測(cè)機(jī)構(gòu)來(lái)完成,需要從物流公司收取樣品,并確認(rèn)樣品是否完好。
需要對(duì)樣品重新登記、存儲(chǔ)、加工(分割)、標(biāo)識(shí)等。重新標(biāo)識(shí)后的樣品作為檢測(cè)機(jī)構(gòu)內(nèi)部流通時(shí)的信息傳遞載體。
1.2.4 樣品檢測(cè)
樣品檢測(cè)由檢測(cè)機(jī)構(gòu)來(lái)完成,按照需求和程序完成樣品的檢測(cè)。對(duì)于有多個(gè)檢測(cè)項(xiàng)目時(shí),樣品通常被分割成多份,并分別檢測(cè)。有可能檢測(cè)流程是并行的,有可能是串行的,也有可能是串行+并行。
每一個(gè)檢測(cè)項(xiàng)目結(jié)束后,需要對(duì)檢測(cè)的結(jié)果進(jìn)行復(fù)核、確認(rèn),形成分項(xiàng)目檢測(cè)單或檢測(cè)報(bào)告。
所有檢測(cè)項(xiàng)目結(jié)束后,形成總的檢測(cè)報(bào)告,經(jīng)過(guò)三級(jí)審核后傳遞至電廠,完成信息流的閉環(huán)。
檢測(cè)報(bào)告按照不同授權(quán),可實(shí)現(xiàn)檢測(cè)信息在不同機(jī)構(gòu)、不同層級(jí)人員的查閱、分發(fā)和跟蹤。涉及一定密級(jí)的報(bào)告,可實(shí)現(xiàn)查閱報(bào)告人的詳細(xì)記錄,包括人員的信息、時(shí)間、簽閱或分發(fā)等。
1.2.5 樣品處置
樣品處置由檢測(cè)機(jī)構(gòu)來(lái)完成,按照電廠的需求或需要,選擇寄回、廢棄或長(zhǎng)期存儲(chǔ)。形成樣品物流的閉環(huán)。
2.1.1 系統(tǒng)需求體系架構(gòu)
基于區(qū)塊鏈的發(fā)電廠樣品委托檢測(cè)物流及信息管理系統(tǒng)具有4 層體系架構(gòu),頂層用戶業(yè)務(wù)服務(wù)層,應(yīng)用服務(wù)設(shè)計(jì)層,中間層節(jié)點(diǎn)服務(wù)和底層區(qū)塊鏈網(wǎng)絡(luò),如圖1所示。
圖1 系統(tǒng)需求體系架構(gòu)
2.1.2 頂層用戶
基于區(qū)塊鏈的發(fā)電廠樣品委托檢測(cè)物流及信息管理系統(tǒng)中各用戶和角色的需求如下。
1)檢驗(yàn)檢測(cè)責(zé)任人個(gè)體需求
每個(gè)檢驗(yàn)檢測(cè)責(zé)任人通過(guò)掃描樣品包裝上的二維碼。
(1)進(jìn)入電廠樣品檢驗(yàn)檢測(cè)聯(lián)盟系統(tǒng)快速了解樣品的標(biāo)識(shí)、分割、流轉(zhuǎn)、檢測(cè)數(shù)據(jù)、存儲(chǔ)等相關(guān)信息并進(jìn)行相關(guān)操作。
(2)使用防偽溯源功能,獲得樣品標(biāo)識(shí)信息,查詢樣品真?zhèn)?,通過(guò)溯源知曉樣品的采樣單位、流轉(zhuǎn)、分割、檢測(cè)、保存等全過(guò)程所有信息。
(3)使用流程監(jiān)控功能,接收樣品開(kāi)始工作,或者樣品不滿足測(cè)試條件,發(fā)現(xiàn)和拒收樣品,并提交相關(guān)部門(mén)跟蹤處理。
(4)使用下載功能,下載樣品相關(guān)數(shù)據(jù)或者檢測(cè)報(bào)告。
(5)使用整合功能,自動(dòng)生成樣品的全流程測(cè)試報(bào)告。
(6)使用查詢功能,根據(jù)樣品工作進(jìn)度、協(xié)作程度,預(yù)估并安排自己的工作計(jì)劃,增加組織的協(xié)作效率,降低樣品的檢測(cè)周期,并提高樣品的檢測(cè)效率。
2)檢驗(yàn)檢測(cè)單位(節(jié)點(diǎn))需求
(1)二維碼生成功能,自定義秘鑰,為每個(gè)樣品生成個(gè)性化加密二維碼。
(2)數(shù)據(jù)錄入功能,實(shí)現(xiàn)全流程數(shù)據(jù)采集。
(3)防偽溯源功能,生成唯一區(qū)塊鏈ID,產(chǎn)生防偽碼,將關(guān)聯(lián)數(shù)據(jù)作為溯源信息。
(4)精準(zhǔn)查詢功能,通過(guò)智能合約獲得樣品檢測(cè)精準(zhǔn)結(jié)果;
(5)數(shù)據(jù)統(tǒng)計(jì)功能,獲得樣品在檢測(cè)的時(shí)間周期,工作量,以及出錯(cuò)概率。
3)監(jiān)管方需求
(1)樣品的檢驗(yàn)周期監(jiān)督功能,實(shí)現(xiàn)樣品的全流程跟蹤,并根據(jù)樣品的流轉(zhuǎn)和檢測(cè)數(shù)據(jù),核查樣品在每個(gè)節(jié)點(diǎn)所消耗的時(shí)間,明確樣品檢測(cè)的瓶頸。
(2)樣品檢測(cè)報(bào)告的效果監(jiān)督,根據(jù)實(shí)時(shí)報(bào)告生成系統(tǒng),了解樣品的檢測(cè)結(jié)果,指導(dǎo)電廠的合理安全運(yùn)營(yíng)。
(3)節(jié)點(diǎn)工作量?jī)?yōu)化功能,根據(jù)每個(gè)節(jié)點(diǎn)的檢驗(yàn)檢測(cè)結(jié)果,和檢驗(yàn)檢測(cè)效率,以及人員與實(shí)驗(yàn)儀器配比,合理調(diào)整檢驗(yàn)檢測(cè)工作流程,提高組織的檢測(cè)效率和檢測(cè)質(zhì)量。
4)區(qū)塊鏈系統(tǒng)管理員需求
(1)用戶角色和權(quán)限管理功能,按不同節(jié)點(diǎn)、不同職位和不同工作崗位,設(shè)計(jì)合理的用戶權(quán)限,在提高節(jié)點(diǎn)之間數(shù)據(jù)共享效率的同時(shí),又保持每個(gè)節(jié)點(diǎn)單位的數(shù)據(jù)安全。
(2)用戶應(yīng)用層業(yè)務(wù)設(shè)計(jì)功能,根據(jù)用戶的需求不同,結(jié)合用戶權(quán)限,定制用戶個(gè)人服務(wù)內(nèi)容,比如樣品延時(shí)報(bào)警功能,樣品標(biāo)識(shí)數(shù)據(jù)丟失拒收功能,以及樣品全流程測(cè)試完成提醒功能。
2.1.3 中間應(yīng)用服務(wù)
使用區(qū)塊鏈技術(shù)、二維碼技術(shù)和web技術(shù)將樣品的標(biāo)識(shí)、流轉(zhuǎn)數(shù)據(jù)以及檢測(cè)報(bào)告和處理意見(jiàn)制作成數(shù)字資源,保存在高性能服務(wù)器中,并通過(guò)網(wǎng)絡(luò)給不同角色和用戶提供個(gè)性化服務(wù)。中間應(yīng)用服務(wù)層,主要包括用戶權(quán)限系統(tǒng)、任務(wù)系統(tǒng)和業(yè)務(wù)數(shù)據(jù)庫(kù)。
2.1.4 系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層主要包括區(qū)塊鏈共識(shí)機(jī)制以及算法,不同檢驗(yàn)檢測(cè)單位節(jié)點(diǎn)數(shù)據(jù)庫(kù),滿足了不同節(jié)點(diǎn)之間的數(shù)據(jù)共享,滿足了多副本、可靠記錄、不可竄改、多方透明的四個(gè)特性。
2.1.5 底層區(qū)塊鏈網(wǎng)絡(luò)
底層區(qū)塊鏈網(wǎng)絡(luò)主要是對(duì)數(shù)據(jù)進(jìn)行處理,用中間系統(tǒng)服務(wù)進(jìn)行交互,以實(shí)現(xiàn)數(shù)據(jù)協(xié)作功能,如:去中心化,安全可信,不可竄改,智能合約,集體維護(hù)。一個(gè)區(qū)塊能同時(shí)保留同一數(shù)據(jù)庫(kù)的多個(gè)共享副本,使分布式賬本難以被黑客攻擊竄改;將樣品的標(biāo)識(shí)、流轉(zhuǎn)過(guò)程、檢測(cè)過(guò)程、不同節(jié)點(diǎn)不同檢測(cè)項(xiàng)目的信息進(jìn)行整合并寫(xiě)入?yún)^(qū)塊鏈,每一條信息都擁有唯一的區(qū)塊鏈ID,且附有樣品的數(shù)字簽名和時(shí)間戳,這提供了良好的底層數(shù)據(jù)支撐,使用戶能對(duì)樣品檢測(cè)結(jié)果進(jìn)行有效的把控;將不同來(lái)源的樣品在檢測(cè)過(guò)程中的參與主體(包括原電廠、檢驗(yàn)檢測(cè)中心、內(nèi)部流轉(zhuǎn)信息、分割保存信息、檢測(cè)結(jié)果)的信息數(shù)字化后存進(jìn)區(qū)塊鏈中,使每一個(gè)參與者的信息在區(qū)塊鏈中可被查看;實(shí)現(xiàn)一物一碼全流程防偽追溯,使整個(gè)樣品檢驗(yàn)檢測(cè)內(nèi)所有流程都清晰可見(jiàn)。
2.2.1 系統(tǒng)功能業(yè)務(wù)流程分析
根據(jù)上述需求,本系統(tǒng)分為3 個(gè)子系統(tǒng)即二維碼子系統(tǒng)、樣品檢驗(yàn)檢測(cè)流程監(jiān)控子系統(tǒng)和防偽溯源子系統(tǒng)。本課題組基于區(qū)塊鏈、二維碼技術(shù),通過(guò)使用Python 機(jī)器語(yǔ)言中Django 模塊完成程序的架構(gòu)部分,通過(guò)結(jié)合MySQL 數(shù)據(jù)庫(kù),采用B/S(Browser/Server,瀏覽器/服務(wù)器)模式,以完成面向Web端的應(yīng)用系統(tǒng)。本應(yīng)用系統(tǒng)的業(yè)務(wù)流程如圖2所示。其中,每個(gè)節(jié)點(diǎn)檢測(cè)責(zé)任人掃描二維碼后,只有合法用戶才可以進(jìn)行樣品的報(bào)告檢索、狀態(tài)更新等相關(guān)操作。
圖2 系統(tǒng)功能業(yè)務(wù)流程示意圖
2.2.2 二維碼子系統(tǒng)
二維碼子系統(tǒng)包括以下功能
1)二維碼與樣品的信息關(guān)聯(lián)。提取需要二維碼攜帶的信息,并在數(shù)據(jù)庫(kù)中與樣品做好相應(yīng)關(guān)聯(lián)。
2)密鑰對(duì)生成器。采用通用算法隨機(jī)生成公鑰和私鑰。
3)信息加密和解密。節(jié)點(diǎn)根據(jù)自己的私鑰進(jìn)行加密,用戶利用系統(tǒng)公鑰進(jìn)行解密。
4)二維碼生成。將需要傳遞的信息生成二維碼。
2.2.3 樣品檢驗(yàn)檢測(cè)流程監(jiān)控子系統(tǒng)
通過(guò)區(qū)塊鏈平臺(tái)實(shí)現(xiàn)各個(gè)檢驗(yàn)檢測(cè)中心節(jié)點(diǎn)的數(shù)據(jù)同步,樣品檢測(cè)流程精確化、科學(xué)化、數(shù)字化與智能化,提高樣品檢驗(yàn)檢測(cè)的效率。樣品檢驗(yàn)檢測(cè)流程監(jiān)控子系統(tǒng)包括以下功能。
1)樣品狀態(tài)信息錄入。對(duì)電廠樣品的標(biāo)識(shí)、分割、流轉(zhuǎn)、保存等全過(guò)程信息錄入和測(cè)試責(zé)任人信息的采集。
2)測(cè)試數(shù)據(jù)與樣品的精確匹配。對(duì)樣品信息,測(cè)試單位、測(cè)試責(zé)任人、測(cè)試事件以及測(cè)試結(jié)果通過(guò)區(qū)塊鏈技術(shù)進(jìn)行存儲(chǔ)。
3)測(cè)試流程監(jiān)控。系統(tǒng)可以根據(jù)測(cè)試計(jì)劃,監(jiān)控測(cè)試進(jìn)度,共享測(cè)試數(shù)據(jù)。
4)數(shù)據(jù)統(tǒng)計(jì)分析。根據(jù)樣品測(cè)試周期分析,測(cè)試節(jié)點(diǎn)或者測(cè)試步驟的瓶頸,提高工作效率。
5)獎(jiǎng)勵(lì)機(jī)制。對(duì)于測(cè)試完成的數(shù)量與質(zhì)量,量化分析每個(gè)節(jié)點(diǎn)甚至責(zé)任人的工作績(jī)效,給予適當(dāng)?shù)莫?jiǎng)勵(lì)。
2.2.4 樣品防偽溯源子系統(tǒng)
在整個(gè)樣品檢驗(yàn)檢測(cè)流程中,通過(guò)終端化的防偽溯源二維碼及公開(kāi)透明的區(qū)塊鏈技術(shù),讓用戶可以編輯查詢樣品的實(shí)時(shí)狀態(tài)和相關(guān)檢驗(yàn)檢測(cè)數(shù)據(jù),對(duì)于提高工作效率,保障電廠的安全運(yùn)營(yíng)具有深遠(yuǎn)意義。該系統(tǒng)具體功能如下。
1)樣品狀態(tài)信息采集與同步更新。從標(biāo)識(shí),分割,流轉(zhuǎn),檢測(cè)與存儲(chǔ),對(duì)樣品的生命全周期進(jìn)行信息采集,特別是檢測(cè)時(shí)間、地點(diǎn)以及責(zé)任人的相關(guān)信息。
2)防偽。每個(gè)樣品,包括樣品的分割都會(huì)生成防偽碼,方便防偽查詢。
3)溯源。溯源碼生成,樣品檢測(cè)的全流程溯源,用戶可以查詢樣品的溯源信息。
4)樣品的歸屬關(guān)系。樣品從電廠取樣標(biāo)識(shí)后,由于工作的要求,可能會(huì)在測(cè)試節(jié)點(diǎn)進(jìn)行分割,分割后的樣品與原有樣品產(chǎn)生不同層級(jí)的歸屬關(guān)系,通過(guò)區(qū)塊鏈ID,智能合約,可以方便地查詢到每個(gè)樣品的狀態(tài)以及從屬關(guān)系。
5)數(shù)據(jù)統(tǒng)計(jì)分析。對(duì)樣品的檢測(cè)結(jié)果進(jìn)行數(shù)據(jù)分析,生成樣品多級(jí)測(cè)試報(bào)告。
6)獎(jiǎng)勵(lì)機(jī)制。對(duì)節(jié)點(diǎn)的工作質(zhì)量,以及檢驗(yàn)檢測(cè)責(zé)任的工作質(zhì)量和數(shù)量的分析,觸發(fā)相應(yīng)的獎(jiǎng)勵(lì)。
2.3.1 本應(yīng)用系統(tǒng)采用SQL數(shù)據(jù)庫(kù)
1)用戶信息表包括ID, 用戶名,密碼,email,所屬單位,登錄IP,登錄時(shí)間,登錄次數(shù),狀態(tài),角色I(xiàn)D是否匿名。
2)樣品標(biāo)識(shí)表包括,樣品ID,二維碼ID,所屬類(lèi)別,內(nèi)容,環(huán)境條件,電廠名稱(chēng), 位置信息,取樣時(shí)間,原材料情況,錄入人,是否分割,防偽碼等。
3)樣品的層級(jí)關(guān)系表,樣品ID, 父ID, 名稱(chēng),類(lèi)別,層級(jí)是否分割。
4)測(cè)試進(jìn)度表包括,樣品ID, 父ID, 二維碼,防偽碼,所屬電廠,所屬類(lèi)別,內(nèi)容,發(fā)布位置,所屬節(jié)點(diǎn),測(cè)試內(nèi)容,測(cè)試步驟,測(cè)試責(zé)任人,是否完成測(cè)試,審核人,審核時(shí)間。
5)二維碼表包括,ID,二維碼,密鑰,內(nèi)容。
6)審核信息表包括,二維碼ID, 二維碼掃描位置,掃描時(shí)間,是否通過(guò),評(píng)價(jià)星級(jí),評(píng)價(jià)內(nèi)容。
7)獎(jiǎng)勵(lì)表包括ID,節(jié)點(diǎn)ID, 責(zé)任人ID, 完成測(cè)試樣品數(shù)量,五星評(píng)價(jià)樣品數(shù)量,累計(jì)每月測(cè)試時(shí)間。
2.3.2 區(qū)塊鏈數(shù)據(jù)采用NoSQL數(shù)據(jù)庫(kù)
區(qū)塊鏈數(shù)據(jù)通過(guò)文檔進(jìn)行存儲(chǔ),是一種使用JSON(JavaScript object notation) 格式、以Key-Value 存儲(chǔ)數(shù)據(jù)的方式。區(qū)塊鏈信息存儲(chǔ)如下。
{
"block": "
00006aa49f0f24bb0e84460469591595e
43c28f1e157f2c75068d81a9c527568",
"header":{
"merkle_root": "
04c119e51d2ad166c71166770
8e1d2728839559886c74981f8f29476f721f15e",
"nonce":518370,
"parent": "
0000a59bf06d82cf571f37b46c6d67
45887e45e3acf8ad2d145e9931e32f95d7",
"target":4,
"timestamp": "2018-07-29 17: 00:
02.362425","version":"00000001",
"data":""
},
"size":120,"transactions":{
"
04c119e51d2ad166c711667708e1d2728839559 88 6c74981f8f29476f721f15e":{
"input_count": 0, "inputs": [], "output_count":1,"outputs":[
{
"address":"b2c2dd63a731f3ca4bcc5c9
860e7d90f8d1f3b024def2dfe5347e1ab1cf3e 308","amount":100
}]
}},
"txcount":1
}
本課題組基于以太坊開(kāi)發(fā),使用Truffle v4.1.14 和Solidity 0.4.24 編碼,具有二維碼包裝廣告監(jiān)管和防偽溯源功能的品牌鏈Dapp 代碼。后端區(qū)塊鏈?zhǔn)褂肎eth(go ethereum)設(shè)置私有以太坊網(wǎng)絡(luò),并 通 過(guò)Web 3 JavaScript 庫(kù)、Node.js、liteserver 實(shí)現(xiàn)交互。前端應(yīng)用系統(tǒng)是使用Python Django Web框架實(shí)現(xiàn)。本系統(tǒng)的實(shí)現(xiàn)架構(gòu)圖如圖3所示。本系統(tǒng)分為前端和后端。
1)前端
通過(guò)瀏覽器提供樣品信息和測(cè)試信息的錄入、節(jié)點(diǎn)測(cè)試責(zé)任人防偽溯源查詢、測(cè)試流程監(jiān)控和監(jiān)管等功能。
2)后端
Web 服務(wù)器提供系統(tǒng)的Web 服務(wù); RPC(remote procedure call)提供了以太坊虛擬網(wǎng)絡(luò);智能合約實(shí)現(xiàn)數(shù)據(jù)存入?yún)^(qū)塊鏈、數(shù)據(jù)查詢及系統(tǒng)獎(jiǎng)勵(lì)機(jī)制;區(qū)塊鏈為每一個(gè)樣品數(shù)據(jù)塊實(shí)體。
圖3 系統(tǒng)的實(shí)現(xiàn)架構(gòu)圖
第一步,下載Ganache,Ganache 用于提供節(jié)點(diǎn)。網(wǎng)絡(luò)以及初始賬號(hào),如圖4所示。
第二步,進(jìn)入cmd,下載lite-server,進(jìn)入項(xiàng)目目錄,使用npm run dev開(kāi)啟服務(wù),如下圖所示。
第三步,在瀏覽器中使用MateMask錢(qián)包插件,用Ganache提供的初始賬號(hào)登錄系統(tǒng)。
圖4 網(wǎng)絡(luò)以及初始賬號(hào)圖
3.3.1 智能合約
商品查詢函數(shù)如下。
function getproduce(bytes j) constant returns(bytes,string,string,string,string,string,string){
return (f1[j].pid,f1[j].pname,f1[j].pplace,f1[j].ptime,f1[j].ltime,f1[j].lplace,f1[j].xplace);
}
設(shè)置交易信息函數(shù)如下。
function setTxInfo(bytes _pid, string _txplace,string_txtime){
f1[_pid].lplace=_txplace;
f1[_pid].ptime=_txtime;}
防偽溯源查詢函數(shù)如下。
function query(bytes _pid) constant returns(uint256,uint256){
uint256 _time=now; uint256 money=5; return(_time,money);
}
3.3.2 系統(tǒng)界面
用戶端包括樣品信息錄入、測(cè)試數(shù)據(jù)信息錄入、樣品信息查詢、防偽查詢、樣品層級(jí)歸屬關(guān)系、測(cè)試流程監(jiān)管6個(gè)功能界面。
二維碼技術(shù)和區(qū)塊鏈技術(shù)的快速發(fā)展,針對(duì)電廠樣品檢驗(yàn)檢測(cè)這個(gè)跨地域多部門(mén)協(xié)作工作場(chǎng)景,建立一個(gè)高效的線上合作組織。該組織的構(gòu)建基于區(qū)塊鏈的二維碼包裝監(jiān)管和防偽溯源系統(tǒng),完善并提高了樣品檢驗(yàn)檢測(cè)流程和效率。運(yùn)用Python Django 技術(shù)和Web3.0 技術(shù),將樣品檢驗(yàn)檢測(cè)流程和檢測(cè)數(shù)據(jù)以及防偽標(biāo)識(shí)的豐富內(nèi)容通過(guò)掃描包裝上的二維碼能夠圖文聲像并茂快速展示,這種樣品監(jiān)管的新模式,為樣品檢驗(yàn)檢測(cè)工作節(jié)省了大量的時(shí)間和精力。
通過(guò)互聯(lián)網(wǎng)傳播和共享信息,有利于各個(gè)檢驗(yàn)檢測(cè)節(jié)點(diǎn)相互協(xié)作提高工作效率,降低工作成本;有利于監(jiān)管部門(mén),實(shí)時(shí)查看檢驗(yàn)檢測(cè)進(jìn)度和最終檢驗(yàn)檢測(cè)結(jié)果;有利于樣品的管理,溯源包括責(zé)任劃分;研究樣品檢測(cè)數(shù)據(jù),提高電廠運(yùn)行效率。因此,通過(guò)基于區(qū)塊鏈的發(fā)電廠樣品委托檢測(cè)物流及信息管理系統(tǒng)的研究,有利于提升電廠樣品檢驗(yàn)檢測(cè)單位多部門(mén)協(xié)作的整體工作效率,并且有利于電廠的安全運(yùn)營(yíng)與維護(hù);有利于量化每個(gè)節(jié)點(diǎn)的工作質(zhì)量;通過(guò)數(shù)據(jù)的積累有利于電廠樣品跨地域多部門(mén)協(xié)作的流程創(chuàng)新,為進(jìn)一步優(yōu)化資源,為電廠的數(shù)字化運(yùn)營(yíng)打下基礎(chǔ)。