李 凡,高 琳
(成都信息工程大學區塊鏈產業學院,四川 成都 610225)
區塊鏈是一個信息技術領域的術語,從結構上來講,區塊鏈就是一個共享數據庫,是分布式數據儲存與點對點傳輸的新型應用模式,高穩定性區塊鏈具有全程留痕、追溯性強且公開透明等特征[1-2]。區塊鏈節點能夠按照數據的時間順序,采用鏈式結構對數據進行組織,改變了原有信息數據的儲存傳輸方式。
國外在檢測仿真區塊鏈節點儲存容量起步較早,現已經設計得到的一種點對點分布式的節點結構,研究得到了多種儲存容量的檢測方法和檢測算法,初步建立了一種分布式的節點儲存生態[3]。國內在研究節點儲存容量檢測仿真起步較晚,當下的研究水平還處于起步階段,目前得到的檢測仿真技術只存在于理論階段,在實際應用層面上,還需要不斷地學習研究[4]。文獻[5]提出基于雙區塊鏈的醫療記錄安全存儲與共享方法,用兩個聯盟鏈分別對醫療記錄進行存儲和共享。該方案解決了傳統單鏈應用擴展性差、吞吐量低、醫療記錄共享和存儲分離等問題,利用區塊鏈的去中心化特性和智能合約的鏈上代碼實現對不可信任環境下的訪問控制,有效保護了存儲和共享過程中患者的隱私數據安全。文獻[6]提出區塊鏈技術的城市智能交通大數據平臺及仿真,以霧霾條件下道路網交通流數據丟失為模擬實例,提出了基于區塊鏈技術的道路網交通流數據丟失的具體應用方法。以北京地區部分道路網為例進行模擬,結果表明,由于設備配置、分屬管理機構等因素的限制,獲取的道路網數據覆蓋率受客觀環境的影響較大,可能導致數據丟失;所有數據采集系統都要獨立運行,無法在網絡底層共享數據;基于區塊鏈技術的城市智能交通大數據平臺架構,突破了組織機構的局限性,實現了城市智能交通數據共享,進一步解決了傳統網絡架構中的數據丟失問題。雖然上述研究取得一定進展,但在節點存儲容量檢測存在一定局限性,為此設計一種高穩定性區塊鏈節點儲存容量檢測仿真技術。在區塊鏈分布式儲存方式的控制下,能夠充分的利用硬盤空間,避免資源浪費。
在計算高穩定性區塊鏈節點性能時,受到節點硬件的影響,各個節點參數的量綱不同,所以在計算節點性能前,標準化處理節點性能參數,可表示為

(1)


(2)
其中,ki表示節點i的性能數值,si表示硬盤儲存容量,ci表示CPU處理的頻率,Di表示磁盤IO的速率,Mi表示內存大小,Wi表示互聯網帶寬。區塊鏈在實際運用過程中,劃分區塊為不同的分片單位,對應區塊數據被劃分為眾多分片數據并儲存在節點上,根據上述計算式(2)中計算得到的性能數值,得到區塊鏈中所有組中節點的性能總和,可表示為

(3)
其中,Pt表示區塊鏈組中普通節點的性能總和,l表示節點數量,其余參數含義不變。以上述計算得到的節點總性能數值為基礎[7],根據高穩定性區塊鏈工作時節點的分配情況,計算得到儲存組中待分配的虛節點個數,可表示為

(4)

在圖1構建的更新處理過程下,以節點評價處理得到的數值作為處理對象,構建一個節點儲存容量檢測方法。

圖1 構建的更新處理過程
以上述處理得到的節點信息作為處理對象,計算各個節點的權重,計算公式可表示為

(5)
其中,T表示整數常量,fn表示區塊鏈節點緩存數據的大小,其余參數含義不變。定義上述得到的權重數值為節點儲存空間PSN數值,在構建節點儲存容量檢測方法時,將得到的PSN數值作為區塊鏈終端請求數據[9],得到數據在節點表現出的儲存命中率,可表示為

(6)
其中,hi表示節點i一次就儲存滿的次數,ri表示區塊鏈的總訪問次數。在該命中率數值的控制下,區塊鏈儲存數據直接從云端獲取命令,省去了區塊鏈其它的節點路徑[10],將上述計算公式得到的命中數值作為檢測參數,構建一個檢測響應過程,可表示為

(7)
其中,Ri表示節點i的檢測數量,其余參數含義不變。當區塊鏈不同節點產生交互時,節點之間產生一定的儲存遷移,實際檢測過程會產生一些檢測錯誤,為了處理該部分檢測錯誤,設定一個檢測平衡架構,設定的檢測平衡架構如圖2所示。

圖2 設定的檢測平衡架構
根據上圖設定的平衡架構可知,為了消除檢測過程產生的錯誤,使用哈希算法處理各個節點產生的數據負載,根據區塊鏈產生的交互周期,定時更新節點儲存狀態[11]。節點儲存容量檢測方法構建完畢后,以上圖中設定的平衡架構作為仿真進程,完成檢測仿真技術的設計。
將圖2中的平衡架構處理過程看作仿真的實際進程,實際檢測仿真時,定義節點的權重數值小于計算式(5)中的數值即為敏感,提取區塊鏈中的敏感節點,可表示為

(8)
其中,mi(w)表示超過(5)中的敏感節點數量,C表示懲罰參數。計算該部分敏感節點產生的儲存容量損耗,損耗可表示為

(9)
其中,b表示敏感參數,其余參數含義不變。將上述計算得到的損耗參數作為仿真鏈路參數,設定的仿真鏈路結構如圖3所示。

圖3 設定的仿真鏈路結構
在圖3設定的仿真鏈路結構下,首先分組處理獲取得到的敏感節點,記錄敏感節點起始地址的偏移量,將該偏移量作為仿真檢測的起點,在區塊鏈節點協議的控制下,將復制器生成多個分組,并將檢測過程整合為一個仿真執行任務,根據區塊鏈工作的時間順序,設定節點儲存容量的檢測仿真順序[12]。綜合上述處理,最終完成對高穩定性區塊鏈節點儲存容量檢測仿真技術的設計。
為了驗證高穩定性區塊鏈節點存儲容量檢測仿真技術,采用實驗室的主機以及服務器模擬區塊鏈網絡中的節點,使用一臺主機配備7臺服務器,使用的服務器參數如表1所示。

表1 服務器參數
在表1所示的服務器參數控制下,采用一個仿真數字通訊接口板卡,連接上述參數的服務器,使用的板卡硬件參數以及功能如表2所示。

表2 使用的硬件板卡組成以及功能
使用表2參數控制的仿真數字通訊接口板,控制板卡上存在兩種收發獨立的數據、地址以及控制總線實現服務器與主機間的雙向通訊,實現節點數據間的交互。硬件結構連接完畢后,調試主機與仿真接口板間處于正常工作狀態,模擬區塊鏈實驗環境后,分別使用文獻[5]中的檢測仿真技術、文獻[6]中的檢測仿真技術以及文中設計的檢測仿真技術進行實驗,對比三種檢測仿真技術的性能。
基于上述實驗準備,設置實驗環境中區塊的數量為500~5000個,統計在三種檢測仿真技術下,不同區塊數量控制下,節點的儲存容量大小,節點儲存容量結果如表3所示。

表3 三種檢測仿真方法得到的節點儲存容量結果
由表3所示的實驗結果可知,在三種檢測仿真方法控制下,不斷增加區塊鏈中的區塊數量,根據上述數值可知,節點增加相同數量的區塊時,文獻[5]中的檢測仿真方法節點儲存容量數值較小,節點數據產生的冗余較多。文獻[6]中的檢測仿真方法得到的節點儲存數值較大,對應節點產生的數據冗余較少,而文中設計的檢測仿真技術最終產生的節點儲存數值最大,可知對應區塊鏈節點產生的冗余數據最少。文中設計的檢測仿真技術在實驗環境中產生的檢測數據最少。
保持上述實驗環境不變,設置三種檢測仿真技術請求節點數據量為1000個,設定節點數據請求的頻率為固定數值,改變三種檢測仿真技術的請求檢測數據量的大小為0.5×106~2.0106,統計在不同數據量的檢測仿真請求下,三種檢測仿真技術執行檢測命令的時間,結果如表4所示。

表4 三種檢測仿真技術執行檢測命令的時間
由表4所示檢測仿真任務的請求時間結果可知,三種檢測仿真方法表現出了不同大小的請求時間,根據上表統計得到的時間數值可知,文獻[5]中的檢測仿真技術產生的檢測仿真任務的時間最長,當檢測指令數據量在2.0×106bit時,所需的檢測時間在1.49min左右,消耗的檢測時間最長。文獻[6]中的檢測仿真技術在相同檢測仿真指令數據下,產生的檢測時間在1.19min左右,所需的時間較短。而文中設計的檢測仿真方法在相同檢測指令數據的控制下,實際產生的檢測仿真時間在0.69min左右,與兩種文獻中的檢測仿真方法相比,文中設計的檢測仿真方法實際產生的檢測時間最少。
在上述實驗環境下,定義模擬節點環境中服務器出錯的錯誤率代表仿真檢測出現的錯誤概率,該錯誤概率可表示為

(10)


表5 三種檢測仿真方法產生的錯誤率
由表5所示的錯誤率結果可知,三種檢測仿真方法表現出了不同數值的錯誤率結果,在相同數量的區塊控制下,文獻[5]中的檢測仿真技術產生的檢測錯誤率最大,數值在45~50%之間,文獻[6]中的檢測仿真方法最終產生的錯誤率數值在30~40%之間,錯誤率數值較小。而文中設計的檢測仿真技術最終產生的錯誤率數值在8~12%之間,實際檢測仿真時產生的錯誤率最小。綜合上述實驗結果可知,文中設計的檢測仿真方法實際仿真產生的數據冗余量最小、檢測仿真執行時間最短且檢測產生的錯誤率數值最下,適合在實際仿真過程中運用。
針對文獻中檢測仿真方法存在儲存容量數值錯誤率較高的問題,設計一種高穩定性區塊鏈節點儲存容量檢測仿真技術,改善了文獻檢測仿真方法執行檢測命令時間過長的不足,為今后檢測仿真區塊鏈節點儲存容量提供了一定的研究方向。