IPFS問題總結


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

按原方式訪問和下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM