# 全履歴の設定 デフォルトの構成では、新しいレジャーバージョンが利用可能になると`rippled`サーバが古いXRP Ledger状態とトランザクションの履歴を自動的に削除するように設定されています。ほとんどのサーバでは現在の状態を把握してトランザクションを処理するのに古い履歴は不要なため、この設定で十分です。ただし、一部のサーバが可能な限り多くのXRP Ledgerの履歴を提供する場合、これはネットワークにとって有用であることがあります。 ## 警告 全履歴の保存にはコストがかかります。2018年12月11日の時点では、XRP Ledgerの全履歴が専有するディスク容量は約**9テラバイト**にのぼります。適切なサーバパフォーマンスのためには、全履歴を高速なソリッドステートディスクドライブに保存する必要があります。このような大量のソリッドステートストレージは安価ではなく、また保管する必要のある履歴の合計量は毎日約12 GBずつ増加します。 ピアツーピアネットワークから全履歴を取得するには非常に長い時間がかかり(数か月)、また古い履歴を取得し、かつレジャーの新たな進展を常に把握するには、システムリソースとネットワークリソースを十分に備えたサーバが必要となります。レジャー履歴の取得を迅速に開始するため、すでに大量の履歴をダウンロードしている別のサーバオペレーターを探すこともできます。このようなオペレーターは、データベースダンプを提供できるか、または少なくとも、履歴の取得に十分な時間、あなたのサーバをオペレーターのサーバに明示的にピア接続することができます。サーバはファイルからレジャー履歴を読み込み、インポートする履歴レジャーの整合性を検証できます。 ネットワークへの参加、トランザクションの検証、またはネットワークの現在の状態の確認には、全履歴を記録するサーバは必要ありません。全履歴が有用となるのは、過去に発生したトランザクションの結果や、過去の特定の時点におけるレジャーの状態を確認する場合だけです。このような情報を取得するには、必要とする履歴を保持している他のサーバを利用する必要があります。 ## 構成手順 サーバが全履歴を取得して保管するように構成するには、以下の手順を実行します。 1. `rippled`サーバが稼働中の場合は停止します。 ``` $ sudo systemctl stop rippled ``` 2. サーバの構成ファイルで`[node_db]`スタンザの`online_delete`設定と`advisory_delete`設定を削除(またはコメントアウト)し、タイプをまだ`NuDB`に変更していない場合は変更します。 ``` [node_db] type=NuDB path=/var/lib/rippled/db/nudb #online_delete=300000 #advisory_delete=0 ``` 全履歴が記録されるサーバでは、レジャーストアーにNuDBを使用します。これは、データベースがこれほど大きいと、RocksDBでは非常に大量のRAMが必要になるためです。詳細は、[容量の計画](/ja/docs/infrastructure/installation/capacity-planning)をご覧ください。パフォーマンス関連の構成オプション`open_files`、`filter_bits`、`cache_mb`、`file_size_mb`、および`file_size_mult`は、RocksDBのみに適用されるオプションであるため、デフォルトの`[node_db]`スタンザから削除できます。 RocksDBで履歴をすでにダウンロードしている場合は、NuDBへ切り替えるときに構成ファイルでデータベースのパスを変更するか、またはそのデータを削除する必要があります。`[node_db]`スタンザの`path`設定**および**`[database_path]`(SQLiteデータベース)設定の両方を変更する必要があります。このようにしないと、サーバの[起動が失敗する](/ja/docs/infrastructure/troubleshooting/server-wont-start#%E7%8A%B6%E6%85%8Bdb%E3%82%A8%E3%83%A9%E3%83%BC)可能性があります。 3. サーバの構成ファイルで`[ledger_history]`スタンザを`full`に設定します。 ``` [ledger_history] full ``` 4. 全履歴が保管されている1台以上のサーバと明示的にピア接続するように、サーバの構成ファイルで`[ips_fixed]`スタンザを設定します。 ``` [ips_fixed] 169.55.164.20 50.22.123.215 ``` サーバのダイレクトピアの1つが使用可能な履歴データを保持している場合に限り、サーバはピアツーピアネットワークから履歴データをダウンロードできます。全履歴をダウンロードする最も容易な方法は、すでに全履歴を保管しているサーバとピア接続することです。 Rippleは、すべての履歴が記録されるサーバのプールを公開しています。これらのサーバのIPアドレスを取得するには、ドメイン`s2.ripple.com`を数回解決します。これらのサーバは公開サービスとして提供されているため、他のサーバとのピア接続での可用性は限られており、またこれらのサーバを悪用するとブロックされる可能性があることに注意してください。 5. 全履歴が記録されている別のサーバからのデータベースダンプがあり、このダンプをベースとして利用できる場合は、サーバの構成ファイルで`[import_db]`スタンザがインポート対象データを指し示すように設定します。(それ以外の場合はこのステップをスキップします。) ``` [import_db] type=NuDB path=/tmp/full_history_dump/ ``` 6. 以前に稼働していた`rippled`からの既存のデータベースファイルがサーバにある場合は、そのデータベースファイルを削除します。 オンライン削除を無効にすると、サーバはオンライン削除が有効であった間にダウンロードしたデータをすべて無視するため、ディスク容量を空けることができます。次に例を示します。 ``` rm -r /var/lib/rippled/db/* ``` フォルダーを削除する前に、保持したいファイルがそのフォルダーに含まれていないことを確認してください。通常は安全に`rippled`サーバのデータベースファイルをすべて削除できますが、この操作は、設定されているデータベースフォルダーが`rippled`のデータベース以外には使用されていない場合にのみ行ってください。 7. `rippled`サーバを起動し、インポート可能なデータベースダンプがある場合にはインポートします。 `[Import_db]`で構成されている読み取り対象データベースダンプがある場合は、`--import` [コマンドラインオプション](/ja/docs/infrastructure/commandline-usage#%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3)を指定してサーバを明示的に起動します。 ``` $ /opt/ripple/bin/rippled --conf /etc/opt/ripple/rippled.cfg --import ``` 大量のデータベースダンプのインポートには数分から数時間かかることがあります。インポート中はサーバは完全には起動せず、ネットワークと同期しません。インポートの状況を確認するには、サーバログをご覧ください。 データベースダンプをインポートしない場合は、サーバを通常の方法で起動します。 ``` $ sudo systemctl start rippled ``` 8. `[import_db]`スタンザをサーバの構成ファイルに追加した場合は、インポートの完了後にそのスタンザを削除してください。 このようにしないと、次回の再起動時にサーバが同じデータを再びインポートしようとします。 9. [server_infoメソッド](/ja/docs/references/http-websocket-apis/public-api-methods/server-info-methods/server_info)を使用して、サーバの利用可能な履歴を監視します。 `complete_ledgers`フィールドに表示される利用可能なレジャーの範囲は、時間の経過とともに増加します。 本番環境のXRP Ledgerの履歴で最も古い利用可能なレジャーバージョンは、レジャーインデックス**32570**です。レジャー履歴の最初の約2週間分は、当時のサーバのバグが原因で失われています。Test Netやその他のチェーンでは通常、履歴の最初のバージョンはレジャーインデックス**1**です。