參考: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可同時提供各文件塊,單個大文件會被拆分為多個二進制塊。