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

        ?

        基于RDMA的區(qū)塊傳輸機制設(shè)計與實現(xiàn)

        2023-02-24 05:01:24棟,王彪,徐云*
        計算機應(yīng)用 2023年2期
        關(guān)鍵詞:機制信息系統(tǒng)

        孫 棟,王 彪,徐 云*

        (1.中國科學(xué)技術(shù)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,合肥 230027;2.安徽省高性能計算重點實驗室(中國科學(xué)技術(shù)大學(xué)),合肥 230027)

        0 引言

        區(qū)塊鏈?zhǔn)且粋€分布式賬本,以區(qū)塊的形式維護已完成交易,并使用前一個區(qū)塊哈希來進行鏈接,記錄已完成交易的順序,系統(tǒng)中的節(jié)點通過共識機制保證分布式賬本的一致性。近年來,隨著區(qū)塊鏈數(shù)據(jù)量和業(yè)務(wù)請求率的增加,對區(qū)塊鏈系統(tǒng)可擴展性的要求越來越高。為此,區(qū)塊鏈的性能分析和共識機制得到了廣泛的研究,早期的基于Proof of Work共識機制的區(qū)塊鏈,如比特幣[1]、以太坊[2]等,需要大量的計算資源進行哈希計算,導(dǎo)致區(qū)塊鏈系統(tǒng)的交易吞吐量低、出塊間隔時間長。由于在共識機制研究[3-5]上的投入,區(qū)塊鏈系統(tǒng)的出塊間隔時間已經(jīng)從數(shù)分鐘減少到秒[6],甚至是毫秒級別。在出塊速度得到極大提升的情況下,區(qū)塊鏈網(wǎng)絡(luò)節(jié)點間區(qū)塊傳輸?shù)难舆t逐漸成為區(qū)塊鏈可擴展性提升的瓶頸。

        在區(qū)塊鏈系統(tǒng)中,節(jié)點生成一個區(qū)塊之后,需要將其傳輸給網(wǎng)絡(luò)中的其他節(jié)點,從而讓這個區(qū)塊得到全網(wǎng)共識。根據(jù)Bonneau 等[7]的研究,在節(jié)點發(fā)現(xiàn)塊和所有其他節(jié)點接收塊之間的任何延遲都會增加臨時分叉的可能性,當(dāng)分叉過多或分叉無法解決時,區(qū)塊鏈系統(tǒng)就會變得不穩(wěn)定,所以降低區(qū)塊傳輸延遲是提高區(qū)塊鏈系統(tǒng)可擴展性的重要一環(huán)。盡管近年來研究者為降低區(qū)塊傳輸延遲付出了大量的努力,但是傳統(tǒng)的區(qū)塊傳輸方案是基于TCP(Transmission Control Protocol)技術(shù)來設(shè)計的,而TCP 協(xié)議棧在接收、發(fā)送報文時,內(nèi)核需要做多次上下文切換,還需要至少三次的數(shù)據(jù)拷貝并依賴CPU 進行協(xié)議封裝,使得基于TCP 的區(qū)塊傳輸機制在降低延遲上難以取得較好的效果。

        與此同時,新興的先進硬件技術(shù)遠(yuǎn)程直接內(nèi)存訪問(Remote Direct Memory Access,RDMA)[8]為數(shù)據(jù)密集型應(yīng)用的高性能數(shù)據(jù)傳輸提供了新的機會。RDMA 是一種新的直接內(nèi)存訪問技術(shù),讓應(yīng)用程序可以直接存取遠(yuǎn)程計算機的內(nèi)存,無需對方處理器參與,通過零拷貝和內(nèi)核繞過技術(shù)實現(xiàn)了高帶寬和低延遲。隨著InfiniBand 等新硬件的成本下降以及RoCE(RDMA over Converged Ethernet)技術(shù)的成熟,基于RDMA 構(gòu)建的高性能系統(tǒng)逐漸顯現(xiàn)出優(yōu)勢,如FaRM(Fast Remote Memory)[9]、DrTM[10],同時,基于RDMA 的區(qū)塊鏈系統(tǒng)通信優(yōu)化研究已經(jīng)漸漸展開,如BAASH(Blockchain-As-AService for HPC)[11]。

        本文通過RDMA 為區(qū)塊鏈系統(tǒng)提供高性能通信,設(shè)計并實現(xiàn)了基于RDMA 的低延遲區(qū)塊傳輸機制。首先分析了其不同通信原語的特點,并結(jié)合區(qū)塊鏈的區(qū)塊傳輸場景,選擇了適合的通信原語;然后基于選擇的通信原語的特性,設(shè)計了用于區(qū)塊信息共享的區(qū)塊目錄結(jié)構(gòu);結(jié)合單邊原語和區(qū)塊目錄結(jié)構(gòu),設(shè)計并實現(xiàn)了基本的區(qū)塊傳輸過程;最后分別在真實環(huán)境和模擬環(huán)境中對傳輸機制的性能進行了分析,結(jié)果表明本文方案能夠有效地降低現(xiàn)有區(qū)塊傳輸機制的延遲,提高現(xiàn)有區(qū)塊鏈系統(tǒng)的可擴展性。

        1 相關(guān)研究

        在區(qū)塊鏈網(wǎng)絡(luò)中,每當(dāng)節(jié)點產(chǎn)生了一個新區(qū)塊或接收到一個由其他節(jié)點產(chǎn)生的新區(qū)塊,首先需要對這個區(qū)塊進行驗證,再將區(qū)塊傳輸給它的鄰居節(jié)點,通過共識機制完成區(qū)塊鏈賬本的一致性維護,整個過程中存在大量的數(shù)據(jù)通信,其中就包含區(qū)塊傳輸?,F(xiàn)有的區(qū)塊鏈系統(tǒng)的通信機制根據(jù)其依賴的底層通信技術(shù)不同可以分為基于TCP 的通信機制和基于RDMA 的通信機制兩類。傳統(tǒng)的基于TCP 的通信機制發(fā)展時間較長,得到了廣泛研究,經(jīng)過大量的優(yōu)化性能已經(jīng)得到了較大提升。近年來,隨著在高性能計算機上RDMA 技術(shù)的應(yīng)用與研究的展開,利用RDMA 技術(shù)構(gòu)建高性能區(qū)塊鏈系統(tǒng)的研究也逐漸興起。

        Bi 等[12]提出了一種通過選擇最近的鄰居作為對等體來加速塊傳播的方案,其中最近的鄰居由傳輸延遲決定,使得總體的區(qū)塊廣播延遲得到降低;Ayinala 等[13]為區(qū)塊鏈網(wǎng)絡(luò)提出了一種名為PiChu 的區(qū)塊傳輸方案,該方案通過驗證區(qū)塊報頭的一致性,并在P2P(Peer-to-Peer)網(wǎng)絡(luò)上通過小塊增量轉(zhuǎn)發(fā)塊體,來加速塊的傳播;Zhao 等[14]提出了用交易哈希來替換整個交易的輕量區(qū)塊結(jié)構(gòu)用于區(qū)塊傳輸,并且通過對交易丟失進行預(yù)測,降低用于傳輸交易信息的額外通信次數(shù),從而到達降低網(wǎng)絡(luò)傳輸數(shù)據(jù)量的目的。上述的研究為降低區(qū)塊鏈系統(tǒng)的通信數(shù)據(jù)量、通信延遲做出了一定的貢獻,但仍是基于TCP 方案來設(shè)計實現(xiàn)的,受到底層網(wǎng)絡(luò)協(xié)議棧的限制,所以對于通信延遲的優(yōu)化相對有限。

        Huang 等[6]為EOS(Enterprise Operation System)區(qū)塊鏈設(shè)計了基于RDMA 原語的底層通信過程,用雙邊原語來實現(xiàn)原有系統(tǒng)的各類消息,并通過預(yù)注冊內(nèi)存池等方案實現(xiàn)了低延遲、低CPU 占用的EOS 節(jié)點啟動過程,使啟動過程區(qū)塊同步用時降低20%。Rüsch 等[15]提出了用于BFT(Byzantine Fault Tolerance)協(xié)議的基于RDMA 的通信框架,該框架模擬了多路復(fù)用技術(shù),使一個線程可以處理多個連接,使得BFT 協(xié)議的通信延遲能夠極大降低。Wang 等[16]實現(xiàn)了基于RDMA 的Paxos 協(xié)議,利用單邊原語使得共識協(xié)議的延遲最多為傳統(tǒng)共識協(xié)議的1/32。以上研究充分說明了RDMA 技術(shù)在區(qū)塊鏈系統(tǒng)的通信優(yōu)化上存在的優(yōu)勢,也為進一步的研究提供了良好的基礎(chǔ)。

        傳統(tǒng)的基于TCP 的區(qū)塊傳輸方案對區(qū)塊傳輸?shù)难舆t的優(yōu)化上限較低,且現(xiàn)有優(yōu)化方案不具有普適性,在某些情況下甚至?xí)档屯ㄐ判阅??;赗DMA 技術(shù)的區(qū)塊鏈系統(tǒng)優(yōu)化研究目前還處于起步階段,雖然在降低區(qū)塊鏈系統(tǒng)中的區(qū)塊傳輸延遲的研究上已經(jīng)取得了一定的成果,但是現(xiàn)有研究缺乏對區(qū)塊傳輸過程與RDMA 原語的針對性分析與設(shè)計,未能充分發(fā)揮RDMA 原語的在區(qū)塊傳輸上的優(yōu)勢。本文分析了區(qū)塊傳輸過程的特點,并依據(jù)其特點選擇了合適的通信原語,充分利用單邊原語的特點來進行數(shù)據(jù)傳輸機制的設(shè)計,能夠穩(wěn)定地提升現(xiàn)有區(qū)塊鏈系統(tǒng)的性能。

        2 本文方法

        2.1 方法概述

        本文方法的總體框架如圖1 所示,傳統(tǒng)的區(qū)塊鏈框架分為區(qū)塊鏈管理層和傳輸層兩個部分,由于現(xiàn)有的區(qū)塊鏈傳輸層的TCP 技術(shù)限制了區(qū)塊傳輸?shù)男阅?,本文設(shè)計了基于RDMA 技術(shù)的傳輸層來進行替換。每當(dāng)區(qū)塊鏈系統(tǒng)中產(chǎn)生了一個新的區(qū)塊,就通過傳輸層的內(nèi)存管理將區(qū)塊存儲到注冊內(nèi)存中,并將此內(nèi)存的信息通過RDMA 原語發(fā)送給其他鄰居節(jié)點;鄰居節(jié)點得到區(qū)塊的信息,若需要此區(qū)塊則可以再次通過RDMA 原語從相應(yīng)的注冊內(nèi)存中遠(yuǎn)程讀取此區(qū)塊,從而完成區(qū)塊的傳輸。

        圖1 本文方法的總體框架Fig.1 Overall framework of the proposed method

        如圖2(a)所示,基于TCP 的區(qū)塊傳輸方案中,當(dāng)節(jié)點A收到一個新的區(qū)塊,將此區(qū)塊傳輸給節(jié)點B 的基本傳輸過程由三次通信組成:A 得到新的區(qū)塊,發(fā)送一個包含區(qū)塊的id、hash 的消息給所有鄰接點;B 收到消息之后根據(jù)id、hash 判斷是否需要這個區(qū)塊,若需要則向A 發(fā)送消息獲取區(qū)塊;A 收到消息之后,再將消息中指定的區(qū)塊發(fā)送給B。如圖2(b)所示,基于RDMA 的區(qū)塊傳輸方案相較于傳統(tǒng)的基于TCP 的區(qū)塊傳輸方案,將區(qū)塊傳輸過程中的三次TCP 通信優(yōu)化為通過兩次RDMA 原語通信即可完成,同時RDMA 原語的單次通信延遲也低于TCP 消息的延遲。所以從理論上分析,基于RDMA 的區(qū)塊傳輸方案能夠大幅降低區(qū)塊鏈系統(tǒng)中區(qū)塊傳輸?shù)难舆t。

        圖2 兩種區(qū)塊傳輸方案的基本過程Fig.2 Basic processes of two block transmission schemes

        2.2 RDMA原語選擇

        RDMA 網(wǎng)絡(luò)傳輸主要有兩類通信原語:send/receive 雙邊原語和read/write 單邊原語,兩種原語在通信模式、效率及使用場景上存在一定的差別。兩類原語所需要的內(nèi)存管理方式存在一定差異,其中,send/receive 雙邊原語采用內(nèi)存復(fù)制方式,read/write 單邊原語采用內(nèi)存注冊方式。同時兩種內(nèi)存機制在時間開銷上存在一定的差異,采用內(nèi)存復(fù)制方式,在傳輸過程中數(shù)據(jù)復(fù)制時間開銷主要與復(fù)制的內(nèi)存空間大小相關(guān),而在采用內(nèi)存注冊方式時,調(diào)用內(nèi)存注冊接口同樣會帶來一定的時間開銷,此時間開銷主要與內(nèi)存注冊接口在內(nèi)核態(tài)的效率相關(guān)。

        為了對比不同數(shù)據(jù)量下兩者的性能,本文對不同數(shù)據(jù)量下兩種內(nèi)存操作的耗時進行了測試。通過測試分析,隨著操作內(nèi)存空間大小的增加,內(nèi)存復(fù)制操作的耗時增速遠(yuǎn)超內(nèi)存注冊操作的耗時。進一步說明了內(nèi)存注冊和read/write 原語相對于內(nèi)存復(fù)制和其對應(yīng)的send/receive 原語更適合于數(shù)據(jù)量更大的傳輸過程,同時在區(qū)塊鏈系統(tǒng)中,區(qū)塊普遍為100 KB~ 1 MB 大小,如比特幣中區(qū)塊平均大小為1 MB,所以read/write 方式更適合于區(qū)塊鏈系統(tǒng)中的區(qū)塊傳輸過程。

        此外,這兩種通信原語的區(qū)別還在于read/write 原語是單邊操作,這意味著采用這種方式來進行通信時,當(dāng)A 節(jié)點將區(qū)塊信息通過write 原語寫到B 內(nèi)存中時,這個操作不需要B 節(jié)點參與,而read 原語完成后,A 節(jié)點的CPU 就不需要再參與之后的通信過程,之后B 節(jié)點可以直接繞過A 節(jié)點的CPU完成數(shù)據(jù)的讀取。這樣的特性是send/receive 原語所不具備的,而降低區(qū)塊傳輸過程中對CPU 的占用同樣能夠為區(qū)塊鏈系統(tǒng)帶來性能上的提升。

        綜合以上兩個因素,在基于RDMA 進行區(qū)塊傳輸機制設(shè)計時,read/write 單邊原語相較于send/receive 雙邊原語具有更大的優(yōu)勢,所以接下來的區(qū)塊傳輸過程的設(shè)計將圍繞read/write 單邊原語的特性來展開。

        2.3 區(qū)塊目錄結(jié)構(gòu)設(shè)計

        在基于read/write 原語進行區(qū)塊傳輸機制的設(shè)計時,當(dāng)A節(jié)點新產(chǎn)生一個區(qū)塊,需要通過RDMA 網(wǎng)卡注冊一塊內(nèi)存用于存儲這個區(qū)塊,得到這塊內(nèi)存的地址、空間大小以及鑰匙,再將這些信息與區(qū)塊id、區(qū)塊hash 一起通過write 原語寫到B節(jié)點的內(nèi)存中。write 原語能夠成功執(zhí)行的前提是需要有一塊在B 節(jié)點上的注冊內(nèi)存,且A 節(jié)點需要知道此內(nèi)存的虛擬地址以及訪問鑰匙。所以每次需要向B 節(jié)點的內(nèi)存寫入信息時,必須先注冊內(nèi)存,B 節(jié)點再發(fā)送消息通知A 節(jié)點這塊內(nèi)存的地址等信息,然后A 節(jié)點通過write 原語寫入數(shù)據(jù),如前所述,內(nèi)存注冊同樣存在時間開銷,頻繁的內(nèi)存注冊會降低整個傳輸過程的效率。

        為此,本文采用了預(yù)注冊內(nèi)存的方式,設(shè)計了可復(fù)用區(qū)塊目錄結(jié)構(gòu),用于讓鄰居節(jié)點寫入最新的區(qū)塊信息。在區(qū)塊鏈系統(tǒng)中,區(qū)塊在相鄰節(jié)點之間的傳輸所需要的時間是遠(yuǎn)小于區(qū)塊的產(chǎn)生時間間隔的,且一個區(qū)塊在產(chǎn)生的一段時間之后就不需要再存儲在內(nèi)存中,所以節(jié)點中用于write 原語寫入?yún)^(qū)塊信息的注冊內(nèi)存是可以復(fù)用的。若節(jié)點在開始通信之前預(yù)注冊N塊內(nèi)存,用于讓鄰居節(jié)點寫入新產(chǎn)生區(qū)塊的信息,并且將內(nèi)存的信息先發(fā)送給鄰居節(jié)點,同時記錄每一塊內(nèi)存的信息是否過期就可以重復(fù)利用這N塊內(nèi)存,同時也避免了在每一次通信前注冊內(nèi)存帶來的時間消耗,這N塊內(nèi)存即組成了用于在節(jié)點間共享區(qū)塊信息區(qū)塊目錄。預(yù)注冊的可復(fù)用區(qū)塊目錄一方面降低內(nèi)存注冊的時間代價,另一方面內(nèi)存的復(fù)用簡化了對注冊內(nèi)存的管理。

        如上所述,每個節(jié)點需要為鄰居節(jié)點需要注冊N塊內(nèi)存mem1,mem2,…,memN,用于讓鄰居更新區(qū)塊的信息。每塊內(nèi)存中存儲的信息都有6 個字段,鄰居節(jié)點可以根據(jù)自己產(chǎn)生或接收新區(qū)塊的情況更新這N塊注冊內(nèi)存中存儲的信息,字段的內(nèi)容及意義如表1 所示。

        表1 區(qū)塊目錄存儲的字段Tab.1 Fields stored in block catalogue

        如圖3 所示,每個節(jié)點需要為所有的鄰居預(yù)注冊N塊注冊內(nèi)存,構(gòu)成用于共享區(qū)塊信息的區(qū)塊目錄,將N塊內(nèi)存的寫入權(quán)限開放給鄰居節(jié)點,鄰居節(jié)點可以通過write 原語遠(yuǎn)程更新區(qū)塊目錄,同時每個節(jié)點可以根據(jù)內(nèi)存中的區(qū)塊目錄存儲的信息查看需要哪些區(qū)塊,并通過read 原語遠(yuǎn)程讀取區(qū)塊數(shù)據(jù)。

        圖3 區(qū)塊信息共享Fig.3 Block information sharing

        2.4 基于RDMA單邊原語的區(qū)塊傳輸過程

        在為鄰居節(jié)點預(yù)注冊N塊用于存儲區(qū)塊信息的內(nèi)存后,節(jié)點需要將這N塊內(nèi)存的地址等信息發(fā)送給鄰居節(jié)點,鄰居節(jié)點可以將數(shù)據(jù)遠(yuǎn)程寫入這N塊內(nèi)存。在之后的通信中,鄰居節(jié)點在產(chǎn)生新的區(qū)塊時,可以直接根據(jù)這N塊注冊內(nèi)存的注冊信息通過write 原語將新區(qū)塊的id、hash、addr、length、key信息寫入其中一塊注冊內(nèi)存,并標(biāo)記此區(qū)塊數(shù)據(jù)為已被更新的,更新區(qū)塊目錄的具體過程如圖4 所示。

        圖4 基于單邊原語的區(qū)塊目錄更新過程Fig.4 Updating process of block catalogue based on one-side primitives

        節(jié)點在得到其鄰居節(jié)點更新的區(qū)塊目錄信息后,便可以根據(jù)區(qū)塊目錄信息判定是否需要這些區(qū)塊,若需要區(qū)塊則可以根據(jù)區(qū)塊目錄中的信息通過read 原語到相應(yīng)的鄰居節(jié)點的內(nèi)存中讀取區(qū)塊,從而完成了一個區(qū)塊從產(chǎn)生到傳輸?shù)饺W(wǎng)所有節(jié)點的過程。區(qū)塊傳輸?shù)木唧w過程如圖5 所示。

        圖5 基于單邊原語的區(qū)塊傳輸過程Fig.5 Block transmission process based on one-side primitives

        3 實驗與結(jié)果分析

        本章將通過實驗分析兩種內(nèi)存操作的性能作為兩類RDMA 原語對比的依據(jù),并評估基于RDMA 的區(qū)塊傳輸機制對于現(xiàn)有區(qū)塊鏈系統(tǒng)的性能的影響,并與現(xiàn)有的區(qū)塊傳輸機制進行對比。為此,分別對兩種方案在真實環(huán)境中測試了點到點的區(qū)塊傳輸延遲,在模擬環(huán)境中測試了多到多區(qū)塊傳輸?shù)难舆t以及區(qū)塊鏈產(chǎn)生臨時分叉的個數(shù)。

        3.1 數(shù)據(jù)復(fù)制與內(nèi)存注冊耗時對比實驗

        為了針對區(qū)塊鏈系統(tǒng)的區(qū)塊傳輸過程選擇更適合的RDMA 數(shù)據(jù)傳輸方式,需要對send/receive 方式中的內(nèi)存復(fù)制操作和read/write 方式中的內(nèi)存注冊操作在不同數(shù)據(jù)量下的耗時進行測試,分析得到更適合于大數(shù)據(jù)量的數(shù)據(jù)傳輸方式。為此,本實驗分別測試了兩種操作在從1 KB 至1 MB 的內(nèi)存大小的情況下的平均耗時。

        實驗結(jié)果如圖6 所示,從圖6 的測試結(jié)果可以看出,隨著操作內(nèi)存空間的大小的增加,內(nèi)存復(fù)制操作的耗時增加的幅度較大;相反,內(nèi)存注冊操作的耗時,只是隨著內(nèi)存空間大小的增大緩慢增加。該測試結(jié)果說明,與兩種內(nèi)存管理方式相應(yīng)的兩種通信原語中,send/receive 原語更適用于小塊數(shù)據(jù)的傳輸,而read/write 原語更適合大塊數(shù)據(jù)。

        圖6 不同數(shù)據(jù)量時的復(fù)制與注冊操作耗時對比Fig.6 Comparison of time consumed by copy and register operations under different data sizes

        3.2 真實環(huán)境中節(jié)點間區(qū)塊傳輸實驗

        真實環(huán)境中的實驗在兩臺配置有RDMA 網(wǎng)卡的服務(wù)器上進行,兩臺服務(wù)器配置相同,具體配置如表2 所示。

        表2 實驗環(huán)境配置Tab.2 Experimental environment configuration

        比特幣中的區(qū)塊傳輸機制是基于TCP 的區(qū)塊傳輸機制的經(jīng)典實現(xiàn),因此為了比較基于RDMA 的區(qū)塊傳輸機制與基于TCP 的區(qū)塊傳輸機制的性能,并分析所提出的區(qū)塊傳輸機制對現(xiàn)有區(qū)塊鏈系統(tǒng)的影響,實驗將對本文所提出區(qū)塊傳輸機制與比特幣系統(tǒng)中的區(qū)塊傳輸過程的性能進行對比。首先模擬了比特幣中的區(qū)塊結(jié)構(gòu),并生成隨機的區(qū)塊作為實驗過程傳輸?shù)膮^(qū)塊數(shù)據(jù),用于測試區(qū)塊傳輸機制的性能;再復(fù)現(xiàn)了比特幣系統(tǒng)中的區(qū)塊傳輸模塊,用于與基于RDMA 的區(qū)塊傳輸機制進行對比。兩種區(qū)塊傳輸機制將對相同的模擬區(qū)塊進行傳輸,從而得到兩者在性能上的差別。

        兩臺服務(wù)器分別視為區(qū)塊鏈網(wǎng)絡(luò)中的A 節(jié)點和B 節(jié)點,在實驗中,A 節(jié)點將以一定的時間間隔產(chǎn)生新的區(qū)塊,在產(chǎn)生新的區(qū)塊后,分別通過基于RDMA 的區(qū)塊傳輸方案和基于TCP 的區(qū)塊傳輸方案(比特幣的區(qū)塊傳輸方案)將區(qū)塊傳輸給B 節(jié)點,A 節(jié)點在發(fā)送區(qū)塊之前記錄時間T1,B 節(jié)點完成區(qū)塊接收時記錄時間T2,從而得到節(jié)點間區(qū)塊傳輸?shù)难舆tT2-T1。在實驗中,將隨機生成1 000 個區(qū)塊,測試1 000 個區(qū)塊傳輸?shù)钠骄舆t,并且通過改變區(qū)塊大小,分別測試了0.1 MB、0.3 MB、0.5 MB、1 MB 大小的區(qū)塊的傳輸延遲。

        如表3 所示,基于RDMA 的區(qū)塊傳輸方案相較于傳統(tǒng)的基于TCP 的方案,在兩節(jié)點間的區(qū)塊傳輸延遲得到了降低,在1 MB 大小的區(qū)塊上能夠使得節(jié)點間傳輸延遲降低44%。這是因為基于RDMA 的區(qū)塊傳輸方案中將三次TCP 通信優(yōu)化為兩次RDMA 原語通信,并且單次RDMA 原語通信的延遲也低于TCP 通信,從而大幅降低了在兩節(jié)點間傳輸區(qū)塊的延遲。

        表3 節(jié)點間的傳輸延遲對比 單位:μsTab.3 Comparison of transmission latency between nodes unit:μs

        3.3 模擬環(huán)境中全網(wǎng)絡(luò)區(qū)塊傳輸實驗

        為了測試區(qū)塊傳輸方案對區(qū)塊鏈系統(tǒng)整體的影響,需要測試在區(qū)塊鏈網(wǎng)絡(luò)中區(qū)塊全網(wǎng)傳播的延遲,但是在真實的區(qū)塊鏈網(wǎng)絡(luò)上測試改進是幾乎不可能的,因為這需要更新所有網(wǎng)絡(luò)節(jié)點的軟件。SimBlock[17]是一個開源的區(qū)塊鏈網(wǎng)絡(luò)模擬器,能模擬比特幣、以太坊等區(qū)塊鏈系統(tǒng)的參數(shù),如區(qū)塊鏈網(wǎng)絡(luò)大小、區(qū)塊生成間隔和網(wǎng)絡(luò)通信狀況,研究人員可以通過修改SimBlock 系統(tǒng)來模擬得到研究方案對于區(qū)塊鏈系統(tǒng)產(chǎn)生的影響。

        在實驗中,通過SimBlock 模擬了5 000 個節(jié)點的區(qū)塊鏈網(wǎng)絡(luò),依據(jù)真實環(huán)境下節(jié)點間傳輸實驗中得到的兩種方案在不同區(qū)塊大小的情況下的延遲,作為SimBlock 系統(tǒng)中兩個節(jié)點間區(qū)塊傳輸延遲參數(shù),再分別在SimBlock 系統(tǒng)中模擬生成1 000 個區(qū)塊,記錄這1 000 個區(qū)塊從產(chǎn)生到傳輸?shù)饺W(wǎng)所有節(jié)點所需要的時間,從而比較兩種方案的全網(wǎng)絡(luò)區(qū)塊傳輸延遲。

        如表4 所示,在SimBlock 模擬環(huán)境中,基于RDMA 的區(qū)塊傳輸方案相較于基于TCP 的方案,在1 MB 大小的區(qū)塊上,能夠?qū)⑷W(wǎng)絡(luò)傳輸延遲降低24.4%,這個結(jié)果相較于點到點傳輸實驗的結(jié)果有所下降,這是因為區(qū)塊在全網(wǎng)傳輸?shù)倪^程中,延遲不僅包括網(wǎng)絡(luò)傳輸過程,還有節(jié)點對區(qū)塊的驗證時間,而區(qū)塊驗證時間并沒有因為區(qū)塊傳輸機制而改變。

        表4 模擬環(huán)境下全網(wǎng)絡(luò)傳輸延遲對比 單位:μsTab.4 Comparison of transmission latency among whole network in simulated environment unit:μs

        3.4 模擬環(huán)境中區(qū)塊鏈分叉實驗

        在此實驗中,同樣通過區(qū)塊點到點傳輸實驗可以得到RDMA 和TCP 方案點到點之間1 MB 大小的區(qū)塊傳輸?shù)难舆t,設(shè)定SimBlock 模擬系統(tǒng)中節(jié)點之間進行區(qū)塊傳輸?shù)膫鬏斞舆t,在2 000、5 000、10 000 個節(jié)點三種不同網(wǎng)絡(luò)規(guī)模下分別生成2 000 個區(qū)塊。SimBlock 模擬系統(tǒng)能夠模擬區(qū)塊生成和區(qū)塊在網(wǎng)絡(luò)中所有節(jié)點之間傳輸?shù)倪^程,并且會輸出每一個區(qū)塊的信息,包括區(qū)塊的高度、區(qū)塊生成時間、區(qū)塊被傳輸?shù)矫總€節(jié)點上的時間以及區(qū)塊是否在主鏈上等,從輸出的區(qū)塊信息中可以統(tǒng)計出不在主鏈上的區(qū)塊數(shù),從而得到此次模擬實驗過程中RDMA 和TCP 方案中區(qū)塊鏈發(fā)生臨時分叉的個數(shù)。

        如表5 所示,在SimBlock 模擬環(huán)境中,基于RDMA 的區(qū)塊傳輸方案,在10 000 節(jié)點規(guī)模的區(qū)塊鏈上,使得系統(tǒng)產(chǎn)生臨時分叉的數(shù)量下降了22.6%。這是因為本文所提方案降低了區(qū)塊傳輸?shù)难舆t,而區(qū)塊傳輸延遲降低能夠使得區(qū)塊鏈系統(tǒng)中的區(qū)塊在產(chǎn)生后能夠快速得到全網(wǎng)其他節(jié)點同步,盡量降低各節(jié)點之間區(qū)塊鏈狀態(tài)的不一致性,從而達到降低臨時分叉數(shù)量的效果。

        表5 模擬環(huán)境下臨時分叉數(shù)量對比Tab.5 Comparison of temporary fork numbers in simulated environment

        總而言之,本文所提基于RDMA 技術(shù)區(qū)塊傳輸機制能夠在一定程度上降低現(xiàn)有的區(qū)塊鏈系統(tǒng)的區(qū)塊傳輸延遲,從而提高系統(tǒng)的可擴展性。

        4 結(jié)語

        高性能區(qū)塊傳輸是實現(xiàn)具有高可擴展性的區(qū)塊鏈系統(tǒng)的重要部分。本文設(shè)計了一種基于RDMA 技術(shù)的區(qū)塊傳輸機制,能夠降低現(xiàn)有系統(tǒng)的區(qū)塊傳輸延遲,實現(xiàn)高性能區(qū)塊鏈系統(tǒng)。基于RDMA 提供的原語,本文設(shè)計了區(qū)塊鏈中區(qū)塊傳輸過程的兩次單邊操作,以實線低延遲、低負(fù)載的特性;并結(jié)合原語的特性,設(shè)計了預(yù)注冊的可復(fù)用區(qū)塊目錄結(jié)構(gòu),進一步降低了內(nèi)存注冊的時間消耗。相較于傳統(tǒng)的基于TCP的區(qū)塊傳輸機制,本文所提方案能夠使得區(qū)塊全網(wǎng)同步的延遲降低24.4%,同時RDMA 單邊原語的引入也降低了傳輸過程CPU 資源的占用。本文主要的目的是設(shè)計高效的區(qū)塊傳輸機制,而忽視了區(qū)塊鏈系統(tǒng)中其他數(shù)據(jù)的傳輸?shù)牡脱舆t需求。下一步的工作是在當(dāng)前工作的基礎(chǔ)上,進一步完成對區(qū)塊鏈系統(tǒng)的通信模塊的整體設(shè)計,實現(xiàn)低延遲的共識過程。

        猜你喜歡
        機制信息系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        自制力是一種很好的篩選機制
        文苑(2018年21期)2018-11-09 01:23:06
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        破除舊機制要分步推進
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        注重機制的相互配合
        打基礎(chǔ) 抓機制 顯成效
        中國火炬(2014年4期)2014-07-24 14:22:19
        在线久草视频免费播放| 国产尤物AV尤物在线看| 国产69口爆吞精在线视频喝尿| 蜜桃色av一区二区三区麻豆 | 中文乱码字幕精品高清国产| 香港台湾经典三级a视频| 伊人久久网国产伊人| 色偷偷av一区二区三区人妖| 亚洲中文字幕九色日本| 丰满少妇呻吟高潮经历| 二区三区视频| 国产性感丝袜美女av| 日韩精品一区二区三区在线视频| 午夜福利理论片高清在线观看| 国产鲁鲁视频在线播放| 91麻豆精品一区二区三区| 日本高清乱码中文字幕| 麻豆果冻传媒在线观看| 中文字幕一区二区三区四区在线| 日韩va高清免费视频| 国产午夜片无码区在线播放| 国产高潮国产高潮久久久| 精品国产91久久久久久久a| 美女与黑人巨大进入免费观看| 国产两女互慰高潮视频在线观看 | 免费观看国产短视频的方法| 夜夜未满十八勿进的爽爽影院| 国产综合精品久久亚洲| 亚州中文字幕乱码中文字幕| 老色鬼在线精品视频| 四虎国产精品永久在线无码| av东京热一区二区三区| 亚洲美女av一区二区在线| 久久九九国产精品怡红院| 久久久一本精品99久久| 中文乱码字幕在线亚洲av | 精品国产一区二区三区香蕉| 少妇人妻无一区二区三区 | 亚洲无线码一区在线观看| 久久一区二区三区老熟女| 一区二区三区国产|