教你在网络上用HTTP网关运行IPFS节点

介绍IPFS:在网络上用HTTP网关运行节点你可能了解IPFS分布式文件系统,并想在自己的堆栈中采用该技术——毕竟未来不可避免是一个分布式、去中心化的世界。该行业的软件领域在实现去中心化的目标上正取得快速进展。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

介绍IPFS:在网络上用HTTP网关运行节点

教你在网络上用HTTP网关运行IPFS节点

你可能了解IPFS分布式文件系统,并想在自己的堆栈中采用该技术——毕竟未来不可避免是一个分布式、去中心化的世界。该行业的软件领域在实现去中心化的目标上正取得快速进展。

IPFS,即星际文件系统,2015年伴随着分布式互联网的概念而诞生,其目标是取代我们今天所熟知和使用的中心化HTTP网页。

底层的IPFS网络功能使用文件系统作为网络资产的全球CDN网络,具有超快的交付速度。我们设置的每个节点都可以作为文件系统的访问点。

IPFS是在星际范围内(字面上)分发文件,但HTTP不是。这就是每个IPFS节点需要充当接入点的原因。世界某个地方的节点,服务于该地理位置的流量。

本文将更具体地介绍:

1. 在服务器上安装IPFS软件。提供CentOS7 VPS版,同时也提供所有Linux发行版的文档教程。

2. 将IPFS存储库配置存储在已经安装好的容量上。为什么?您可以按所需配置IPFS存储库大小,因此,最好指定一个容量,以便在需要时调整大小。在本文中,我将提到数字海洋的区块存储容量方法(Block Storage Volumes),但同样,您可并不仅限于此方法。

3. 打开所需的防火墙端口。防火墙将被配置为打开VPS的必要端口,以便网络与其他节点进行交互。

4. 使用监控器在后台运行IPFS。监控器是我经常使用的进程管理器——它确保在系统引导时启动IPFS,并在进程崩溃或被中断时重启进程。需要在进程配置中定义环境变量。

5. 打开IPFS节点的HTTP网关。在节点成功运行之后,我们将关闭http网关,并修改一些配置选项,以允许HTTP从节点访问IPFS内容。

6. 对其他VPS重复此过程,并将节点作为对等节点连接。这样会在IPFS节点之间提供直接连接。在节点之间相互感知的情况下,IPFS协议能优化它们之间的数据传输。

  • IPFS网关

网关通过HTTP请求从IPFS网络访问数据。默认情况下,IPFS网关配置端口为8080,然后可以从端口8080获取内容。

更具体地说,数据将从VPS通过:http://:8080/IPFS/获取。

注意,默认情况下是非加密的。

例如,NginX proxy pass可以处理IPFS节点的加密请求,并在IPFS配置文件中配置CORS,只允许某些特定域访问网关。

您可能意识到协议实验室本身提供了网关gateway.IPFS.io,所有人可从IPFS网络中获取内容,列如:https://gateway.IPFS.io/IPFS/,用于演示。但实际上我们依赖第三方将HTTP接入点托管到IPFS网络中。这个访问点可能会停机或超载,这是一个单点故障。

  • 可用网关

还有其他在线网关吗?还有Infura这样提供IPFS网关的服务商。这非常有帮助,特别是当您网络过载的情况下,需要将流量从服务器上卸载到其他服务器上时。但是,我们也受到上述同样的限制。

就我个人而言,作为一个去中心化网络的乐观主义者,我希望有一个不依赖少数公司来管理我们重要端点的互联网。现实表明,对于今天的商业应用程序来说,中心化服务很可能是必不可少的。因此,从战略上讲,中心化服务应用分布式方案是当今构建应用程序最安全、最可行的方式。随着基础设施的发展,第二个的重要性将开始超过第一个。

  • 映射到IPFS

我们现在所能做的就是将安装的每个IPFS节点设置为网关。IPFS节点既是客户机又是主机;它们同时托管和服务数据,而数据的处理主要由底层的比特交换协议决定。

本文并不讨论底层IPFS协议技术;请参阅白皮书了解系统如何运行。

我们继续讲解安装IPFS并配置存储库。

  • 安装IPFS

安装IPFS很简单。完整的IPFS协议是用Go编写的,因此安装包需命名为go-ipfs。

注意:目前正在构建一个Javascript式的IPFS版本。该版本还未完全准备好用于生产环境,但是您可以通过https://github.com/IPFS/js-IPFS 了解、贡献或关注它。

选择1:手动安装

运行以下命令在任何Linux操作系统上安装go-ipfs:

教你在网络上用HTTP网关运行IPFS节点

运行上述命令将下载最新的IPFS安装包,用tar解压,然后运行install.sh将二进制文件移动到操作系统路径目录。对于CentOS7系统,路径是/usr/local/bin。

了解最新版本,请访问:https://dist.ipfs.io/#go-ipfs

VPS需要用Linux Binary amd64构建。

运行 ipfs help命令将输出CLI选项,验证安装是否正确。

选择2:使用ipfs-update进行安装

我们还可以使用专门为这些任务设计的另一个程序来安装和更新IPFS,即ipfs -update。

请在https://dist.ipfs.io/#ipfs-update找到最新版本。

运行以下命令安装和更新IPFS。

教你在网络上用HTTP网关运行IPFS节点

安装后,运行ipfs-update version命令会向我们列出可用的版本。ipfs-update install latest将安装最新的go-ipfs版本。

  • 预置IPFS

下一步是初始化IPFS存储库:存储库托管IPFS配置和数据库。数据库是节点托管网络共享数据的位置。初始化存储库会为节点生成特定的密钥对和节点身份哈希,以及其他数据。

可用IPFS init初始化IPFS存储库。生成带有标准默认配置文件的IPFS存储库,默认配置值假定我们不在服务器上运行IPFS。

一旦初始化,此配置文件将作为 配置保存在存储库根目录中,以便我们在需要时进行修改。

这个配置文件决定了关于IPFS存储库的很多信息,从引导节点、节点列表、数据存储、CORS配置等等。了解配置文件请访问:https://github.com/IPFS/go-IPFS/blob/v0.4.15/docs/config.md

正如前面提到,我们可以使用带有ipfs init的配置文件标志来快速设置针对优化特定环境的配置。服务器可用ipfs init --profile server。

默认情况下,您的存储库是在~/.IPFS生成的。这在VPS上不是很灵活,因此我们将存储库存储在已安装的XFS格式化卷上。如果您不想这样做,请忽略这一步。

  • 安装区块存储卷

让我们在卷上创建一个名为.ipfs的目录来托管IPFS存储库:

教你在网络上用HTTP网关运行IPFS节点

IPFS需要知道我们想在这个位置初始化存储库。为此,将IPFS_PATH环境变量设置为目录:

教你在网络上用HTTP网关运行IPFS节点

最后,初始化存储库:

教你在网络上用HTTP网关运行IPFS节点

得到一个输出,验证节点身份哈希的初始化是否成功。在安全的地方记下这个哈希值。

此时,浏览配置文件,你可以:

教你在网络上用HTTP网关运行IPFS节点

ipfs config show需要设置IPFS_PATH环境变量,否则将找不到配置。因此,在后续SSH会话中使用less可能更实用。

  • 打开所需的防火墙端口

打开以下3个端口,使IPFS通信正常工作:

教你在网络上用HTTP网关运行IPFS节点

我选择在CentOS VPS中使用防火墙。重新加载服务之后,列出您的公共分区端口,验证它们是否正确配置。

  • 后台运行IPFS

在配置IPFS节点的HTTP网关之前,需运行它来检查是否正常工作,然后将该进程附加到一个监控器进程,以便在后台运行。

运行ipfs daemon命令打开您的IPFS节点,并将在终端窗口中运行,只要它是打开的,并保持与服务器的连接。

现在是熟悉守护进程CLI的好时机。使用Iipfs daemon — help检查CLI。下文介绍了一些非常有用的技巧,列出了一些常见的配置选项和需要注意的事项。

可运行CLI命令更新配置文件,也可以用您最喜欢的编辑器手动打开文件。用你喜欢的方法。

如果守护进程正在运行,按CTRL+C停止。

  • 将IPFS守护进程设置为监控器进程

接下来,我们将使用监控器将IPFS守护进程作为后台进程运行。

如果您还不了解进程管理器——监控器,可以在http://monitsord.org上找到相关信息。安装程序最简单的方法是用pip或easy_install命令:

教你在网络上用HTTP网关运行IPFS节点

安装完成后,使用以下命令创建配置文件:

教你在网络上用HTTP网关运行IPFS节点

默认情况下,监控器将在引导时启动;不需要进一步的配置。现在首次启动监控器:

教你在网络上用HTTP网关运行IPFS节点

并在配置文件底部添加IPFS进程:

教你在网络上用HTTP网关运行IPFS节点

注意 environment.(环境),这里我们要再次定义IPFS_PATH环境变量,以便下面的ipfs daemon命令知道存储库的位置。

现在,请用supervisorctl CLI重新读取和更新我们的监控器进程列表,启动IPFS:

教你在网络上用HTTP网关运行IPFS节点

现在IPFS正在运行。用以下命令进行检查:

教你在网络上用HTTP网关运行IPFS节点

现在,我们已经有了一个可以工作的IPFS节点,它为整个网络做出了贡献!

但是还不能直接从节点用HTTP请求访问内容。此时需要修改一些配置选项。接下来:

关闭IPFS进程,然后:

教你在网络上用HTTP网关运行IPFS节点

  • 配置IPFS HTTP网关

打开配置文件,更改如下:

MaxStorage:默认大小是10GB,但是您可以根据自己的资源修改这个值。例如,如果您需要更改为1GB:

教你在网络上用HTTP网关运行IPFS节点

存储库越大,节点消耗的CPU和带宽就越多。您可能要用系统监视工具试验哪种大小最适合您的环境。

更改您的网关地址:

教你在网络上用HTTP网关运行IPFS节点

修改您的网关配置,以符合以下要求:

教你在网络上用HTTP网关运行IPFS节点

这里的粗体内容是我修改的默认配置内容。

保存这些更改并使用sudo supervisorctl start ipfs. 启动IPFS。现在您的网关应该可以通过HTTP请求访问了。使用以下URL尝试在您的浏览器中加载猫的图片:

教你在网络上用HTTP网关运行IPFS节点

如果这只可爱的小猫加载出来了,你的网关就可以工作了。

打开网关并接受HTTP请求后,就可以对其他VPS重复此过程。

  • 连接其他节点

从物理位置上看,您的节点连接到哪些对等节点是非常有趣的。启动守护进程几秒钟后,您将拥有大量与节点通信的对等节点。用以下命令查看:

教你在网络上用HTTP网关运行IPFS节点

若要将你的VPS节点作为对等节点进行连接,请对每个节点使用以下命令:

教你在网络上用HTTP网关运行IPFS节点

地址格式需要是IPFS multiaddr。以下是IPFS文档的一个例子:

教你在网络上用HTTP网关运行IPFS节点

上面的两个粗体值分别是VPS IP地址和对等节点的身份哈希。

若要断开与对等节点的连接,请使用断开连接命令:

教你在网络上用HTTP网关运行IPFS节点

与节点断开连接可能只是暂时的——如果IPFS需再次与节点通信,可再次连接。

请在:https://docs.IPFS.io/reference/api/cli/查阅IPFS CLI文档。

  • 结论

此时,您的网络将拥有IPFS活节点,这些节点带有访问系统内容的网关。作为一个全球单一实体,您已经成功地增强了网络,同时还

增加了你接入IPFS哈希内容海洋的能力,一切由你处理。

本文旨在介绍如何在服务器上使用IPFS。日后我将写更多的见解;现在只是接触了IPFS生态系统的冰山一角。

在这个介绍阶段,需要考虑一些设置,以便改进IPFS基础设施:

  1. 限制访问节点的域,并设置加密的proxy pass 来处理访问IPFS内容的HTTPS连接。考虑一下您的产品应用程序将如何从IPFS获取数据——它们将与哪个节点通信?

  2. 请查看其他支持IPFS的库。Github主页:https://github.com/IPFS。IPFS的生态系统庞大而且增长迅速——请熟悉我们在Github正在进行的工作。

  3. Javascript IPFS HTTP客户机是一个有趣的库,您可从Javascript环境直接与IPFS交互。请登录https://github.com/IPFS/js-IPFS-http-client查看。

请告诉我您是如何使用IPFS的!我对您的应用场景很感兴趣。

©版权信息

原文链接:

https://medium.com/@rossbulat/introduction-to-ipfs-set-up-nodes-on-your-network-with-http-gateways-10e21ea689a4

译者:大大大东☀️
版权声明: 译稿版权归属头等仓,任何转载均需得到授权,原文内容不代表头等仓立场,头等仓只对翻译质量负责,不对内容负责。
本文由 区块链资讯平台头等仓 作者:Maggie 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

发表评论