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/
路徑訪問