Uploaded by Danie Shaw

IPFS指令集

advertisement
1、ipfs
用法
ipfs - 全球 p2p 默克尔有向无环图文件系统。
使用范例
ipfs [--config=<config>| -c] [--debug=<debug> |
-D] [--help=<help>] [-h=<h>][--local=<local> | -L] [--api=<a
pi>] <command> ...
选项
参数标识
参数类型
介绍
-c, --config
string
配置文件路径
-D, --debug
bool
以 debug 模式操作,缺省为 false
--help
bool
展示完整的命令帮助文档,缺省为 false
-h
bool
展示精简版的命令帮助文档,缺省为 false
-L, --local
bool
在本地运行命令,缺省为 false
--api
string
使用具体的 API 实例(缺省为/ip4/127.0.0.1/tcp/5001)
子命令
基本命令
命令
介绍
init
初始化 IPFS 本地配置
Add <path>
添加一个文件到 IPFS
cat <ref>
展示 IPFS 对象数据
get <ref>
下载 IPFS 对象
ls <ref>
从一个对象中列出链接
Refs <ref>
从一个对象中列出链接哈希
数据结构命令
命令
介绍
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 <path>... - 添加一个文件或目录到 IPFS。
使用范例
ipfs add [--recursive |-r] [--quiet | -q] [--quieter |
-Q] [--silent] [--progress | -p] [--trickle |-t] [--only-hash | -n]
[--wrap-with-directory | -w] [--hidden | -H] [--chunker=<chu
nker>| -s] [--pin=false] [--raw-leaves] [--nocopy] [--fscache] [-] <path>...
<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 example.jpg
added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH example.jpg
> ipfs add example.jpg -w
added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH example.jpg
added QmaG4FuMqEBnQNn3C8XJ5bpW8kLs7zq2ZXgHptJHbKDDVx
你现在可以通过目录的方式访问被添加的文件,比如:
/ipfs/QmaG4FuMqEBnQNn3C8XJ5bpW8kLs7zq2ZXgHptJHbK
DDVx/example.jpg
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<peer> - 向一个节点展示目前的
账本。
使用范例
ipfs bitswap ledger[--] <peer>
参数
<peer>- 要检查的账本的 PeerID(B58)
描述
bitswap 决策引擎会追溯 IPFS 节点间字节交换的数量,并
将这些信息存储为账本集。这个命令打印与给定节点相关的账本。
3.3、ipfs bitswap stat
用法
ipfs bitswap stat -在 bitswap 代理上展示诊断信息。
使用范例
ipfs bitswap stat
3.4、ipfs bitswap unwant
用法
ipfs bitswap unwant<key> ... - 从你的需求列表中移
除一个给定的区块。
使用范例
ipfs bitswap unwant[--] <key> ...
参数
<key>... - 需要从需求列表中移除的 Key(s)
3.5、ipfs bitswap wantlist
用法
ipfs bitswapwantlist - 展示目前在需求列表中的区块。
使用范例
ipfs bitswap wantlist [--peer=<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 <key>- 获取原始 IPFS 区块。
使用范例
ipfs block get [--]<key>
参数
<key> - 要获取的块的 base58 哈希。
描述
“ipfs block get”是一个操纵原始 IPFS 区块的管道命令。
它将输出打印到 stdout,并且<key>是一个 base58 编码的哈希。
4.3、ipfs block put
用法
ipfs block put <data>- 将输入存储到 IPFS 区块中。
使用范例
ipfs block put[--format=<format> | -f] [--mhtype=
<mhtype>] [--mhlen=<mhlen>][--] <data>
参数
<data> - 要存到 IPFS 区块中的数据。
选项
参数标识
参数类型
介绍
-f, --format
string
要创建的区块的 cid 格式,缺省为 v0
--mhtype
string
多重哈希函数,缺省为 sha2-256
--mhlen
int
多重哈希长度,缺省为-1
描述
“ipfs block put”是一个操纵原始 IPFS 区块的管道命令。
它从 stdin 中读取数据,并且<key>是一个 base58 编码的多重哈希。
4.4、ipfs block rm
用法
ipfs block rm <hash>...- 移除 IPFS 区块。
使用范例
ipfs block rm [--force| -f] [--quiet | -q] [--] <has
h>...
参数
<hash>... - 要移除的区块的 base58 多重哈希。
选项
参数标识
参数介绍
-f, --force bool
忽视不存在的区块,缺省为 false.
-q, --quiet bool
最少化的写输出,缺省为 false
描述
“ipfs block rm”是一个操纵原始 IPFS 区块的管道命令。
它以 base58 编码的多重哈希的列表为输入移除区块。
4.5、ipfs block stat
用法
ipfs block stat<key> - 打印一个 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”等价于执行“ipf
s bootstrap list”。
子命令
命令
介绍
ipfs bootstrap add [<peer>]...
向引导节点列表中添加节点
ipfs bootstrap list
展示列表中引导节点
ipfs bootstrap rm [<peer>]...
从引导节点列表中移除节点
使用“ipfs bootstrap <子命令> --help”来查看关于每条命令的
详细信息。
5.2、ipfs bootstrap add
用法
ipfs bootstrap add [<peer>]...- 向引导节点列表中添
加节点。
使用范例
参数
ipfs bootstrap add[--default] [--] [<peer>...]
[<peer>]... -要加入引导节点列表的节点 (以“<多重地
址>/<节点 ID>”的格式)。
选项
--default bool - 添加默认的引导节点(不推荐,建议使用
“default”子命令)
描述
里)。
输出要添加的节点列表(这些节点目前不在引导节点列表
安全警示:
引导命令操纵包含引导节点地址的“bootstrap list”。这些是可信
节点,通过这些节点可以了解网络中其他节点的状态。如果你不了解修
改本列表的风险,请不要修改本列表。
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[--all] [--] [<peer>...]
参数
[<peer>]... -要被移除的节点(以“<多重地址>/<节点 I
D>”的格式)。
选项
--all bool - 移除所有引导节点列表中的节点。(不推荐,
请使用“all”子命令)。
描述
输出被移除的节点列表。
安全警示:
引导命令操纵包含引导节点地址的“bootstrap list”。这些是可信
节点,通过这些节点可以了解网络中其他节点的状态。如果你不了解修
改本列表的风险,请不要修改本列表。
子命令
ipfs bootstrap rm all- 从引导节点列表中移除所有节
点。
使用“ipfs bootstrap rm <子命令> --help”来查看关于每条命令的
详细信息。
5.6、ipfs bootstrap rm all
ipfs bootstrap rmall - 从引导节点列表中移除所有节
用法
点。
概要
ipfs bootstrap rmall
描述
输出被移除的节点列表。
6
ipfs cat
用法
ipfs cat <ipfs-path>... – 显示 IPFS 对象的数据。
使用范例
ipfs cat [--] <ipfs-path>...
参数
<ipfs-path>... – 需要输出的 IPFS 对象的路径。
描述
显示指定路径的 IPFS 或 IPNS 对象所包含的数据。
7
ipfs commands
用法
ipfs commands - 列出所有可用的命令。
使用范例 ipfs commands [--flags | -f]
选项
-f, --flags bool - 显示命令标志。缺省值为:false。
描述
列出所有可用的命令(包括子命令)并退出。
8
ipfs config
-8.1ipfs config
用法
ipfs config <key> [<value>] – 获取以及设置 IPFS 的配置参数值。
使用范例 ipfs config [--bool] [--json] [--] <key> [<value>]
参数
<key>
- 配置项的关键字(例如“Addresses.API”)。
[<value>] - 为配置项设置的参数值。
选项
描述
“ipfs config”用来控制各种配置的变量。其工作原理类似“git config”。配置参
数值存储在 IPFS 知识库的配置文件中。
例子
获取“Datastore.Path”键的值:
$ ipfs config Datastore.Path
设置“Datastore.Path”键的值:
$ ipfs config Datastore.Path~/ .ipfs / datastore
子命令
使用“ipfs config <subcmd> --help”指令可以进一步获取每个命令的更多信息。
-8.2ipfs config edit
用法
ipfs config edit - 在$ EDITOR 中打开配置文件,从而进行编辑。
使用范例 编辑 ipfs 配置
描述
要使用“ipfs config edit”,您必须将$ EDITOR 环境变量设置为您的首选文本
编辑器。
-8.3ipfs config replace
用法
ipfs config replace <file> - 用<file>配置文件替换现行配置。
使用范例 将 ipfs 配置替换为[--] <file>
参数
<file> - 将要使用的配置文件。
描述
如果需要,请确保先备份配置文件,因为此操作无法撤消。
-8.4ipfs config show
用法
ipfs config show - 输出配置文件的内容。
使用范例 展示 ipfs 配置
描述 注意:您的私钥存储在配置文件中,此命令的输出中也包含私钥信息。
9
ipfs daemon
用法
ipfs daemon – 运行一个连接网络的 IPFS 节点。
使用范例
ipfs daemon [--init] [--routing=<routing>] [--mount] [--writable] [--mount-ipfs=<mount
-ipfs>] [--mount-ipns=<mount-ipns>] [--unrestricted-api] [--disable-transport-encrypti
on] [--enable-gc] [--manage-fdlimit=false] [--offline] [--migrate] [--enable-pubsub-exp
eriment] [--enable-mplex-experiment=false]
选项
描述
守护进程将开始监听网络端口,这些端口记录在“ipfs config Addresses”(也可以通过
该其修改记录位置)。
例如,更改“网关”端口: ipfs config Addresses.Gateway /ip4/127.0.0.1/tcp/8082
API 地址也可以以相同的方式更改:ipfs config Addresses.API /ip4/127.0.0.1/tcp/500
2
在更改地址后必须重新启动守护程序。
默认情况下,网关只能在本地访问。要将其公开给网络中的其他计算机,请使用 0.0.0.
0 作为 IP 地址:ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
如果你的 API 暴露了就需要小心。这其中存在着安全风险,因为任何人都可以对您的节
点实施远程控制。如果您需要远程控制某个节点,请确保像其他服务或数据库(防火墙,
验证代理等)一样保护端口。
HTTP 头
IPFS 支持将任意头文件传递给 API 和网关。您可以通过在 API.HTTPHeaders 和 Gate
way.HTTPHeaders 上设置标题来完成此操作。
Keys:
ipfs config --json API.HTTPHeaders.X-Special-Header'[“so special :)”]'
ipfs config --json Gateway.HTTPHeaders.X-Special-Header'[“so special :)”]'
请注意,Keys 的值是_array_字符串。这是因为标题可以有多个值,这样有利于传递到
其他库。
CORS 头(用于 API)
你可以用同样的方法设置 CORS 头文件:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin'[“example.com”]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods'[“PUT”,“GET”,
“POST”]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials'[“true”]'
关闭
如果想要关闭守护进程,请发送一个 SIGINT 信号(例如按“Ctrl+C”)或发送一个 SIGT
ERM 信号(例如“kill”)。守护进程可能需要一段时间才能正常关闭,但可以通过发送
第二个相同的信号来强制终止。
IPFS_PATH 环境变量
ipfs 在本地文件系统中使用一个存储库。默认情况下,其报告位于〜/ .ipfs。要更改报
告的位置,请设置$ IPFS_PATH
环境变量:export IPFS_PATH=/path/to/ipfsrepo
路由
默认情况下,IPFS 将使用 DHT 进行内容路由。有一个高度实验性的替代方案,它将以
“仅客户端”模式运行 DHT,可以通过运行守护程序来启用: ipfs daemon --routing =
dhtclient
一旦退出“实验”阶段,将在稍后转入配置选项。
弃用通知
以前,ipfs 使用的环境变量如下所示:
export API_ORIGIN =“http:// localhost:8888 /”
如今这已被弃用。它仍然包含在此版本中发布,但随着此通知将在未来版本中删除。请
转到设置 HTTP Hearders。
10
ipfs dag
用法
ipfs dag - 与 ipld dag 对象进行交互。
使用范例 ipfs dag
描述
“ipfs dag”用于创建和操作 dag 对象。
这个子命令目前是一个实验性功能,但它的目的是反对并取代现有的“ipfs object”命令。
子命令
使用“ipfs dag <子命令> --help”获取每个命令的更多信息。
-10.1ipfs dag get
用法
ipfs dag get <ref> - 从 ipfs 获取一个 dag 节点。
使用范例 ipfs dag get [--] <ref>
变量
<ref> - 要获取的对象
描述
“ipfs dag get”从 ipfs 获取一个 dag 节点并以指定的格式打印出来。
-10.2ipfs dag put
用法
使用范例
ipfs dag put <object data> - 将一个 dag 节点添加到 ipfs。
ipfs dag put [--format=<format> | -f] [--input-enc=<input-enc>] [--] <obje
ct data>
变量
<object data> - 要添加的对象
选项
描述 “ipfs dag put”接受来自文件或 stdin 的输入并将其解析为指定格式的对象。
11
ipfs dht
-11.1ipfs dht
用法
ipfs dht - 直接通过 DHT 发布命令。
使用范例 ipfs dht
子命令
使用“ipfs dag <子命令> --help”获取每个命令的更多信息。
-11.2ipfs dht findpeer
用法
T。
ipfs dht findpeer <peerID>... - 查询与 Peer ID 关联的所有多重地址的 DH
使用范例 ipfs dht findpeer [--verbose | -v] [--] <peerID>...
变量
<peerID>... - 要搜索的节点的 ID。
描述
输出换行符分隔的多地址列表。
-11.3ipfs dht findprovs
用法
ipfs dht findprovs <key>... - 给定特定 key 的情况下,在 DHT 中查找可以提
供特定值的节点。
使用范例 ipfs dht findprovs [--verbose | -v] [--] <key>...
变量
<key>... - 寻找提供者的 key。
选项
描述 输出由换行符分隔的提供者节点的 ID。
-11.4ipfs dht get
用法
ipfs dht get <key>... - 给定一个 key,查询 DHT 的最佳值。
使用范例 ipfs dht get [--verbose | -v] [--] <key>...
变量
<key>... – 用来寻找对应值的 key。
选项
描述
输出给定 key 的最佳值。
对于存储在 DHT 中的给定 key 可以有几个不同的值;在这种情况下,“最好”意味着最需
要的记录。没有一个“最佳”指标:它完全取决于 key 的类型。对于 IPNS,“最好”是既有
效又有最高序列号(最新)的记录。
可以根据不同的 key 类型指定其他的“最佳”规则。
-11.5ipfs dht provide
用法
ipfs dht provide <key>... - 向网络广播您正在提供给定的 key 的值。
使用范例 ipfs dht provide [--verbose | -v] [--recursive | -r] [--] <key>...
变量
<key>... - 要发送的提供记录的 key。
选项
-11.6ipfs dht put
用法
ipfs dht put <key> <value> - 将一个键/值对写入 DHT。
使用范例 ipfs dht put [--verbose | -v] [--] <key> <value>
变量
<key>
- 要存储的值所对应的 key。
<value> - 要存储的值。
选项
描述
给定一个格式为/foo/bar 的 key 以及任意形式的值,这将使该值对应该 key 地被写入 D
HT 中。
key 有两部分:key 的类型(foo)和 key 的名称(bar)。 IPNS 使用/ipns 作为 key 的
类型,并且期望将 key 的名称作为节点 ID。IPNS 条目是专门格式化的(协议缓冲区)。
您只能使用 ipfs 二进制文件支持的 key 的形式:目前只有/ipns。 除非你对 go-ipfs DH
T 内部有相对深入的了解,否则你应该使用“ipfs name publish”而不是本指令。
值是任意文本。 标准输入可用于提供值。
注意:值不能超过 2048 字节。
-11.7ipfs dht query
ipfs dht query <peerID>... - 通过查询 DHT 查找与给定节点 ID 最接近的节
用法
点 ID。
使用范例 ipfs dht query [--verbose | -v] [--] <peerID>...
变量
<peerID>... - 用来查询的节点 ID。
选项
输出换行符分隔的节点 ID 列表。
描述
6
ipfs cat
用法
ipfs cat <ipfs-path>... – 显示 IPFS 对象的数据。
使用范例
ipfs cat [--] <ipfs-path>...
参数
<ipfs-path>... – 需要输出的 IPFS 对象的路径。
描述
显示指定路径的 IPFS 或 IPNS 对象所包含的数据。
7
ipfs commands
用法
使用范例
ipfs commands - 列出所有可用的命令。
ipfs commands [--flags | -f]
选项
-f, --flags bool - 显示命令标志。缺省值为:false。
描述
列出所有可用的命令(包括子命令)并退出。
8
ipfs config
-8.1ipfs config
用法
使用范例
参数
ipfs config <key> [<value>] – 获取以及设置 IPFS 的配置参数值。
ipfs config [--bool] [--json] [--] <key> [<value>]
<key>
- 配置项的关键字(例如“Addresses.API”)。
[<value>] - 为配置项设置的参数值。
选项
描述
“ipfs config”用来控制各种配置的变量。其工作原理类似“git config”。配置参
数值存储在 IPFS 知识库的配置文件中。
例子
获取“Datastore.Path”键的值:
$ ipfs config Datastore.Path
设置“Datastore.Path”键的值:
$ ipfs config Datastore.Path~/ .ipfs / datastore
子命令
使用“ipfs config <subcmd> --help”指令可以进一步获取每个命令的更多信息。
-8.2ipfs config edit
用法
ipfs config edit - 在$ EDITOR 中打开配置文件,从而进行编辑。
使用范例 编辑 ipfs 配置
描述
要使用“ipfs config edit”,您必须将$ EDITOR 环境变量设置为您的首选文本
编辑器。
-8.3ipfs config replace
用法
ipfs config replace <file> - 用<file>配置文件替换现行配置。
使用范例 将 ipfs 配置替换为[--] <file>
参数
<file> - 将要使用的配置文件。
描述
如果需要,请确保先备份配置文件,因为此操作无法撤消。
-8.4ipfs config show
ipfs config show - 输出配置文件的内容。
用法
使用范例 展示 ipfs 配置
描述 注意:您的私钥存储在配置文件中,此命令的输出中也包含私钥信息。
9
ipfs daemon
用法
ipfs daemon – 运行一个连接网络的 IPFS 节点。
使用范例
ipfs daemon [--init] [--routing=<routing>] [--mount] [--writable] [--mount-ipfs=<mount
-ipfs>] [--mount-ipns=<mount-ipns>] [--unrestricted-api] [--disable-transport-encrypti
on] [--enable-gc] [--manage-fdlimit=false] [--offline] [--migrate] [--enable-pubsub-exp
eriment] [--enable-mplex-experiment=false]
选项
描述
守护进程将开始监听网络端口,这些端口记录在“ipfs config Addresses”(也可以通过
该其修改记录位置)。
例如,更改“网关”端口: ipfs config Addresses.Gateway /ip4/127.0.0.1/tcp/8082
API 地址也可以以相同的方式更改:ipfs config Addresses.API /ip4/127.0.0.1/tcp/500
2
在更改地址后必须重新启动守护程序。
默认情况下,网关只能在本地访问。要将其公开给网络中的其他计算机,请使用 0.0.0.
0 作为 IP 地址:ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
如果你的 API 暴露了就需要小心。这其中存在着安全风险,因为任何人都可以对您的节
点实施远程控制。如果您需要远程控制某个节点,请确保像其他服务或数据库(防火墙,
验证代理等)一样保护端口。
HTTP 头
IPFS 支持将任意头文件传递给 API 和网关。您可以通过在 API.HTTPHeaders 和 Gate
way.HTTPHeaders 上设置标题来完成此操作。
Keys:
ipfs config --json API.HTTPHeaders.X-Special-Header'[“so special :)”]'
ipfs config --json Gateway.HTTPHeaders.X-Special-Header'[“so special :)”]'
请注意,Keys 的值是_array_字符串。这是因为标题可以有多个值,这样有利于传递到
其他库。
CORS 头(用于 API)
你可以用同样的方法设置 CORS 头文件:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin'[“example.com”]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods'[“PUT”,“GET”,
“POST”]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials'[“true”]'
关闭
如果想要关闭守护进程,请发送一个 SIGINT 信号(例如按“Ctrl+C”)或发送一个 SIGT
ERM 信号(例如“kill”)。守护进程可能需要一段时间才能正常关闭,但可以通过发送
第二个相同的信号来强制终止。
IPFS_PATH 环境变量
ipfs 在本地文件系统中使用一个存储库。默认情况下,其报告位于〜/ .ipfs。要更改报
告的位置,请设置$ IPFS_PATH
环境变量:export IPFS_PATH=/path/to/ipfsrepo
路由
默认情况下,IPFS 将使用 DHT 进行内容路由。有一个高度实验性的替代方案,它将以
“仅客户端”模式运行 DHT,可以通过运行守护程序来启用: ipfs daemon --routing =
dhtclient
一旦退出“实验”阶段,将在稍后转入配置选项。
弃用通知
以前,ipfs 使用的环境变量如下所示:
export API_ORIGIN =“http:// localhost:8888 /”
如今这已被弃用。它仍然包含在此版本中发布,但随着此通知将在未来版本中删除。请
转到设置 HTTP Hearders。
10
ipfs dag
用法
使用范例
描述
ipfs dag - 与 ipld dag 对象进行交互。
ipfs dag
“ipfs dag”用于创建和操作 dag 对象。
这个子命令目前是一个实验性功能,但它的目的是反对并取代现有的“ipfs object”命令。
子命令
使用“ipfs dag <子命令> --help”获取每个命令的更多信息。
-10.1ipfs dag get
用法
使用范例
ipfs dag get <ref> - 从 ipfs 获取一个 dag 节点。
ipfs dag get [--] <ref>
变量
<ref> - 要获取的对象
描述
“ipfs dag get”从 ipfs 获取一个 dag 节点并以指定的格式打印出来。
-10.2ipfs dag put
用法
使用范例
ipfs dag put <object data> - 将一个 dag 节点添加到 ipfs。
ipfs dag put [--format=<format> | -f] [--input-enc=<input-enc>] [--] <obje
ct data>
变量
<object data> - 要添加的对象
选项
描述 “ipfs dag put”接受来自文件或 stdin 的输入并将其解析为指定格式的对象。
11
ipfs dht
-11.1ipfs dht
用法
使用范例
ipfs dht - 直接通过 DHT 发布命令。
ipfs dht
子命令
使用“ipfs dag <子命令> --help”获取每个命令的更多信息。
-11.2ipfs dht findpeer
用法
ipfs dht findpeer <peerID>... - 查询与 Peer ID 关联的所有多重地址的 DH
T。
使用范例
ipfs dht findpeer [--verbose | -v] [--] <peerID>...
变量
<peerID>... - 要搜索的节点的 ID。
描述
输出换行符分隔的多地址列表。
-11.3ipfs dht findprovs
用法
ipfs dht findprovs <key>... - 给定特定 key 的情况下,在 DHT 中查找可以提
供特定值的节点。
使用范例
变量
ipfs dht findprovs [--verbose | -v] [--] <key>...
<key>... - 寻找提供者的 key。
选项
描述 输出由换行符分隔的提供者节点的 ID。
-11.4ipfs dht get
用法
使用范例
变量
ipfs dht get <key>... - 给定一个 key,查询 DHT 的最佳值。
ipfs dht get [--verbose | -v] [--] <key>...
<key>... – 用来寻找对应值的 key。
选项
描述
输出给定 key 的最佳值。
对于存储在 DHT 中的给定 key 可以有几个不同的值;在这种情况下,“最好”意味着最需
要的记录。没有一个“最佳”指标:它完全取决于 key 的类型。对于 IPNS,“最好”是既有
效又有最高序列号(最新)的记录。
可以根据不同的 key 类型指定其他的“最佳”规则。
-11.5ipfs dht provide
用法
ipfs dht provide <key>... - 向网络广播您正在提供给定的 key 的值。
使用范例 ipfs dht provide [--verbose | -v] [--recursive | -r] [--] <key>...
变量
<key>... - 要发送的提供记录的 key。
选项
-11.6ipfs dht put
用法
使用范例
变量
ipfs dht put <key> <value> - 将一个键/值对写入 DHT。
ipfs dht put [--verbose | -v] [--] <key> <value>
<key>
- 要存储的值所对应的 key。
<value> - 要存储的值。
选项
描述
给定一个格式为/foo/bar 的 key 以及任意形式的值,这将使该值对应该 key 地被写入 D
HT 中。
key 有两部分:key 的类型(foo)和 key 的名称(bar)。 IPNS 使用/ipns 作为 key 的
类型,并且期望将 key 的名称作为节点 ID。IPNS 条目是专门格式化的(协议缓冲区)。
您只能使用 ipfs 二进制文件支持的 key 的形式:目前只有/ipns。 除非你对 go-ipfs DH
T 内部有相对深入的了解,否则你应该使用“ipfs name publish”而不是本指令。
值是任意文本。 标准输入可用于提供值。
注意:值不能超过 2048 字节。
-11.7ipfs dht query
用法
ipfs dht query <peerID>... - 通过查询 DHT 查找与给定节点 ID 最接近的节
点 ID。
使用范例
变量
ipfs dht query [--verbose | -v] [--] <peerID>...
<peerID>... - 用来查询的节点 ID。
ipfs diag
-12.1ipfs diag
用法
ipfs diag - 生成诊断报告。
使用范例
ipfs diag
子命令
使用“ipfs diag <subcmd> --help”来获取关于每条命令的更多信息。
-12.2ipfs diag cmds
用法
ipfs diag cmds - 列出在本节点运行的所有命令。
使用范例
ipfs diag cmds [--verbose | -v]
选项
描述
列出正在运行和最近运行的命令。
子命令
使用“ipfs diag <subcmd> --help”获取更多关于每个命令的信息。
-12.3ipfs diag cmds clear
用法
ipfs diag cmds clear - 从日志中清除不活跃请求。
使用范例
ipfs diag cmds clear
-12.4ipfs diag cmds set-time
用法
ipfs diag cmds set-time <time> - 设置日志中保存不活跃请求的时间。
使用范例
ipfs diag cmds set-time [--] <time>
参数
<time> - 在日志中保存不活跃请求的时间。
-12.5ipfs diag sys
用法
ipfs diag sys - 打印系统诊断信息。
使用范例
ipfs diag sys
描述
打印关于你的电脑的信息,可辅助 debug。
13
ipfs dns
用法
ipfs dns <domain-name> - 解析 DNS 链接。
使用范例
ipfs dns [--recursive | -r] [--] <domain-name>
参数
<domain-name> - 要解析的域名。
选项
描述
多重哈希很难记忆,但域名很容易记住。为了给多重哈希创建易于记忆的别名,DNS
TXT 记录能指向其他 DNS 链接,IPFS 对象,IPNS 密钥等待。这条命令解析这些指向
相应对象的链接。
例如下面这条 DNS TXT 记录:
解析器将会给出:
解析器能递归解析出:
14
ipfs file
-14.1ipfs file
用法
ipfs file - 与以 unix 文件系统类似的 IPFS 对象交互。
使用范例
ipfs file
描述
“ipfs file”提供一个到以 IPFS 对象为代表文件系统的接口,这个接口隐藏了 ipfs 实现的
细节,比如展示对象(分列和分块)。
子命令
使用“ipfs file <subcmd> - -help”来查看关于每条命令的详细信息。
-14.2ipfs file ls
用法
ipfs file ls <ipfs-path>… - 以 unix 文件系统形式列出目录内容。
使用范例
ipfs file ls [--] <ipfs-path>…
参数
<ipfs-path>… - 要列出链接的 IPFS 对象的路径。
描述
展示一个路径下的 IPFS 或 IPNS 对象的内容。
JSON 输出包括大小信息。对文件来说,child 的大小就是该文件内容的总共大小。对目
录来说,child 的大小就是 IPFS 链接的大小。
路径可以是有前缀的斜杠,在这种情况下,我们假设他是一个/ipfs ref 并且不是/ipns。
举例:
这个功能后续将被移除,请尽可能使用“ipfs ls”。
-14.3ipfs files
用法
ipfs files - 与 unix 文件系统文件交互。
使用范例
ipfs files [--f=false]
选项
描述
Files 是一个以 unix 文件系统格式操作 IPFS 对象的 API。
注意:
大部分“ipfs files”的子命令接受“—flush”,其缺省为 true。如果把他设置为 false 时需要
注意。这种操作以牺牲一致性为代价,能提升大批量文件操作时系统的表现。但如果后
台进程意外的在执行“ipfs files flush” 前退出的话,数据有丢失的风险。这种情况也同
样适用于在“ --flush=false”情况下执行“ipfs repo gc”。
子命令
使用“ipfs files <subcmd> --help”获取更多关于每个命令的信息。
-14.4ipfs files cp
用法
ipfs files cp <source> <dest> - 将文件拷贝到 mfs。
使用范例
ipfs files cp [—] <source> <dest>
参数
<source> - 要拷贝的源文件。
<dest>
- 要拷贝到的地址。
-14.5ipfs files flush
用法
ipfs files flush [<path>] - 将目标路径的数据转存到磁盘。
使用范例
ipfs files flush [--] [<path>]
参数
[<path>] - 要清理的路径. 缺省为: “/”。
描述
将给定路径的数据转存到磁盘。本命令仅在“--flush=false”时有效。
-14.6ipfs files ls
用法
ipfs files ls [<path>] - 列出本地可变命名空间的目录。
使用范例
ipfs files ls [-l] [--] [<path>]
参数
[<path>] - 要列出的路径,缺省为“/”。
选项
描述
列出本地可变命名空间目录。
举例:
-14.7ipfs files mkdir
用法
ipfs files mkdir <path> - 创建目录。
使用范例
ipfs files mkdir [--parents | -p] [--] <path>
参数
<path> - 要创建的目录的路径。
选项
描述
创建不存在的目录。
注意:所有目录一定要是绝对路径。
举例:
-14.8ipfs files mv
用法
ipfs files mv <source> <dest> - 移动文件。
使用范例
ipfs files mv [--] <source> <dest>
参数
<source> - 要移动的源文件。
<dest>
- 要移动到的位置。
描述
就像 unix 系统里的 mv 一样。
范例:
-14.9ipfs files read
用法
ipfs files read <path> - 在给定的 mfs 里读取一个文件。
使用范例
ipfs files read [--offset=<offset> | -o] [--count=<count> | -n] [--] <path>
参数
<path> - 读取路径。
选项
描述
从文件的给定偏移位置起去读一定数量的字节。默认情况下将像 unix 中的 cat 一样读取
整个文件。
举例:
-14.10ipfs files rm
用法
ipfs files rm <path>… - 移除一个文件。
使用范例
ipfs files rm [--recursive | -r] [--] <path>…
参数
<path>… - 要删除的文件。
选项
描述
删除文件或目录。
-14.11ipfs files stat
用法
ipfs files stat <path> - 展示文件状态。
使用范例
ipfs files stat [--format=<format>] [--hash] [--size] [--] <path>
参数
<path> - 要查看状态的文件路径。
选项
-14.12ipfs files write
用法
ipfs files write <path> <data> - 在给定的文件系统里写入一个可变的文件。
使用范例
ipfs files write [--offset=<offset> | -o] [--create | -e] [--truncate | -t] [--count=<coun
t> | -n] [--] <path> <data>
参数
<path> - 要写入的路径。
<data> - 要写入的数据。
选项
描述
在给定的文件系统中的文件内写入数据。这条命令允许你选定一个开始写入的偏移位
置。输入将被完整写入到文件。
如果你使用了“—create”选项,那当文件不存在时其将被创建。不存在的中间目录不会
被创建。
如果“—flush”选项被设置为 false,那么改变不会影响默克尔有向无环图的根。当对较深
的目录结构做大量写入操作时,这可以让操作更快。
举例:
警告:
使用“--flush=false”选项在树被清理之前不能确保数据持久性。该选项可以与“ipfs files
stat”一起用到文件或其任何祖先上。
-14.13ipfs filestore
用法
ipfs filestore - 与其他文件仓库对象交互。
使用范例
ipfs filestore
子命令
使用“ipfs filestore <subcmd> --help”来查看关于每条命令的详细信息。
-14.14ipfs filestore dups
用法
ipfs filestore dups - 列出同时在文件仓库和标准块存储里的区块。
使用范例
ipfs filestore dups
-14.15ipfs filestore ls
用法
ipfs filestore ls [<obj>]… - 列出在文件仓库里的对象。
使用范例
ipfs filestore ls [--] [<obj>…]
参数
[<obj>]… - 要列出对象的 Cid。
描述
列出文件仓库里的对象。
如果一个或多个对象被指定,那么只列出具体的对象,否则列出所有对象。
输出像这样:
<hash> <size> <path> <offset>
-14.16ipfs filestore verify
用法
ipfs filestore verify [<obj>]… - 验证文件仓库中的对象。
使用范例
ipfs filestore verify [--] [<obj>…]
参数
[<obj>]… - 要验证对象的 Cid。
描述
验证文件仓库中的对象。
如果一个或对个对象被指定,那么只验证具体的对象,否则验证所有对象。
输出像这样:
<status> <hash> <size> <path> <offset>
其中<status>包含下列可能结果:
当出现 ERROR 错误时,错误信息会被打印到 stderr 中。
Download