李 凡,高 琳
(成都信息工程大學(xué)區(qū)塊鏈產(chǎn)業(yè)學(xué)院,四川 成都 610225)
區(qū)塊鏈?zhǔn)且粋€(gè)信息技術(shù)領(lǐng)域的術(shù)語(yǔ),從結(jié)構(gòu)上來(lái)講,區(qū)塊鏈就是一個(gè)共享數(shù)據(jù)庫(kù),是分布式數(shù)據(jù)儲(chǔ)存與點(diǎn)對(duì)點(diǎn)傳輸?shù)男滦蛻?yīng)用模式,高穩(wěn)定性區(qū)塊鏈具有全程留痕、追溯性強(qiáng)且公開透明等特征[1-2]。區(qū)塊鏈節(jié)點(diǎn)能夠按照數(shù)據(jù)的時(shí)間順序,采用鏈?zhǔn)浇Y(jié)構(gòu)對(duì)數(shù)據(jù)進(jìn)行組織,改變了原有信息數(shù)據(jù)的儲(chǔ)存?zhèn)鬏敺绞健?/p>
國(guó)外在檢測(cè)仿真區(qū)塊鏈節(jié)點(diǎn)儲(chǔ)存容量起步較早,現(xiàn)已經(jīng)設(shè)計(jì)得到的一種點(diǎn)對(duì)點(diǎn)分布式的節(jié)點(diǎn)結(jié)構(gòu),研究得到了多種儲(chǔ)存容量的檢測(cè)方法和檢測(cè)算法,初步建立了一種分布式的節(jié)點(diǎn)儲(chǔ)存生態(tài)[3]。國(guó)內(nèi)在研究節(jié)點(diǎn)儲(chǔ)存容量檢測(cè)仿真起步較晚,當(dāng)下的研究水平還處于起步階段,目前得到的檢測(cè)仿真技術(shù)只存在于理論階段,在實(shí)際應(yīng)用層面上,還需要不斷地學(xué)習(xí)研究[4]。文獻(xiàn)[5]提出基于雙區(qū)塊鏈的醫(yī)療記錄安全存儲(chǔ)與共享方法,用兩個(gè)聯(lián)盟鏈分別對(duì)醫(yī)療記錄進(jìn)行存儲(chǔ)和共享。該方案解決了傳統(tǒng)單鏈應(yīng)用擴(kuò)展性差、吞吐量低、醫(yī)療記錄共享和存儲(chǔ)分離等問(wèn)題,利用區(qū)塊鏈的去中心化特性和智能合約的鏈上代碼實(shí)現(xiàn)對(duì)不可信任環(huán)境下的訪問(wèn)控制,有效保護(hù)了存儲(chǔ)和共享過(guò)程中患者的隱私數(shù)據(jù)安全。文獻(xiàn)[6]提出區(qū)塊鏈技術(shù)的城市智能交通大數(shù)據(jù)平臺(tái)及仿真,以霧霾條件下道路網(wǎng)交通流數(shù)據(jù)丟失為模擬實(shí)例,提出了基于區(qū)塊鏈技術(shù)的道路網(wǎng)交通流數(shù)據(jù)丟失的具體應(yīng)用方法。以北京地區(qū)部分道路網(wǎng)為例進(jìn)行模擬,結(jié)果表明,由于設(shè)備配置、分屬管理機(jī)構(gòu)等因素的限制,獲取的道路網(wǎng)數(shù)據(jù)覆蓋率受客觀環(huán)境的影響較大,可能導(dǎo)致數(shù)據(jù)丟失;所有數(shù)據(jù)采集系統(tǒng)都要獨(dú)立運(yùn)行,無(wú)法在網(wǎng)絡(luò)底層共享數(shù)據(jù);基于區(qū)塊鏈技術(shù)的城市智能交通大數(shù)據(jù)平臺(tái)架構(gòu),突破了組織機(jī)構(gòu)的局限性,實(shí)現(xiàn)了城市智能交通數(shù)據(jù)共享,進(jìn)一步解決了傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中的數(shù)據(jù)丟失問(wèn)題。雖然上述研究取得一定進(jìn)展,但在節(jié)點(diǎn)存儲(chǔ)容量檢測(cè)存在一定局限性,為此設(shè)計(jì)一種高穩(wěn)定性區(qū)塊鏈節(jié)點(diǎn)儲(chǔ)存容量檢測(cè)仿真技術(shù)。在區(qū)塊鏈分布式儲(chǔ)存方式的控制下,能夠充分的利用硬盤空間,避免資源浪費(fèi)。
在計(jì)算高穩(wěn)定性區(qū)塊鏈節(jié)點(diǎn)性能時(shí),受到節(jié)點(diǎn)硬件的影響,各個(gè)節(jié)點(diǎn)參數(shù)的量綱不同,所以在計(jì)算節(jié)點(diǎn)性能前,標(biāo)準(zhǔn)化處理節(jié)點(diǎn)性能參數(shù),可表示為
(1)
(2)
其中,ki表示節(jié)點(diǎn)i的性能數(shù)值,si表示硬盤儲(chǔ)存容量,ci表示CPU處理的頻率,Di表示磁盤IO的速率,Mi表示內(nèi)存大小,Wi表示互聯(lián)網(wǎng)帶寬。區(qū)塊鏈在實(shí)際運(yùn)用過(guò)程中,劃分區(qū)塊為不同的分片單位,對(duì)應(yīng)區(qū)塊數(shù)據(jù)被劃分為眾多分片數(shù)據(jù)并儲(chǔ)存在節(jié)點(diǎn)上,根據(jù)上述計(jì)算式(2)中計(jì)算得到的性能數(shù)值,得到區(qū)塊鏈中所有組中節(jié)點(diǎn)的性能總和,可表示為
(3)
其中,Pt表示區(qū)塊鏈組中普通節(jié)點(diǎn)的性能總和,l表示節(jié)點(diǎn)數(shù)量,其余參數(shù)含義不變。以上述計(jì)算得到的節(jié)點(diǎn)總性能數(shù)值為基礎(chǔ)[7],根據(jù)高穩(wěn)定性區(qū)塊鏈工作時(shí)節(jié)點(diǎn)的分配情況,計(jì)算得到儲(chǔ)存組中待分配的虛節(jié)點(diǎn)個(gè)數(shù),可表示為
(4)
在圖1構(gòu)建的更新處理過(guò)程下,以節(jié)點(diǎn)評(píng)價(jià)處理得到的數(shù)值作為處理對(duì)象,構(gòu)建一個(gè)節(jié)點(diǎn)儲(chǔ)存容量檢測(cè)方法。
圖1 構(gòu)建的更新處理過(guò)程
以上述處理得到的節(jié)點(diǎn)信息作為處理對(duì)象,計(jì)算各個(gè)節(jié)點(diǎn)的權(quán)重,計(jì)算公式可表示為
(5)
其中,T表示整數(shù)常量,fn表示區(qū)塊鏈節(jié)點(diǎn)緩存數(shù)據(jù)的大小,其余參數(shù)含義不變。定義上述得到的權(quán)重?cái)?shù)值為節(jié)點(diǎn)儲(chǔ)存空間PSN數(shù)值,在構(gòu)建節(jié)點(diǎn)儲(chǔ)存容量檢測(cè)方法時(shí),將得到的PSN數(shù)值作為區(qū)塊鏈終端請(qǐng)求數(shù)據(jù)[9],得到數(shù)據(jù)在節(jié)點(diǎn)表現(xiàn)出的儲(chǔ)存命中率,可表示為
(6)
其中,hi表示節(jié)點(diǎn)i一次就儲(chǔ)存滿的次數(shù),ri表示區(qū)塊鏈的總訪問(wèn)次數(shù)。在該命中率數(shù)值的控制下,區(qū)塊鏈儲(chǔ)存數(shù)據(jù)直接從云端獲取命令,省去了區(qū)塊鏈其它的節(jié)點(diǎn)路徑[10],將上述計(jì)算公式得到的命中數(shù)值作為檢測(cè)參數(shù),構(gòu)建一個(gè)檢測(cè)響應(yīng)過(guò)程,可表示為
(7)
其中,Ri表示節(jié)點(diǎn)i的檢測(cè)數(shù)量,其余參數(shù)含義不變。當(dāng)區(qū)塊鏈不同節(jié)點(diǎn)產(chǎn)生交互時(shí),節(jié)點(diǎn)之間產(chǎn)生一定的儲(chǔ)存遷移,實(shí)際檢測(cè)過(guò)程會(huì)產(chǎn)生一些檢測(cè)錯(cuò)誤,為了處理該部分檢測(cè)錯(cuò)誤,設(shè)定一個(gè)檢測(cè)平衡架構(gòu),設(shè)定的檢測(cè)平衡架構(gòu)如圖2所示。
圖2 設(shè)定的檢測(cè)平衡架構(gòu)
根據(jù)上圖設(shè)定的平衡架構(gòu)可知,為了消除檢測(cè)過(guò)程產(chǎn)生的錯(cuò)誤,使用哈希算法處理各個(gè)節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)負(fù)載,根據(jù)區(qū)塊鏈產(chǎn)生的交互周期,定時(shí)更新節(jié)點(diǎn)儲(chǔ)存狀態(tài)[11]。節(jié)點(diǎn)儲(chǔ)存容量檢測(cè)方法構(gòu)建完畢后,以上圖中設(shè)定的平衡架構(gòu)作為仿真進(jìn)程,完成檢測(cè)仿真技術(shù)的設(shè)計(jì)。
將圖2中的平衡架構(gòu)處理過(guò)程看作仿真的實(shí)際進(jìn)程,實(shí)際檢測(cè)仿真時(shí),定義節(jié)點(diǎn)的權(quán)重?cái)?shù)值小于計(jì)算式(5)中的數(shù)值即為敏感,提取區(qū)塊鏈中的敏感節(jié)點(diǎn),可表示為
(8)
其中,mi(w)表示超過(guò)(5)中的敏感節(jié)點(diǎn)數(shù)量,C表示懲罰參數(shù)。計(jì)算該部分敏感節(jié)點(diǎn)產(chǎn)生的儲(chǔ)存容量損耗,損耗可表示為
(9)
其中,b表示敏感參數(shù),其余參數(shù)含義不變。將上述計(jì)算得到的損耗參數(shù)作為仿真鏈路參數(shù),設(shè)定的仿真鏈路結(jié)構(gòu)如圖3所示。
圖3 設(shè)定的仿真鏈路結(jié)構(gòu)
在圖3設(shè)定的仿真鏈路結(jié)構(gòu)下,首先分組處理獲取得到的敏感節(jié)點(diǎn),記錄敏感節(jié)點(diǎn)起始地址的偏移量,將該偏移量作為仿真檢測(cè)的起點(diǎn),在區(qū)塊鏈節(jié)點(diǎn)協(xié)議的控制下,將復(fù)制器生成多個(gè)分組,并將檢測(cè)過(guò)程整合為一個(gè)仿真執(zhí)行任務(wù),根據(jù)區(qū)塊鏈工作的時(shí)間順序,設(shè)定節(jié)點(diǎn)儲(chǔ)存容量的檢測(cè)仿真順序[12]。綜合上述處理,最終完成對(duì)高穩(wěn)定性區(qū)塊鏈節(jié)點(diǎn)儲(chǔ)存容量檢測(cè)仿真技術(shù)的設(shè)計(jì)。
為了驗(yàn)證高穩(wěn)定性區(qū)塊鏈節(jié)點(diǎn)存儲(chǔ)容量檢測(cè)仿真技術(shù),采用實(shí)驗(yàn)室的主機(jī)以及服務(wù)器模擬區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點(diǎn),使用一臺(tái)主機(jī)配備7臺(tái)服務(wù)器,使用的服務(wù)器參數(shù)如表1所示。
表1 服務(wù)器參數(shù)
在表1所示的服務(wù)器參數(shù)控制下,采用一個(gè)仿真數(shù)字通訊接口板卡,連接上述參數(shù)的服務(wù)器,使用的板卡硬件參數(shù)以及功能如表2所示。
表2 使用的硬件板卡組成以及功能
使用表2參數(shù)控制的仿真數(shù)字通訊接口板,控制板卡上存在兩種收發(fā)獨(dú)立的數(shù)據(jù)、地址以及控制總線實(shí)現(xiàn)服務(wù)器與主機(jī)間的雙向通訊,實(shí)現(xiàn)節(jié)點(diǎn)數(shù)據(jù)間的交互。硬件結(jié)構(gòu)連接完畢后,調(diào)試主機(jī)與仿真接口板間處于正常工作狀態(tài),模擬區(qū)塊鏈實(shí)驗(yàn)環(huán)境后,分別使用文獻(xiàn)[5]中的檢測(cè)仿真技術(shù)、文獻(xiàn)[6]中的檢測(cè)仿真技術(shù)以及文中設(shè)計(jì)的檢測(cè)仿真技術(shù)進(jìn)行實(shí)驗(yàn),對(duì)比三種檢測(cè)仿真技術(shù)的性能。
基于上述實(shí)驗(yàn)準(zhǔn)備,設(shè)置實(shí)驗(yàn)環(huán)境中區(qū)塊的數(shù)量為500~5000個(gè),統(tǒng)計(jì)在三種檢測(cè)仿真技術(shù)下,不同區(qū)塊數(shù)量控制下,節(jié)點(diǎn)的儲(chǔ)存容量大小,節(jié)點(diǎn)儲(chǔ)存容量結(jié)果如表3所示。
表3 三種檢測(cè)仿真方法得到的節(jié)點(diǎn)儲(chǔ)存容量結(jié)果
由表3所示的實(shí)驗(yàn)結(jié)果可知,在三種檢測(cè)仿真方法控制下,不斷增加區(qū)塊鏈中的區(qū)塊數(shù)量,根據(jù)上述數(shù)值可知,節(jié)點(diǎn)增加相同數(shù)量的區(qū)塊時(shí),文獻(xiàn)[5]中的檢測(cè)仿真方法節(jié)點(diǎn)儲(chǔ)存容量數(shù)值較小,節(jié)點(diǎn)數(shù)據(jù)產(chǎn)生的冗余較多。文獻(xiàn)[6]中的檢測(cè)仿真方法得到的節(jié)點(diǎn)儲(chǔ)存數(shù)值較大,對(duì)應(yīng)節(jié)點(diǎn)產(chǎn)生的數(shù)據(jù)冗余較少,而文中設(shè)計(jì)的檢測(cè)仿真技術(shù)最終產(chǎn)生的節(jié)點(diǎn)儲(chǔ)存數(shù)值最大,可知對(duì)應(yīng)區(qū)塊鏈節(jié)點(diǎn)產(chǎn)生的冗余數(shù)據(jù)最少。文中設(shè)計(jì)的檢測(cè)仿真技術(shù)在實(shí)驗(yàn)環(huán)境中產(chǎn)生的檢測(cè)數(shù)據(jù)最少。
保持上述實(shí)驗(yàn)環(huán)境不變,設(shè)置三種檢測(cè)仿真技術(shù)請(qǐng)求節(jié)點(diǎn)數(shù)據(jù)量為1000個(gè),設(shè)定節(jié)點(diǎn)數(shù)據(jù)請(qǐng)求的頻率為固定數(shù)值,改變?nèi)N檢測(cè)仿真技術(shù)的請(qǐng)求檢測(cè)數(shù)據(jù)量的大小為0.5×106~2.0106,統(tǒng)計(jì)在不同數(shù)據(jù)量的檢測(cè)仿真請(qǐng)求下,三種檢測(cè)仿真技術(shù)執(zhí)行檢測(cè)命令的時(shí)間,結(jié)果如表4所示。
表4 三種檢測(cè)仿真技術(shù)執(zhí)行檢測(cè)命令的時(shí)間
由表4所示檢測(cè)仿真任務(wù)的請(qǐng)求時(shí)間結(jié)果可知,三種檢測(cè)仿真方法表現(xiàn)出了不同大小的請(qǐng)求時(shí)間,根據(jù)上表統(tǒng)計(jì)得到的時(shí)間數(shù)值可知,文獻(xiàn)[5]中的檢測(cè)仿真技術(shù)產(chǎn)生的檢測(cè)仿真任務(wù)的時(shí)間最長(zhǎng),當(dāng)檢測(cè)指令數(shù)據(jù)量在2.0×106bit時(shí),所需的檢測(cè)時(shí)間在1.49min左右,消耗的檢測(cè)時(shí)間最長(zhǎng)。文獻(xiàn)[6]中的檢測(cè)仿真技術(shù)在相同檢測(cè)仿真指令數(shù)據(jù)下,產(chǎn)生的檢測(cè)時(shí)間在1.19min左右,所需的時(shí)間較短。而文中設(shè)計(jì)的檢測(cè)仿真方法在相同檢測(cè)指令數(shù)據(jù)的控制下,實(shí)際產(chǎn)生的檢測(cè)仿真時(shí)間在0.69min左右,與兩種文獻(xiàn)中的檢測(cè)仿真方法相比,文中設(shè)計(jì)的檢測(cè)仿真方法實(shí)際產(chǎn)生的檢測(cè)時(shí)間最少。
在上述實(shí)驗(yàn)環(huán)境下,定義模擬節(jié)點(diǎn)環(huán)境中服務(wù)器出錯(cuò)的錯(cuò)誤率代表仿真檢測(cè)出現(xiàn)的錯(cuò)誤概率,該錯(cuò)誤概率可表示為
(10)
表5 三種檢測(cè)仿真方法產(chǎn)生的錯(cuò)誤率
由表5所示的錯(cuò)誤率結(jié)果可知,三種檢測(cè)仿真方法表現(xiàn)出了不同數(shù)值的錯(cuò)誤率結(jié)果,在相同數(shù)量的區(qū)塊控制下,文獻(xiàn)[5]中的檢測(cè)仿真技術(shù)產(chǎn)生的檢測(cè)錯(cuò)誤率最大,數(shù)值在45~50%之間,文獻(xiàn)[6]中的檢測(cè)仿真方法最終產(chǎn)生的錯(cuò)誤率數(shù)值在30~40%之間,錯(cuò)誤率數(shù)值較小。而文中設(shè)計(jì)的檢測(cè)仿真技術(shù)最終產(chǎn)生的錯(cuò)誤率數(shù)值在8~12%之間,實(shí)際檢測(cè)仿真時(shí)產(chǎn)生的錯(cuò)誤率最小。綜合上述實(shí)驗(yàn)結(jié)果可知,文中設(shè)計(jì)的檢測(cè)仿真方法實(shí)際仿真產(chǎn)生的數(shù)據(jù)冗余量最小、檢測(cè)仿真執(zhí)行時(shí)間最短且檢測(cè)產(chǎn)生的錯(cuò)誤率數(shù)值最下,適合在實(shí)際仿真過(guò)程中運(yùn)用。
針對(duì)文獻(xiàn)中檢測(cè)仿真方法存在儲(chǔ)存容量數(shù)值錯(cuò)誤率較高的問(wèn)題,設(shè)計(jì)一種高穩(wěn)定性區(qū)塊鏈節(jié)點(diǎn)儲(chǔ)存容量檢測(cè)仿真技術(shù),改善了文獻(xiàn)檢測(cè)仿真方法執(zhí)行檢測(cè)命令時(shí)間過(guò)長(zhǎng)的不足,為今后檢測(cè)仿真區(qū)塊鏈節(jié)點(diǎn)儲(chǔ)存容量提供了一定的研究方向。