1. 首页
  2. 技术分享

ipfs-cluster节点集群搭建|点滴技术

 

ipfs-cluster节点集群搭建|点滴技术
ipfs节点集群。该工具允许同时管理多个ipfs节点的数据。ipfs-cluster本身也是一个基于ipfs分布式管理软件。

对于管理多个ipfs-cluster节点很有用。启动了N个ipfs节点,希望批量管理ipfs节点的数据的时候ipfs-cluster就发挥很重要作用。

ipfs-cluser工具分为两个

1.ipfs-cluster-service:ipfs-cluster的服务端

2.ipfs-cluster-ctl:ipfs-cluster的管理端,用来管理ipfs-cluster-service服务器的ipfs集群

安装

下载安装非常简单:建议从ipfs官网下载build好的版本,也可以从Github现在源码,自己build工程。如果是下载已经build好的二进制版,只需要简单解压缩就完成了安装。

Github地址:https://github.com/ipfs/ipfs-cluster

官网二进制版本的下载地址

https://dist.ipfs.io/#ipfs-cluster-ctl

https://dist.ipfs.io/#ipfs-cluster-service

使用方法和原理:

依赖关系

ipfs-cluster-service:要求ipfs节点已经启动(ipfs daemon)

ipfs-cluster-ctl:要求ipfs-cluster-service已经启动。

一、首先启动n个节点

首先创建ipfs节点A,步骤如下:

1.启动ipfs daemon

2.初始化 ipfs-cluster-service:ipfs-cluster-service init:初始化ipfs-cluster-service服务,初始化ipfs-cluster-service服务。如果没有启动过或者设置过 ipfs-cluster-service,ipfs-cluster-service默认会启动单一节点的ipfs集群管理。这个步骤跟ipfs节点启动是一样的。

3.启动ipfs-cluster-service服务:执行 ipfs-cluster-service daemon启动服务,这个也跟ipfs的启动命令是一样的。

当执行ipfs-cluster-service init后,会在你的home文件夹下生成一个文件夹 ./ipfs-cluster,ipfs-cluster-service的配置文件 service.json就在里面保存。稍后我们需要配置这个文件里面的一个字段 secret。至此单节点的ipfs-cluster-service已经完成启动了。但是单节点启动ipfs-cluster-service是没有意义的,我们本来就是要管理多个ipfs节点的。

重复上面 1-4, 再新建两个节点B和C。

我们在A节点上比B,C节点上额外多安装ipfs-cluster-ctl。这个是ipfs-cluster-service的命令行管理工具,于是我们有了三个ipfs节点。

三个ipfs节点的配置情况

A: 54.95.29.13

ipfs节点id:Qmf4p5G4Hd29Djzg9Cjjggpa2d4PSBMpFxFdPMbddhsZMm

服务节点ID:Qmc95KCJsiE3xm5JVndBTqVGU1UanpQMYpcigSLvZnyDVT

服务节点地址:

/ip4/54.95.29.13/tcp/9096/ipfs/Qmc95KCJsiE3xm5JVndBTqVGU1UanpQMYpcigSLvZnyDVT

B: 18.182.8.13

ipfs节点id:

QmRQH6TCCq1zpmjdPKg2m7BrbVvkJ4UwnNHWD6ANLqrdws

Ipfs-service:

服务节点ID:QmevDxdpGqiYbjxYhvDvH7Y9hJEPyZFqPttPhMXf1bWBYr

服务节点地址:

/ip4/18.182.8.13/tcp/9096/ipfs/QmevDxdpGqiYbjxYhvDvH7Y9hJEPyZFqPttPhMXf1bWBYr

C: 13.230.8.172

ipfs节点id:QmVt1zSep5v8r8tzKBLZUicEu9NoeQX9sWxvVD6UXgcL4t

/home/ubuntu/.ipfs-cluster/service.json

服务节点ID: QmSjVWduwztX9Tj3rN1YtfuAwzMLV5PywNgLxvpCLbu3TK

服务节点地址:

/ip4/13.230.8.172/tcp/9096/ipfs/QmSjVWduwztX9Tj3rN1YtfuAwzMLV5PywNgLxvpCLbu3TK

二、配置

首先把每一个节点上面执行 ipfs-cluster-service初始化的配置文件(../ipfs-cluster/service.json)里面的secret字段修改成一样的,每一个节点都必须保证一样,否则节点之间是无法形成集群的。secret是一个32位的随机字串。

ipfs-cluster节点集群搭建|点滴技术
三、组建IPFS节点集群

使用A节点作为管理节点。

执行下面两个命令将节点B和C添加到集群里面

1.ipfs-cluster-ctl peers add /ip4/18.182.8.13/tcp/9096/ipfs/QmevDxdpGqiYbjxYhvDvH7Y9hJEPyZFqPttPhMXf1bWBYr

2.ipfs-cluster-ctl peers add /ip4/13.230.8.172/tcp/9096/ipfs/QmSjVWduwztX9Tj3rN1YtfuAwzMLV5PywNgLxvpCLbu3TK

 

ipfs-cluster节点集群搭建|点滴技术
添加节点到ipfs集群里面

使用命令:ipfs-cluster-ctl peers ls 查看集群详情

ipfs-cluster节点集群搭建|点滴技术
集群的运行如下,从截图上我们可以看到新添加的节点进入了集群的日志。

ipfs-cluster节点集群搭建|点滴技术
四、管理集群

pin一个文件,执行命令(节点A)

ipfs-cluster-ctl pin add QmdDTor6dWzknFJPJuhJgrUYqd56WkFXYAxyxpEY7kUrEb

执行结果如图所示

ipfs-cluster节点集群搭建|点滴技术
从其他节点的日志查询

 

ipfs-cluster节点集群搭建|点滴技术
可以看到pin操作在所有的节点被执行。我们可以通过ipfs-cluster对集群数据进行管理。

ipfs-cluster共识协议:Raft

ipfs-cluster是一个基于ipfs的分布式节点管理工具,要在多个节点之间执行同样的动作(比如:pin ,rm),ipfs是个分布式对等网络,那么逃不开的一个问题就是拜占庭共识问题(拜占庭问题对于分布式对等网络如影随形),ipfs-cluster在这里使用了Raft协议来达成作为节点之间的共识协议。

Raft分布式对等网络一致性的一种解决方案,即拜占庭问题的一种解决方案。

中文版:https://www.cnblogs.com/mindwind/p/5231986.html

动画版:http://thesecretlivesofdata.com/raft/

Raft协议与Pow协议的异同:

共同点

1.比特币和Raft协议都解决是对等网络分布式一致性问题,所有的节点状态最终是一致的

2.比特币和Raft都允许临时性的分叉

3.都是通过单节点记录的方式进行一致性解决方案,比特币通过挖矿,Raft通过选举

不同点

1.Raft协议里面所有的节点都是可信的,就是说每个节点成为领导节点后,所发送的信息其他节点都会接受;比特币网络里面节点只信任拥有最大工作量(最长链)

2.Raft协议选举领导节点;比特币系统中不存在领导节点;

 

ipfs-cluster节点集群搭建|点滴技术
文件检索工具ipget

类似wget命令,可以从ipfs网络里面下载文件,ipget是一个独立的ipfs文件检索工具,不需要安装ipfs, 一个简单的检索文件的工具

下载地址:https://dist.ipfs.io/#ipget

使用方法

ipget /ipfs/QmdDTor6dWzknFJPJuhJgrUYqd56WkFXYAxyxpEY7kUrEb

ipfs-cluster节点集群搭建|点滴技术

原创文章,作者:jiang,如若转载,请注明出处:https://ipfsdrop.com/tech/ipfs-clusterjiedianjiqundajiandiandijishu/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

(+86)18301922335

在线咨询:点击这里给我发消息

邮件:haskell@freechains.cn

工作时间:7×24小时

QR code