
星際檔案系統
本條目翻譯自英語維基百科,需要精通本領域的編者協助校對翻譯。 |
![]() | |
開發者 | Protocol Labs |
---|---|
目前版本 |
![]() |
原始碼庫 | github |
程式語言 | 協定實現:Go(參考實現)、JavaScript、C語言[1], Python 客戶端庫:Go、Java、JavaScript、Python、Scala、Haskell、Swift、Common Lisp、Rust、Ruby、PHP、C#、Erlang |
作業系統 | FreeBSD、Linux、macOS、Windows |
語言 | Go、JavaScript、Python |
類型 | 協定、分佈式檔案系統、內容傳遞網路 |
許可協定 | MIT許可證 |
網站 | ipfs.io |
星際檔案系統(InterPlanetary File System,縮寫為IPFS)是一個旨在實現檔案的分散式儲存、共享和持久化的網路傳輸協定。[2]它是一種內容可定址的對等超媒體分發協定。在IPFS網路中的節點構成一個分散式檔案系統。它是一個開放原始碼專案,自2014年開始由協定實驗室在開源社群的幫助下發展。[3]其最初由Juan Benet設計。[4]
歷史[編輯]
在2014年,IPFS協定是類似於比特幣區塊鏈協定的網路基礎設施,有著儲存不可更改的資料的優勢,可以移除網路上的冗餘檔案,取得儲存節點的位址資訊——以搜尋網路中的檔案。[5]
目前的實現採用Go[6]和JavaScript[7],並有Python實現正在開發。[8]Go實現被認為是開發正式規範時的「參考實現」[9][10]。
描述[編輯]
IPFS是一個對等的分散式檔案系統,它嘗試為所有計算裝置連接到同一個檔案系統。在某些方面,IPFS類似於全球資訊網,也可以被視作一個BitTorrent節點群、在同一個Git倉庫中交換物件。 換種說法,IPFS提供了一個高吞吐量、按內容定址的塊儲存模型,及與內容相關超連結。[11]這形成了一個廣義的Merkle有向無環圖(DAG)。IPFS結合了分散式雜湊表、鼓勵塊交換和一個自我認證的命名空間。IPFS沒有單點故障,並且節點不需要相互信任。[12]分散式內容傳遞可以節約頻寬,並防止HTTP方案可能遇到的DDoS攻擊。
該檔案系統可以通過多種方式訪問,包括FUSE與HTTP。將本地檔案添加到IPFS檔案系統可使其面向全世界可用。檔案表示基於其雜湊,因此有利於快取。檔案的分發採用一個基於BitTorrent的協定。其他檢視內容的使用者也有助於將內容提供給網路上的其他人。
IPFS有一個稱為IPNS的名稱服務,它是一個基於PKI的全域命名空間,用於構築信任鏈,這與其他命名空間相容,並可以對映DNS、.onion、.bit等到IPNS。[13]
Merkle資料格式[編輯]
每個Merkle都是一個有向無環圖 ,因為每個節點都通過其名稱訪問。每個Merkle分支都是其本地內容的雜湊,它們的子節點使用它們的雜湊而非完整內容來命名。因此,在建立後將不能編輯節點。這可以防止迴圈(假設沒有雜湊碰撞),因為無法將第一個建立的節點連結到最後一個節點從而建立最後一個參照。
對任何Merkle來說,要建立一個新的分支或驗證現有分支,通常需要在本地內容的某些組合體(例如列表的子雜湊和其他位元組)上使用一種雜湊演算法。IPFS中有多種雜湊演算法可用。
輸入到雜湊演算法中的資料的描述見 https://github.com/ipfs/go-ipfs/tree/master/merkledag。
使用案例[編輯]
- 在2017年9月至10月間的舉辦的2017年加泰隆尼亞獨立公投,因被西班牙憲法法院認定違法而使網站被封鎖。此後,加泰隆尼亞海盜黨將網站整個鏡像到IPFS上以迴避加泰隆尼亞高等法院的封鎖命令。[14][15]
- IPFS被用於建立維基百科的鏡像,讓那些住在維基百科被國家法律封鎖的地方的人民能繼續存取到維基百科的內容。[16]不過那份被鏡像的維基百科是一份被限制改動的複製本且無法被更新。
- 檔案幣也與IPFS有關,其是由Juan Benet和協定實驗室合作開發的一套基於IPFS的協作儲存雲。[17]
- Cloudflare營運有一個分佈式Web網關,使使用者可在無本地節點的情況下,簡化、加速且安全的訪問IPFS。[18]
- ISFS是蒂姆·伯納斯-李在2001年的一篇論文中創造的詞彙,其IPFS檔案分發和儲存協定是由多個組件組合起來的協定體系的核心之一。[19][來源可靠?]
- IPLF是Dean Reynaud在2001年發表於「Data Science」的一篇開創性文章中創造的一個術語。[20][來源可靠?]
參見[編輯]
- ZeroNet
- 合作儲存雲
- 分散式檔案系統
- 分散式雜湊表
- 自我認證檔案系統
- 珊瑚內容傳遞網路
- Kademlia
- Akasha專案
- OpenBazaar
- IPFS Mining Hero
- Dat (software)
- Freenet
參考資料[編輯]
- ^ Agorise. c-ipfs: IPFS implementation in C. Why C? Think Bitshares' Stealth backups, OpenWrt routers (decentralize the internet/meshnet!), Android TV, decentralized Media, decentralized websites, decent... GitHub. 2017-10-23 [2017-10-25]. (原始內容存檔於2020-04-22).
- ^ Finley, Kurt. The Inventors of the Internet Are Trying to Build a Truly Permanent Web. Wired. 2016-06-20 (英語).
- ^ The IPFS Project. [2015-09-11].
- ^ IPFS README - Who designed it?. GitHub. [2015-09-11] (英語).
- ^ https://cointelegraph.com/news/ipfs-protocol-selects-ethereum-over-bitcoin-prefers-ethereum-dev-community
- ^ ipfs/go-ipfs. GitHub. [2017-02-13] (英語).
- ^ ipfs/js-ipfs. GitHub. [2017-02-13] (英語).
- ^ ipfs/py-ipfs. GitHub. [2017-02-13] (英語).
- ^ IPFS Docs. ipfs.io. [2017-02-13] (英語).
- ^ ipfs/specs. GitHub. [2017-02-13] (英語).
- ^ Ian Allison. Juan Benet of IPFS talks about Filecoin. 國際財經時報. 2016-10-13 [2016-12-26] (英語).
- ^ The IPFS Project - How it works. [2015-09-11] (英語).
- ^ IPFS README. Github. [2015-09-11] (英語).
- ^ Balcell, Marta Poblet. Inside Catalonia's cypherpunk referendum. Eureka Street. 2017-10-05 [2020-06-14]. (原始內容存檔於2018-11-05) (英語).
- ^ Hill, Paul. Catalan referendum app removed from Google Play Store. Neowin. 2017-09-30 [2017-10-06] (英語).
- ^ Dale, Brady. Turkey Can't Block This Copy of Wikipedia. Observer Media. 2017-05-10 [2017-12-20]. (原始內容存檔於2017-10-18) (英語).
- ^ Johnson, Steven. Beyond the Bitcoin Bubble. The New York Times. 2018-01-16 [2018-09-26] (英語).
- ^ Orcutt, Mike. A big tech company is working to free the internet from big tech companies. MIT Technology Review. 2018-10-05 [2020-04-21] (英語).
- ^ IPFS的最核心組件之一ISFS 星鏈. 金色財經. 2020-08-22 [2020-08-24].
- ^ 深入了解IPFS :什麼是IPLF無際鏈. 萬鏈之家. 2021-01-03 [2021-01-03].