参考:https://mp.weixin.qq.com/s/IKcXAjcX_BxI4siBeVsJUw
测试环境
节点A、B、C为局域网内三台部署了IPFS的节点,A为win7,B为Redhat Linux,C为Ubuntu系统。
私有网络所有的节点必须共享同一个密钥,注意不要忘记这一点。
搭建步骤
1、生成密钥:
密钥生成工具的安装下载使用go,假设已经准备好go环境。在go工程目录下执行如下三个命令:
go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen //下载密钥生成工具源码
go build github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen/main.go //编译得到main.exe
main.exe > swarm.key //执行得到密钥文件swarm.key
将密钥文件swarm.key分别拷贝到A、B、C节点的配置目录~/.ipfs/下,swarm.key内容如下:
2、添加启动节点
ipfs init后的默认启动节点是连接ipfs公网的节点,如果要连接私有网络,需在每一个节点删除原来的默认启动节点,然后增加私有网络的启动节点。
ipfs bootstrap rm --all //删除所有原启动节点
在A、B、C节点中分别设置启动节点,可以是A、B、C中任何一个,最好选择拥有固定IP的节点。
ipfs bootstrap add /ip4/[A的IP]/tcp/4001/ipfs/QmUpwjfX6gedCEeh6ncRfshXnDuwSbvZh1uXpriMy1kFnH
设置完成后,启动ipfs节点(ipfs daemon),查看修改后的bootstrap如下:
3、查看各节点连接情况
A节点:
B节点:
C节点:
我们发现三个节点相互链接在了一起,这就是搭建好的私有ipfs网络。其他IPFS节点必须拥有相同的swarm.key文件才能加入这个私有网络。
4、下载速度测试
使用地图瓦片文件做测试,瓦片在A节点发布,在B节点获取该Z15文件夹耗时4m3s。
B节点下载完成后在C节点获取该文件夹,耗时12s。
这是由于C节点会从A、B节点同时获取Z15文件夹所需要的文件,IPFS将文件分块存储,A、B可同时提供各文件块,单个大文件会被拆分为多个二进制块。