IPFS集群搭建(一)

一.ipfs安装

1.下载go-ipfs : https://dist.ipfs.io/#go-ipfs(需要)

2.执行如下指令

$ tar xvfz go-ipfs.tar.gz
$ cd go-ipfs
$ ./install.sh

3.验证

$ ipfs help
USAGE:

    ipfs - Global p2p merkle-dag filesystem.
...

3.搭建私有集群

默认安装后是共享的公网IPFS密匙,私有集群需要使用自己生产的密匙到swarm.key。

  1. 生产私有密匙

首先我们使用密钥创建工具,创建一个密钥。

下载地址:https://github.com/Kubuxu/go-ipfs-swarm-key-gen

该工具的安装下载使用go。不会安装的朋友自行Google。

go get -u http://github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen

然后创建密钥:

ipfs-swarm-key-gen > ~/.ipfs/swarm.key

     2.复制密匙文件到其他节点的.ipfs目录下

     3 每台节点运行如下命令.去除默认的公网节点地址

ipfs bootstrap rm —all

    4 更改config文件的address的API、Gateway为当前的地址,因为ipfs默认只能本地访问,其他节点无法访问,同时注意关闭防火墙或者开发5001,8080,4001端口。但是使用ipfs-cluster集群管理攻击搭建集群时需要设置成本地,否重ipfs-cluster无法访问到ipfs.

    5 在每台节点手动添加其他节点,如下:

pfs bootstrap add /ip4/13.114.30.87/tcp/4001/ipfs/<节点id>

如:

ipfs bootstrap add /ip4/13.114.30.87/tcp/4001/ipfs/Qmc2AH2MkZtwa11LcpHGE8zW4noQrn6xue7VcZCMNYTpuP

节点id:可以通过节点运行ipfs id显示

[hadoop@localhost .ipfs]$ ipfs id
{
	"ID": "QmaK84LzXydnzGk3WUhgZ1Tqi1mKieUYZ5SjeaC7CdycLi",
	"PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkE0RU4xuFAQM/fVyK9y36nISNGlmiAA59qaqhHA0mGF3zllJqJgxM//0gru3XnaVpyzGzwFhFGjcBlQBhas6g/6TqlpnYSbIFMy8TB2KwBa8grtvfi1yiHsDArx0G/X/IDOmDKejVKFitzdLNZRswPagKmtgPS75tJk8MDmApFu1gzTDAqzpymhzWQeH9Heso6W+oGmSeJUWoANG36OReF1z89FWGHBVJROHxZ7Ic9ohbZ1vFd+C6fjL66Pm0CZ6reMdlvIApWXO5WGQuMDif/0+iaLpbYSJWCt+HUz31qGGOgQ/K/ci2sja0Nv2xbSRvAMTaD5eQAqk87lYVJSxnAgMBAAE=",
	"Addresses": [
		"/ip4/127.0.0.1/tcp/4001/ipfs/QmaK84LzXydnzGk3WUhgZ1Tqi1mKieUYZ5SjeaC7CdycLi",
		"/ip4/192.168.20.129/tcp/4001/ipfs/QmaK84LzXydnzGk3WUhgZ1Tqi1mKieUYZ5SjeaC7CdycLi",
		"/ip4/192.168.211.133/tcp/4001/ipfs/QmaK84LzXydnzGk3WUhgZ1Tqi1mKieUYZ5SjeaC7CdycLi",
		"/ip6/::1/tcp/4001/ipfs/QmaK84LzXydnzGk3WUhgZ1Tqi1mKieUYZ5SjeaC7CdycLi"
	],
	"AgentVersion": "go-ipfs/0.4.22/",
	"ProtocolVersion": "ipfs/0.1.0"
}

     6 验证

运行ipfs swarm peers 显示以连接节点

在A节点上传文件,后得到文件的哈希

ipfs add x.txt

[hadoop@localhost .ipfs]$ ipfs add repo.lock 
added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH repo.lock
 0 B / ? [---------------------------------------------------------------------------------------------------------------------------------------------=]   0.00%

测试能否在B节点通过hash获取到

[hadoop@localhost test]$ ipfs get QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
Saving file(s) to QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
 0 B / ? [--------------------------------------------------------------------------------------------------------------------------------------------------=] 0s
[hadoop@localhost test]$ ls
QmaoUGJqmaCp36zb1Bov2wwLM76o3Y7SfBcdALBeEgfb1h  QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
[hadoop@localhost test]$ 

 

你可能感兴趣的:(ipfs)