什麼是行星際文件系統 (IPFS) 以及如何使用它?

已發表: 2022-06-25
幾個帶有“人類”符號的六角形瓷磚連接在網絡中。
安德烈亞蘭斯基/Shutterstock

星際文件系統 (IPFS) 是一個分佈式的點對點文件共享網絡,可以很好地成為新的去中心化網絡的基礎。 以下是它的工作原理,以及如何開始使用它。

目錄

去中心化的互聯網
IPFS 的工作原理
數據如何存儲
如何安裝 IPFS
網頁界面
IPFS 桌面客戶端
接下來是什麼?

去中心化的互聯網

儘管它是全球性的,但萬維網仍然是一個集中式網絡。 互聯網背後的數據存儲主要是大型服務器場或云平台中的物理或虛擬服務器。 這些設施歸一家公司所有。 服務器由其他公司擁有或租用,並被配置和公開以供外部世界訪問。

什麼是 HTTPS,我為什麼要關心?
相關什麼是 HTTPS,我為什麼要關心?

任何想要訪問這些服務器上的信息的人都必須從他們的瀏覽器建立一個 HTTPS 連接到相應的服務器。 服務器位於中心,為訪問它所擁有的數據的所有請求提供服務。

這當然是一種簡化,但它確實描述了一般模型。 為了允許擴展並提供穩健性,組織可以使用鏡像服務器和內容交付網絡。 但即便如此,人們可以訪問這些文件的位置仍然相對較少且數量有限。

IPFS 是去中心網絡的實現。 最流行的去中心化系統之一是版本控制軟件 Git。 Git 是一個分佈式系統,因為每個克隆存儲庫的開發人員在他們的計算機上都有整個存儲庫的副本,包括歷史記錄。 如果中央存儲庫被清除,則可以使用存儲庫的任何副本來恢復它。 IPFS 採用該分佈式概念並將其應用於文件存儲和數據檢索。

IPFS 由 Juan Benet 創建,由他創立的公司 Protocol Labs 維護。 他們採用了 Git 的去中心化特性和種子的分佈式、節省帶寬的技術,並創建了一個文件系統,該系統可以在 IPFS 網絡中的所有節點上運行。 它現在就在這裡,並且正在工作。

IPFS 的工作原理

IPFS 去中心化網絡由連接到它的所有計算機組成,稱為節點。 節點可以存儲數據並使任何請求它的人都可以訪問它。

如果有人請求文件或網頁,則該文件的副本會緩存在他們的節點上。 隨著越來越多的人請求該數據,將存在越來越多的緩存副本。 對該文件的後續請求可以由具有該文件的任何節點或節點組合來完成。 傳遞數據和滿足請求的負擔逐漸在許多節點之間分擔。

這就需要一種新型的網址。 分散式網絡使用基於內容的路由,而不是基於地址的路由,您必須知道數據的位置並為該數據提供特定的 URL。

面向初學者的 BitTorrent:如何開始下載 Torrent
相關BitTorrent 初學者:如何開始下載 Torrent

你沒有說數據在哪裡; 您請求想要的東西,它會為您找到並檢索。 由於數據存儲在許多不同的計算機上,所有這些計算機都可以一次將部分數據提供給您的計算機,就像種子下載一樣。 這旨在降低延遲、減少帶寬並避免由單個中央服務器引起的瓶頸。

遠離集中式模型意味著黑客沒有攻擊的焦點。 但大多數人最關心的是他們的文件、圖像和其他媒體將存儲在其他人的計算機上。

不完全是這樣。 IPFS 不是您連接和上傳的東西。 它不是分佈式的公共 Dropbox。 您可以通過託管節點或付費使用由雲服務託管的專業配置節點來參與其中。 除非您選擇共享或發布某些內容,否則其他任何人都無法訪問它。 事實上,“上傳”一詞具有誤導性。 您真正要做的是將文件導入您自己的節點。

什麼是加密,它是如何工作的?
相關什麼是加密,它是如何工作的?

如果您希望文件可供其他人訪問,但需要將內容限制為少數人,則應在導入之前對其進行加密。 數據的傳輸是雙向加密的,但導入的文件在默認情況下故意不加密。 這讓您可以選擇加密技術。 IPFS 不會將文件存儲加密形式作為“官方”加密。

數據如何存儲

數據存儲在 256 KB 的塊中,稱為 IPFS 對象。 大於該大小的文件將拆分為容納該文件所需的盡可能多的 IPFS 對象。 每個文件一個 IPFS 對象包含指向構成該文件的所有其他 IPFS 對象的鏈接。

什麼是校驗和(以及為什麼要關心)?
相關什麼是校驗和(以及為什麼要關心)?

當一個文件被添加到 IPFS 網絡時,它會被賦予一個唯一的 24 個字符的哈希 ID,稱為內容 ID或 CID。 這就是它在 IPFS 網絡中被識別和引用的方式。 檢索文件時重新計算哈希值可驗證文件的完整性。 如果檢查失敗,則文件已被修改。 當文件被合法更新時,IPFS 會處理文件的版本控制。 這意味著文件的新版本與以前的版本一起存儲。 IPFS 像分佈式文件系統一樣運行,這種版本控制概念為該文件系統提供了一定程度的不變性。

假設您在節點上的 IPFS 中存儲了一個文件,一個叫 Dave 的人請求它並將其下載到他們的節點。 下一個請求該文件的人可能會從您或 Dave 或以類似洪流的方式獲取該文件,其中部分文件來自您的節點和 Dave 的節點。 下載文件的人越多,參與並幫助處理後續文件請求的節點就越多。

垃圾收集會定期刪除緩存的 IPFS 對象。 如果您想永久存儲文件,可以將其固定到您的節點。 這意味著它不會在垃圾收集期間被清除。 您可以在雲存儲提供商處支付存儲費用,這些提供商將您的數據暴露給 IPFS 網絡並將它們永久固定,並且有專門為可訪問 IPFS 的託管網站量身定制的服務。

如果您網站上的某些內容像病毒一樣傳播並為您的網站帶來大量流量,則這些頁面將緩存在檢索這些頁面的所有節點中。 這些緩存頁面將用於幫助服務進一步的頁面請求,幫助您順應潮流並滿足需求。

當然,所有這些都取決於有足夠數量的可用節點,以及足夠多的固定和緩存數據。 這需要參與者。

如何安裝 IPFS

Windows 用戶可以下載並運行 IPFS 發布頁面上的 EXE 文件。 如果您使用的是 Mac,請像往常一樣下載 DMG 文件並將其拖到應用程序中。 如果遇到問題,請查看官方文檔。

出於演示目的,我們將在 Ubuntu 上進行安裝。 在任何 Linux 發行版上都有可用於 IPFS 和 IPFS 桌面客戶端的 Snap 包。 如果您只是安裝 IPFS,您將擁有一個可以使用瀏覽器控制和管理的完全正常工作的 IPFS 節點。 如果您安裝桌面客戶端,則不需要使用瀏覽器,客戶端提供所有相同的功能。

要安裝 Snap,請使用:

 sudo snap install ipfs 

安裝核心 IPFS 快照

 sudo snap install ipfs-desktop 

安裝 IPFS 桌面客戶端快照

現在您需要運行命令來初始化您的節點。

 ipfs 初始化

初始化 IPFS 節點

如果您遇到困難並且守護程序沒有運行,或者您無法連接到它,IPFS 建議使用以下命令。 在我們嘗試過的所有測試計算機上,這些都是必需的,所以您不妨現在就發布它們:

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https ://webui.ipfs.io"]' 

在 IPFS 中配置跨源請求

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]' 

在 IPFS 中配置訪問方法

 sudo sysctl -w net.core.rmem_max=2500000 

調整網絡緩衝區大小

有了這些,您可以啟動 IPFS 守護程序。

 ipfs 守護進程

啟動 IPFS 守護進程

當守護程序啟動時,它會報告您可以用來連接到它的兩個地址。 一個用於 IPFS 桌面,另一個用於 IPFS “webui”或 Web 用戶界面。

IPFS 守護程序連接地址

網頁界面

將 webui 地址http://127.0.0.1:5001/webui粘貼到瀏覽器中以連接到 IPFS Web 前端。

默認頁面是“狀態”屏幕。 這是一個顯示節點狀態和活動的儀表板。 它顯示了您託管的文件的大小,以及您的節點託管的緩存 IPFS 對象的總大小。 這是來自 IPFS 網絡中其他地方的數據。 儀表板還顯示了兩個顯示入站和出站 IPFS 流量的實時儀表,以及一個顯示該流量歷史的實時圖表。

IPFS webui 狀態屏幕

要更改為不同的屏幕,請單擊左側邊欄中的圖標之一。 “文件”屏幕可讓您查看已導入 IPFS 的文件。 您可以使用藍色的“導入”按鈕在計算機上搜索要導入 IPFS 的文件或文件夾。

IPFS webui 文件屏幕

IPFS 使用 Merkle 樹。 這些是二叉哈希樹的一個非常有效的超集,由 Ralph Merkle 於 1979 年發明。 如果你有很多樹,你就有了一片森林。 “探索”圖標會打開一個屏幕,讓您瀏覽存儲在 IPFS 及其 Merkle 森林中的不同類型的信息。

IPFS webui 文件屏幕

有來自著名的 XKCD 網站的卡通檔案。 單擊該選項並選擇卡通會通過 IPFS 將您選擇的卡通傳遞給您。

通過 IPFS 交付的 XKCD 卡通

“Peers”圖標打開了一張世界地圖,繪製了您的 IPFS 連接在全球範圍內的位置。

IPFS webui Peers 屏幕

幾分鐘之內,我們就接到了來自澳大利亞、白俄羅斯、比利時、加拿大、中國、芬蘭、法國、德國、日本、馬來西亞、荷蘭、挪威、波蘭、葡萄牙、羅馬尼亞、俄羅斯、新加坡、韓國、瑞典、台灣、土耳其、英國,當然還有美國。

如果需要的話,證明 IPFS 已經引起了全球轟動。 當然,您不會連接到每個可用節點。 那將是低效的。

IPFS 桌面客戶端

在系統的應用程序啟動器中找到 IPFS Desktop。 在 GNOME 上,停止IPFS 守護程序,按“Super”鍵並輸入“ipfs”。 您將看到藍色的 IPFS 立方體圖標。

單擊此圖標,桌面客戶端將啟動。 它將啟動守護程序本身。

桌面客戶端的外觀和功能與 Web 界面完全相同,但這次它作為獨立應用程序運行。

IPFS 桌面客戶端

該應用程序提供的一項附加功能是通知區域中的應用程序指示器。

這使您可以快速訪問選項菜單和節點狀態的紅綠燈指示器。 指示燈為綠色正常運行,紅色為錯誤,黃色為啟動。

IPFS 應用程序指示器菜單

接下來是什麼?

沒有什麼會突然取代現有的集中式網絡,但隨著時間的推移,事情會發展。 也許 IPFS 是它可能演變成的一瞥。