ipfs 私有网络搭建
两台节点为例 如多台节点,只需将第二台节点的操作重复执行下.
搭建私有网络的要点就是设置共享密钥和设置bootstrap节点。共享密钥界定了私有网络,而bootstrap节点定义了初始节点,根据DHT的原理,一个节点第一次加入到集群当中时候,他的哈希路由表是空的,需要指定bootstrap节点供其问询。通过指定私有网络的节点,将集群限定到私有网络中,防止路由表污染.
node1 ,node2 :
1.
wget https://github.com/ipfs/go-ipfs/releases/download/v0.6.0/go-ipfs_v0.6.0_linux-amd64.tar.gz
tar -xvzf go-ipfs_v0.6.0_linux-amd64.tar.gz
cd go-ipfs
bash install.sh 默认数据路径在(用户家目录) /root/.ipfs/
初始化
ipfs init
记录下节点的id
ipfs init后的默认启动节点是连接ipfs公网的节点,如果要连接私有网络
在每一个节点执行下面的操作,删除掉所有的默认启动节点。
ipfs bootstrap rm --all
2. 生成私有网络共享密钥并分发
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
ipfs-swarm-key-gen > ~/.ipfs/swarm.key
将swarm.key 文件拷贝到其他节点的 .ipfs/
以node1作为主节点,node2添加node1
ipfs bootstrap add /ip4/IP/tcp/4001/ipfs/ID
ipfs bootstrap add /ip4/192.168.217.128/tcp/4001/p2p/QmdRY1BGMch3d83GJjco3vnGua3GnDTFP2cL5Qu42Eq7mz
查看修改后的bootstrap
ipfs bootstrap list
node1,node2
启动节点
ipfs daemon
查看节点
ipfs swarm peers
测试:
在node1终端上:
ipfs add test.txt (test.txt 内容为 this is test doc !!)
返回值:
added QmSf95RJXzzKCBtLAfpvheNqwUmLn1Ut4RocWZKAbrXdxz test2.txt
21 B / 21 B [==========================================================================] 100.00%
在node2上获取:
ipfs get QmSf95RJXzzKCBtLAfpvheNqwUmLn1Ut4RocWZKAbrXdxz
Saving file(s) to QmSf95RJXzzKCBtLAfpvheNqwUmLn1Ut4RocWZKAbrXdxz
21 B / 21 B [====================================================================================] 100.00% 0s
查看内容: cat QmSf95RJXzzKCBtLAfpvheNqwUmLn1Ut4RocWZKAbrXdxz
==》 this is test doc !!
"/ip4/192.168.217.128/tcp/4001/p2p/QmdRY1BGMch3d83GJjco3vnGua3GnDTFP2cL5Qu42Eq7mz",
"/ip4/192.168.217.129/tcp/4001/p2p/Qmdoopma5tuPBNZrU3VtHNZHJnLRgft16xMVVUTEuvhqc9",
ipfs bootstrap add /ip4/192.168.217.128/tcp/4001/p2p/QmdRY1BGMch3d83GJjco3vnGua3GnDTFP2cL5Qu42Eq7mz
ipfs bootstrap add /ip4/192.168.217.129/tcp/4001/p2p/Qmdoopma5tuPBNZrU3VtHNZHJnLRgft16xMVVUTEuvhqc9
ipfs bootstrap add /ip4/192.168.4.6/tcp/4001/p2p/QmT9BWGpULPGE2noSnfBBtdKw8uLK8dnQ344UdAsscRa9t