星际文件系统 IPFS网络搭建(下)-集群

上一篇介绍了IPFS多节点的部署,本篇将介绍IPFS集群管理。为什么有了多服务的IPFS节点,还需要搭建集群呢?集群管理ipfs节点有何优势?本文将从实际业务角度,解决文件即时同步,数据一致性等问题。

另外,本篇的教程是最新版的IPFS,也是本人在开发过程中一步步查阅各种资料总结的教程,所以如果有需要转发文章的请标明文章出处。

一.多节点文件如何同步

在IPFS多节点搭建文章中,我们实现了文件的多节点共享,但在实际业务需求中会有一个问题,多个IPFS节点如何文件同步备份?在大多数区块链企业中,实现IPFS存储基本还是做联盟链的存储,也就是节点只是在局域网内可访问。由于是多个节点部署的联盟链,每个节点希望能存储IPFS文件数据,对于后端业务开发人员而言,如果将文件上传至某一个IPFS节点,然后pin 文件,则文件上传成功。

但是某个极端的情况,IPFS服务器刚上传完后宕机了,其他的IPFS服务节点就无法访问到资源了。又或者10台IPFS节点组成的联盟链节点组,后台开发在A节点的IPFS上传了文件,为了保证每台服务器都能下载到资源,需要对另外九台服务器进行pin add hash,这显然不是好的解决方案。如果添加新的服务器,还需要修改业务代码。在种种问题之下,有没有比较好的解决方案呢?

二.IPFS集群服务搭建

ipfs采用集群部署,可以方便管理多个ipfs节点,保证文件的同步与存储。

其实现原理:

cluster-service 是IPFS集群的服务端,一台主机搭建一个ipfs-cluster-service,统一管理该主机下的ipfs节点。通过ipfs-cluster-service 与其他主机的ipfs-cluster-service连接,通过共享配置文件中secret密钥,实现service连接,从而组成一个集群。

1.ipfs-cluster-service 安装

2.ipfs-cluster-service 初始化

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

cat ipfs service.json #附带配置文件的部分解析

4.修改service.json文件

5.安装其余N个ipfs-cluster-service 节点

重复上述1,2,3,4步骤,将第一个节点的sercret 拷备至其他节点的配置文件,共享同一个secret是实现集群节点连接的前提。

6.启动第一个ipfs-cluster-service 节点

7.启动第二个ipfs-cluster-service 节点

接下来第三个集群地址,就使用这种方式添加,否则直接使用命令./ipfs-cluster-service daemon启动会出错的

~/.ipfs-cluster 目录下生成 peerstore raft 两文件 Peerstore 存储当前连接的ipfs-cluster集群节点地址,Raft 是ipfs的协议共识机制

三.IPFS集群客户端安装

Ipfs-cluster-ctl 是管理ipfs-cluster-service集群服务的客户端,在私有ipfs网络里,可以只安装一个客户端进行测试调用,ipfs-cluster-ctl可管理多个ipfs-cluster-service

1.ipfs-cluster-ctl 安装

2.查看集群中全部ipfs-cluster-service节点信息

./ipfs-cluster-ctl peers ls #如下图:

在ipfs-ctl客户端可以看出,ipfs网络有三个集群节点,每个节点下有一个ipfs节点。

3.查看集群节点关系图

./ipfs-cluster-ctl health graph

四.IPFS集群使得IPFS节点间数据同步

接下来就来解决我们在未搭建集群前ipfs节点数据不能同步的问题?

1.ipfs节点A 上传一个文件 aa.txt

2.ipfs-cluster-ctl pin add hash #让全网络的集群ipfs节点同步该hash内容

3.Ipfs pin ls hash

4.解pin已同步的hash

5.Ipfs-cluster-service 实时控制台信息

至此IPFS集群管理节点数据技术已经分享完毕,各位区块链战友,在实践过程中多多少少还是会碰到一些坑,欢迎拍砖,欢迎留言。整个IPFS系列教程我也花了数周去学习了解,踩了不少坑,另外文末有相关的IPFS参考链接。另外本人第一个全栈的区块链应用产品,近期将会发布,欢迎关注公众号 “刻意链习”,今后不定期在公众号分享区块链技术文章。

关注公众号

Raft共识介绍:

https://www.cnblogs.com/mindwind/p/5231986.html

http://thesecretlivesofdata.com/raft/

更多参考地址:

https://zhuanlan.zhihu.com/p/35141862

https://cluster.ipfs.io/documentation/

http://ipfser.org/2018/03/02/r26/

http://liyuechun.org/2017/11/20/ipfs-blockchain/

https://flyingzumwalt.gitbooks.io/decentralized-web-primer/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181016G03U4600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励