使用长毛象一周了,我喜欢它. 我尽量多地看了一些用户、站长的经验分享,明白了一些事情的同时产生了更多的疑问:
- Mastodon 是一个协议?misskey 协议是啥?pleroma 协议又是啥?activepub 大协议又是啥?⧉
- fediverse 不是所有的实例集合在一起么?为什么还会有博客、图片、视频平台?write freely、pixelfed、peertube 和长毛象有什么关系?⧉
我决定好好学习一下.
以下内容是我的学习成果,很多都是我自己的理解. 出于分享与梳理知识的目的,并假定读者对联邦宇宙一无所知,我适当补充了一些我在之前的学习生活中对相关技术的理解,但愿我能把我理解出来的联邦宇宙讲明白. 事实性的内容全都是现查的,而且只查了单一信源,没有做充分的交叉验证,读一读有个印象就好,请不要直接默认我写在这里的全是正确的. 这里写的东西不能作为学术研究或任何严肃学习的材料. 非常乐意得到任何形式的反馈~
定义 ¶
- 联邦宇宙(fediverse):所有联邦服务(federated server) 的集合叫做联邦宇宙. 参考维基百科⧉.
- 联邦服务:是指独立部署但能互相通信的服务. 这里的要点是能互相通信,功能是无关紧要的:社交网络、微博客、博客、普通网站、文件存储都可以. 通信以联邦协议为标准.
- 联邦协议:联邦宇宙中不同实例(instance) 间互相通信的协议(protocol).
- 实例:一个联邦服务叫做一个实例. 也有人管一个实例叫一个 pod. 任何人都可以自选联邦协议写一个全新的实例,但更流行的做法是选择一个联邦宇宙软件生成一个实例.
- 联邦宇宙软件:方便他人快速部署新实例的软件,可以按照某个联邦协议设计软件 api,也可以设计独有的 api.
- 身份(identity):在实例上注册的帐号叫做身份. 在下文中我也会用用户这个大家比较熟悉的词.
- 协议:一套约定好的标准. 协议相同意味着可以通信,即使两个实例分属于不同的联邦宇宙软件,只要协议相同就能通信. 因此联邦宇宙是一个非常大的概念.
- api(应用程序编程接口):在一个联邦宇宙中 api 是指一个实例留出来的、可供其他程序与该实例通信的方法. 完全自己写的实例要自己设计 api,用联邦宇宙软件生成的实例一般就是直接使用联邦宇宙软件设计的 api.
关于协议与 api 的区别:协议只是标准,api 是协议的具体实现. api 可以完全遵守协议,也可以只遵守一部分协议,也可以设计协议以外的 api. 试着打个比方:假设全人类有共同的道德标准,那这套道德标准就是协议,各个国家的法律就是 api. 有更好的比方嘛?
联邦协议举例 ¶
常见的联邦协议有:
- Zot 或 Zot/6 协议:给独立网站提供通信、身份(用户)管理、权限控制的去中心化网络连接. 是一个近两年才出现的协议,但网站好像已经访问不了了,维基百科 Fediverse 词条中介绍到这里时给了一个官网的 InternetArchive 存档.
- Diaspora⧉ 协议:维基百科⧉上写的是非营利、用户所有、分布式社交网络;Github 主页⧉上写的是隐私感知、分布式、开源社交网络.
- 使用这个协议的联邦宇宙软件应该只有 diaspora*,也就是他们自己在用. 这个联邦宇宙软件在 GitHub 上有 12.5k 的 star,2.9k 的 fork,2010 年开始的项目,到现在已经十年了,开发还是很活跃,release 有 88 个,但版本号升得很保守,才到 0.7.14.0.
- 说句题外话,在他们的 GitHub 主页我找到了一个所有开源社交网络服务的列表⧉,里面记录了非常多的实例,以及它们的实例版本、所用的联邦宇宙软件、使用的协议、服务在线的运行时间(多少百分比的时间里服务没有宕机)、是否支持 IPv6、网络延迟、是否开放注册、用户数量等等非常非常多的信息. 我试着搜索了一下我自己所在的实例,是可以搜索得到的. 这个列表更新及时,真是一个宝藏列表!
- OStatus 协议:根据维基百科⧉,这是一个专门搞联邦微博客的协议,像长毛象(Mastodon)最早就是使用的这个协议.
- 这个协议是老前辈协议了,2010 年左右就搞出来了. 2012 年 1 月 W3C 社区小组想维护并进一步开发这个协议,结果好景不长,2014 年 7 月来了个联邦社交网络工作小组(W3C Federated Social Web Working Group),这个联邦社交网络工作小组直接创造了一个新的协议,就把 Ostatus 协议给干趴下了.
- ActivityPub 协议:这就是联邦社交网络工作小组创造出来的新协议,就是它掩盖了 Ostatus 协议的光芒.
- 按照维基百科、一个Github issue: Ostatus, pump,io 和 ActivityPub 有什么不同⧉以及 ActivityPub 协议最后的致谢部分⧉来看,这个协议是基于 pump.io 的 api 设计的. 且在设计之初就充分吸取了 OStatus 的经验教训,最后成为了一个成功的协议.
- 这个地方不知道有没有大佬给讲讲它和 Ostatus 协议具体的区别和改进的点是什么呀~ 我没有深入去查,反正知道 ActivityPub 很厉害就对了.
- 2017 年 9 月长毛象开始使用 ActivityPub 协议;2018 年 1 月 W3C 把这个协议作为了推荐标准;2019 年 1 月长毛象不再支持之前的 OStatus 协议⧉.
联邦宇宙列表 ¶
多亏了刚刚发现的宝藏列表(见上一小节 Diaspora 协议“说句题外话”),在这里我得以总结一些较有影响力的联邦宇宙软件,以及用这些联邦宇宙软件生成的著名实例. 对我来讲这就提供了一个对上述所有概念以及联邦宇宙本身的一个最直观、最感性的认识,可以感受到目前地球上全体人类在创造去中心化联邦宇宙的进程中处在一个怎么样的阶段,尤其是当所有联邦宇宙软件的用户都声称自己那里实例多、用户数量多、很活跃的时候,这个表格给了我一个客观的、量化的认识. (数据截至于 2020 年 10 月 25 日 14:00 左右)
联邦宇宙软件 | 该软件的介绍 | 使用这个软件的实例数 | 用户较多的实例 | 这个实例的用户数量 | 这个实例过去一个月的活跃用户数量 | 这个实例的 post 总数 | 这个实例已经运行了多长时间 | 这个实例所用的协议 |
---|---|---|---|---|---|---|---|---|
Mastodon | 社交网络,类 twitter | 2354 | mastodon.social | 538222 | 29241 | 26227755 | 11 个月(m) | ActivityPub |
switter.at[1] | 344114 | 21394 | 8593261 | 7 m | ActivityPub | |||
m.cmx.im | 5917 | 4801 | 251455 | 11 m | ActivityPub | |||
Pleroma | 社交网络 | 697 | social.myfreecams.com[2] | 21668 | 未知 | 87184 | 15 m | ActivityPub |
spinster.xyz | 15654 | 未知 | 1085117 | 1 m | ActivityPub | |||
PeerTube | 视频平台,类 YouTue | 496 | bittube.video[3] | 11101 | 未知 | 88237 | 8 m | ActivityPub |
WriteFreely | 写作平台 | 274 | write.as | 3452 | 未知 | 31196 | 15 m | ActivityPub |
friendica | 社交网络 | 229 | libranet.de | 1145 | 174 | 193573 | 44 m | dfrn,ActivityPub,Diaspora,OStatus |
Diaspora* | 社交网络 | 216 | joindiaspora.com[4] | 316938 | 855 | 2642622 | 75 m | Diaspora |
diasp.org | 99513 | 1001 | 728312 | 120 m[5] | Diaspora | |||
Pixelfed | 图片分享平台,类 Instagram | 126 | pixelfed.social | 15885 | 2313 | 140503 | 15 m | ActivityPub |
Misskey | 博客平台 | 115 | misskey.io[6] | 未知 | 未知 | 未知 | 15 m | ActivityPub |
Hubzilla | 网页发布 | 102 | start.hubzilla.org | 6430 | 564 | 23968 | 32 m | Zot |
zotum.net | 416 | 80 | 99937 | 24 m | Zot,Diaspora,OStatus,ActivityPub | |||
Funkwhale | 音乐平台,类 Grooveshark | 48 | open.audio | 1673 | 121 | 未知 | 15 m | ActivityPub |
Plume | 博客写作平台 | 35 | fediverse.blog | 3298 | 未知 | 1611 | 15 m | ActivityPub |
GNU social | 社交平台 | 21 | loadaverage.org | 2686 | 45 | 450191 | 14 m | XMPP,ActivityPub,OStatus |
gnusocial.cc | 367 | 29 | 55981 | 15 m | OStatus | |||
MobilizeOn | 活动管理,类 Slack 或钉钉[7] | 8 | test.mobilizon.org[8] | 1106 | 未知 | 479 | 11 m | ActivityPub[9] |
zap | 社交网络 | 5 | freetobe.social | 181 | 29 | 6137 | 15 m | Zot,ActivityPub |
zap.dog | 102 | 28 | 4830 | 1 m | Zot | |||
Lemmy | 社群平台,类 Reddit, HN | 4[10] | dev.lemmy.ml | 6000 | 未知 | 12880 | 10 m | 未知 |
注意:这个宝藏列表显然并没有收录所有的实例,比如新开的豆豉空间(douchi.space)我就没在这里面搜索到,可能是没有主动提交. 因此第三列的数值只能作为一个下界供参考,但序关系和数量级我觉得大体是准确的.
- [1] 这是一个性工作友好(sex work-friendly)的社交空间. 看到这句话的时候我还怕我理解错了,马上去注册了一个看了看,确认了这样翻译是没有问题的.(我注册仅仅是为了翻译的准确性,给读者们最好的阅读体验,嗯.)
- [2] 不开放注册.
- [3] 它的另一个域名:peertube.bittube.tv.
- [4] 不开放注册.
- [5] 十年的老实例!尊敬一下!我所在的实例能开十年么?
- [6] 不能确定这个实例是用户数量最多的,只是这个看上去官方一点就写在这里了.
- [7] 企业为打工人定制移动应用的解决方案,这样打工人就能随时随地打工了. “类 Slack 或钉钉”是我自己瞎写的,只是听着描述像. 这三个东西我都没有用过.
- [8] 看地址是一个测试用的实例,后面的数据没有意义. 其他 7 个实例用户没有超过 100 个的,最多的是 66 个,毕竟是公司内部用嘛.
- [9] 有没有觉得万物皆可 ActivityPub,万物皆可联邦宇宙?
- [10] 这 4 个实例都显示不开放注册,但我点进一个是有注册页面的,也没提示不让注册. 不过我也没有时间去注册一个试试.
如果你到这个宝藏列表里去看一看,会发现大量的只有 1 个实例的联邦宇宙软件,但它们因为遵守相关协议,也应该看作是联邦宇宙的一部分. 两个用户数量比较多的实例(联邦宇宙软件)代表:twista 和 juick,前者是日本的一个大实例,有三百余人;后者是俄罗斯的一个大实例,有一万八千多人. 除此以外,在维基百科中还提到了一个 Nextcloud,是用来存储文件的,也是用的 ActivityPub 协议.
结尾 ¶
希望这个表格和前面的定义介绍可以帮助大家更全面地认识联邦宇宙,认识我们所用的长毛象在其中所在的位置. 也希望能给有技术、有野心的朋友提供一个稍全面的视野,除了建立长毛象实例以外,也许学习 ActivityPub 协议并创造一个新的联邦宇宙软件、甚至是创造一个新的协议——都是有可能的. 无论如何,我喜欢联邦宇宙,我觉得这差不多是互联网该有的样子了.
后记:随后看到了闪站站长的推荐⧉,和我发现的宝藏列表是类似的!在这里一并列出.
- https://fediverse.party/en/miscellaneous⧉.
- https://fediverse.network/⧉.
- https://www.fediverse.space/instances⧉.
注意:请不要在长毛象给出本文的链接. 出于个人隐私的考虑,本文首发于另一个平台,我在长毛象上的宣传也是用的那个平台的链接. 所以如果你在别的地方已经看到过这篇文章,又通过搜索引擎找到了这里,请不要在长毛象上声张,你自己偷偷知道我有这么个博客站就好了.