把你的博客放到 IPFS / Hidden Service / OpenNIC
Re:Linked 在今年晚些时候 上了 IPFS,后来又接入了 Tor Hidden Service (这里,或者页底链接),最近这两天又处理了一下 IPNS 相关的事情(所以各位也可以用 /ipns/blog.outv.im 或 /ipns/blog.ipfs.outv.im 来访问本站了,例子)。至于 OpenNIC, Private[Dot]Bin 从一开始就在 OpenNIC 上有域名 (house.libre),最近我们也把 Re:Linked 添加了上去 (blog.house.libre)。
那么,如何将自己的网站或博客放到这些地方呢?
IPFS + IPNS
IPFS 上全都是静态内容,所以大概只能放个静态博客什么的(例如 Hexo/Hugo 生成的)。
如果想从自己的服务器托管页面,可以参考 Yandere 的 这篇文章。不过,IPFS 实在是太吃内存,用户怨声载道,我的小 VPS 也承受不住。于是就决定用第三方托管服务在 IPFS 上托管我的博客。幸好,ipfs-deploy 的出现使网站主能够方便地提交网站以及更新 DNS 记录(用于 IPNS)。
这里使用的托管服务以 Pinata 作为样例。Pinata 的免费账户可以托管 (下称 pin)最多 1G 的内容,超出后价格 $0.15/GB/月。注册完成后,你会拿到 PINATA API KEY
和 PINATA SECRET API KEY
,这两者就是你在 Pinata 上 pin 内容所用的凭据。
设置 Pinning Service 的环境变量
在生成好静态站点内容,也安装完 ipfs-deploy (npm install -g ipfs-deploy
) 之后,需要传递几个环境变量给它。可以在执行命令时用前缀传递,也可以通过 export 的方式传递:
export IPFS_DEPLOY_PINATA__API_KEY="deadbeefdeadbeefdead"
# 这里换成你之前得到的 Pinata API key,在我这里是 20 位 16 进制值
export IPFS_DEPLOY_PINATA__SECRET_API_KEY="deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
# 这里换成你之前得到的 Pinata secret API key,在我这里是 64 位 16 进制值
如果你使用的 pinning service 不是 Pinata,那么环境变量名字也不同。具体可以参考 ipfs-deploy 的使用说明。
修改 DNS 来用于 IPNS(可选)
通过添加一条 TXT 的 DNS 记录,可以让你在 IPFS 上的站点通过 /ipns/<域名> 进行访问,而不必使用 /ipfs/QmcX38pVqsdCnHQySN76QaPCcm7ZZCDTFDsc6ZGFj8Lqxj/ 这么长的地址。具体方法是在你想要绑定到的域名(以 blog.outv.im 为例)的 _dnslink
子域(即 _dnslink.blog.outv.im )上添加一条 TXT 记录,形如:
dnslink=/ipfs/QmcX38pVqsdCnHQySN76QaPCcm7ZZCDTFDsc6ZGFj8Lqxj
添加后应该能得到类似这样的结果:
$ dig _dnslink.blog.outv.im TXT +short
"dnslink=/ipfs/QmcX38pVqsdCnHQySN76QaPCcm7ZZCDTFDsc6ZGFj8Lqxj"
这样,你就可以用 /ipns/blog.outv.im
来访问 /ipfs/QmcX38pVqsdCnHQySN76QaPCcm7ZZCDTFDsc6ZGFj8Lqxj
了。
ipfs-deploy 支持使用 Cloudflare 和 DNSimple 的 API 自动添加/修改域名的 dnslink。具体配置可参见使用说明。
上传站点!
ipfs-deploy <站点目录> -p <使用的托管服务> (-d <使用的 DNS 更新服务>)
例如:如果你使用 Pinata 作为 pinning service,并且想通过 Cloudflare 的 API 来更新 dnskey 的话,ipfs-deploy public/ -p pinata -d cloudflare
即可。
Hidden Service
使用 Hidden Service,最终还是要连接到你的服务器(不过要经过几个节点)。所以在其上可以放置动态站点。
可以参考 Yandere 的 这篇文章。
OpenNIC
OpenNIC 的本质是另一套从零开始的 DNS 架构,所以自然也可以把动态站点放上去。至于把博客放到 OpenNIC 上,实际上只是在上面注册一个域名,之后把域名指向托管博客的服务器而已。当然,这些 OpenNIC 独有的顶级域名(TLD),也只能借助 OpenNIC 的 DNS 服务器使用。
在将 DNS 改为 OpenNIC 的 DNS 服务器之后,在 OpenNIC 主页下方的顶级域名列表中选择一个,根据其提供的方法进行域名和记录的创建就可以啦。例如 .dyn、.geek、.oss 和 .libre 等是提供了一个管理面板,而 .o 则是在 GitHub 提交相应的 PR。