ipds 可以使用dnslink 解決域名訪問的問題,但是內容變更我們就會有新的hashid
解決方法我們可以使用ipns ,同時解決dnslink 解決域名的問題
環境准備
- docker-compose 文件
version: "3"
services:
ipfs:
image: ipfs/go-ipfs:latest
hostname: ipfs_host1
volumes:
- "./export:/export"
- "./data/ipfs:/data/ipfs"
ports:
- "5001:5001"
- "4001:4001"
- "80:8080"
- 啟動
docker-compose up -d
- 添加內容
inside 容器,docker-compose 文件指定的是export 目錄,方便數據倒入的
ipfs add -r /目錄
效果
/ # ipfs add -r /export/user/
added QmV96U2JtqpmJnPkR4Qpx6soWUH25jM7tAaBY4E8sGNL3A user/index.css
added QmYdF665gYwhAD5XxBWi73fddxyk2uZTk22DzpajU9grbo user/index.html
added QmeqDjW8oPsTHedRLmwcW8TULJgYQFTZu5dHqAamtpVjKo user
- 訪問

添加ipns 發布
- ipns 發布
稍有點慢
ipfs name publish /ipfs/QmeqDjW8oPsTHedRLmwcW8TULJgYQFTZu5dHqAamtpVjKo
ipfs name publish /ipfs/QmeqDjW8oPsTHedRLmwcW8TULJgYQFTZu5dHqAamtpVjKo
Published to QmfAvGbLuXbjZhy8PKSHTS5C55uGpS3WMg6YSLgd9aTKJP: /ipfs/QmeqDjW8oPsTHedRLmwcW8TULJgYQFTZu5dHqAamtpVjKo
- 訪問
http://ip/ipns/QmfAvGbLuXbjZhy8PKSHTS5C55uGpS3WMg6YSLgd9aTKJP
- 更新內容
修改index.html 內容,並重新生成hashid
ipfs add -r /export/user/
added QmV96U2JtqpmJnPkR4Qpx6soWUH25jM7tAaBY4E8sGNL3A user/index.css
added QmcCiftPwAC4VU3URL8cckniXrez3jbaoStnhh9gwDvRCb user/index.html
added QmXgvQL7bNXY58yBW4QvdFFhpTPhoG1Jhn2crBVjgNtm3d user
- 重新publish
從結果可以看出ipns 的id 是不變的
ipfs name publish /ipfs/QmXgvQL7bNXY58yBW4QvdFFhpTPhoG1Jhn2crBVjgNtm3d
Published to QmfAvGbLuXbjZhy8PKSHTS5C55uGpS3WMg6YSLgd9aTKJP: /ipfs/QmXgvQL7bNXY58yBW4QvdFFhpTPhoG1Jhn2crBVjgNtm3d
- 訪問更新的界面
http://ip/ipns/QmfAvGbLuXbjZhy8PKSHTS5C55uGpS3WMg6YSLgd9aTKJP
-
配置dnslink
添加a 記錄以及txt 記錄,注意txt 記錄使用了ipns 的地址
-
域名訪問效果
域名為demo.necores.com
說明
結合ipns 以及txt 記錄我們可以靈活的擴展我們的系統,同時可以靈活的進行切換(使用不同hashid 的publish訪問)
參考資料
https://docs.ipfs.io/reference/api/cli/#ipfs-name-publish
https://github.com/ipfs/ipfs
