用語集
ATプロトコルでは、すぐには馴染みのない用語が多数使用されています。このページでは、これらの用語を簡単に参照でき、追加情報へのリンクも含まれています。
Atmosphere
「Atmosphere」は、ATプロトコルのエコシステムを説明するために使用する用語です。
ATプロトコル
ATプロトコルは、「Authenticated Transfer Protocol」の略で、よく「atproto」と省略されます。この名前は、すべてのユーザーデータが作成ユーザーによって署名されているという事実に由来しています。これにより、多くのサービスを通じてデータをブロードキャストし、発信元サーバーと直接通信しなくても、データが本物であることを証明できます。
この名前は、atprotoがソーシャルシステム向けに設計されているため、「@」記号、別名「at」記号をもじったものです。
PDS(パーソナルデータサーバー)
PDS(パーソナルデータサーバー)は、ユーザーをホストするサーバーです。PDSは常にユーザーのデータリポジトリと署名鍵を保存します。また、ユーザーにハンドルとDIDを割り当てることもあります。多くのPDSは複数のユーザーをホストします。
PDSはAppViewと通信してアプリケーションを実行します。PDSは通常、それ自体ではアプリケーションを実行しませんが、OAuthログイン画面などの一般的なアカウント管理インターフェイスを備えています。PDSはデータリポジトリをリレーと積極的に同期します。
AppView
AppViewはAtmosphere内のアプリケーションです。ネットワークの一つのビューにすぎないため、「AppView」と呼ばれます。正規データは、PDSによってホストされるデータリポジトリに保存され、そのデータはさまざまな方法で表示できます。
AppViewはウェブ上の検索エンジンに少し似ています。Atmosphere全体からデータを集約してUIを生成します。違いは、AppViewがユーザーのPDSとも通信してリポジトリに情報を公開し、完全なアプリケーションモデルを形成することです。この通信は、OAuthログインフローの一部として確立されます。
リレー
リレーは、Atmosphere全体からのデータリポジトリの集約機能です。PDSからリポジトリを同期し、変更イベントのfirehoseを生成します。AppViewはリレーを使用してユーザーデータを取得します。
リレーは最適化用途であり、厳密には必要ではありません。AppViewはPDSと直接通信できます(実際、それが推奨されることもあります)。リレーは、ネットワークで必要な接続の数を減らすのに役立ちます。
Lexicon
Lexiconはスキーマ言語です。AtmosphereでデータレコードとHTTP APIを記述するために使用されます。機能的には、JSON-SchemaやOpenAPIと非常によく似ています。
Lexiconの唯一の目的は、開発者が互換性のあるソフトウェアを構築できるようにすることです。
データリポジトリ
「データリポジトリ」または「リポジトリ」は、ユーザーを表すパブリックデータセットです。これは、JSONレコードと非構造化blobのコレクションで構成されています。すべてのリポジトリには、それを識別する1つの永続的なDIDが割り当てられます。リポジトリには、人間が読める名前として機能するドメインハンドルを1つ持つことができます。
データリポジトリは、署名されたマークルツリーです。その署名は、リポジトリのdidで公開された鍵マテリアルに対して検証できます。
コレクション
「コレクション」は、データリポジトリ内のJSONレコードのバケツです。順序付きリスト操作をサポートします。すべてのコレクションは、NSIDによって識別され、Lexiconスキーマにマップされることが想定されています。
レコード
「レコード」は、リポジトリのcollection内のJSONドキュメントです。レコードの型は$typeフィールドによって識別され、Lexiconスキーマにマッピングされることが期待されます。また、型はそのレコードを含むcollectionと一致することが期待されます。
blob
blobは、リポジトリ内に格納される非構造化データです。画像や動画などのメディアを格納するために最もよく使用されます。
ラベル
ラベルは、アカウントのDIDおよびレコードに付与されるメタデータオブジェクトです。通常、ラベルの意味を識別する「nudity」や「graphic-media」などの値によって参照されます。ラベルは主にアプリケーションによってモデレーションに使用されますが、他の目的にも使用できます。
ハンドル
ハンドルは、データリポジトリを識別するために使用されるドメイン名です。リポジトリには複数のハンドルを割り当てることができます。ハンドルは、ドメインセグメントのat:// URIで使用できます。
DID(分散型識別子)
DID(分散型識別子)は、データリポジトリを表す、ユニバーサルに一意な識別子です。これは永続的で、人間可読性は求められません。DIDはW3C仕様です。ATプロトコルは現在、2つの異なるDIDメソッドdid:webとdid:plcをサポートしています。
DIDは、リポジトリに関するメタデータ(リポジトリのPDSのアドレス、リポジトリのハンドル、公開署名鍵など)を含むドキュメントに解決されます。
NSID(名前空間ID)
NSID(名前空間ID)は、AtmosphereでLexiconスキーマを識別するために使用される識別子形式です。これらは、app.bsky.feed.postなどの逆DNS形式に従います。これらは、ドメイン所有権を介して明確なスキーマガバナンスを提供するため選択されました。逆DNS形式は、URI内のドメインとの混乱を避けるために選択されました。
TID(タイムスタンプID)
TID(タイムスタンプID)は、レコードキーに使用される識別子形式です。これらは現在の時刻から派生し、衝突を回避し、辞書順ソートを維持し、データリポジトリの内部データ構造を効率的にバランスさせるように設計されています。
CID(コンテンツID)
CIDまたはコンテンツ識別子は、レコードの暗号化ハッシュです。レコードの特定のバージョンを追跡するために使用されます。
DAG-CBOR
DAG-CBORは、atprotoで使用されるシリアル化形式です。暗号検証に重要な信頼性の高い標準形式を提供するため、この形式が選択されました。
XRPC
XRPCはatprotoで用いるHTTP APIです。これは「Cross-organizational Remote Procedure Calls」の略語で、HTTPSの薄いラッパーです。XRPCではLexiconスキーマを使って、各APIエンドポイントの有効なパラメータやレスポンスを定義します。