履歴シャーディングの設定

履歴シャーディングでは、各サーバーで完全な履歴を保管することなく、履歴XRP Ledgerデータを保存できます。デフォルトではrippledサーバーは履歴シャードを保管しません。

ヒント: バリデータおよびrippled追跡(またはストック)サーバーの両方で履歴シャードを保管するように設定できます。ただしrippledバリデータサーバーの経費を抑えるために、バリデータサーバーでシャードを保管するように設定 しない ことが推奨されます。バリデータを実行していて、XRP Ledger履歴を保管したい場合は、履歴シャーディングを有効にして別のrippledサーバーを実行することが推奨されます。

レジャー履歴のシャードを保管できるようrippledを設定するには、以下の手順を実行します。

1. シャードストアーに割り当てる容量を決めます。

履歴シャードを保管できるようにrippledサーバーを設定する前に、履歴シャードストアーに割り当てるディスク容量を決定する必要があります。これはまた、デフォルトのレジャーストアーに保持する履歴の量にも影響します。シャードストアーのサイズを設定する際には、以下の点を考慮してください。

  • レジャーストアー([node_db]スタンザにより定義される)は、履歴シャードストアーとは別のストアーです。レジャーストアーはすべてのサーバーに必要であり、そこには一定範囲の最近の履歴が保管されている 必要があります 。保管する範囲は、online_deleteパラメーターに使用可能な状態で維持するレジャーの数によって定義されます。)(デフォルトの設定では、最新のレジャー2000個が保管されます。)
    • レジャーストアーに2^15個以上のレジャー(32768)が保持されている場合は、レジャーストアーからシャードストアーへ最近の履歴のグループを効率的にインポートできます。
  • 履歴シャードストアー([shard_db]スタンザにより定義される)は、履歴シャードを保管する場合にのみ必要です。履歴シャードを保管しないサーバーではこの構成スタンザを省略する必要があります。履歴シャードストアーのサイズはmax_size_gbパラメーターでギガバイト単位で定義されます。サーバーは完全なシャードを保管するため、この容量を最大限利用します。
  • シャードには2^14個のレジャー(16384)が含まれており、シャードの経過期間に応じて約200 MB~4 GBを専有します。古いシャードほどXRP Ledgerでのアクティビティが少ないため、サイズが小さくなります。
  • 履歴シャードストアーとレジャーストアーはファイルパスを分けて保管する 必要があります 。必要に応じて、レジャーストアーと履歴ストアーをそれぞれ別のディスクやパーティションに配置するように設定できます。
  • 完全なレジャー履歴をレジャーストアーと履歴シャードストアーの両方に保持できますが、冗長な処理となります。
  • シャードの取得にかかる時間、rippledサーバーに必要なファイルハンドル数、およびメモリーキャッシュ使用率は、シャードのサイズの影響を直接受けます。

2. rippled.cfgの編集

rippled.cfgファイルを編集し、[shard_db]スタンザを追加します。

The recommended installation uses the config file /etc/opt/ripple/rippled.cfg by default. Other places you can put a config file include $HOME/.config/ripple/rippled.cfg (where $HOME is the home directory of the user running rippled), $HOME/.local/ripple/rippled.cfg, or the current working directory from where you start rippled.

以下のスニペットに、[shard_db] スタンザの例を示します。

[shard_db]
type=NuDB
path=/var/lib/rippled/db/shards/nudb
max_size_gb=50

ヒント: シャードストアーにはNuDB(type=NuDB)を使用することが推奨されます。NuDBはRocksDBに比べ、シャードあたりの使用ファイルハンドル数が少なくなります。RocksDBは、保管するデータのサイズに応じて拡張するメモリーを使用するため、大量のメモリーオーバーヘッドが必要になる可能性があります。ただし、NuDBはSSDドライブで使用するように設計されており、回転型ディスクでは機能しません。

注意: 履歴シャーディングを有効にした後にシャードストアーのデータベースタイプを変更する場合は、パスを変更するか、または設定されているパスから既存のデータを削除する必要があります。rippledがシャードストアーパスで不適切なデータを検出すると、起動できない可能性があります。

詳細は、rippled.cfgの設定例 [shard_db]の例を参照してください。

3. サーバーの再起動

systemctl restart rippled

4. シャードのダウンロードの待機

サーバーはネットワークと同期すると、履歴シャードのダウンロードを自動的に開始し、シャードストアーの空き容量を埋めます。ダウンロード対象のシャードを確認するには、シャードストアーを設定したフォルダー内に作成されるフォルダーを確認します。(これはrippled.cfgファイルの[shard_db]スタンザのpathフィールドによって定義されます。)

このフォルダーには、サーバーに保管されている各シャードのフォルダーが番号付きで保存されています。常に、最大で1つのフォルダーに、未完了であることを示すcontrol.txtファイルが保存されています。