XRP Ledger Apex is back in Amsterdam

Register Now
Last updated
Edit

download_shard

[ソース]

サーバに対し、外部ソースから特定の履歴レジャーデータのシャードをダウンロードするように指示します。rippledサーバで履歴シャードが保管されるように設定する必要があります。新規: rippled 1.1.0

download_shardメソッドは、権限のないユーザは実行できない管理メソッドです。

外部ソースからHTTPSを使用してシャードがlz4圧縮 tarアーカイブとして提供される必要があります。アーカイブには、NuDB形式のシャードディレクトリとデータファイルが含まれている必要があります。

通常、このメソッドを使用してシャードをダウンロードしてインポートすれば、ピアツーピアネットワークからシャードを個別に取得するよりも短い時間で取得できます。また、サーバから提供される特定範囲のシャードまたはシャードのセットを選択する場合にもこのメソッドを使用できます。

リクエストのフォーマット

リクエストのフォーマットの例:

  1. WebSocket
  2. JSON-RPC
{
  "command": "download_shard",
  "shards": [
    {"index": 1, "url": "https://example.com/1.tar.lz4"},
    {"index": 2, "url": "https://example.com/2.tar.lz4"},
    {"index": 5, "url": "https://example.com/5.tar.lz4"}
  ]
}

リクエストには以下のフィールドが含まれます。

Field説明
shards配列ダウンロードするシャードとダウンロード元を記述したShard Descriptorオブジェクト(以下の説明を参照)のリスト。

validateのフィールドは廃止予定であり、今後予告なしに削除される可能性があります。rippledは全てのシャードの検証を実行します。更新: rippled 1.6.0

shards配列の各Shard Descriptorオブジェクトには以下のフィールドが含まれています。

Field説明
index数値取得するシャードのインデックス。本番環境のXRP Ledgerでは、最も古いシャードのインデックスは1であり、このシャードにはレジャー32750~32768が含まれています。次のシャードのインデックスは2であり、このシャードにはレジャー32769~49152が含まれています。
url文字列このシャードをダウンロードできるURL。このURLはhttps://http://かで始まり.tar.lz4(大文字小文字の区別なし)で終わる必要があります。このダウンロードを提供するWebサーバは、信頼できる認証局(CA)によって署名された有効なTLS証明書を使用する必要があります。(rippledはオペレーティングシステムのCAストアーを使用します。) 更新: rippled 1.7.0

レスポンスのフォーマット

処理が成功したレスポンスの例:

  1. WebSocket
  2. JSON-RPC
{
  "result": {
    "message": "downloading shards 1-2,5"
  },
  "status": "success",
  "type": "response"
}

このレスポンスは標準フォーマットに従っており、正常に完了した場合は結果に次のフィールドが含まれます。

Field説明
message文字列このリクエストに対応して実行されたアクションを説明するメッセージ。

ヒント: サーバで使用可能なシャードを確認するには、crawl_shardsメソッドを使用します。または、シャードストアーとして設定されたロケーションのサブフォルダー(rippled.cfg[shard_db]pathパラメーター)を調べます。フォルダーには、シャードの番号に対応する名前が付いています。これらのフォルダーの1つに、シャードが未完了であることを示すcontrol.txtファイルが含まれていることがあります。

考えられるエラー

  • いずれかの汎用エラータイプ
  • notEnabled - サーバでシャードストアーを使用するように設定されていません。
  • tooBusy - サーバはすでに、ピアツーピアネットワークから、または以前のdownload_shardリクエストの結果として、シャードをダウンロード中です。
  • invalidParams - リクエストで1つ以上の必須フィールドが省略されていたか、または指定されたフィールドのデータタイプが誤っています。