为了管理多个IPFS节点,需要用到ipfs-cluster

IPFS-Cluster 安装

IPFS-Cluster 包含两个组件:

  • ipfs-cluster-service 用于初始化集群 peer 并运行它的守护进程
  • ipfs-cluster-ctl 管理集群的节点和数据

我们将ipfs-cluster克隆到 GOPATH 下,然后 make 编译安装(系统已安装 make):

git clone https://github.com/ipfs/ipfs-cluster.git $GOPATH/src ipfs-cluster

在本地调试发现git clone不来,查了下资料,发现了个黑科技,只要把上方的https也改成git,就灰常之迅速的clone到本地了

git clone git://github.com/ipfs/ipfs-cluster.git $GOPATH/src ipfs-cluster

小小二开一下,此步骤可以跳过

此处内容需要权限查看

您还没有获得查看权限永久VIP可免费查看

升级VIP免费查看

国内需要设置下代理,不然链接不上golang

export GOPROXY=https://goproxy.io,direct

然后在go-ipfs/目录下执行

make install

查看一下是否安装成功:

ipfs-cluster-service --version
ipfs-cluster-ctl --version

设置集群密钥

类似于 IPFS 的秘钥,我们管理节点中生成一个随机密钥:

od -vN 32 -An -tx1 /dev/urandom | tr -d ' \n'

将生成的随机你字符串加入到环境变量中,比如:b55262c36de6f97bd50b5233f75866445ec51db74613bad78e906c4dc9ba1d30 分别修改每一个节点的的~/.bashrc添加到环境变量中:

export CLUSTER_SECRET=b55262c36de6f97bd50b5233f75866445ec51db74613bad78e906c4dc9ba1d30

保存后别忘了 source ~/.bashrc

初始化集群

每一台节点执行初始化命令:

ipfs-cluster-service init

#初始化成功后,会生成一个 ~/.ipfs-cluster 文件目录,跟安装ipfs 一样,生成~/.ipfs目录

1.查看ipfs-cluster service.json文件

2.修改 service.json文件

  a)   备份secret 密钥,同其他集群节点共享

  b)   修改 ipfs_connector.ipfshttp.node_multiaddress 与本机ipfs节点api 地址一致,

  c)   Proxy_listen_multiaddress 修改成本机ip地址

  d)   必要时,api.restapi.http_listen_multiaddress 修改ip地址,对外提供可访问的ipfs-cluster-service api 地址

在管理节点启动进程

ipfs-cluster-service daemon

记录下启动信息 : /ip4/192.168.1.170/tcp/9096/ipfs/QmNUkAGXxKqvAJvZPHRPZoCLwkReSGWByxbcat6t6x2ukz

将 IPFS-Cluster 节点加入到系统进程中启动

1.which命令查看ipfs-cluster路径

which ipfs-cluster-service

2.创建一个ipfs-cluster.service服务

cd /lib/systemd/system/
vi ipfs-cluster.service

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

[Unit]
Description=IPFS-Cluster Daemon
Requires=ipfs
After=syslog.target network.target remote-fs.target nss-lookup.target ipfs
[Service]
Type=simple
ExecStart=/usr/local/gopath/bin/ipfs-cluster-service daemon
User=root
[Install]
WantedBy=multi-user.target

现在可以通过下面的命令来启动 ipfs-cluster 的后台守护进程了:

systemctl daemon-reload
systemctl enable ipfs-cluster
systemctl start ipfs-cluster
systemctl status ipfs-cluster

详细使用看:IPFS问题总结笔记

以上为管理节点的搭建方式,接下来运行客户端节点

在初始化节点后,将管理节点的ipfs-cluster service.json里面的secret 密钥替换到客户端的ipfs-cluster service.json

然后找到上方保存的管理端启动信息

/ip4/192.168.1.170/tcp/9096/ipfs/QmNUkAGXxKqvAJvZPHRPZoCLwkReSGWByxbcat6t6x2ukz

其他节点全部运行

ipfs-cluster-service daemon --bootstrap /ip4/192.168.11.11/tcp/9096/ipfs/12D3KooWEGrD9d3n6UJNzAJDyhfTUZNQmQz4k56Hb6TrYEyxyW2F

即可对接主节点