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

        ?

        基于區(qū)塊鏈的電子倉(cāng)單可信存儲(chǔ)技術(shù)

        2020-01-17 03:07:48王文奇關(guān)云云
        關(guān)鍵詞:倉(cāng)單記賬視圖

        王文奇,潘 恒,潘 磊,關(guān)云云

        1.中原工學(xué)院計(jì)算機(jī)學(xué)院,鄭州450007

        2.中原工學(xué)院前沿信息技術(shù)研究院,鄭州450007

        3.中原工學(xué)院圖書(shū)館,鄭州450007

        物流倉(cāng)儲(chǔ)是現(xiàn)代物流系統(tǒng)中的關(guān)鍵環(huán)節(jié),而倉(cāng)單是指?jìng)}儲(chǔ)方簽發(fā)給存儲(chǔ)人或貨物所有人的記載倉(cāng)儲(chǔ)貨物唯一合法的物權(quán)憑證.《合同法》第387 條規(guī)定:“倉(cāng)單是提取倉(cāng)儲(chǔ)物的憑證.存貨人或者倉(cāng)單持有人在倉(cāng)單上背書(shū)并經(jīng)保管人簽字或者蓋章的,可以轉(zhuǎn)讓提取倉(cāng)儲(chǔ)物的權(quán)利.”[1]

        倉(cāng)單是以可信的倉(cāng)儲(chǔ)物品為核心的信息表達(dá),而倉(cāng)儲(chǔ)物品背后是以倉(cāng)單形式確定的物權(quán)以及轉(zhuǎn)移關(guān)系.不僅要求倉(cāng)單所代表的存儲(chǔ)物及存儲(chǔ)過(guò)程是可信的,而且必須要求倉(cāng)單具有有效性、可信性、不可篡改性等高安全等級(jí)[2].

        倉(cāng)庫(kù)存儲(chǔ)是在特定場(chǎng)所存儲(chǔ)物品的行為,通過(guò)倉(cāng)儲(chǔ)對(duì)物品存儲(chǔ)和保管.在供應(yīng)鏈中,貨物在倉(cāng)庫(kù)的停留時(shí)間最長(zhǎng),由此可見(jiàn)倉(cāng)庫(kù)存儲(chǔ)是核心節(jié)點(diǎn).只有在可信的倉(cāng)庫(kù)存儲(chǔ)基礎(chǔ)上,才能構(gòu)建供應(yīng)鏈之間的信用關(guān)系.然而,在存儲(chǔ)過(guò)程中可能面臨各種風(fēng)險(xiǎn),如調(diào)換、盜竊、損壞等.為此,在現(xiàn)代倉(cāng)儲(chǔ)過(guò)程中采用攝像、震動(dòng)傳感器、溫濕度傳感器等大量的物聯(lián)網(wǎng)設(shè)備監(jiān)控倉(cāng)儲(chǔ)物品,從而產(chǎn)生大量的監(jiān)控信息,目的是在保障貨物安全存儲(chǔ)的同時(shí)為貨物背后的貨主、倉(cāng)單交易以及其背后承載的金融特征執(zhí)行背書(shū)的任務(wù).當(dāng)采用傳統(tǒng)存儲(chǔ)技術(shù)時(shí),這些信息理論上是可修改的,因而無(wú)法厘清管理與物權(quán)等各方責(zé)任,最終導(dǎo)致倉(cāng)單是不可信的.

        區(qū)塊鏈技術(shù)是近年出現(xiàn)的分布式賬本技術(shù),其特點(diǎn)是:去中心化、公開(kāi)透明、不可更改、不可偽造等[3].區(qū)塊鏈因這些特點(diǎn)而具有安全可靠性高、難以偽造、存入信息不可篡改以及可溯源等優(yōu)勢(shì).因此,如果能將以倉(cāng)儲(chǔ)為核心的相關(guān)信息存入?yún)^(qū)塊鏈,建立一條可信而完整的監(jiān)控貨物信息鏈,將有助于供應(yīng)鏈各參與方之間建立信任關(guān)系,為倉(cāng)單進(jìn)行可靠性背書(shū),同時(shí)利用傳統(tǒng)比特幣的交易特征為建立電子倉(cāng)單交易提供可能.為此,文獻(xiàn)[4]基于超級(jí)賬本技術(shù)建立了一個(gè)倉(cāng)單交易系統(tǒng);文獻(xiàn)[5]采用超級(jí)賬本1.0 技術(shù)將交易信息寫(xiě)入?yún)^(qū)塊鏈;文獻(xiàn)[6]基于以太坊技術(shù)利用智能合約實(shí)現(xiàn)倉(cāng)單交易業(yè)務(wù)合約;文獻(xiàn)[7]則提出了供應(yīng)鏈模型使之適用于區(qū)塊鏈系統(tǒng);文獻(xiàn)[8]討論了利用區(qū)塊鏈建立電子倉(cāng)單的可行性;文獻(xiàn)[9]基于區(qū)塊鏈系統(tǒng)建立了谷物類(lèi)倉(cāng)單交易平臺(tái).綜上所述,目前的相關(guān)研究大多將倉(cāng)單信息記錄于區(qū)塊鏈,而沒(méi)有記錄物流倉(cāng)單的物聯(lián)網(wǎng)相關(guān)信息;同時(shí)作為合約記錄電子倉(cāng)單相當(dāng)于記錄了交易過(guò)程,獲得倉(cāng)單時(shí)需要綜合這些合約以獲得交易結(jié)果,而不是直接按照交易算法計(jì)算交易的結(jié)果.

        針對(duì)上述問(wèn)題,本文旨在利用區(qū)塊鏈的不可修改特性,針對(duì)倉(cāng)儲(chǔ)系統(tǒng)的特性,研究并設(shè)計(jì)一個(gè)可信的信息存儲(chǔ)以及電子倉(cāng)單交易平臺(tái),將以倉(cāng)單為代表的倉(cāng)庫(kù)各種貨物相關(guān)信息以及監(jiān)控貨物的物聯(lián)網(wǎng)信息存儲(chǔ)為可信信息鏈,為建立供應(yīng)鏈各參與方之間的信任關(guān)系以及可信的倉(cāng)單轉(zhuǎn)讓提供底層數(shù)據(jù)平臺(tái)支撐.

        1 實(shí)施方案

        本文結(jié)合現(xiàn)代倉(cāng)儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)特征,針對(duì)供應(yīng)鏈系統(tǒng)可信性需求,利用區(qū)塊鏈的不可篡改性以及可追溯性等特點(diǎn)構(gòu)建基于區(qū)塊鏈的倉(cāng)單倉(cāng)庫(kù)存儲(chǔ)系統(tǒng).該系統(tǒng)支持Internet 網(wǎng)絡(luò)下的局域網(wǎng)、移動(dòng)網(wǎng)絡(luò)、WIFI等多種接入,支持手持、攝像頭、射頻識(shí)別器(radio frequency identification, RFID)等各種硬件設(shè)備的信息采集與傳輸,支持物流倉(cāng)單金融中貨主、倉(cāng)庫(kù)保管以及銀行等各個(gè)角色接入查詢(xún),使參與各方達(dá)到風(fēng)險(xiǎn)可控的目的.

        基于以上要求,為支撐倉(cāng)庫(kù)物流系統(tǒng)的管理以及供應(yīng)鏈系統(tǒng),采用如圖1所示的網(wǎng)絡(luò)拓?fù)浼軜?gòu).

        圖1 物流倉(cāng)儲(chǔ)區(qū)塊鏈網(wǎng)絡(luò)拓?fù)浼軜?gòu)Figure 1 Blockchains network topology about logistics storage

        系統(tǒng)中包含如下主要角色:全網(wǎng)唯一的CA 認(rèn)證服務(wù)器、各個(gè)相對(duì)獨(dú)立的倉(cāng)儲(chǔ)子網(wǎng)系統(tǒng)、以手機(jī)為代表的貨主手持設(shè)備作為區(qū)塊鏈錢(qián)包以及部分Internet 區(qū)塊鏈記賬節(jié)點(diǎn).這些角色以構(gòu)建的區(qū)塊鏈系統(tǒng)為支撐平臺(tái),通過(guò)Internet 互相連接起來(lái).

        每個(gè)倉(cāng)儲(chǔ)子網(wǎng)可以采用私網(wǎng)組網(wǎng),但需要一個(gè)公網(wǎng)接口與Internet 互聯(lián).子網(wǎng)中包含一個(gè)唯一的區(qū)塊鏈記賬節(jié)點(diǎn),包含手持設(shè)備、RFID、攝像頭等物聯(lián)網(wǎng)設(shè)備.為保證所有區(qū)塊鏈記賬節(jié)點(diǎn)能夠在Internet 中互聯(lián),在Internet 公網(wǎng)中至少部署一臺(tái)以上區(qū)塊鏈記賬節(jié)點(diǎn).

        區(qū)塊鏈盡管采用了簽名機(jī)制,但簽名本質(zhì)上還是虛擬信息.因此,為了能與真實(shí)的物理世界關(guān)聯(lián)起來(lái),引入數(shù)字證書(shū).本系統(tǒng)具有以下作用:1)以數(shù)字認(rèn)證中心(certificate authority,CA)注冊(cè)的方式把真實(shí)世界中主體與區(qū)塊鏈中存儲(chǔ)的虛擬信息相關(guān)聯(lián);2)提供設(shè)備準(zhǔn)入機(jī)制,并使入網(wǎng)的設(shè)備具有不同的身份;3)記賬節(jié)點(diǎn)可以采用雙重簽名,從而提高區(qū)塊鏈存儲(chǔ)信息的安全性.

        CA 通過(guò)注冊(cè)系統(tǒng)(registration authority, RA)實(shí)體認(rèn)證并頒發(fā)證書(shū),其作用如下:1)保證了各物聯(lián)網(wǎng)參與設(shè)備以及倉(cāng)單轉(zhuǎn)移參與方的實(shí)體認(rèn)證特征;2)在數(shù)據(jù)存儲(chǔ)和交易過(guò)程中對(duì)存儲(chǔ)數(shù)據(jù)加密簽名,利用證書(shū)對(duì)加入的主機(jī)進(jìn)行驗(yàn)證以保證私有鏈的可靠、可信和穩(wěn)定;3)在數(shù)據(jù)查詢(xún)驗(yàn)證時(shí),利用數(shù)字證書(shū)系統(tǒng)對(duì)存儲(chǔ)數(shù)據(jù)簽名進(jìn)行驗(yàn)證;4)利用證書(shū)系統(tǒng)將區(qū)塊鏈中生成的私鑰加密簽名,并支持基于證書(shū)的錢(qián)包數(shù)據(jù)導(dǎo)出.利用數(shù)字證書(shū)技術(shù)將區(qū)塊鏈的私鑰進(jìn)行加密保存,從而降低了傳統(tǒng)區(qū)塊鏈系統(tǒng)私鑰明文保存而面臨錢(qián)包數(shù)據(jù)可能丟失的風(fēng)險(xiǎn).

        基于上述特征,本區(qū)塊鏈系統(tǒng)采用私有鏈系統(tǒng),其總體設(shè)計(jì)框架如圖2所示.

        系統(tǒng)底層利用區(qū)塊鏈的核心架構(gòu),采用Berkeley DB 數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)將數(shù)據(jù)按照塊進(jìn)行存儲(chǔ).設(shè)計(jì)共識(shí)機(jī)制算法,定時(shí)協(xié)商特定的記賬主機(jī)產(chǎn)生區(qū)塊,采用Hash 算法將各個(gè)區(qū)塊鏈接起來(lái),再根據(jù)Hash 算法將存儲(chǔ)的數(shù)據(jù)生成Merkle 樹(shù)以方便查詢(xún).對(duì)于每一次存儲(chǔ)的數(shù)據(jù),利用非對(duì)稱(chēng)密鑰技術(shù)將數(shù)據(jù)加密存儲(chǔ);利用P2P 技術(shù)將所有用戶(hù)的所有交易及存儲(chǔ)數(shù)據(jù)廣播于全網(wǎng)節(jié)點(diǎn),其他節(jié)點(diǎn)則根據(jù)交易規(guī)則驗(yàn)證數(shù)據(jù)的有效性.

        在區(qū)塊鏈核心技術(shù)以及數(shù)字證書(shū)技術(shù)支撐的基礎(chǔ)上,重新設(shè)計(jì)上層的共識(shí)機(jī)制算法、交易算法、數(shù)據(jù)查詢(xún)算法,使系統(tǒng)更適合倉(cāng)儲(chǔ)信息的交易、存儲(chǔ)以及查詢(xún),最終達(dá)到為物流倉(cāng)單金融有效背書(shū)的目的.

        圖2 系統(tǒng)設(shè)計(jì)框架Figure 2 System design framework

        2 共識(shí)算法

        2.1 共識(shí)機(jī)制架構(gòu)設(shè)計(jì)

        共識(shí)機(jī)制是區(qū)塊鏈中的核心技術(shù)點(diǎn).多方參與節(jié)點(diǎn)在預(yù)設(shè)規(guī)則下通過(guò)節(jié)點(diǎn)間交互對(duì)數(shù)據(jù)、行為或流程達(dá)成一致的過(guò)程稱(chēng)為共識(shí).共識(shí)機(jī)制是指定義共識(shí)過(guò)程的算法、協(xié)議和規(guī)則,按照共識(shí)的過(guò)程分兩類(lèi):第1 類(lèi)是概率一致的共識(shí),也即工程學(xué)上的最終確認(rèn);第2 類(lèi)是絕對(duì)一致之后再共識(shí),共識(shí)即確認(rèn)[10].

        當(dāng)前已有的共識(shí)算法不適合本系統(tǒng)架構(gòu),原因如下:1)本區(qū)塊鏈系統(tǒng)參與記賬節(jié)點(diǎn)的規(guī)模相對(duì)較小,其量級(jí)在幾個(gè)到數(shù)百個(gè)之間.在這樣的規(guī)模下需要考慮網(wǎng)絡(luò)不穩(wěn)定性(如節(jié)點(diǎn)的掉線和上線),而已有共識(shí)算法考慮的是規(guī)模較大的網(wǎng)絡(luò).從宏觀上來(lái)看,規(guī)模較大的網(wǎng)絡(luò)是穩(wěn)定的,不需要考慮網(wǎng)絡(luò)的不穩(wěn)定性.2)沒(méi)有考慮參與創(chuàng)建區(qū)塊節(jié)點(diǎn)的可認(rèn)證性,也沒(méi)有對(duì)創(chuàng)建區(qū)塊節(jié)點(diǎn)進(jìn)行認(rèn)證;3)如果能夠給予參與的物聯(lián)網(wǎng)設(shè)備一定獎(jiǎng)勵(lì)機(jī)制,則會(huì)激發(fā)更多用戶(hù)安裝更多的物聯(lián)網(wǎng)設(shè)備,從而提高倉(cāng)儲(chǔ)貨物的安全性,而已有共識(shí)算法沒(méi)有這樣的設(shè)計(jì).

        綜合以上因素,本共識(shí)算法采用第2類(lèi)的共識(shí)機(jī)制,即絕對(duì)一致共識(shí).設(shè)計(jì)了基于信譽(yù)度的共識(shí)算法,架構(gòu)設(shè)計(jì)如圖3所示.共識(shí)算法采用3 層架構(gòu)設(shè)計(jì):物聯(lián)網(wǎng)設(shè)備層(投票)、鏈作業(yè)層(記賬)、管理層(CA 身份認(rèn)證、賬本存儲(chǔ)),共識(shí)算法通過(guò)多層次設(shè)計(jì)降低了數(shù)據(jù)存儲(chǔ)的需求,提升了區(qū)塊生成者的隨機(jī)性.

        圖3 共識(shí)算法設(shè)計(jì)框架Figure 3 Consensus algorithm framework

        物聯(lián)網(wǎng)設(shè)備通過(guò)記賬節(jié)點(diǎn)參與投票,為提高各物聯(lián)網(wǎng)設(shè)備參與投票的積極性,創(chuàng)建了虛擬貨幣瑞福幣.當(dāng)投票記賬節(jié)點(diǎn)獲得創(chuàng)建區(qū)塊權(quán)利時(shí),記賬節(jié)點(diǎn)獲得100 瑞福幣,并將瑞福幣分配給參與該記賬節(jié)點(diǎn)投票的物聯(lián)網(wǎng)設(shè)備.

        首先給出以下定義.

        1)設(shè)備ID

        設(shè)備ID 是記賬節(jié)點(diǎn)以及物聯(lián)網(wǎng)設(shè)備都擁有一個(gè)全網(wǎng)唯一的ID,為4 字節(jié)的無(wú)符號(hào)整數(shù),由管理層統(tǒng)一分配管理.

        2)記賬節(jié)點(diǎn)信譽(yù)度

        記賬節(jié)點(diǎn)信譽(yù)度是表示記賬節(jié)點(diǎn)可靠性的參數(shù).在每個(gè)記賬周期,節(jié)點(diǎn)的信譽(yù)度值增加1,達(dá)到最大值時(shí)便不再增加.

        3)主節(jié)點(diǎn)視圖

        主節(jié)點(diǎn)視圖是指記賬主節(jié)點(diǎn)廣播于全網(wǎng)的所有信息,包括記賬主節(jié)點(diǎn)ID、信譽(yù)度以及投票信息.一個(gè)協(xié)商周期結(jié)束后,各記賬節(jié)點(diǎn)廣播該節(jié)點(diǎn)的所有信息.

        4)全主節(jié)點(diǎn)視圖

        所有主節(jié)點(diǎn)視圖構(gòu)成了全主節(jié)點(diǎn)視圖.

        接下來(lái)描述各層角色.

        1)管理層

        a)包括CA 服務(wù)器,負(fù)責(zé)為物聯(lián)網(wǎng)設(shè)備和記賬主節(jié)點(diǎn)頒發(fā)數(shù)字證書(shū);

        b)分配并管理記賬主節(jié)點(diǎn)、物聯(lián)網(wǎng)設(shè)備ID;

        c)負(fù)責(zé)保存設(shè)備在區(qū)塊鏈中的錢(qián)包地址(區(qū)塊鏈中的公鑰),將ID與物聯(lián)網(wǎng)設(shè)備在區(qū)塊鏈中的錢(qián)包地址對(duì)應(yīng);

        d)應(yīng)答查詢(xún)ID 對(duì)應(yīng)的信息,如根據(jù)設(shè)備ID 查詢(xún)對(duì)應(yīng)的錢(qián)包地址.

        2)記賬主節(jié)點(diǎn)

        a)根據(jù)共識(shí)算法獲得記賬權(quán)時(shí)創(chuàng)建區(qū)塊,并根據(jù)投票給物聯(lián)網(wǎng)設(shè)備分配瑞福幣,分配策略是:通過(guò)設(shè)備ID 與管理層通信來(lái)查詢(xún)獲得物聯(lián)網(wǎng)設(shè)備的錢(qián)包公鑰,進(jìn)而交易給對(duì)應(yīng)的物聯(lián)網(wǎng)設(shè)備;

        b)根據(jù)共識(shí)算法驗(yàn)證產(chǎn)生區(qū)塊的合法性;

        c)廣播物聯(lián)網(wǎng)設(shè)備的投票信息,并轉(zhuǎn)發(fā)廣播信息;

        d)向所關(guān)聯(lián)的物聯(lián)網(wǎng)設(shè)備廣播全主節(jié)點(diǎn)視圖.

        3)物聯(lián)網(wǎng)設(shè)備

        a)物聯(lián)網(wǎng)設(shè)備是指加入倉(cāng)單系統(tǒng)中的各種物聯(lián)網(wǎng)設(shè)備,如監(jiān)控?cái)z像頭、RFID 讀寫(xiě)器、NVR、手持設(shè)備等;

        b)首先由設(shè)備廠商為每個(gè)設(shè)備在區(qū)塊鏈系統(tǒng)的管理層注冊(cè)一個(gè)錢(qián)包,然后在管理層注冊(cè)錢(qián)包地址,并由管理層分配設(shè)備ID;

        c)獲得參與投票全節(jié)點(diǎn)視圖,并根據(jù)全節(jié)點(diǎn)視圖投票;

        d)在每一個(gè)產(chǎn)生區(qū)塊周期內(nèi),投票創(chuàng)建區(qū)塊記賬節(jié)點(diǎn)的設(shè)備獲得對(duì)應(yīng)的瑞福幣.

        2.2 注冊(cè)認(rèn)證

        首次加入?yún)^(qū)塊鏈系統(tǒng)時(shí),物聯(lián)網(wǎng)設(shè)備需要向管理層注冊(cè)認(rèn)證,其流程如圖4所示.

        圖4 注冊(cè)設(shè)備流程Figure 4 Process about registering device

        注冊(cè)認(rèn)證算法的具體步驟如下:

        步驟1物聯(lián)網(wǎng)設(shè)備首先向區(qū)塊鏈系統(tǒng)申請(qǐng)一個(gè)錢(qián)包地址;

        步驟2物聯(lián)網(wǎng)設(shè)備向管理層設(shè)備注冊(cè),注冊(cè)內(nèi)容包括物聯(lián)網(wǎng)設(shè)備錢(qián)包地址以及其他信息,如設(shè)備商的物聯(lián)網(wǎng)設(shè)備編號(hào)等信息;

        步驟3管理設(shè)備收到注冊(cè)信息后,給物聯(lián)網(wǎng)設(shè)備分配一個(gè)設(shè)備ID,然后保存設(shè)備數(shù)據(jù)庫(kù)記錄分配的ID、設(shè)備商的錢(qián)包地址,返回設(shè)備ID 信息.

        加入?yún)^(qū)塊鏈時(shí),記賬主節(jié)點(diǎn)向管理層注冊(cè)認(rèn)證,具體步驟如下:

        步驟1向管理層主機(jī)申請(qǐng)一個(gè)數(shù)字證書(shū);

        步驟2向管理層主機(jī)申請(qǐng)分配一個(gè)設(shè)備ID.

        2.3 共識(shí)算法描述

        共識(shí)算法為周期性運(yùn)行算法,其整體框架如圖5所示,分為投票周期、協(xié)商周期、創(chuàng)建區(qū)塊周期、權(quán)益分配周期.其中,權(quán)益分配周期和上一個(gè)創(chuàng)建區(qū)塊重疊,即共識(shí)算法周期實(shí)際需要的時(shí)間為前3 個(gè)周期.

        圖5 共識(shí)算法周期Figure 5 Consensus algorithm period

        共識(shí)算法中各周期的流程如圖6所示.對(duì)于初次加入的記賬主節(jié)點(diǎn),將其信譽(yù)度置為0.當(dāng)其信譽(yù)度小于4 時(shí),沒(méi)有投票和記賬的權(quán)利,只能接收全網(wǎng)視圖的廣播.每經(jīng)過(guò)一個(gè)記賬周期,信譽(yù)度增加1.當(dāng)信譽(yù)度達(dá)到5 時(shí),該記賬節(jié)點(diǎn)信譽(yù)度不再增加,目的主要是防止那些網(wǎng)絡(luò)狀況差或者頻繁加入退出區(qū)塊鏈系統(tǒng)記賬節(jié)點(diǎn),以免造成全網(wǎng)的系統(tǒng)不穩(wěn)定的情況.

        圖6 共識(shí)算法流程圖Figure 6 Flow chart of consensus algorithm

        最優(yōu)全節(jié)點(diǎn)視圖算法描述如下:在每個(gè)記賬周期內(nèi),上一輪記賬周期協(xié)商的創(chuàng)建區(qū)塊節(jié)點(diǎn)將廣播全節(jié)點(diǎn)視圖,記賬節(jié)點(diǎn)將廣播對(duì)上一輪記賬周期協(xié)商創(chuàng)建區(qū)塊節(jié)點(diǎn)的評(píng)價(jià).5輪之內(nèi),評(píng)價(jià)最優(yōu)的創(chuàng)建區(qū)塊節(jié)點(diǎn)所廣播的全節(jié)點(diǎn)視圖就是最優(yōu)全節(jié)點(diǎn)視圖.

        2.3.1 投票周期

        在投票周期內(nèi),物聯(lián)網(wǎng)設(shè)備投票記賬節(jié)點(diǎn),投票算法如圖7所示,具體步驟如下:

        步驟1由記賬主節(jié)點(diǎn)將上一個(gè)創(chuàng)建區(qū)塊周期內(nèi)全主節(jié)點(diǎn)視圖中各節(jié)點(diǎn)的ID 廣播給所關(guān)聯(lián)的物聯(lián)網(wǎng)設(shè)備;

        步驟2物聯(lián)網(wǎng)設(shè)備隨機(jī)投票選擇一個(gè)記賬主節(jié)點(diǎn)ID,并將消息傳遞給所關(guān)聯(lián)的記賬主節(jié)點(diǎn).

        圖7 投票周期流程Figure 7 Flow chart of voting period

        2.3.2 協(xié)商周期

        在協(xié)商周期內(nèi),各記賬節(jié)點(diǎn)在全網(wǎng)范圍內(nèi)廣播記賬節(jié)點(diǎn)信息,并使各節(jié)點(diǎn)獲得一致的信息.具體做法如下:每個(gè)記賬主節(jié)點(diǎn)將本節(jié)點(diǎn)獲得的全網(wǎng)視圖和上一輪創(chuàng)建區(qū)塊記賬主節(jié)點(diǎn)廣播的全主節(jié)點(diǎn)視圖比對(duì),如果不一致,則評(píng)價(jià)上一輪創(chuàng)建區(qū)塊記賬主節(jié)點(diǎn)信譽(yù)度為0,否則評(píng)價(jià)該節(jié)點(diǎn)信譽(yù)度為1.

        每個(gè)記賬主節(jié)點(diǎn)需要廣播以下內(nèi)容:1)各物聯(lián)網(wǎng)設(shè)備的投票信息,如物聯(lián)網(wǎng)對(duì)應(yīng)的ID 及其投票記賬節(jié)點(diǎn)ID;2)記賬主節(jié)點(diǎn)視圖;3)上一輪創(chuàng)建區(qū)塊記賬主節(jié)點(diǎn)信息,包括ID 及信譽(yù)度.

        由于本輪周期內(nèi)關(guān)鍵的問(wèn)題是消息的廣播算法,可以采用與Bitcoin 類(lèi)似的通用算法以防止出現(xiàn)廣播風(fēng)暴.

        2.3.3 創(chuàng)建區(qū)塊周期

        創(chuàng)建區(qū)塊周期由以下兩部分組成:1)各記賬主節(jié)點(diǎn)根據(jù)選舉算法協(xié)商出一致的創(chuàng)建區(qū)塊記賬主節(jié)點(diǎn);2)獲得創(chuàng)建區(qū)塊權(quán)的記賬主節(jié)點(diǎn)創(chuàng)建區(qū)塊并廣播,其他記賬主節(jié)點(diǎn)則驗(yàn)證區(qū)塊合法性.

        協(xié)商創(chuàng)建區(qū)塊主節(jié)點(diǎn)算法的步驟如下.

        步驟1參與創(chuàng)建區(qū)塊的記賬節(jié)點(diǎn)需要滿(mǎn)足以下兩個(gè)條件:一是記賬主節(jié)點(diǎn)的信譽(yù)度等于5,二是獲得的物聯(lián)網(wǎng)設(shè)備投票數(shù)大于一定的閾值.

        步驟2從有條件參與創(chuàng)建區(qū)塊選舉的記賬節(jié)點(diǎn)中,按照統(tǒng)一的隨機(jī)選取算法選擇一個(gè)創(chuàng)建區(qū)塊記賬節(jié)點(diǎn).

        獲得記賬權(quán)的記賬主節(jié)點(diǎn)創(chuàng)建區(qū)塊,在區(qū)塊頭增加自己的簽名信息,并在區(qū)塊中創(chuàng)建一個(gè)給自己100 個(gè)瑞福幣的交易,創(chuàng)建區(qū)塊后向全網(wǎng)廣播區(qū)塊.

        其他記賬主節(jié)點(diǎn)的算法步驟如下:

        步驟1收到創(chuàng)建區(qū)塊后根據(jù)區(qū)塊頭信息驗(yàn)證是否為協(xié)商結(jié)果節(jié)點(diǎn),如果不是,則丟棄該區(qū)塊.

        步驟2驗(yàn)證加密簽名消息,如果驗(yàn)證不成功,則將該節(jié)點(diǎn)的信譽(yù)度的設(shè)置為-1 000(這是一個(gè)極大負(fù)值,目的是阻止其創(chuàng)建區(qū)塊).

        步驟3所有參與記賬節(jié)點(diǎn)將在自己的全網(wǎng)視圖上將創(chuàng)建區(qū)塊節(jié)點(diǎn)的信譽(yù)度設(shè)為4,以防止該節(jié)點(diǎn)連續(xù)創(chuàng)建區(qū)塊.

        步驟4如果周期內(nèi)創(chuàng)建區(qū)塊節(jié)點(diǎn)沒(méi)有創(chuàng)建區(qū)塊,則其他所有節(jié)點(diǎn)將該節(jié)點(diǎn)的信譽(yù)度置為0,重新開(kāi)始協(xié)商.

        2.3.4 分配權(quán)益周期

        獲得創(chuàng)建區(qū)塊權(quán)的記賬主節(jié)點(diǎn)需要廣播上一輪記賬節(jié)點(diǎn)視圖,目的是讓其他記賬主節(jié)點(diǎn)驗(yàn)證創(chuàng)建主節(jié)點(diǎn)的信譽(yù)度.分配權(quán)益算法的具體步驟如下:

        步驟1創(chuàng)建區(qū)塊記賬節(jié)點(diǎn)向管理層主機(jī)發(fā)送查詢(xún)消息,通過(guò)投票給自己的設(shè)備ID 來(lái)查詢(xún)物聯(lián)網(wǎng)設(shè)備的錢(qián)包地址;

        步驟2創(chuàng)建區(qū)塊記賬節(jié)點(diǎn)創(chuàng)建交易,將創(chuàng)建區(qū)塊獲得的瑞福幣權(quán)益經(jīng)交易轉(zhuǎn)給物聯(lián)網(wǎng)設(shè)備,從而將瑞福幣存入物聯(lián)網(wǎng)設(shè)備的錢(qián)包.

        2.4 雙向確定機(jī)制

        本共識(shí)采用雙向確認(rèn)機(jī)制,如圖8所示.

        圖8 雙向確認(rèn)機(jī)制Figure 8 Two-way identification mechanism

        雙向確認(rèn)機(jī)制的具體步驟如下:

        步驟1本輪協(xié)商出記賬主節(jié)點(diǎn)后,認(rèn)為該創(chuàng)建區(qū)塊節(jié)點(diǎn)為高可靠節(jié)點(diǎn).獲得創(chuàng)建區(qū)塊權(quán)利的記賬主節(jié)點(diǎn)除了創(chuàng)建區(qū)塊之外還將廣播全節(jié)點(diǎn)視圖,而其他節(jié)點(diǎn)則根據(jù)統(tǒng)一的協(xié)商算法驗(yàn)證創(chuàng)建區(qū)塊的合法性.

        步驟2在分配權(quán)益周期期間,其他記賬主節(jié)點(diǎn)除驗(yàn)證創(chuàng)建區(qū)塊主節(jié)點(diǎn)ID 的合法性之外,還要將本地全節(jié)點(diǎn)視圖和創(chuàng)建區(qū)塊權(quán)利記賬主節(jié)點(diǎn)廣播的全視圖進(jìn)行相似對(duì)比;根據(jù)相似度算法,如果相似度大于一定閾值,則認(rèn)為該節(jié)點(diǎn)可信.之后在協(xié)商周期期間,各節(jié)點(diǎn)都將廣播創(chuàng)建區(qū)塊節(jié)點(diǎn)ID及其可信度.

        步驟3每個(gè)節(jié)點(diǎn)收到廣播信息后,統(tǒng)計(jì)全網(wǎng)內(nèi)所有節(jié)點(diǎn)承認(rèn)的創(chuàng)建區(qū)塊節(jié)點(diǎn)ID 并評(píng)價(jià)可信度,從而確認(rèn)一個(gè)為大多數(shù)節(jié)點(diǎn)所承認(rèn)的創(chuàng)建區(qū)塊節(jié)點(diǎn)為合法創(chuàng)建區(qū)塊節(jié)點(diǎn),并確定上一個(gè)區(qū)塊為可以確信的合法區(qū)塊.

        因此,共識(shí)算法承認(rèn)一個(gè)交易的合法性區(qū)塊高度為2,也就是該交易在創(chuàng)建兩個(gè)區(qū)塊之后才可以將其確認(rèn)為合法的區(qū)塊.

        2.5 安全性分析

        假設(shè)在此網(wǎng)絡(luò)中消息可能會(huì)丟失、損壞、延遲、重復(fù)發(fā)送,并且接收的順序與發(fā)送的順序不一致.此外,記賬節(jié)點(diǎn)的行為可以是任意的,既可以隨時(shí)加入或退出網(wǎng)絡(luò),又可能丟棄消息、偽造消息、停止工作等,還可能發(fā)生各種人為或非人為的故障.考慮到網(wǎng)絡(luò)的延遲問(wèn)題,各節(jié)點(diǎn)不可能是完全同步的,因此周期的設(shè)置要考慮網(wǎng)絡(luò)延遲的冗余.

        共識(shí)算法可以有效解決以下4個(gè)問(wèn)題:1)保證數(shù)據(jù)一致性;2)防止創(chuàng)建區(qū)塊節(jié)點(diǎn)造假;3)防止少部分節(jié)點(diǎn)聯(lián)合造假出現(xiàn)分叉,或者少部分節(jié)點(diǎn)因網(wǎng)絡(luò)原因而出現(xiàn)硬分叉現(xiàn)象;4)防止網(wǎng)絡(luò)較差節(jié)點(diǎn)

        2.5.1 保證數(shù)據(jù)一致性

        保證數(shù)據(jù)一致性是共識(shí)機(jī)制的核心問(wèn)題,實(shí)用拜占庭容錯(cuò)算法(practical Byzantine fault tolerance, PBFT)采用復(fù)雜的狀態(tài)機(jī),因此需要較長(zhǎng)時(shí)間來(lái)保證各節(jié)點(diǎn)達(dá)成一致的視圖.隨著節(jié)點(diǎn)規(guī)模的增大,達(dá)成共識(shí)需要的時(shí)間大大增加,顯然不符合效率需求.要取得與其他節(jié)點(diǎn)的共識(shí),PBFT 明顯要比Bitcoin 漫長(zhǎng)得多[11].因此,PBFT 也是目前無(wú)法實(shí)用化的理論共識(shí).

        本算法采用的雙向確認(rèn)機(jī)制可以使全網(wǎng)記賬節(jié)點(diǎn)更快地得到一致性全網(wǎng)視圖.

        1)對(duì)于初始節(jié)點(diǎn),其信譽(yù)度小,沒(méi)有記賬權(quán)限,但在這個(gè)過(guò)程中,可以獲得創(chuàng)建區(qū)塊節(jié)點(diǎn)廣播的視圖以及其他記賬節(jié)點(diǎn)廣播的創(chuàng)建區(qū)塊記賬節(jié)點(diǎn)確認(rèn)信息.根據(jù)這些信息,初始節(jié)點(diǎn)可以確認(rèn)全網(wǎng)視圖的可信度.因此,當(dāng)其信譽(yù)度達(dá)到具有參與協(xié)商權(quán)利時(shí),可以選擇最高可信度的創(chuàng)建區(qū)塊節(jié)點(diǎn)所廣播的視圖作為初始全網(wǎng)視圖,最終保證了初始記賬節(jié)點(diǎn)在具有參與全網(wǎng)協(xié)商創(chuàng)建區(qū)塊權(quán)利時(shí)獲得一致的全網(wǎng)記賬節(jié)點(diǎn)視圖.

        2)對(duì)于具有記賬權(quán)限的普通節(jié)點(diǎn),若因各種網(wǎng)絡(luò)原因與其他節(jié)點(diǎn)全網(wǎng)視圖不一致,則可以根據(jù)可信創(chuàng)建區(qū)塊廣播的視圖獲得一致信息,從而確保該節(jié)點(diǎn)與其他全網(wǎng)記賬節(jié)點(diǎn)視圖的一致性.

        綜上所述,全網(wǎng)在每個(gè)周期都能保證一個(gè)一致的全網(wǎng)視圖信息.

        2.5.2 防止出現(xiàn)網(wǎng)絡(luò)分叉

        當(dāng)少部分節(jié)點(diǎn)聯(lián)合造假時(shí),可能出現(xiàn)分叉現(xiàn)象;或者各種網(wǎng)絡(luò)故障也會(huì)引起部分節(jié)點(diǎn)與其他網(wǎng)絡(luò)不同步而出現(xiàn)分叉現(xiàn)象[12].在這種情況下,可以采用雙向確認(rèn)機(jī)制,由記賬節(jié)點(diǎn)統(tǒng)計(jì)上一輪合法的創(chuàng)建區(qū)塊記賬節(jié)點(diǎn)的認(rèn)可數(shù),根據(jù)多者勝出的原則最終使分叉的區(qū)塊鏈合并到統(tǒng)一的區(qū)塊鏈.

        如圖9所示,當(dāng)出現(xiàn)網(wǎng)絡(luò)故障時(shí),故障網(wǎng)絡(luò)選舉節(jié)點(diǎn)B作為創(chuàng)建區(qū)塊節(jié)點(diǎn),而正常網(wǎng)絡(luò)選舉節(jié)點(diǎn)A作為創(chuàng)建區(qū)塊節(jié)點(diǎn).節(jié)點(diǎn)A、B同時(shí)創(chuàng)建區(qū)塊,從而出現(xiàn)區(qū)塊鏈硬分叉現(xiàn)象.在下一個(gè)周期中,A節(jié)點(diǎn)是大多數(shù)網(wǎng)絡(luò)協(xié)商確認(rèn)的創(chuàng)建區(qū)塊節(jié)點(diǎn),獲得確認(rèn)節(jié)點(diǎn)數(shù)為4,同時(shí)B是少數(shù)網(wǎng)絡(luò)協(xié)商確認(rèn)的創(chuàng)建區(qū)塊節(jié)點(diǎn),獲得的確認(rèn)票數(shù)為2.因此,B創(chuàng)建的區(qū)塊是不合法的區(qū)塊.在故障網(wǎng)絡(luò)中節(jié)點(diǎn)B、C、D將拋棄節(jié)點(diǎn)B創(chuàng)建的分叉區(qū)塊,從而將區(qū)塊鏈統(tǒng)一于A創(chuàng)建的合法區(qū)塊鏈;同時(shí),故障網(wǎng)絡(luò)中記賬節(jié)點(diǎn)B、C、D通過(guò)節(jié)點(diǎn)A廣播的全網(wǎng)視圖也可以獲得與全網(wǎng)一致的視圖信.

        圖9 防止網(wǎng)絡(luò)故障硬分叉Figure 9 Preventing hard fork in network faults

        2.5.3 其他問(wèn)題

        對(duì)于初次加入網(wǎng)絡(luò)的節(jié)點(diǎn),其信譽(yù)度為0,表明這些節(jié)點(diǎn)沒(méi)有參與選舉的權(quán)利,這主要是為了防止節(jié)點(diǎn)停止工作以及網(wǎng)絡(luò)狀態(tài)差的節(jié)點(diǎn).

        除此之外,如果在一個(gè)周期內(nèi)協(xié)商出的創(chuàng)建區(qū)塊節(jié)點(diǎn)因各種原因而無(wú)法創(chuàng)建區(qū)塊,各節(jié)點(diǎn)就把這個(gè)創(chuàng)建區(qū)塊節(jié)點(diǎn)的信譽(yù)度設(shè)置為0,并啟動(dòng)下一輪的協(xié)商,這樣就可以在一定時(shí)間內(nèi)禁止那些網(wǎng)絡(luò)狀態(tài)不好的節(jié)點(diǎn)參與創(chuàng)建區(qū)塊.

        對(duì)于那些惡意節(jié)點(diǎn),如無(wú)法通過(guò)簽名認(rèn)證的節(jié)點(diǎn),直接將其信譽(yù)度設(shè)置為-1 000,于是就能在較長(zhǎng)時(shí)間內(nèi)阻止高風(fēng)險(xiǎn)節(jié)點(diǎn)作惡的可能.

        2.6 算法特征

        本共識(shí)算法具有如下特點(diǎn):1)采用物聯(lián)網(wǎng)投票方式顯然符合瑞福鏈中物聯(lián)網(wǎng)設(shè)備利用投票獲得收益的機(jī)制;2)可以在較短時(shí)間獲得一致信息,有助于在較短時(shí)間內(nèi)創(chuàng)建一致區(qū)塊;3)合法確認(rèn)區(qū)塊長(zhǎng)度為2,表明可以高效確認(rèn);4)能夠防御出現(xiàn)區(qū)塊鏈分叉等各種攻擊.

        3 信息存儲(chǔ)及交易設(shè)計(jì)

        信息存儲(chǔ)及交易設(shè)計(jì)需要考慮以下的存儲(chǔ)需求:

        1)倉(cāng)單信息的流轉(zhuǎn)信息需求.不同于比特幣是純數(shù)字的交換過(guò)程,倉(cāng)儲(chǔ)中數(shù)字和貨物信息相關(guān)聯(lián)的.不同信息的資產(chǎn)合并和分離需要根據(jù)其特定的規(guī)則進(jìn)行處理,如對(duì)大蒜物流的處理,只有相同品質(zhì)的大蒜倉(cāng)單才能合并,而不同品質(zhì)的大蒜倉(cāng)單是不能合并的.

        2)不同類(lèi)型信息的存儲(chǔ)需求.支撐倉(cāng)單的物品存儲(chǔ)于倉(cāng)庫(kù),必然包含大量監(jiān)控倉(cāng)儲(chǔ)的信息,如RFID 接收的貨物相關(guān)信息以及視頻、振動(dòng)告警等各種傳感器收集的信息.這些信息格式不同,需要考慮其不同的存儲(chǔ)需求.此外,這些信息具有只可存儲(chǔ)不能交易的特性,目的主要是當(dāng)存儲(chǔ)物品發(fā)生毀壞、被盜以及不可預(yù)知自然災(zāi)害時(shí),能夠厘清保管者、擁有者及運(yùn)輸者等各方面的責(zé)任,追溯問(wèn)題源頭.因此,需要在底層設(shè)計(jì)存儲(chǔ)單元的信息格式,使系統(tǒng)適應(yīng)倉(cāng)儲(chǔ)供應(yīng)鏈信息的存儲(chǔ)需求,同時(shí)根據(jù)倉(cāng)儲(chǔ)倉(cāng)單流轉(zhuǎn)規(guī)則設(shè)計(jì)交易算法,目的是保證不同類(lèi)型的信息能夠以不同類(lèi)型的交易方式存儲(chǔ),并在底層保證倉(cāng)儲(chǔ)倉(cāng)單流轉(zhuǎn)的合法性.基于以上分析,基于比特幣源碼將進(jìn)行以下修改:各類(lèi)信息存儲(chǔ)格式的修改、交易類(lèi)型的修改、錢(qián)包生成的修改.

        3.1 各類(lèi)信息存儲(chǔ)格式的修改

        不同于比特幣只是存儲(chǔ)單純的數(shù)字信息,本系統(tǒng)中區(qū)塊鏈存儲(chǔ)信息為倉(cāng)儲(chǔ)倉(cāng)單流轉(zhuǎn)信息,以及各種監(jiān)控系統(tǒng)產(chǎn)生的日志.對(duì)于Bitcoin 源碼,需要將原來(lái)單純數(shù)字信息存儲(chǔ)轉(zhuǎn)變?yōu)檫m用于各種倉(cāng)單及多種類(lèi)型倉(cāng)儲(chǔ)信息的表達(dá)和存儲(chǔ).為此,借助面向?qū)ο蠹夹g(shù)將原存儲(chǔ)純數(shù)字“幣”的信息擴(kuò)展為可以表示倉(cāng)單以及其他信息的類(lèi),具體算法描述如下:

        類(lèi)中增加了倉(cāng)單ID、倉(cāng)單相關(guān)信息以及其他數(shù)據(jù)類(lèi)型,因此需要從區(qū)塊中讀出和寫(xiě)入增加的信息.Bitcoin 源碼中提供了序列化方式將數(shù)據(jù)寫(xiě)入?yún)^(qū)塊,并通過(guò)逆序列化方式從區(qū)塊中讀出相關(guān)數(shù)據(jù).為此,利用這一機(jī)制重寫(xiě)了CAmount 序列化模板和逆序列化模板,將CAmount 的相關(guān)信息讀出和寫(xiě)入?yún)^(qū)塊;同時(shí),利用面向?qū)ο蠹夹g(shù)并根據(jù)倉(cāng)單的交易規(guī)則重載了該類(lèi)的加、減、比較等操作,目的是在交易倉(cāng)單或生成錢(qián)包時(shí)能使CAmount 生成的對(duì)象進(jìn)行各種符合規(guī)則的運(yùn)算.

        3.2 交易類(lèi)型的修改

        為適應(yīng)不同類(lèi)型信息流轉(zhuǎn)的需求,修改交易規(guī)則,如日志等監(jiān)控信息是只可存儲(chǔ)而不能交易的,電子倉(cāng)單是可以交易的,于是在交易類(lèi)CTransaction 中增加以下數(shù)據(jù)類(lèi)型:

        TRANSACTION_EXCAHANGEABLE_INIT = 0x10, //第1 個(gè)16 位大于0 為可交易類(lèi)型,第2位表示該類(lèi)型的不同狀態(tài)

        交易類(lèi)型總的來(lái)說(shuō)可以分為3 種類(lèi)型:不可交易類(lèi)型、電子倉(cāng)單交易類(lèi)型、純數(shù)字幣類(lèi)型交易.在交易函數(shù)中,根據(jù)不同的交易類(lèi)型采用不同的交易規(guī)則.

        3.3 錢(qián)包生成的修改

        在區(qū)塊鏈系統(tǒng)中,所有的信息存儲(chǔ)于區(qū)塊鏈.各用戶(hù)從錢(qián)包讀取自己的數(shù)據(jù),錢(qián)包的生成算法如下:將區(qū)塊鏈上與自己相關(guān)的交易按照交易算法進(jìn)行計(jì)算,并將結(jié)果保存于自己的錢(qián)包,用戶(hù)讀取的實(shí)際上是區(qū)塊鏈中交易計(jì)算的結(jié)果.

        對(duì)于本系統(tǒng)而言,生成錢(qián)包時(shí)需要根據(jù)交易類(lèi)型設(shè)計(jì)不同的交易算法,并生成不同類(lèi)型的信息.用戶(hù)讀取錢(qián)包數(shù)據(jù)時(shí),應(yīng)針對(duì)不同交易類(lèi)型設(shè)計(jì)不同的讀取方法.對(duì)于虛擬幣交易的算法,除了產(chǎn)生交易的費(fèi)用算法不同之外,其他算法與原算法大致相同;對(duì)于電子倉(cāng)單類(lèi)型數(shù)據(jù)的交易算法,則按照電子倉(cāng)單的交易特征只能進(jìn)行轉(zhuǎn)讓并附加轉(zhuǎn)讓物權(quán)的變化等信息;對(duì)于日志等類(lèi)型的存儲(chǔ),則只能讀取而不可交易.

        4 測(cè) 試

        系統(tǒng)開(kāi)發(fā)基于開(kāi)源軟件Bitcoin Core 0.14 版本,基于C++11 開(kāi)發(fā),操作系統(tǒng)平臺(tái)為基于Linux 內(nèi)核的Ubuntu 17.0,編譯器為GCC 7.2,區(qū)塊數(shù)據(jù)庫(kù)采用Berkeley DB 5.0.

        租用一臺(tái)阿里云的服務(wù)器操作系統(tǒng)Linux 作為CA 服務(wù)器,在騰訊云和阿里云分別租用分布于不同地區(qū)的兩臺(tái)操作系統(tǒng)Ubuntu 的服務(wù)器,作為保存于公網(wǎng)的區(qū)塊鏈記賬節(jié)點(diǎn),并以一臺(tái)本地Ubuntu 作為模擬本地倉(cāng)庫(kù)的區(qū)塊鏈記賬節(jié)點(diǎn).目的是測(cè)試不同網(wǎng)絡(luò)中的區(qū)塊鏈記賬節(jié)點(diǎn)的數(shù)據(jù)通信效能.

        采用2.3 所示的共識(shí)算法,設(shè)置共識(shí)周期為30 s.系統(tǒng)中廣播的信息包括存儲(chǔ)交易的倉(cāng)單、物聯(lián)網(wǎng)監(jiān)控信息以及共識(shí)算法信息.系統(tǒng)需要在固定周期內(nèi)將這些信息廣播于區(qū)塊鏈中各個(gè)節(jié)點(diǎn),由于交易倉(cāng)單數(shù)量以及物聯(lián)網(wǎng)監(jiān)控信息隨著系統(tǒng)規(guī)模擴(kuò)大而增長(zhǎng),系統(tǒng)中面臨的主要問(wèn)題是在互聯(lián)網(wǎng)中單位時(shí)間內(nèi)廣播這些存儲(chǔ)信息的能力.其中,需要測(cè)試的能力之一是系統(tǒng)存儲(chǔ)倉(cāng)單信息的能力,也即交易吞吐量.在實(shí)際使用過(guò)程中,普通電子倉(cāng)單信息量約為2 kB.基于包含倉(cāng)單的擴(kuò)展信息以及一定的冗余量,模擬一張電子倉(cāng)單的信息量為4 kB.實(shí)驗(yàn)分析如表1所示.

        表1 倉(cāng)單交易實(shí)驗(yàn)對(duì)比Table 1 Comparison of warehouse receipt transaction

        對(duì)于倉(cāng)儲(chǔ)中物聯(lián)網(wǎng)設(shè)備的信息存儲(chǔ),考慮到區(qū)塊鏈分布式存儲(chǔ)的特征,存儲(chǔ)容量大的視頻信息是不現(xiàn)實(shí)的,為此采用以下存儲(chǔ)原則:NVR 存儲(chǔ)文件信息SHA160 報(bào)文摘要碼,RFID只存儲(chǔ)貨物震動(dòng)的告警信息.因此,物聯(lián)網(wǎng)設(shè)備每次存儲(chǔ)的信息量比較小.根據(jù)測(cè)算得到物聯(lián)網(wǎng)設(shè)備每次存儲(chǔ)的信息量最大約為250 B,區(qū)塊鏈存儲(chǔ)信息實(shí)驗(yàn)如表2所示.

        表2 物聯(lián)網(wǎng)信息存儲(chǔ)實(shí)驗(yàn)對(duì)比Table 2 Comparison of storing Internet of Thing information

        從表1中可以看出,區(qū)塊鏈對(duì)倉(cāng)單的交易通量大約穩(wěn)定在12.40 條/s.從表2中可以看出,存儲(chǔ)物聯(lián)網(wǎng)信息的交易通量大約穩(wěn)定在120.00 條/s.基于對(duì)數(shù)10 個(gè)倉(cāng)儲(chǔ)的分析可知,一個(gè)萬(wàn)余平方米的大型倉(cāng)儲(chǔ)系統(tǒng)在一天產(chǎn)生的倉(cāng)單交易量最多100 余單,而其產(chǎn)生信息的物聯(lián)網(wǎng)設(shè)備平均每天為2 000 多個(gè).綜合以上分析及測(cè)試可知,本文所設(shè)計(jì)的區(qū)塊鏈存儲(chǔ)系統(tǒng)足夠數(shù)千個(gè)大型倉(cāng)儲(chǔ)系統(tǒng)同時(shí)加入?yún)^(qū)塊鏈系統(tǒng),基本上滿(mǎn)足了設(shè)計(jì)的要求.

        另外,建立了4 個(gè)Internet 區(qū)塊記賬節(jié)點(diǎn)和20 個(gè)局域網(wǎng)區(qū)塊記賬節(jié)點(diǎn)的實(shí)驗(yàn)環(huán)境,采用拔掉網(wǎng)線的方式模擬網(wǎng)絡(luò)故障.經(jīng)測(cè)試可知:系統(tǒng)能夠在2 個(gè)共識(shí)周期內(nèi)重新同步全網(wǎng)節(jié)點(diǎn)狀態(tài)并繼續(xù)正確運(yùn)轉(zhuǎn),充分說(shuō)明了共識(shí)算法具備良好的容錯(cuò)性.

        5 結(jié) 語(yǔ)

        本文利用區(qū)塊鏈技術(shù)針對(duì)電子倉(cāng)單的交易以及倉(cāng)儲(chǔ)信息的可信存儲(chǔ)進(jìn)行了研究,在開(kāi)源Bitcoin 源碼的基礎(chǔ)上設(shè)計(jì)了針對(duì)物聯(lián)網(wǎng)特征的基于信譽(yù)度共識(shí)機(jī)制算法,設(shè)計(jì)了針對(duì)電子倉(cāng)單交易以及物聯(lián)網(wǎng)信息的可信存儲(chǔ)算法.實(shí)驗(yàn)表明,區(qū)塊鏈系統(tǒng)滿(mǎn)足了倉(cāng)儲(chǔ)物流在實(shí)際應(yīng)用中的倉(cāng)單交易、倉(cāng)儲(chǔ)信息存儲(chǔ)的要求.實(shí)際上,本區(qū)塊鏈方案設(shè)計(jì)不僅可以存儲(chǔ)電子倉(cāng)單,也可以應(yīng)用于其他供應(yīng)鏈、信息交易等場(chǎng)景.根據(jù)具體的應(yīng)用場(chǎng)景測(cè)試最佳工作參數(shù),提高系統(tǒng)效率使之更適合倉(cāng)儲(chǔ)領(lǐng)域,將是下一階段研究的重點(diǎn).

        猜你喜歡
        倉(cāng)單記賬視圖
        論倉(cāng)單質(zhì)押的法律風(fēng)險(xiǎn)及其防范
        記賬類(lèi)APP
        農(nóng)家參謀(2019年2期)2019-09-10 03:54:02
        5.3 視圖與投影
        視圖
        Y—20重型運(yùn)輸機(jī)多視圖
        SA2型76毫米車(chē)載高炮多視圖
        中國(guó)儲(chǔ)運(yùn)(2016年1期)2016-07-11 10:37:21
        關(guān)于倉(cāng)單的學(xué)與問(wèn)
        代理記賬:會(huì)計(jì)“工學(xué)結(jié)合”的新動(dòng)向
        亚洲AV无码日韩一区二区乱| 亚洲色国产欧美日韩| 扒开双腿疯狂进出爽爽爽视频| 末发育娇小性色xxxxx视频| 无码人妻一区二区三区免费手机| 亚洲国产精品色一区二区| 国产剧情一区二区三区在线| 亚洲av无码专区在线播放| 久久香蕉国产线看观看网| 国产不卡一区二区三区视频| 人妻精品人妻一区二区三区四区| 国语自产偷拍在线观看 | 亚洲饱满人妻视频| 素人系列免费在线观看| 夜晚黄色福利国产精品| 少妇aaa级久久久无码精品片| 亚洲红怡院| 久久精品成人一区二区三区蜜臀| 久久久久人妻精品一区二区三区| 国产福利酱国产一区二区 | 3亚洲日韩在线精品区| 中文字幕人妻精品一区| 韩国三级大全久久网站| 丰满多毛少妇做爰视频| 宅男久久精品国产亚洲av麻豆 | av在线手机中文字幕| 本道天堂成在人线av无码免费| 饥渴的熟妇张开腿呻吟视频| 日本少妇按摩高潮玩弄| 日本av不卡一区二区三区| 欧美又粗又长又爽做受| 亚欧AV无码乱码在线观看性色| 中文字幕日本韩国精品免费观看| 久久精品国产av一级二级三级| 久久国产精品-国产精品| 欧美日韩国产另类在线观看| 国产乱人伦偷精品视频还看的| 精品偷拍被偷拍在线观看| 亚洲色图视频在线| 国产一区二区三区涩涩| 日韩内射美女片在线观看网站|