Hasty Briefsbeta

Introduction to Bluesky's AT Protocol

3 days ago
  • #ATProto
  • #Decentralization
  • #Bluesky
  • The AT Protocol (ATProto) is the underlying system for Bluesky, designed to be decentralized and modular.
  • Bluesky is both a company (Bluesky PBC) and a product (the social network), built on ATProto as a tech demo.
  • ATProto consists of records (JSON objects representing data) and blobs (binary files like images).
  • Records are defined by lexicons, which are schema definitions specifying data structure and constraints.
  • Each user is identified by a Decentralized Identifier (DID), which is permanent and not tied to handles.
  • Handles can change (e.g., @user.bsky.social to @user.example.com) without breaking connections, as DIDs remain constant.
  • User data is stored in repositories (repos), which include records and blobs, and can be downloaded as CAR files.
  • XRPC is the API convention used in ATProto, with endpoints like `/xrpc/app.bsky.feed.getPosts`.
  • Rich text in posts uses a 'facets' system, where links and mentions are explicitly marked in the text.
  • Personal Data Servers (PDS) store user data and act as the 'source of truth' for accounts.
  • Relays aggregate firehose streams from PDSes, providing a unified data feed for services like AppViews.
  • AppViews process and serve data to client apps, enabling features like timelines, search, and moderation.
  • Labellers are moderation services that assign labels to content, which users can subscribe to for filtering.
  • Custom feeds are generated by third-party services, allowing users to create and share algorithmic timelines.
  • Client apps (like bsky.app) interact with PDSes and AppViews via APIs, with no built-in frontend on PDSes.
  • DMs are currently centralized and not part of the protocol, with plans for future end-to-end encryption.