协议,而不是平台

2023-01-04

mastodon 是前阵子很火的一个话题。简单地讲,它是一个去中心化的 twitter。马斯克收购 twitter 那一阵,有大量的用户叛逃到 mastodon 上面,于是 mastodon 就火了。我属于后知后觉地看到这个东西,有所感慨:协议,而不是平台。

回到 2000 年的时候,互联网还是由一个个由分散的孤岛连接起来的世界。world wide web,或者 web,就是由协议连接的,支撑这些连接的背后是 http 协议。每个网站都可以发布一些内容,通过浏览器,通过 http 协议,就可以浏览到这些信息。

那个时代,没有 google 这样的巨头(准确说它也只是其中一个小孤岛),没有 facebook,没有微信,没有支付宝,没有抖音。或者说,没有一家独大的"平台"。

有很多很好的协议,比如说,有我喜欢的 rss 协议。我现在的博客还支持这个协议的输出。我自己也会通过 rss 订阅一些关注的博客内容。没有一个一家独大的"博客平台",使用一个自己的内部协议,让用户去注册,去发布内容,去推送它关注的博客。google reader 死掉之后(也许是 google 开始 do evil 的转折点?),还可以有千千万万的类似服务起来,因为是协议,而不是平台。

比如说 email 的背后,是 SMTP、IMAP、POP3 协议。协议给了人们选择的自由,如果用户想在 google 申请邮箱,可以。而如果想去 163 或者 qq 申请邮箱,也是可以的,不同的服务器会提供邮件服务。即使放到今天,绝大部人选择了这些大公司提供的服务,hacker 们依然可以自己在自己服务器上面,搭自己的邮件服务。

到了后来,尤其是移动互联网之后,时代变了。每一家公司都想做大平台。互联网由开放互联,走向了封闭。一个 app 里面想包容一切。一家独大的平台,意味着赢者通吃。微信不仅不会把流量放给淘宝,还希望通过"小程序"构建自己的世界。

这里面商业竞争是很残酷的,每一家都想做自己的平台,一旦丢掉领域的 top1 位置,就意味着这家公司要面临生死存亡了。比如,openchat 的出现会有可能革掉 google 的命,google 就必须警惕。腾讯占据了社交,流量通过游戏来变现。虽然内部有些赛马,但是从 QQ 到微信都牢牢地占据着领域的 top1。而字节抖音的兴起,对它是一个很大的生存危胁,它也得特别警惕。公司都不想死掉,做大平台是写在生存基因里面的东西。

我还是很怀念那个 "互联" 的互联网,互联是通过"协议",而不是通过一家企业为全世界所有用户提供服务。

mastodon 背后的协议叫 ActivityPub。我花了大概 1 个小时简单地了解了一下这个协议。读协议内容有个好处是可以思考如何设计一个可扩展的分布式系统。比如说这里面也可以有多明星出轨的热点。哪怕你不在微博/twitter 上班,也可以一窥这块的系统设计。

ActivityPub 只定义了协议:客户端,联邦服务器之间如何交互。

以角色来划分,这种类微博的服务,每个用户在服务器上,就是有一个虚拟的 inbox 和 outbox。 用户发表内容就是往自己的 outbox 里面写入内容。接受自己关注的信息,就是用户读自己的 inbox 内容。

有了 follow 关系之后,比如说 A follow 了 B,那么 B 发出去的 outbox 中的内容会被服务器,继续往 B 的 follower (也就是 A) 的 inbox 投递。

跨了服务器怎么投递消息呢?通过协议来完成这一套操作,很像邮件的协议,某个用户在这个服务器上,它仍然可以向另一个服务器发消息,只要用户 id 的唯一性就能知道具体往哪个 inbox,outbox 发送。

ActivityPub 协议就是围绕着这些角色概念,定义客户端跟服务器之间的交互过程,以及服务端跟服务端之间的交互过程。中间用什么接口,传什么参数,都描述得很清楚了。了解基本的怎么工作的就是 inbox / outbox,然后就是 follow / like / publish 内容这些。

为了社会和谐,twitter 在国内都无法正常使用。那么 mastodon 这种更不易管理和审核的东西,更是没有生存的土壤。

mastodon 这个 brand 不一定能起来,但是 ActivityPub 这种技术性的协议,是不会轻易消亡的。因为每一个用户都可以自己搭建自己的服务器,然后还能跟其它人产生连接,这就是协议的力量。

理念很好,祝它成功吧!

mastodonActivityPub

HNS.to is a highly insecure way of browsing Handshake domains and should only be used for demo or educational purposes. Click to see preferable resolutions methods