2025/08/20 19:13 Introduction to Bluesky's AT Protocol

やっほー、ロボ子!今日のニュースはBlueskyとATProtoについてじゃ。

博士、こんにちは。BlueskyとATProtoですか。最近よく耳にするようになりました。

そうじゃろ?Blueskyは、会社、SNS、そして基盤技術のATProtoの3つの意味があるんじゃと。

なるほど。ATProtoはBlueskyを構築するためのプロトコルであり、他のアプリも構築可能なんですね。全体を「Atmosphere」と呼ぶ、と。

その通り!ATProtoの構成要素は、レコード、BLOB、レキシコン、分散型識別子(DID)などがあるぞ。

レコードはJSONオブジェクトで、投稿やプロフィールを表すんですね。バイナリ形式のCBORで保存・転送される、と。

そうそう。レキシコンはレコードのデータ構造を定義するスキーマ定義じゃ。NSIDで識別されるんじゃ。

NSIDは、`app.bsky.*`や`com.atproto.*`などのプレフィックスを持つんですね。Bluesky固有のデータ型や、ATProto全体で使用されるデータ型を定義する、と。

DIDはネットワーク上のユーザーを一意に識別するIDじゃ。ほとんどが`did:plc`を使用するらしいぞ。

DIDドキュメントには、ハンドルやPDSサーバーなどの情報が含まれるんですね。DIDは永続的で、アカウントの唯一の変更不可能な識別子、と。

ハンドルはユーザーが使う識別子で、DIDに紐付けられるんじゃ。ドメイン名を所有していれば、それをハンドルとして使えるぞ。

AT URIは各レコードを一意にアドレス指定するURIですね。`at://<user_DID>/<lexicon_NSID>/<rkey>`の形式で、レコード間の参照に使用される、と。

ユーザーリポジトリはユーザーのすべてのデータを保存する場所じゃ。CARファイルとしてダウンロードできるんじゃと。

XRPCはATProtoネットワークで使用されるAPIの規約ですね。レキシコンNSIDと同じ命名規則を使用する、と。

ファセットは投稿内のリンクやリッチテキストを扱うためのシステムじゃ。テキストの特定範囲をリンクとしてマークするんじゃ。

サーバーの種類も色々あるんですね。PDS、リレー、AppView、ラベラー、フィードジェネレーター、クライアントアプリ…。

PDSはユーザーデータのオリジナルコピーを保存するサーバーじゃ。FirehoseというWebSocket APIを持っていて、PDS上のすべての変更をストリームとして提供するんじゃ。

リレーはネットワーク上のすべてのPDSからFirehoseストリームを結合し、大規模なストリームとして提供するサーバーですね。AppView、ラベラー、フィードジェネレーターなどのサービスへの入力として使用される、と。

AppViewはクライアントアプリに処理されたデータを提供するAPIサーバーじゃ。リレーから新しいデータをストリームし、ローカルにコピーを保存するんじゃ。

ラベラーはBlueskyのモデレーションサービスで、アカウントやレコードにラベルを付与するんですね。ユーザーはラベラーを購読し、ラベルの処理方法を選択できる、と。

フィードジェネレーターはカスタムフィードを作成するためのサービスじゃ。AppViewからのリクエストに応じて、投稿のAT URIリストを返すAPIを公開するんじゃ。

クライアントアプリはBlueskyにアクセスするためのインターフェースですね。PDSとは別に存在し、APIを通じて通信する、と。

DMはまだプロトコルの一部ではなく、集中型のクローズドソースサービスとして実装されているらしいぞ。

全体の流れとしては、クライアントアプリが新しいレコードを作成し、PDSに保存。PDSがFirehoseでイベントを発行…という感じですね。

その通り!次のステップは、公式ドキュメントやSDKを利用してプロトコルの理解を深めたり、既存のライブラリを使ってデータをロードするツールを作ったりすることじゃな。

カスタムフィードサービスを作成したり、リレーのFirehoseに接続して特定のデータを記録したりすることもできるんですね。

そうじゃ!コミュニティに参加して、質問や議論を行うのも良いぞ。…ところでロボ子、Blueskyで一番青い鳥は何色だと思う?

えっと…、Blueskyのロゴの色ですか?

ブー!正解は「青二才」じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
