面向 IPFS 的文章平台

Re:Linked

经常有人想做去中心化的文章平台,有的是想借区块链的东风,有的则是因为对文章的消失感到担忧(估计主要是中国大陆用户)。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 是这样显示的(以为例):

IPFS info on Matters

我们也确实能看到,这篇文章确实以这个 hash 出现在好几个 IPFS 节点上了:

  • https://ipfs.io/ipfs/QmbaxsyNyWQstEykY3mNXoWwVHyC2bu56jLvqL3gd7mNWb/
  • https://cloudflare-ipfs.com/ipfs/QmbaxsyNyWQstEykY3mNXoWwVHyC2bu56jLvqL3gd7mNWb/

Matters article on IPFS

就连图片都放在 IPFS 上:

  • https://cloudflare-ipfs.com/ipfs/QmbaxsyNyWQstEykY3mNXoWwVHyC2bu56jLvqL3gd7mNWb/8bffb1a0-74c2-4246-ae83-6c880aad8ec1.jpeg

这样的话,我们认为这篇文章确实在 IPFS 上存在多份副本。

(是的,这两天 Matters 上大半是武汉肺炎相关的文章,不过这里选用了一篇其它话题的文章。)

Matataki 是这样显示的(以为例):

IPFS info on Matataki

点击这个链接(对于这篇文章来说,是这个),可以查看本文在 IPFS 上(经 Matataki 渲染)的版本:

IPFS version of the article, rendered by 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 内容。强行试图访问会报错:

Matataki returned an error on non-Matataki content

而且不知道为什么,很多 IPFS 版本都会带上一个没做混淆的邮箱地址(不过有些不含邮箱地址)。总感觉会被邮件地址抓取机器人上来爬…

Email addresses on Matataki IPFS items

总之

Matters 确实把文章在 IPFS 上保存了复数个富文本内容副本,包含图片。

Matataki 也尝试把文章以 JSON 形式放在 IPFS 上(不含图片),不过这些内容可能并没有被发布到其它 IPFS 节点上,因此可能仍然只存在一份文章副本。同时,即使文章被发布到多个 IPFS 节点上,这些节点上的文字可能也不是完整的文章。如果 Matataki (或用户使用的其它)的图片托管服务停止,含有图片的文章将不完整。

一条建议:最有效的防止文章(以及你所创造的其它内容)不明不白地消失的方法,就是不要把它们只放在中国大陆地区的服务(或服务器)上。如果你不记得 v2ex 的国内服务器曾经被以莫须有的罪名拔掉网线、不记得 LeanCloud 域名被不明不白地禁封、也不记得 Gitee 突然因为「涉及违法不良信息」被停止解析的话…没关系,以后一定会有更多这样的事情让你理解这条有趣又有用的建议。

脚注

  1. 嘛… Google Translate 说 Matataki = 「瞬き」,也就是说「瞬 Matataki」这个名字实际上是两个(不同语言的)同义词连接起来得到的。这里就用 Matataki 指代这个项目啦。
  2. 其实 Matters 本身是面向中文写作的,但考虑到其上有太多对于中国大陆「政治不正确」的内容,估计没法在大陆正式地运营,所以才会有人想做「大陆特供版」吧。

Matataki 上的特别附注

  1. 本文应 @[email protected] 邀请转载至 Matataki。
  2. Matataki 的 changelog 来看,一开始 SmartSignature 想做的看起来主要是文章确权(我也不知道这个词是怎么从我脑袋里蹦出来的)和赞赏,除了发布至 IPFS 之外,这段有点像李笑来和霍炬等人做的 PRESS.one(例如这个,话说霍炬公众号上最近发的两三篇文章都没有挂 press.one 链接了 XDDDD)。后来做成了类 Medium 也好类简书也好的 UI,加入了由内容创作者发行属于自己的货币的功能,变得更有趣了。
  3. 本文在 Matters 的副本 的评论区有 Matataki 工程师 @[email protected] 对文章中提到的一些问题的解答。
  4. Matataki 的服务器似乎在香港,网站上也没见备案号什么的,因此原文中「大陆特供版」这个称呼不见得准确。
  5. 勾选「原创声明」弹出的相关提示,看起来像是从 Bilibili 借鉴来的(不过我也没法确定 Bilibili 这段声明是他们自己写的)。既然有发到 IPFS,对于「下架」和「删除」的定义就不太一样咯。「下架」可以有,「删除」估计是做不到。
  6. Matters 那边把本文的副本也放到 IPFS 上了:QmRFTZDCck486QvmvUXV4YHad3U9pnXedh3gjpA8Wvczic。
  7. 封面图标来自 IPFS 和 The Noun Project。
  8. Eriri saikou!

为本文「鼓掌」

如果喜欢本文,欢迎点击下方的「鼓掌」按钮为本文鼓掌 :-)


评论