指示による削除の設定

デフォルトの構成ファイルは、新しいレジャーバージョンが利用可能になるとrippledが古いXRP Ledgerの履歴を自動的に削除するように設定されています。サーバーがピーク時にハードウェアリソースの大部分を使用する場合は、オフピーク時に実行するようスケジュールされたコマンドからの指示があった場合にのみ、レジャーを削除するようにサーバーを設定できます。これにより、オンライン削除がサーバーのパフォーマンスに及ぼす影響はほとんどなくなります。

前提条件

このチュートリアルでは、ご使用のサーバーが以下の条件を満たしていることを前提としています。

  • サポートされているオペレーティングシステムを使用している。Ubuntu Linux、Red Hat Enterprise Linux(RHEL)、CentOS

  • rippledサーバーがすでにインストールされており、オンライン削除が有効になっている。

    デフォルトの構成ファイルは、レジャーバージョンが2000個を超えるとオンライン削除を実行するよう設定されています。

  • cronデーモンがインストールされており、実行されている。

    Ubuntu Linuxではデフォルトでcronデーモンが実行されます。

    RHELまたはCentOSでは、以下のcronieパッケージをインストールできます。

    $ sudo yum install cronie
    
  • 選択した量の履歴をレジャーストアーに保管するのに十分なディスク容量がサーバーにある。

    各種設定で必要なストレージの容量についての詳細は、容量計画を参照してください。指示による削除が有効な場合、削除が実行されるまでにサーバーに蓄積可能な履歴の最大数は、online_delete設定で設定したレジャーバージョン数と、オンライン削除の指示の間隔を加算したものに相当します。

  • サーバーの使用率が最も低い時間帯を把握している。

設定手順

日次スケジュールで指示による削除は以下の手順で設定します。

  1. rippledの構成ファイルの[node_db]スタンザでadvisory_deleteを有効にします。

    [node_db]
    # Other settings unchanged ...
    online_delete=2000
    advisory_delete=1
    
    • 指示された場合にのみオンライン削除を実行するには、advisory_delete1に設定します。(0に設定すると、新しいレジャーバージョンが使用可能になると自動的にオンライン削除が実行されます。)
    • online_deleteを、オンライン削除の実行後に維持するレジャーバージョンの最小数に設定します。オンライン削除が実行されるまでに蓄積される履歴は、この値よりも多くなります。

    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.

  2. サーバーに対してオンライン削除を指示するcan_deleteメソッドの実行をテストします。

    このコマンドの実行にはrippledコマンドラインインターフェイスを使用できます。例:

    $ rippled --conf=/etc/opt/ripple/rippled.cfg can_delete now
    

    応答は、サーバーがそのレジャーストアーから削除するレジャーインデックスの最大値を示します。たとえば、以下のメッセージはレジャーインデックス43633667以下のレジャーバージョンを削除できることを示します。

    {
      "result": {
        "can_delete": 43633667,
        "status": "success"
      }
    }
    

    サーバー内の 新しい 検証済みレジャーバージョンの数が、online_deleteの設定以上となった場合にのみ、レジャーバージョンが削除されます。

  3. 前のステップでテストしたcan_deleteメソッドを、予定した時刻に実行するようにcronデーモンを設定します。

    cron 設定を編集します。

    $ crontab -e
    

    以下の例では、サーバー時刻で毎日1:05 AMにサーバーが削除を実行するように設定されています。

    5 1 * * * rippled --conf /etc/opt/ripple/rippled.cfg can_delete now
    

    サーバーで設定されているタイムゾーンに基づいてコマンドが実行されるようにスケジュールしてください。

    ヒント:advisory_deleteを無効にしている場合は、cronジョブをオンラインで実行するようにスケジュールする必要はありません。この場合、サーバーの最も古いレジャーバージョンと現行の検証済みレジャーバージョンの差がonline_deleteの値以上である場合に、rippledによりオンライン削除が実行されます。

  4. rippledサービスを起動(または再起動)します。

    $ sudo systemctl restart rippled
    
  5. server_infoメソッドを使用してサーバーのcomplete_ledgers範囲を定期的に調べ、レジャーがスケジュール通りに削除されていることを確認します。

    オンライン削除の実行後にはcomplete_ledgersの最小レジャーインデックスが増加します。

    サーバーの使用率の状況と、一度に削除する履歴の量によっては、削除が完了するまでに数分間かかることがあります。

トラブルシューティング

オンライン削除の設定後にオンライン削除が実行されていないようである場合は、以下を試してください。

  • cronジョブを設定したユーザーに、コマンドラインクライアントとしてrippledサーバーを実行できる権限があることを確認します。
  • cronジョブの構文とこのジョブの実行予定時刻を確認します。
  • rippled実行可能ファイルがcron設定で指定したパスで使用可能であることを確認します。必要に応じて実行可能ファイルの絶対パス(/opt/ripple/bin/rippledなど)を指定します。
  • rippledログで、SHAMapStore::WRNで始まるメッセージを調べます。このメッセージが出力されている場合、サーバーがネットワークと同期していない状態になったためにオンライン削除が中断されている可能性があります。