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呼び出しの例のような型付きコードを生成できます。