ledger_request
ledger_request
コマンドは、サーバに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。これは、サーバが直接接続しているピアの1つにそのレジャーが存在している場合にのみ機能します。場合によっては、レジャーを完全に取得するにはこのコマンドを繰り返し実行する必要があります。
ledger_request
リクエストは、権限のないユーザは実行できない管理メソッドです。
リクエストのフォーマット
リクエストのフォーマットの例:
{ "id": 102, "command": "ledger_request", "ledger_index": 13800000 }
リクエストには以下のパラメーターが含まれます。
Field | 型 | 説明 |
---|---|---|
ledger_index | 数値 | (省略可)レジャーインデックスにより指定されたレジャーを取得します。 |
ledger_hash | 文字列 | (省略可) 識別用ハッシュにより指定されたレジャーを取得します。 |
ledger_index
またはledger_hash
のいずれかを指定する必要がありますが、両方は指定しないでください。
レスポンスのフォーマット
レスポンスは標準フォーマットに従っています。ただし、rippled
サーバに対してレジャーの取得開始を正常に指示できた場合でも、指定されたレジャーがない場合には失敗を示すレスポンスがリクエストから返されます。
注記: レジャーを取得するには、rippledサーバのダイレクトピアの履歴にそのレジャーが含まれている必要があります。どのピアにもリクエストされたレジャーがない場合は、connectメソッドまたは構成ファイルのfixed_ips
セクションを使用して、s2.ripple.com
にあるRippleのすべての履歴が記録されるサーバを追加すれば、ledger_request
リクエストを再度実行できます。
失敗した場合のレスポンスには、レジャーの取得状況が示されます。成功した場合のレスポンスには、ledgerメソッドに類似したフォーマットでレジャーの情報が含まれます。
Loading: "/etc/rippled.cfg" Connecting to 127.0.0.1:5005 { "result" : { "acquiring" : { "hash" : "01DDD89B6605E20338B8EEB8EB2B0E0DD2F685A2B164F3790C4D634B5734CC26", "have_header" : false, "peers" : 2, "timeouts" : 0 }, "error" : "lgrNotFound", "error_code" : 20, "error_message" : "acquiring ledger containing requested index", "request" : { "command" : "ledger_request", "ledger_index" : 18851277 }, "status" : "error" } }
3つのレスポンスのフォーマットは次のとおりです。
lgrNotFound
エラーが返された場合、レスポンスのacquiring
フィールドには、ピアツーピアネットワークからのレジャー取得状況を示すレジャーリクエストオブジェクトが指定されています。- サーバが現在データを取得中であるとレスポンスに示される場合、その結果の本文として、ピアツーピアネットワークからのレジャー取得状況を示すレジャーリクエストオブジェクトが表示されます。
- レジャーが完全に利用可能な場合、レスポンスにはレジャーヘッダーが表示されます。
レジャーリクエストオブジェクト
サーバでレジャーの取得操作が進行中であり、まだ完了していない場合は、rippled
サーバはレジャー取得状況を示すレジャーリクエストオブジェクトを返します。このオブジェクトのフィールドを次に示します。
Field | 型 | 説明 |
---|---|---|
hash | 文字列 | (省略される場合があります)リクエストされるレジャーのハッシュ(サーバがこのハッシュを認識している場合)。 |
have_header | ブール値 | リクエストされたレジャーのヘッダーセクションがサーバにあるかどうか。 |
have_state | ブール値 | (省略される場合があります)リクエストされたレジャーの完全な状態データがサーバにあるかどうか。 |
have_transactions | ブール値 | (省略される場合があります)リクエストされたレジャーの完全なトランザクションセットがサーバにあるかどうか。 |
needed_state_hashes | 文字列の配列 | (省略される場合があります)サーバが取得する必要がある完全な状態データ内のオブジェクトのハッシュ(最大16個)。 |
needed_transaction_hashes | 文字列の配列 | (省略される場合があります)サーバが取得する必要があるトランザクションセットのオブジェクトのハッシュ(最大16個)。 |
peers | 数値 | このレジャーを見つけるためにサーバが照会するピアの数。 |
timeouts | 数値 | これまでにこのレジャーの取得操作がタイムアウトした回数。 |
考えられるエラー
- 汎用エラータイプのすべて。
invalidParams
- 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。このエラーは、指定したレジャーインデックスが現在進行中のレジャーのインデックス以上である場合にも発生します。lgrNotFound
- レジャーがまだ利用可能ではない場合。これは、サーバがレジャーの取得を開始していますが、リクエストされたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコードledgerNotFound
が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1]