IPFS的技術架構

2020-04-06     鏈得得APP
摘要: IPFS的技術架構

IPFS有八層子協議棧,從低往高分別為身份、網絡、路由、交換、對象、文件、命名、應用,每個協議棧各司其職,又互相搭配。

身份層和路由層

對等節點身份信息的生成以及路由規則是通過Kademlia協議生成制定,KAD協議實質是構建了一個分布式鬆散Hash表(distributed hash table),簡稱DHT,每個加入這個DHT網絡的人都要生成自己的身份信息,然後才能通過這個身份信息去負責存儲這個網絡里的資源信息和其他成員的聯繫信息。

網絡層

lib2p可以支持任意傳輸層協議。ICE NAT traversal框架整合STUN、TURN和其他類型的NAT協議,該框架可以讓客戶端利用各種NAT方式打通網絡,從而完成NAT通信,這對於IPFS的p2p網絡非常重要。

交換層

類似迅雷、電驢這樣的BT工具,IPFS團隊把BitTorrent進行了創新,叫作Bitswap,它增加了信用和帳單體系來激勵節點去分享,用戶在發送給其他節點數據可以增加信用值,從其他節點接受數據降低信用值。如果用戶只去接收數據而不分享數據,信用分會越來越低而被其他節點忽略掉。

對象層和文件層

對象層共同管理IPFS上80%的數據結構。大部分數據對象都是以Merkle DAG的結構存在,這為內容尋址和數據去重提供了便利。

文件層是一個新的數據結構,和DAG並列,採用Git一樣的數據結構來支持版本快照。

命名層

具有自我驗證的特性(當其他用戶獲取該對象時,使用指紋公鑰進行驗簽,即驗證所用的公鑰是否與NodeId匹配,這驗證了用戶發布對象的真實性,同時也獲取到了可變狀態),並且加入了IPNS這個巧妙的設計來使得加密後的DAG對象名可定義,增強可閱讀性。

應用層

IPFS核心價值就在於上面運行的應用程式,可以利用它類似CDN的功能,在成本很低的帶寬下,去獲得想要的數據,從而提升整個應用程式的效率。

(1、 內容來自鏈得得內容開放平台「得得號」,稿件內容僅代表作者觀點,不代表鏈得得官方立場。2、 凡「得得號」文章,原創性和內容的真實性由投稿人保證,如果稿件因抄襲、作假等行為導致的法律後果,由投稿人本人負責。3、 得得號平台發布文章,如有侵權、違規及其他不當言論內容,請廣大讀者監督,一經證實,平台會立即下線。如遇文章內容問題,請發送至郵箱:[email protected]

文章來源: https://twgreatdaily.com/9cbSTnEBiuFnsJQVG4GG.html