文章摘要
Bluesky推出协议服务新品牌与网站,整合开发者文档,明确服务合同,并发布Jetstream v2,新增历史数据回溯功能,开发者可通过WebSocket获取网络完整记录。
文章总结
今天,我们正式推出 Bluesky 协议服务:这是一个全新的品牌和网站,用于展示 Bluesky 在 AT 协议网络上运行的公共基础设施。
Bluesky 一直运营着比 Bluesky 应用本身更多的服务,包括 Jetstream 实例、中继以及基于 atproto 构建的 Bluesky API 端点。然而,对于希望基于这些基础设施进行开发的开发者来说,之前的文档并未清晰说明我们作为服务运行的内容或如何入手。今天,我们解决了这一问题。Bluesky 协议服务整合了生态系统内开发者所需的所有文档,明确了 Bluesky 提供的基础设施的服务协议,取代了旧的 docs.bsky.app 网站,并为我们提供了一种简洁的方式来发布未来的更新,例如本文中提到的内容!
与新网站同步发布的重磅更新是 Jetstream v2。对于大多数开发者来说,Jetstream 是规模化使用网络的最佳方式:你只需描述所需的数据切片,它就会通过 WebSocket 以纯 JSON 格式传输。但之前它无法提供历史数据。如果你需要网络中已有的记录,必须自行回填仓库,然后切换到实时流。
Jetstream v2 为服务器增加了这一功能。它保留了整个网络的压缩存档,并提供了新的消费方式,与实时尾部数据流并存:
网络回放 功能让你可以从过去的任意时间点开始追赶,并无缝切换到实时数据流。你只需将过滤器 POST 到 planSnapshot,通过普通 HTTP 下载它返回的密封数据段,然后在最新位置连接实时 WebSocket。回放功能在服务器端是无状态的,无需为每个消费者维护游标、无需注册订阅,也无需在客户端进行任何暂存操作。Jetstream 就是你的缓冲区。你也可以仅对网络进行快照——通过 HTTP 获取存档的时间点副本(使用 listSegments 和 getSegment),而不连接实时尾部数据流。使用相同的存档、相同的过滤器,无需 WebSocket。
这解锁了更复杂的服务器端数据切片能力,而无需在本地进行回填:你可以启动一个应用,对一个月内的帖子进行分析,或从停机中恢复,所有这些都通过与实时尾部数据流相同的 JSON 格式完成。
提供这些存档需要消耗大量带宽。为了确保服务保持可靠且运行成本低廉,我们现在要求仅对这些请求使用 API 令牌。实时尾部数据流保持开放且无需认证,只有在请求存档时才需要令牌。我们目前没有计划对实时流引入认证要求。
v2 实例现已上线,地址为 wss://jetstream.us-west.bsky.network 和 wss://jetstream.us-east.bsky.network。现有的 v1 实例将继续保持不变运行一段时间,且两个版本的实时尾部数据流行为完全相同,因此无需急于迁移。完整的流程请参阅网络回放文档。
此外,这些基础设施是开源且可自行托管的。详情请参见运行你自己的 Jetstream。
Jetstream 使用纯 JSON 格式,因此你无需 SDK。但有一些常见的辅助功能:重连、去重、游标管理、将事件解码为类型化记录。因此,我们推出了新的 Jetstream SDK:TypeScript 和 Go 客户端,你可以构建一个 Jetstream 对象,传递过滤器,然后通过 for await 循环处理解码后的类型化事件。
TypeScript SDK 可通过 npm 获取,包括 npmx。Go SDK 作为 Jetstream 项目的一部分提供。更多细节请参阅 Jetstream SDK 文档。
今年五月,我们将 lex SDK 升级为稳定预览版,并承诺后续会推出独立的 Bluesky 文档。现在这一承诺已兑现:Bluesky TypeScript SDK 已基于 @atproto/lex 重建,这意味着我们不再维护 Bluesky 特定辅助功能的遗留代码路径。这是从协议层到 app.bsky 记录全程类型化的词表工具链。
这个新网站上的每个 TypeScript 示例都是基于它编写的,标志着我们大幅摆脱了遗留技术债务——这对我们来说是良好的代码卫生,也应能消除 LLM 对已弃用 SDK 的推荐。如果你仍在使用 @atproto/api 代码,它将继续正常工作,Bluesky API 指南可作为迁移参考。
最后,HTTP 参考文档也已更新。将这些文档从 docs.bsky.app 中分离出来实际上是这次重构的第一步;现在我们完成了剩余部分。支持回放功能的新 network.bsky.jetstream.* 方法——planBackfill、listSegments、getSegment 和 getBlock——现在可以浏览完整的请求和响应模式,参考文档也记录了 Jetstream 的 WebSocket 端点,因此整个 Jetstream v2 的界面都集中在一个地方。
以上所有内容今天均已上线:新网站、v2 Jetstream 实例、SDK 预览版以及更新后的 HTTP 参考文档。如果你是网络新手,请从“工作原理”开始,这是一个关于记录、词表和火线如何协同工作的可视化指南。如果你正在基于 Bluesky 应用的数据模型进行开发,Bluesky API 指南仍然可用,并且已经过重新编写。
如果你在未来几周内基于回放功能构建了某些内容,我们很乐意听取你的反馈;塑造 SDK 编排方向的最快方式是向我们展示你如何将数据流整合到你的应用中。
评论总结
根据评论内容,总结如下:
主要观点与论据:
技术架构与用户体验(评分:无)
- 正面:Jetstream系统易用性高,可直接在浏览器消费Bluesky数据流(simonw:“The original Jetstream is really cool - it's incredibly easy to start consuming the Bluesky firehose”)
- 负面:平台稳定性存疑,故障时缺乏透明沟通(ChrisArchitect:“when they have outages... it's not a good vibe”)
平台发展方向(评分:无)
- 用户基数收缩与功能扩展并存(ChrisArchitect引用相关文章:“Bluesky's active user base is shrinking as its focus expands beyond the app”)
创新应用设想(评分:无)
- 提议基于Bluesky重构DNS系统(josephg:“remake DNS on top of bluesky... fix some of DNS's long running problems”)
界面设计评价(评分:无)
- 赞赏页面UI的简洁高效(walrus01:“very fast and relatively uncluttered for the menu”)
平衡性说明: 评论呈现两极分化——技术爱好者肯定其开放性与创新潜力,但普通用户对服务稳定性与透明度提出质疑。