linux 安装ipfs —— IPFS环境配置

1. IPFS简介

IPFS(InterPlanetary File System)是一个点对点的分布式超媒体分发协议,它整合了过去几年最好的分布式系统思路,为所有人提供全球统一的可寻址空间,包括Git、自证明文件系统SFSBitTorrentDHT,同时也被认为是最有可能取代HTTP的新一代互联网协议。

IPFS用基于内容的寻址替代传统的基于域名的寻址,用户不需要关心服务器的位置,不用考虑文件存储的名字和路径。我们将一个文件放到IPFS节点中,将会得到基于其内容计算出的唯一加密哈希值。哈希值直接反映文件的内容,哪怕只修改1比特,哈希值也会完全不同。当IPFS被请求一个文件哈希时,它会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。

IPFS是通用目的的基础架构,基本没有存储上的限制。大文件会被切分成小的分块,下载的时候可以从多个服务器同时获取。IPFS的网络是不固定的、细粒度的、分布式的网络,可以很好的适应内容分发网络的要求。这样的设计可以很好的共享各类数据,包括图像、视频流、分布式数据库、整个操作系统、模块链、8英寸软盘的备份,还有静态网站。

IPFS提供了一个友好的WEB访问接口,用户可通过http://ipfs.io/hash 获取IPFS网络中的内容,也许在不久的将来,IPFS协议将会彻底替代传统的HTTP协议。

2:去ipfs官网查找下载安装包的路径

https://ipfs.io  

可以看到,可以直接使用命令行安装!

 先决条件先安装kubo!

 3:安装kubo

创建ipfs安装包,配置的存放目录

# mkdir /usr/ipfs
# cd /usr/ipfs/
# wget https://dist.ipfs.io/kubo/v0.14.0/kubo_v0.14.0_linux-amd64.tar.gz

 服务器网络不好的话可以翻墙下载安装包,然后上传到服务器的目录

https://dist.ipfs.io/kubo/v0.14.0/kubo_v0.14.0_linux-amd64.tar.gz

解压安装包:

# tar -xvzf kubo_v0.14.0_linux-amd64.tar.gz

 进入解压后的目录kubo查看目录:

将已解压的文件夹中的ipfs 文件移动到 /usr/local/bin/文件夹中。

# mv ipfs /usr/local/bin/

4:创建ipfs节点

# ipfs init

创建完成后会返回给你一个节点id:

peer identity:是您节点的 ID,与上面输出中显示的不同。网络上的其他节点使用它来查找并连接到您。如果需要,您可以随时运行ipfs id以再次获取它。

以及一个测试的命令:ipfs cat /ipfs/<HASH>/readme

你运行测试命令可以看到如下效果:

就表示你ipfs的本地节点安装成功了!

查看你的节点信息命令:

# ipfs id

 

每个节点都会有一个唯一的ID

init 节点之后会创建一个ipfs的数据存储目录我们可以使用命令看下目录结构

# cd ~/.ipfs/

 

5:修改节点默认存储空间

执行完ipfs init命令后,会在根目录生成一个.ipfs的文件夹存储节点数据。.ipfs节点默认存储空间为10个G

执行命令可修改存储空间大小:

# export EDITOR=/usr/bin/vim
# ipfs config edit

 使用vim修改文本命令修改10GB为你想要的大小保存即可!

也可以修改你自定义的一些ipfs网关端口!

ipfs默认配置 api是5001端口,网关是8080端口

 6:启动节点服务器

启动节点服务器命令:

# ipfs daemon

 可能会提示如下信息:

原因:

从 quic-go v0.19.x 开始,您可能会看到有关接收缓冲区大小的警告。

实验表明,高带宽连接上的 QUIC 传输可能会受到 UDP 接收缓冲区大小的限制。此缓冲区保存内核已接收但应用程序尚未读取的数据包(在本例中为quic-go)。一旦这个缓冲区填满,内核将丢弃任何新的传入数据包。

因此,quic-go 尝试增加缓冲区大小。做到这一点的方法是特定于操作系统的,我们目前有一个实现linux,windowsdarwin. 但是,应用程序只允许将缓冲区大小增加到内核中设置的最大值。不幸的是,在 Linux 上,这个值相当小,对于高带宽 QUIC 传输来说太小了。

解决方案:

# sysctl -w net.core.rmem_max=2500000

此命令会将最大接收缓冲区大小增加到大约 2.5 MB。

我们重新执行下启动节点服务器命令。如下所示:

说明启动成功了!

ctrl + c  退出ipfs

7:跨域资源共享CORS配置

为了后续的开发方便,我们还需要对跨域资源共享( CORS )进行配置,按照下面的步骤进行跨域配置。

# ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
# ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
# ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
# ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
# ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'

8:配置ipfs的API监听地址

由于ipfs节点默认在本机(127.0.0.1)的5001端口监听API请求、8080端口监听http请求,因此如果浏览器和ipfs节点不在同一台机器上,需要让ipfs节点监听公开地址:

# ipfs config --json Addresses.API '"/ip4/0.0.0.0/tcp/5001"' 
# ipfs config --json Addresses.Gateway '"/ip4/0.0.0.0/tcp/8080"'

将API的地址改为 /ip4/0.0.0.0/tcp/5001 这样会监听所有网口, 如果你的服务器有公网IP, 这样会有安全问题, 可以将这个IP设为内网网口地址而不是0.0.0.0


将Gateway的地址改为内网地址或公网地址, 如果IPFS处于内网, 外网可以通过NAT访问, 这个可以配成内网地址.

7 和 8 的配置也可以直接去ipfs的配置文件修改!

# export EDITOR=/usr/bin/vim
# ipfs config edit

9:最后验证

启动服务器

# ipfs daemon

新建终端执行下面的命令

说明配置完成了!

记得关闭防火墙,或者把ipfs的api 端口 在防火墙中开放!

让IPFS一直在后台运行:

在服务器端启动了ipfs daemon命令后,关闭终端对应守护进程也会停止,但我并不想让他停止运行,所以就查到相关信息资料,如下分享:
当我们需要让IPFS一直在后台保持运行时,可以创建一个ipfs.service服务

基于Linux服务器创建一个服务。

# cd /lib/systemd/system/
# vim ipfs.service

粘贴以下代码让IPFS遇到故障后能自动重启服务。

[Unit]
Description=IPFS
[Service]
ExecStart=/usr/local/bin/ipfs daemon
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target

保存退出后执行命令

# systemctl start ipfs

然后访问 http://localhost:5001/webui 会看到一个漂亮的UI界面

常见问题:

如何关闭ipfs守护进程:

killall ipfs
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值