什么是IPFS?行星際文件系統 (IPFS) 是我在研究過程中引起注意的系統。它基本上是一個點對點的分布式文件系統,具有文件版本控制(類似于 git)、重復數據刪除、加密哈希而不是文件名等等。與我們逐漸喜愛的傳統文件系統不同,IPFS 非常不同。它甚至有可能取代 HTTP。
IPFS 的驚人之處在于,例如,如果您在 IPFS 上共享文件或站點,則網絡(任何其他運行 IPFS 的人)都能夠在全球范圍內分發該文件或站點。這意味著其他對等點可以從緩存它的任何人那里檢索相同的文件或文件集。它甚至可以從最近的對等點檢索這些文件,這類似于具有任播路由的 CDN,而沒有任何復雜性。
這有可能確保可以比以往更快地檢索網絡上的數據,并且永遠不會像過去那樣丟失。數據丟失的一個著名示例是GeoCities,單個實體無法像雅虎那樣關閉數千個站點。
不過,我不會過多地了解 IPFS 可以做什么的復雜性,這篇簡短的博文中有太多內容需要解釋。可以在此處找到 IPFS 是什么以及可以做什么的詳細分類。
如何安裝并開始使用 IPFS
首先,我從運行 Debian 9 (Stretch) 的GigeNET Cloud啟動了兩個虛擬機。一個在我們的芝加哥數據中心,另一個在我們的洛杉磯數據中心。
為了滾動安裝 IPFS,我們將轉到此頁面并安裝 ipfs-update,這是一個用于安裝 IPFS 的簡單工具。我們在 64 位 Linux 上運行,因此我們將獲取正確的 tar.gz 并將其解壓縮。確保始終獲取最新版本的 ipfs-update!現在讓 cd 到提取的目錄并從我們的 cwd(當前工作目錄)運行安裝腳本。確保您使用 sudo 或 root 權限運行它。安裝 ipfs-update 后(應該非常快),我們將真正安裝 IPFS。輸出應該看起來像這樣。
wget -qO- https://dist.ipfs.io/ipfs-update/v1.5.2/ipfs-update_v1.5.2_linux-amd64.tar.gz | tar xvz
cd ipfs-update/ && ./install.sh
ipfs-update install latest
現在已經安裝了 IPFS,我們需要對其進行初始化并生成一個密鑰對,這反過來又會為您提供一個唯一的身份哈希。此哈希值用于標識您的節點。運行以下命令。
ipfs init
輸出應類似于此。使用此身份哈希,您現在可以與 IPFS 網絡進行交互,但首先讓我們上網。這將啟動 IPFS 守護程序,并在您按 CTRL + C 時將其發送到后臺。可能不建議以 root 身份或以提升的權限運行它。請記住這一點!
ipfs daemon &
現在我們已經連接到 IPFS 群,我們將嘗試共享一個簡單的文本文件。我會將文件添加到 IPFS,IPFS 會生成該文件唯一的哈希值并成為其標識符。然后我會將文件固定在 2 個服務器上,這樣只要這些服務器正常運行,它就不會從網絡中消失。如果人們運行 IPFS 來分發它們,他們也可以固定您的文件!
在我的芝加哥 VM 上添加和固定文件。現在我們已經從另一個虛擬機獲得了文件的哈希值,我們可以將它固定在我們位于洛杉磯的虛擬機上以增加一些彈性。現在為了測試這個,我們將從另一個節點上的 IPFS 網絡抓取文件!
這是一個非常簡單的測試,但它讓您了解 IPFS 在基本情況下可以做什么。總體而言,IPFS 的內部工作原理很難理解,但它是一項相當新的技術,具有很大的潛力。