亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于區(qū)塊鏈技術(shù)的冷鏈物流集裝箱監(jiān)控系統(tǒng)設(shè)計(jì)

        2021-10-11 11:40:40余建群張澤建
        物流技術(shù) 2021年9期
        關(guān)鍵詞:合約冷鏈集裝箱

        張 斐,余建群,張澤建,吳 迅

        (湖北物資流通技術(shù)研究所,湖北 襄陽(yáng) 441002)

        0 引言

        國(guó)家標(biāo)準(zhǔn)《物流術(shù)語(yǔ)》對(duì)冷鏈物流的定義是保持新鮮食品及冷凍食品的品質(zhì),使其在從生產(chǎn)到消費(fèi)的過(guò)程中,始終處于低溫狀態(tài)的配有專(zhuān)門(mén)設(shè)備的物流網(wǎng)絡(luò)。我國(guó)冷鏈物流行業(yè)的痛點(diǎn)一是運(yùn)輸過(guò)程不透明,物流企業(yè)為了降低成本,可能存在運(yùn)輸過(guò)程中制冷機(jī)關(guān)閉、冷鏈在貨物運(yùn)輸或裝卸過(guò)程中斷裂,或者巡查間隔時(shí)間不能保證等問(wèn)題;二是數(shù)據(jù)存儲(chǔ)不透明,現(xiàn)有溫度數(shù)據(jù)大多數(shù)存儲(chǔ)在承運(yùn)方和倉(cāng)儲(chǔ)企業(yè)的中心化數(shù)據(jù)庫(kù)中,貨主獲取數(shù)據(jù)不方便,中心式數(shù)據(jù)庫(kù)記錄方式的可靠性差,重要數(shù)據(jù)需要冗余備份。

        冷鏈物流集裝箱是冷鏈中普遍使用的器具,其裝載的貨物大致可分為兩類(lèi),一類(lèi)為冷凍貨物,包括魚(yú)蝦牛豬等肉類(lèi)貨物,溫度設(shè)定為-18℃及以下;另一類(lèi)為冷藏貨物,包括柑橘類(lèi)水果、落葉類(lèi)水果、蔬菜類(lèi)和其他冷藏貨物(藥品、化學(xué)品等)。集裝箱運(yùn)輸需要合適和精準(zhǔn)的溫濕度控制,在各個(gè)運(yùn)輸環(huán)節(jié)都要監(jiān)控制冷機(jī)的運(yùn)作情況。

        冷鏈物流集裝箱的進(jìn)出口流程分為貨物裝箱前、委托人裝箱、集裝箱裝船前、裝船與運(yùn)送、集裝箱卸船、貨物卸箱以及貨物卸箱后七部分。集裝箱裝箱前流程包括貨主定艙位,告知船方運(yùn)送地點(diǎn)、裝載貨物種類(lèi)與數(shù)量,提空集裝箱等流程;托運(yùn)人裝箱指貨主提空箱后的貨物裝箱作業(yè);裝船與運(yùn)送是指集裝箱在集裝箱堆場(chǎng)等待通關(guān)和相關(guān)文件到齊后,開(kāi)始搬運(yùn)上船并開(kāi)啟海上運(yùn)輸航行的流程;集裝箱卸船、貨物卸箱以及貨物卸箱后這三個(gè)流程是指集裝箱到達(dá)目的港口后的搬運(yùn)后續(xù)工作,具體流程圖如圖1所示。從流程圖中可以看到對(duì)箱內(nèi)貨物的溫濕度監(jiān)控主要采取以4h為間隔進(jìn)行人工查看的方式,記錄方式主要為人工記錄,這種監(jiān)控方式存在的問(wèn)題是監(jiān)控記錄容易改動(dòng),完全依賴(lài)監(jiān)控人員的責(zé)任心,所以有必要研究冷鏈物流集裝箱運(yùn)輸?shù)臏貪穸葘?shí)時(shí)監(jiān)控問(wèn)題。

        圖1 冷鏈物流集裝箱進(jìn)出口流程

        國(guó)內(nèi)外目前對(duì)該問(wèn)題的研究很多,本文主要參考下列文獻(xiàn)的觀點(diǎn)和架構(gòu):Wanganoo,等[1]提供了一個(gè)基于NB-IoT增強(qiáng)器的冷鏈解決方案,集成了溫度和其他環(huán)境變化的傳感器,具有能耗低和智能數(shù)據(jù)分析功能,有助于加強(qiáng)冷鏈物流中實(shí)時(shí)數(shù)據(jù)監(jiān)控和優(yōu)化;Yu,等[2]基于冷鏈運(yùn)輸集中監(jiān)控、局部分布、整體機(jī)動(dòng)的特點(diǎn),設(shè)計(jì)了冷鏈運(yùn)輸監(jiān)控系統(tǒng),采用STM32微處理器作為數(shù)據(jù)傳輸模塊的主控制器,利用基于SX1212芯片的無(wú)線(xiàn)模塊搭建點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),利用GPRS模塊向服務(wù)器上傳數(shù)據(jù),該系統(tǒng)可以監(jiān)控冷鏈運(yùn)輸?shù)臏囟?、濕度、電池容量、路線(xiàn)等信息;Mohsin,等[3]通過(guò)GPS模塊和基于物聯(lián)網(wǎng)的傳感器平臺(tái)實(shí)現(xiàn)位置跟蹤和環(huán)境控制,傳感器數(shù)據(jù)通過(guò)Wi-Fi發(fā)射器發(fā)送,接收端包括監(jiān)測(cè)人員,監(jiān)測(cè)人員將定期收到有關(guān)受控環(huán)境參數(shù)、運(yùn)輸機(jī)車(chē)位置的更新;Ji,等[4]設(shè)計(jì)了一種具有安全特性的微型電子標(biāo)簽,這種溫度傳感器標(biāo)簽支持?jǐn)?shù)字簽名和驗(yàn)證,確保收集的溫度數(shù)據(jù)是授權(quán)的和防篡改的,結(jié)合區(qū)塊鏈技術(shù)可追溯的特點(diǎn),搭建了一個(gè)基于區(qū)塊鏈的食品安全保障平臺(tái);Ahamed,等[5]論述了如何利用區(qū)塊鏈技術(shù)對(duì)易腐食品進(jìn)行冷鏈管理,提出了從農(nóng)場(chǎng)到消費(fèi)者的不可變分類(lèi)賬,農(nóng)場(chǎng)到消費(fèi)者都可以獲取這些數(shù)據(jù)并檢查細(xì)節(jié),例如易腐產(chǎn)品指定的溫度、食品生產(chǎn)廠家和日期等,通過(guò)使用區(qū)塊鏈技術(shù)可以永久存儲(chǔ)冷鏈物流中易腐食品的關(guān)鍵數(shù)據(jù);張森,等[6]針對(duì)訂單數(shù)據(jù)和環(huán)境數(shù)據(jù)分別設(shè)計(jì)上鏈系統(tǒng),實(shí)現(xiàn)了訂單數(shù)據(jù)安全上鏈、冷鏈環(huán)境數(shù)據(jù)實(shí)時(shí)上鏈以及物聯(lián)網(wǎng)設(shè)備的身份認(rèn)證與權(quán)限控制機(jī)制;宋宇航[7]提出了基于區(qū)塊鏈技術(shù)的醫(yī)藥冷鏈物流追溯系統(tǒng),通過(guò)對(duì)疫苗冷鏈物流的流程分析,設(shè)計(jì)實(shí)現(xiàn)了將以太坊作為開(kāi)發(fā)平臺(tái)的醫(yī)藥冷鏈物流追溯系統(tǒng),并對(duì)其功能進(jìn)行驗(yàn)證;錢(qián)聰[8]認(rèn)為在冷鏈運(yùn)輸過(guò)程中,因?yàn)樯唐翻h(huán)境的特殊性,傳感器輸出信號(hào)、質(zhì)量等容易出現(xiàn)問(wèn)題,可能導(dǎo)致數(shù)據(jù)記錄不準(zhǔn)確,設(shè)計(jì)并實(shí)現(xiàn)了中間件數(shù)據(jù)糾錯(cuò)模塊,對(duì)溫濕度之類(lèi)的數(shù)據(jù)使用卡爾曼濾波算法進(jìn)行糾錯(cuò)處理,使用隱馬爾可夫預(yù)測(cè)模型結(jié)合加權(quán)糾偏算法對(duì)原始軌跡數(shù)據(jù)進(jìn)行糾偏;劉艷超[9]使用無(wú)線(xiàn)傳感網(wǎng)絡(luò)技術(shù)設(shè)計(jì)農(nóng)產(chǎn)品冷鏈物流信息采集系統(tǒng),構(gòu)建農(nóng)產(chǎn)品冷鏈物流無(wú)線(xiàn)傳感網(wǎng)絡(luò),使用嵌入式技術(shù)、百度地圖API技術(shù)、數(shù)據(jù)庫(kù)程序設(shè)計(jì)與管理技術(shù)對(duì)農(nóng)產(chǎn)品冷鏈物流監(jiān)控系統(tǒng)進(jìn)行設(shè)計(jì),實(shí)現(xiàn)計(jì)算機(jī)終端的遠(yuǎn)程農(nóng)產(chǎn)品冷鏈物流監(jiān)控、車(chē)輛地理位置定位和數(shù)據(jù)查詢(xún)查看等功能;白二龍[10]在冷鏈倉(cāng)儲(chǔ)環(huán)節(jié)設(shè)計(jì)了基于分布式采集的上位機(jī)監(jiān)控系統(tǒng),在冷鏈運(yùn)輸環(huán)節(jié)設(shè)計(jì)了基于云服務(wù)的遠(yuǎn)程終端監(jiān)控系統(tǒng),實(shí)現(xiàn)了冷鏈物流全流程的信息檢測(cè)及可視化監(jiān)控。

        1 區(qū)塊鏈技術(shù)與物聯(lián)網(wǎng)的結(jié)合應(yīng)用

        1.1 區(qū)塊鏈概述

        (1)區(qū)塊鏈定義。區(qū)塊鏈技術(shù)最初由中本聰提出,是智能合約的基礎(chǔ)。它作為一個(gè)共享的去中心化分類(lèi)帳來(lái)記錄交易。區(qū)塊鏈有三種類(lèi)型:公有、私有和聯(lián)盟。公共區(qū)塊鏈主要用于去中心化網(wǎng)絡(luò)并提供安全的透明度,然而當(dāng)需要更多的權(quán)限控制和隱私保護(hù)場(chǎng)景時(shí),傾向采用私有和聯(lián)盟(半私有)區(qū)塊鏈。區(qū)塊鏈提供安全存儲(chǔ),因?yàn)樗ㄟ^(guò)proof-ofwork或?qū)嶋H拜占庭容錯(cuò)等算法達(dá)成共識(shí),再利用節(jié)點(diǎn)的共識(shí)或協(xié)議授權(quán)產(chǎn)生新區(qū)塊的鏈,它充當(dāng)所有事務(wù)的總分類(lèi)帳,在賬本中記錄產(chǎn)品從開(kāi)始到當(dāng)前狀態(tài)所經(jīng)歷的事件,這些日志是不可刪改的。區(qū)塊鏈還能夠?qū)崿F(xiàn)智能合約,智能合約是可以按照預(yù)定義條件觸發(fā)器自動(dòng)執(zhí)行的代碼,相當(dāng)于操作數(shù)據(jù)庫(kù)的SQL語(yǔ)言,可以進(jìn)行讀寫(xiě)操作,區(qū)塊鏈賬本ledger相當(dāng)于數(shù)據(jù)庫(kù)。

        (2)區(qū)塊鏈開(kāi)發(fā)平臺(tái)。目前主流的區(qū)塊鏈開(kāi)發(fā)平臺(tái)是Etherum和Hyperledger Fabric。Etherum是公開(kāi)鏈平臺(tái),它的特性是完全透明、高度匿名,其性能低于私有鏈,具有挖礦獎(jiǎng)勵(lì)。Hyperledger Fabric是一個(gè)開(kāi)源的私有鏈開(kāi)發(fā)平臺(tái),它不僅具有區(qū)塊鏈的去中心化賬本、不可變、群體共識(shí)等特點(diǎn),還提供了更高效的共識(shí)機(jī)制、更高的吞吐量、智能合約以及對(duì)多個(gè)組織和賬本的支持。物聯(lián)網(wǎng)設(shè)備產(chǎn)生數(shù)據(jù)的速度比較快,所以不能使用帶有挖礦功能的開(kāi)發(fā)平臺(tái),這樣會(huì)導(dǎo)致生成交易效率不高,所以本文選用Hyperledger Fabric作為區(qū)塊鏈開(kāi)發(fā)平臺(tái)。

        1.2 區(qū)塊鏈與物聯(lián)網(wǎng)的結(jié)合應(yīng)用

        將物聯(lián)網(wǎng)(IOT)與區(qū)塊鏈結(jié)合應(yīng)用是供應(yīng)鏈管理的大趨勢(shì)。物聯(lián)網(wǎng)設(shè)備產(chǎn)生的數(shù)據(jù)種類(lèi)很多,例如攝像頭可以捕捉真實(shí)世界的圖像并生成圖片或視頻數(shù)據(jù);傳感器可以捕捉溫度、濕度、光線(xiàn)等物理信號(hào),并將其轉(zhuǎn)換為數(shù)字信號(hào)數(shù)據(jù),等。這些數(shù)據(jù)大部分是非結(jié)構(gòu)化的,因此不能直接存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。而且它們都是實(shí)時(shí)數(shù)據(jù),所以需要及時(shí)推送給授權(quán)用戶(hù)。一般來(lái)說(shuō),語(yǔ)音和視頻數(shù)據(jù)都是流數(shù)據(jù)。設(shè)備采集到的數(shù)據(jù)經(jīng)過(guò)編碼后通過(guò)Wi-Fi或4G推送到云服務(wù)器,然后生成一個(gè)資源URL,用戶(hù)可以根據(jù)HLS、RTMP等視頻傳輸協(xié)議通過(guò)URL提取流數(shù)據(jù),設(shè)備通過(guò)基于MQTT的服務(wù)或其他協(xié)議將傳感器數(shù)據(jù)發(fā)送到主題,客戶(hù)機(jī)被授權(quán)后,它訂閱相應(yīng)的主題(可以用URL表示),服務(wù)器將主題下的消息推送給客戶(hù)機(jī)。此外,這類(lèi)數(shù)據(jù)主要用于控制物聯(lián)網(wǎng)設(shè)備執(zhí)行綁定、解綁定、打開(kāi)、關(guān)閉、調(diào)整等操作。一般情況下,客戶(hù)端可以通過(guò)基于HTTP(s)的restfulAPI向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器驗(yàn)證權(quán)限后,可以通過(guò)MQTT或其他協(xié)議向設(shè)備發(fā)送控制信號(hào)。

        綜上所述,區(qū)塊鏈與物聯(lián)網(wǎng)結(jié)合的步驟如下:首先IOT設(shè)備生成包含設(shè)備ID和URL的消息,通過(guò)MQTT發(fā)送給智能網(wǎng)關(guān),然后智能網(wǎng)關(guān)解析消息并為區(qū)塊鏈生成一個(gè)待讀取響應(yīng)消息,智能網(wǎng)關(guān)連接到區(qū)塊鏈客戶(hù)端來(lái)運(yùn)行讀取操作,接著區(qū)塊鏈通過(guò)智能合約函數(shù)調(diào)用IOT硬件讀取設(shè)備資源的URL,將其保存在區(qū)塊鏈賬本中。

        2 監(jiān)控平臺(tái)方案設(shè)計(jì)

        本文提出一種基于區(qū)塊鏈技術(shù)的冷鏈物流集裝箱監(jiān)控平臺(tái),目的在于監(jiān)控冷鏈物流各個(gè)節(jié)點(diǎn)的關(guān)鍵信息,在數(shù)據(jù)采集層通過(guò)在集裝箱內(nèi)安裝傳感器持續(xù)監(jiān)控精確關(guān)鍵數(shù)據(jù)信息,并通過(guò)實(shí)時(shí)交換機(jī)制推送到IOT云平臺(tái),IOT云平臺(tái)將原始數(shù)據(jù)存儲(chǔ)在阿里云中,阿里云將過(guò)濾數(shù)據(jù)傳遞給本地服務(wù)器redis存儲(chǔ);經(jīng)過(guò)Fabric SDK中MSP審核過(guò)的冷鏈參與者可以加入Fabric網(wǎng)絡(luò)并分配channel通道,在channel通道中通信和投票,并且在檢測(cè)到異常情況時(shí),智能合約通知MSP成員投票確認(rèn),一致確認(rèn)異常情況后生成異常事務(wù)新區(qū)塊,同時(shí)發(fā)送警告通知短信到管理員手機(jī),應(yīng)用層中前端注冊(cè)用戶(hù)都可以通過(guò)網(wǎng)頁(yè)或應(yīng)用查看集裝箱內(nèi)貨物的狀態(tài)和位置。

        2.1 整體框架

        本系統(tǒng)框架分為五層:數(shù)據(jù)采集層、IOT云平臺(tái)、Fabric網(wǎng)絡(luò)層、服務(wù)層、應(yīng)用層。其中數(shù)據(jù)采集層負(fù)責(zé)采集和上傳冷鏈物流集裝箱內(nèi)的關(guān)鍵數(shù)據(jù);IOT云平臺(tái)接收備份數(shù)據(jù),將處理數(shù)據(jù)發(fā)送到本地服務(wù)器redis存儲(chǔ);Fabric網(wǎng)絡(luò)層負(fù)責(zé)劃分用戶(hù)權(quán)限、數(shù)據(jù)存儲(chǔ)和交易驗(yàn)證;SDK服務(wù)層負(fù)責(zé)提供編寫(xiě)應(yīng)用程序的多種操作區(qū)塊鏈網(wǎng)絡(luò)的方式;應(yīng)用層提供前端頁(yè)面與系統(tǒng)用戶(hù)進(jìn)行交互,查詢(xún)數(shù)據(jù)和接收警告。系統(tǒng)框架圖如圖2所示。

        圖2 系統(tǒng)框架圖

        2.2 數(shù)據(jù)采集層

        本文中數(shù)據(jù)采集層的硬件設(shè)備是安裝在冷鏈物流集裝箱內(nèi)的傳感器和定位器,傳感器監(jiān)測(cè)溫度、濕度水平,北斗定位器追蹤集裝箱的實(shí)時(shí)位置,只要違反了其中一個(gè)監(jiān)控指標(biāo),比如溫濕度異常,系統(tǒng)就會(huì)實(shí)時(shí)更新,用戶(hù)能通過(guò)移動(dòng)設(shè)備立即得到通知。采集設(shè)備選取阿里云Haas 100微控制器開(kāi)發(fā)板、BME280溫濕度模塊開(kāi)發(fā)溫濕度傳感設(shè)備,以及包含北斗芯片的定位設(shè)備。

        2.3 IOT云平臺(tái)

        阿里云物聯(lián)網(wǎng)平臺(tái)可以與其他阿里云服務(wù)無(wú)縫集成,還支持MQTT、HTTPS、AMQP和web sockets,企業(yè)實(shí)例消息上下行TPS允許100條/s~10萬(wàn)條/s消息,適合本系統(tǒng)的開(kāi)發(fā)和測(cè)試。本系統(tǒng)中關(guān)鍵數(shù)據(jù)上傳到IOT平臺(tái)的流程如下:為了連接到IOT云平臺(tái),IOT設(shè)備首先使用云上定義的用戶(hù)名和密碼連接到MQTT代理,使用自簽名證書(shū)對(duì)設(shè)備進(jìn)行驗(yàn)證,通過(guò)Haas 100的MQTT庫(kù)連接云平臺(tái),將實(shí)時(shí)數(shù)據(jù)傳送給阿里云物聯(lián)網(wǎng)平臺(tái)。在溫濕度采集中,設(shè)定每秒鐘采集30次原始數(shù)據(jù),然后阿里云物聯(lián)網(wǎng)平臺(tái)再發(fā)送到阿里云服務(wù)器存儲(chǔ),這樣可以將原始數(shù)據(jù)保存到云服務(wù)器上,經(jīng)過(guò)計(jì)算的平均值再上傳到區(qū)塊鏈上,可以減少區(qū)塊鏈上鏈的數(shù)據(jù),同時(shí)又備份了原始數(shù)據(jù)。違規(guī)事務(wù)的發(fā)送是先將主設(shè)備格式化,再向子設(shè)備發(fā)送一個(gè)字符串,該字符串包含函數(shù)名,該函數(shù)名確定違規(guī)類(lèi)型,以及違規(guī)時(shí)的所有傳感器讀數(shù),每分鐘只發(fā)送一次違規(guī)信息,以避免干擾子設(shè)備,同樣的違規(guī)類(lèi)型每十分鐘只發(fā)送一次,以避免重復(fù)上鏈,具體流程如圖3所示。

        圖3 數(shù)據(jù)上傳IOT平臺(tái)流程圖

        2.4 SDK服務(wù)層

        服務(wù)層主要負(fù)責(zé)為開(kāi)發(fā)人員提供編寫(xiě)應(yīng)用程序的多種操作區(qū)塊鏈網(wǎng)絡(luò)的方式。應(yīng)用程序可以部署/執(zhí)行chaincode,監(jiān)聽(tīng)網(wǎng)絡(luò)中產(chǎn)生的事件,接收塊信息,把交易存儲(chǔ)到賬本中;提供編寫(xiě)chaincode單元測(cè)試代碼,開(kāi)發(fā)人員能夠在不把chaincode部署到網(wǎng)絡(luò)上的情況下快速測(cè)試chaincode。SDK以調(diào)用grpc的方式與Fabric網(wǎng)絡(luò)中指定的Peer節(jié)點(diǎn)和Order節(jié)點(diǎn)進(jìn)行溝通,主要功能為:允許用戶(hù)創(chuàng)建或加入Fabric網(wǎng)絡(luò)中已經(jīng)存在的channel;為已認(rèn)證用戶(hù)獲取交易證書(shū)提交交易;在節(jié)點(diǎn)中部署執(zhí)行Chaincode(智能合約);監(jiān)聽(tīng)I(yíng)OT平臺(tái)中的事件;提交違規(guī)事件數(shù)據(jù)存儲(chǔ)到賬本;查詢(xún)賬本中的數(shù)據(jù)。

        2.5 Fabric區(qū)塊鏈網(wǎng)絡(luò)層

        本系統(tǒng)中的參與者主要是發(fā)貨方、物流方、收貨方和政府部門(mén),所以將系統(tǒng)分為4個(gè)組織(Or),每個(gè)組織包含4個(gè)節(jié)點(diǎn)peer、4個(gè)channel通道、4個(gè)Couch-DB。為每個(gè)客戶(hù)組織創(chuàng)建一個(gè)特定的4個(gè)通道的目的是增加隱私,因?yàn)橹挥性谕ǖ乐凶?cè)的peer才能進(jìn)行通信和交易,并擁有冷鏈運(yùn)輸關(guān)鍵信息的財(cái)產(chǎn)權(quán)。每個(gè)組織有1個(gè)CA服務(wù)器和1個(gè)SDK,經(jīng)過(guò)CA驗(yàn)證的用戶(hù)才能調(diào)用SDK的接口和區(qū)塊鏈的賬本。在每個(gè)peer節(jié)點(diǎn)上部署智能合約代碼,并為每個(gè)節(jié)點(diǎn)配備CouchDB,可以存放數(shù)據(jù)歷史記錄。Fabric網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。

        圖4 Fabric網(wǎng)絡(luò)結(jié)構(gòu)圖

        2.6 應(yīng)用層

        本系統(tǒng)實(shí)現(xiàn)一個(gè)Node.js開(kāi)發(fā)的web應(yīng)用程序,為用戶(hù)提供監(jiān)控和跟蹤功能。用戶(hù)可以查看主頁(yè)、實(shí)時(shí)狀態(tài)頁(yè)面、監(jiān)視和跟蹤頁(yè)面以及違規(guī)視圖頁(yè)面。用戶(hù)經(jīng)過(guò)身份驗(yàn)證后,應(yīng)用程序從主頁(yè)開(kāi)始,這個(gè)頁(yè)面只是查詢(xún)用戶(hù)發(fā)貨基本信息,用戶(hù)可以選擇從這里跳轉(zhuǎn)到實(shí)時(shí)發(fā)貨狀態(tài)頁(yè)。實(shí)時(shí)狀態(tài)頁(yè)面向用戶(hù)顯示物聯(lián)網(wǎng)設(shè)備在云上收到的最新讀取數(shù)據(jù),顯示集裝箱的溫度、濕度、位置信息,該頁(yè)還有一個(gè)按類(lèi)型展示區(qū)塊鏈上的違規(guī)記錄的餅狀圖,Node.js庫(kù)用于提取每個(gè)圖的事務(wù)數(shù)量,同時(shí)監(jiān)控運(yùn)輸過(guò)程所有重要信息和位置、違規(guī)事務(wù)類(lèi)型;用戶(hù)通過(guò)集裝箱ID和運(yùn)輸路徑來(lái)檢索數(shù)據(jù),在后端服務(wù)器中用golang代碼調(diào)用Restful API來(lái)獲取最新的數(shù)據(jù),更新顯示的溫濕度數(shù)據(jù)和百度地圖位置;在集裝箱歷史數(shù)據(jù)狀態(tài)頁(yè)面,用戶(hù)可以使用頁(yè)面底部的按鈕導(dǎo)航到監(jiān)視、跟蹤頁(yè)面和違規(guī)頁(yè)面。為了監(jiān)視和跟蹤發(fā)貨過(guò)程,從阿里云數(shù)據(jù)庫(kù)服務(wù)器中提取發(fā)貨數(shù)據(jù),該頁(yè)記錄的是從發(fā)貨到現(xiàn)階段的整個(gè)歷史記錄,數(shù)據(jù)被分割成多個(gè)數(shù)組,分別保存每個(gè)關(guān)鍵信息(溫度數(shù)組、濕度數(shù)組等),然后將這些數(shù)組可視化,繪制成帶標(biāo)簽的數(shù)據(jù)餅狀圖;在實(shí)時(shí)位置監(jiān)控頁(yè)面顯示運(yùn)輸路線(xiàn)的地圖信息,路線(xiàn)是使用百度API中定義的折線(xiàn)繪制的,北斗經(jīng)度和緯度坐標(biāo)用于在貨運(yùn)實(shí)時(shí)位置顯示一個(gè)綠色標(biāo)記,超出地理邊界的坐標(biāo)被設(shè)置紅色,具體功能框架如圖5所示。

        圖5 應(yīng)用層功能框架圖

        3 Fabric框架下的開(kāi)發(fā)步驟

        3.1 搭建Fabric網(wǎng)絡(luò)

        (1)區(qū)塊鏈網(wǎng)絡(luò)初始化需要管理員在內(nèi)網(wǎng)工作,需要為所有成員(如對(duì)等節(jié)點(diǎn)、訂單節(jié)點(diǎn)、通道、用戶(hù)等)創(chuàng)建證書(shū),所有證書(shū)均由CA生成;然后將CA證書(shū)打包到docker映像中,保證Peer節(jié)點(diǎn)和order節(jié)點(diǎn)在docker容器中正常運(yùn)行;再開(kāi)始創(chuàng)建通道,使每個(gè)頻道都加入獨(dú)立的區(qū)塊鏈和總帳。

        (2)通過(guò)上面的操作已經(jīng)建立了一個(gè)基本的Hyperledger Fabric網(wǎng)絡(luò)。為了構(gòu)建應(yīng)用程序,需要設(shè)計(jì)智能合約(智能合約的具體實(shí)現(xiàn)將在下文詳述),它的源代碼是用Golang語(yǔ)言編寫(xiě)的。管理員使用Hyperledger Fabric SDK或客戶(hù)端將智能合約安裝到所有的peer節(jié)點(diǎn),然后進(jìn)行初始化,調(diào)用函數(shù)用于初始化鏈代碼,每個(gè)實(shí)例化的智能合約鏈碼將作為背書(shū)保存在container中,整個(gè)Fabric網(wǎng)絡(luò)工作流如圖6所示。

        圖6 Fabric網(wǎng)絡(luò)工作流

        3.2 制定控制策略智能合約

        (1)管理員和用戶(hù)共同根據(jù)主體(用戶(hù))、對(duì)象(設(shè)備資源)、操作和環(huán)境的屬性定義來(lái)制定控制策略。

        (2)定義策略后,管理員將策略上傳到區(qū)塊鏈網(wǎng)絡(luò)。

        (3)管理員通過(guò)運(yùn)行訪問(wèn)控制合約連接到區(qū)塊鏈來(lái)添加、修改和刪除策略。策略的值保存在世界狀態(tài)數(shù)據(jù)庫(kù)(world state dataase)中,操作記錄寫(xiě)入帳本。

        3.3 數(shù)據(jù)采集信息上鏈

        IOT設(shè)備將傳感信息URL上報(bào)給智能網(wǎng)關(guān),智能網(wǎng)關(guān)將傳感URL上傳到區(qū)塊鏈系統(tǒng),具體流程為:

        (1)設(shè)備生成包含設(shè)備ID和URL的消息,并通過(guò)MQTT將其發(fā)送到智能網(wǎng)關(guān)。

        (2)智能網(wǎng)關(guān)解析消息并為區(qū)塊鏈生成一個(gè)action。

        (3)智能網(wǎng)關(guān)連接到區(qū)塊鏈客戶(hù)端來(lái)運(yùn)行該操作。

        (4)區(qū)塊鏈通過(guò)調(diào)用數(shù)據(jù)采集智能合約來(lái)保存設(shè)備資源的URL。

        4 開(kāi)發(fā)智能合約

        4.1 智能合約

        目前用來(lái)開(kāi)發(fā)智能合約技術(shù)的主要是Ethereum和Hyperledger,其中Ethereum可以開(kāi)發(fā)公開(kāi)的、少限制的和私有鏈,而Hyperledger適合開(kāi)發(fā)私有鏈,以go為開(kāi)發(fā)語(yǔ)言,適合作為本系統(tǒng)合約代碼開(kāi)發(fā)框架;在Hyperledger Fabric中,Chaincode是運(yùn)行在隔離的安全Docker容器中的智能合約,Chaincode通過(guò)區(qū)塊鏈交易管理分布式賬本中的狀態(tài),Chaincode可以看作是使用Hyperledger Fabric包(如shim和peer)的一般Golang代碼。

        4.2 控制策略智能合約

        (1)管理員為用戶(hù)定義ABAC(基于屬性的訪問(wèn)控制策略),并向區(qū)塊鏈系統(tǒng)發(fā)送添加ABAC的請(qǐng)求,管理員用控制策略智能合約通道中的節(jié)點(diǎn)公鑰加密數(shù)據(jù),再用私鑰簽署請(qǐng)求,智能合約調(diào)用Auth()用其公鑰驗(yàn)證管理員的身份,并用self的私鑰解密數(shù)據(jù)。

        (2)CheckPolicy():控制策略智能合約需要檢查ABAC策略的有效性。

        (3)AddPolicy():在CheckPolicy()驗(yàn)證ABAC策略合法后,控制策略智能合約調(diào)用AddPolicy()將ABAC策略添加到SDB,同時(shí)所有的操作記錄將被寫(xiě)入總賬。

        (4)UpdatePolicy():某些情況下,管理員需要修改ABAC。UpdatePolicy()函數(shù)實(shí)現(xiàn)了SDB的接口更新,更新的操作記錄也將寫(xiě)入?yún)^(qū)塊鏈。UpdatePolicy()類(lèi)似于AddPolicy(),它也通過(guò)調(diào)用應(yīng)用程序接口的put方法來(lái)覆蓋原有值。

        (5)DeletePolicy():當(dāng)管理員通過(guò)調(diào)用此函數(shù)主動(dòng)刪除策略時(shí),就會(huì)發(fā)生策略過(guò)期情況,另一種是在執(zhí)行CheckAccess()方法時(shí)發(fā)生過(guò)期情況,如果屬性“endTime”過(guò)期了,那么它將在控制策略中調(diào)用這個(gè)函數(shù)來(lái)刪除相關(guān)的策略。

        (6)QueryPolicy():實(shí)現(xiàn)了數(shù)據(jù)庫(kù)查詢(xún)的接口,提供了一個(gè)函數(shù)來(lái)獲取其他Chaincode鏈碼的ABAC。我們選擇CouchDB作為SDB。

        4.3 數(shù)據(jù)采集智能合約

        (1)IOT傳感器設(shè)備和定位設(shè)備采集溫濕度數(shù)據(jù),每秒鐘采集30次,以30個(gè)數(shù)據(jù)為一組,并將其通過(guò)MQTT協(xié)議上傳到阿里云IOT物聯(lián)網(wǎng)平臺(tái),阿里云物聯(lián)網(wǎng)平臺(tái)再將數(shù)據(jù)存儲(chǔ)在阿里云數(shù)據(jù)庫(kù)服務(wù)器上。

        (2)計(jì)算這組數(shù)據(jù)的平均值作為基礎(chǔ)數(shù)據(jù),通過(guò)https協(xié)議發(fā)送到本地服務(wù)器的redis數(shù)據(jù)庫(kù)中。

        (3)基 于Node.js的Hyperledger Fabric Client SDK定義的api與網(wǎng)絡(luò)Network中的鏈碼交互,讀取數(shù)據(jù)到區(qū)塊鏈網(wǎng)絡(luò)中order消息隊(duì)列中,返回是否提交成功。

        (4)消息隊(duì)列中數(shù)據(jù)排序后再發(fā)送到智能合約中,智能合約判斷采集數(shù)據(jù)是否是合規(guī)的數(shù)據(jù),如果違規(guī),則由client客戶(hù)端發(fā)起交易請(qǐng)求,將該筆交易發(fā)送背書(shū)peer節(jié)點(diǎn),驗(yàn)證背書(shū)節(jié)點(diǎn)簽名是否符合策略,再將交易廣播到排序服務(wù)(Order Service),order節(jié)點(diǎn)執(zhí)行共識(shí)過(guò)程生成新的區(qū)塊,將交易內(nèi)容(異常數(shù)據(jù))寫(xiě)入新區(qū)塊,并通過(guò)channel發(fā)送給各Peer節(jié)點(diǎn)備份,同時(shí)更新world state;再判斷數(shù)據(jù)是否保存成功,如果成功則數(shù)據(jù)從消息隊(duì)列中刪除,不成功則等待下一次上鏈。

        (5)智能合約向各管理節(jié)點(diǎn)發(fā)送報(bào)警信息。

        猜你喜歡
        合約冷鏈集裝箱
        美軍一架C-130J正在投放集裝箱
        軍事文摘(2023年5期)2023-03-27 09:13:10
        要不要做冷鏈物流?
        虛實(shí)之間——集裝箱衍生出的空間折疊
        我家住在集裝箱
        冷鏈物流用復(fù)合蓄冷材料的研究
        勁達(dá)電裝聯(lián)手開(kāi)發(fā)冷鏈物流市場(chǎng)
        一種新型自卸式污泥集裝箱罐
        首個(gè)“南菜北運(yùn)”冷鏈果蔬專(zhuān)列開(kāi)通
        合約必守,誰(shuí)能例外!——對(duì)“情勢(shì)變更”制度不可寄于過(guò)高期望
        精品含羞草免费视频观看| 亚洲影院丰满少妇中文字幕无码| 在线观看91精品国产免费免费| 无码国产精品第100页| 国产成年无码久久久久下载| 亚洲成人色黄网站久久| 韩国三级黄色一区二区| 久久精品国产亚洲av精东| 色偷偷av一区二区三区| 香蕉视频在线精品视频| 国产精品麻豆最新AV| www.91久久| av免费在线播放观看| 极品av一区二区三区| 国产亚洲精品a片久久久| 国产成+人+综合+亚洲欧美丁香花| 夜夜欢性恔免费视频| 国产91精选在线观看麻豆| 亚洲五月七月丁香缴情| 国产精品国产三级国产不卡| 国产老熟女精品一区二区| 久久久国产精品va麻豆| 五十路丰满中年熟女中出| 丰满人妻妇伦又伦精品国产| 另类欧美亚洲| 一区二区三区日本在线| 亚洲一区精品在线中文字幕| 国产精品 亚洲 无码 在线| 午夜福利92国语| 亚洲欧美日韩国产综合专区| 国产熟妇一区二区三区网站| 日韩三级一区二区不卡| 国模吧无码一区二区三区| 国产亚洲精品aaaaaaa片| 亚州精品无码人妻久久| 亚洲毛片av一区二区三区| 免费看av网站在线亚洲| 在线免费观看一区二区| 国产午夜鲁丝片av无码| 国产A√无码专区| 女同性恋一区二区三区四区|