《南陵縣政府&國家郵政局郵政業安全中心:快遞物流區塊鏈應用研究報告(51頁).pdf》由會員分享,可在線閱讀,更多相關《南陵縣政府&國家郵政局郵政業安全中心:快遞物流區塊鏈應用研究報告(51頁).pdf(51頁珍藏版)》請在三個皮匠報告上搜索。
1、基于網絡編碼的分布式存儲框架(network coding-based distributed storage,簡稱NC-DS)屬于協作式存儲,網絡編碼是一種將編碼和路由的信息交換技術,可以對接收的多個數據包進行編碼信息融合,從而提高單次傳輸的信息量,進而提升網絡整體性能25。NC-DS有兩種實現,一種是碼率確定的NC-DRDS,另一種是碼率非確定的NC-RLDS。NC-DRDS機制取代同時輸出數據包的形式,采用順序輸出的形式輸出編碼后的包。將大小為x的區塊(或多個區塊),切分成k個包,對其進行Reed-Solomn編碼,得到n個編碼包,存放至n個節點中(即一個節點保存至一個包)。倘若仍有節點
2、未保存,繼續將k個數據包編碼成2n個編碼包,存放至2n個節點中。重復上述操作直至區塊鏈網絡中所有節點均保存了一個編碼包,如圖2-6所示。任意k 個編碼包都可恢復原始數據包。而NC-RLDS機制則采用了一種二進制域隨機偏移編碼,將數據包右移隨機位的比特然后按位的方式組合,同樣以NC-DRDS的方式分發至區塊鏈網絡中的每個節點?;诩m刪碼(erasure code)能夠設計降低節點的存儲負擔的LS(Low Storage)節點。區塊先被切分成k個片段,再使用偽隨機數生成器生成的系數對原始片段進行線性組合,生成編碼片段并發送至節點。當節點需要恢復區塊,只需從其它節點下載超過k個編碼片段,對這些編碼片
3、段進行逆線性變換,便可恢復出原始區塊。當有新節點加入區塊鏈網絡中,首先從全節點或者其他LS節點處下載完整區塊鏈,然后對每個區塊進行驗證,并生成編碼片段。新節點將完整的區塊刪除,同時保留區塊的哈希和編碼片段。因此,LS節點在不需要存儲完整區塊鏈的情況下,仍然可以驗證完整區塊鏈。在基于DHT集群的存儲平載均衡模型中,DHT由Chord協議26實現。在該方案中,區塊鏈網絡中的節點劃分成若干個DHT集群,一個DHT集群中的若干個節點共同維護一份完整的區塊鏈數據。區塊鏈中的節點通常需要保存兩部分內容,分別是區塊數據和區塊鏈狀態。在該方案中,DHT集群中的一個節點只需要保存完整區塊鏈副本中區塊數據的一部分
4、,而區塊鏈狀態部分則需要區塊鏈網絡中每個節點都存儲。新區塊產生后,根據區塊的散列值映射到Chord環的對應位置。根據哈希函數的特性,DHT集群內每個節點存儲多少個區塊滿足均勻分布。DHT集群內,如果需要重復存儲R次,則在Chord環中的節點的后面R個節點同樣存儲一次。如果一個區塊在DHT集群內的所有節點都重復存儲,那么此時DHT集群的節點就像全節點一樣。在基于DHT集群的負載平衡模型中,DHT由Kademlia實現。在這個方法中,區塊鏈中的節點分為兩類,第一類在純P2P網絡中挖礦,稱為挖礦節點,另一類在DHT網絡中驗證新交易和新區塊以及保存區塊鏈數據,成為數據節點。當數據節點產生了一個新交易,先廣播至該節點所在的DHT集群中,然后集群中的其他節點將該交易廣播至其他集群中。所有數據節點對交易進行驗證,如果交易有效,將其廣播至P2P網絡中,挖礦節點收集交易,并重復此過程直至挖出新區塊。根據新區塊的哈希得到該區塊的ID,與節點ID進行 XOR運算,得到與區塊ID距離最近的節點所屬的DHT集群。挖礦節點將新生成的區塊廣播至該集群,集群的節點對區塊進行驗證,并添加至區塊鏈中。