レジャー履歴
コンセンサスプロセスにより、検証済みレジャーバージョンのチェーンが作成されます。各バージョンは、以前のバージョンにトランザクションのセットを適用して生成されます。各rippled
サーバーには、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバーに保管されるトランザクション履歴の量は、サーバーがオンラインであった期間と、サーバーが取得し、保持する履歴量の設定に応じて異なります。
ピアツーピアのXRP Ledgerネットワーク内のサーバーは、コンセンサスプロセスの一環としてトランザクションやその他のデータを相互に共有します。各サーバーは個別に新しいレジャーバージョンを作成し、その結果を信頼できるバリデータと比較して、整合性を維持します。(信頼できるバリデータのコンセンサスがサーバーの結果と一致しない場合は、サーバーがピアから必要なデータを取得して整合性を維持します。)サーバーはピアから古いデータをダウンロードして、利用可能な履歴のギャップを埋めることができます。レジャーはデータの暗号ハッシュを使用した構造となっているため、すべてのサーバーがデータの整合性の検証を行えます。
データベース
サーバーはレジャーの状態データとトランザクションを レジャーストアー と呼ばれるkey-valueストアで保持します。また、rippled
にはいくつかのSQLiteデータベースファイルが維持されているので、トランザクション履歴などへより柔軟にアクセスし、特定の設定変更を追跡できます。
一般に、rippled
サーバーが稼働していないときにはそのサーバーのすべてのデータベースファイルを安全に削除できます。(たとえばサーバーのストレージ設定を変更する場合や、Test Netから本番環境ネットワークに切り替える場合に、このような削除が必要となることがあります。)
利用可能な履歴
設計上、XRP Ledgerのすべてのデータとトランザクションは公開されており、誰でもすべてのデータを検索または照会できます。ただし、サーバーが検索できるデータは、そのサーバーがローカルで使用できるデータに限られます。サーバーで利用できないレジャーバージョンやトランザクションを照会しようとすると、そのデータが見つからないという応答がサーバーから返されます。必要な履歴を保持している他のサーバーに対して同じ照会を実行すると、正常な応答が返されます。XRP Ledgerデータを使用する企業では、サーバーで利用可能な履歴の量に注意してください。
server_infoメソッドは、サーバーで利用可能なレジャーバージョンの数をcomplete_ledgers
フィールドで報告します。
履歴の取得
rippled
サーバーは起動されると、最優先で最新の検証済みレジャーの完全なコピーを取得します。その後、サーバーは常にレジャーの進行状況を把握します。レジャー履歴を埋め戻すように設定されているサーバーでは、レジャー履歴が設定量に達するまで埋め戻されます。この設定量は、オンライン削除による削除が開始されるカットオフ値以下でなければなりません。
履歴の埋め戻しは、サーバーの最も低い優先順位の1つであるため、特にサーバーが忙しい場合や、ハードウェアやネットワークのスペックが十分でない場合、不足する履歴を埋めるのに長い時間がかかることがあります。ハードウェアのスペックに関する推奨事項は、容量計画を参照してください。また、履歴を埋め戻すには、サーバーのダイレクトピアのうち少なくとも1つが該当する履歴を持っていることが必要です。サーバーのピアツーピア接続の管理については、ピアリングの設定を参照してください。
XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要がLedgerHashesオブジェクトタイプの形式で含まれています。サーバーはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。
履歴の埋め戻し
サーバーがダウンロードしようとする履歴の量は、その設定に依存します。サーバーは自動的に、最も古い台帳までの履歴をダウンロードしてギャップを埋めようとします。[ledger_history]
設定を使用すると、サーバーがそれ以降の履歴を埋め戻すようにすることができます。ただし、削除が予定されている台帳は、サーバーがダウンロードすることはありません。
[ledger_history]
設定は、現在有効な台帳の前から蓄積する台帳の最小数を定義します。ネットワークの完全な履歴をダウンロードするには、特別な値full
を使用します。[ledger_history]
設定を使用して、サーバーに より少ない 履歴をダウンロードさせることはできません。サーバーが保存する履歴の量を減らすには、代わりにオンライン削除設定を変更してください。
すべての履歴
XRP Ledgerネットワーク内の一部のサーバーは、「すべての履歴が記録される」サーバーとして設定されています。これらのサーバーは、使用可能なすべてのXRP Ledgerの履歴を収集しますが、オンライン削除は使用しません。このため他の追跡サーバーよりもかなり多くのディスク容量が必要です。
XRP Ledger財団は、コミュニティメンバーが運営する一連の全履歴サーバーへのアクセスを提供しています(詳細はxrplcluster.com を参照)。
また、Ripple社は公開サービスとして、s2.ripple.com
に一連の公開全履歴サーバーを提供しています。
ヒント: 一部の暗号資産ネットワークとは異なり、XRP Ledgerのサーバーは、現在の状態を認識して最新のトランザクションを把握するのにすべての履歴を必要としません。
すべての履歴の設定については、完全な履歴の設定を参照してください。
履歴シャーディング
XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わりに、複数のサーバーがレジャー履歴の一部分を保管するように構成できます。これは履歴シャーディング機能によって実現します。一定範囲のレジャー履歴が シャードストアー という個別の保管領域に保管されます。ピアサーバーから(上記の履歴の取得で説明したとおり)特定のデータが要求されると、サーバーはレジャーストアーまたはシャードストアーのデータを使用して応答できます。
オンライン削除ではシャードストアーのデータは削除されません。ただし、32768個以上のレジャーバージョンをサーバーのレジャーストアーに保持するようにオンライン削除が設定されていれば、レジャーストアーからデータが自動的に削除される前に、サーバーはレジャーストアーからシャードストアーにすべてのシャードをコピーできます。
詳細は、履歴シャーディングの設定を参照してください。
関連項目
- コンセプト:
- チュートリアル:
- リファレンス: