最終更新:
編集

Clioサーバ

Clioは、検証済みの台帳データに対するWebSocketまたはHTTP API呼び出しに最適化されたXRP Ledger APIサーバです。

ClioサーバはP2Pネットワークに接続しません。代わりに、P2Pネットワークに接続されている指定されたrippledサーバからデータを抽出します。APIコールを効率的に処理することで、ClioサーバはP2Pモードで動作するrippledサーバの負荷を軽減することができます。

Clioは、検証済みの過去の台帳とトランザクションデータをスペース効率の良いフォーマットで保存し、rippledに比べて最大4倍少ないスペースで保存できます。ClioはCassandraまたはScyllaDBを使用し、スケーラブルな読み取りスループットを可能にします。複数のClioサーバが同じデータセットへのアクセスを共有できるため、冗長なデータストレージや計算を必要とせず、Clioサーバの高可用性クラスタを構築することが可能です。

Clioはrippledサーバにアクセスする必要があり、このサーバはClioと同じマシン上で実行することも、別々に実行することも可能です。

Clioは完全なHTTP / WebSocket APIを提供していますが、デフォルトでは、検証済みのデータのみを返します。P2Pネットワークへのアクセスを必要とするリクエストに対しては、Clioは自動的にP2Pネットワーク上のrippledサーバにリクエストを転送し、レスポンスを返します。

Clioサーバを運用する理由

独自のClioサーバを運用する理由には様々なものがありますが、その多くは、P2Pネットワークに接続しているrippledサーバの負荷軽減、メモリ使用量とストレージのオーバーヘッドの低減、水平スケーリングの容易さ、APIリクエストのスループットの向上などに集約されるのではないでしょうか。

  • rippledサーバの負荷軽減 - Clioサーバはピアツーピア・ネットワークに接続しません。P2Pネットワークに接続されている1つ以上の信頼できるrippledサーバから検証済みのデータを取得するためにgRPCを使用します。したがって、Clioサーバはリクエストをより効率的に処理し、P2Pモードで動作するrippledサーバの負荷を軽減することができます。

  • メモリ使用量とストレージのオーバーヘッドの低減 - ClioはデータベースとしてCassandraを使用し、データをスペース効率の良いフォーマットで保存するため、rippledに比べて最大4倍少ないスペースで保存できます。

  • 容易な水平スケーリング - 複数のClioサーバが同じデータセットへのアクセスを共有できるため、Clioサーバの高可用性クラスターを構築することが可能です。

  • APIリクエストのスループットの向上 - Clioサーバは、1つまたは複数の信頼できるrippledサーバから検証済みのデータを抽出し、このデータを効率的に保存します。そのため、APIコールを効率的に処理することができ、結果としてスループットが向上し、場合によってはレイテンシーも低下します。

Clioサーバの仕組み

Clioサーバは、トランザクションメタデータ、アカウントステート、台帳ヘッダーなどの有効な台帳データを永続的なデータストアに保存します。

ClioサーバはAPIリクエストを受信すると、これらのデータストアからデータを検索します。P2Pネットワークからのデータを必要とするリクエストについては、ClioサーバはリクエストをP2Pサーバに転送し、レスポンスをクライアントに返します。

以下のいずれかが当てはまる場合、Clioは常にrippledに転送します。

  • ledger_indexcurrentまたはclosedを設定している場合
  • ledgerAPIにおいてaccountsqueueまたはfulltrueに設定されている場合
  • account_infoAPIにおいてqueuetrueが設定されている場合
  • リクエストAPIメソッド("command")においてsubmitsubmit_multisignedfeeledger_closedledger_currentripple_path_findmanifestchannel_authorizeまたはchannel_verifyが設定されている場合

関連項目