FAQ

ATプロトコルに関するよくある質問

FAQ

Authenticated Transfer Protocol(Atproto)に関するよくある質問。Blueskyに関するよくある質問については、こちらをご覧ください。

ATプロトコルはブロックチェーンですか?

いいえ。ATプロトコルはフェデレーションプロトコルです。ブロックチェーンではありませんし、ブロックチェーンを使用していません。

ActivityPubを使用しないのはなぜですか?

ActivityPubは、Mastodonによって普及したフェデレーションソーシャルネットワーキングテクノロジーです。

アカウントのポータビリティは、新しいプロトコルを構築することを選択した主な理由です。ポータビリティは、突然のBAN、サーバーのシャットダウン、ポリシーの不一致からユーザーを保護するため、非常に重要であると考えています。ポータビリティのソリューションには、署名付きデータリポジトリDIDの両方が必要ですが、どちらもActivityPubに後から簡単に組み込むことはできません。ActivityPubの移行ツールは比較的制限されており、元のサーバーがリダイレクトを提供する必要があり、ユーザーの以前のデータを移行することはできません。

もう一つの大きな理由は、スケーラビリティです。ActivityPubは、小規模から中規模のノードの広範なネットワーク間でメッセージを配信することに大きく依存しているため、個々のノードにトラフィックが殺到し、アクティビティのグローバルビューを提供するのが困難になることがあります。ATプロトコルは、集約アプリケーションを使用してユーザーのホストからのアクティビティをマージし、全体的なトラフィックを削減して、個々のホストの負荷を大幅に削減します。

その他の小さな違いとしては、スキーマの扱い方に関する異なる視点、APの@を二重にしたメール式ユーザー名よりもドメインユーザー名を優先すること、大規模な検索とアルゴリズムフィードを実現するという目標などがあります。

JSON-LDやRDFを使用する代わりにLexiconを作成する理由

Atprotoは組織間でデータとRPCコマンドを交換します。データとRPCが有用であるためには、ソフトウェアが別のチームによって作成されたスキーマを正しく処理する必要があります。これがLexiconの目的です。

私たちは、エンジニアが新しいスキーマを快適に使用および作成できるようにし、開発者がシステムのDXを楽しめるようにしたいと考えています。Lexiconは、開発者にとって非常に馴染み深く、さまざまな実行時正確性チェックを提供する、厳密に型指定されたAPIの作成に役立ちます。

RDFは、システムがほとんどインフラストラクチャを共有しない、極めて一般的なケースを対象としています。概念的にはエレガントですが、使いにくく、開発者が理解できない構文が多数追加されることがよくあります。JSON-LDはRDFボキャブラリの使用タスクを簡素化しますがRDFを読みやすくするのではなく、基礎となる概念を隠すことによって簡素化します。

私たちはRDFの使用を非常に詳しく検討しましたが、開発者体験(DX)や提供ツールが気に入りませんでした。

XRPCとは何ですか。なぜ___を使用しないのですか?

XRPCは、いくつかの規則が追加されたHTTPです。

XRPCはLexiconを使用してHTTP呼び出しを記述し、それらを/xrpc/{methodId}にマッピングします。たとえば、次のようなAPI呼び出しを考えます。

await api.com.atproto.repo.listRecords({
  user: 'alice.com',
  collection: 'app.bsky.feed.post'
})

これは以下のようにマップされます。

GET /xrpc/com.atproto.repo.listRecords
  ?user=alice.com
  &collection=app.bsky.feed.post

Lexiconは、共有メソッドID(com.atproto.repo.listRecords)と、予想されるクエリパラメータ、入力および出力を明示します。Lexiconを使用すると、呼び出しの入力と出力の実行時チェックが実行され、上記のAPI呼び出しの例のような型付きコードを生成できます。