999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于NDN的區塊鏈數據同步方法

2022-12-06 10:29:42馬紅橋楊文忠
計算機工程與應用 2022年23期
關鍵詞:內容

馬紅橋,楊文忠,康 鵬

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

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

然而不幸的是,現實世界中區塊鏈技術的應用遇到了重大的技術挑戰,從而阻礙了它在一些其他重要領域的進一步發展,特別是考慮到系統的整體性能(如時間消耗),區塊鏈的技術優勢被極大地縮小。時間性能問題可歸為區塊鏈的可擴展性問題[5],這是因為較差的時間性能阻礙了更多區塊鏈節點的加入。其主要包含兩個方面[6],首先是區塊鏈的低吞吐量造成交易時間過長,其次是區塊鏈巨大的數據容量使得全量數據的同步時間過長。而且隨著區塊鏈技術的持續發展與應用,不斷增加的數據容量只會使得該問題被無限地放大。

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

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

因此在該問題現有的研究中,針對網絡層的極少研究,使其忽略了一個關鍵性問題,即無論從共識層還是數據層對該問題進行研究,其在最終都無法避免底層的數據傳輸過程。而且通過理論分析,在區塊鏈的網絡層確有改進的空間。

這是因為現有的區塊鏈技術都是在點對點(peer-topeer,P2P)網絡中基于傳統的TCP/IP網絡架構,通過應用層多播實現區塊數據的同步及傳輸,然而該架構的缺陷在于不同的終端用戶對相同數據內容的請求是獨立的,由此使得區塊鏈網絡中在區塊同步時會存在大量的冗余流量,從而占用較高的帶寬而導致了較大的數據傳輸時延[14]。

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

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

此外NDN打破傳統TCP架構原有以主機為中心的通信模式(數據的獲取必須事先獲取數據宿主的IP地址),轉變為以內容為中心的通信模式,使得其只關注內容,這在某種程度上和區塊鏈的技術表現相符合,即隱藏交易各方的信息,但卻公開透明交易的內容,從而凸顯出二者天然的契合性,進一步說明NDN有可能成為區塊鏈一種新型的底層網絡架構。由此擴大了基于NDN的區塊鏈網絡層的研究。

在文獻[22]中,作者提出了BlockNDN,一種在NDN網絡上構建區塊鏈的方案,旨在改善IP制度下區塊鏈的單點故障和不利于多播的問題,減少傳播延遲和數據傳輸開銷。文獻[23]中的作者提出了一種基于NDN的分布式點對點網絡層,用于區塊鏈數據傳輸。文獻[24]中的作者通過提出DIBN來解決由于流量與P2P上層網絡中底層網絡拓撲不匹配而導致大量冗余流量的問題。

然而這些研究雖探索了NDN與區塊鏈的初步融合并取得了一些成果,但它們仍然存在一些問題。如這些方法通過選擇志愿者或種子節點來執行相應的功能,這在某種程度上增加了集中化,顯然與區塊鏈的去中心化設計原則相背離。此外,由于區塊鏈節點隨機生成區塊,因此在生成區塊之前,這些方法需通過特定的命名機制向網絡不斷地廣播興趣請求包來完成同步,由此產生了部分冗余流量,消耗了部分帶寬。

因此基于以上分析,本文創新性提出一種“NDN+區塊鏈”的結構,旨在解決現有研究中所存在的問題,以期高效實現區塊鏈底層網絡基礎設施從TCP架構到NDN架構的初步轉變,從而進一步解決區塊鏈技術的自身限制問題。

1 區塊鏈和命名數據網絡

1.1 區塊鏈

首先從數據結構角度理解區塊鏈。類似于其名稱定義,區塊鏈是一種“鏈”式結構,由基于密碼學方法生成的一系列數據塊組成,每個數據塊都是塊鏈中的一個塊,塊根據它們的創建順序有序地迭代鏈接在一起,數據鏈的鏈接指針為區塊頭中的哈希值,該哈??梢晕ㄒ粯俗R一個區塊。由此,通過鏈接到其父塊的哈希,可以創建從最新塊到第一個塊(創世塊)的單向鏈表,從而形成所有塊的鏈式數據結構,如圖1所示。

圖1 區塊鏈數據結構Fig.1 Blockchain data structure

其次,區塊鏈是一種數字系統,其主要功能是記錄并存儲信息,其中最常見的信息是涉及金融的轉賬交易信息,同時區塊鏈還支持對交易信息進行回溯審計,因此,從功能角度講區塊鏈實質為一個數據庫系統,然而其與傳統的數據庫系統并不相似,這是因為交易信息的記錄是由區塊鏈網絡中的所有節點共同維護更新的,而存儲是在網絡中的可用節點之間分布式共享存儲的,顯然這與傳統數據庫的中央數據存儲方式存在巨大的差異。因此可以將區塊鏈形式化理解為一個特殊的數據庫系統。以Bitcoin為例,圖2為區塊鏈交易處理過程,該過程也正是其特殊性的表現。其主要過程可以概述[25]為:

圖2 區塊鏈交易處理Fig.2 Blockchain transaction processing

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

1.1.1 區塊鏈節點

在區塊鏈網絡中,客戶端幫助每個參與者接入區塊鏈網絡從而成為一個區塊鏈節點,其客戶端通常為運行區塊鏈協議并存儲交易歷史記錄的眾多應用軟件之一(如Geth)。然而區塊鏈的去中心化設計,使得區塊鏈節點成為可能執行不同功能的通信節點,因此在區塊鏈網絡中存在不同類型的區塊鏈節點,如主要的兩類節點:全節點(full node)與輕節點(light node)或簡單支付驗證節點(simple payment verification,SPV)。

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

1.1.2 區塊鏈礦工任務

以Bitcoin為例,一旦節點連接到比特幣網絡,比特幣礦工就會執行以下幾項任務:

(1)與網絡同步:一旦新節點加入比特幣網絡,它就會通過其他節點來請求下載完整的區塊鏈歷史副本。

(2)交易驗證:全節點驗證區塊鏈網絡中廣播的交易簽名及其輸出,避免轉賬人余額不足出現問題。

(3)區塊驗證:礦工和全節點可以根據某些規則評估它們收到的區塊來驗證它。這包括驗證區塊中的每筆交易及隨機數值(區塊頭中的Nonce值)的正確性。

(4)創建新區塊:礦工在驗證完成之后,將這些交易打包,從而發布一個新區塊。打包的交易越多其在之后收到的“獎勵”越多。

(5)執行PoW:此任務是挖礦過程的核心,需要礦工通過計算哈希難題來挖出一個有效的區塊。該難題的原理為,礦工需要反復改變隨機數,來計算出區塊頭中包含的一個32位哈希隨機數,直到生成的哈希隨機數小于預定的目標。

(6)獲取獎勵:一旦礦工解決了哈希難題(PoW),它將新區塊附加到本地鏈上,并將解決方案傳播到網絡,其他節點驗證解決方案的正確性,然后礦工獲得固定的“獎勵”。

1.2 命名數據網絡

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

圖3 TCP網絡與NDN網絡體系架構Fig.3 TCP network and NDN network architecture

1.2.1 NDN通信組件

NDN的通信可以分為興趣請求包(interest packet)發出和內容數據包(content packet)傳回兩個過程,兩種數據包中攜帶所檢索內容數據的名稱,并且整個NDN通信過程都是基于這兩種網絡數據包在運行。在整個通信過程中每個NDN節點都會在本地維護更新三個信息表[28]:內容緩存庫(content store,CS)、待轉發興趣請求表(pending interest table,PIT)、轉發信息表(forwarding information base,FIB)。

(1)CS:對接收到的內容數據短時間緩存,以響應(也稱作被滿足)后續到達的相同內容數據的興趣請求包,因此興趣請求包可以被內容生產者或NDN中間節點的內容緩存滿足,也即在NDN網絡中,數據宿主可以為內容生產者或是多個NDN中間節點,因而相較于傳統的TCP/IP網絡中單一的服務器數據宿主,NDN網絡的數據共享更加高效,并且中間節點的內容緩存使得興趣請求包可以快速地被響應,一定程度上對網絡帶寬進行了優化,同時縮短了通信時延,進而可以有效地提升數據的傳輸效率。

(2)PIT:存儲所有未被滿足的興趣請求包,也即等待被響應后傳回對應內容數據包的興趣請求包。在該信息表中會根據興趣請求包所包含的內容名稱進行匯聚。如果有多個相同的內容數據請求,則只會轉發一個請求包,剩余以及后續到達的相同內容數據的請求包會被匯聚到該表中,用端口號(NDN中用Face表示)標識不同的主機請求。如果被轉發的興趣請求包被滿足而傳回對應的內容數據,則該內容數據會根據表中匯聚的端口號同時多路徑地傳回,這一轉發機制使得NDN天然支持多播轉發。

(3)FIB:類似于TCP/IP網絡中的路由信息表,不同的是FIB中是對內容名稱的路由轉發信息,而非數值型的IP地址。

1.2.2 NDN路由轉發

如圖4所示為NDN對兩種數據包(興趣請求包、內容數據包)的路由轉發流程。當NDN中間節點收到興趣請求包后,將根據興趣請求包中的內容名稱以不同的匹配方式在CS、PIT、FIB三個組件中依次進行查詢,也正是由于對三個組件的查詢使得NDN具備網內存儲、本地多播、自適應轉發的優勢。

圖4 NDN網絡數據包路由轉發流程Fig.4 NDN network packet routing forwarding process

興趣請求包到達后,首先在CS中對請求的內容數據通過名稱以精準匹配的方式進行查詢,如果存在,則直接傳回CS中對應的緩存內容并丟棄該已被滿足的興趣請求不再進行轉發,緩存內容的傳回路徑為興趣請求包傳入的反向對稱路徑。如果CS中不存在則在PIT中查詢。如PIT中存在匹配條目,則表明早前收到過同樣的興趣請求包,正在等待被滿足,則需要把該興趣請求包的傳入接口添加到PIT對應的Face請求列表中,等待被滿足響應,同時丟棄該興趣請求包。如果PIT中無命中項,則說明該興趣請求中的內容名稱是第一次被請求,則在PIT中新增一條記錄條目后查詢FIB,記錄內容為興趣請求包中的內容名稱和該興趣請求包傳入的Face標識號。如在FIB中查詢到對應的內容名稱條目,則表明當前節點可以處理該興趣請求,這時將根據FIB對應表目的Face列表轉發該興趣請求包,否則表明當前節點無法處理該興趣請求包,于是將其丟棄。

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

2 基于NDN的區塊鏈數據同步

2.1 問題引述

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

2.2 NDN區塊鏈架構

現有的區塊鏈技術其底層網絡大多都是在P2P中基于傳統的TCP網絡架構通過應用層多播進行傳輸,這使得不同終端節點對于同一個數據內容的請求相互獨立,由此使得網絡帶寬被大量的冗余流量占據,從而導致較高的數據傳輸時延,也即2.1節所描述的問題。因此問題的解決,其關鍵在于改變底層網絡架構,而該新型網絡架構的設計應可以消除同一內容數據請求的獨立性。

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

圖5 NDN區塊鏈架構Fig.5 NDN-blockchain architecture

2.3 NDN區塊命名

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

圖6 NDN區塊鏈命名Fig.6 NDN-blockchain name

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

需說明指出的是兩類興趣請求名稱中所包含的區塊號含義是不同的。在最新狀態興趣請求中,區塊號是節點現有最高區塊的區塊號,實時區塊鏈節點利用自身的最高區塊號與該區塊號進行比較,即可知曉待同步節點需要哪些區塊,從而實現區塊增量更新。而在區塊同步興趣請求中,區塊號是節點所缺區塊的區塊號,實時節點響應區塊同步興趣請求后傳回對應的區塊數據。

2.4 NDN區塊同步方法

如圖7所示為NDN區塊鏈數據同步的邏輯結構圖,其包含以下步驟:

圖7 NDN區塊鏈數據同步流程Fig.7 NDN-blockchain data synchronization process

區塊鏈待同步數據節點(新加入或宕機原因重新進入網絡的節點)發現自己已經落后于實時區塊鏈節點,需要進行數據同步,其中由于宕機節點本地已存有部分數據,所以只需增量同步。

因為待同步節點并不知道當前區塊鏈的最新數據狀態,所以待同步節點需首先向NDN網絡發起最新狀態興趣請求,該請求攜帶本節點最高區塊號,以向網絡通告自己當前的不完整狀態,如“/eth/blocklateststate/1”。

NDN任意網絡節點收到最新狀態興趣請求之后,在本地區塊數據中進行比較,如果本地最高區塊號大于收到的區塊號,則說明該節點數據狀態較新,并傳回最高區塊號信息,也即傳回最新區塊狀態信息。節點收到返回的最高區塊號信息后,以該狀態為依據向全網發起所缺區塊的區塊同步興趣請求,最終完成數據的同步更新。

如果最高本地區塊號不大于收到的區塊號,則該任意NDN網絡節點非實時區塊鏈節點,從而變為待同步節點執行上述同樣的區塊同步步驟,實現增量同步,而原先的最新狀態興趣請求會被其他實時區塊鏈節點滿足后執行對應的步驟。

需指出的是,由于NDN網絡具有網內存儲功能,即NDN中間節點會存儲同步過程中傳回的區塊數據,同時當中間節點滿足區塊同步興趣請求時,可直接將中間節點緩存的區塊數據傳回,再無需傳輸區塊同步興趣請求至實時區塊鏈節點,從而優化其他相似待同步節點(所缺區塊號相同的節點)的數據同步效率,進而有效解決前述問題中同一內容數據請求獨立的問題。

圖8所示為區塊增量同步的示例。Alice是新加入網絡的節點(只擁有創世區塊),Bob已經斷開連接較長一段時間(擁有部分區塊),在當前狀態下,他們由于錯過了很多塊而不是實時網絡節點。Cherry和Dave擁有系統生成的全量區塊(最高區塊號為80)是實時網絡節點,因而其區塊鏈是一樣的。Alice和Bob將攜帶自身當前狀態的興趣請求發送到NDN網絡。Cherry和Dave收到狀態請求后返回最新狀態消息至NDN網絡。Alice和Bob接收到最新狀態消息后,以最新狀態為依據向NDN網絡發送所缺區塊的同步興趣請求。最終Alice和Bob通過NDN網絡的自適應轉發及網內存儲機制高效地實現全量區塊同步,完成最終同步后Alice和Bob的最長區塊鏈是一致的,其最高區塊號為80。

圖8 NDN區塊鏈數據同步示例Fig.8 NDN-blockchain data synchronization example

2.5 仿真分析

為驗證上述所提方法的有效性,本文通過仿真模擬實驗,將NDN與傳統的TCP網絡進行對比分析,并額外地與典型的區塊鏈NDN網絡傳輸方法(BlockNDN)進行了優勢對比分析。

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

圖9 區塊鏈節點NDN對等體連接日志輸出Fig.9 Blockchain node NDN peer link log output

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

圖10 流量分析Fig.10 Traffic analysis

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

圖11所示為兩種不同底層網絡架構下,區塊鏈節點同步區塊的耗時情況。從圖中可以看出:初始時由于區塊數較少,而且區塊大多都是第一次被請求,因而NDN網內存儲不能滿足區塊的同步請求,只能由實時區塊鏈節點滿足,所以在這一階段NDN并不能發揮出高效轉發的優勢,這與圖10前段的結果類似。但是隨著時間的增長以及交易的累積使得區塊數量越來越多,除新生成的區塊外,不再存在區塊被第一次請求的情形,所以NDN網內存儲可以滿足后續的區塊請求,典型BlockNDN與其相似的對比結果也可驗證該點,因為其都借助了NDN的轉發優勢,該優勢不僅可以消除部分冗余流量,還極大地縮短了數據傳輸時延,因此在圖中后半段,二者開始出現較為明顯的差異,而且隨著圖中折線的趨勢,可以預測出隨著后續時間的持續推進,也即隨著區塊數量的不斷增長,“NDN+區塊鏈”結構相較于TCP架構將呈現出更加明顯的數據傳輸優勢。

圖11 區塊鏈在不同架構下區塊同步時的時間消耗Fig.11 Time consumption of blockchains when block synchronization under different architectures

3 結論與展望

本文考慮到區塊鏈底層TCP網絡架構帶來的缺陷,從本質出發提出了“NDN+區塊鏈”結構,以期實現區塊鏈底層網絡基礎設施從TCP架構到NDN架構的轉變,用以有效解決區塊鏈數據同步帶來的高時延問題,從而消除區塊鏈在各領域發展所面臨的節點可擴展性這個技術挑戰。

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

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

猜你喜歡
內容
內容回顧溫故知新
科學大眾(2022年11期)2022-06-21 09:20:52
內容回顧 溫故知新
科學大眾(2021年21期)2022-01-18 05:53:48
內容回顧溫故知新
科學大眾(2021年17期)2021-10-14 08:34:02
內容回顧溫故知新
科學大眾(2021年19期)2021-10-14 08:33:02
內容回顧 溫故知新
科學大眾(2021年9期)2021-07-16 07:02:52
內容回顧 溫故知新
科學大眾(2020年23期)2021-01-18 03:09:18
內容回顧 溫故知新
科學大眾(2020年17期)2020-10-27 02:49:04
引言的內容
引言的內容
主要內容
臺聲(2016年2期)2016-09-16 01:06:53
主站蜘蛛池模板: www.亚洲一区| 一本久道久综合久久鬼色| 欧美激情第一区| 亚洲欧美精品一中文字幕| 欧美伊人色综合久久天天| 亚洲av无码久久无遮挡| 91免费观看视频| 在线a视频免费观看| 五月婷婷导航| 97在线观看视频免费| 国产精品毛片在线直播完整版| 国产成人成人一区二区| 久久国产拍爱| 欧美国产日韩在线| 91区国产福利在线观看午夜| 亚洲男人在线天堂| 国产一级毛片在线| 国产精品吹潮在线观看中文| 国外欧美一区另类中文字幕| 免费观看无遮挡www的小视频| 欧美国产综合色视频| 青青久视频| 伊人久久大香线蕉综合影视| 色欲色欲久久综合网| 日本精品αv中文字幕| 在线免费观看AV| 中文无码精品A∨在线观看不卡 | 亚洲色图另类| 亚洲综合片| 国产资源免费观看| 99久久精品免费观看国产| 国产黑丝视频在线观看| 国产99视频精品免费视频7| 国产一区二区人大臿蕉香蕉| 高清国产va日韩亚洲免费午夜电影| 福利视频99| 久久99这里精品8国产| 国产va在线| av免费在线观看美女叉开腿| 青青青伊人色综合久久| 国产精品久久久久无码网站| 九一九色国产| 国产无码高清视频不卡| 色老头综合网| 欧美成人精品高清在线下载| 久久网综合| 欧美国产精品不卡在线观看| 中文字幕亚洲专区第19页| 尤物成AV人片在线观看| 亚洲国产高清精品线久久| 亚洲AV一二三区无码AV蜜桃| 婷婷综合亚洲| 国产国产人成免费视频77777| 91在线播放国产| 国产成人1024精品下载| 99热国产这里只有精品9九| 日韩欧美视频第一区在线观看| 精品视频一区在线观看| 伊伊人成亚洲综合人网7777| 日本三区视频| 在线一级毛片| 福利国产在线| 国产手机在线ΑⅤ片无码观看| 99re这里只有国产中文精品国产精品 | 国产自产视频一区二区三区| 国产精品精品视频| 无码福利视频| 99视频精品在线观看| 1769国产精品免费视频| 色综合日本| 91黄色在线观看| 一本大道无码日韩精品影视| 亚洲天堂.com| 国产精品欧美激情| 国产一区二区免费播放| 伊人久久大线影院首页| 亚洲福利片无码最新在线播放| 国产精品99一区不卡| 91伊人国产| 一区二区自拍| 亚洲国产高清精品线久久| 男女男精品视频|