要約
atprotoは、大規模向けのオープンソーシャルです。ユーザーはJSONレコードをリポジトリに公開します。これらのレコードの変更ストリームがネットワーク全体で同期され、アプリケーションを動かします。
コミュニティメンバーのDan Abramovによる、素晴らしい記事をおすすめします。
- Open Social - プロトコルはAPIである
- Where it's at:// - ハンドルからホスティングに辿り着くまで
- A Social Filesystem - フォーマットはアプリを超える
コアプリミティブ
- ユーザーリポジトリ:ユーザーごとの公開データベース。
- ユーザーハンドル:DNSレコードとして表現されるユーザー名。私たちのアカウントは@atproto.comです。
- ユーザーDID:ユーザーの恒久的なID。
データモデル
- レコード:コレクションごとに分類されたJSON。
- blob:画像と動画。
- Lexicon:スキーマ言語。
- Lexicon RPC (XRPC):HTTPSですが、ルートはLexiconで定義されます。
スタック
セルフホストできるサービスには、いくつかの種類があります。
- パーソナルデータサーバー(PDS):ユーザーアカウントをホストします。
- リレー:ユーザーの書き込みイベントを収集して再配信します。
- アプリケーション:ユーザーデータを集約してアプリ体験を作ります。
- ラベラー:モデレーションの判断をラベルメタデータとして公開します。
使い方
あなたがアプリケーションを作っているとします。ユーザーはOAuthでサインインし、その結果としてあなたのアプリは各ユーザーのPDSアドレスを受け取ります。あなたのアプリは、そのPDSに接続してレコードを読み書きします。
ネットワーク全体のアクティビティを監視するには、リレーから同期します。ユーザーのPDSから直接同期することもできますが、リレーを使う方が便利です。すべてのデータには署名があるため、リレーのストリームが正確か検証できます。
Lexiconは、ネットワーク上で公開されるデータの識別に役立ちます。受け取ったHTTPリクエストを検証するように、読み取り時のデータ検証に使います。
最後に、ユーザーからの報告を受け取りユーザーコンテンツにラベルを発行するラベラーを利用(または運用)して、モデレーションを行います。
さらに詳しく
チームによる次の深掘り記事もおすすめです。
- 分散システムエンジニアのためのatproto:バックエンドを考える人のための解説
- atprotoの基本理念:atprotoの設計を支える原則