Dolos、軽量なRustベースのデータノードをCardano開発者に提供
TxPipeはCardano Developers Office Hoursで、インフラ負荷を軽減し、開発者にブロックチェーンデータへの柔軟なアクセスを提供するRustベースの軽量CardanoデータノードDolosについて発表しました。
By SongMarketCap
Cardano Developers Office Hoursにて、TxPipeのCEO兼創設者であるSantiago Carmuega氏が、Rustで記述された軽量Cardanoデータノード「Dolos」についての技術的なプレゼンテーションを行いました。このセッションでは、インフラの多様性、モジュール性、アプリケーション、ウォレット、およびバックエンドサービス向けにCardanoブロックチェーンデータへのアクセスを容易にすることに焦点が当てられました。
Dolosは既存のCardanoノードの代替ではなく、補完的なツールとして紹介されました。その目的はより限定的で、完全なインフラスタックを操作せずチェーンデータに信頼できる形でアクセスする必要があるチームのための柔軟なクエリレイヤーを提供することです。
DolosはCardano開発者の体験とデータアクセスをターゲットに
TxPipeはCardano開発者向けのオープンソースツールを構築しており、Dolosは開発者体験の向上というこの広範な焦点にフィットしています。Carmuega氏は、Cardanoエコシステムで最初に直面した課題の1つが、ノードからデータを取得する際の難しさだったと述べました。
他の一部のブロックチェーンエコシステムでは、開発者はエンドポイントをクエリし、最新のブロック、トランザクション、またはアドレスの状態に関する情報を簡単に取得できます。一方Cardanoでは、そのプロセスは技術的により要求が高く、Ouroborosミニプロトコル、バイナリフォーマット、独自のネットワーキングモデルが関与します。
プレゼンテーションによると、Dolosは特定のユースケース向けに設計された代替かつ補完的なノードとして作成され、開発者がCardanoチェーンからデータをクエリするためのより豊かで柔軟な方法を提供します。これにより、コンセンサスに参加したりブロックを生成したりする必要はないが、チェーンデータを読み取るための安定したバックエンドが必要なアプリケーション、ウォレット、データサービスを構築するチームにとって有用です。
Carmuega氏はDolosとDB Syncを比較しました。DB SyncはCardanoデータへの深いSQLベースのアクセスを提供する一般的なツールですが、Cardanoノード、PostgreSQL、および同期ワーカーが必要です。一方、Dolosはアプリケーションが必要とする特定のデータをすでに知っているケースをターゲットにしており、完全な動的SQLバックエンドを操作する代わりに、より効率的なAPIを使用できます。
RustベースのCardanoノードはBlockfrost、Kupo、UTXRPCをサポート
Dolosは外部アプリケーション向けにいくつかのAPIサーフェースを公開しています。その1つが、UTXRPC仕様を使用したgRPCインターフェースで、コンパクトなバイナリ通信および低遅延クエリが重要なユースケース向けに設計されています。また、DolosはBlockfrostに似たAPIを含み、既存のBlockfrostスタイルのエンドポイントを使用しているチームが最小限の統合変更でDolosに移行できるようにします。
TxPipeは、Blockfrostチームと密接に連携し、エンドポイント互換性を確認するためにBlockfrost適合テストを使用したと述べています。Carmuega氏によると、Dolosは900以上の適合テストに合格していますが、一部のBlockfrostエンドポイントはコストベネフィットの観点から除外されています。
Dolosはまた、Kupo APIのミニバージョンを提供し、UTXOセット、データム、スクリプトに焦点を当て、Kupoユーザーに馴染みのあるクエリパターンを使用します。さらに、ローカルステートクエリやチェーン同期を含むCardanoノード対クライアントのミニプロトコルを公開しています。これにより、Haskellノードとのやり取りを期待する特定のツールがDolosに接続し、同じAPIサーフェースの一部を使用できます。
この設計により、DolosはCardanoアプリケーションのインフラストラクチャアダプタとしての位置付けを持ちます。ウォレット、トランザクションビルダー、エクスプローラー、ミドルウェアツールは、Blockfrost互換性、KupoスタイルのUTXOクエリ、UTXRPCパフォーマンス、または標準的なCardanoノード環境に近いソケットインターフェースのいずれかを使用するアクセスパターンを選択できます。
スライディングウィンドウストレージとリレーノード信頼仮定
Dolosは明確なトレードオフを含みます。Carmuega氏によると、Dolosはデータを取得する際、完全なコンセンサスまたは完全なブロック検証を行いません。代わりに、ノード対ノードプロトコルを通じてリレーノードに接続します。このリレーノードは、オペレーターがデータソースとして選択するローカルまたはパブリックなものです。これにより、Dolosと使用されるリレーノードの間に信頼仮定が生じます。
アプリケーション開発者にとって、このモデルは完全なローカルノードスタックを運用する必要がないデータアクセスユースケースに適合する場合があります。セッション中に行われた比較では、DB Syncもデータソースとしてバックグラウンドのノードに依存している一方で、DolosはローカルHaskellノードソケットを必要とせずリレーノードに接続できると述べられました。
プレゼンテーションで強調された技術的な特徴の1つは、Dolosのスライディングウィンドウストレージモデルです。オペレーターはチェーンの完全な履歴を保持することもできますが、限定された時間枠を選択することも可能です。この設定では、Dolosは選択された期間に関連するブロック、トランザクション、スクリプト、データム、およびUTXOデータを保持し、古いデータはローカルストレージから削除されます。これにより、完全な履歴(Byronエラからの)ではなく、最近のチェーン活動のみを必要とするアプリケーションに対してディスク要件を削減できます。
TxPipeはメインネットDolosインスタンスからのパフォーマンスデータも示しました。セッション中に表示されたダッシュボードによると、1つのインスタンスは毎秒約180リクエストを処理しており、99パーセンタイルのレイテンシーはほとんど800ミリ秒以下、50パーセンタイルはおおよそ4〜5ミリ秒程度であるとのことです。Carmuega氏は、これらの結果をRustで記述されたコンパクトで単一プロセスのDolosコンポーネント、ローカルキー値ストレージ、LSMツリー、ブルームフィルタ、および特定のインデックス戦略と関連付けて説明しました。
プレゼンテーションにはDolosの使用例も含まれていました。たとえば、Dolosをバックエンドとして運用しDB Syncを使用せずに動作する開発者向けチェーンエクスプローラー「Lace Anatomy」が挙げられました。Carmuega氏はまた、Demeterプラットフォームエンドポイントや、データアクセスのためにDolosを内部で使用している他のCardanoエコシステムチームについても言及しました。
Dolosは、すべてのユースケースにDB Syncを必要とせずとも、Blockfrost的、Kupo的、UTXRPC的なアクセスパターンに対応できるバックエンドオプションをCardanoアプリケーションに提供します。ウォレット、エクスプローラー、データサービスにとって、この運用上の違いは、完全なコンセンサス参加がインフラ要件の一部ではない場合、Cardanoチェーンデータへのより軽量なルートを提供します。