IPFS-Cluster跨主机部署组成私有网络
1.在第一台服务器上部署IPFS 与 IPFS-Cluster
IPFS启动命令如下:
$ docker run --name ipfs-test-0 \
-v /root/IPFS/node0/export:/export \
-v /root/IPFS/node0/data:/data/ipfs \
-p 10000:4001 -p 11000:5001 -p 12000:8080 \
-d ipfs/go-ipfs:latest
IPFS-Cluster启动命令如下:
$ docker run -d --name cluster0-test -e CLUSTER_PEERNAME=cluster0 \
-e CLUSTER_SECRET=3d4aa5422351fabcb0a93d201fb2751f4f3b8a5080f210b775409ca25ba86b49 \
-e CLUSTER_IPFSHTTP_NODEMULTIADDRESS=/ip4/192.168.43.132/tcp/11000 \
-e CLUSTER_CRDT_TRUSTEDPEERS='*' \
-e CLUSTER_RESTAPI_HTTPLISTENMULTIADDRESS=/ip4/0.0.0.0/tcp/9094 \
-e CLUSTER_MONITORPINGINTERVAL=2s \
-p 9094:9094 -p 9095:9095 -p 9096:9096 \
-v /root/ipfs-cluster/cluster0:/data/ipfs-cluster \
ipfs/ipfs-cluster:latest
# CLUSTER_SECRET ipfs-cluster-service的secret码
# CLUSTER_IPFSHTTP ipfs节点bootstrap信息
# CLUSTER_CRDT_TRUSTEDPEERS 可信任的peers
# CLUSTER_RESTAPI_HTTPLISTENMULTIADDRESS restapi http监听端口
# CLUSTER_MONITORPINGINTERVAL 监控ping时间间隔
2.在第二 第三台服务器上部署 IPFS 与 IPFS-Cluster
IPFS启动命令如下:
$ docker run --name ipfs-test-1 \
-v /root/IPFS/node1/export:/export \
-v /root/IPFS/node1/data:/data/ipfs \
-p 10001:4001 -p 11001:5001 -p 12001:8080 \
-d ipfs/go-ipfs:latest
IPFS-Cluster启动命令如下:
$ docker run -d --name cluster1-test -e CLUSTER_PEERNAME=cluster1 \
-e CLUSTER_SECRET=3d4aa5422351fabcb0a93d201fb2751f4f3b8a5080f210b775409ca25ba86b49 \
-e CLUSTER_IPFSHTTP_NODEMULTIADDRESS=/ip4/192.168.43.132/tcp/11001 \
-e CLUSTER_CRDT_TRUSTEDPEERS='*' \
-e CLUSTER_RESTAPI_HTTPLISTENMULTIADDRESS=/ip4/0.0.0.0/tcp/9094 \
-e CLUSTER_MONITORPINGINTERVAL=2s \
-e CLUSTER_PEERADDRESSES="/ip4/192.168.2.2/tcp/9096/p2p/12D3KooWBrQMcLrTQURJyh8EdJV3xue1rEsZDiUoFsN4ikvUgHHF" \
-p 9084:9094 -p 9085:9095 -p 9086:9096 \
-v /root/ipfs-cluster/cluster1:/data/ipfs-cluster \
ipfs/ipfs-cluster:latest
# CLUSTER_PEERADDRESSES IPFS-Cluster cluster0-test节点的id信息
说明:IPFS-Cluster跨主机组成私有网络,只需要CLUSTER_SECRET相同,再添加CLUSTER_PEERADDRESSES变量去连接其他IPFS-Cluster节点就可以了
3.第二种IPFS-Cluster跨主机组成私有网络
配置IPFS-Cluster的peerstore配置文件添加其他节点信息
# 进入IPFS-Cluster容器
$ docker exec -it [IPFS-Cluster容器名称] sh
# 将要连接的IPFS-Cluster节点id信息,写入到文件中(以下文件路径为IPFS-Cluster容器内路径)
$ echo "/dns4/192.168.2.2/tcp/9096/ipfs/12D3KooWG9VfWKoTxTQJYp3xGejTpXif8kj8PNXyJnnwtnQ3ZdA4" >> /data/ipfs-cluster/peerstore
# 重启容器使IPFS-Cluster配置文件生效
$ docker stop [IPFS-Cluster容器名称]
$ docker start [IPFS-Cluster容器名称]
4.验证IPFS-Cluster私有网络
# 进入IPFS-Cluster cluster0节点容器内
$ docker exec -it cluster0 sh
#查看集群状态信息
$ ipfs-cluster-ctl peers ls
总结
方式一:使用docker变量添加IPFS-Cluster节点,后期添加其他节点不是很理想
方式二:配置IPFS-Cluster的peerstore配置文件添加其他节点,需要进行重启操作
可以两种方式结合使用