IT技术的学习一般讲究理论与实践相结合。很多人的学习IPFS的时候,都是先上github看下简单介绍,然后顺着简单介绍深入看一下详细介绍和其背后的论文。看了很多文章之后觉得自己对它有了一个轮廓性的了解,下一步可能就想通过实际操作来验证、加深一下自己的理解。这时最好有一个可以为所欲为的环境,也就是搭建IPFS私有网络。
步骤
1,准备多台服务器,这几台服务器之间网络互通(我是搭建各种集群习惯了,潜意识的准备了三台,其实没有raft选举之类的)
2,安装ipfs。可以直接从ipfs官网下载tar包,解压后进入go-ipfs文件夹,执行install.sh即可。每个节点都要安装。
3,在所有节点执行ipfs init来初始化各个节点,初始化之后会在自己的家目录下多一个隐藏目录: .ipfs。
4,生成私有网络共享密钥并分发
a, go get github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
ipfs-swarm-key-gen > ~/.ipfs/swarm.key
b, 将该密钥拷贝到其他节点的相应位置
scp ~/.ipfs/swarm.key <destnode>:~/.ipfs/swarm.key
5,更改bootstrap节点(所有节点)。
a, 移除默认所有的bootstrap节点
ipfs bootstrap rm --all
b, 指定bootstrap节点为私有网络中的某一节点,例如:
ipfs bootstrap add /ip4/192.168.0.1/tcp/4001/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64
6,验证。
a, 在各个节点,输入ipfs daemon,启动daemon程序,启动成功后会显示:Daemon is ready。
b, 在任意一个节点,执行ipfs swarm peers会显示当前网络中只有私有节点。类似如下内容:
7,双保险。(选做)
如果还是不放心,可以将环境变量LIBP2P_FORCE_PNET设置为1,这个参数会强制IPFS使用私有网络,如果没有配置私有网络,那么ipfs daemon会启动失败。
要点解析
搭建私有网络的要点就是设置共享密钥和设置bootstrap节点。共享密钥界定了私有网络,而bootstrap节点定义了初始节点,根据DHT的原理,一个节点第一次加入到集群当中时候,他的哈希路由表是空的,需要指定bootstrap节点供其问询。通过指定私有网络的节点,将集群限定到私有网络中,防止路由表污染。
网友评论