W3C 提案标准,2018 年 1 月 23 日公布
本版本: https://www.w3.org/TR/2018/PR-activitypub-20180123/
最新版本: https://www.w3.org/TR/activitypub/

标准化身份制作、内容创立和交互行为,使能凋谢、分享和单干。

ActivityPub 是凋谢社交网络的分布式网络协议并且基于现有通用语言的概念建设在 ActivityStreams2.0规范上。该规范使得在不同服务和用户之间的凋谢数据交换和分布式交互成为可能,构建一个对立的社交网络。 它简化了实现复杂度,通过共享的消息传递机制打消了服务之间建设专用连贯的必要性。

本文档定义了一组 API 端点、音讯格局、签名形式和传输机制,组成 ActivityPub 的标准。ActivityPub设计用于实现凋谢、分布式和联结的社交网络,其中蕴含内容创立、社交互动和网络联通服务。它持续了旨在促成竞争、翻新并为用户带来抉择自在的可互操作性概念。

规范主旨

  1. 使不同的社交利用和服务之间能够轻易地互相操作和连贯。这些利用和服务被称为“服务器”。
  2. 使集体能在不同服务器之间自在交互和参加。通过在服务器之间传递信息,能够构建凋谢和联结的社交网络。
  3. 基于现有开源社交网络应用的工作,而不是从新开始。ActivityPub 构建在已被多个利用宽泛采纳的 ActivityStreams 2.0 格局上。
  4. 简化服务器实现的复杂性。无需各实现之间建设双向连贯,应用共享的消息传递协定代替。
  5. 激励竞争和翻新。通过标准化接口和数据格式,不同服务器实现能够互相操作,且集体能够自由选择应用。
  6. 赋权给集体和社区。集体应该有权拜访和管制他们本人的数据。服务器应答社区负责并思考他们的需要。
  7. 反对不同级别的联结。从最根本的信息替换到齐全联结的社交网络。
    为了实现这些指标,本规范定义了:
  8. 一组 API 端点,用于服务器之间和集体之间的交互。
  9. 一组 JSON 音讯格局,代表集体和社交内容及其上下文。这基于ActivityStreams 2.0。
  10. 一种签名机制,用于验证音讯及其发布者。
  11. 一组传输和替换机制,用于在端点和参与者之间传递音讯。
  12. 一组用户界面元素和交互模式,作为可选实现指南。
    除了技术细节,本规范还蕴含一些非规范性指南资料,解释了规范背地一些抉择的理念。

术语与缩略语

上面是ActivityPub标准中用到的一些要害术语和缩略语:

  • 资源:ActivityPub网络中的实体,如用户、内容项、组织等等。资源由 URI 标识。
  • 对象:一种资源,代表能够在 ActivityPub 网络上替换和代表的实体,如文章、评论、图片等。
  • 主体:流动的发起者。能够是一个用户、一个组织或者一个应用程序。主体由 URI 标识。
  • 用户:一个人应用的账号。用户由 URI 标识,用户可能领有多个账号,每个账号都代表一个用户。
  • 公布:一种告诉其余主体一个新对象曾经创立或更新的流动。
  • 关注:一种订阅另一个主体的公开流动的流动。
  • 喜爱:一种示意用户赞叹某对象的流动。
  • 流动:主体执行的一个动作,如创立、更新或删除一个对象。 流动通过“流动”对象来代表。
  • 谓词:用来形容对象的属性或动作的词。ActivityPub 应用谓词来示意对象与流动之间的关系。
  • 服务器:实现ActivityPub协定并托管用户、对象和流动的数据存储的服务。
  • 工具:用于 ActivityPub 网络中进行音讯传送和信息替换的应用程序或服务。
  • 端点:接管和发送ActivityPub音讯的服务器API接口。
  • 寻址:用于在ActivityPub网络内标识和定位资源的机制。
  • 传输:用于在ActivityPub 网络中节点和参与者之间发送音讯的机制。
  • 社交网络:通过 ActivityPub 协定联通的服务器和用户形成的联结网络。
  • 联结:服务器之间严密单干以独特构建社交网络的水平。从最根本的音讯替换到齐全的用户和数据共享均在范畴内。

规范构造

  1. 概述:规范的指标和范畴,相干工作的概述。
  2. 要求:对实现细节提出的强制要求。
  3. 术语与缩略语:规范中应用到的要害术语和缩略语。
  4. 流动和对象:规范中应用的次要 JSON 音讯格局的定义。
  5. API:ActivityPub网络中用于公布和替换音讯的API端点。
  6. 传输:音讯在网络中的传输机制。
  7. 签名:用于验证消息来源和内容的数字签名机制。
  8. 寻址:在ActivityPub网络内标识和定位资源的机制。
  9. 联结:服务器间不同水平的单干与集成。
  10. 用户界面和交互:与ActivityPub交互的可选UI元素和模式。
  11. 平安考量:应用规范时须要思考的平安问题和威逼。
  12. 可扩展性:规范将来可能倒退的方向。

后续将针对该协定公布更细的解读和一些示例代码。