下载 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 &
数据文件如下
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 网络里的,首次打开会触发下载,下载时间视网络情况而定。
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/
路径访问