출처: Hacker News원문 보기 ↗
원문 저작권은 출처에 있습니다. 이 사이트는 수집, 번역 또는 형식 정리만 합니다.
해설과 영향
Bluesky 推出协议服务:把去中心化基础设施变成可托管产品
从自建节点到托管服务
AT Protocol 自推出以来,其去中心化架构一直要求参与者运行自己的 Personal Data Server(PDS)或中继节点,这对中小型开发团队而言运维成本不低。此次发布的 Protocol Services 将核心组件——包括身份目录、数据中继和索引服务——打包为可托管的 API 产品,开发者可以直接调用,而不必维护底层基础设施。根据官方博客介绍,该服务面向「希望快速构建 AT Protocol 应用但不想承担完整节点运维」的场景,具体定价与可用区域原文未提供。
工程层面的意义
从工程角度看,这一步的关键在于把协议层与产品层解耦。AT Protocol 的设计本身允许任何人运行中继或 PDS,但实际生态中,Bluesky 官方运营的基础设施承担了绝大部分流量。Protocol Services 的推出相当于官方提供了一条「半托管」路径:数据仍然遵循协议的可移植性规则,但计算与存储资源由服务方承担。这与 Mastodon 生态中「实例托管服务」的角色类似,区别在于 AT Protocol 的身份与数据分离机制使得用户迁移成本更低——即便应用托管在某家服务商上,用户的身份和数据仍归属其 PDS。
产业影响与竞争格局
这一动作发生在去中心化社交协议竞争加剧的背景下。Threads 已接入 ActivityPub,Mastodon 生态持续演进,而 AT Protocol 此前的主要短板之一就是开发者上手成本偏高。通过提供托管服务,Bluesky 试图在「完全去中心化」与「开发者友好」之间找到平衡点,吸引更多第三方应用进入其生态。值得注意的是,相关素材中提及的 Apple 与 Epic 关于外部支付佣金的诉讼、以及法官要求 Google 放宽第三方应用商店安装限制的裁决,都反映出平台经济正面临更严格的开放性与互操作性压力——去中心化协议在这一趋势下获得了额外的叙事空间,但能否转化为实际用户增长,仍取决于开发者生态的活跃度。
참고 자료
출처 원문
Today we’re launching Bluesky Protocol Services: a new brand, and a new website, for the public infrastructure Bluesky operates on the AT Protocol network.
Bluesky has always run more than the Bluesky app. We operate Jetstream instances, relays, and the Bluesky API endpoints built on atproto. But if you were a developer trying to build on that infrastructure, our docs didn’t always make it easy to tell what we run as a service or where to start. We’re fixing that today. Bluesky Protocol Services organizes all the documentation developers need within the ecosystem, clarifies the service contracts around Bluesky-provided infrastructure, replaces the old docs.bsky.app site and gives us a clean way to ship future releases like the ones in this post!
Jetstream v2: Network Replay
The headline release shipping alongside the new site is Jetstream v2. Jetstream is the best way for most developers to use the network at scale: you describe the slice you want, and it arrives as plain JSON over a WebSocket. What it couldn’t give you was history. If you needed the records that already existed on the network, you had to backfill repos yourself then cut over to the live stream.
Jetstream v2 adds that capability to the server. It keeps a compressed archive of the whole network and adds a new way to consume it, alongside the live tail:
Network Replay lets you catch up from any point in the past and cut over to live with no gap. You POST your filters to planSnapshot , download the sealed segments it returns over plain HTTP, then connect the live WebSocket once at the tip. Replay is stateless on the server, with no per-consumer cursor, no subscription to register, and nothing to stage on the client. Jetstream is your buffer. You can also just snapshot the network — a point-in-time copy of the archive over HTTP only ( listSegments + getSegment ), with no live tail. Same archive, same filters, no WebSocket.
This unlocks much more sophisticated server-side slicing without ever backfilling locally: you can spin up an App, run an analysis over a month of posts, or recover from downtime, all through the same JSON shape as the live tail.
Serving these archives is bandwidth-intensive. To ensure the service remains reliable and cheap to run, we’re now requiring an API token just for these requests. The live tail remains open and unauthenticated, it’s only when you request an archive that we require a token. We have no plans to introduce an auth requirement for the live stream.
The v2 instances are live now at wss://jetstream.us-west.bsky.network and wss://jetstream.us-east.bsky.network . The existing v1 instances will keep running unchanged for a while, and the live tail behaves identically on both, so there’s no rush to move. Read the full flow in the Network Replay docs.
And! As always, this infrastructure is open source and self-hostable. See Running your own Jetstream for details.
A Jetstream SDK
Jetstream is plain JSON, so you never need an SDK. But there’s some common glue: reconnecting, deduping, cursor management, decoding events into typed records. Hence, the new Jetstream SDKs: TypeScript and Go clients where you construct a Jetstream object, pass a filter, and for await over decoded, typed events:
import { Jetstream } from '@bsky/jetstream' import { app } from '@bsky/sdk/lexicons'
const js = new Jetstream ( 'https://jetstream.us-east.bsky.network' )
for await ( const evt of js .live ({ collections : [ app . bsky . feed .post] })) { if ( evt .kind = 'commit' && evt . commit .operation = 'create' ) { console .log ( evt . commit .collection , evt . commit . record .text) } } Copy Copied! The TypeScript SDK is available from npm, including npmx.
The Go SDK is available as part of the Jetstream project.
The Jetstream SDK docs go into more detail.
The Bluesky TypeScript SDK, rebased on lex
Back in May we promoted the lex SDK to stable preview and promised that the standalone Bluesky docs would follow. That’s now done: the Bluesky TypeScript SDK is rebuilt on top of @atproto/lex , which means we’re no longer maintaining legacy code paths for Bluesky-specific helpers. This is the lexicon toolchain, fully typed end to end, from the protocol layer up through app.bsky records.
Every TypeScript example on this new site is written against it, marking a huge move away from legacy technical debt—this is good code hygiene for us, and should eliminate LLM recommendations for deprecated SDKs. If you’re still using @atproto/api code, it continues to work as before, and the Bluesky API guides serve as a migration reference.
Updates to endpoints.bsky.app
Finally, the HTTP reference has been updated. Spinning those docs out of https://docs.bsky.app was actually step 1 of this overhaul; we’re now landing the remainder.
The new network.bsky.jetstream.* methods that power Replay — planBackfill , listSegments , getSegment , and getBlock — are now browsable with full request and response schemas, and the reference now documents Jetstream’s WebSocket endpoints too, so the entire Jetstream v2 surface lives in one place.
What’s next
Everything above is live today: the new site, the v2 Jetstream instances, the SDK preview, and the updated HTTP reference. If you’re new to the network, start with How It Works, a visual walkthrough of how records, lexicons, and the firehose fit together. If you’re building against the Bluesky app’s data model, the Bluesky API guides are all still there, freshly rewritten (more on that below)
If you build something on Replay in the next few weeks, we’d love to hear about it; the fastest way to shape where the SDK’s orchestration goes is to show us what you’re folding the stream into.