什么是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 的内部工作原理很难理解,但它是一项相当新的技术,具有很大的潜力。