今天我們介紹一下IPFS指令集,幫助我們在開發過程中使用。
1、ipfs
用法 ipfs - 全球p2p默克爾有向無環圖文件系統。
使用範例 ipfs [–config=| -c] [–debug= | -D] [–help=] [-h=][–local= | -L] [–api=]
選項
參數表示 | 參數類型 | 介紹 |
---|---|---|
-c, --config | string | 配置文件路徑 |
-D, --debug | bool | 以debug模式操作,缺省爲false |
–h | bool | 展示精簡版的命令幫助文檔,缺省爲false |
-L, --local | bool | 在本地運行命令,缺省爲false |
–api | string | 使用具體的API實例(缺省爲/ip4/127.0.0.1/tcp/5001) |
子命令
基本命令
命令 | 介紹 |
---|---|
init | 初始化IPFS本地配置 |
add < path > | 添加一個文件到IPFS |
cat | 展示IPFS對象數據 |
get | 下載IPFS對象 |
ls | 從一個對象中列出鏈接 |
Refs | 從一個對象中列出鏈接哈希 |
數據結構命令
命令 | 介紹 |
---|---|
block | 與數據存儲中的原始塊交互 |
object | 與原始DAG節點交互 |
files | 將對象抽象爲unix文件系統,並與對象交互 |
dag | 與IPLD文件交互(實驗中) |
高級命令
命令 | 介紹 |
---|---|
daemon | 開啓一個開始運行的後臺進程 |
mount | 掛載一個IPFS只讀的掛載點 |
resolve | 解析任何類型的名字 |
name | 發佈並解析IPNS名字 |
key | 創建並列出IPNS名字密鑰對 |
dns | 解析DNS鏈接 |
pin | 將對象鎖定到本地存儲 |
repo | 操縱IPFS倉庫 |
stats | 各種操作狀態 |
filestore | 管理文件倉庫(實驗中) |
網絡命令
命令 | 介紹 |
---|---|
id | 展示IPFS節點信息 |
bootstrap | 添加或刪除引導節點 |
swarm | 管理p2p網絡連接 |
dht | 請求有關值或節點的分佈式哈希表 |
ping | 測量一個連接的延遲 |
diag | 打印診斷信息 |
工具命令
命令 | 介紹 |
---|---|
config | 管理配置 |
version | 展示IPFS版本信息 |
update | 下載並應用go-ipfs更新 |
commands | 列出所有可用命令 |
使用“ipfs <命令> --help”來了解關於每個命令的詳細信息。
IPFS在本地文件系統中一個倉庫,其默認位置爲~/.ipfs,可以通過設置環境變量IPFS_PATH改變倉庫位置:
export IPFS_PATH=/path/to/ipfsrepo
EXIT STATUS
命令行將以下面的兩者之一結束:
·0 成功執行 ·1 失敗
使用“ipfs <子命令> –help”獲得關於每個命令的更多信息。
2、ipfs add
用法 ipfs add
使用範例
ipfs add [–recursive |-r] [–quiet | -q] [–quieter | -Q] [–silent]
[–progress | -p] [–trickle |-t] [–only-hash | -n]
[–wrap-with-directory | -w] [–hidden | -H] [–chunker=| -s]
[–pin=false] [–raw-leaves] [–nocopy] [–fscache] [–]…
參數 < path >… - 要添加到ipfs的文件的路徑。
參數標識 | 參數類型 | 介紹 |
---|---|---|
-r, --recursive | bool | 遞歸添加目錄路徑。缺省爲false |
-q, --quiet | bool | 最少化打印輸出 |
-Q, --quieter | bool | 只打印最終哈希 |
–silent | bool | 不打印任何輸出 |
-p, --progress | bool | 以數據流方式處理數據 |
-t, --trickle | bool | 使用滴式DAG格式生成DAG |
-n, --only-hash | bool | 僅分塊和哈希,不寫入磁盤 |
-w, --wrap-with-directory | bool | 用目錄對象包裹文件 |
-H, --hidden | bool | 包括隱藏的文件。只有遞歸添加時有效 |
-s, --chunker | string | 指定分塊算法 |
–pin | bool | 添加時將對象綁定到本次存儲,缺省開啓 |
–raw-leaves | bool | 使用原始塊作爲葉子節點。(實驗中) |
–nocopy | bool | 通過文件倉庫添加文件。(實驗中) |
–fscache | bool | 在文件倉庫中檢查與現存在的區塊。(實驗中) |
描述
將 < path >中的內容添加到IPFS。使用-r添加目錄。注意:目錄是遞歸添加的,以便於形成IPFS默克爾有向無環圖。
包裹的選項,“-w”,將文件包裹到一個目錄裏。這個目錄只含有被添加的這些文件,這意味着文件保留其本身的文件名,例如。
ipfs add demo.txt
added QmdWNvCsLUidQkNaxAdTbZPenxhXbwFVNVL8BiCQF24JyD demo.txt
686 B / ? [---=-------------------------------------------------------------------------------------------------------------------------------------]
ipfs add demo.txt -w
added QmdWNvCsLUidQkNaxAdTbZPenxhXbwFVNVL8BiCQF24JyD demo.txt
added QmRnzLzwfmqms9K87iU3eLcCqfLFtQvcaF5JtwxKsyH8Ru
686 B / ? [---=-------------------------------------------------------------------------------------------------------------------------------------]
你現在可以通過目錄的方式查看這個文件:
ipfs ls QmRnzLzwfmqms9K87iU3eLcCqfLFtQvcaF5JtwxKsyH8Ru
//顯示文件hash及文件名
QmdWNvCsLUidQkNaxAdTbZPenxhXbwFVNVL8BiCQF24JyD 686 demo.txt
通過ipfs cat 訪問這文件
ipfs cat QmdWNvCsLUidQkNaxAdTbZPenxhXbwFVNVL8BiCQF24JyD
//顯示文件爲
hello word!
demo file
3、ipfs bitswap
3.1、ipfs bitswap
用法 ipfs bitswap - 與bitswap代理交互。
使用範例 ipfs bitswap
子命令
參數標識 | 介紹 |
---|---|
ipfs bitswap ledger < peer > | 向一個節點展示目前的賬本 |
ipfs bitswap stat | 在bitswap代理商展示一些診斷信息 |
ipfs bitswap unwant < key >… | 從你的需求列表上移除一個給定的區塊 |
ipfs bitswap wantlist | 展示目前在需求列表上的區塊 |
使用“ipfs bitswap <子命令> –help”來查看關於每個命令的更多信息。
3.2、ipfs bitswap ledger
用法 ipfs bitswap ledger - 向一個節點展示目前的賬本。
使用範例 ipfs bitswap ledger[–]
參數 - 要檢查的賬本的PeerID(B58)
描述
bitswap決策引擎會追溯IPFS節點間字節交換的數量,並將這些信息存儲爲賬本集。這個命令打印與給定節點相關的賬本。
3.3、ipfs bitswap stat
用法 ipfs bitswap stat -在bitswap代理上展示診斷信息。
使用範例 ipfs bitswap stat
3.4、ipfs bitswap unwant
用法 ipfs bitswap unwant … - 從你的需求列表中移除一個給定的區塊。
使用範例 ipfs bitswap unwant[–] …
參數 … - 需要從需求列表中移除的Key(s)
3.5、ipfs bitswap wantlist
用法 ipfs bitswapwantlist - 展示目前在需求列表中的區塊。 使用範例 ipfs
bitswap wantlist [–peer=| -p] 選項 -p, --peer string
-指定展示針對哪個節點的需求列表,默認爲自己。 描述 打印目前本地節點在bitswap需求列表中的所有區塊。
4、ipfs block
4.1、ipfs block
用法 ipfs block - 與原始IPFS區塊交互。
使用範例 ipfs block
參數 - 要檢查的賬本的PeerID(B58)。
描述 “ipfs block”是一個操縱原始IPFS區塊的管道命令。
從stdin讀取或寫入到stdout,並且< key>是一個base58編碼的多重哈希。
子命令
命令 | 介紹 |
---|---|
ipfs block get < key> | 獲取一個原始IPFS區塊 |
ipfs block put < data> | 將輸入存儲爲IPFS區塊 |
ipfs block rm < hash> … | 移除IPFS區塊 |
ipfs block stat < key> | 打印關於一個原始IPFS區塊的信息 |
使用“ipfs block <子命令> –help”獲取更多關於每個命令的信息。
4.2、ipfs block get
用法
ipfs block get - 獲取原始IPFS區塊。
使用範例
ipfs block get [–] < key>
參數
< key> - 要獲取的塊的base58哈希。
描述
“ipfs block get”是一個操縱原始IPFS區塊的管道命令。它將輸出打印到stdout,並且是一個base58編碼的哈希。
4.3、ipfs block put
用法
ipfs block put - 將輸入存儲到IPFS區塊中。
使用範例
ipfs block put[ – format=< format> | -f ] [ --mhtype=] [–mhlen=][–]< data>
參數
< data> - 要存到IPFS區塊中的數據。
選項
參數標識 | 參數類型 | 介紹 |
---|---|---|
-f, --format | string | 要創建的區塊的cid格式,缺省爲v0 |
–mhtype | string | 多重哈希函數,缺省爲sha2-256 |
–mhlen | int | 多重哈希長度,缺省爲-1 |
描述
“ipfs block put”是一個操縱原始IPFS區塊的管道命令。它從stdin中讀取數據,並且是一個base58編碼的多重哈希。
4.4、ipfs block rm
用法
ipfs block rm …- 移除IPFS區塊。
使用範例
ipfs block rm [ --force| -f] [–quiet | -q] [–] < hash>…
參數
< hash>… - 要移除的區塊的base58多重哈希。
選項
參數標識 | 參數 | 介紹 |
---|---|---|
-f, --force | bool | 忽視不存在的區塊,缺省爲false. |
-q, --quiet | bool | 最少化的寫輸出,缺省爲false |
描述
“ipfs blockrm”是一個操縱原始IPFS區塊的管道命令。它以base58編碼的多重哈希的列表爲輸入移除區塊
4.5、ipfs block stat
用法 ipfs block stat - 打印一個IPFS區塊的原始信息。
使用範例 ipfs
block stat [–]< key> 參數 < key> - 要查看信息的區塊的base58編碼。
描述 “ipfs block stat”是一個操縱原始IPFS區塊的管道命令。它向stdout中輸出以下信息:
· Key - base58編碼的多重哈希。
· 大小 - 區塊的大小(以字節爲單位)。
5、ipfs bootstrap
5.1、ipfs bootstrap
用法 ipfs bootstrap - 展示會編輯引導節點列表。
使用範例 ipfs bootstrap
描述 在無參數條件下執行“ipfs bootstrap”等價於執行“ipfs bootstrap list”。
子命令
命令 | 介紹 |
---|---|
ipfs bootstrap add []… | 向引導節點列表中添加節點 |
ipfs bootstrap list | 展示列表中引導節點 |
ipfs bootstrap rm []… | 從引導節點列表中移除節點 |
使用“ipfs bootstrap <子命令> --help”來查看關於每條命令的詳細信息。
5.2、ipfs bootstrap add
用法 ipfs bootstrap add []…- 向引導節點列表中添加節點。
使用範例 ipfs bootstrap add[–default] [–] […]
參數 [< peer>]… -要加入引導節點列表的節點(以“<多重地址>/<節點ID>”的格式)。
選項 --default bool - 添加默認的引導節點(不推薦,建議使用“default”子命令)
描述 輸出要添加的節點列表(這些節點目前不在引導節點列表裏)。
安全警示:
引導命令操縱包含引導節點地址的“bootstraplist”。
這些是可信節點,通過這些節點可以瞭解網絡中其他節點的狀態。如果你不瞭解修改本列表的風險,請不要修改本列表。
子命令 ipfs bootstrap adddefault - 向引導節點列表中添加默認節點。
使用 “ipfs bootstrap add <子命令> --help”來查看關於每條命令的詳細信息。
5.3、ipfs bootstrap add default
用法 ipfs bootstrap adddefault - 向引導節點列表添加默認節點。
概要 ipfs bootstrap adddefault
描述 輸出被添加的節點列表(這些節點還不在引導節點列表裏)。
5.4、ipfs bootstrap list
用法 ipfs bootstrap list- 打印引導節點列表。
概要 ipfs bootstrap list
描述 節點以“<多重地址>/<節點ID>”的格式打印。
5.5、ipfs bootstrap rm
用法 ipfs bootstrap rm[]… - 從引導節點列表中移除節點。
概要 ipfs bootstrap rm[ --al l] [–] [< peer>…] 參數 [< peer>]… -要被移除的節點(以“<多重地址>/<節點ID>”的格式)。
選項 --all bool - 移除所有引導節點列表中的節點。(不推薦,請使用“all”子命令)。
描述 輸出被移除的節點列表。
安全警示:
引導命令操縱包含引導節點地址的“bootstrapist”。
這些是可信節點,通過這些節點可以瞭解網絡中其他節點的狀態。如果你不瞭解修改本列表的風險,請不要修改本列表。 子命令
ipfs bootstrap rm all- 從引導節點列表中移除所有節點。 使用“ipfs bootstrap rm <子命令>
–help”來查看關於每條命令的詳細信息。
5.6、ipfs bootstrap rm all
用法 ipfs bootstrap rmall - 從引導節點列表中移除所有節點。
概要 ipfs bootstrap rmall
描述 輸出被移除的節點列表。
2019年2月22日 整理於深圳