Opera 浏览器昨天宣布其最新 Android 版已经支持 IPFS——你现在可以通过 ipfs://io-oi.eth
来访问本博客了!
.eth
是什么域名呢?.eth
是 ENS(Ethereum Name Service)即以太坊域名服务的顶级域名,更多信息及注册流程见 ens.domains。
接下来,本文将主要介绍一下这个博客是如何持续集成部署到 IPFS,并自动更新 ENS 记录,以实现 io-oi.me
与 io-oi.eth
的「同步」。
如何持续集成部署到 IPFS?请参见我之前写的文章《将博客部署到星际文件系统(IPFS)》。
成功部署后,购买域名后,我们编辑一下 package.json
文件,利用 ens-updater 这个工具实现 ENS 记录的自动更新,如下:
"scripts": {
- "ipfs-deploy": "./node_modules/ipfs-deploy/bin/ipfs-deploy.js -p pinata public -u pinata -d cloudflare -C -O"
+ "ipfs-deploy": "./node_modules/ipfs-deploy/bin/ipfs-deploy.js -p pinata public -u pinata -d cloudflare -C -O | ./node_modules/@triplespeeder/ens-updater/bin/ens-updater.js setContenthash ${ENS_NAME} ipfs-ns stdin --web3 https://mainnet.infura.io/v3/${INFURA_KEY}"
},
"devDependencies": {
"ipfs-deploy": "^7.14.0",
+ "@triplespeeder/ens-updater": "^1.9.0"
}
然后前往 Netlify 的配置面板,新增三个环境变量,名字如下:
ENS_NAME
PRIVATE_KEY
INFURA_KEY
- 你购买的域名,比如
io-oi.eth
- 你购买域名时使用的钱包地址的私钥
- 提供连接到以太坊主网络的 Infura 的 API 地址
对于第三项,你需要前往 Infura 注册获取,创建一个新的项目后,其 PROJECT ID
即是我们需要的地址。
最后将改动提交到 GitHub,等待 Netlify 的持续集成服务自动运行完,就成功了!