當前位置:
首頁 > 新聞 > 精通IPFS系列之一:IPFS入門簡介

精通IPFS系列之一:IPFS入門簡介

1、IPFS 是什麼

IPFS 是一個可快速索引的版本化的點對點文件系統。

IPFS是一個協議

定義了基於內容的定址文件系統

協助內容分發

結合了分散式哈希、p2p傳輸、版本管理系統

IPFS是一個文件系統

有文件夾和文件

可掛載文件系統(通過FUSE)

IPFS是一個web

可以像web 那樣查看文檔

可能通過?https://ipfs.io/?訪問文件

瀏覽器或擴展可以直接支持?ipfs:/?或者?dweb:/ipfs/

基於哈希確保內容真實性

IPFS是個模塊化

通過任何網路協議的連接層

路由層,尋找/定位文件所在位置

使用路由層的DHT (kademlia/coral)

使用基於路徑的命名服務

使用bittorrent-inspired 的區塊交換

IPFS 使用加密

加密哈希內容定址

區塊級的去重

文件完整性和版本控制

文件系統級的加密和簽名支持

IPFS是一個p2p系統

世界範圍內的p2p 文件傳輸網路

完全分散的架構

沒有單點失效問題

IPFS天生是一個CDN

文件添加到本地文件系統,將會在全世界可用

緩存友好(內容哈希命名)

基於bittorrent 的帶寬管理

IPFS有一個命名服務

IPNS,一個受SFS啟發的名稱系統

基於PKI的全局命名空間

有助於建立信任鏈

與其他NSes兼容

可以將DNS,.onion,.bit等映射到IPNS

2、Merkle DAG

IPFS的核心是MerkleDAG,一個有向無環圖,其鏈接是哈希。 這為IPFS中的所有對象提供了有用的屬性:

認證可以對內容進行哈希處理並根據鏈接進行驗證

持久化一旦獲取,對象可以永久緩存

通用任何數據結構都可以表示為merkledag

分散式對象可以由任何人創建,沒有集中的編寫者

IPFS是一個網路協義棧,用於組織代理網路以創建,發布,分發,提供和下載merkledag。 它是經過身份驗證的,分散的,永久性的網路。

3、節點和網路模型

IPFS網路使用基於身份的PKI。IPFS節點是一個可以查找、發布和複製merkledag對象的程序。 其身份由私鑰定義。 特別:

privateKey, publicKey := keygen()

nodeID := multihash(publicKey)

3.1、multihash和可升級的哈希

IPFS中的所有哈希都使用?multihash?進行編碼,multihash?是一種自描述哈希格式。使用的實際哈希函數取決於安全性要求。IPFS的密碼系統是可升級的,這意味著當哈希函數被破壞時,網路可以轉移到更強的哈希值。

目前IPFS節點必須支持:

sha2-256

sha2-512

sha3

4、協義棧

IPFS有一個模塊化的協義棧,每一個模塊都有多種實現,全部在不同的模塊中。 此規範僅解決層之間的介面,並簡要提及可能的實現。 詳細信息留待其他規格。

IPFS有5層:

命名自我認證的PKI命名空間(IPNS)

merkledag數據結構格式

交換區塊傳輸和複製

路由定位對等體和對象

網路在對等體之間建立連接

4.1 網路層

網路層在網路中的任何兩個IPFS節點之間提供點對點傳輸。 它處理:

NAT遍歷

支持多種傳輸

支持加密,簽名或清除通信

多路復用

具體參考libp2p。

4.2、路由

路由層有兩個重要的目標:

節點路由發現其他的節點

內容路由發現發布到IPFS 上的數據

路由系統是一種滿足各種實現的介面。例如:

DHTs

mdns

snr

dns

具體參考libp2p。

4.3、區塊交換

區塊交換負責協商批量數據傳輸。一旦節點彼此了解,並且連接,交換協議就會控制內容定址塊的傳輸方式。

區塊交換是一種滿足各種實現的介面。例如:

Bitswap

HTTP

4.4、Merkledag

理解數據。merkledag數據結構是:

message MDagLink {

bytes Hash = 1; ???// multihash of the target object

string Name = 2; ??// utf string name. should be unique per object

uint64 Tsize = 3; ?// cumulative size of target object

}

message MDagNode {

MDagLink Links = 2; ?// refs to other objects

bytes Data = 1; ?????// opaque user data

}

參考merkledag 規範和路徑解析規範。

4.5、命名-PKI命名空間和可變指針

IPFS主要關注內容定址數據,這些數據本質上是不可變的:更改對象會改變其哈希值,從而改變其地址,使其成為一個完全不同的對象。 (將其視為寫時複製文件系統)。

IPFS命名層(或IPNS)處理以下內容的創建:

可變指向對象的指針

人類可讀的名字

IPNS基於SFS。 它是PKI命名空間,名稱只是公鑰的哈希。 控制私鑰的人控制名稱。記錄由私鑰簽名並分布在任何地方(在IPFS中,通過路由系統)。 這是一種在互聯網上分配可變名稱的平等主義方式,沒有任何集中化或證書頒發機構。

參考命名規範。

作者:喬瘋,加密貨幣愛好者,ipfs 愛好者,黑螢科技CTO。

(作者:黑螢科技,內容來自鏈得得內容開放平台「得得號」;本文僅代表作者觀點,不代表鏈得得官方立場)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 鏈得得APP 的精彩文章:

2019區塊鏈全球生態大會盛大開幕

TAG:鏈得得APP |