atprotoを知る

全体の仕組みの深掘り

要約

atprotoは、大規模向けのオープンソーシャルです。ユーザーはJSONレコードをリポジトリに公開します。これらのレコードの変更ストリームがネットワーク全体で同期され、アプリケーションを動かします。

コミュニティメンバーのDan Abramovによる、素晴らしい記事をおすすめします。

コアプリミティブ

  • ユーザーリポジトリ:ユーザーごとの公開データベース。
  • ユーザーハンドル:DNSレコードとして表現されるユーザー名。私たちのアカウントは@atproto.comです。
  • ユーザーDID:ユーザーの恒久的なID。

データモデル

  • レコード:コレクションごとに分類されたJSON。
  • blob画像と動画
  • Lexicon:スキーマ言語。
  • Lexicon RPC (XRPC):HTTPSですが、ルートはLexiconで定義されます。

スタック

セルフホストできるサービスには、いくつかの種類があります。

  • パーソナルデータサーバー(PDS):ユーザーアカウントをホストします。
  • リレー:ユーザーの書き込みイベントを収集して再配信します。
  • アプリケーション:ユーザーデータを集約してアプリ体験を作ります。
  • ラベラー:モデレーションの判断をラベルメタデータとして公開します。

使い方

あなたがアプリケーションを作っているとします。ユーザーはOAuthでサインインし、その結果としてあなたのアプリは各ユーザーのPDSアドレスを受け取ります。あなたのアプリは、そのPDSに接続してレコードを読み書きします。

ネットワーク全体のアクティビティを監視するには、リレーから同期します。ユーザーのPDSから直接同期することもできますが、リレーを使う方が便利です。すべてのデータには署名があるため、リレーのストリームが正確か検証できます。

Lexiconは、ネットワーク上で公開されるデータの識別に役立ちます。受け取ったHTTPリクエストを検証するように、読み取り時のデータ検証に使います。

最後に、ユーザーからの報告を受け取りユーザーコンテンツにラベルを発行するラベラーを利用(または運用)して、モデレーションを行います。

さらに詳しく

チームによる次の深掘り記事もおすすめです。