1、安裝包下載
ipfs安裝版本下載:https://github.com/ipfs/go-ipfs/releases,這是IPFS的go語言實現版,目前實現的還有js版本。
2、安裝與啟動
linux下安裝需注意:go-ipfs解壓后需將文件所有者和組更改為root,然后安裝。
修改文件夾用戶組
chgrp root ./go-ipfs -R
chown root ./go-ipfs -R
-R表示遞歸目錄下所有文件
ipfs節點初始化:
ipfs init
默認情況下,ipfs將在當前用戶主目錄(例如:對於hubwiz用戶,其主目錄就是C:\Users\hubwiz或/home/hubwiz)下建立.ipfs子目錄,作為本地倉庫的根目錄。
如果想自定義ipfs的倉庫目錄,需要設置IPFS_PATH環境變量,將其指向目標目錄。若IPFS_PATH設置為/home/hxdms/ipfs則創建如下文件:
ipfs后台啟動命令:ipfs daemon > ipfs.log &
3、局域網搭建的三個ipfs節點之間無法下載其他節點上的文件
問題描述:A、B、C為局域網內三個IPFS節點,QmU9N3w91cLFmxF4j77EL7QAzTzVpatyUuRiKYgKz7P7DM有A節點上傳;
節點B、C通過命令ipfs cat QmU9N3w91cLFmxF4j77EL7QAzTzVpatyUuRiKYgKz7P7DM無法下載。
問題分析:在B、C節點上通過命令: ipfs swarm peers,查看不到A節點,說明節點之間未建立連接,在局域網中並不能自動發現ipfs節點。
解決辦法:
(1)、手動連接要訪問的ipfs節點
(2)、通過構建A、B、C的私有網絡
該方法對於解決這個問題比較麻煩,但對於有私有網絡需求的應用使用起來比較安全高效,具體請參看:
https://www.cnblogs.com/HandyLi/p/11864639.html
4、瀏覽器中無法通過Gateway訪問文件
問題描述:本地可以在瀏覽器中通過localhost訪問ipfs上的文件,但局域網內的其他計算機卻訪問失敗,
http://IP:PORT/ipfs/Qmd7WPAGcMYmr4V8Rcw11pkrd5Gmrc68dUh3AVU7KQPeK1
問題分析:查看IPFS節點的配置發現是ipfs網關設置引起的。
解決辦法:通過命令修改網關——ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8082.
默認情況下,網關為/ip4/127.0.0.1/tcp/8082,只能在本地訪問。要將其公開給網絡中的其他計算機,要使用0.0.0.0作為IP地址。
也可以修改API地址:ipfs config Addresses.API /ip4/127.0.0.1/tcp/5002,如果將API地址也設置為公開的:/ip4/0.0.0.0/tcp/5002,
這其中存在着安全風險,因為任何人都可以對您的節點實施遠程控制。如果您需要遠程控制某個節點,請確保像其他服務或數據庫(防火牆,驗證代理等)一樣保護端口。
5、文件夾更新了,但使用方仍然想用原來的HASH訪問文件
解決辦法:通過IPNS發布文件夾。
ipfs提供了ipns解決文件夾更新的問題,用戶提供一個key(HASH鍵值)綁定一個已經存在ipfs節點上的文件夾,然后就可以通過key進行訪問和下載了。
具體操作如下:
1)、 上傳文件夾
ipfs add -r file
#得到file文件夾HASH:QmYVfNptb5k52K9BG4Qk21Zzem1NdcmMgHMhsbsDJN5QRM
2)、 創建key
創建key用於發布文件夾:
ipfs key gen --type=rsa --size=2048 testkey
#創建名稱為testkey的鍵
ipfs key list -l
#查看已經創建的keys,-l會列出key的HASH
3)、 發布文件夾,並綁定到指定key
將key綁定到指定文件夾:
ipfs name publish --key=testkey QmYVfNptb5k52K9BG4Qk21Zzem1NdcmMgHMhsbsDJN5QRM
#發布到IPNS,並將文件夾綁定testkey:QmYcrteNYNV1e7Wub7jCnogpHoeoBeXLNYg12ow87zHzPe
ipfs name publish QmYVfNptb5k52K9BG4Qk21Zzem1NdcmMgHMhsbsDJN5QRM
#將文件夾發布到IPNS,默認與節點ID(QmUpwjfX6gedCEeh6ncRfshXnDuwSbvZh1uXpriMy1kFnH)綁定。
4)、 文件夾訪問
Gateway訪問:
IP:8080/ipns/QmUpwjfX6gedCEeh6ncRfshXnDuwSbvZh1uXpriMy1kFnH
或IP:8080/ipns/ QmYcrteNYNV1e7Wub7jCnogpHoeoBeXLNYg12ow87zHzPe
5)、 文件下載:
ipfs get /ipns/QmUpwjfX6gedCEeh6ncRfshXnDuwSbvZh1uXpriMy1kFnH
或ipfs get /ipns/QmYcrteNYNV1e7Wub7jCnogpHoeoBeXLNYg12ow87zHzPe
6)、 文件夾更新
文件夾更新后需要重新發布,重復1、3步驟即可,要注意更改文件夾的HASH。
ipfs add -r file
得到file文件夾的Hash值:QmSbQBdaK4mvT1aUwDcrpjMzpRiRvtmEjZuDyziVrTeb2q
發布到之前的key:
ipfs name publish --key=testkey QmSbQBdaK4mvT1aUwDcrpjMzpRiRvtmEjZuDyziVrTeb2q
或ipfs name publish QmSbQBdaK4mvT1aUwDcrpjMzpRiRvtmEjZuDyziVrTeb2q
按原方式訪問和下載