星際文件系統(tǒng)(IPFS)是一個網(wǎng)絡(luò)傳輸協(xié)議,旨在創(chuàng)建持久和分布式存儲和共享文件。它是一個具有可尋址內(nèi)容的點對點超媒體分布協(xié)議。IPFS網(wǎng)絡(luò)中的節(jié)點將形成一個分布式文件系統(tǒng)。目前的實現(xiàn)是在Go和JavaScript中,Python的實現(xiàn)也在開發(fā)中,Go的實現(xiàn)被認為是官方規(guī)范開發(fā)的 "參考實現(xiàn)"。
IPFS是一個對等的分布式文件系統(tǒng),試圖為所有計算設(shè)備連接相同的文件系統(tǒng)。在某些方面,IPFS類似于萬維網(wǎng),但它也可以被認為是一個獨立的BitTorrent蜂群,在同一個Git倉庫中交換對象。換句話說,IPFS提供了一個高吞吐量、內(nèi)容可尋址的塊存儲模型,并有內(nèi)容相關(guān)的超鏈接。這就形成了一個廣義的Merkle有向無環(huán)圖(DAG)。IPFS結(jié)合了分布式哈希表,鼓勵塊交換,以及自我認證的命名空間。分布式內(nèi)容交付節(jié)省了帶寬,防止了HTTP方案可能遇到的DDoS攻擊。
文件系統(tǒng)可以通過多種方式訪問,包括FUSE和HTTP,將本地文件添加到IPFS文件系統(tǒng)中,使其在全球范圍內(nèi)可用。文件的表示是基于它的哈希值,因此有利于緩存。文件使用基于BitTorrent的協(xié)議進行分發(fā)。IPFS有一個名為IPNS的名稱服務(wù),它是一個基于PKI的全球名稱空間,用于構(gòu)建信任鏈,它與其他NS兼容,可以將DNS、.onion、.bit等映射到IPNS。