區(qū)塊鏈GNX系統(tǒng)設(shè)計(jì)之存儲(chǔ)網(wǎng)絡(luò)

18183
游民老趙
Genaro愿景是建立新型的分布式加密存儲(chǔ)媒介,讓每一個(gè)使用者擁有自己數(shù)據(jù)的使用權(quán)和分享權(quán),為打造鏈上功能豐富的去中心化應(yīng)用(DApp)及其生態(tài)環(huán)境提供穩(wěn)定可靠的平臺(tái)支撐。 在未來(lái),Genaro 會(huì)考慮更多的加密存...

Genaro愿景是建立新型的分布式加密存儲(chǔ)媒介,讓每一個(gè)使用者擁有自己數(shù)據(jù)的使用權(quán)和分享權(quán),為打造鏈上功能豐富的去中心化應(yīng)用(DApp)及其生態(tài)環(huán)境提供穩(wěn)定可靠的平臺(tái)支撐。

在未來(lái),Genaro 會(huì)考慮更多的加密存儲(chǔ)特性,包括用去冗余加密保證單個(gè)加密文件不多余處理來(lái)增加礦工收益,以及加密文件流存儲(chǔ)使得用戶可以進(jìn)行邊下載邊看等流媒體操作。

為了實(shí)現(xiàn)該目標(biāo),Genaro 的系統(tǒng)設(shè)計(jì)為三個(gè)部分:存儲(chǔ)網(wǎng)絡(luò),公鏈,以及共識(shí)治理結(jié)構(gòu)部分

今天來(lái)看第一部分:

存儲(chǔ)網(wǎng)絡(luò)。

要了解Genaro的存貯網(wǎng)絡(luò),我們要先了解兩個(gè)概念DHT和KAD。

DHT

DHT的全稱是Distributed Hash Table,即分布式哈希表技術(shù),是一種分布式的存儲(chǔ)方法。這種分布式網(wǎng)絡(luò)不需要中心節(jié)點(diǎn)服務(wù)器,而是每個(gè)客戶端負(fù)責(zé)一個(gè)小范圍的路由,并負(fù)責(zé)存儲(chǔ)一小部分?jǐn)?shù)據(jù),從而實(shí)現(xiàn)整個(gè)DHT網(wǎng)絡(luò)的尋址和存儲(chǔ)。DHT網(wǎng)絡(luò)還在于關(guān)鍵字最接近的節(jié)點(diǎn)上復(fù)制備份冗余信息,避免了單一節(jié)點(diǎn)失效問(wèn)題。

DHT是一種分布式的存儲(chǔ)和尋址技術(shù)。通過(guò)DHT數(shù)據(jù)結(jié)構(gòu)它把KEY 和 VALUE用某種方式對(duì)應(yīng)起來(lái)。使用hash()函數(shù)把一個(gè)KEY值映射到一個(gè)index上:hash(KEY) = index。這樣就可以把一個(gè)KEY值同某個(gè)index對(duì)應(yīng)起來(lái)。然后把與這個(gè)KEY值對(duì)應(yīng)的VALUE存儲(chǔ)到index所標(biāo)記的存儲(chǔ)空間中。這樣,每次想要查找KEY所對(duì)應(yīng)的VALUE值時(shí),只需要做一次hash()運(yùn)算就可以找到了。以上就是尋址過(guò)程。

把DHT網(wǎng)絡(luò)想象成一個(gè)大城市,那么每個(gè)客戶端,就好比城市里各個(gè)角落的地圖碎片,上面繪制了附近區(qū)域的地形情況,把這些地圖碎片匯總后,整個(gè)城市的全貌也就出來(lái)了。

DHT優(yōu)點(diǎn)

1、有效地避免“中央集權(quán)式” 的服務(wù)器(比如:tracker)的單一故障而帶來(lái)的整個(gè)網(wǎng)絡(luò)癱瘓

2、節(jié)點(diǎn)中存儲(chǔ)其臨近的后繼節(jié)點(diǎn)信息,大幅減少了 帶寬的占用和資源的消耗

3、關(guān)鍵字最接近的節(jié)點(diǎn)上備份冗余信息,避免了單一節(jié)點(diǎn)失效問(wèn)題

KAD

Kad是Kademlia的簡(jiǎn)稱,以構(gòu)建分布式的P2P電腦網(wǎng)絡(luò)。Kademlia 是P2P 重疊網(wǎng)絡(luò)傳輸協(xié)議,是一種基于異或運(yùn)算的P2P信息系統(tǒng)。它制定了網(wǎng)絡(luò)的結(jié)構(gòu)及規(guī)范了節(jié)點(diǎn)間通訊和交換資訊的方式。

KAD工作原理

如何找到用戶小王則是通過(guò)將用戶id異或的方式,兩個(gè)id的二進(jìn)位異或值決定他們之間的邏輯距離,如1100距離1101要比距離1001近。那么當(dāng)一個(gè)用戶加入kad后,首先通過(guò)一個(gè)已知的用戶找到一批用戶的id和ip地址和端口。當(dāng)該用戶要尋找一個(gè)特定用戶A的時(shí)候,該用戶先詢問(wèn)幾個(gè)已知的邏輯距離較A較近的用戶,如B用戶,C用戶,D用戶,B,C,D會(huì)告訴該用戶他們知道的更加近的用戶的id和ip地址和端口,同理類推,這個(gè)用戶最終就能找到A。所以尋找的次數(shù)會(huì)在logN數(shù)量級(jí),這里N代表詢問(wèn)的人數(shù)。

通俗來(lái)講就是不斷縮小查找范圍的方法。

比如小王要找到某個(gè)人小利,兩人并不認(rèn)識(shí),首先小王詢問(wèn)了幾個(gè)單位A、B、C、D,而A、B、C單位沒(méi)有小利這個(gè)人,只有D單位有這個(gè)人,那小王又去D的各個(gè)科室尋找小利,以此類推,逐漸縮小范圍,最后找到小利的一種方法。

Kademlia 明顯的特點(diǎn)就是尋找速度會(huì)加快。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無(wú)評(píng)論