IPFS 命令示例

韦宏扬
2023-12-01

0. 准备


下载 IPFS 最新 Release 版 v0.4.23,解压放入某 $PATH 下,这里放在一个零时目录下。

version=v0.4.23
platform="$(uname -s | tr '[:upper:]' '[:lower:]')-$(if [[ $(uname -m) == 'x86_64' ]]; then echo amd64; else echo 386; fi)"
curl -L -O "https://github.com/ipfs/go-ipfs/releases/download/${version}/go-ipfs_${version}_${platform}.tar.gz"
tar zxf go-ipfs_${version}_${platform}.tar.gz
export PATH=$(pwd)/go-ipfs:$PATH
ipfs version
ipfs version 0.4.23

初始化仓库

ipfs init
initializing IPFS node at /Users/xxx/.ipfs
generating 2048-bit RSA keypair...done
peer identity: Qmc...KU
to get started, enter:

	ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

启动 IPFS Daemon

ipfs daemon &

1. IPLD 测试


数据文件如下
bar.json

{
    "name": "bar",
    "hello": "world"
}
ipfs dag put bar.json
bafyreiby2qsza5rib7r5tg5l5womhdza5mhhs4dm5fl4yimpgym5mnmni4

foo.json

{
    "foo":"foobar",
    "bar": {"/":"bafyreiby2qsza5rib7r5tg5l5womhdza5mhhs4dm5fl4yimpgym5mnmni4"}
}
ipfs dag put foo.json
bafyreihqv4bepuvxvz4mpxeusfbrase7o7celwhba7fyhyp4gi2ngb5wqm

测试以下命令观察输出去

ipfs dag get bafyreihqv4bepuvxvz4mpxeusfbrase7o7celwhba7fyhyp4gi2ngb5wqm
ipfs dag get bafyreihqv4bepuvxvz4mpxeusfbrase7o7celwhba7fyhyp4gi2ngb5wqm/foo
ipfs dag get bafyreihqv4bepuvxvz4mpxeusfbrase7o7celwhba7fyhyp4gi2ngb5wqm/bar
ipfs dag get bafyreihqv4bepuvxvz4mpxeusfbrase7o7celwhba7fyhyp4gi2ngb5wqm/bar/name

打开 Webui, 由于内容是存放在 IPFS 网络里的,首次打开会触发下载,下载时间视网络情况而定。

2. IPNS 测试


ipfs add foo.json
added QmRU7LLztHCp3ZaEYxLSndnVc9BWft8WX2McHQPkvfQH25 foo.json
 103 B / 103 B [===========================================================================] 100.00

打开 Gateway 查看

修改 foo.json

{
    "foo":"foobar",
    "bar": {"/":"bafyreiby2qsza5rib7r5tg5l5womhdza5mhhs4dm5fl4yimpgym5mnmni4"},
    "version": "v0.4.23"
}
ipfs add foo.json
added QmduzMdye3WmYzQEyjJPQBDvUioRezbyCQddhMm4TdK9Hg foo.json
 129 B / 129 B [==========================================================================] 100.00%

由于 IPFS 是基于内容寻址,内容修改了,CID 一定是会变化的 QmduzMdye3WmYzQEyjJPQBDvUioRezbyCQddhMm4TdK9Hg

使用 IPNS

ipfs name publish QmduzMdye3WmYzQEyjJPQBDvUioRezbyCQddhMm4TdK9Hg
Published to QmcRTwzNNWkt3KzDn2ed8RgM9Y3iAfYX7ezoj7DQjk5NKU: /ipfs/QmduzMdye3WmYzQEyjJPQBDvUioRezbyCQddhMm4TdK9Hg

这里默认会使用你的IPFS ID来发布,通过 /ipns/<id> 来访问,通过网关访问 IPNS

现在只要内容更新了,重新发布一下就可以了,就能通过原来的 /ipns/ 路径访问

 类似资料: