時(shí)間:2023-08-08|瀏覽:215
身份層和路由層 對(duì)等節(jié)點(diǎn)身份信息的生成以及路由規(guī)則是通過(guò)Kademlia協(xié)議生成制定。KAD協(xié)議實(shí)質(zhì)是構(gòu)建了一個(gè)分布式松散Hash表(distributed hashtable),簡(jiǎn)稱(chēng)DHT。每個(gè)加入這個(gè)DHT網(wǎng)絡(luò)的人都要生成自己的身份信息,然后才能通過(guò)這個(gè)身份信息去負(fù)責(zé)存儲(chǔ)這個(gè)網(wǎng)絡(luò)里的資源信息和其他成員的聯(lián)系信息。
網(wǎng)絡(luò)層 lib2p可以支持任意傳輸層協(xié)議。ICENAT traversal框架整合STUN、TURN和其他類(lèi)型的NAT協(xié)議。該框架可以讓客戶端利用各種NAT方式打通網(wǎng)絡(luò),從而完成NAT通信。這對(duì)于IPFS的p2p網(wǎng)絡(luò)非常重要。
交換層 類(lèi)似迅雷、電驢這樣的BT工具,IPFS團(tuán)隊(duì)把BitTorrent進(jìn)行了創(chuàng)新,叫作Bitswap。它增加了信用和帳單體系來(lái)激勵(lì)節(jié)點(diǎn)去分享。用戶在發(fā)送給其他節(jié)點(diǎn)數(shù)據(jù)可以增加信用值,從其他節(jié)點(diǎn)接受數(shù)據(jù)降低信用值。如果用戶只去接收數(shù)據(jù)而不分享數(shù)據(jù),信用分會(huì)越來(lái)越低而被其他節(jié)點(diǎn)忽略掉。
對(duì)象層和文件層 對(duì)象層共同管理IPFS上80%的數(shù)據(jù)結(jié)構(gòu)。大部分?jǐn)?shù)據(jù)對(duì)象都是以MerkleDAG的結(jié)構(gòu)存在,這為內(nèi)容尋址和數(shù)據(jù)去重提供了便利。
文件層是一個(gè)新的數(shù)據(jù)結(jié)構(gòu),和DAG并列,采用Git一樣的數(shù)據(jù)結(jié)構(gòu)來(lái)支持版本快照。
命名層 具有自我驗(yàn)證的特性,并且加入了IPNS這個(gè)巧妙的設(shè)計(jì)來(lái)使得加密后的DAG對(duì)象名可定義,增強(qiáng)可閱讀性。
應(yīng)用層 IPFS核心價(jià)值就在于上面運(yùn)行的應(yīng)用程序,可以利用它類(lèi)似CDN的功能,在成本很低的帶寬下,去獲得想要的數(shù)據(jù),從而提升整個(gè)應(yīng)用程序的效率。
熱點(diǎn):ipfs