共享密钥
私有网络所有的节点必须共享同一个密钥。
首先我们使用密钥创建工具,创建一个密钥。
下载地址:https://github.com/Kubuxu/go-ipfs-swarm-key-gengo get -u http://github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
然后创建密钥:
ipfs-swarm-key-gen > ~/.ipfs/swarm.key
创建完密钥后放在自己的ipfs默认配置文件夹下面(~/.ipfs/)
上传密钥到B,C,D的节点上面
使用scp将密钥文件上传到了其他三台服务器上面:
scp -i ss-server.pem ~/.ipfs/swarm.key root@13.114.30.87:~/.ipfs/ scp -i ss-server.pem ~/.ipfs/swarm.key root@13.230.162.124:~/.ipfs/ scp -i ss-server.pem ~/.ipfs/swarm.key root@13.231.247.2:~/.ipfs/由于服务器ipfs节点初始化的时候都是采用的默认设置(ipfs init),所以把密钥放到 ~/.ipfs/ 这个文件夹下面就可以了。
添加启动节点ipfs init后的默认启动节点是连接ipfs公网的节点,如果要连接私有网络,在每一个节点执行下面的操作,删除掉所有的默认启动节点。
ipfs bootstrap rm —all
然后添加一个自己的默认节点(私有网络中的一个节点),默认节点可以是A,B,C,D中的任何一个。
我们选取了D节点作为启动节点,在A,B,C节点执行下面的操作,把D节点的地址添加到A,B,C节点里面。
ipfs bootstrap add /ip4/13.114.30.87/tcp/4001/ipfs/Qmc2AH2MkZtwa11LcpHGE8zW4noQrn6xue7VcZCMNYTpuP
启动并查看各个节点
在每个节点服务器上执行
ipfs swarm peers
我们发现四个节点相互链接在了一起,这就是我们私有ipfs网络。
在私有网络里面做一些简单的测试:
我们在本地节点A上面数据:
$ ipfs add dddd.dmg added QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg dddd.dmg在其他几个节点下载数据:
~/ipfs$ ipfs get QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg Saving file(s) to QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg 149.80 MB / 149.80 MB [=======================================] 100.00% 2m58 ~$ ipfs get QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg Saving file(s) to QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg 149.80 MB / 149.80 MB [=======================================] 100.00% 2m58s ~$ ipfs get QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg Saving file(s) to QmbZ7NWHbP5edCF4BvSvfW97MdpZhcwZ3WJTp3Cd3od9Vg 149.80 MB / 149.80 MB [=========================================] 100.00% 2s成功!