IPFS(InterPlanetary File System)是一個分佈式檔案系統,它的目標是創建一個點對點的全球超媒體協議,使用戶可以訪問和共享互聯網上的所有數據,而不需要集中式伺服器。
存儲與尋址#
IPFS 使用分佈式網絡來存儲檔案,檔案可以存儲在多個計算機上,這有助於防止单點故障。這些節點相互連接,形成一個網絡,用戶可以通過網絡上的任意一個節點來訪問數據。
IPFS 通過哈希鏈接數據而不是檔案名,這意味著檔案可以通過它們的哈希地址進行尋址,而不是它們的位置,可以防止數據的篡改。
IPFS 還提供了一種名為 “IPNS” 的解決方案,它允許使用更易於記憶的名稱訪問檔案,而不是使用哈希地址。IPFS 也可以與其他協議一起使用,例如 HTTP,這意味著它可以作為替代傳統網站的基礎設施。
此外,IPFS 的安全性也很高,因為它使用加密算法來保護數據,並且使用多種技術來保護數據不被篡改。
數據分發與存儲#
IPFS 通過網絡傳輸協議 BitTorrent 協議來分發和共享數據,通過多節點之間的數據分發和共享,使數據的可用性更高。
因為數據哈希都不可篡改,所以想修改檔案時引入了 Git 這種版本控制協議。
為了保證數據可靠性,與區塊鏈類似,IPFS 還會有一些激勵系統Filecoin。
可以簡單理解為:IPFS = BitTorrent + Git + DHT + SFS
DHT 全稱叫分佈式哈希表(Distributed Hash Table),是一種分佈式存儲方法。
在不需要伺服器的情況下,每個客戶端負責一個小範圍的路由,並負責存儲一小部分數據,從而實現整個 DHT 網絡的尋址和存儲。
SFS 代表的是 “Simple File System”,是一種輕量級的檔案系統,用於管理 IPFS 節點上的檔案。
IPFS 與 BitTorrent 都是點對點的分佈式檔案共享協議,但IPFS 更多地關注於檔案內容的持久化和可訪問性,而 BitTorrent 更多地用於檔案傳輸。
同時 IPFS 會加密、對數據分塊。
激勵系統#
IPFS 的存儲激勵系統採用了一種基於加密貨幣的激勵機制,即 IPFS 加密貨幣 Token(簡稱 IPFS Token)。節點可以通過向網絡提供存儲空間和帶寬來獲得 IPFS Token,而內容提供者可以使用 Token 來支付節點為其提供的存儲和分發服務。
IPFS 網關#
而 IPFS 網關它是一個向公眾開放的HTTP網關,可以讓任何人都能夠瀏覽和訪問 IPFS 網絡上的內容,就像訪問傳統的 Web 網站一樣。
即:允許用戶在不安裝 IPFS 節點的情況下訪問 IPFS 網絡中的內容。
用戶可以通過訪問公共網關來查找和下載 IPFS 網絡上的內容,例如通過瀏覽器或其他 HTTP 客戶端來訪問公共網關,然後輸入相應的 CID(Content Identifier,內容標識符)來獲取對應的內容。
不同網關在不同網絡運營商的表現差別很大,導致你提供的下載鏈接在對方那裡可能速度很慢,甚至無法訪問,這時候你可以借助這個下載網關選擇工具IPFS Gateway Selector比較直觀地選擇當前環境下速度較快的網關。
例如,你想訪問一個檔案,知道檔案的哈希或者說 cid 是:bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
那麼對應的地址是:https://ipfs.io/ipns/ipnso.com/?cid=bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
然後在網關列表裡選取一個延遲低的訪問即可,對應的地址類似:
https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
對於分享檔案,可以使用例如share.ipfs.io
不過你分享內容,需要有人打開(訪問)、下載,要不然也是無法存儲的。