Bluesky Protocol Services

Hacker News Top 产品

摘要

Bluesky 推出了 Bluesky Protocol Services,这是其公共 AT Protocol 基础设施的新品牌/网站,并发布了 Jetstream v2 及 Network Replay 功能以支持历史数据访问,还推出了新的 TypeScript 和 Go SDK。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/14 03:23

# 介绍 Bluesky 协议服务 - AT Protocol 来源:https://atproto.com/blog/introducing-bluesky-protocol-services 今天我们正式推出 **Bluesky 协议服务 (https://bsky.network/)**:这是一个新品牌和一个新网站,用于 Bluesky 在 AT Protocol (https://atproto.com/) 网络上运营的公共基础设施。 Bluesky 一直以来运营的不仅仅是 Bluesky 应用本身。我们还运营着基于 atproto 构建的 Jetstream 实例、relay 和 Bluesky API 端点。但如果你是一位试图在该基础设施上进行构建的开发者,我们的文档并不总能让你轻松分辨我们作为服务运行的是什么,以及从哪里开始。今天我们来解决这个问题。Bluesky 协议服务整合了生态系统中开发者所需的全部文档,明确了 Bluesky 所提供基础设施的服务契约,取代了旧版 docs.bsky.app 网站,并为我们提供了一种干净的方式来发布未来版本,比如本文中提到的这些! 与新版网站一同发布的重磅版本是 **Jetstream v2**。对于大多数开发者来说,Jetstream 是规模化使用网络的最佳方式:你描述你想要的切片,然后它通过 WebSocket 以纯 JSON 形式送达。但它无法提供的是*历史数据*。如果你需要网络上已存在的记录,你必须自己回填仓库,然后切换到实时流。 Jetstream v2 将这一能力加入了服务器。它保存了整个网络的压缩归档,并新增了一种消费方式,与实时尾部并存: **Network Replay** 允许你从过去任意时间点开始追赶,并无缝切换到实时流。你通过 `POST` 将过滤器发送到 `planSnapshot`,通过普通 HTTP 下载它返回的密封分段,然后一旦到达最新位置就连接实时 WebSocket。Replay 在**服务器上是无状态的**,没有每个消费者的游标,没有需要注册的订阅,客户端也无需暂存任何内容。Jetstream 就是你的缓冲区。你还可以*仅*对网络进行快照——仅通过 HTTP 获取归档的某个时间点副本(`listSegments` + `getSegment`),不加实时尾部。相同的归档,相同的过滤器,无需 WebSocket。 这解锁了更复杂的服务端切片能力,而无需在本地进行任何回填:你可以启动一个 App (https://atproto.com/guides/the-at-stack),对一个月内的帖子运行分析,或从停机中恢复,全部通过与实时尾部相同的 JSON 格式实现。 提供这些归档服务对带宽要求很高。为确保服务保持可靠且运行成本低廉,我们现在仅对这些请求要求 API token (https://bsky.network/account)。实时尾部保持开放且无需认证,只有当你请求归档时才需要 token。我们没有计划对实时流引入认证要求。 v2 实例现已上线,地址为 `wss://jetstream.us-west.bsky.network` 和 `wss://jetstream.us-east.bsky.network`。现有的 v1 实例将继续保持不变运行一段时间,且两者上的实时尾部行为完全相同,所以无需急于迁移。请在 Network Replay 文档 (https://bsky.network/docs/jetstream-replay) 中阅读完整的流程。 另外!一如既往,这套基础设施是开源且可自行托管的。详情请参阅 Running your own Jetstream (https://bsky.network/docs/jetstream-self-host)。 Jetstream 是纯 JSON,所以你*并不需要* SDK。但有一些常见的粘合代码:重连、去重、游标管理、将事件解码为类型化记录。因此,我们推出了新的 **Jetstream SDK**:TypeScript 和 Go 客户端,你可以构造一个 `Jetstream` 对象,传入过滤器,然后 `for await` 遍历解码后的类型化事件: TypeScript SDK 可通过 npm 获取,包括 npmx (https://npmx.dev/package/@bsky/jetstream)。 Go SDK 作为 Jetstream 项目 (https://github.com/bluesky-social/jetstream) 的一部分提供。 更详细的信息请参阅 Jetstream SDK 文档 (https://bsky.network/docs/jetstream-sdk)。 今年五月,我们将 `lex` SDK 提升为稳定预览版 (https://atproto.com/blog/ts-sdk-upgrades),并承诺独立的 Bluesky 文档也会跟进。现在完成了:**Bluesky TypeScript SDK** (https://npmx.dev/package/@bsky/sdk) 已在 `@atproto/lex` (https://www.npmjs.com/package/@atproto/lex) 之上重建,这意味着我们不再维护针对 Bluesky 特定助手的旧代码路径。这是 lexicon 工具链,端到端完全类型化,从协议层一直到 `app.bsky` 记录。 这个新网站上的每个 TypeScript 示例都是基于它编写的,标志着我们大大摆脱了遗留技术债务——这对我们来说是良好的代码卫生,也应该能消除 LLM 对已弃用 SDK 的推荐。如果你仍在使用 `@atproto/api` 代码,它会和以前一样继续工作,Bluesky API 指南 (https://bsky.network/docs/bluesky-api) 可作为迁移参考。 最后,HTTP 参考 (https://endpoints.bsky.app/) 也已更新。将这些文档*从* https://docs.bsky.app/ 中分离出来实际上是这次大修的第一步;我们现在完成了其余部分。 为 Replay 提供支持的新 `network.bsky.jetstream.*` 方法——`planBackfill`、`listSegments`、`getSegment` 和 `getBlock`——现在可以浏览完整的请求和响应模式,参考文档现在也记录了 Jetstream 的 WebSocket 端点,因此整个 Jetstream v2 界面都集中在一个地方。 以上所有内容今天均已上线:新网站 (https://bsky.network/)、v2 Jetstream 实例、SDK 预览版以及更新后的 HTTP 参考。如果你刚接触这个网络,可以从 How It Works (https://bsky.network/docs/how-it-works) 开始,这是一个可视化教程,展示记录、lexicon 和 firehose 如何组合在一起。如果你正在基于 Bluesky 应用的数据模型进行构建,Bluesky API 指南 (https://bsky.network/docs/bluesky-api) 仍然都在那里,并且已经重新编写(下面有更多内容)。 如果你在未来几周内基于 Replay 构建了什么,我们很乐意听到你的反馈;影响 SDK 编排方向的最快方式,就是向我们展示你将流融入到了什么场景中。

相似文章

Bluesky’s new CEO wants a big tent, not a bubble

The Verge

Decoder podcast interview with new Bluesky CEO Toni Schneider about balancing the Bluesky app with the AT Protocol ecosystem, confronting the 'bubble' reputation, and how the open social web could develop like the early web.

Bluesky 即将推出‘社区’功能

The Verge

Bluesky 正在推出基于 AT 协议的‘社区’功能,允许用户创建具有隐私级别和自定义推送的小型空间,灵感来源于 Reddit。

ATProto 许可数据提案草案

Hacker News Top

Bluesky 已发布 AT 协议上许可数据的提案草案,同时还有用户列表、审核、OAuth 等其他提案,作为其持续开发工作的一部分。

我们将Bluesky数据迁移到了Eurosky

Hacker News Top

Waag将其Bluesky数据迁移至Eurosky的个人数据服务器,以加强对数据的控制并支持去中心化,强调了尽管Bluesky具有中心化倾向,但数字主权的重要性。