ipfs daemon - ipfs节点服务进程
ipfs daemon
命令用来启动一个连接网络的IPFS节点。
命令行
ipfs daemon [--init] [--routing=<routing>] [--mount] [--writable]
[--mount-ipfs=<mount-ipfs>] [--mount-ipns=<mount-ipns>]
[--unrestricted-api] [--disable-transport-encryption]
[--enable-gc] [--manage-fdlimit=false] [--offline] [--migrate]
[--enable-pubsub-experiment] [--enable-mplex-experiment=false]
选项
--init bool - 是否使用默认设置自动初始化ipfs,默认值:false
--routing string - 路由选项,默认值:dht
--mount bool - 是否将IPFS挂载到文件系统,默认值:false
--writable bool - 是否允许使用`POST/PUT/DELETE`修改对象,默认值: false.
--mount-ipfs string - 当使用--mount选项时IPFS的挂接点,默认值采用配置文件中的设置
--mount-ipns string - 当使用--mount选项时IPNS的挂接点,默认值采用配置文件中的设置
--unrestricted-api bool - 是否允许API访问未列出的哈希,默认值:false
--disable-transport-encryption bool - 是否进制传输层加密,默认值:false。当调试协议时可开启该选项
--enable-gc bool - 是否启用自动定时仓库垃圾回收,默认值:false
--manage-fdlimit bool - 是否按需自动提高文件描述符上限,默认值:false
--offline bool - 是否离线运行,即不连接到网络,仅提供本地API,默认值:false
--migrate bool - true对应于mirage提示时输入yes,false对应于输入no
--enable-pubsub-experiment bool - 是否启用发布订阅(pubsub)特性,该特性目前尚处于实验阶段
--enable-mplex-experiment bool - 是否启用`go-multiplex`流多路处理器,默认值:true
说明
服务进程将在指定的端口监听网络连接。使用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/5002
在修改地址后,确保重新启动服务进程以便生效。
默认情况下,网络仅在本地可以访问,如果希望允许其他计算机访问,可以
使用地址0.0.0.0
。例如:
ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
当开放API访问时请千万小心,这存在一定的安全风险,因为任何人都可以 远程控制你的节点。如果你希望远程控制节点,请使用防火墙、授权代理 或其他服务来保护该API访问地址。
HTTP头
ipfs支持向API和网关传入任意HTTP头信息。你可以使用API.HTTPHeaders
和
Gateway.HTTPHeaders
配置项进行配置。例如:
ipfs config --json API.HTTPHeaders.X-Special-Header '["so special :)"]'
ipfs config --json Gateway.HTTPHeaders.X-Special-Header '["so special :)"]'
需要指出的是,值应当是字符串数组,因为HTTP头可以包含多个值,而且这样也 方面传给其他的库。
对于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
组合键。也可以发送
SIGTERM
信号,例如,使用kill
命令。服务进程需要稍等一下以便优雅退出,但是你
可以继续发送一次信息来强制服务进程立刻退出。
IPFS_PATH环境变量
ipfs使用本地文件系统建立本地仓库。默认情况下,本地仓库的目录是~/.ipfs
,
可以设置IPFS_PATH
环境变量来自定义本地仓库路径:
export IPFS_PATH=/path/to/ipfsrepo
路由
默认情况下,ipfs使用分布式哈希表(DHT)进行内容的路由。目前有一个尚处于 试验阶段的替代方案,使用纯客户端模式来操作分布式哈希表,可以在启动服务 进程时,使用如下命令启动这一替代路由方案:
ipfs daemon --routing=dhtclient
该选项在实验阶段结束后将转变为一个配置选项。
弃用通知
ipfs之前使用过环境变量API_ORIGIN
:
export API_ORIGIN="http://localhost:8888/"
该环境变量已经被弃用。在当前版本中还可以使用,但在将来的版本中将会删除对 此环境变量的支持。请使用前述HTTP头信息设置方法来取代该环境变量。