• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于NDN的區(qū)塊鏈數(shù)據(jù)同步方法

      2022-12-06 10:29:42馬紅橋楊文忠
      關(guān)鍵詞:架構(gòu)區(qū)塊節(jié)點(diǎn)

      馬紅橋,楊文忠,康 鵬

      新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046

      區(qū)塊鏈技術(shù)在近年來引起了巨大的轟動(dòng),數(shù)字加密貨幣——比特幣(Bitcoin)是該技術(shù)的來源。而“比特幣”概念最早來源于2008年由“中本聰”所撰寫的文獻(xiàn):《比特幣:一種點(diǎn)對點(diǎn)的電子現(xiàn)金系統(tǒng)》[1],在其中所闡述的比特幣底層記賬系統(tǒng)即為區(qū)塊鏈技術(shù),這也是區(qū)塊鏈亦被稱作為一種“賬本”技術(shù)的原因。所以在區(qū)塊鏈技術(shù)初期,也即區(qū)塊鏈發(fā)展的第一階段是以比特幣為代表的區(qū)塊鏈1.0。久而久之,許多人將區(qū)塊鏈混淆成為比特幣,但是,比特幣只是區(qū)塊鏈技術(shù)的一種應(yīng)用,其解決了數(shù)字貨幣集中交易的問題,目的是實(shí)現(xiàn)以去中心化和絕對安全的方式追蹤金融體系下虛擬代幣的發(fā)行和流動(dòng)。此后,受到比特幣區(qū)塊鏈的啟發(fā),2013年Vitalik Buterin首次概述了以太坊[2](Ethereum)背后的概念:圖靈完備的通用區(qū)塊鏈——一種能夠被重編程用以實(shí)現(xiàn)任意復(fù)雜計(jì)算功能的單一區(qū)塊鏈[3]。之后伴隨著以太坊第一個(gè)區(qū)塊在2015年被挖出后,開啟了以Ethereum為代表的區(qū)塊鏈2.0時(shí)代。自此區(qū)塊鏈也開始脫離“區(qū)塊鏈即比特幣”的固化印象,從而以一項(xiàng)技術(shù)的身份走進(jìn)大眾視野。并且在此之后,借助以太坊的成功,區(qū)塊鏈技術(shù)受到眾多技術(shù)人員的關(guān)注,發(fā)展成為近年來最具革命性的一項(xiàng)新興技術(shù)而被廣泛應(yīng)用到各種領(lǐng)域場景中,而且在某種程度上其已發(fā)展成為從金融、工業(yè)物流到醫(yī)療保健等廣泛社會(huì)領(lǐng)域的信任基石[4]。

      然而不幸的是,現(xiàn)實(shí)世界中區(qū)塊鏈技術(shù)的應(yīng)用遇到了重大的技術(shù)挑戰(zhàn),從而阻礙了它在一些其他重要領(lǐng)域的進(jìn)一步發(fā)展,特別是考慮到系統(tǒng)的整體性能(如時(shí)間消耗),區(qū)塊鏈的技術(shù)優(yōu)勢被極大地縮小。時(shí)間性能問題可歸為區(qū)塊鏈的可擴(kuò)展性問題[5],這是因?yàn)檩^差的時(shí)間性能阻礙了更多區(qū)塊鏈節(jié)點(diǎn)的加入。其主要包含兩個(gè)方面[6],首先是區(qū)塊鏈的低吞吐量造成交易時(shí)間過長,其次是區(qū)塊鏈巨大的數(shù)據(jù)容量使得全量數(shù)據(jù)的同步時(shí)間過長。而且隨著區(qū)塊鏈技術(shù)的持續(xù)發(fā)展與應(yīng)用,不斷增加的數(shù)據(jù)容量只會(huì)使得該問題被無限地放大。

      針對上述問題,近年來的研究熱點(diǎn)都主要集中在推進(jìn)共識層中的共識算法來提高事務(wù)吞吐量,從而降低交易延遲(如文獻(xiàn)[7-11])。部分研究通過優(yōu)化數(shù)據(jù)層中的數(shù)據(jù)存儲(chǔ)進(jìn)行解決[4],如文獻(xiàn)[12]引入了一個(gè)稱為共識單元的新概念,并提出塊分配問題的解決方案來減少每個(gè)節(jié)點(diǎn)的存儲(chǔ)開銷。此外,少量文獻(xiàn)以對立的角度通過壓縮區(qū)塊的大小進(jìn)行解決,這是因?yàn)橥ㄟ^增加“塊”的大小來包含更多的交易,可以間接提高吞吐量,而“塊”的壓縮不僅可以達(dá)到同樣的效果,還可以減少存儲(chǔ)開銷,如文獻(xiàn)[13]。

      然而針對可擴(kuò)展性問題很少有研究從網(wǎng)絡(luò)層(即位于兩層之間)進(jìn)行,并且共識層和數(shù)據(jù)層的解決方案并不是最佳的解決方案。這是因?yàn)楣沧R層作為區(qū)塊鏈的核心,對共識算法的改造很容易引入安全問題,或會(huì)犧牲區(qū)塊鏈重要的去中心化屬性,而數(shù)據(jù)層的解決方法顯然如前所說,伴隨著區(qū)塊鏈技術(shù)的火熱應(yīng)用,其只是一種暫時(shí)的解決方案。

      因此在該問題現(xiàn)有的研究中,針對網(wǎng)絡(luò)層的極少研究,使其忽略了一個(gè)關(guān)鍵性問題,即無論從共識層還是數(shù)據(jù)層對該問題進(jìn)行研究,其在最終都無法避免底層的數(shù)據(jù)傳輸過程。而且通過理論分析,在區(qū)塊鏈的網(wǎng)絡(luò)層確有改進(jìn)的空間。

      這是因?yàn)楝F(xiàn)有的區(qū)塊鏈技術(shù)都是在點(diǎn)對點(diǎn)(peer-topeer,P2P)網(wǎng)絡(luò)中基于傳統(tǒng)的TCP/IP網(wǎng)絡(luò)架構(gòu),通過應(yīng)用層多播實(shí)現(xiàn)區(qū)塊數(shù)據(jù)的同步及傳輸,然而該架構(gòu)的缺陷在于不同的終端用戶對相同數(shù)據(jù)內(nèi)容的請求是獨(dú)立的,由此使得區(qū)塊鏈網(wǎng)絡(luò)中在區(qū)塊同步時(shí)會(huì)存在大量的冗余流量,從而占用較高的帶寬而導(dǎo)致了較大的數(shù)據(jù)傳輸時(shí)延[14]。

      并且如前所述,隨著區(qū)塊鏈技術(shù)的火熱以及以太坊中分布式應(yīng)用程序(decentralized applications,DApps)的流行,區(qū)塊鏈上的交易將爆發(fā)式增長,因此伴隨著時(shí)間的推移,必將會(huì)使整個(gè)區(qū)塊鏈的數(shù)據(jù)容量越來越大(目前,比特幣網(wǎng)絡(luò)完整的賬本數(shù)據(jù)容量占用高達(dá)200 GB,并且這個(gè)數(shù)字在以每天約0.1 GB的速度不斷增加[15]),由此對區(qū)塊鏈節(jié)點(diǎn)的硬件存儲(chǔ)及數(shù)據(jù)同步時(shí)間提出更高的要求,特別是時(shí)間要求(在網(wǎng)絡(luò)環(huán)境優(yōu)良前提下,首次啟動(dòng)時(shí)可能需要幾天時(shí)間才能完全同步[3],而且預(yù)測后續(xù)會(huì)更久,且無上限)。時(shí)間的寶貴性使得眾多用戶無法接受漫長的等待,從而放棄加入?yún)^(qū)塊鏈網(wǎng)絡(luò),由此導(dǎo)致前述的節(jié)點(diǎn)擴(kuò)展性問題。這是一個(gè)關(guān)鍵性問題,因?yàn)樵趨^(qū)塊鏈網(wǎng)絡(luò)中少量的節(jié)點(diǎn)不能為對應(yīng)場景下的區(qū)塊鏈提供可靠的權(quán)威性,從而失去了原有區(qū)塊鏈的應(yīng)用意義。以報(bào)紙銷量為例:由不同媒體機(jī)構(gòu)在同一天發(fā)行的不同報(bào)紙中,某一媒體發(fā)行的報(bào)紙其銷量越高,則說明該媒體發(fā)行的報(bào)紙受到眾多讀者的認(rèn)可,而讀者越多則表明其包含的新聞內(nèi)容更加權(quán)威可信,反觀銷量慘淡的媒體,說明其新聞內(nèi)容,或有不同程度的問題存在,長期下去該媒體機(jī)構(gòu)便不再具有存在的意義。將其映射到區(qū)塊鏈環(huán)境中,可以將某一媒體機(jī)構(gòu)發(fā)行的所有報(bào)紙理解為完整的區(qū)塊鏈賬本,每一天的報(bào)紙(即區(qū)塊)記錄每一天的新聞內(nèi)容(即交易),而銷量反映出的讀者量為加入?yún)^(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)。因此前述節(jié)點(diǎn)的可擴(kuò)展性,其重要性不言而喻。

      命名數(shù)據(jù)網(wǎng)絡(luò)[16-17](NDN)是由美國國家科學(xué)基金會(huì)于2010年所發(fā)起的未來網(wǎng)絡(luò)架構(gòu)研究方案之一,該方案的主旨為開發(fā)下一代新型網(wǎng)絡(luò)架構(gòu),并取代現(xiàn)有的TCP架構(gòu)[18]。而NDN由于其自適應(yīng)轉(zhuǎn)發(fā)、網(wǎng)內(nèi)存儲(chǔ)及本地多播的優(yōu)勢,使其在眾多方案中脫穎而出,并已成為構(gòu)建未來新型互聯(lián)網(wǎng)體系結(jié)構(gòu)中最具希望的候選者[19],同時(shí)其也已被引入為互聯(lián)網(wǎng)新型的網(wǎng)絡(luò)通信范式[20]。通過對其深入地分析與研究,其自有的自適應(yīng)轉(zhuǎn)發(fā)正好可以有效解決上述區(qū)塊鏈技術(shù)中數(shù)據(jù)內(nèi)容請求獨(dú)立的問題,同時(shí)NDN網(wǎng)內(nèi)存儲(chǔ)及其本地多播優(yōu)勢可以進(jìn)一步優(yōu)化區(qū)塊鏈網(wǎng)絡(luò)中數(shù)據(jù)同步的傳輸效率問題。由此NDN與區(qū)塊鏈融合的技術(shù)研究吸引了眾多的學(xué)者[21]。

      此外NDN打破傳統(tǒng)TCP架構(gòu)原有以主機(jī)為中心的通信模式(數(shù)據(jù)的獲取必須事先獲取數(shù)據(jù)宿主的IP地址),轉(zhuǎn)變?yōu)橐詢?nèi)容為中心的通信模式,使得其只關(guān)注內(nèi)容,這在某種程度上和區(qū)塊鏈的技術(shù)表現(xiàn)相符合,即隱藏交易各方的信息,但卻公開透明交易的內(nèi)容,從而凸顯出二者天然的契合性,進(jìn)一步說明NDN有可能成為區(qū)塊鏈一種新型的底層網(wǎng)絡(luò)架構(gòu)。由此擴(kuò)大了基于NDN的區(qū)塊鏈網(wǎng)絡(luò)層的研究。

      在文獻(xiàn)[22]中,作者提出了BlockNDN,一種在NDN網(wǎng)絡(luò)上構(gòu)建區(qū)塊鏈的方案,旨在改善IP制度下區(qū)塊鏈的單點(diǎn)故障和不利于多播的問題,減少傳播延遲和數(shù)據(jù)傳輸開銷。文獻(xiàn)[23]中的作者提出了一種基于NDN的分布式點(diǎn)對點(diǎn)網(wǎng)絡(luò)層,用于區(qū)塊鏈數(shù)據(jù)傳輸。文獻(xiàn)[24]中的作者通過提出DIBN來解決由于流量與P2P上層網(wǎng)絡(luò)中底層網(wǎng)絡(luò)拓?fù)洳黄ヅ涠鴮?dǎo)致大量冗余流量的問題。

      然而這些研究雖探索了NDN與區(qū)塊鏈的初步融合并取得了一些成果,但它們?nèi)匀淮嬖谝恍﹩栴}。如這些方法通過選擇志愿者或種子節(jié)點(diǎn)來執(zhí)行相應(yīng)的功能,這在某種程度上增加了集中化,顯然與區(qū)塊鏈的去中心化設(shè)計(jì)原則相背離。此外,由于區(qū)塊鏈節(jié)點(diǎn)隨機(jī)生成區(qū)塊,因此在生成區(qū)塊之前,這些方法需通過特定的命名機(jī)制向網(wǎng)絡(luò)不斷地廣播興趣請求包來完成同步,由此產(chǎn)生了部分冗余流量,消耗了部分帶寬。

      因此基于以上分析,本文創(chuàng)新性提出一種“NDN+區(qū)塊鏈”的結(jié)構(gòu),旨在解決現(xiàn)有研究中所存在的問題,以期高效實(shí)現(xiàn)區(qū)塊鏈底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施從TCP架構(gòu)到NDN架構(gòu)的初步轉(zhuǎn)變,從而進(jìn)一步解決區(qū)塊鏈技術(shù)的自身限制問題。

      1 區(qū)塊鏈和命名數(shù)據(jù)網(wǎng)絡(luò)

      1.1 區(qū)塊鏈

      首先從數(shù)據(jù)結(jié)構(gòu)角度理解區(qū)塊鏈。類似于其名稱定義,區(qū)塊鏈?zhǔn)且环N“鏈”式結(jié)構(gòu),由基于密碼學(xué)方法生成的一系列數(shù)據(jù)塊組成,每個(gè)數(shù)據(jù)塊都是塊鏈中的一個(gè)塊,塊根據(jù)它們的創(chuàng)建順序有序地迭代鏈接在一起,數(shù)據(jù)鏈的鏈接指針為區(qū)塊頭中的哈希值,該哈??梢晕ㄒ粯?biāo)識一個(gè)區(qū)塊。由此,通過鏈接到其父塊的哈希,可以創(chuàng)建從最新塊到第一個(gè)塊(創(chuàng)世塊)的單向鏈表,從而形成所有塊的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),如圖1所示。

      圖1 區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)Fig.1 Blockchain data structure

      其次,區(qū)塊鏈?zhǔn)且环N數(shù)字系統(tǒng),其主要功能是記錄并存儲(chǔ)信息,其中最常見的信息是涉及金融的轉(zhuǎn)賬交易信息,同時(shí)區(qū)塊鏈還支持對交易信息進(jìn)行回溯審計(jì),因此,從功能角度講區(qū)塊鏈實(shí)質(zhì)為一個(gè)數(shù)據(jù)庫系統(tǒng),然而其與傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)并不相似,這是因?yàn)榻灰仔畔⒌挠涗浭怯蓞^(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點(diǎn)共同維護(hù)更新的,而存儲(chǔ)是在網(wǎng)絡(luò)中的可用節(jié)點(diǎn)之間分布式共享存儲(chǔ)的,顯然這與傳統(tǒng)數(shù)據(jù)庫的中央數(shù)據(jù)存儲(chǔ)方式存在巨大的差異。因此可以將區(qū)塊鏈形式化理解為一個(gè)特殊的數(shù)據(jù)庫系統(tǒng)。以Bitcoin為例,圖2為區(qū)塊鏈交易處理過程,該過程也正是其特殊性的表現(xiàn)。其主要過程可以概述[25]為:

      圖2 區(qū)塊鏈交易處理Fig.2 Blockchain transaction processing

      任意用戶發(fā)起一筆轉(zhuǎn)賬交易,在簽名加密后被發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中等待驗(yàn)證。驗(yàn)證由礦工節(jié)點(diǎn)負(fù)責(zé),區(qū)塊鏈網(wǎng)絡(luò)中所有的礦工都執(zhí)行同樣的驗(yàn)證檢查,一旦交易有效,該交易將成為候選新區(qū)塊的一部分(每個(gè)礦工都有自己的候選塊),而這也意味著它尚未成為區(qū)塊鏈的一部分。在區(qū)塊鏈中所有節(jié)點(diǎn)都是對等節(jié)點(diǎn)(無主從關(guān)系),從而具有同等權(quán)利向區(qū)塊鏈提交并合并自己的候選區(qū)塊,為了確定應(yīng)該合并哪個(gè)節(jié)點(diǎn)的候選區(qū)塊以避免出現(xiàn)混亂,礦工必須提供工作量證明(proof of work,PoW),這一過程也被稱作是共識(consensus),即在去中心化的區(qū)塊鏈網(wǎng)絡(luò)環(huán)境中選擇出唯一一個(gè)最大概率不會(huì)對網(wǎng)絡(luò)造成損害的節(jié)點(diǎn)進(jìn)行記賬。第一個(gè)解決PoW難題的礦工在將候選區(qū)塊合并到本地區(qū)塊鏈后會(huì)將其廣播給其他的礦工節(jié)點(diǎn),其他礦工節(jié)點(diǎn)驗(yàn)證該區(qū)塊PoW解決方案的正確性,驗(yàn)證成功后該候選區(qū)塊的所屬者即第一個(gè)解決PoW難題的礦工會(huì)獲得固定的“獎(jiǎng)勵(lì)”,同時(shí)該候選新區(qū)塊也將合并到自己的本地區(qū)塊鏈中。從這一刻起,剩余的礦工節(jié)點(diǎn)將停止解決當(dāng)前候選區(qū)塊的工作量證明,并開始處理下一個(gè)區(qū)塊,此工作流一遍又一遍地重復(fù)。

      1.1.1 區(qū)塊鏈節(jié)點(diǎn)

      在區(qū)塊鏈網(wǎng)絡(luò)中,客戶端幫助每個(gè)參與者接入?yún)^(qū)塊鏈網(wǎng)絡(luò)從而成為一個(gè)區(qū)塊鏈節(jié)點(diǎn),其客戶端通常為運(yùn)行區(qū)塊鏈協(xié)議并存儲(chǔ)交易歷史記錄的眾多應(yīng)用軟件之一(如Geth)。然而區(qū)塊鏈的去中心化設(shè)計(jì),使得區(qū)塊鏈節(jié)點(diǎn)成為可能執(zhí)行不同功能的通信節(jié)點(diǎn),因此在區(qū)塊鏈網(wǎng)絡(luò)中存在不同類型的區(qū)塊鏈節(jié)點(diǎn),如主要的兩類節(jié)點(diǎn):全節(jié)點(diǎn)(full node)與輕節(jié)點(diǎn)(light node)或簡單支付驗(yàn)證節(jié)點(diǎn)(simple payment verification,SPV)。

      全節(jié)點(diǎn)充當(dāng)區(qū)塊鏈網(wǎng)絡(luò)中的服務(wù)器,其主要任務(wù)是維護(hù)其他節(jié)點(diǎn)之間的共識和交易驗(yàn)證,此外它還存儲(chǔ)完整的區(qū)塊鏈歷史副本,由此可以完成對所有交易的權(quán)威驗(yàn)證,而這也是區(qū)塊鏈最為安全的驗(yàn)證方法[26]。但自然地,其給用戶帶來了硬盤空間及時(shí)間的高要求,因?yàn)殡S著時(shí)間的推移,交易的累積使得區(qū)塊鏈的數(shù)據(jù)容量越來越大,所以新加入的節(jié)點(diǎn)要想下載完整的區(qū)塊鏈歷史副本從而快速地加入?yún)^(qū)塊鏈網(wǎng)絡(luò)并不是一件容易的事情,即便是在網(wǎng)絡(luò)環(huán)境優(yōu)良的條件下也較困難。相比之下輕節(jié)點(diǎn)便不再有此類問題,其是日常加密操作中使用的另一種類型的區(qū)塊鏈節(jié)點(diǎn),這些類型的節(jié)點(diǎn)與區(qū)塊鏈通信,并依靠完整節(jié)點(diǎn)為其提供必要的信息,以便與網(wǎng)絡(luò)的當(dāng)前狀態(tài)同步并能夠參與其中,也即其只能發(fā)送交易。但由于它們不存儲(chǔ)鏈的副本,所以它們僅可查詢最后一個(gè)塊的當(dāng)前狀態(tài),并廣播事務(wù)以進(jìn)行處理。很顯然,為了方便輕節(jié)點(diǎn)不需要很多資源,這導(dǎo)致其犧牲了安全性。所以全節(jié)點(diǎn)的重要性不言而喻,而其也是在區(qū)塊鏈上執(zhí)行最重要任務(wù)的唯一節(jié)點(diǎn)類型,如挖礦任務(wù)。

      1.1.2 區(qū)塊鏈礦工任務(wù)

      以Bitcoin為例,一旦節(jié)點(diǎn)連接到比特幣網(wǎng)絡(luò),比特幣礦工就會(huì)執(zhí)行以下幾項(xiàng)任務(wù):

      (1)與網(wǎng)絡(luò)同步:一旦新節(jié)點(diǎn)加入比特幣網(wǎng)絡(luò),它就會(huì)通過其他節(jié)點(diǎn)來請求下載完整的區(qū)塊鏈歷史副本。

      (2)交易驗(yàn)證:全節(jié)點(diǎn)驗(yàn)證區(qū)塊鏈網(wǎng)絡(luò)中廣播的交易簽名及其輸出,避免轉(zhuǎn)賬人余額不足出現(xiàn)問題。

      (3)區(qū)塊驗(yàn)證:礦工和全節(jié)點(diǎn)可以根據(jù)某些規(guī)則評估它們收到的區(qū)塊來驗(yàn)證它。這包括驗(yàn)證區(qū)塊中的每筆交易及隨機(jī)數(shù)值(區(qū)塊頭中的Nonce值)的正確性。

      (4)創(chuàng)建新區(qū)塊:礦工在驗(yàn)證完成之后,將這些交易打包,從而發(fā)布一個(gè)新區(qū)塊。打包的交易越多其在之后收到的“獎(jiǎng)勵(lì)”越多。

      (5)執(zhí)行PoW:此任務(wù)是挖礦過程的核心,需要礦工通過計(jì)算哈希難題來挖出一個(gè)有效的區(qū)塊。該難題的原理為,礦工需要反復(fù)改變隨機(jī)數(shù),來計(jì)算出區(qū)塊頭中包含的一個(gè)32位哈希隨機(jī)數(shù),直到生成的哈希隨機(jī)數(shù)小于預(yù)定的目標(biāo)。

      (6)獲取獎(jiǎng)勵(lì):一旦礦工解決了哈希難題(PoW),它將新區(qū)塊附加到本地鏈上,并將解決方案傳播到網(wǎng)絡(luò),其他節(jié)點(diǎn)驗(yàn)證解決方案的正確性,然后礦工獲得固定的“獎(jiǎng)勵(lì)”。

      1.2 命名數(shù)據(jù)網(wǎng)絡(luò)

      命名數(shù)據(jù)網(wǎng)絡(luò)的優(yōu)勢使其在近年來受到了眾多未來互聯(lián)網(wǎng)研究學(xué)者的青睞。如圖3所示,NDN與傳統(tǒng)TCP網(wǎng)絡(luò)架構(gòu)的關(guān)鍵區(qū)別在于NDN是以內(nèi)容為中心的新型通信模式,而不再是TCP網(wǎng)絡(luò)架構(gòu)以主機(jī)為中心的通信模式[27]。具體來說,在TCP網(wǎng)絡(luò)中,要想獲取所需的內(nèi)容數(shù)據(jù),需首先明確內(nèi)容數(shù)據(jù)所在的IP地址,而且數(shù)據(jù)的檢索范圍全部局限于該已知IP地址服務(wù)器中所存儲(chǔ)的數(shù)據(jù);而在NDN中,所有的數(shù)據(jù)內(nèi)容都是通過唯一的名稱進(jìn)行標(biāo)識,該名稱遵循預(yù)定的命名規(guī)則具備人類可讀性。如2022年新疆大學(xué)招生宣傳片可以表示為/xju.edu.cn/videos/recruit.mpg/2022/。而網(wǎng)絡(luò)用戶在檢索數(shù)據(jù)內(nèi)容時(shí)也可按照命名規(guī)則,輸入帶有語義信息的名稱在全網(wǎng)范圍內(nèi)檢索內(nèi)容數(shù)據(jù),如檢索新疆大學(xué)2021年的招生宣傳片可以表示為/xju.edu.cn/videos/recruit.mpg/2021/。需指出的是檢索范圍是在全網(wǎng)范圍,不再關(guān)心數(shù)據(jù)服務(wù)器的位置。

      圖3 TCP網(wǎng)絡(luò)與NDN網(wǎng)絡(luò)體系架構(gòu)Fig.3 TCP network and NDN network architecture

      1.2.1 NDN通信組件

      NDN的通信可以分為興趣請求包(interest packet)發(fā)出和內(nèi)容數(shù)據(jù)包(content packet)傳回兩個(gè)過程,兩種數(shù)據(jù)包中攜帶所檢索內(nèi)容數(shù)據(jù)的名稱,并且整個(gè)NDN通信過程都是基于這兩種網(wǎng)絡(luò)數(shù)據(jù)包在運(yùn)行。在整個(gè)通信過程中每個(gè)NDN節(jié)點(diǎn)都會(huì)在本地維護(hù)更新三個(gè)信息表[28]:內(nèi)容緩存庫(content store,CS)、待轉(zhuǎn)發(fā)興趣請求表(pending interest table,PIT)、轉(zhuǎn)發(fā)信息表(forwarding information base,F(xiàn)IB)。

      (1)CS:對接收到的內(nèi)容數(shù)據(jù)短時(shí)間緩存,以響應(yīng)(也稱作被滿足)后續(xù)到達(dá)的相同內(nèi)容數(shù)據(jù)的興趣請求包,因此興趣請求包可以被內(nèi)容生產(chǎn)者或NDN中間節(jié)點(diǎn)的內(nèi)容緩存滿足,也即在NDN網(wǎng)絡(luò)中,數(shù)據(jù)宿主可以為內(nèi)容生產(chǎn)者或是多個(gè)NDN中間節(jié)點(diǎn),因而相較于傳統(tǒng)的TCP/IP網(wǎng)絡(luò)中單一的服務(wù)器數(shù)據(jù)宿主,NDN網(wǎng)絡(luò)的數(shù)據(jù)共享更加高效,并且中間節(jié)點(diǎn)的內(nèi)容緩存使得興趣請求包可以快速地被響應(yīng),一定程度上對網(wǎng)絡(luò)帶寬進(jìn)行了優(yōu)化,同時(shí)縮短了通信時(shí)延,進(jìn)而可以有效地提升數(shù)據(jù)的傳輸效率。

      (2)PIT:存儲(chǔ)所有未被滿足的興趣請求包,也即等待被響應(yīng)后傳回對應(yīng)內(nèi)容數(shù)據(jù)包的興趣請求包。在該信息表中會(huì)根據(jù)興趣請求包所包含的內(nèi)容名稱進(jìn)行匯聚。如果有多個(gè)相同的內(nèi)容數(shù)據(jù)請求,則只會(huì)轉(zhuǎn)發(fā)一個(gè)請求包,剩余以及后續(xù)到達(dá)的相同內(nèi)容數(shù)據(jù)的請求包會(huì)被匯聚到該表中,用端口號(NDN中用Face表示)標(biāo)識不同的主機(jī)請求。如果被轉(zhuǎn)發(fā)的興趣請求包被滿足而傳回對應(yīng)的內(nèi)容數(shù)據(jù),則該內(nèi)容數(shù)據(jù)會(huì)根據(jù)表中匯聚的端口號同時(shí)多路徑地傳回,這一轉(zhuǎn)發(fā)機(jī)制使得NDN天然支持多播轉(zhuǎn)發(fā)。

      (3)FIB:類似于TCP/IP網(wǎng)絡(luò)中的路由信息表,不同的是FIB中是對內(nèi)容名稱的路由轉(zhuǎn)發(fā)信息,而非數(shù)值型的IP地址。

      1.2.2 NDN路由轉(zhuǎn)發(fā)

      如圖4所示為NDN對兩種數(shù)據(jù)包(興趣請求包、內(nèi)容數(shù)據(jù)包)的路由轉(zhuǎn)發(fā)流程。當(dāng)NDN中間節(jié)點(diǎn)收到興趣請求包后,將根據(jù)興趣請求包中的內(nèi)容名稱以不同的匹配方式在CS、PIT、FIB三個(gè)組件中依次進(jìn)行查詢,也正是由于對三個(gè)組件的查詢使得NDN具備網(wǎng)內(nèi)存儲(chǔ)、本地多播、自適應(yīng)轉(zhuǎn)發(fā)的優(yōu)勢。

      圖4 NDN網(wǎng)絡(luò)數(shù)據(jù)包路由轉(zhuǎn)發(fā)流程Fig.4 NDN network packet routing forwarding process

      興趣請求包到達(dá)后,首先在CS中對請求的內(nèi)容數(shù)據(jù)通過名稱以精準(zhǔn)匹配的方式進(jìn)行查詢,如果存在,則直接傳回CS中對應(yīng)的緩存內(nèi)容并丟棄該已被滿足的興趣請求不再進(jìn)行轉(zhuǎn)發(fā),緩存內(nèi)容的傳回路徑為興趣請求包傳入的反向?qū)ΨQ路徑。如果CS中不存在則在PIT中查詢。如PIT中存在匹配條目,則表明早前收到過同樣的興趣請求包,正在等待被滿足,則需要把該興趣請求包的傳入接口添加到PIT對應(yīng)的Face請求列表中,等待被滿足響應(yīng),同時(shí)丟棄該興趣請求包。如果PIT中無命中項(xiàng),則說明該興趣請求中的內(nèi)容名稱是第一次被請求,則在PIT中新增一條記錄條目后查詢FIB,記錄內(nèi)容為興趣請求包中的內(nèi)容名稱和該興趣請求包傳入的Face標(biāo)識號。如在FIB中查詢到對應(yīng)的內(nèi)容名稱條目,則表明當(dāng)前節(jié)點(diǎn)可以處理該興趣請求,這時(shí)將根據(jù)FIB對應(yīng)表目的Face列表轉(zhuǎn)發(fā)該興趣請求包,否則表明當(dāng)前節(jié)點(diǎn)無法處理該興趣請求包,于是將其丟棄。

      相比之下內(nèi)容數(shù)據(jù)包的路由處理則較為簡易,其傳輸路徑即為興趣請求包的傳輸路徑,只是二者的方向相反[29]。此外內(nèi)容數(shù)據(jù)包在傳輸過程中會(huì)被存儲(chǔ)在CS中,以快速滿足后續(xù)相同的內(nèi)容請求。

      2 基于NDN的區(qū)塊鏈數(shù)據(jù)同步

      2.1 問題引述

      隨著區(qū)塊鏈技術(shù)發(fā)展得火熱,基于區(qū)塊鏈技術(shù)的應(yīng)用受到了空前的關(guān)注,由此區(qū)塊鏈上的交易也隨之增多,從而間接造成了區(qū)塊鏈的數(shù)據(jù)容量越來越大。因?yàn)楣沧R機(jī)制及區(qū)塊鏈的冗余備份,區(qū)塊鏈網(wǎng)絡(luò)要求共識節(jié)點(diǎn)需保存全量的區(qū)塊數(shù)據(jù),而同步大量的數(shù)據(jù)是非常消耗時(shí)間的,同時(shí)也相當(dāng)耗費(fèi)帶寬資源,容易造成網(wǎng)絡(luò)擁堵問題,一定程度上降低了用戶體驗(yàn)度。特別是新加入的節(jié)點(diǎn),要想短時(shí)間內(nèi)同步完所有數(shù)據(jù)從而快速地進(jìn)入工作狀態(tài)是很難完成的,這使得用戶無心加入?yún)^(qū)塊鏈網(wǎng)絡(luò),導(dǎo)致了節(jié)點(diǎn)可擴(kuò)展性問題。因此為使區(qū)塊鏈任意節(jié)點(diǎn)可以快速加入系統(tǒng)提升用戶體驗(yàn)度,并高效穩(wěn)定地工作,需提供一種技術(shù)方法,而該方法的設(shè)計(jì)目的在于其可以有效解決上述數(shù)據(jù)同步的問題,極大地減小待同步節(jié)點(diǎn)的數(shù)據(jù)壓力。

      2.2 NDN區(qū)塊鏈架構(gòu)

      現(xiàn)有的區(qū)塊鏈技術(shù)其底層網(wǎng)絡(luò)大多都是在P2P中基于傳統(tǒng)的TCP網(wǎng)絡(luò)架構(gòu)通過應(yīng)用層多播進(jìn)行傳輸,這使得不同終端節(jié)點(diǎn)對于同一個(gè)數(shù)據(jù)內(nèi)容的請求相互獨(dú)立,由此使得網(wǎng)絡(luò)帶寬被大量的冗余流量占據(jù),從而導(dǎo)致較高的數(shù)據(jù)傳輸時(shí)延,也即2.1節(jié)所描述的問題。因此問題的解決,其關(guān)鍵在于改變底層網(wǎng)絡(luò)架構(gòu),而該新型網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)應(yīng)可以消除同一內(nèi)容數(shù)據(jù)請求的獨(dú)立性。

      如1.2節(jié)所述下一代新型網(wǎng)絡(luò)體系架構(gòu)命名數(shù)據(jù)網(wǎng)絡(luò)正具有此方面的優(yōu)勢,其借助自身的三個(gè)關(guān)鍵組件(CS、PIT、FIB),實(shí)現(xiàn)同一數(shù)據(jù)內(nèi)容請求的高效多播轉(zhuǎn)發(fā),可極大滿足上述問題需求。并且由于NDN其關(guān)注點(diǎn)在內(nèi)容本身而非類似于TCP的主機(jī)IP地址,這在某種程度上和區(qū)塊鏈的設(shè)計(jì)思想相符合,即將交易方的信息隱藏,但卻公開透明交易中的內(nèi)容。由此本文提出基于NDN的區(qū)塊鏈數(shù)據(jù)同步方法,將NDN與區(qū)塊鏈技術(shù)結(jié)合,利用NDN網(wǎng)內(nèi)緩存及本機(jī)多播優(yōu)勢有效解決上述區(qū)塊數(shù)據(jù)同步的效率問題。如圖5所示為所提方法實(shí)施的部署架構(gòu)圖,在區(qū)塊鏈節(jié)點(diǎn)同一主機(jī)上部署對等的NDN節(jié)點(diǎn)構(gòu)成NDN對等體,每個(gè)NDN對等體通過在本機(jī)上運(yùn)行的NDN轉(zhuǎn)發(fā)守護(hù)進(jìn)程(NDN forwarding daemon,NFD)接入至一個(gè)公開的或局部的NDN網(wǎng)絡(luò),客戶端通過本地NFD發(fā)送和接收NDN數(shù)據(jù)包。圖5中區(qū)塊鏈節(jié)點(diǎn)身份可以為數(shù)據(jù)落后的非實(shí)時(shí)節(jié)點(diǎn)即待同步節(jié)點(diǎn),或是擁有最新狀態(tài)數(shù)據(jù)的實(shí)時(shí)節(jié)點(diǎn)。

      圖5 NDN區(qū)塊鏈架構(gòu)Fig.5 NDN-blockchain architecture

      2.3 NDN區(qū)塊命名

      由于NDN以不同的通信范式使得網(wǎng)絡(luò)只關(guān)注“是什么”(數(shù)據(jù))而非“在哪里”(IP地址),因此在NDN中數(shù)據(jù)是第一位的,即以名稱標(biāo)識的內(nèi)容為核心,所以名稱是NDN通信的關(guān)鍵,然而NDN的數(shù)據(jù)命名并不是普通意義的在眾多數(shù)據(jù)中標(biāo)明出確定唯一的數(shù)據(jù),而是需要遵循預(yù)定的規(guī)則,因此將區(qū)塊鏈與NDN結(jié)合的關(guān)鍵在于如何定義命名規(guī)則。根據(jù)NDN類URL的層次化命名機(jī)制及不同的應(yīng)用場景,本文的命名規(guī)則分為最新狀態(tài)興趣請求和區(qū)塊同步興趣請求兩類,如圖6所示。

      圖6 NDN區(qū)塊鏈命名Fig.6 NDN-blockchain name

      兩類不同的命名方式均包含兩個(gè)部分,第一部分遵照NDN既定的命名原則,屬于全球可路由的內(nèi)部結(jié)構(gòu)名稱,是固定的,也即為NDN區(qū)塊鏈進(jìn)行區(qū)塊同步時(shí)的專有名稱。第二部分為NDN的命名慣例,是由用戶自主定義的,但需遵從NDN的命名規(guī)范,如為避免錯(cuò)誤該名稱內(nèi)容應(yīng)唯一地標(biāo)識一個(gè)內(nèi)容數(shù)據(jù),同時(shí)為便于檢索應(yīng)具備人類可讀性。因此區(qū)塊號可以作為本部分內(nèi)容。其中圖6(a)用于節(jié)點(diǎn)的狀態(tài)請求,通過該請求,節(jié)點(diǎn)可以獲悉當(dāng)前區(qū)塊鏈網(wǎng)絡(luò)的最新狀態(tài),從而可以以最新狀態(tài)為依據(jù)通過圖6(b)的名稱完成區(qū)塊同步,具體的同步過程在2.4節(jié)闡述。

      需說明指出的是兩類興趣請求名稱中所包含的區(qū)塊號含義是不同的。在最新狀態(tài)興趣請求中,區(qū)塊號是節(jié)點(diǎn)現(xiàn)有最高區(qū)塊的區(qū)塊號,實(shí)時(shí)區(qū)塊鏈節(jié)點(diǎn)利用自身的最高區(qū)塊號與該區(qū)塊號進(jìn)行比較,即可知曉待同步節(jié)點(diǎn)需要哪些區(qū)塊,從而實(shí)現(xiàn)區(qū)塊增量更新。而在區(qū)塊同步興趣請求中,區(qū)塊號是節(jié)點(diǎn)所缺區(qū)塊的區(qū)塊號,實(shí)時(shí)節(jié)點(diǎn)響應(yīng)區(qū)塊同步興趣請求后傳回對應(yīng)的區(qū)塊數(shù)據(jù)。

      2.4 NDN區(qū)塊同步方法

      如圖7所示為NDN區(qū)塊鏈數(shù)據(jù)同步的邏輯結(jié)構(gòu)圖,其包含以下步驟:

      圖7 NDN區(qū)塊鏈數(shù)據(jù)同步流程Fig.7 NDN-blockchain data synchronization process

      區(qū)塊鏈待同步數(shù)據(jù)節(jié)點(diǎn)(新加入或宕機(jī)原因重新進(jìn)入網(wǎng)絡(luò)的節(jié)點(diǎn))發(fā)現(xiàn)自己已經(jīng)落后于實(shí)時(shí)區(qū)塊鏈節(jié)點(diǎn),需要進(jìn)行數(shù)據(jù)同步,其中由于宕機(jī)節(jié)點(diǎn)本地已存有部分?jǐn)?shù)據(jù),所以只需增量同步。

      因?yàn)榇焦?jié)點(diǎn)并不知道當(dāng)前區(qū)塊鏈的最新數(shù)據(jù)狀態(tài),所以待同步節(jié)點(diǎn)需首先向NDN網(wǎng)絡(luò)發(fā)起最新狀態(tài)興趣請求,該請求攜帶本節(jié)點(diǎn)最高區(qū)塊號,以向網(wǎng)絡(luò)通告自己當(dāng)前的不完整狀態(tài),如“/eth/blocklateststate/1”。

      NDN任意網(wǎng)絡(luò)節(jié)點(diǎn)收到最新狀態(tài)興趣請求之后,在本地區(qū)塊數(shù)據(jù)中進(jìn)行比較,如果本地最高區(qū)塊號大于收到的區(qū)塊號,則說明該節(jié)點(diǎn)數(shù)據(jù)狀態(tài)較新,并傳回最高區(qū)塊號信息,也即傳回最新區(qū)塊狀態(tài)信息。節(jié)點(diǎn)收到返回的最高區(qū)塊號信息后,以該狀態(tài)為依據(jù)向全網(wǎng)發(fā)起所缺區(qū)塊的區(qū)塊同步興趣請求,最終完成數(shù)據(jù)的同步更新。

      如果最高本地區(qū)塊號不大于收到的區(qū)塊號,則該任意NDN網(wǎng)絡(luò)節(jié)點(diǎn)非實(shí)時(shí)區(qū)塊鏈節(jié)點(diǎn),從而變?yōu)榇焦?jié)點(diǎn)執(zhí)行上述同樣的區(qū)塊同步步驟,實(shí)現(xiàn)增量同步,而原先的最新狀態(tài)興趣請求會(huì)被其他實(shí)時(shí)區(qū)塊鏈節(jié)點(diǎn)滿足后執(zhí)行對應(yīng)的步驟。

      需指出的是,由于NDN網(wǎng)絡(luò)具有網(wǎng)內(nèi)存儲(chǔ)功能,即NDN中間節(jié)點(diǎn)會(huì)存儲(chǔ)同步過程中傳回的區(qū)塊數(shù)據(jù),同時(shí)當(dāng)中間節(jié)點(diǎn)滿足區(qū)塊同步興趣請求時(shí),可直接將中間節(jié)點(diǎn)緩存的區(qū)塊數(shù)據(jù)傳回,再無需傳輸區(qū)塊同步興趣請求至實(shí)時(shí)區(qū)塊鏈節(jié)點(diǎn),從而優(yōu)化其他相似待同步節(jié)點(diǎn)(所缺區(qū)塊號相同的節(jié)點(diǎn))的數(shù)據(jù)同步效率,進(jìn)而有效解決前述問題中同一內(nèi)容數(shù)據(jù)請求獨(dú)立的問題。

      圖8所示為區(qū)塊增量同步的示例。Alice是新加入網(wǎng)絡(luò)的節(jié)點(diǎn)(只擁有創(chuàng)世區(qū)塊),Bob已經(jīng)斷開連接較長一段時(shí)間(擁有部分區(qū)塊),在當(dāng)前狀態(tài)下,他們由于錯(cuò)過了很多塊而不是實(shí)時(shí)網(wǎng)絡(luò)節(jié)點(diǎn)。Cherry和Dave擁有系統(tǒng)生成的全量區(qū)塊(最高區(qū)塊號為80)是實(shí)時(shí)網(wǎng)絡(luò)節(jié)點(diǎn),因而其區(qū)塊鏈?zhǔn)且粯拥?。Alice和Bob將攜帶自身當(dāng)前狀態(tài)的興趣請求發(fā)送到NDN網(wǎng)絡(luò)。Cherry和Dave收到狀態(tài)請求后返回最新狀態(tài)消息至NDN網(wǎng)絡(luò)。Alice和Bob接收到最新狀態(tài)消息后,以最新狀態(tài)為依據(jù)向NDN網(wǎng)絡(luò)發(fā)送所缺區(qū)塊的同步興趣請求。最終Alice和Bob通過NDN網(wǎng)絡(luò)的自適應(yīng)轉(zhuǎn)發(fā)及網(wǎng)內(nèi)存儲(chǔ)機(jī)制高效地實(shí)現(xiàn)全量區(qū)塊同步,完成最終同步后Alice和Bob的最長區(qū)塊鏈?zhǔn)且恢碌模渥罡邊^(qū)塊號為80。

      圖8 NDN區(qū)塊鏈數(shù)據(jù)同步示例Fig.8 NDN-blockchain data synchronization example

      2.5 仿真分析

      為驗(yàn)證上述所提方法的有效性,本文通過仿真模擬實(shí)驗(yàn),將NDN與傳統(tǒng)的TCP網(wǎng)絡(luò)進(jìn)行對比分析,并額外地與典型的區(qū)塊鏈NDN網(wǎng)絡(luò)傳輸方法(BlockNDN)進(jìn)行了優(yōu)勢對比分析。

      所有的實(shí)驗(yàn)都在本地計(jì)算機(jī)集群上進(jìn)行,每臺(tái)計(jì)算機(jī)都裝配3.1 GHz的i5處理器,8 GB RAM。計(jì)算機(jī)運(yùn)行的操作系統(tǒng)是Ubuntu 20.04。實(shí)驗(yàn)開始前須在每臺(tái)計(jì)算機(jī)上成功安裝版本為0.7.1的ndn-cxx庫和版本為22.02的NFD。其中ndn-cxx是基于C++實(shí)現(xiàn)NDN平臺(tái)的庫,可用于編寫各種NDN應(yīng)用程序。而NDN轉(zhuǎn)發(fā)守護(hù)進(jìn)程(NFD)是NDN體系結(jié)構(gòu)的核心組件,用作軟件路由器,并在網(wǎng)絡(luò)路由器和終端主機(jī)上運(yùn)行,以便完成數(shù)據(jù)的通信交互。此外還需安裝以太坊區(qū)塊鏈平臺(tái)的客戶端Go-Ethereum(簡稱Geth)。所有的庫及客戶端都是從源代碼編譯而來的。完成上述準(zhǔn)備工作后,根據(jù)前述設(shè)計(jì)思想對以太坊源碼改造,圖9為源碼改造成功后兩個(gè)區(qū)塊鏈節(jié)點(diǎn)NDN對等體連接成功的運(yùn)行輸出顯示。

      圖9 區(qū)塊鏈節(jié)點(diǎn)NDN對等體連接日志輸出Fig.9 Blockchain node NDN peer link log output

      仿真實(shí)驗(yàn)的實(shí)驗(yàn)網(wǎng)絡(luò)由8個(gè)物理主機(jī)組成,分別構(gòu)成8個(gè)區(qū)塊鏈節(jié)點(diǎn)或8個(gè)區(qū)塊鏈NDN對等體。實(shí)驗(yàn)過程中選取一個(gè)主機(jī)作為主節(jié)點(diǎn)或NDN關(guān)鍵對等體向其他任意一個(gè)主機(jī)發(fā)送轉(zhuǎn)賬交易,從而形成交易上鏈的模擬環(huán)境。每當(dāng)交易產(chǎn)生后區(qū)塊鏈網(wǎng)絡(luò)便會(huì)根據(jù)圖2所示的流程對交易進(jìn)行處理,在此期間會(huì)因數(shù)據(jù)同步而產(chǎn)生流量。通過開源工具BitMeter對某個(gè)節(jié)點(diǎn)的流量數(shù)據(jù)進(jìn)行分析,得出如圖10所示的區(qū)塊鏈在不同網(wǎng)絡(luò)架構(gòu)下的網(wǎng)內(nèi)流量占比,也即網(wǎng)絡(luò)的帶寬占用情況。此外仿真結(jié)果還與典型的區(qū)塊鏈NDN網(wǎng)絡(luò)傳輸方法(BlockNDN)[22]進(jìn)行了對比。

      圖10 流量分析Fig.10 Traffic analysis

      從圖10中可以看出,在初始階段兩種不同網(wǎng)絡(luò)架構(gòu)下的帶寬利用率相近,但是隨著時(shí)間的推移,NDN區(qū)塊鏈表現(xiàn)出較好的效果,這主要是因?yàn)閿?shù)據(jù)包的累積,使得NDN的網(wǎng)內(nèi)存儲(chǔ)及自適應(yīng)轉(zhuǎn)發(fā)開始發(fā)揮優(yōu)勢,特別是網(wǎng)內(nèi)存儲(chǔ)優(yōu)勢消除了在原有TCP架構(gòu)中存在的冗余流量,從而在一定程度上減少了區(qū)塊同步所消耗的時(shí)間。此外,與典型的BlockNDN方法相比較,本文所提出的方法一定程度上進(jìn)一步優(yōu)化了網(wǎng)絡(luò)帶寬,具體分析其主要原因在于,本文在數(shù)據(jù)同步時(shí),通過最新狀態(tài)興趣請求名稱(圖6(a))只需發(fā)送一個(gè)興趣請求包即可獲得當(dāng)前的網(wǎng)絡(luò)狀態(tài),進(jìn)而完成大容量數(shù)據(jù)的高效同步,而非BlockNDN因不知下一個(gè)區(qū)塊的信息需要不斷地發(fā)送興趣請求包,從而產(chǎn)生了部分冗余流量。

      圖11所示為兩種不同底層網(wǎng)絡(luò)架構(gòu)下,區(qū)塊鏈節(jié)點(diǎn)同步區(qū)塊的耗時(shí)情況。從圖中可以看出:初始時(shí)由于區(qū)塊數(shù)較少,而且區(qū)塊大多都是第一次被請求,因而NDN網(wǎng)內(nèi)存儲(chǔ)不能滿足區(qū)塊的同步請求,只能由實(shí)時(shí)區(qū)塊鏈節(jié)點(diǎn)滿足,所以在這一階段NDN并不能發(fā)揮出高效轉(zhuǎn)發(fā)的優(yōu)勢,這與圖10前段的結(jié)果類似。但是隨著時(shí)間的增長以及交易的累積使得區(qū)塊數(shù)量越來越多,除新生成的區(qū)塊外,不再存在區(qū)塊被第一次請求的情形,所以NDN網(wǎng)內(nèi)存儲(chǔ)可以滿足后續(xù)的區(qū)塊請求,典型BlockNDN與其相似的對比結(jié)果也可驗(yàn)證該點(diǎn),因?yàn)槠涠冀柚薔DN的轉(zhuǎn)發(fā)優(yōu)勢,該優(yōu)勢不僅可以消除部分冗余流量,還極大地縮短了數(shù)據(jù)傳輸時(shí)延,因此在圖中后半段,二者開始出現(xiàn)較為明顯的差異,而且隨著圖中折線的趨勢,可以預(yù)測出隨著后續(xù)時(shí)間的持續(xù)推進(jìn),也即隨著區(qū)塊數(shù)量的不斷增長,“NDN+區(qū)塊鏈”結(jié)構(gòu)相較于TCP架構(gòu)將呈現(xiàn)出更加明顯的數(shù)據(jù)傳輸優(yōu)勢。

      圖11 區(qū)塊鏈在不同架構(gòu)下區(qū)塊同步時(shí)的時(shí)間消耗Fig.11 Time consumption of blockchains when block synchronization under different architectures

      3 結(jié)論與展望

      本文考慮到區(qū)塊鏈底層TCP網(wǎng)絡(luò)架構(gòu)帶來的缺陷,從本質(zhì)出發(fā)提出了“NDN+區(qū)塊鏈”結(jié)構(gòu),以期實(shí)現(xiàn)區(qū)塊鏈底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施從TCP架構(gòu)到NDN架構(gòu)的轉(zhuǎn)變,用以有效解決區(qū)塊鏈數(shù)據(jù)同步帶來的高時(shí)延問題,從而消除區(qū)塊鏈在各領(lǐng)域發(fā)展所面臨的節(jié)點(diǎn)可擴(kuò)展性這個(gè)技術(shù)挑戰(zhàn)。

      該結(jié)構(gòu)的設(shè)計(jì)思想在于NDN作為下一代新型網(wǎng)絡(luò)架構(gòu)最具希望的候選者,其在設(shè)計(jì)之初就考慮到了TCP架構(gòu)的數(shù)據(jù)傳輸問題,自然從理論角度分析,NDN的引入可以優(yōu)化區(qū)塊鏈底層網(wǎng)絡(luò)架構(gòu)導(dǎo)致的數(shù)據(jù)傳輸效率問題。此外,NDN的關(guān)注點(diǎn)在內(nèi)容本身而非類似于TCP架構(gòu)的IP地址,這與區(qū)塊鏈的技術(shù)表現(xiàn)相符合,即隱藏交易各方的信息,但卻公開透明交易的內(nèi)容,因而再一次表明NDN可以為區(qū)塊鏈技術(shù)提供一定的通信支持。通過仿真實(shí)驗(yàn)的分析,表明“NDN+區(qū)塊鏈”結(jié)構(gòu)確可以替代TCP而表現(xiàn)出優(yōu)異的性能。此外本文所提出的結(jié)構(gòu),創(chuàng)新性地設(shè)計(jì)了最新狀態(tài)信息的請求,因而與典型的區(qū)塊鏈NDN網(wǎng)絡(luò)傳輸方法(BlockNDN)相比,表現(xiàn)出較好的帶寬優(yōu)化。

      在未來的工作中,還需進(jìn)一步將NDN與區(qū)塊鏈技術(shù)進(jìn)行融合,這包括區(qū)塊及交易的廣播都由NDN進(jìn)行支持,從而極大優(yōu)化區(qū)塊鏈的吞吐量性能及交易確認(rèn)時(shí)間。而二者融合的關(guān)鍵問題在于如何有效解決區(qū)塊泛洪式的廣播機(jī)制和NDN訂閱式的機(jī)制之間的融合。

      猜你喜歡
      架構(gòu)區(qū)塊節(jié)點(diǎn)
      基于FPGA的RNN硬件加速架構(gòu)
      CM節(jié)點(diǎn)控制在船舶上的應(yīng)用
      Analysis of the characteristics of electronic equipment usage distance for common users
      功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
      汽車工程(2021年12期)2021-03-08 02:34:30
      基于AutoCAD的門窗節(jié)點(diǎn)圖快速構(gòu)建
      區(qū)塊鏈:一個(gè)改變未來的幽靈
      科學(xué)(2020年5期)2020-11-26 08:19:12
      區(qū)塊鏈:主要角色和衍生應(yīng)用
      科學(xué)(2020年6期)2020-02-06 08:59:56
      區(qū)塊鏈+媒體業(yè)的N種可能
      傳媒評論(2018年4期)2018-06-27 08:20:12
      讀懂區(qū)塊鏈
      LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
      汾西县| 弥勒县| 塔河县| 靖远县| 诸暨市| 德州市| 清流县| 合水县| 绥江县| 彭阳县| 镇康县| 荥经县| 会理县| 双桥区| 奎屯市| 大化| 哈尔滨市| 秦安县| 尚志市| 福海县| 阳山县| 苍梧县| 湘乡市| 噶尔县| 贵德县| 于田县| 汝阳县| 都安| 安平县| 新密市| 土默特右旗| 博乐市| 梁河县| 淮阳县| 昌江| 修武县| 普格县| 正定县| 普陀区| 云南省| 苗栗市|