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

        ?

        基于聯(lián)盟區(qū)塊鏈的農(nóng)產(chǎn)品質(zhì)量安全高效追溯體系

        2019-10-23 12:23:56王可可陳志德徐健
        計(jì)算機(jī)應(yīng)用 2019年8期

        王可可 陳志德 徐健

        摘 要:針對農(nóng)產(chǎn)品追溯系統(tǒng)中的安全和效率問題,依據(jù)區(qū)塊鏈的去中心化安全特性,提出一種基于聯(lián)盟區(qū)塊鏈的高效解決辦法。首先,通過星際文件系統(tǒng)(IPFS)對農(nóng)產(chǎn)品數(shù)據(jù)進(jìn)行hash轉(zhuǎn)變,從而減小區(qū)塊中單條事務(wù)數(shù)據(jù)量,并利用IPFS數(shù)據(jù)的不可逆原理,達(dá)到數(shù)據(jù)的初步保障;其次,建立聯(lián)盟區(qū)塊鏈模型進(jìn)行數(shù)據(jù)驗(yàn)證,區(qū)塊鏈數(shù)據(jù)驗(yàn)證的共識(shí)算法采用實(shí)用拜占庭容錯(cuò)(PBFT)算法來減少全網(wǎng)共識(shí)時(shí)間;最后,根據(jù)仿真實(shí)驗(yàn)中參與節(jié)點(diǎn)數(shù)、區(qū)塊大小和網(wǎng)絡(luò)帶寬,來擬合驗(yàn)證交易的時(shí)間曲線,進(jìn)而計(jì)算出不同帶寬下的區(qū)塊鏈交易效率,并結(jié)合數(shù)以萬計(jì)的傳感器參與下的農(nóng)產(chǎn)品追溯系統(tǒng)的實(shí)際情況,對比區(qū)塊鏈雙鏈結(jié)構(gòu),給出分析結(jié)果。實(shí)驗(yàn)結(jié)果表明,在低于1000個(gè)驗(yàn)證節(jié)點(diǎn)的條件下,區(qū)塊鏈最大共識(shí)時(shí)長為32 min,聯(lián)盟鏈系統(tǒng)可支持35~40萬條傳感器數(shù)據(jù),可適用于大范圍、多數(shù)據(jù)的農(nóng)產(chǎn)品追溯。

        關(guān)鍵詞:聯(lián)盟區(qū)塊鏈;農(nóng)產(chǎn)品追溯;星際文件系統(tǒng);實(shí)用拜占庭容錯(cuò)算法;交易效率

        中圖分類號(hào):?TP309; TP311

        文獻(xiàn)標(biāo)志碼:A

        Efficient traceability system for quality and safety of agricultural products based on consortium blockchain

        WANG Keke1,2*, CHEN Zhide1,2, XU Jian1,3

        1.College of Mathematics and Informatics, Fujian Normal University, Fuzhou Fujian 350007, China ;

        2.Fujian Provincial Key Laboratory of Network Security and Cryptology (Fujian Normal University), Fuzhou Fujian 350007, China ;

        3.Engineering Research Center of Fujian University for Electronic Information and Control (Minjiang University), Fuzhou Fujian 350007, China

        Abstract:?Concerning of the security and efficiency problems of the agricultural product traceability system, based on the decentralization security feature of blockchain, an efficient solution based on consortium blockchain was proposed. Firstly, through Inter-Planetary File System (IPFS), the agricultural product data was hashed, so as to reduce the data size of single transactions in the block, and the initial guarantee of data was achieved by using the irreversible principle of IPFS data. Secondly, the consortium blockchain model for data verification was established, and Practical Byzantine Fault Tolerant (PBFT) algorithm was used as consensus algorithm for blockchain data verification to reduce the consensus time of the whole network. Finally, according to the number of participating nodes, block size and network bandwidth in the simulation experiment, the time curve of the verification transaction was fitted, and then the blockchain transaction efficiency under different bandwidths was calculated; by using tens of thousands of actual situations of the agricultural product traceability system with the participation of sensors, the blockchain double-chain structure was compared to obtain the analysis results. Experimental results show that under the condition of less than 1000 verification nodes, the maximum consensus time of blockchain is 32min, and the consortium blockchain system can support 350000-400000 sensor data, which can be applied to large-scale and multi-data agricultural product traceability.

        Key words:?consortium blockchain; agricultural product traceability; Inter-Planetary File System (IPFS); Practical Byzantine Fault Tolerance (PBFT) algorithm; transaction efficiency

        0 引言

        農(nóng)產(chǎn)品可追溯系統(tǒng)是追蹤農(nóng)產(chǎn)品從生產(chǎn)到消費(fèi)的各個(gè)階段農(nóng)產(chǎn)品質(zhì)量安全的一個(gè)整體系統(tǒng)。農(nóng)產(chǎn)品安全是維系人們生命與健康的重要因素,建立高效、可信任的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng),是促進(jìn)食品安全,保證人民健康的重要前提。

        農(nóng)產(chǎn)品追溯系統(tǒng)從一開始就受到國內(nèi)外專家的重視,早在2002年,美國國會(huì)就通過了“生物反恐法案”開始建立農(nóng)產(chǎn)品質(zhì)量安全可追溯制度[1]。 2003年5月FDA公布了《食品安全跟蹤條例》,要求所有涉及食品運(yùn)輸 、配送和進(jìn)口的企業(yè)要建立并保全相關(guān)食品流通的全過程記錄[2]。2006年,我國農(nóng)業(yè)部也正式提出建立農(nóng)產(chǎn)品質(zhì)量安全追溯體系,按照承建主體的不同產(chǎn)生了四種類型的追溯系統(tǒng):分別由政府、社會(huì)組織、企業(yè)、食品生產(chǎn)公司內(nèi)部質(zhì)量安全追溯系統(tǒng)[3]。到目前為止雖然社會(huì)各界已經(jīng)對農(nóng)產(chǎn)品質(zhì)量安全追溯的重要性達(dá)成了共識(shí),相關(guān)制度和系統(tǒng)建設(shè)也初見成效,但是在實(shí)際工作中仍然存在許多問題。

        伴隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)技術(shù)的發(fā)展,農(nóng)產(chǎn)品質(zhì)量安全追溯登上一個(gè)新的臺(tái)階,借助物聯(lián)網(wǎng)、信息采集技術(shù)、數(shù)據(jù)庫和云儲(chǔ)存等,在農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)的各個(gè)環(huán)節(jié)實(shí)現(xiàn)改進(jìn)。比如,文獻(xiàn)[4]中介紹了從制造商到消費(fèi)者的運(yùn)輸過程中實(shí)現(xiàn)食品質(zhì)量檢測的可能性,利用傳感器遠(yuǎn)程監(jiān)控系統(tǒng)結(jié)合物聯(lián)網(wǎng)技術(shù),提出了一種基于物聯(lián)網(wǎng)實(shí)時(shí)食品可追蹤和食品運(yùn)輸過程可監(jiān)測的低成本解決方案。盡管物聯(lián)網(wǎng)技術(shù)已經(jīng)足夠成熟,但是農(nóng)產(chǎn)品生產(chǎn)銷售體系涉及主體眾多,影響體系的不確定因素繁瑣,借助傳感器實(shí)時(shí)監(jiān)控資源消耗大等,導(dǎo)致質(zhì)量安全追溯體系的管理難度大、效率低,特別是數(shù)據(jù)存儲(chǔ)安全仍然面臨眾多挑戰(zhàn)和問題。于是文獻(xiàn)[5-7]中提出運(yùn)用區(qū)塊鏈分布式存儲(chǔ)技術(shù),借助區(qū)塊鏈不可逆的特性解決了在數(shù)據(jù)存儲(chǔ)階段中篡改或破壞數(shù)據(jù)的可能性。區(qū)塊鏈由比特幣的底層技術(shù)發(fā)展而來,是一種具有去中心化、可追溯性、不可篡改、公開透明、共識(shí)機(jī)制和交易匿名等特點(diǎn)的分布式存儲(chǔ)技術(shù)。 然而,與其他行業(yè)相比,區(qū)塊鏈技術(shù)用于農(nóng)產(chǎn)品質(zhì)量安全追溯對物聯(lián)網(wǎng)數(shù)據(jù)的存儲(chǔ)壓力更大。為了實(shí)現(xiàn)分布式節(jié)點(diǎn)的一致性,區(qū)塊鏈的塊生成速度和事務(wù)處理能力是有限的,因此不可能直接應(yīng)用區(qū)塊鏈技術(shù)處理和存儲(chǔ)大量的傳感器數(shù)據(jù)。為了解決存儲(chǔ)問題,文獻(xiàn)[8]-[11]中使用云計(jì)算和云存儲(chǔ)技術(shù)來提供應(yīng)用程序。正如文獻(xiàn)[12]所述,傳統(tǒng)的安全問題仍然存在于云計(jì)算環(huán)境中,甚至傳統(tǒng)的安全機(jī)制也不再適用于云中的應(yīng)用程序和數(shù)據(jù)。因此文獻(xiàn)[12]中提出了區(qū)塊鏈雙鏈結(jié)構(gòu),利用鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)存儲(chǔ)區(qū)塊鏈?zhǔn)聞?wù)散列,并與區(qū)塊鏈一起形成雙鏈存儲(chǔ),保證農(nóng)產(chǎn)品數(shù)據(jù)不會(huì)被惡意篡改或破壞。由于農(nóng)產(chǎn)品追溯涉及的標(biāo)準(zhǔn)眾多,需要對參與節(jié)點(diǎn)進(jìn)行有效的政策把控,同時(shí)隨著數(shù)據(jù)量的增大,對于區(qū)塊鏈交易的效率也需要不斷提升,完全的公鏈已經(jīng)不能滿足這些多變性需求。聯(lián)盟鏈和公鏈相比,在高可用、高性能、可編程、隱私保護(hù)方面更有優(yōu)勢,它被認(rèn)為是“部分去中心化”或者“多中心”的區(qū)塊鏈。聯(lián)盟鏈讓節(jié)點(diǎn)數(shù)得到了精簡,能夠使得系統(tǒng)的運(yùn)行效率更高、成本更低,在單位時(shí)間內(nèi)能夠確認(rèn)的交易數(shù)量要比公鏈大很多,更容易在農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)中落地。

        用于大數(shù)據(jù)記錄主要存在以下問題:1)區(qū)塊鏈共識(shí)算法引起的記錄速度問題。盡管任何人都可以自由使用比特幣的區(qū)塊鏈,但每秒只能寫入7筆是它的性能極限。2)參與節(jié)點(diǎn)數(shù)的界限性問題。即使是在以商業(yè)用途為對象的參與者限定型區(qū)塊鏈中,當(dāng)參與節(jié)點(diǎn)數(shù)超過幾十個(gè)時(shí),性能就會(huì)急劇惡化。

        為更好解決安全存儲(chǔ)和大數(shù)據(jù)存儲(chǔ)的問題,本文提出了一種基于區(qū)塊鏈技術(shù)的農(nóng)產(chǎn)品信息分布式存儲(chǔ) (Distributed-Storage Agricultural Information, DSAI)方案。該方案借助于去中心化的星際文件系統(tǒng)(Inter-Planetary File System, IPFS)來解決存儲(chǔ)瓶頸。IPFS本質(zhì)上是一種內(nèi)容可尋址、版本化、點(diǎn)對點(diǎn)超媒體的分布式存儲(chǔ)傳輸協(xié)議[13]。通過底層協(xié)議,人們能夠輕松從IPFS上提取文件,且不受防火墻的影響,在尋找內(nèi)容過程中,用戶只需要驗(yàn)證內(nèi)容的哈希,就可以實(shí)現(xiàn)內(nèi)容的訪問。IPFS哈希用來表示不可改變數(shù)據(jù),一旦數(shù)據(jù)改變,哈希值也會(huì)改變,這樣的設(shè)計(jì)充分保證了數(shù)據(jù)的不可逆。同時(shí)IPFS基本沒有存儲(chǔ)上的限制,大文件會(huì)被切分成小的分塊,下載時(shí)可以從多個(gè)服務(wù)器同時(shí)獲取,這又為農(nóng)產(chǎn)品大數(shù)據(jù)的存儲(chǔ)提供了便利。然后將產(chǎn)品固定的哈希值存入DSAI中的聯(lián)盟區(qū)塊鏈系統(tǒng),經(jīng)過全網(wǎng)共識(shí),實(shí)現(xiàn)數(shù)據(jù)的安全可追溯。

        為了解決區(qū)塊鏈共識(shí)算法引起的記錄速度和參與節(jié)點(diǎn)數(shù)的界限性問題,DSAI系統(tǒng)運(yùn)用聯(lián)盟鏈技術(shù),通過仿真實(shí)驗(yàn),合理選取有限驗(yàn)證節(jié)點(diǎn),減少區(qū)塊全網(wǎng)驗(yàn)證時(shí)間,保證數(shù)據(jù)的存儲(chǔ)時(shí)效性,減少孤塊的產(chǎn)生。

        總體來說,本文在以往農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)的研究之上,探索基于區(qū)塊鏈技術(shù)的互聯(lián)網(wǎng)溯源平臺(tái),借助物聯(lián)網(wǎng)技術(shù)的基礎(chǔ)設(shè)施,利用編碼、傳感器等基礎(chǔ)元件的應(yīng)用,最終建成一個(gè)高效率、防篡改、可信任、易管理的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)。

        1 DSAI系統(tǒng)模型

        1.1 系統(tǒng)結(jié)構(gòu)

        為了保證農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)的整體性和可行性,農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)由信息采集層、數(shù)據(jù)存儲(chǔ)層和應(yīng)用層三個(gè)模塊組成。信息采集層包含了各種物聯(lián)網(wǎng)傳感器模塊,這些模塊可以實(shí)時(shí)收集數(shù)據(jù)并將其上傳到節(jié)點(diǎn)服務(wù)器;然后由服務(wù)器將其寫入到數(shù)據(jù)存儲(chǔ)層的分布式存儲(chǔ)系統(tǒng)和區(qū)塊鏈中;應(yīng)用層與為用戶設(shè)計(jì)的基于數(shù)據(jù)系統(tǒng)服務(wù)的應(yīng)用程序相關(guān)。具體結(jié)構(gòu)如圖1所示。

        1.2 信息采集策略

        信息采集模塊主要包括溫度傳感器、濕度傳感器、GPS模塊和GPRS模塊,可以根據(jù)溫度和濕度的變化來記錄農(nóng)產(chǎn)品的生產(chǎn)環(huán)境,GPS模塊進(jìn)行農(nóng)產(chǎn)品定位和信息采集節(jié)點(diǎn)劃分。通過傳感器傳回的數(shù)據(jù)用于農(nóng)產(chǎn)品數(shù)據(jù)存儲(chǔ)時(shí)的質(zhì)量檢測,一旦發(fā)現(xiàn)不合要求,就不能進(jìn)行存儲(chǔ)與運(yùn)輸銷售。

        1.3 數(shù)據(jù)存儲(chǔ)策略

        在數(shù)據(jù)存儲(chǔ)層中,數(shù)據(jù)存儲(chǔ)基于區(qū)塊鏈和分布式存儲(chǔ)系統(tǒng),考慮到區(qū)塊鏈對傳感器大數(shù)據(jù)的輸入輸出(Input/Output, I/O)效率,本文系統(tǒng)自動(dòng)封裝節(jié)點(diǎn)服務(wù)器采集到的傳感器數(shù)據(jù)上傳至分布式存儲(chǔ)系統(tǒng),以應(yīng)對區(qū)塊鏈直接對大數(shù)據(jù)存儲(chǔ)的壓力。區(qū)塊鏈的數(shù)據(jù)存儲(chǔ)在一系列塊中,事務(wù)是數(shù)據(jù)存儲(chǔ)的載體,也就是說存入?yún)^(qū)塊鏈的數(shù)據(jù)是由一系列事務(wù)組成的,但是區(qū)塊鏈本身不能判斷這些事務(wù)的結(jié)構(gòu),因此需要自定義這些數(shù)據(jù)的標(biāo)識(shí),借助數(shù)據(jù)標(biāo)識(shí)來查詢數(shù)據(jù)。首先在全網(wǎng)公布數(shù)據(jù)標(biāo)識(shí),然后在區(qū)塊鏈共識(shí)階段設(shè)置合理的共識(shí)機(jī)制。農(nóng)產(chǎn)品質(zhì)量安全追溯與虛擬貨幣不同,其數(shù)據(jù)的多元性導(dǎo)致不能簡單地運(yùn)用工作量證明(Poof Of Work, POW)或權(quán)益證明(Poof Of Stake, POS)來實(shí)現(xiàn)共識(shí)。本文系統(tǒng)通過實(shí)用拜占庭容錯(cuò)算法實(shí)現(xiàn)共識(shí),只有得到超過51%全節(jié)點(diǎn)的共識(shí),交易才能寫入?yún)^(qū)塊鏈,具體實(shí)現(xiàn)流程如圖2所示。

        1.4 應(yīng)用層

        應(yīng)用層主要涉及農(nóng)產(chǎn)品信息數(shù)據(jù)分析、追溯客戶端的建立以及系統(tǒng)各層之間的交互。通過對農(nóng)產(chǎn)品信息數(shù)據(jù)分析,可以明確知道農(nóng)產(chǎn)品在整個(gè)供應(yīng)鏈中的易出問題環(huán)節(jié),以便采取更多措施來減少損害。通過建立追溯客戶端,可以最大限度地實(shí)現(xiàn)農(nóng)產(chǎn)品的大眾監(jiān)視度。整個(gè)追溯過程的建立,在系統(tǒng)各層之間交互地完成,系統(tǒng)算法對信息數(shù)據(jù)的精準(zhǔn)處理決定追溯系統(tǒng)的效率問題。

        2 安全高效的聯(lián)盟區(qū)塊鏈

        在農(nóng)產(chǎn)品跟蹤問題上,應(yīng)用區(qū)塊鏈現(xiàn)在面臨物聯(lián)網(wǎng)傳感器的互聯(lián)網(wǎng)數(shù)據(jù)量比傳統(tǒng)電子貨幣區(qū)塊鏈大得多,區(qū)塊和交易的生產(chǎn)速度不夠高,無法提供農(nóng)業(yè)跟蹤,可以說區(qū)塊鏈?zhǔn)且环N有限的資源。因此,當(dāng)區(qū)塊鏈與物聯(lián)網(wǎng)數(shù)據(jù)結(jié)合時(shí),必須改進(jìn)存儲(chǔ)方案以支持大量數(shù)據(jù),同時(shí)不浪費(fèi)網(wǎng)絡(luò)和存儲(chǔ)資源。因此為了確保區(qū)塊鏈存儲(chǔ)系統(tǒng)順利運(yùn)行,必須保證單筆交易足夠的小從而達(dá)到相對意義上的區(qū)塊擴(kuò)容。如圖3所示為農(nóng)產(chǎn)品質(zhì)量安全追溯組成體系及其結(jié)構(gòu)分布。

        首先各個(gè)數(shù)據(jù)節(jié)點(diǎn)對傳感器數(shù)據(jù)進(jìn)行收集,存入鏈下存儲(chǔ)系統(tǒng),本文借助于IPFS,在IPFS存儲(chǔ)系統(tǒng)中對數(shù)據(jù)進(jìn)行過濾,通過減少重復(fù)數(shù)據(jù)來實(shí)現(xiàn)第一步的數(shù)據(jù)簡化。當(dāng)數(shù)據(jù)過濾之后,將數(shù)據(jù)對象的傳感器數(shù)據(jù)封存(可以看作一個(gè)交易),然后將交易Hash廣播到區(qū)塊鏈網(wǎng)絡(luò)。具體實(shí)現(xiàn)過程如算法1所示。

        算法1? 數(shù)據(jù)檢驗(yàn)及封裝算法。

        輸入? 農(nóng)產(chǎn)品數(shù)據(jù)信息及生成Hash。

        輸出? 若信息合格,Hash存入?yún)^(qū)塊鏈;若信息不合格,重新進(jìn)行信息采集。

        程序前

        wh ile 階段傳感器數(shù)據(jù)沒有完全錄入

        do 傳感器數(shù)據(jù)監(jiān)測

        if? 傳感器數(shù)據(jù)符合要求

        then 添加入事務(wù)數(shù)據(jù)集

        else 舍棄數(shù)據(jù),檢查問題,重新錄入

        end while

        程序后

        關(guān)于區(qū)塊鏈交易量的提升主要在于提升交易速率,通過擴(kuò)容的方法需要考慮網(wǎng)絡(luò)承載能力(網(wǎng)絡(luò)帶寬和存儲(chǔ)容量是否足以支撐更大的區(qū)塊),當(dāng)容量達(dá)到上限,不能及時(shí)處理新塊數(shù)據(jù),可能導(dǎo)致數(shù)據(jù)對象在狀態(tài)發(fā)生改變時(shí),數(shù)據(jù)仍未寫入?yún)^(qū)塊鏈,從而造成巨大的交易延遲,并且孤塊率的提升使得網(wǎng)絡(luò)節(jié)點(diǎn)的不一致性加重(分叉變多),最終影響區(qū)塊鏈安全性能。

        目前區(qū)塊鏈應(yīng)用場景多種多樣,如表1所示的是四種應(yīng)用場景的區(qū)塊鏈交易數(shù)據(jù)。根據(jù)表1可以發(fā)現(xiàn),影響交易性能的四種關(guān)鍵因素分別是區(qū)塊形成間隔、公共節(jié)點(diǎn)數(shù)目、孤塊率和區(qū)塊大小,因此要設(shè)計(jì)安全高效率的區(qū)塊鏈系統(tǒng),必須從以上因素出發(fā)去考慮。

        2.1 利用聯(lián)盟鏈解決問題

        2.1.1 采用PBFT共識(shí)解決一致性問題。

        本文系統(tǒng)利用PBFT算法進(jìn)行聯(lián)盟鏈共識(shí),PBFT算法傳播示意圖如圖4所示。

        圖4中,請求節(jié)點(diǎn)為C,0、1、2、3為運(yùn)行正常的服務(wù)器,3是宕機(jī)服務(wù)器,算法執(zhí)行如下:

        1)請求階段:節(jié)點(diǎn)C向主節(jié)點(diǎn)發(fā)送請求并記為0 [14]。

        2)預(yù)準(zhǔn)備階段:C請求主節(jié)點(diǎn)服務(wù)端0后,服務(wù)端0廣播至副本節(jié)點(diǎn)1、2、3。

        3)準(zhǔn)備階段:副本節(jié)點(diǎn)1、2、3接收到廣播記錄后繼續(xù)廣播,1廣播至023, 2廣播至013,3因?yàn)殄礄C(jī)無法廣播。

        4)提交階段:節(jié)點(diǎn)0、1、2、3在準(zhǔn)備階段如果收到超過一定數(shù)量的相同請求,就會(huì)進(jìn)入提交階段,并且廣播提交請求。

        5)回應(yīng)階段:在提交階段若0、1、2、3節(jié)點(diǎn)若收到超量相同請求,則會(huì)對節(jié)點(diǎn)C反饋信息。

        具體的PBFT算法流程如算法2~4所示。

        算法2? 確定view主節(jié)點(diǎn)。

        輸入? client請求;

        輸出? 主節(jié)點(diǎn)編號(hào)。

        程序前

        view ← 0

        wh ile 通過timeout機(jī)制判斷主節(jié)點(diǎn)是faulty

        view+ +

        do 觸發(fā)view change協(xié)議選舉新的主節(jié)點(diǎn)

        P=view mod |R|

        return P

        程序后

        因?yàn)镻BFT是一種狀態(tài)機(jī)副本復(fù)制算法,所有副本在一個(gè)view中輪換操作,主節(jié)點(diǎn)通過view編號(hào)以及節(jié)點(diǎn)總個(gè)數(shù)決定。算法2中的view為視圖編號(hào),從0開始一直延續(xù)下去, | R | 為節(jié)點(diǎn)個(gè)數(shù),P為主節(jié)點(diǎn)編號(hào)。

        算法3? 3REQUEST & PRE-PREPARE過程。

        輸入? 〈REQUEST,o,t,c〉;

        輸出? 〈PRE-PREPARE,v,n,d〉。

        程序前

        if? 客戶端請求消息簽名不正確

        then 非法請求丟棄

        else 給請求分配一個(gè)編號(hào)n進(jìn)行排序

        print 〈〈PRE-PREPARE,v,n,d〉,m〉

        程序后

        客戶端client向主節(jié)點(diǎn)發(fā)送〈REQUEST,o,t,c〉請求,其中REQUEST包含消息的內(nèi)容m和消息摘要d(m),o為請求的具體操作;t為請求時(shí)client追加的時(shí)間戳;c為客戶端標(biāo)識(shí)。client對REQUEST請求進(jìn)行簽名。主節(jié)點(diǎn)在收到請求后,進(jìn)行客戶端請求消息簽名校驗(yàn),丟棄非法請求,為正確請求分配排序編號(hào)n,然后廣播〈〈PRE-PREPARE,v,n,d〉,m〉,其中v為view編號(hào),d為客戶端消息摘要,m為消息內(nèi)容?!碢RE-PREPARE,v,n,d〉進(jìn)行主節(jié)點(diǎn)簽名,n是要在某一個(gè)范圍區(qū)間內(nèi)的[h,H]。

        算法4? PREPARE過程。

        輸入? 〈PRE-PREPARE,v,n,d〉;

        輸出? 〈PREPARE,v,n,d,i〉。 程序前

        if? 主節(jié)點(diǎn)PRE-PREPARE消息簽名正確

        if? 當(dāng)前副本節(jié)點(diǎn)收到簽名不同,v和n相同的信息

        if? d=m

        if? n in [h,H]

        then print 〈PREARE,v,n,d,i〉

        else 非法請求丟棄

        else 非法請求丟棄

        else 非法請求丟棄

        程序后

        算法4主要針對副本節(jié)點(diǎn)i收到主節(jié)點(diǎn)PRE-PREPARE消息后進(jìn)行的四方面校驗(yàn):第一是判斷主節(jié)點(diǎn)消息簽名的正確性;第二是判斷當(dāng)前副本節(jié)點(diǎn)是否收到一條同一v下并且編號(hào)也是n,但是簽名不同的PRE-PREPARE信息;第三是判斷d和m的摘要是否一致;最后判斷n是否在區(qū)間[h, H]內(nèi)。若同時(shí)滿足以上判斷,副本節(jié)點(diǎn)就向其他節(jié)點(diǎn)包括主節(jié)點(diǎn)發(fā)送〈PREARE,v,n,d,i〉,其中i是當(dāng)前副本節(jié)點(diǎn)編號(hào)。〈PREARE,v,n,d,i〉進(jìn)行副本節(jié)點(diǎn)簽名。

        接下來是COMMIT階段,與上一階段相似,主節(jié)點(diǎn)和副節(jié)點(diǎn)收到PREPARE消息后,也要進(jìn)行四部分校驗(yàn):1)副本節(jié)點(diǎn)PREPARE消息簽名是否正確;2)當(dāng)前副本節(jié)點(diǎn)是否已經(jīng)收到同一view下的n;3)n是否在區(qū)間[h,H]內(nèi);4)d是否和當(dāng)前已收到PRE-PREPARE中的d相同。如果請求通過,并且副本節(jié)點(diǎn)i收到2f+1[14]個(gè)驗(yàn)證通過的PREPARE消息,則向其他節(jié)點(diǎn)發(fā)送〈COMMIT,v,n,d,i〉消息。

        最后REPLY階段,進(jìn)行類似上面算法中的四方面校驗(yàn)后,如果副本節(jié)點(diǎn)i收到了2f+1個(gè)驗(yàn)證通過的COMMIT消息,這時(shí)候當(dāng)前網(wǎng)絡(luò)中大部分節(jié)點(diǎn)已經(jīng)達(dá)成共識(shí),之后運(yùn)行client請求o,返回〈PEPLY,v,t,c,i,r〉給client,其中r是請求操作的結(jié)果。此時(shí)若客戶端收到f+1個(gè)相同的REPLY消息,說明此請求已經(jīng)達(dá)到了全網(wǎng)共識(shí)。

        2.1.2 利用聯(lián)盟鏈確保交易效率

        聯(lián)盟鏈通過選取有限驗(yàn)證節(jié)點(diǎn)來減少全網(wǎng)驗(yàn)證時(shí)間(農(nóng)產(chǎn)品數(shù)據(jù)hash寫入延遲時(shí)間),即數(shù)據(jù)發(fā)生之后,在固定時(shí)間內(nèi)必須保證寫入?yún)^(qū)塊鏈。

        區(qū)塊在聯(lián)盟鏈中被打包過程中,首先需要經(jīng)過主節(jié)點(diǎn)驗(yàn)證,驗(yàn)證通過后廣播到副本節(jié)點(diǎn),直到所有驗(yàn)證節(jié)點(diǎn)收到消息。其中驗(yàn)證節(jié)點(diǎn)數(shù)是n,單點(diǎn)帶寬是B,區(qū)塊大小為S,節(jié)點(diǎn)之間的傳播時(shí)間為ti1=kiS/B,正常節(jié)點(diǎn)發(fā)送個(gè)數(shù)為ki,節(jié)點(diǎn)編號(hào)i,區(qū)塊打包需要通過計(jì)算驗(yàn)證有效性,因此需要校驗(yàn)。因?yàn)閰^(qū)塊大小、交易數(shù)量和驗(yàn)證時(shí)間正相關(guān),故假設(shè)驗(yàn)證交易所需的時(shí)間和區(qū)塊大小成線性關(guān)系,即每個(gè)節(jié)點(diǎn)驗(yàn)證交易所需要時(shí)間約ti2=aS,其中a為比例系數(shù),因此得到由一個(gè)節(jié)點(diǎn)向其他節(jié)點(diǎn)傳播的時(shí)間遞推公式如下:

        t(n)=k1S/B+aS+max{(t(n*)}; n≥2

        (1)

        其中:t(n)表示在整個(gè)網(wǎng)絡(luò)中的n個(gè)非宕機(jī)節(jié)點(diǎn)傳播所需要的時(shí)間;t(n*)表示在共識(shí)階段節(jié)點(diǎn)間驗(yàn)證所需要的時(shí)間。如果已知節(jié)點(diǎn)之間的連接矩陣和各個(gè)節(jié)點(diǎn)的帶寬,可以由式(1)遞推得到傳播的總時(shí)間。

        為保證賬本數(shù)據(jù)一致,必須保證挖礦時(shí)間大于區(qū)塊廣播時(shí)間。設(shè)每個(gè)交易大小為S0,則聯(lián)盟鏈中交易個(gè)數(shù)為K=S/S0,每個(gè)區(qū)塊廣播完成后才可產(chǎn)生下一區(qū)塊,其中,秒級(jí)交易個(gè)數(shù)是D:

        D=K/T(n)

        (2)

        式中,T(n)表示傳播到n個(gè)節(jié)點(diǎn)所用的時(shí)間,因?yàn)閭鞑r(shí)間和區(qū)塊大小、網(wǎng)絡(luò)帶寬、節(jié)點(diǎn)個(gè)數(shù)成線性關(guān)系,設(shè)計(jì)區(qū)塊傳播時(shí)間和區(qū)塊大小、節(jié)點(diǎn)個(gè)數(shù)和網(wǎng)絡(luò)帶寬的多元線性回歸模型,假設(shè)它們之間有如下關(guān)系:

        T(2f)=β0+β1S+β2n+β3B

        (3)

        式中,β0、β1、β2通過最小二乘法擬合計(jì)算得出

        3 實(shí)驗(yàn)與分析

        3.1 實(shí)驗(yàn)環(huán)境

        為了分析PBFT性能,建立了一個(gè)由15臺(tái)運(yùn)行Linux操作系統(tǒng)的計(jì)算機(jī)仿真平臺(tái),每臺(tái)計(jì)算機(jī)參數(shù)如下:16GB內(nèi)存,i5-4590 CPU和HD Graphics 4600 顯卡,Linux系統(tǒng)版本是Ubuntu 16.04。所有計(jì)算機(jī)都在同一局域網(wǎng)中,根據(jù)Hyperledger fabric V1.1的要求配置系統(tǒng)環(huán)境,建立區(qū)塊鏈基礎(chǔ)設(shè)施網(wǎng)絡(luò)。

        [3]?呂芙蓉,陳莎.基于區(qū)塊鏈技術(shù)構(gòu)建我國農(nóng)產(chǎn)品質(zhì)量安全追溯體系的研究[J].農(nóng)村金融研究,2016(12):22-26. (LYU F R,CHEN S. Research on the construction of Chinas agricultural product quality safety traceability system based on blockchain technology [J]. Rural Finance Research, 2016(12):22-26.)

        [4]?MAKSIMOVIC M, VUJOVIC V, OMANOVIC-MIKLICANIN E. A low cost Internet of things solution for traceability and monitoring food safety during transportation [C]// Proceedings of the 7th International Conference on Information & Communication Technologies in Agriculture, Food and Environment. Kavala, Greece: Zacharoula Andreopoulou, 2015: 583-593.

        [5]?TSE DANIEL, ZHANG B, YANG Y, et al. Blockchain application in food supply information security [C]// Proceedings of the 2017 IEEE International Conference on Industrial Engineering and Engineering Management.Piscataway, NJ: IEEE, 2017: 1357-1361.

        [6]?TIAN F. A supply chain traceability system for food safety based on HACCP, blockchain & Internet of things [C]// Proceedings of the 14th IEEE International Conference on Service Systems and Service Management. Piscataway, NJ: IEEE, 2017:1-6.

        [7]?AHMED S, ten BROEK N. Food supply: blockchain could boost food security [J]. Nature, 2017, 550(7674): 43.

        [8]?FU Y, LI F. Application of internet of things to the monitoring system for food quality safety [C]// Proceedings of the 4th International Conference on Digital Manufacturing & Automation. Piscataway, NJ: IEEE, 2013:296-298.

        [9]??GAI K, CHOO K R, Zhu L. Blockchain-enabled reengineering of cloud datacenters [J]. IEEE Cloud Computing, 2018, 5(6): 21-25.

        [10]??LIANG X, SHETTY S, TOSH D, et al. ProvChain: a blockchain-based data provenance architecture in cloud environment with enhanced privacy and availability [C]// Proceedings of the 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. Piscataway, NJ: IEEE, 2017: 468-477.

        [11]?FU X, WANG H, SHI P, et al. JCLedger: a blockchain based distributed ledger for JointCloud computing [C]// Proceedings of the IEEE 37th International Conference on Distributed Computing Systems Workshops. Piscataway, NJ: IEEE, 2017:289-293.

        [12]?XIE C, SUN Y, LUO H. Secured data storage scheme based on block chain for agricultural products tracking [C]// Proceedings of the 3rd International Conference on Big Data Computing and Communications. Piscataway, NJ: IEEE, 2017:45-50.

        [13]?BENET J. IPFS — content addressed, versioned, P2P file system [J]. arXiv E-print, 2014: arXiv:1407.3561.?[EB/OL]. [2018-10-12]. https://arxiv.org/pdf/1407.3561.pdf.

        [14]?劉肖飛.基于動(dòng)態(tài)授權(quán)的拜占庭容錯(cuò)共識(shí)算法的區(qū)塊鏈性能改進(jìn)研究[D].杭州:浙江大學(xué),2017:36-38. (LIU X F. Study on performance improvement of Byzantine fault-tolerant consensus algorithm based on dynamic authorization [D]. Hangzhou: Zhejiang University, 2017: 36-38.)

        [15]?張文彤,董偉. SPSS統(tǒng)計(jì)分析高級(jí)教程[M].北京:高等教育出版社, 2013:97-121. (ZHAGN W T, DONG W. SPSS advanced course in statistical analysis [M]. Beijing: Higher Education Press, 2013: 97-121.)

        最新永久无码AV网址亚洲| 亚洲av无码av制服另类专区| 亚洲最大中文字幕无码网站| 亚洲欧洲日产国码久在线| 日韩国产自拍视频在线观看| 亚洲精品宾馆在线精品酒店| 日本乱偷人妻中文字幕在线| 日韩我不卡| 高清亚洲精品一区二区三区| 一二三区无线乱码中文在线| 国产美女在线精品免费观看| 亚洲国产麻豆综合一区| 最新日本免费一区二区三区| 麻豆文化传媒精品一区观看| 青草视频在线播放| 久久一区二区三区四区| 国产免费精品一品二区三| 99精品久久99久久久久| 亚洲精品无码av中文字幕| 无码人妻精品一区二区三区下载 | 日本一区二区三区女优在线| 人妻精品久久久久中文字幕69| 人人妻人人爽人人做夜欢视频九色 | 一二三四在线观看韩国视频| 欧美国产亚洲日韩在线二区| 亚洲日韩国产精品第一页一区| 第九色区Aⅴ天堂| 国产亚洲91精品色在线| 亚洲精品成人无码中文毛片| 黑人性受xxxx黑人xyx性爽| 亚洲一区二区三区新视频| 又硬又粗进去好爽免费| 五月天激情婷婷婷久久| 亚洲色拍拍噜噜噜最新网站| 国产av剧情久久精品久久| 国产超碰人人爽人人做人人添| 国产成人精选在线不卡| 日韩精品一区二区在线视| 在线观看av片永久免费 | 亚洲一区二区三区av链接| 日韩精品人妻一区二区三区蜜桃臀 |