ActivityPub 协议是什么,为什么它被称为去中心化社交网络协议?
ActivityPub 是一个去中心化社交网络协议,基于 ActivityStreams 2.0 数据格式,由 W3C 社交 Web 工作组发布,是 W3C 官方推荐标准。它要解决的问题是:让社交网络重新变成可互通的开放网络,而不是各自封闭的“围墙花园”。如果你在做联邦宇宙(Fediverse)相关的开发、选型或内容迁移,理解它的两套 API 和联邦机制是前提。
它由哪两部分组成
ActivityPub 定义了两套 API,分别解决不同层面的问题:
| API | 作用 | 典型用途 |
|---|---|---|
| 客户端到服务器 API | 创建、更新、删除内容 | 客户端发布一条动态、修改资料、删除帖子 |
| 服务器到服务器联邦 API | 投递通知、订阅内容 | 一个实例把内容推送给另一个实例,或订阅远端账号 |
前者面向“用户与自己的服务器”,后者面向“服务器与服务器”。正是后者让不同站点之间可以互相关注、互相看到内容,而不需要共用同一个中心平台。
为什么说它是“去中心化”的
传统中心化平台的模式是:所有账号、内容和关系都锁在同一个平台内,跨平台互通几乎不可能。ActivityPub 的做法是让每个服务器都能独立运行,再通过联邦 API 互相投递和订阅。
这意味着:
- 内容不依赖单一公司或单一服务器存活;
- 不同实现之间可以互通,只要都遵循同一协议;
- 用户可以选择不同的服务器,同时仍能关注其他服务器上的账号。
网站原文用“围墙花园”来描述中心化平台,并明确提出 ActivityPub 的目标是让 Web 重新成为“世界上最伟大的去中心化网络”。这不是营销口号,而是协议设计层面的取向。
它和 Mastodon、联邦宇宙是什么关系
ActivityPub 是协议,Mastodon 等平台是它的实现之一。联邦宇宙(Fediverse)指的是所有通过这类协议互联的服务器网络。也就是说,Mastodon 只是众多实现中的一个,ActivityPub 本身不绑定任何特定产品。
网站还列出了与 ActivityPub 常一起实现的配套技术,理解完整技术栈时需要一并阅读:
- ActivityPub 与 WebFinger
- ActivityPub 与 HTTP Signatures
- ActivityPub 中的数据可移植性
想深入可以看哪些入口
网站为不同角色提供了资源:
- 开发者讨论:Discourse、NodeBB 论坛,Matrix 聊天,IRC 频道 #social
- 实现与网络数据:FediDB、Fediverse Observer、The Federation
- 文档:新实现者指南(社区编辑、非官方但实用)、Evan Prodromou 的 O'Reilly 书籍、ActivityPub Primer Wiki、Sebastian Jambor 的博客、Eugen Rochko 关于实现 ActivityPub inbox 的文章、FediDevs.org
- 交互探索:ActivityPub.academy(改造过的 Mastodon 实例,用于交互式协议探索)、httpsig.org(交互式试验 HTTP 签名 RFC 9421)
- 库与测试:Fedify(TypeScript 的 ActivityPub 服务器框架)、activitypub-testing 实现指南、FediTest、BrowserPub
- 动态与活动:Connected Places 通讯、FediForum 整理的 Open Social Web Events
- 标准化工作:SocialCG,W3C 社区组,推进联邦社交 Web
一句话判断是否适合你
如果你希望内容、账号和社交关系不被单一平台锁定,并且愿意接受“多服务器互通”的模型,ActivityPub 就是这套模型背后的协议标准。如果你的场景只需要单平台内的功能,不涉及跨站互通,那么直接使用中心化方案可能更简单。