萬玉龍 章艷華 顧峰 馮煒雯
摘要:本文提出基于消息隊(duì)列的中間件來完成對合約的高并發(fā)調(diào)用,提升生鮮產(chǎn)品冷鏈物流數(shù)據(jù)上鏈的速度,采用區(qū)塊鏈密鑰交換與對稱加密的方法,使生鮮產(chǎn)品冷鏈物流訂單的數(shù)據(jù)在傳輸時(shí)被加密,降低生鮮產(chǎn)品冷鏈物流訂單傳輸?shù)蕊L(fēng)險(xiǎn)。結(jié)果表明:與過去中心化的生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控體系對比,利用區(qū)塊鏈的分布式、不可篡改、可追溯等特性,提高了各個(gè)生鮮產(chǎn)品冷鏈物流企業(yè)之間的信任度,規(guī)避了核心企業(yè)對生鮮產(chǎn)品冷鏈物流數(shù)據(jù)的主觀更新或惡意篡改。
關(guān)鍵詞:區(qū)塊鏈;生鮮產(chǎn)品;冷鏈物流;風(fēng)險(xiǎn)管控
引言
區(qū)塊鏈技術(shù)通常被認(rèn)為是一種分布式的記賬技術(shù)(distributed ledger technology, DLT),主要通過存證來溯源鏈上數(shù)據(jù),這些交易數(shù)據(jù)可以在區(qū)塊鏈參與節(jié)點(diǎn)之間執(zhí)行和共享[1]。區(qū)塊鏈技術(shù)有很多特性,其中最典型的當(dāng)數(shù)具備DLT技術(shù)特性。區(qū)塊鏈的四個(gè)關(guān)鍵特征:非本地化(去中心化)、安全性、可審計(jì)性和智能執(zhí)行[2]。2021年11月,國務(wù)院辦公廳印發(fā)的《“十四五”冷鏈物流發(fā)展規(guī)劃》[3]中指出,常溫物流鏈相比冷鏈物流的損失率高出約40%,僅果蔬類生鮮產(chǎn)品,我國每年的損失金額就高達(dá)1000億元以上。由于冷鏈物流涉及的生鮮產(chǎn)品具有易腐爛變質(zhì)、易受污染、不易保存等特點(diǎn),生鮮產(chǎn)品在冷鏈物流運(yùn)輸?shù)茸鳂I(yè)過程中損失嚴(yán)重,導(dǎo)致生鮮產(chǎn)品零售價(jià)格居高不下,生產(chǎn)者和消費(fèi)者處于“雙輸”局面。如何科學(xué)、規(guī)范地管控生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn),已成為國家極度關(guān)切的重大難題。
1. 網(wǎng)絡(luò)模型的實(shí)現(xiàn)
在超級賬本中,參與的組織包括生鮮產(chǎn)品冷鏈物流運(yùn)輸方、發(fā)貨方和收貨方,這三方被劃分為超級賬本的三種組織類型,組織是在超級賬本中的最大單元,三者之間的地位是平等的,從而可構(gòu)建成組織間的聯(lián)盟成員關(guān)系。區(qū)塊鏈的共識機(jī)制有多種,利用RAFT的共識機(jī)制,可以保證數(shù)據(jù)的高吞吐量,比如本系統(tǒng)的排序中心使用的是Kafka排序。組織中的證書服務(wù)器可以產(chǎn)生組織的證書、組織中的所有節(jié)點(diǎn)、所有使用者的證書。用戶通過認(rèn)證才可調(diào)用SDK相應(yīng)接口來處理區(qū)塊鏈數(shù)據(jù)。一個(gè)組織中可以有多個(gè)共識節(jié)點(diǎn),每一個(gè)共識節(jié)點(diǎn)都會(huì)部署相應(yīng)的鏈碼,負(fù)責(zé)數(shù)據(jù)背書、數(shù)據(jù)備份和通信等[4]。另外,為了使生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控系統(tǒng)具有更多的查詢能力,本文還對每一個(gè)共識節(jié)點(diǎn)進(jìn)行了KV數(shù)據(jù)庫的配置。
2. 數(shù)據(jù)上鏈系統(tǒng)的實(shí)現(xiàn)
該方案的數(shù)據(jù)主要包括訂單和環(huán)境兩大類。其中,生鮮產(chǎn)品冷鏈物流訂單信息,如收發(fā)人地址、聯(lián)系方式、商品信息等為訂單數(shù)據(jù),因?yàn)楹写罅康墓裥畔ⅲ瑸榱吮苊庑畔⒌男孤?,必須通過加密的傳輸單元將訂單信息發(fā)送到區(qū)塊鏈服務(wù)器端。而生鮮產(chǎn)品冷鏈物流中采集到的溫度、濕度、空氣等數(shù)據(jù)為環(huán)境數(shù)據(jù),因?yàn)槭菍?shí)時(shí)數(shù)據(jù)的抓取,一般我們會(huì)采用限流或削峰等多種負(fù)載均衡策略保證上鏈數(shù)據(jù)的流量均衡和系統(tǒng)穩(wěn)定。在冷鏈物流運(yùn)輸過程數(shù)據(jù)上鏈的業(yè)務(wù)中,所采用的加密傳送模塊是結(jié)合對稱加密算法(AES對稱加密算法),通過密鑰交換協(xié)議實(shí)現(xiàn)對稱加密業(yè)務(wù)物流信息的能力,保證了物流數(shù)據(jù)的密文上鏈和存儲傳輸,保障了用戶業(yè)務(wù)數(shù)據(jù)的隱私[5]。
生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控環(huán)境數(shù)據(jù)的采集、處理、緩存、上鏈等過程,由環(huán)境數(shù)據(jù)上鏈系統(tǒng)中的物聯(lián)網(wǎng)模塊和消息隊(duì)列模塊實(shí)現(xiàn)。物聯(lián)網(wǎng)設(shè)備含有多種傳感設(shè)備,這些設(shè)備采集到的數(shù)據(jù)一般會(huì)緩存在緩存數(shù)據(jù)庫中,常用的緩存數(shù)據(jù)庫是內(nèi)存數(shù)據(jù)庫Redis,Redis數(shù)據(jù)庫是一種具有很高讀取和寫入速度的內(nèi)存數(shù)據(jù)庫,可以很好地滿足系統(tǒng)需求,實(shí)現(xiàn)生鮮產(chǎn)品冷鏈物流數(shù)據(jù)抓取和上鏈業(yè)務(wù)的解耦,解決因同步等待造成延遲導(dǎo)致生鮮產(chǎn)品冷鏈物流數(shù)據(jù)采集丟幀或遺漏上鏈的問題,具有生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控?cái)?shù)據(jù)緩存和備份的作用[6]。
步驟1:每秒采集60次生鮮產(chǎn)品的溫度、濕度和大氣壓強(qiáng)數(shù)據(jù),這些是由IOT傳感器設(shè)備采集,進(jìn)行分組,記為 sourceAcq,將分組數(shù)據(jù)取平均值 avaData,并將平均值進(jìn)行上鏈存證,這樣傳感器擾動(dòng)的數(shù)據(jù)的誤差就會(huì)消減。
步驟2:在緩存數(shù)據(jù)庫中對上述數(shù)據(jù)進(jìn)行預(yù)處理,記為preData。
步驟3:讀取緩存數(shù)據(jù)庫中的預(yù)處理數(shù)據(jù)preData,并向區(qū)塊鏈服務(wù)器端的交易池中遞交預(yù)處理數(shù)據(jù)。
步驟4:從預(yù)處理隊(duì)列中獲取數(shù)據(jù),提交至鏈上代碼執(zhí)行模塊,做數(shù)據(jù)上鏈執(zhí)行操作。
步驟5:數(shù)據(jù)通過鏈上代碼執(zhí)行模塊鏈上代碼進(jìn)行計(jì)算,并將結(jié)果寫入?yún)^(qū)塊鏈賬本中。
3. 智能合約的實(shí)現(xiàn)
鏈上代碼也就是超級賬本中的智能合約,是一個(gè)在獨(dú)立的執(zhí)行環(huán)境中獨(dú)立運(yùn)行的應(yīng)用,一般是運(yùn)行在Docker容器中,可以基于DnD進(jìn)行遠(yuǎn)程通信部署,也可以通過TCP方式進(jìn)行網(wǎng)絡(luò)連接部署。生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)環(huán)境數(shù)據(jù)和冷鏈物流訂單數(shù)據(jù)的上鏈合約,涉及的方法包括物流數(shù)據(jù)發(fā)布、物流確認(rèn)、物流簽收、歷史數(shù)據(jù)查詢、狀態(tài)數(shù)據(jù)查詢,具備其他區(qū)塊高度、交易Hash、key值版本數(shù)據(jù)等檢索功能。
如表1所示,超級賬本不需要對鏈上代碼的操作進(jìn)行設(shè)置或管控,可以在超級賬本網(wǎng)絡(luò)中,利用通道隔離用戶合約,實(shí)現(xiàn)同一通道內(nèi)鏈上代碼的互訪操作。為了確保只有對應(yīng)的物聯(lián)網(wǎng)設(shè)備才能調(diào)用環(huán)境數(shù)據(jù)上鏈方法,只有組織內(nèi)某一方用戶才可調(diào)用訂單數(shù)據(jù)的上鏈方法,所設(shè)計(jì)方案使用基于身份驗(yàn)證的方式來實(shí)現(xiàn)。一方面將取得使用方的CA證書,并通過鏈上查詢的合約接口進(jìn)行合約調(diào)用,比如執(zhí)行生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)環(huán)境數(shù)據(jù)上鏈接口,那么同步冷鏈物流數(shù)據(jù)上鏈的步驟的執(zhí)行單元就是物聯(lián)網(wǎng)設(shè)備,然后確認(rèn)其MACID與證書中的MACID簽名是否相符,若所有的簽名都驗(yàn)簽和通過,則返回成功。若執(zhí)行發(fā)布物流數(shù)據(jù)方法,則判定發(fā)貨商是否為其合法使用者;若調(diào)用確認(rèn)訂單方法,則判定生鮮產(chǎn)品冷鏈物流企業(yè)是否為其調(diào)用者;若調(diào)用簽收訂單方法,則判定收貨商是否為其調(diào)用者。以上情況若判定為是,則返回成功;若不符合以上任意情況,則返回失敗。
生鮮產(chǎn)品冷鏈物流所運(yùn)貨物的種類和運(yùn)輸所需的溫、濕度、氣壓范圍等數(shù)據(jù),都需要及時(shí)準(zhǔn)確地進(jìn)行采集和上鏈記錄。在數(shù)據(jù)存儲時(shí),可以采用leveldb、CouchDB為狀態(tài)數(shù)據(jù)庫,以訂單作為索引key,其余各字段經(jīng)過base64序列化后作為值進(jìn)行傳遞。建立一個(gè)物流訂單后,由于它會(huì)發(fā)生各種狀態(tài)的改變,因此需要狀態(tài)識別,用state字段來表示,如表2所示。首先,logisticsConfirD和LogisticsSign字段被發(fā)貨方賦值,LogisticsState字段標(biāo)為NewStub,其他字段依照物流實(shí)際情況填寫,然后執(zhí)行上鏈存證發(fā)布訂單交易合約方法,向區(qū)塊鏈系統(tǒng)發(fā)布生鮮產(chǎn)品冷鏈物流訂單信息,此時(shí),生鮮產(chǎn)品冷鏈物流訂單進(jìn)入新NewStub狀態(tài)。
然后發(fā)貨方請求被接收后,生鮮產(chǎn)品冷鏈物流公司會(huì)調(diào)用查詢訂單狀態(tài)方法查看訂單信息,若確認(rèn)接受此訂單,則logisticsConfirm字段信息將通過調(diào)用確認(rèn)訂單方法填寫,并將stub字段標(biāo)為conSign,在生鮮產(chǎn)品冷鏈進(jìn)行物流運(yùn)輸過程結(jié)束后,訂單處于等待簽收狀態(tài)conSign。其中,要進(jìn)行同意簽收訂單或拒絕簽收訂單的流程。在收貨方驗(yàn)證完冷鏈物流貨物后,可以通過鏈碼接口對簽收合約進(jìn)行調(diào)用,簽收合約包括正常簽收和拒簽操作。若簽收,則填寫conSign字段信息,并將stub字段標(biāo)記為conSigned;如果拒絕簽收此筆交易,則可以把 stub字段標(biāo)記為conReject。在設(shè)備上執(zhí)行環(huán)境數(shù)據(jù)校驗(yàn)后,對數(shù)據(jù)進(jìn)行上鏈操作,生鮮產(chǎn)品冷鏈物流公司、發(fā)貨方、收貨方在上鏈后都可以通過各自的節(jié)點(diǎn),利用自己的用戶證書進(jìn)行鏈上數(shù)據(jù)查詢,并在此基礎(chǔ)上調(diào)用歷史數(shù)據(jù),實(shí)現(xiàn)對環(huán)境數(shù)據(jù)的歷史查詢。
4. 系統(tǒng)測試
系統(tǒng)測試是系統(tǒng)開發(fā)過程中不可缺少的環(huán)節(jié),通過對生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控系統(tǒng)進(jìn)行功能測試和性能測試,可以更好地了解該系統(tǒng)的功能和性能,并分析系統(tǒng)實(shí)際運(yùn)行過程中可能會(huì)發(fā)生的故障或異常。生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控系統(tǒng)測試還可以找出在開發(fā)過程中遺漏或待提升的功能或性能指標(biāo)點(diǎn),從而提高軟件質(zhì)量。本研究重點(diǎn)測試了以區(qū)塊鏈技術(shù)為基礎(chǔ)的生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控系統(tǒng),并給出了該系統(tǒng)的測試環(huán)境、功能測試結(jié)構(gòu)及性能測試結(jié)果。
本次生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控系統(tǒng)測試環(huán)境是通過4臺物理服務(wù)器構(gòu)建了一套聯(lián)盟鏈網(wǎng)絡(luò),同時(shí)還配有樹莓派管控板和物聯(lián)網(wǎng)環(huán)境傳感器(溫度、濕度、大氣壓壓強(qiáng))。4個(gè)區(qū)塊鏈節(jié)點(diǎn)代表的組織分別為:三臺機(jī)器分別代表冷鏈物流貨物供應(yīng)商、冷鏈物流貨物物流企業(yè)、冷鏈物流貨物收貨方,最后1臺服務(wù)器用于構(gòu)建基于排序服務(wù)。性能測試關(guān)注點(diǎn)是交易吞吐率(TPS)的變動(dòng),并發(fā)數(shù)的大小影響著TPS,其中x、y分別為單次并發(fā)數(shù)、每秒的交易數(shù),測出的TPS最大為340。當(dāng)單次并發(fā)數(shù)為700時(shí),多次測試得到系統(tǒng)的TPS平均值為324。
在測試讀TPS時(shí),觀察到單次并發(fā)數(shù)會(huì)對查詢TPC產(chǎn)生影響。圖1和圖2為吞吐率測試圖,其中,x、y軸分別為并發(fā)數(shù)、交易數(shù),所測最大每秒讀交易數(shù)為4115。當(dāng)單次并發(fā)數(shù)為600時(shí),多次測試得到系統(tǒng)的每秒交易數(shù)平均約為4000。其中圖1為上鏈交易的吞吐率最高為65,圖2為查詢操作的吞吐率最高為195。在基于同等條件下的超級賬本底鏈網(wǎng)絡(luò)中,我們設(shè)計(jì)的系統(tǒng)性能得到了有效提升。
結(jié)語
經(jīng)過測試,基于區(qū)塊鏈技術(shù)的生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控系統(tǒng)已通過功能、性能測試,達(dá)到了預(yù)定的設(shè)計(jì)目標(biāo),證明了該系統(tǒng)的有效性和可用性。該方案的優(yōu)點(diǎn)在于:與過去中心化的生鮮產(chǎn)品冷鏈物流風(fēng)險(xiǎn)管控體系對比,通過利用區(qū)塊鏈的分布式、不可篡改、可追溯等特性,提高了各個(gè)生鮮產(chǎn)品冷鏈物流等企業(yè)之間的信任度,規(guī)避了核心企業(yè)對生鮮產(chǎn)品冷鏈物流數(shù)據(jù)的主觀更新或惡意篡改。
參考文獻(xiàn):
[1]王娜.區(qū)塊鏈架構(gòu)下冷鏈物流信息生態(tài)管理探討[J].商業(yè)經(jīng)濟(jì)研究,2021,(21):98-102.
[2]Jang EC,Kim J,Kim R.Applied Practice on Fresh Food Cold Chain System with Blockchain Solution[J].International journal of advanced smart convergence, 2021,10(3):207-213.
[3]國務(wù)院辦公廳關(guān)于印發(fā)“十四五”冷鏈物流發(fā)展規(guī)劃的通知(國辦發(fā)〔2021〕46號) [A/OL].(2021-11-26)[2023-08-20]. https://www.gov.cn/zhengce/content/2021-12/12/content_5660244.htm.
[4]Yu F.Research on the Construction of Cold Chain Logistics System Based on the Perspective of Blockchain[J].Journal of Frontiers in Educational Research,2021,1(3):140-144.
[5]Sun X,Wang HW.Research on the Risk Avoidance of Cold Chain Logistics Financial Credit Based on Block Chain Technology[C]//2017 5th International Education,Economics,Social Science,Arts,Sports and Management Engineering Conference(IEESASM 2017).Atlantis Press,2018:505-511.
[6]李海洲,周小剛,唐衍軍.區(qū)塊鏈技術(shù)賦能果品供應(yīng)鏈質(zhì)量安全管理研究[J].中國果樹, 2021,(5):79-82.
作者簡介:萬玉龍,博士,副教授,研究方向:智慧物流、鄉(xiāng)村振興。
基金項(xiàng)目:2022年江蘇高?!扒嗨{(lán)工程”優(yōu)秀教學(xué)團(tuán)隊(duì)項(xiàng)目;2023年江蘇省社科應(yīng)用研究精品工程課題——江蘇加快發(fā)展現(xiàn)代鄉(xiāng)村服務(wù)業(yè)對策研究;2023年淮安市社科研究課題成果(編號:2023SK112);江蘇電子信息職業(yè)學(xué)院2021年自然科學(xué)基金項(xiàng)目(編號:JSEIY2021004);蘇電英才工程科技創(chuàng)新團(tuán)隊(duì)培育對象(團(tuán)隊(duì)帶頭人)及博士工作室項(xiàng)目。