今天我们介绍一下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日 整理于深圳