面向 IPFS 的文章平台
经常有人想做去中心化的文章平台,有的是想借区块链的东风,有的则是因为对文章的消失感到担忧(估计主要是中国大陆用户)。Steemit 是一个例子,它把文章放在区块链上,同时通过数字货币来激励创作者;Matters 是另一个例子,它把文章副本放在 IPFS 上,同时也通过数字货币来激励创作者;瞬 Metataki 是今天看到的第三个例子,它也把文章副本放在 IPFS 上(自称),同时也通过数字货币来激励创作者(这点我可能说得不准确)。
01/27 附注:本文在 Matters 发表的副本下有 Matataki 项目工程师 @kosakanao 对文中提到的一些内容的回应。
历史渊源
前两个企划我知道得稍早一些,也有账号(虽说基本不发东西在上面),感觉它们发展得似乎还不错(不过 Matters 那边的数字货币项目 Likecoin 发邮件太多让我有点烦)。今天偶然听说了 Matataki [1],感觉这大概是 Matters 的中国大陆版 [2]。据说这项目是国内著名 ACMer 岛娘的创业项目。
从时间上来看,Matters 似乎出现得更早。Matataki 的文章 id 似乎是自然数,我找到的第二篇文章发布于「3 月 15 日 15:22」,考虑到「4 月 2 日 11:42」发布的第 218 篇文章有标注年份是 2019 年,我就假设第二篇文章的发布日期是 2019 年的三月十五日了。再加上 GitHub 上 Matataki-io/Matataki-Mobile-FE 的首次提交在 2019 年三月,我猜测这个项目大概在 2019 年的三月份成型(顺便说一下, Matataki-io/Matataki-FE 的首次提交在 2019 年六月,看来这个站点可能和 V2EX 一样,也是先适配的手机版本),这篇文章也证实了我的猜测(不过这篇文章不见得是官方发的)。Matters 的话,虽说我看不出哪篇是最早发布的文章,不过我有找到 2017 年末的文章,也就能说明这个项目最晚在 2017 年就存在了。
「存储到 IPFS」
IPFS (InterPlanetary File System,中文直译过来叫“星际文件系统”) 是一个分布式文件系统,有点像 ZeroNet。用户可以向文件系统上提交自己的内容,让全球的 IPFS 节点托管。咱讲过一点往 IPFS 上放东西的方法,这里不赘述了。
Matataki 是这么说的:
在瞬 Matataki 上发布的任一内容都会存储到 IPFS 的网络上,并生成对于该内容的专属哈希值(hash 值) 。
[source]
Matters 也这么说:
所有在 Matters 上發佈的作品(不含評論),皆會上載到星際文件系統(InterPlanetary File System,IPFS)的節點上,實現作品內容的分佈式存儲,完成將數據回歸創作者的第一步。
[source]
也就是说,我们可以假设,作者在 Matataki / Matters 发布的文章将在 IPFS 可见。具体点说,就是我们可以在超过一个 IPFS 节点(尤其是那些用户最多的)找到文章的副本。
Matters 是这样显示的(以此为例):
我们也确实能看到,这篇文章确实以这个 hash 出现在好几个 IPFS 节点上了:
- https://ipfs.io/ipfs/QmbaxsyNyWQstEykY3mNXoWwVHyC2bu56jLvqL3gd7mNWb/
- https://cloudflare-ipfs.com/ipfs/QmbaxsyNyWQstEykY3mNXoWwVHyC2bu56jLvqL3gd7mNWb/
就连图片都放在 IPFS 上:
- https://cloudflare-ipfs.com/ipfs/QmbaxsyNyWQstEykY3mNXoWwVHyC2bu56jLvqL3gd7mNWb/8bffb1a0-74c2-4246-ae83-6c880aad8ec1.jpeg
这样的话,我们认为这篇文章确实在 IPFS 上存在多份副本。
(是的,这两天 Matters 上大半是武汉肺炎相关的文章,不过这里选用了一篇其它话题的文章。)
Matataki 是这样显示的(以此为例):
点击这个链接(对于这篇文章来说,是这个),可以查看本文在 IPFS 上(经 Matataki 渲染)的版本:
原始数据其实是一段 JSON,不过这也算原文了(图片不算。JSON 中文章引用的图片都是非 IPFS 外链):
- https://ipfs.io/ipfs/QmezBtn7MKSzppKYoJ6E417R1RgNzUWqvTJMEMS9g2dLmX
不过 Matataki 的文章在其它 IPFS 节点上的副本似乎不多。我在 ipfs.io 和 cloudflare-ipfs.com 试了一些文章,其中的多数(截至本文写作时)似乎都不存在于这些 IPFS 节点上。建议 Matataki 用户在发布文章完成之后通过几个公共 IPFS 节点访问一下你的文章,做个种什么的(ZeroNet 的时候也有不少人这么干就是了)。
另外顺便说一下,matataki.io/ipfs/
并不是一个完整功能的 IPFS 节点(至少没有 IPNS),而且似乎也不会托管非 Matataki 的 IPFS 内容。强行试图访问会报错:
而且不知道为什么,很多 IPFS 版本都会带上一个没做混淆的邮箱地址(不过有些不含邮箱地址)。总感觉会被邮件地址抓取机器人上来爬...
总之
Matters 确实把文章在 IPFS 上保存了复数个富文本内容副本,包含图片。
Matataki 也尝试把文章以 JSON 形式放在 IPFS 上(不含图片),不过这些内容可能并没有被发布到其它 IPFS 节点上,因此可能仍然只存在一份文章副本。同时,即使文章被发布到多个 IPFS 节点上,这些节点上的文字可能也不是完整的文章。如果 Matataki (或用户使用的其它)的图片托管服务停止,含有图片的文章将不完整。
一条建议:最有效的防止文章(以及你所创造的其它内容)不明不白地消失的方法,就是不要把它们只放在中国大陆地区的服务(或服务器)上。如果你不记得 v2ex 的国内服务器曾经被以莫须有的罪名拔掉网线、不记得 LeanCloud 域名被不明不白地禁封、也不记得 Gitee 突然因为「涉及违法不良信息」被停止解析的话...没关系,以后一定会有更多这样的事情让你理解这条有趣又有用的建议。
脚注
Matataki 上的特别附注
- 本文应 @guanchao71@matters.news 邀请转载至 Matataki。
- 从 Matataki 的 changelog 来看,一开始 SmartSignature 想做的看起来主要是文章确权(我也不知道这个词是怎么从我脑袋里蹦出来的)和赞赏,除了发布至 IPFS 之外,这段有点像李笑来和霍炬等人做的 PRESS.one(例如这个,话说霍炬公众号上最近发的两三篇文章都没有挂 press.one 链接了 XDDDD)。后来做成了类 Medium 也好类简书也好的 UI,加入了由内容创作者发行属于自己的货币的功能,变得更有趣了。
- 本文在 Matters 的副本 的评论区有 Matataki 工程师 @kosakanao@matters.news 对文章中提到的一些问题的解答。
- Matataki 的服务器似乎在香港,网站上也没见备案号什么的,因此原文中「大陆特供版」这个称呼不见得准确。
- 勾选「原创声明」弹出的相关提示,看起来像是从 Bilibili 借鉴来的(不过我也没法确定 Bilibili 这段声明是他们自己写的)。既然有发到 IPFS,对于「下架」和「删除」的定义就不太一样咯。「下架」可以有,「删除」估计是做不到。
- Matters 那边把本文的副本也放到 IPFS 上了:QmRFTZDCck486QvmvUXV4YHad3U9pnXedh3gjpA8Wvczic。
- 封面图标来自 IPFS 和 The Noun Project。
- Eriri saikou!