分布式存儲就像分布式應用一樣有兩種技術解釋,一種是將數據分散存儲在多臺獨立的設備上,總體上實現了技術架構上的分布式,但所屬權仍然是集中式的,而在
區塊鏈應用領域則表示的是以IPFS 為代表的新一代分布式存儲技術,與傳統的存儲技術不同,新一代的分布式存儲不光改變了存儲的方式,還改變了系統架構與網絡傳輸協議,讓分布式存儲真正實現了可以分布存儲在不同所有方之間,同時還實現了對于數據的隱私保護與安全。
那么,什么是IPFS?
IPFS,全稱 Inter Planetary File System,中文名為星際文件系統,IPFS 希望通過點對點傳輸網絡構建一個完全分布式的互聯網,類似于 BitTorrent,但是又有所發展和不同。在目前的互聯中,如果你想從網上下載一張照片,你需要告訴電腦去哪里找這張照片,也就是照片所在的 IP 地址或域名——這就叫 " 地址尋址 "。但如果這個地址不存在了,也就是說服務器關閉了,你就無法獲取那張照片了。不過很可能有人之前已經下載過那張照片,并且在他的電腦中仍然保存著備份,可你的電腦卻無法從那個人那里獲得該備份。為了解決這個問題,IPFS 把“地址尋址”改為“內容尋址”。這樣一來,你不用再告訴電腦去哪里尋找資源,而只需告訴它你想要什么資源。從“地址尋址”到“內容尋址”是 IPFS 與現有存儲技術與互聯網協議最重要的區別。除此之外,IPFS 也是一種復合的技術,其中比較重要的有4種:BitTorrent、DHT、Git 和 SFS。
(1)DHT,全稱為分布式哈希表(Distributed Hash Table),是一種分布式存儲方法。DHT的原理是在不需要服務器的情況下,每一個客戶端存儲一小部分數據,并負責一定區域的檢索,進而實現整個DHT網絡的尋址和檢索。同時所有信息均以哈希表條目的形式加以存儲在Kademlia 網絡(點對點協議中的一種算法,當我們在網絡中搜索某些值,即通常搜索存儲文件散列或關鍵詞的節點的時候,Kademlia算法需要知道與這些值相關的鍵,然后分步在網絡中開始搜索。)這些信息被分散地存儲在各個節點上,從而以全網構成一張巨大的分布式哈希表。可以形象地把這張哈希大表看成一本字典:只要知道了信息索引的key,便可以通過 Kademlia 協議來查詢與其對應的 value 信息,而不管這個 value 信息究竟是存儲在哪一個節點之上。正是這一特性確保了IPFS成為沒有中心調度節點的分布式系統。
(2)BitTorrent, ipfs借鑒的首先是消極上傳者的懲罰措施,在 BitTorrent 的客戶端上傳數據會獎勵積分,而長期不上傳的消極節點會被扣分,如果分數低于一定限度,那么網絡會拒絕再為他們提供服務;其次是文件可用性檢查,BitTorrent優先把稀缺的文件分享出去,各個客戶端之間相互補充,這樣種子不容易失效,傳輸效率也提高了。
(3)Git,在進行大文件傳輸或修改的時候總會遇到存儲或傳輸壓力大的問題,而Git在版本迭代方面非常出色。Git存儲時會把文件拆成若干個部分,并計算各個部分的哈希值,利用這些構建起與文件對應的有向無環圖(DAG),DAG的根節點也就是該文件的哈希值。這樣的好處十分明顯:如果需要修改文件,那么只需要修改少數圖中節點即可;需要分享文件,等價于分享這個圖;需要傳輸全部的文件,按照圖中的哈希值下載合并即可。
(4)Self-certifying FileSystem(SFS),它將所有的文件保存在同一個目錄下,所有的文件都可以在相對路徑中找到,其SFS路徑名是其原路徑與公鑰的哈希。這樣的設計包含身份的隱式驗證功能,因此SFS被稱為自驗證文件系統。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。