diff --git a/content/_snippets/rippled-api-links.md b/content/_snippets/rippled-api-links.md index 12a709f194..aa1b832395 100644 --- a/content/_snippets/rippled-api-links.md +++ b/content/_snippets/rippled-api-links.md @@ -27,6 +27,7 @@ [Sequence Number]: basic-data-types.html#account-sequence [シーケンス番号]: basic-data-types.html#アカウントシーケンス [SHA-512Half]: basic-data-types.html#hashes +[SHA-512ハーフ]: basic-data-types.html#ハッシュ [Specifying Currency Amounts]: basic-data-types.html#specifying-currency-amounts [Specifying Ledgers]: basic-data-types.html#specifying-ledgers [レジャーの指定]: basic-data-types.html#レジャーの指定 diff --git a/content/concepts/consensus-network/about-canceling-a-transaction.ja.md b/content/concepts/consensus-network/about-canceling-a-transaction.ja.md index e3a2007dcd..1440f3da54 100644 --- a/content/concepts/consensus-network/about-canceling-a-transaction.ja.md +++ b/content/concepts/consensus-network/about-canceling-a-transaction.ja.md @@ -1,16 +1,16 @@ -# トランザクションの取消しについて - -XRP Ledgerの重要かつ意図的な機能の1つに、トランザクションが検証済みレジャーに組み込まれると、即時に最終的なトランザクションになるという機能があります。 - -ただし、検証済みレジャーにまだ記録されていないトランザクションは、無効に設定することで実質的に取り消すことができます。通常は、同じアカウントから同じ`Sequence`値を指定した別のトランザクションを送信することになります。置換トランザクションが何もしないようにしたい場合は、オプションを指定せずに[AccountSetトランザクション][]を送信します。 - -たとえば、シーケンス番号が11、12、13の3つのトランザクションを送信しようとしたときに、トランザクション11が何らかの理由で失われるか、またはトランザクション11にネットワークに伝達するのに十分な[トランザクションコスト](transaction-cost.html)がない場合には、オプションを指定せずシーケンス番号11を指定したAccuontSetトランザクションを送信すれば、トランザクション11を取り消せます。このトランザクションは(新しいトランザクション11のトランザクションコストを消却する以外は)何も行いませんが、トランザクション12と13を有効にできます。 - -この方法により、異なるシーケンス番号のトランザクションの内容が実質的に重複することを防げるため、トランザクション12と13の番号を変更して再送信するよりも望ましい方法です。 - -つまり、オプションが指定されていないAccountSetトランザクションは標準的な「[no-op](http://en.wikipedia.org/wiki/NOP)」トランザクションです。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トランザクションの取消しについて + +XRP Ledgerの重要かつ意図的な機能の1つに、トランザクションが検証済みレジャーに組み込まれると、即時に最終的なトランザクションになるという機能があります。 + +ただし、検証済みレジャーにまだ記録されていないトランザクションは、無効に設定することで実質的に取り消すことができます。通常は、同じアカウントから同じ`Sequence`値を指定した別のトランザクションを送信することになります。置換トランザクションが何もしないようにしたい場合は、オプションを指定せずに[AccountSetトランザクション][]を送信します。 + +たとえば、シーケンス番号が11、12、13の3つのトランザクションを送信しようとしたときに、トランザクション11が何らかの理由で失われるか、またはトランザクション11にネットワークに伝達するのに十分な[トランザクションコスト](transaction-cost.html)がない場合には、オプションを指定せずシーケンス番号11を指定したAccuontSetトランザクションを送信すれば、トランザクション11を取り消せます。このトランザクションは(新しいトランザクション11のトランザクションコストを消却する以外は)何も行いませんが、トランザクション12と13を有効にできます。 + +この方法により、異なるシーケンス番号のトランザクションの内容が実質的に重複することを防げるため、トランザクション12と13の番号を変更して再送信するよりも望ましい方法です。 + +つまり、オプションが指定されていないAccountSetトランザクションは標準的な「[no-op](http://en.wikipedia.org/wiki/NOP)」トランザクションです。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/consensus-network/amendments/amendments.ja.md b/content/concepts/consensus-network/amendments/amendments.ja.md index 5c847bdc58..09bf42bb6e 100644 --- a/content/concepts/consensus-network/amendments/amendments.ja.md +++ b/content/concepts/consensus-network/amendments/amendments.ja.md @@ -1,238 +1,238 @@ -# Amendment - -[導入: rippled 0.31.0][] - -Amendmentシステムは、混乱を生じさせることなく、分散型のXRP Ledgerネットワークに新しい機能を導入する方法を提供します。Amendmentシステムは、ネットワークのコンセンサスの主要プロセスを利用して、継続的なサポートを含めて変更を承認し適用される仕組みになっています。Amendmentを適用するには通常、**80%のサポートが2週間にわたって**必要になります。 - -Amendmentが有効になると、そのAmendmentが含まれているバージョン以降のすべてのレジャーバージョンに永続的に適用されます。Amendmentを無効にすることはできません。ただし、Amendmentを無効にするための新しいAmendmentを導入する場合は除きます。 - -既知のAmendment、それらのステータス、およびIDのリストについては、以下を参照してください: [既知のAmendment](known-amendments.html) - -## 背景 - -トランザクション処理に変更があると、サーバーで同じトランザクションのセットを使用して別のレジャーが作成される場合があります。一部の _バリデータ_ ([コンセンサスに参加している](rippled-server-modes.html#バリデータを運用する理由)`rippled`サーバー)が古いバージョンのソフトウェアを使用している状態で、他のバリデータが新しいバージョンのソフトウェアにアップグレードすると、ごく小さな問題から、場合によっては完全機能停止などの問題が生じる可能性があります。希なケースでは、少数のサーバーにおいて、実際のコンセンサスレジャーを取得するために、より多くの時間と帯域幅が使用される場合があります。既知のトランザクションの処理ルールを使ってレジャーを構築できないためです。最悪の場合、異なるルールを使用するサーバー間で当該レジャーについてコンセンサスに達することができないため、[コンセンサスプロセス][]により新しいレジャーバージョンを検証できない可能性があります。 - -Amendmentはこの問題を解決し、十分なバリデータがそれらの機能をサポートしている場合にのみ新しい機能を有効にします。 - -XRP Ledgerを使用しているユーザーや企業は、業務に影響を及ぼす可能性があるトランザクション処理の変更について事前に通知するためにAmendmentを使用することもできます。ただし、トランザクション処理や[コンセンサスプロセス][]に影響のないAPIを変更する場合、Amendmentは不要です。 - -[コンセンサスプロセス]: consensus.html - - -## Amendmentについて - -Amendmentは、正常に動作する機能や変更であり、コンセンサスプロセスの一環としてピアツーピアサーバーのネットワークで有効になるのを待っています。Amendmentを使用する`rippled`サーバーには、Amendmentなし(古い動作)とAmendmentあり(新しい動作)の2種類のモードのコードがあります。 - -各Amendmentには、識別用の一意の16進値および短縮名が付けられています。短縮名は人間が使用するためのものであり、Amendmentプロセスでは使用されません。説明用に異なった名前を使った場合でも、2つのサーバーで同じAmendment IDを使用できます。Amendmentの名前が一意であるという保証はありません。 - -慣例により、Rippleの開発者は、Amendment名のSHA-512HalfハッシュをAmendment IDとして使用します。 - - -## Amendmentプロセス - -256番目毎のレジャーは、「フラグ」レジャーと呼ばれます。Amendmentの承認プロセスは、フラグレジャーの直前のレジャーバージョンで開始されます。`rippled`のバリデータサーバーは、そのレジャーの検証メッセージを送信するときに、具体的なAmendmentへの賛成票も送信します。バリデータがAmendmentに賛成票を投じない場合は、そのAmendmentに対して反対票を投じていることを意味します。([手数料の投票](fee-voting.html)もフラグレジャーで行われます。) - -フラグレジャー自体に特別な内容はありません。ただし、その間、サーバーは信頼するバリデータの投票を確認し、[`EnableAmendment` 疑似トランザクション](enableamendment.html)を次のレジャーに挿入するかどうかを決定します。EnableAmendmentの疑似トランザクションのフラグは、サーバーが発生したとみなす内容を示しています。 - -* `tfGotMajority`フラグは、Amendmentのサポートが、信頼できるバリデータの80%以上に増加したことを意味します。 -* `tfLostMajority`フラグは、Amendmentのサポートが、信頼できるバリデータの80%未満に減少したことを意味します。 -* フラグのないEnableAmendment擬似トランザクションは、そのAmendmentのサポートが有効になっていることを意味します。(トランザクション処理の変更は、これ以降のすべてのレジャーに適用されます。) - -次の条件がすべて満たされた場合にのみ、サーバーは疑似トランザクションを挿入してAmendmentを有効にします。 - -* このAmendmentはまだ有効になっていない。 -* 前のレジャーには、`tfGotMajority`フラグが有効な状態で、このAmendmentに対するEnableAmendment疑似トランザクションが含まれている。 -* 当該前レジャーは、現行のレジャーの前のバージョンである。 -* 当該前レジャーの終了時刻は、最新のフラグレジャーの終了時刻の少なくとも**2週間**前である。 -* `tfGotMajority`疑似トランザクションと現行のレジャーの間のコンセンサスレジャーには、この修正に対するEnableAmendment疑似トランザクションで、`tfLostMajority`フラグが有効になっているものはない。 - -理論的には、`tfLostMajority` EnableAmendment擬似トランザクションを、Amendmentを有効にするための擬似トランザクションと同じレジャーに含めることができます。この場合、`tfLostMajority`擬似トランザクションを含む擬似トランザクションは効果がありません。 - -## Amendment投票 - -`rippled`の各バージョンは、既知のAmendmentのリストとそれらのAmendmentを実装するためのコードでコンパイルされています。デフォルトでは、`rippled`は既知のAmendmentをサポートし、未知のAmendmentに反対します。`rippled`バリデータのオペレーターは、特定のAmendmentが`rippled`バージョンにとって既知でない場合でも、そのAmendmentを明示的にサポートまたは反対するように[サーバーを設定](#amendment投票の設定)することができます。 - -有効にするには、Amendmentが、信頼済みのバリデータの80%以上に2週間継続してサポートされている必要があります。Amendmentのサポートが信頼できるバリデータの80%を下回ると、そのAmendmentは一時的に拒否されます。Amendmentが信頼済みのバリデータの少なくとも80%のサポートを取り戻した場合は、そこから2週間の期間が再スタートします。(この状況は、バリデータの投票内容が変わった場合や、バリデータの信頼に変化があった場合に発生します。)Amendmentが永続的に有効になるまでに、何度も過半数の支持を得たり失ったりすることがあります。Amendmentが永続的に拒否されることはありませんが、新しいバージョンの`rippled`の既知のAmendmentのリストにないAmendmentが有効になることはほとんどありません。 - -コンセンサスプロセスのすべてにおいてと同様に、Amendmentの投票は、投票を送信しているバリデータを信頼するサーバーによってのみ有効とみなされます。現時点では、Ripple社は、Rippleが運用するデフォルトのバリデータのみを信頼することを推奨しています。今のところ、新機能のリリースに関してRippleと協力するには、それらのバリデータのみを信頼するだけで十分です。 - -### Amendment投票の設定 - -[featureメソッド][]を使用してAmendmentを一時的に設定できます。サーバーのAmendmentに対するサポートを永続的に変更するには、サーバーの`rippled.cfg`ファイルを変更します。 - -サーバーに賛成票を投じさせたくないAmendmentを表示するには、`[veto_amendments]`スタンザを使用します。各行には1つのAmendmentの一意のIDを含める必要があり、必要に応じて、その後にAmendmentの短縮名を続けます。例: - -``` -[veto_amendments] -C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 Tickets -DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13 SusPay -``` - -投票するAmendmentを表示するには、`[amendments]`スタンザを使用します。(ここで表示しなくても、サーバーは、適用方法を把握しているすべてのAmendmentにデフォルトで賛成票を投じます。)各行には1つのAmendmentの一意のIDを含める必要があり、必要に応じて、その後にAmendmentの短縮名を続けます。例: - -``` -[amendments] -4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 MultiSign -42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE FeeEscalation -``` - - -### Amendment blocked - -投票プロセス後にネットワークに対してAmendmentが有効になると、そのAmendmentを認識していない、以前のバージョンの`rippled`を実行しているサーバーは、ネットワークのルールを認識できなくなるため、「Amendment blocked」状態になります。Amendment blockedの状態のサーバーは次のようになります。 - -* レジャーのバリデータを判断できない -* トランザクションを送信または処理できない -* コンセンサスプロセスを行わない -* 今後のAmendmentに投票しない - -Amendment blockedは、XRP Ledgerに依存するアプリケーションを保護するためのセキュリティー機能です。新しいルールが適用された後のレジャーを推測したり誤解したりしないように、`rippled`は、Amendmentがどのように動作するか確認できないためにレジャーの状態が不明であると報告します。 - -`rippled`サーバーが賛成票または反対票を投じるように設定されているAmendmentは、そのサーバーがAmendment blockedの状態になるかどうかに影響を与えません。`rippled`サーバーは、可能な限り、ネットワークの他の部分によって有効なった一連のAmendmentに従います。有効なAmendmentがサーバーのソースコード内のAmendment定義に含まれていない場合、つまりAmendmentがサーバーよりも新しい場合にのみ、サーバーはAmendment blockedになります。 - -サーバーがAmendment blockedである場合は、[新しいバージョンにアップグレード](install-rippled.html)してネットワークと同期する必要があります。 - - -#### `rippled`サーバーがAmendment blockedの状態かどうかを確認する方法 - -`rippled`サーバーがAmendment blockedの状態であるという最初の兆候のひとつに、[トランザクションの送信時](submit.html)に返される`amendmentBlocked`エラーがあります。`amendmentBlocked`エラーの例を以下に示します。 - -``` -{ - "result":{ - "error":"amendmentBlocked", - "error_code":14, - "error_message":"Amendment blocked, need upgrade.", - "request":{ - "command":"submit", - "tx_blob":"479H0KQ4LUUXIHL48WCVN0C9VD7HWSX0MG1UPYNXK6PI9HLGBU2U10K3HPFJSROFEG5VD749WDPHWSHXXO72BOSY2G8TWUDOJNLRTR9LTT8PSOB9NNZ485EY2RD9D80FLDFRBVMP1RKMELILD7I922D6TBCAZK30CSV6KDEDUMYABE0XB9EH8C4LE98LMU91I9ZV2APETJD4AYFEN0VNMIT1XQ122Y2OOXO45GJ737HHM5XX88RY7CXHVWJ5JJ7NYW6T1EEBW9UE0NLB2497YBP9V1XVAEK8JJYVRVW0L03ZDXFY8BBHP6UBU7ZNR0JU9GJQPNHG0DK86S4LLYDN0BTCF4KWV2J4DEB6DAX4BDLNPT87MM75G70DFE9W0R6HRNWCH0X075WHAXPSH7S3CSNXPPA6PDO6UA1RCCZOVZ99H7968Q37HACMD8EZ8SU81V4KNRXM46N520S4FVZNSJHA" - }, - "status":"error" - } -} -``` - -次の`rippled`ログメッセージも、サーバーがAmendment blockedであることを示しています。 - -``` -2018-Feb-12 19:38:30 LedgerMaster:ERR One or more unsupported amendments activated: server blocked. -``` - -`rippled`バージョン0.80.0以降を使用している場合は、[`server_info`](server_info.html)コマンドを使用して`rippled`サーバーがAmendment blockedであるかを確認できます。応答内で、`result.info.amendment_blocked`を探します。`amendment_blocked`が`true`に設定されている場合、サーバーはAmendment blockedの状態です。 - -**JSON-RPC応答の例:** - -``` -{ - "result": { - "info": { - "amendment_blocked": true, - "build_version": "0.80.1", - "complete_ledgers": "6658438-6658596", - "hostid": "ip-10-30-96-212.us-west-2.compute.internal", - "io_latency_ms": 1, - "last_close": { - "converge_time_s": 2, - "proposers": 10 - }, -... - }, - "status": "success" - } -} -``` - -サーバーがAmendment blockedでない場合、応答で`amendment_blocked`フィールドは返されません。 - -**注意:** `rippled` 0.80.0より前のバージョンでは、サーバーがAmendment blockedである場合でも`amendment_blocked`フィールドは含まれません。 - - -#### Amendment blockedの状態の`rippled`サーバーのブロックを解除する方法 - -サーバーがAmendment blockedとなる原因となっているAmendmentをサポートする`rippled`バージョンにアップグレードします。Rippleでは、[最新の`rippled`バージョンにアップグレード](install-rippled.html)してサーバーのブロックを解除し、ネットワークと再同期できるようにすることを推奨しています。 - -状況によっては、最新のバージョンよりも古い`rippled`バージョンにアップグレードすることで、サーバーのブロックを解除できる場合があります。これが可能なのは、その古いバージョンが、`rippled`サーバーをブロックしているAmendmentをサポートしている場合です。 - -**警告:** 最新の`rippled`バージョンでセキュリティーまたはその他の緊急の修正が提供されている場合は、できるだけ早く最新バージョンにアップグレードしてください。 - -最新バージョンよりも古いバージョンにアップグレードして`rippled`サーバーのブロックを解除できるかどうかを判断するには、サーバーをブロックしている機能を調べ、そのブロックしている機能をサポートしている`rippled`バージョンを調べます。 - -`rippled`サーバーをブロックしている機能を調べるには、[`feature`](feature.html)管理コマンドを使用します。`"enabled" : true`と`"supported" : false`を含む機能を探します。これらの機能の値は、最新のレジャーでAmendmentが現在有効になっている(必須)が、Amendmentをサポートまたは適用する方法がサーバーに認識されていないことを意味します。 - -**JSON-RPC応答の例:** - -``` -{ - "result": { - "features": { - "07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104": { - "enabled": true, - "name": "Escrow", - "supported": true, - "vetoed": false - }, - "08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647": { - "enabled": true, - "name": "PayChan", - "supported": true, - "vetoed": false - }, - "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146": { - "enabled": false, - "name": "CryptoConditions", - "supported": true, - "vetoed": false - }, - "157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1": { - "enabled": true, - "supported": false, - "vetoed": false - }, -... - "67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172": { - "enabled": true, - "supported": false, - "vetoed": false - }, -... - "F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064": { - "enabled": true, - "supported": false, - "vetoed": false - } - }, - "status": "success" - } -} -``` - -この例では、次の機能との競合により、`rippled`サーバーがAmendment blockedになっています。 - -* `157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1` - -* `67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172` - -* `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` - -これらの機能をサポートしている`rippled`バージョンを見つけるには、[既知のAmendment](known-amendments.html)を参照してください。 - - -## Amendmentのテスト - -Amendmentが有効になっている場合の`rippled`の動作を確認するには、そのAmendmentが実稼働ネットワークで有効になる前に、`rippled`の構成ファイルを実行して強制的に機能を有効にします。これは、開発目的でのみサポートされています。 - -コンセンサスネットワークの他のメンバーはこの機能を有効にしていない可能性があるため、実稼働ネットワークに接続されている間はこの機能を使用しないでください。機能を強制的に有効にしてテストしている間は、[スタンドアロンモード](rippled-server-modes.html#rippledサーバーをスタンドアロンモードで実行する理由)で`rippled`を実行する必要があります。 - -機能を強制的に有効にするには、`[features]`スタンザを`rippled.cfg`ファイルに追加します。このスタンザで、有効にする機能の名前の短縮名を1行に1つずつ追加します。例: - -``` -[features] -MultiSign -TrustSetAuth -``` - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Amendment + +[導入: rippled 0.31.0][] + +Amendmentシステムは、混乱を生じさせることなく、分散型のXRP Ledgerネットワークに新しい機能を導入する方法を提供します。Amendmentシステムは、ネットワークのコンセンサスの主要プロセスを利用して、継続的なサポートを含めて変更を承認し適用される仕組みになっています。Amendmentを適用するには通常、**80%のサポートが2週間にわたって**必要になります。 + +Amendmentが有効になると、そのAmendmentが含まれているバージョン以降のすべてのレジャーバージョンに永続的に適用されます。Amendmentを無効にすることはできません。ただし、Amendmentを無効にするための新しいAmendmentを導入する場合は除きます。 + +既知のAmendment、それらのステータス、およびIDのリストについては、以下を参照してください: [既知のAmendment](known-amendments.html) + +## 背景 + +トランザクション処理に変更があると、サーバーで同じトランザクションのセットを使用して別のレジャーが作成される場合があります。一部の _バリデータ_ ([コンセンサスに参加している](rippled-server-modes.html#バリデータを運用する理由)`rippled`サーバー)が古いバージョンのソフトウェアを使用している状態で、他のバリデータが新しいバージョンのソフトウェアにアップグレードすると、ごく小さな問題から、場合によっては完全機能停止などの問題が生じる可能性があります。希なケースでは、少数のサーバーにおいて、実際のコンセンサスレジャーを取得するために、より多くの時間と帯域幅が使用される場合があります。既知のトランザクションの処理ルールを使ってレジャーを構築できないためです。最悪の場合、異なるルールを使用するサーバー間で当該レジャーについてコンセンサスに達することができないため、[コンセンサスプロセス][]により新しいレジャーバージョンを検証できない可能性があります。 + +Amendmentはこの問題を解決し、十分なバリデータがそれらの機能をサポートしている場合にのみ新しい機能を有効にします。 + +XRP Ledgerを使用しているユーザーや企業は、業務に影響を及ぼす可能性があるトランザクション処理の変更について事前に通知するためにAmendmentを使用することもできます。ただし、トランザクション処理や[コンセンサスプロセス][]に影響のないAPIを変更する場合、Amendmentは不要です。 + +[コンセンサスプロセス]: consensus.html + + +## Amendmentについて + +Amendmentは、正常に動作する機能や変更であり、コンセンサスプロセスの一環としてピアツーピアサーバーのネットワークで有効になるのを待っています。Amendmentを使用する`rippled`サーバーには、Amendmentなし(古い動作)とAmendmentあり(新しい動作)の2種類のモードのコードがあります。 + +各Amendmentには、識別用の一意の16進値および短縮名が付けられています。短縮名は人間が使用するためのものであり、Amendmentプロセスでは使用されません。説明用に異なった名前を使った場合でも、2つのサーバーで同じAmendment IDを使用できます。Amendmentの名前が一意であるという保証はありません。 + +慣例により、Rippleの開発者は、Amendment名のSHA-512HalfハッシュをAmendment IDとして使用します。 + + +## Amendmentプロセス + +256番目毎のレジャーは、「フラグ」レジャーと呼ばれます。Amendmentの承認プロセスは、フラグレジャーの直前のレジャーバージョンで開始されます。`rippled`のバリデータサーバーは、そのレジャーの検証メッセージを送信するときに、具体的なAmendmentへの賛成票も送信します。バリデータがAmendmentに賛成票を投じない場合は、そのAmendmentに対して反対票を投じていることを意味します。([手数料の投票](fee-voting.html)もフラグレジャーで行われます。) + +フラグレジャー自体に特別な内容はありません。ただし、その間、サーバーは信頼するバリデータの投票を確認し、[`EnableAmendment` 疑似トランザクション](enableamendment.html)を次のレジャーに挿入するかどうかを決定します。EnableAmendmentの疑似トランザクションのフラグは、サーバーが発生したとみなす内容を示しています。 + +* `tfGotMajority`フラグは、Amendmentのサポートが、信頼できるバリデータの80%以上に増加したことを意味します。 +* `tfLostMajority`フラグは、Amendmentのサポートが、信頼できるバリデータの80%未満に減少したことを意味します。 +* フラグのないEnableAmendment擬似トランザクションは、そのAmendmentのサポートが有効になっていることを意味します。(トランザクション処理の変更は、これ以降のすべてのレジャーに適用されます。) + +次の条件がすべて満たされた場合にのみ、サーバーは疑似トランザクションを挿入してAmendmentを有効にします。 + +* このAmendmentはまだ有効になっていない。 +* 前のレジャーには、`tfGotMajority`フラグが有効な状態で、このAmendmentに対するEnableAmendment疑似トランザクションが含まれている。 +* 当該前レジャーは、現行のレジャーの前のバージョンである。 +* 当該前レジャーの終了時刻は、最新のフラグレジャーの終了時刻の少なくとも**2週間**前である。 +* `tfGotMajority`疑似トランザクションと現行のレジャーの間のコンセンサスレジャーには、この修正に対するEnableAmendment疑似トランザクションで、`tfLostMajority`フラグが有効になっているものはない。 + +理論的には、`tfLostMajority` EnableAmendment擬似トランザクションを、Amendmentを有効にするための擬似トランザクションと同じレジャーに含めることができます。この場合、`tfLostMajority`擬似トランザクションを含む擬似トランザクションは効果がありません。 + +## Amendment投票 + +`rippled`の各バージョンは、既知のAmendmentのリストとそれらのAmendmentを実装するためのコードでコンパイルされています。デフォルトでは、`rippled`は既知のAmendmentをサポートし、未知のAmendmentに反対します。`rippled`バリデータのオペレーターは、特定のAmendmentが`rippled`バージョンにとって既知でない場合でも、そのAmendmentを明示的にサポートまたは反対するように[サーバーを設定](#amendment投票の設定)することができます。 + +有効にするには、Amendmentが、信頼済みのバリデータの80%以上に2週間継続してサポートされている必要があります。Amendmentのサポートが信頼できるバリデータの80%を下回ると、そのAmendmentは一時的に拒否されます。Amendmentが信頼済みのバリデータの少なくとも80%のサポートを取り戻した場合は、そこから2週間の期間が再スタートします。(この状況は、バリデータの投票内容が変わった場合や、バリデータの信頼に変化があった場合に発生します。)Amendmentが永続的に有効になるまでに、何度も過半数の支持を得たり失ったりすることがあります。Amendmentが永続的に拒否されることはありませんが、新しいバージョンの`rippled`の既知のAmendmentのリストにないAmendmentが有効になることはほとんどありません。 + +コンセンサスプロセスのすべてにおいてと同様に、Amendmentの投票は、投票を送信しているバリデータを信頼するサーバーによってのみ有効とみなされます。現時点では、Ripple社は、Rippleが運用するデフォルトのバリデータのみを信頼することを推奨しています。今のところ、新機能のリリースに関してRippleと協力するには、それらのバリデータのみを信頼するだけで十分です。 + +### Amendment投票の設定 + +[featureメソッド][]を使用してAmendmentを一時的に設定できます。サーバーのAmendmentに対するサポートを永続的に変更するには、サーバーの`rippled.cfg`ファイルを変更します。 + +サーバーに賛成票を投じさせたくないAmendmentを表示するには、`[veto_amendments]`スタンザを使用します。各行には1つのAmendmentの一意のIDを含める必要があり、必要に応じて、その後にAmendmentの短縮名を続けます。例: + +``` +[veto_amendments] +C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490 Tickets +DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13 SusPay +``` + +投票するAmendmentを表示するには、`[amendments]`スタンザを使用します。(ここで表示しなくても、サーバーは、適用方法を把握しているすべてのAmendmentにデフォルトで賛成票を投じます。)各行には1つのAmendmentの一意のIDを含める必要があり、必要に応じて、その後にAmendmentの短縮名を続けます。例: + +``` +[amendments] +4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 MultiSign +42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE FeeEscalation +``` + + +### Amendment blocked + +投票プロセス後にネットワークに対してAmendmentが有効になると、そのAmendmentを認識していない、以前のバージョンの`rippled`を実行しているサーバーは、ネットワークのルールを認識できなくなるため、「Amendment blocked」状態になります。Amendment blockedの状態のサーバーは次のようになります。 + +* レジャーのバリデータを判断できない +* トランザクションを送信または処理できない +* コンセンサスプロセスを行わない +* 今後のAmendmentに投票しない + +Amendment blockedは、XRP Ledgerに依存するアプリケーションを保護するためのセキュリティー機能です。新しいルールが適用された後のレジャーを推測したり誤解したりしないように、`rippled`は、Amendmentがどのように動作するか確認できないためにレジャーの状態が不明であると報告します。 + +`rippled`サーバーが賛成票または反対票を投じるように設定されているAmendmentは、そのサーバーがAmendment blockedの状態になるかどうかに影響を与えません。`rippled`サーバーは、可能な限り、ネットワークの他の部分によって有効なった一連のAmendmentに従います。有効なAmendmentがサーバーのソースコード内のAmendment定義に含まれていない場合、つまりAmendmentがサーバーよりも新しい場合にのみ、サーバーはAmendment blockedになります。 + +サーバーがAmendment blockedである場合は、[新しいバージョンにアップグレード](install-rippled.html)してネットワークと同期する必要があります。 + + +#### `rippled`サーバーがAmendment blockedの状態かどうかを確認する方法 + +`rippled`サーバーがAmendment blockedの状態であるという最初の兆候のひとつに、[トランザクションの送信時](submit.html)に返される`amendmentBlocked`エラーがあります。`amendmentBlocked`エラーの例を以下に示します。 + +``` +{ + "result":{ + "error":"amendmentBlocked", + "error_code":14, + "error_message":"Amendment blocked, need upgrade.", + "request":{ + "command":"submit", + "tx_blob":"479H0KQ4LUUXIHL48WCVN0C9VD7HWSX0MG1UPYNXK6PI9HLGBU2U10K3HPFJSROFEG5VD749WDPHWSHXXO72BOSY2G8TWUDOJNLRTR9LTT8PSOB9NNZ485EY2RD9D80FLDFRBVMP1RKMELILD7I922D6TBCAZK30CSV6KDEDUMYABE0XB9EH8C4LE98LMU91I9ZV2APETJD4AYFEN0VNMIT1XQ122Y2OOXO45GJ737HHM5XX88RY7CXHVWJ5JJ7NYW6T1EEBW9UE0NLB2497YBP9V1XVAEK8JJYVRVW0L03ZDXFY8BBHP6UBU7ZNR0JU9GJQPNHG0DK86S4LLYDN0BTCF4KWV2J4DEB6DAX4BDLNPT87MM75G70DFE9W0R6HRNWCH0X075WHAXPSH7S3CSNXPPA6PDO6UA1RCCZOVZ99H7968Q37HACMD8EZ8SU81V4KNRXM46N520S4FVZNSJHA" + }, + "status":"error" + } +} +``` + +次の`rippled`ログメッセージも、サーバーがAmendment blockedであることを示しています。 + +``` +2018-Feb-12 19:38:30 LedgerMaster:ERR One or more unsupported amendments activated: server blocked. +``` + +`rippled`バージョン0.80.0以降を使用している場合は、[`server_info`](server_info.html)コマンドを使用して`rippled`サーバーがAmendment blockedであるかを確認できます。応答内で、`result.info.amendment_blocked`を探します。`amendment_blocked`が`true`に設定されている場合、サーバーはAmendment blockedの状態です。 + +**JSON-RPC応答の例:** + +``` +{ + "result": { + "info": { + "amendment_blocked": true, + "build_version": "0.80.1", + "complete_ledgers": "6658438-6658596", + "hostid": "ip-10-30-96-212.us-west-2.compute.internal", + "io_latency_ms": 1, + "last_close": { + "converge_time_s": 2, + "proposers": 10 + }, +... + }, + "status": "success" + } +} +``` + +サーバーがAmendment blockedでない場合、応答で`amendment_blocked`フィールドは返されません。 + +**注意:** `rippled` 0.80.0より前のバージョンでは、サーバーがAmendment blockedである場合でも`amendment_blocked`フィールドは含まれません。 + + +#### Amendment blockedの状態の`rippled`サーバーのブロックを解除する方法 + +サーバーがAmendment blockedとなる原因となっているAmendmentをサポートする`rippled`バージョンにアップグレードします。Rippleでは、[最新の`rippled`バージョンにアップグレード](install-rippled.html)してサーバーのブロックを解除し、ネットワークと再同期できるようにすることを推奨しています。 + +状況によっては、最新のバージョンよりも古い`rippled`バージョンにアップグレードすることで、サーバーのブロックを解除できる場合があります。これが可能なのは、その古いバージョンが、`rippled`サーバーをブロックしているAmendmentをサポートしている場合です。 + +**警告:** 最新の`rippled`バージョンでセキュリティーまたはその他の緊急の修正が提供されている場合は、できるだけ早く最新バージョンにアップグレードしてください。 + +最新バージョンよりも古いバージョンにアップグレードして`rippled`サーバーのブロックを解除できるかどうかを判断するには、サーバーをブロックしている機能を調べ、そのブロックしている機能をサポートしている`rippled`バージョンを調べます。 + +`rippled`サーバーをブロックしている機能を調べるには、[`feature`](feature.html)管理コマンドを使用します。`"enabled" : true`と`"supported" : false`を含む機能を探します。これらの機能の値は、最新のレジャーでAmendmentが現在有効になっている(必須)が、Amendmentをサポートまたは適用する方法がサーバーに認識されていないことを意味します。 + +**JSON-RPC応答の例:** + +``` +{ + "result": { + "features": { + "07D43DCE529B15A10827E5E04943B496762F9A88E3268269D69C44BE49E21104": { + "enabled": true, + "name": "Escrow", + "supported": true, + "vetoed": false + }, + "08DE7D96082187F6E6578530258C77FAABABE4C20474BDB82F04B021F1A68647": { + "enabled": true, + "name": "PayChan", + "supported": true, + "vetoed": false + }, + "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146": { + "enabled": false, + "name": "CryptoConditions", + "supported": true, + "vetoed": false + }, + "157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1": { + "enabled": true, + "supported": false, + "vetoed": false + }, +... + "67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172": { + "enabled": true, + "supported": false, + "vetoed": false + }, +... + "F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064": { + "enabled": true, + "supported": false, + "vetoed": false + } + }, + "status": "success" + } +} +``` + +この例では、次の機能との競合により、`rippled`サーバーがAmendment blockedになっています。 + +* `157D2D480E006395B76F948E3E07A45A05FE10230D88A7993C71F97AE4B1F2D1` + +* `67A34F2CF55BFC0F93AACD5B281413176FEE195269FA6D95219A2DF738671172` + +* `F64E1EABBE79D55B3BB82020516CEC2C582A98A6BFE20FBE9BB6A0D233418064` + +これらの機能をサポートしている`rippled`バージョンを見つけるには、[既知のAmendment](known-amendments.html)を参照してください。 + + +## Amendmentのテスト + +Amendmentが有効になっている場合の`rippled`の動作を確認するには、そのAmendmentが実稼働ネットワークで有効になる前に、`rippled`の構成ファイルを実行して強制的に機能を有効にします。これは、開発目的でのみサポートされています。 + +コンセンサスネットワークの他のメンバーはこの機能を有効にしていない可能性があるため、実稼働ネットワークに接続されている間はこの機能を使用しないでください。機能を強制的に有効にしてテストしている間は、[スタンドアロンモード](rippled-server-modes.html#rippledサーバーをスタンドアロンモードで実行する理由)で`rippled`を実行する必要があります。 + +機能を強制的に有効にするには、`[features]`スタンザを`rippled.cfg`ファイルに追加します。このスタンザで、有効にする機能の名前の短縮名を1行に1つずつ追加します。例: + +``` +[features] +MultiSign +TrustSetAuth +``` + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/consensus-network/consensus-principles-and-rules.ja.md b/content/concepts/consensus-network/consensus-principles-and-rules.ja.md index 1178fd65c1..9fe88953a6 100644 --- a/content/concepts/consensus-network/consensus-principles-and-rules.ja.md +++ b/content/concepts/consensus-network/consensus-principles-and-rules.ja.md @@ -1,104 +1,104 @@ -# コンセンサスの原理とルール - -XRP Ledgerは世界規模の決済システムで、ユーザーはメールを送るときのようにスムーズに国境を越えて送金することができます。Bitcoinなどの他のピアツーピア決済ネットワークと同様に、XRP Ledgerでは分散型コンピューターネットワークを介したピアツーピア取引の決済が可能です。他のデジタル通貨プロトコルとは異なり、XRP LedgerではXRP(XRP Ledgerのネイティブ資産)の他にユーザーが選択した通貨(法定通貨、デジタル通貨、その他の価値形態など)建てでトランザクションを実行できます。 - -XRP Ledgerのテクノロジーにより、ほぼリアルタイムでの決済(3~6秒)が可能です。また、その分散型取引所により自動的に最も安価な通貨取引注文を決済に適用して通貨をブリッジングすることができます。 - -# 背景 - -## 仕組み - -根本的には、XRP Ledgerはアカウント、残高、および資産取引オファーなどの情報を記録する共有データベースです。「トランザクション」と呼ばれる署名付きの指示により、アカウントの作成、支払いの実行、資産の取引などの変更が行われます。 - -暗号化システムであるため、XRP Ledgerアカウントの所有者は _暗号ID_ により識別されます。暗号IDは、公開鍵/秘密鍵のペアに相当します。トランザクションは、暗号IDに一致する暗号署名によって承認されます。すべてのサーバーでは、同一の確定的な既知のルールに基づいてすべてのトランザクションが処理されます。最終的な目標は、ネットワーク内のすべてのサーバーがまったく同じレジャー状態の完全なコピーを保有できるようにし、1つの中央機関がトランザクションを調停する必要がないようにすることです。 - - -## 二重支払いの問題 - -「二重支払い」の問題は、どのような決済システムの運用においても根本的な課題となります。この問題は、ある場所でお金を支払うときに、別の場所ではそのお金を支払うことができないという要件に起因しています。一般的には、2つのトランザクションがあり、いずれかのトランザクションが有効で、両方が同時に有効になることがない場合にこの問題が発生します。 - -たとえば、Alice、Bob、Charlieが決済システムを使用しており、Aliceの残高が$10であるとします。この決済システムが機能するためには、Aliceはこの$10をBobまたはCharlieに送金できる必要があります。ただしAliceがBobに$10を送金し、同時にCharlieにも$10を送金しようとすると、二重支払いの問題が発生します。 - -Aliceが「同じ」$10をCharlieとBobの両方に送金できてしまう場合、この決済システムは正しく機能したとはいえなくなります。決済システムでは、発生したトランザクションについてすべての参加者が合意できるように、成功すべきトランザクションと失敗すべきトランザクションを選択する手段が必要です。これら2つのトランザクションはいずれも、トランザクションとしては同じく有効です。ただし、どのトランザクションが最初に発生したかについては、決済システムの参加者によって見方が異なります。 - -従来、決済システムでは中央機関がトランザクションを追跡、承認することで、この二重支払いの問題が解決されてきました。たとえば銀行は唯一の管理人として、保有する小切手振出人の預金残高に基づいて小切手を決済します。このようなシステムでは、すべての参加者が中央機関の決定に従う必要があります。 - -XRP Ledgerなどの分散型台帳技術では中央機関が存在せず、二重支払いの問題を他の方法で解決する必要があります。 - - -# コンセンサスの仕組み - -## 問題の単純化 - -二重支払いの問題のほとんどは、既知のルール(アカウントが保有していない資金を利用することを禁止するなど)により解決できます。実際に、二重支払いの問題はトランザクションを順に整理することで削減できます。 - -BobとCharlieの両方に同じ$10を送金しようとしたAliceの例で説明します。Bobへの支払いが最初であることが判明している場合は、AliceにはBobに支払う資金があることで全員が合意できます。Charlieへの支払いが2番目であることが判明している場合は、資金はすでにBobに送金されたため、Charlieには資金を送金できないことで全員が合意できます。 - -また、確定的なルールに基づいてトランザクションを順に並べることもできます。トランザクションはデジタル情報の集合であるため、コンピューターで簡単にソートできます。 - -中央機関なしに二重支払いの問題を解決するにはこれで十分ですが、トランザクションの結果を確認する前に、発生するすべてのトランザクションを把握し、ソートする必要があります。これは明らかに非現実的です。 - -トランザクションをグループにまとめ、グループ単位で合意できる場合には、グループ内でトランザクションをソートできます。ひとまとめで処理するトランザクションについて参加者全員が合意している限り、中央機関を必要とすることなく、確定的なルールに基づいて二重支払いの問題を解決できます。各参加者がトランザクションをソートし、既知のルールに従い確定的な方法でそれらのトランザクションを適用します。XRP Ledgerでは、二重支払いの問題をこの方法で解決します。 - -XRP Ledgerでは、合意されたグループに複数の競合するトランザクションを含めることができます。トランザクションのグループは確定的なルールに従って実行されるので、ソートルールに基づいて最初に発生したトランザクションが成功し、2番目に発生した競合するトランザクションは失敗します。 - -## コンセンサスルール - -コンセンサスの主な役割は、プロセスの参加者が、二重支払いの問題を解決するためグループ単位で処理するトランザクションについて合意を形成できるようにすることです。次の4つの理由により、この合意の形成は予想以上に容易です。 - -1. トランザクションをトランザクショングループに含めてはならない理由が特にない場合、すべての公正な参加者はそのトランザクションをグループに含めることで合意します。すべての参加者がすでに合意している場合、コンセンサスが果たす役割はありません。 -2. トランザクションをトランザクショングループに含めてはならない何らかの理由がある場合、すべての公正な参加者はそのトランザクションの除外を希望します。トランザクションがまだ有効であり、次のラウンドに含めてはならない理由が特にない場合は、そのトランザクションを次のラウンドに含めることで全員が合意します。 -3. トランザクションをグループ化する方法に参加者が特に関心を示すことは極めてまれです。合意の形成は、参加者全員がこれを最優先と認識している場合は最も容易になされ、参加者の関心が異なる場合に限り難しくなります。 -4. 確定的なルールはグループ編成時にも使用でき、エッジケースについてのみ不合意を形成します。たとえば、ラウンドに2つの競合するトランザクションがある場合、確定的なルールを使用して次のラウンドに含めるトランザクションを決定できます。 - -すべての参加者は正確さを最も重視します。共有レジャーの整合性を損なわないようにするため、最初にこれらのルールを適用する必要があります。たとえば、適切な署名がないトランザクションは(他の参加者が処理を希望する場合でも)処理されることはありません。ただし、公正な参加者全員が2番目に重視するのは合意です。二重支払いが発生する可能性のあるネットワークはまったく役に立ちません。公正な参加者全員が正確さの次に重視するのが合意であるという事実により、合意が促進されます。 - -## コンセンサスラウンド - -コンセンサスラウンドとは、トランザクションのグループについての合意形成に向けた取り組みで、これによりトランザクションの処理を可能とします。コンセンサスラウンドでは、合意形成を希望する各参加者が最初の見解を表明します。これは、参加者が確認した有効なトランザクションセットです。 - -次に、合意に向けて、参加者の見解が「次々に寄せられます」。特定のトランザクションが過半数の支持を得られない場合、参加者はそのトランザクションの保留に合意します。特定のトランザクションが過半数の支持を得ている場合、参加者はそのトランザクションを追加することに合意します。このように、支持が過半数をわずかに上回れば即座に全面的に支持され、過半数をわずかに下回れば即座に現行ラウンドでは全面的に却下されることになります。 - -コンセンサスが50%前後で行き詰まることを防ぎ、確実な合意を形成する上で必要となる重複を低減するため、トランザクションの追加に関する所定のしきい値は時間の経過とともに増加します。最初は、50%以上の他の参加者が合意していれば、参加者はトランザクションの追加についての合意の継続を支持します。参加者が合意しない場合、このしきい値が増加します。最初は60%に増加し、その後は問題のトランザクションが現行セットから削除されるまで増加し続けます。このようにして除外されたトランザクションはすべて次のレジャーバージョンに繰り越されます。 - -次に処理するトランザクションセットについて圧倒的多数が合意し、参加者がこれを確認した場合は、コンセンサスに達したと宣言します。 - -## コンセンサス失敗の可能性 - -完全なコンセンサスの達成に失敗することがないコンセンサスアルゴリズムの開発は非現実的です。その理由を理解するため、コンセンサスプロセスがどのように終了するかについて説明します。各参加者はある時点で、コンセンサスに達し、特定のトランザクションセットがそのコンセンサスプロセスの結果であると宣言する必要があります。この宣言により参加者は、特定のトランザクションセットがコンセンサスプロセスの結果であると取り消し不能の表明をすることになります。 - -いずれかの参加者がこの宣言を最初に行う必要があります。この宣言を行なう参加者がいなければ、合意に達することができません。次に、この宣言を最初に行う参加者について説明します。最初に宣言を行う参加者が、コンセンサスは完了したと判断した時点では、他の参加者はまだそのような判断に至っていません。もし他の参加者が各自の視点をもとに合意済のセットを変更できないのであれば、最初の宣言が行われた時点で、他の参加者はコンセンサスは完了したと判断していたでしょう。したがって、参加者は合意済のセットを変更できるはずです。 - -つまり、コンセンサスプロセスを完了するには、その他のすべての参加者が合意済のトランザクションセットを理論的に変更できる場合でも、特定の参加者がトランザクションセットについてコンセンサスに達したことを宣言する必要があります。 - -たとえば、あるグループが部屋の中でどのドアから外に出るかについて合意しようとしている場合を考えてください。参加者がどれほど話し合っても、ある時点で _誰か_ が最初にドアから外に出なければなりません。これは、その後に続く人々が考えを変えて別のドアから外に出ることができるとしてもです。 - -このような失敗が生じる確率を低く抑えることはできますが、ゼロにすることはできません。技術上のトレードオフとして、この確率を1000分の1未満に抑えると、コンセンサスにかかる時間が非常に長くなり、ネットワークとエンドポイントの障害に対する耐性が低くなります。 - -## XRP Ledgerでのコンセンサス失敗の処理 - -コンセンサスラウンドが完了したら、各参加者は、合意に達したと各自が理解しているトランザクションのセットを適用します。その結果、レジャーの次の段階と各自が想定しているものが生成されます。 - -バリデータでもある参加者が、次のレジャーの暗号フィンガープリントを公開します。このフィンガープリントを「検証投票」と呼びます。コンセンサスラウンドが成功した場合、公正なバリデータの過半数が同じフィンガープリントを公開します。 - -次に参加者がこれらの検証投票を収集します。検証投票から、参加者は前のコンセンサスラウンドの結果、参加者の圧倒的多数がトランザクションセットについて合意しているか否かを確認できます。 - -参加者は次の3つのいずれかの状況になります(確率の高い順)。 - -1. 圧倒的多数が合意したレジャーと同じレジャーを構築します。この場合、参加者はそのレジャーが完全に検証済みであると見なし、その内容を信頼できます。 -2. 圧倒的多数が合意したレジャーとは異なるレジャーを構築します。この場合、参加者は圧倒的多数が合意したレジャーを構築して受け入れる必要があります。これは通常、参加者が早期にコンセンサスを宣言した後、他の多くの参加者が考えを変えたことを意味します。圧倒的多数が合意したレジャーに「ジャンプ」して操作を再開する必要があります。 -3. 受信した検証からは圧倒的多数が明確ではありません。この場合、前のコンセンサスラウンドが無駄となったため、いずれかのレジャーが検証される前に新しいラウンドが発生する必要があります。 - -ケース1が最も一般的に発生する状況です。ケース2はネットワークに一切悪影響を及ぼしません。ごく少数の参加者は、あらゆるラウンドでケース2の状況になることがありますが、ネットワークは特に問題なく動作します。このような参加者も、構築したレジャーが圧倒的多数が支持するレジャーと同じでなかったことを認識できるので、圧倒的多数との合意に達するまでは、その結果を最終結果として報告してはならないことを理解しています。 - -ケース3では、ネットワークは数秒間遅滞する結果となります。この間に処理を進められる可能性はありますが、非常にまれです。このケースでは、意見の相違はコンセンサスプロセスで解決され、未解決のまま残っている意見の相違のみが失敗の原因となるため、次のコンセンサスラウンドが失敗する可能性は大幅に低下します。 - -まれに、ネットワーク全体が数秒間にわって処理を進めることができないことがあります。その代わり、トランザクションの平均確認時間は短くなります。 - -# 理念 - -信頼性の1つの要素として、一部のコンポーネントで障害が発生している、悪意のある参加者がいるなどの状況でも結果を提供できるというシステムの能力があげられます。この点は重要ですが、暗号決済システムに関してはこれよりもさらに重要なもう1つの信頼性の要素があります。それは、信頼できる結果を提供するシステムの能力です。つまり、システムが結果を信頼できるものとして報告する場合、その結果を信頼できなければなりません。 - -ただし実際のシステムは、この両方の信頼性が損なわれる可能性のある運用状況に直面します。このような状況には、ハードウェア障害、通信障害、不正な参加者などがあります。XRP Ledgerの設計理念の1つとして、信頼してはならない結果を提供するのではなく、結果の信頼性が損なわれている状況を検知し、報告することを掲げています。 - -XRP Ledgerのコンセンサスアルゴリズムは、プルーフオブワークシステムに代わる堅牢な仕組みで、コンピューティングリソースを不必要に消費することはありません。ビザンチン障害が発生する可能性があり、また実際に発生することがありますが、その影響はわずかな遅延にとどまります。どのケースでも、XRP Ledgerのコンセンサスアルゴリズムは、結果が実際に信頼できるものである場合にのみ、信頼できる結果として報告します。 +# コンセンサスの原理とルール + +XRP Ledgerは世界規模の決済システムで、ユーザーはメールを送るときのようにスムーズに国境を越えて送金することができます。Bitcoinなどの他のピアツーピア決済ネットワークと同様に、XRP Ledgerでは分散型コンピューターネットワークを介したピアツーピア取引の決済が可能です。他のデジタル通貨プロトコルとは異なり、XRP LedgerではXRP(XRP Ledgerのネイティブ資産)の他にユーザーが選択した通貨(法定通貨、デジタル通貨、その他の価値形態など)建てでトランザクションを実行できます。 + +XRP Ledgerのテクノロジーにより、ほぼリアルタイムでの決済(3~6秒)が可能です。また、その分散型取引所により自動的に最も安価な通貨取引注文を決済に適用して通貨をブリッジングすることができます。 + +# 背景 + +## 仕組み + +根本的には、XRP Ledgerはアカウント、残高、および資産取引オファーなどの情報を記録する共有データベースです。「トランザクション」と呼ばれる署名付きの指示により、アカウントの作成、支払いの実行、資産の取引などの変更が行われます。 + +暗号化システムであるため、XRP Ledgerアカウントの所有者は _暗号ID_ により識別されます。暗号IDは、公開鍵/秘密鍵のペアに相当します。トランザクションは、暗号IDに一致する暗号署名によって承認されます。すべてのサーバーでは、同一の確定的な既知のルールに基づいてすべてのトランザクションが処理されます。最終的な目標は、ネットワーク内のすべてのサーバーがまったく同じレジャー状態の完全なコピーを保有できるようにし、1つの中央機関がトランザクションを調停する必要がないようにすることです。 + + +## 二重支払いの問題 + +「二重支払い」の問題は、どのような決済システムの運用においても根本的な課題となります。この問題は、ある場所でお金を支払うときに、別の場所ではそのお金を支払うことができないという要件に起因しています。一般的には、2つのトランザクションがあり、いずれかのトランザクションが有効で、両方が同時に有効になることがない場合にこの問題が発生します。 + +たとえば、Alice、Bob、Charlieが決済システムを使用しており、Aliceの残高が$10であるとします。この決済システムが機能するためには、Aliceはこの$10をBobまたはCharlieに送金できる必要があります。ただしAliceがBobに$10を送金し、同時にCharlieにも$10を送金しようとすると、二重支払いの問題が発生します。 + +Aliceが「同じ」$10をCharlieとBobの両方に送金できてしまう場合、この決済システムは正しく機能したとはいえなくなります。決済システムでは、発生したトランザクションについてすべての参加者が合意できるように、成功すべきトランザクションと失敗すべきトランザクションを選択する手段が必要です。これら2つのトランザクションはいずれも、トランザクションとしては同じく有効です。ただし、どのトランザクションが最初に発生したかについては、決済システムの参加者によって見方が異なります。 + +従来、決済システムでは中央機関がトランザクションを追跡、承認することで、この二重支払いの問題が解決されてきました。たとえば銀行は唯一の管理人として、保有する小切手振出人の預金残高に基づいて小切手を決済します。このようなシステムでは、すべての参加者が中央機関の決定に従う必要があります。 + +XRP Ledgerなどの分散型台帳技術では中央機関が存在せず、二重支払いの問題を他の方法で解決する必要があります。 + + +# コンセンサスの仕組み + +## 問題の単純化 + +二重支払いの問題のほとんどは、既知のルール(アカウントが保有していない資金を利用することを禁止するなど)により解決できます。実際に、二重支払いの問題はトランザクションを順に整理することで削減できます。 + +BobとCharlieの両方に同じ$10を送金しようとしたAliceの例で説明します。Bobへの支払いが最初であることが判明している場合は、AliceにはBobに支払う資金があることで全員が合意できます。Charlieへの支払いが2番目であることが判明している場合は、資金はすでにBobに送金されたため、Charlieには資金を送金できないことで全員が合意できます。 + +また、確定的なルールに基づいてトランザクションを順に並べることもできます。トランザクションはデジタル情報の集合であるため、コンピューターで簡単にソートできます。 + +中央機関なしに二重支払いの問題を解決するにはこれで十分ですが、トランザクションの結果を確認する前に、発生するすべてのトランザクションを把握し、ソートする必要があります。これは明らかに非現実的です。 + +トランザクションをグループにまとめ、グループ単位で合意できる場合には、グループ内でトランザクションをソートできます。ひとまとめで処理するトランザクションについて参加者全員が合意している限り、中央機関を必要とすることなく、確定的なルールに基づいて二重支払いの問題を解決できます。各参加者がトランザクションをソートし、既知のルールに従い確定的な方法でそれらのトランザクションを適用します。XRP Ledgerでは、二重支払いの問題をこの方法で解決します。 + +XRP Ledgerでは、合意されたグループに複数の競合するトランザクションを含めることができます。トランザクションのグループは確定的なルールに従って実行されるので、ソートルールに基づいて最初に発生したトランザクションが成功し、2番目に発生した競合するトランザクションは失敗します。 + +## コンセンサスルール + +コンセンサスの主な役割は、プロセスの参加者が、二重支払いの問題を解決するためグループ単位で処理するトランザクションについて合意を形成できるようにすることです。次の4つの理由により、この合意の形成は予想以上に容易です。 + +1. トランザクションをトランザクショングループに含めてはならない理由が特にない場合、すべての公正な参加者はそのトランザクションをグループに含めることで合意します。すべての参加者がすでに合意している場合、コンセンサスが果たす役割はありません。 +2. トランザクションをトランザクショングループに含めてはならない何らかの理由がある場合、すべての公正な参加者はそのトランザクションの除外を希望します。トランザクションがまだ有効であり、次のラウンドに含めてはならない理由が特にない場合は、そのトランザクションを次のラウンドに含めることで全員が合意します。 +3. トランザクションをグループ化する方法に参加者が特に関心を示すことは極めてまれです。合意の形成は、参加者全員がこれを最優先と認識している場合は最も容易になされ、参加者の関心が異なる場合に限り難しくなります。 +4. 確定的なルールはグループ編成時にも使用でき、エッジケースについてのみ不合意を形成します。たとえば、ラウンドに2つの競合するトランザクションがある場合、確定的なルールを使用して次のラウンドに含めるトランザクションを決定できます。 + +すべての参加者は正確さを最も重視します。共有レジャーの整合性を損なわないようにするため、最初にこれらのルールを適用する必要があります。たとえば、適切な署名がないトランザクションは(他の参加者が処理を希望する場合でも)処理されることはありません。ただし、公正な参加者全員が2番目に重視するのは合意です。二重支払いが発生する可能性のあるネットワークはまったく役に立ちません。公正な参加者全員が正確さの次に重視するのが合意であるという事実により、合意が促進されます。 + +## コンセンサスラウンド + +コンセンサスラウンドとは、トランザクションのグループについての合意形成に向けた取り組みで、これによりトランザクションの処理を可能とします。コンセンサスラウンドでは、合意形成を希望する各参加者が最初の見解を表明します。これは、参加者が確認した有効なトランザクションセットです。 + +次に、合意に向けて、参加者の見解が「次々に寄せられます」。特定のトランザクションが過半数の支持を得られない場合、参加者はそのトランザクションの保留に合意します。特定のトランザクションが過半数の支持を得ている場合、参加者はそのトランザクションを追加することに合意します。このように、支持が過半数をわずかに上回れば即座に全面的に支持され、過半数をわずかに下回れば即座に現行ラウンドでは全面的に却下されることになります。 + +コンセンサスが50%前後で行き詰まることを防ぎ、確実な合意を形成する上で必要となる重複を低減するため、トランザクションの追加に関する所定のしきい値は時間の経過とともに増加します。最初は、50%以上の他の参加者が合意していれば、参加者はトランザクションの追加についての合意の継続を支持します。参加者が合意しない場合、このしきい値が増加します。最初は60%に増加し、その後は問題のトランザクションが現行セットから削除されるまで増加し続けます。このようにして除外されたトランザクションはすべて次のレジャーバージョンに繰り越されます。 + +次に処理するトランザクションセットについて圧倒的多数が合意し、参加者がこれを確認した場合は、コンセンサスに達したと宣言します。 + +## コンセンサス失敗の可能性 + +完全なコンセンサスの達成に失敗することがないコンセンサスアルゴリズムの開発は非現実的です。その理由を理解するため、コンセンサスプロセスがどのように終了するかについて説明します。各参加者はある時点で、コンセンサスに達し、特定のトランザクションセットがそのコンセンサスプロセスの結果であると宣言する必要があります。この宣言により参加者は、特定のトランザクションセットがコンセンサスプロセスの結果であると取り消し不能の表明をすることになります。 + +いずれかの参加者がこの宣言を最初に行う必要があります。この宣言を行なう参加者がいなければ、合意に達することができません。次に、この宣言を最初に行う参加者について説明します。最初に宣言を行う参加者が、コンセンサスは完了したと判断した時点では、他の参加者はまだそのような判断に至っていません。もし他の参加者が各自の視点をもとに合意済のセットを変更できないのであれば、最初の宣言が行われた時点で、他の参加者はコンセンサスは完了したと判断していたでしょう。したがって、参加者は合意済のセットを変更できるはずです。 + +つまり、コンセンサスプロセスを完了するには、その他のすべての参加者が合意済のトランザクションセットを理論的に変更できる場合でも、特定の参加者がトランザクションセットについてコンセンサスに達したことを宣言する必要があります。 + +たとえば、あるグループが部屋の中でどのドアから外に出るかについて合意しようとしている場合を考えてください。参加者がどれほど話し合っても、ある時点で _誰か_ が最初にドアから外に出なければなりません。これは、その後に続く人々が考えを変えて別のドアから外に出ることができるとしてもです。 + +このような失敗が生じる確率を低く抑えることはできますが、ゼロにすることはできません。技術上のトレードオフとして、この確率を1000分の1未満に抑えると、コンセンサスにかかる時間が非常に長くなり、ネットワークとエンドポイントの障害に対する耐性が低くなります。 + +## XRP Ledgerでのコンセンサス失敗の処理 + +コンセンサスラウンドが完了したら、各参加者は、合意に達したと各自が理解しているトランザクションのセットを適用します。その結果、レジャーの次の段階と各自が想定しているものが生成されます。 + +バリデータでもある参加者が、次のレジャーの暗号フィンガープリントを公開します。このフィンガープリントを「検証投票」と呼びます。コンセンサスラウンドが成功した場合、公正なバリデータの過半数が同じフィンガープリントを公開します。 + +次に参加者がこれらの検証投票を収集します。検証投票から、参加者は前のコンセンサスラウンドの結果、参加者の圧倒的多数がトランザクションセットについて合意しているか否かを確認できます。 + +参加者は次の3つのいずれかの状況になります(確率の高い順)。 + +1. 圧倒的多数が合意したレジャーと同じレジャーを構築します。この場合、参加者はそのレジャーが完全に検証済みであると見なし、その内容を信頼できます。 +2. 圧倒的多数が合意したレジャーとは異なるレジャーを構築します。この場合、参加者は圧倒的多数が合意したレジャーを構築して受け入れる必要があります。これは通常、参加者が早期にコンセンサスを宣言した後、他の多くの参加者が考えを変えたことを意味します。圧倒的多数が合意したレジャーに「ジャンプ」して操作を再開する必要があります。 +3. 受信した検証からは圧倒的多数が明確ではありません。この場合、前のコンセンサスラウンドが無駄となったため、いずれかのレジャーが検証される前に新しいラウンドが発生する必要があります。 + +ケース1が最も一般的に発生する状況です。ケース2はネットワークに一切悪影響を及ぼしません。ごく少数の参加者は、あらゆるラウンドでケース2の状況になることがありますが、ネットワークは特に問題なく動作します。このような参加者も、構築したレジャーが圧倒的多数が支持するレジャーと同じでなかったことを認識できるので、圧倒的多数との合意に達するまでは、その結果を最終結果として報告してはならないことを理解しています。 + +ケース3では、ネットワークは数秒間遅滞する結果となります。この間に処理を進められる可能性はありますが、非常にまれです。このケースでは、意見の相違はコンセンサスプロセスで解決され、未解決のまま残っている意見の相違のみが失敗の原因となるため、次のコンセンサスラウンドが失敗する可能性は大幅に低下します。 + +まれに、ネットワーク全体が数秒間にわって処理を進めることができないことがあります。その代わり、トランザクションの平均確認時間は短くなります。 + +# 理念 + +信頼性の1つの要素として、一部のコンポーネントで障害が発生している、悪意のある参加者がいるなどの状況でも結果を提供できるというシステムの能力があげられます。この点は重要ですが、暗号決済システムに関してはこれよりもさらに重要なもう1つの信頼性の要素があります。それは、信頼できる結果を提供するシステムの能力です。つまり、システムが結果を信頼できるものとして報告する場合、その結果を信頼できなければなりません。 + +ただし実際のシステムは、この両方の信頼性が損なわれる可能性のある運用状況に直面します。このような状況には、ハードウェア障害、通信障害、不正な参加者などがあります。XRP Ledgerの設計理念の1つとして、信頼してはならない結果を提供するのではなく、結果の信頼性が損なわれている状況を検知し、報告することを掲げています。 + +XRP Ledgerのコンセンサスアルゴリズムは、プルーフオブワークシステムに代わる堅牢な仕組みで、コンピューティングリソースを不必要に消費することはありません。ビザンチン障害が発生する可能性があり、また実際に発生することがありますが、その影響はわずかな遅延にとどまります。どのケースでも、XRP Ledgerのコンセンサスアルゴリズムは、結果が実際に信頼できるものである場合にのみ、信頼できる結果として報告します。 diff --git a/content/concepts/consensus-network/consensus-protections.ja.md b/content/concepts/consensus-network/consensus-protections.ja.md index 50e495d6a4..dca9b70ff6 100644 --- a/content/concepts/consensus-network/consensus-protections.ja.md +++ b/content/concepts/consensus-network/consensus-protections.ja.md @@ -1,67 +1,67 @@ -# 攻撃および障害モードに対するコンセンサスの保護 - -XRP Ledgerコンセンサスプロトコルは、 _ビザンチンフォールトトレラント性_ のあるコンセンサスメカニズムです。つまり、あらゆる不適切な状況(参加者が信頼できないオープンネットワークを利用して通信している場合や、不正使用者が常にシステムを乗っ取ろうとしているかまたは中断しようとしている場合など)が発生しても動作するように設計されています。さらに、XRP Ledgerコンセンサスプロトコルの参加者が事前に判明していない場合や、時間の経過とともに変わる場合があります。 - -[ネットワークに求められる特性](intro-to-consensus.html#コンセンサスプロトコルの特性)を維持しつつ、トランザクションをタイミングよく承認する作業は複雑であり、また完璧なシステムを構築することは不可能です。XRP Ledgerコンセンサスプロトコルは、ほとんどの状況で機能し、機能できない状況では可能な限り安全に失敗するように設計されています。 - -このページでは、XRP Ledgerコンセンサスプロトコルのいくつかの課題のタイプとその対処について説明します。 - -## 個々のバリデータの不適切な動作 - -_バリデータ_ とは、新しいレジャーバージョンの決定プロセスにアクティブに参加するサーバーです。バリデータは、そのバリデータを信用するように設定されているサーバーにのみ影響を与えます(間接的な影響を含む)。一部バリデータの動作が不適切であってもコンセンサスを継続できます。このような不適切な動作には、以下のさまざまなケースがあります。 - -- 使用できないかまたは過負荷状態である。 -- ネットワークから部分的に切断されており、メッセージが遅延なしで届くのは一部の参加者に限られる。 -- 他のサーバーを欺くかまたはネットワークを停止する目的で意図的に動作している。 -- 外部要因(抑圧的な政府からの脅威など)からのプレッシャーによって不正に動作している。 -- バグまたは古いソフトウェアが原因で、わかりにくいメッセージまたは誤った形式のメッセージが偶発的に送信される。 - -一般に、信頼できるバリデータのうち、不適切に動作しているバリデータがごくわずか(約20%未満)である限り、特に問題なくコンセンサスを継続できます。(正確な割合とその計算については、最新の[コンセンサスに関する研究](consensus-research.html)を参照してください。) - -バリデータの約20%以上がアクセス不能であるか適切に動作していない場合、ネットワークはコンセンサスに達することができません。この間、新しいトランザクションを暫定的に処理できますが、新しいレジャーバージョンを検証できないため、これらのトランザクションの最終結果は未確定になります。このような状況では、XRP Ledgerが正常ではないことがただちに明らかになるため、待機するか、または信頼できるバリデータのセットを再設定するかを決定できる参加者からの人的介入が促されます。 - -無効なトランザクションを承認する唯一の方法は、80%以上の信頼できるバリデータがそのトランザクションを承認し、その結果に合意することです。(無効なトランザクションには、すでに使用された資金を送金するトランザクションや、ネットワークのルールに違反するトランザクションなどがあります。)つまり、信頼できるバリデータの過半数が _共謀する_ 必要があります。多数の信頼できるバリデータが世界各地域で異なる人々や企業により運用されている状況では、意図的にこれを達成することは非常に困難です。 - - -## ソフトウェアの脆弱性 - -あらゆるソフトウェアシステムと同様に、XRP Ledgerコンセンサスプロトコル、広く導入されているソフトウェアパッケージ、またはその依存関係の実装に伴うバグ(または意図的に悪意のあるコード)の問題には、真剣に取り組む必要があります。巧妙に作成された入力を取り込んだサーバーをクラッシュさせるだけのバグであっても、ネットワークの進捗を妨害する目的で悪用される可能性があります。Rippleではこのような脅威に対処するため、次のようなさまざまな対策を導入しています。 - -- [オープンソースコードベース](https://github.com/ripple/rippled/)。これにより、一般のユーザーが関連ソフトウェアをレビュー、コンパイルし、個別にテストできます。 -- 公式XRP Ledgerリポジトリのあらゆる変更のための綿密で堅固なコードレビュープロセス。 -- すべてのリリースと公式ソフトウェアパッケージへのRipple社員によるデジタル署名付与。 -- セキュリティの脆弱性と不安定さに関する定期的に委託された専門家レビュー。 -- 責任を持って脆弱性を公開したセキュリティ研究者に報奨金を授与する[Bug Bountyプログラム](https://ripple.com/bug-bounty/)。 - - -## シビル攻撃 - -_[シビル攻撃](https://en.wikipedia.org/wiki/Sybil_attack)_ とは、大量の偽IDを使ってネットワークのコントロールを試みる攻撃です。XRP Ledgerでは、シビル攻撃は多数のバリデータを操作して、他のバリデータにこれらのバリデータを信頼するように仕向ける形で攻撃をしかける可能性があります。このような攻撃は理論上は可能ですが、バリデータが信頼を得るには人間による介入が必要であるため、実際には非常に困難です。 - -攻撃者が操作する検証サーバーの数に関係なく、既存の参加者が攻撃者のバリデータを信頼しない限りは、これらの参加者が何を検証済みと判断するかについて、このようなサーバーが影響を及ぼすことはできません。その他のサーバーは、バリデータリストまたは明示的な設定によって信頼できると設定されたバリデータのみを信頼します。(デフォルトのバリデータリストの仕組みの概要については、[バリデータ重複要件](#バリデータ重複要件)を参照してください。) - -この信頼は自動的に形成されるものではありません。したがってシビル攻撃を成功させるには、ターゲットとなる人物や企業が、攻撃者のバリデータを信頼してXRP Ledgerサーバーを再設定するように仕向けるという難しい作業をこなさなければなりません。ある人物または企業がだまされてXRP Ledgerサーバーを再設定したとしても、自らの設定を変更していない他の人物や企業に対する影響は最小限となります。 - - -## 51%攻撃 - -「51%攻撃」とは、特定の当事者が全採掘能力または投票能力の50%を超える割合を支配しているブロックチェーンに対する攻撃です。(厳密には、50%を _わずかでも_ 超えていれば十分であるため、この攻撃の名前は多少間違っています。)XRP Ledgerは、コンセンサスメカニズムに採掘を採用していないため、51%攻撃に対し脆弱ではありません。これに最も類似するXRP Ledgerへの攻撃には[シビル攻撃](#シビル攻撃)がありますが、この攻撃を実際に実施することは困難です。 - - -## バリデータ重複要件 - -XRP Ledgerのすべての参加者が何を検証済みとみなすかについて合意するには、参加者はまず、他の参加者が選択したバリデータ群によく似た信頼できるバリデータ群を選択する必要があります。最悪のケースでは、重複が約90%未満のために一部の参加者間に不一致が生じる場合があります。このため、Rippleは推奨バリデータの署名付きリストを公開しています。このリストには、企業や業界、コミュニティが運用する信頼性が高く適切に管理されたサーバーが含まれます。 - -デフォルトでは、XRP LedgerサーバーはRippleが運用するバリデータリストサイトを使用するように設定されています。このサイトでは、Rippleが定期的に更新する推奨バリデータリスト(推奨 _ユニークノードリスト_ (UNL))が公開されています。このように設定されているサーバーは、最新バージョンのリストに含まれているすべてのバリデータを信頼します。これにより、同じリストを使用する他のサーバーと100%重複することが保証されます。デフォルトの設定には、サイトのコンテンツの真正性を検証する公開鍵が含まれています。サイトがダウンした場合、XRP Ledgerのピアツーピアネットワーク内のサーバー間でリストに対する署名済みの更新を直接中継できます。 - -技術的には、サーバーを実行している場合、各自のリストサイトを設定するかまたは信頼できるバリデータを個別に明示的に選択することができますが、これらを行うことは推奨されません。選択したバリデータ群と他のサーバーとの重複が十分ではない場合、サーバーはネットワークの他の部分と不一致になる可能性があり、サーバーが不一致の状態でアクションを実行すると資金を失う可能性があります。 - -コンセンサスプロトコルの設計を改善し、より多様性のあるバリデータリストを実現するための研究が進んでいます。詳細は、[コンセンサスの研究](consensus-research.html)ページを参照してください。 - - -## 関連項目 - -- コンセンサスの**入門レベルの概要**については、[コンセンサスについて](intro-to-consensus.html)を参照してください。 -- コンセンサスプロトコルの**詳細な説明**については、[コンセンサス](consensus.html)を参照してください。 -- コンセンサスプロトコルの**設計に関する決定と背景**については、[コンセンサスの原理とルール](consensus-principles-and-rules.html)を参照してください。 -- コンセンサスプロトコルの特性と制約に関する**学術研究**については、[コンセンサスの研究](consensus-research.html)を参照してください。 +# 攻撃および障害モードに対するコンセンサスの保護 + +XRP Ledgerコンセンサスプロトコルは、 _ビザンチンフォールトトレラント性_ のあるコンセンサスメカニズムです。つまり、あらゆる不適切な状況(参加者が信頼できないオープンネットワークを利用して通信している場合や、不正使用者が常にシステムを乗っ取ろうとしているかまたは中断しようとしている場合など)が発生しても動作するように設計されています。さらに、XRP Ledgerコンセンサスプロトコルの参加者が事前に判明していない場合や、時間の経過とともに変わる場合があります。 + +[ネットワークに求められる特性](intro-to-consensus.html#コンセンサスプロトコルの特性)を維持しつつ、トランザクションをタイミングよく承認する作業は複雑であり、また完璧なシステムを構築することは不可能です。XRP Ledgerコンセンサスプロトコルは、ほとんどの状況で機能し、機能できない状況では可能な限り安全に失敗するように設計されています。 + +このページでは、XRP Ledgerコンセンサスプロトコルのいくつかの課題のタイプとその対処について説明します。 + +## 個々のバリデータの不適切な動作 + +_バリデータ_ とは、新しいレジャーバージョンの決定プロセスにアクティブに参加するサーバーです。バリデータは、そのバリデータを信用するように設定されているサーバーにのみ影響を与えます(間接的な影響を含む)。一部バリデータの動作が不適切であってもコンセンサスを継続できます。このような不適切な動作には、以下のさまざまなケースがあります。 + +- 使用できないかまたは過負荷状態である。 +- ネットワークから部分的に切断されており、メッセージが遅延なしで届くのは一部の参加者に限られる。 +- 他のサーバーを欺くかまたはネットワークを停止する目的で意図的に動作している。 +- 外部要因(抑圧的な政府からの脅威など)からのプレッシャーによって不正に動作している。 +- バグまたは古いソフトウェアが原因で、わかりにくいメッセージまたは誤った形式のメッセージが偶発的に送信される。 + +一般に、信頼できるバリデータのうち、不適切に動作しているバリデータがごくわずか(約20%未満)である限り、特に問題なくコンセンサスを継続できます。(正確な割合とその計算については、最新の[コンセンサスに関する研究](consensus-research.html)を参照してください。) + +バリデータの約20%以上がアクセス不能であるか適切に動作していない場合、ネットワークはコンセンサスに達することができません。この間、新しいトランザクションを暫定的に処理できますが、新しいレジャーバージョンを検証できないため、これらのトランザクションの最終結果は未確定になります。このような状況では、XRP Ledgerが正常ではないことがただちに明らかになるため、待機するか、または信頼できるバリデータのセットを再設定するかを決定できる参加者からの人的介入が促されます。 + +無効なトランザクションを承認する唯一の方法は、80%以上の信頼できるバリデータがそのトランザクションを承認し、その結果に合意することです。(無効なトランザクションには、すでに使用された資金を送金するトランザクションや、ネットワークのルールに違反するトランザクションなどがあります。)つまり、信頼できるバリデータの過半数が _共謀する_ 必要があります。多数の信頼できるバリデータが世界各地域で異なる人々や企業により運用されている状況では、意図的にこれを達成することは非常に困難です。 + + +## ソフトウェアの脆弱性 + +あらゆるソフトウェアシステムと同様に、XRP Ledgerコンセンサスプロトコル、広く導入されているソフトウェアパッケージ、またはその依存関係の実装に伴うバグ(または意図的に悪意のあるコード)の問題には、真剣に取り組む必要があります。巧妙に作成された入力を取り込んだサーバーをクラッシュさせるだけのバグであっても、ネットワークの進捗を妨害する目的で悪用される可能性があります。Rippleではこのような脅威に対処するため、次のようなさまざまな対策を導入しています。 + +- [オープンソースコードベース](https://github.com/ripple/rippled/)。これにより、一般のユーザーが関連ソフトウェアをレビュー、コンパイルし、個別にテストできます。 +- 公式XRP Ledgerリポジトリのあらゆる変更のための綿密で堅固なコードレビュープロセス。 +- すべてのリリースと公式ソフトウェアパッケージへのRipple社員によるデジタル署名付与。 +- セキュリティの脆弱性と不安定さに関する定期的に委託された専門家レビュー。 +- 責任を持って脆弱性を公開したセキュリティ研究者に報奨金を授与する[Bug Bountyプログラム](https://ripple.com/bug-bounty/)。 + + +## シビル攻撃 + +_[シビル攻撃](https://en.wikipedia.org/wiki/Sybil_attack)_ とは、大量の偽IDを使ってネットワークのコントロールを試みる攻撃です。XRP Ledgerでは、シビル攻撃は多数のバリデータを操作して、他のバリデータにこれらのバリデータを信頼するように仕向ける形で攻撃をしかける可能性があります。このような攻撃は理論上は可能ですが、バリデータが信頼を得るには人間による介入が必要であるため、実際には非常に困難です。 + +攻撃者が操作する検証サーバーの数に関係なく、既存の参加者が攻撃者のバリデータを信頼しない限りは、これらの参加者が何を検証済みと判断するかについて、このようなサーバーが影響を及ぼすことはできません。その他のサーバーは、バリデータリストまたは明示的な設定によって信頼できると設定されたバリデータのみを信頼します。(デフォルトのバリデータリストの仕組みの概要については、[バリデータ重複要件](#バリデータ重複要件)を参照してください。) + +この信頼は自動的に形成されるものではありません。したがってシビル攻撃を成功させるには、ターゲットとなる人物や企業が、攻撃者のバリデータを信頼してXRP Ledgerサーバーを再設定するように仕向けるという難しい作業をこなさなければなりません。ある人物または企業がだまされてXRP Ledgerサーバーを再設定したとしても、自らの設定を変更していない他の人物や企業に対する影響は最小限となります。 + + +## 51%攻撃 + +「51%攻撃」とは、特定の当事者が全採掘能力または投票能力の50%を超える割合を支配しているブロックチェーンに対する攻撃です。(厳密には、50%を _わずかでも_ 超えていれば十分であるため、この攻撃の名前は多少間違っています。)XRP Ledgerは、コンセンサスメカニズムに採掘を採用していないため、51%攻撃に対し脆弱ではありません。これに最も類似するXRP Ledgerへの攻撃には[シビル攻撃](#シビル攻撃)がありますが、この攻撃を実際に実施することは困難です。 + + +## バリデータ重複要件 + +XRP Ledgerのすべての参加者が何を検証済みとみなすかについて合意するには、参加者はまず、他の参加者が選択したバリデータ群によく似た信頼できるバリデータ群を選択する必要があります。最悪のケースでは、重複が約90%未満のために一部の参加者間に不一致が生じる場合があります。このため、Rippleは推奨バリデータの署名付きリストを公開しています。このリストには、企業や業界、コミュニティが運用する信頼性が高く適切に管理されたサーバーが含まれます。 + +デフォルトでは、XRP LedgerサーバーはRippleが運用するバリデータリストサイトを使用するように設定されています。このサイトでは、Rippleが定期的に更新する推奨バリデータリスト(推奨 _ユニークノードリスト_ (UNL))が公開されています。このように設定されているサーバーは、最新バージョンのリストに含まれているすべてのバリデータを信頼します。これにより、同じリストを使用する他のサーバーと100%重複することが保証されます。デフォルトの設定には、サイトのコンテンツの真正性を検証する公開鍵が含まれています。サイトがダウンした場合、XRP Ledgerのピアツーピアネットワーク内のサーバー間でリストに対する署名済みの更新を直接中継できます。 + +技術的には、サーバーを実行している場合、各自のリストサイトを設定するかまたは信頼できるバリデータを個別に明示的に選択することができますが、これらを行うことは推奨されません。選択したバリデータ群と他のサーバーとの重複が十分ではない場合、サーバーはネットワークの他の部分と不一致になる可能性があり、サーバーが不一致の状態でアクションを実行すると資金を失う可能性があります。 + +コンセンサスプロトコルの設計を改善し、より多様性のあるバリデータリストを実現するための研究が進んでいます。詳細は、[コンセンサスの研究](consensus-research.html)ページを参照してください。 + + +## 関連項目 + +- コンセンサスの**入門レベルの概要**については、[コンセンサスについて](intro-to-consensus.html)を参照してください。 +- コンセンサスプロトコルの**詳細な説明**については、[コンセンサス](consensus.html)を参照してください。 +- コンセンサスプロトコルの**設計に関する決定と背景**については、[コンセンサスの原理とルール](consensus-principles-and-rules.html)を参照してください。 +- コンセンサスプロトコルの特性と制約に関する**学術研究**については、[コンセンサスの研究](consensus-research.html)を参照してください。 diff --git a/content/concepts/consensus-network/consensus-research.ja.md b/content/concepts/consensus-network/consensus-research.ja.md index 89ef54af25..c0f0577d48 100644 --- a/content/concepts/consensus-network/consensus-research.ja.md +++ b/content/concepts/consensus-network/consensus-research.ja.md @@ -1,9 +1,9 @@ -# コンセンサスの研究 - -Rippleでは、XRP Ledgerのコンセンサスプロトコルの理論上の制限と実際の制限の両方についての研究を進め、この分野にてさまざまなアイデアを探究しています。以下の表に、Rippleが発表した学術論文の一覧を示します。 - -| 日付 | タイトル | 著者 | 概要 | -|---|---|---|---| -| 2018-02-20 | [Cobalt: BFT Governance in Open Networks](https://arxiv.org/abs/1802.07240) | MacBrough | コンセンサスUNLの柔軟性を高める新しいアトミックブロードキャストアルゴリズム、Cobaltの紹介。 | -| 2018-02-20 | [Analysis of the XRP Ledger Consensus Protocol](https://arxiv.org/abs/1802.07242) | Chase, MacBrough | XRP Ledgerのコンセンサスアルゴリズムとその安全性および活性の特性に関する最新の詳細な分析。 | -| 2014 | [The Ripple Protocol Consensus Algorithm](https://ripple.com/files/ripple_consensus_whitepaper.pdf) | Schwartz, Youngs, Britto | XRP Ledgerで採用されているコンセンサスアルゴリズムの紹介。 | +# コンセンサスの研究 + +Rippleでは、XRP Ledgerのコンセンサスプロトコルの理論上の制限と実際の制限の両方についての研究を進め、この分野にてさまざまなアイデアを探究しています。以下の表に、Rippleが発表した学術論文の一覧を示します。 + +| 日付 | タイトル | 著者 | 概要 | +|---|---|---|---| +| 2018-02-20 | [Cobalt: BFT Governance in Open Networks](https://arxiv.org/abs/1802.07240) | MacBrough | コンセンサスUNLの柔軟性を高める新しいアトミックブロードキャストアルゴリズム、Cobaltの紹介。 | +| 2018-02-20 | [Analysis of the XRP Ledger Consensus Protocol](https://arxiv.org/abs/1802.07242) | Chase, MacBrough | XRP Ledgerのコンセンサスアルゴリズムとその安全性および活性の特性に関する最新の詳細な分析。 | +| 2014 | [The Ripple Protocol Consensus Algorithm](https://ripple.com/files/ripple_consensus_whitepaper.pdf) | Schwartz, Youngs, Britto | XRP Ledgerで採用されているコンセンサスアルゴリズムの紹介。 | diff --git a/content/concepts/consensus-network/consensus.ja.md b/content/concepts/consensus-network/consensus.ja.md index 2bf35e6d2b..f4b5286d2d 100644 --- a/content/concepts/consensus-network/consensus.ja.md +++ b/content/concepts/consensus-network/consensus.ja.md @@ -1,193 +1,193 @@ -# コンセンサス - -_著者: Dave Cohen、David Schwartz、Arthur Britto_ - -この記事では、XRP Ledgerの概要や格納される情報、[トランザクション](transaction-formats.html)によってレジャー(台帳)が変化する様子について説明します。 - -XRP Ledger上でアプリケーションを構築する場合は、XRP Ledger APIの動作や、その動作によってもたされる影響を知っておくために、このプロセスを理解することが重要です。 - - -## まえがき - -ピアツーピアサーバーのXRP Ledgerネットワークは世界で共有されている台帳であり、ここから、アプリケーションはこの台帳の内容の状態に関して信頼できる情報を得ることができます。この状態に関する情報には以下の内容が含まれます。 - -- 各[アカウント](accounts.html)の設定 -- XRPおよび[発行済み通貨](issued-currencies.html)の残高 -- 分散型取引所でのオファー(注文) -- ネットワーク設定(例: [トランザクションコスト](transaction-cost.html)と[準備金](reserves.html)の金額) -- タイムスタンプ - -レジャーバージョンに含まれるデータの詳細な技術説明については、[レジャーフォーマットのリファレンス](ledger-data-formats.html)を参照してください。 - -[![図1: XRP Ledgerの要素](img/anatomy-of-a-ledger-complete.ja.png)](img/anatomy-of-a-ledger-complete.ja.png) - -_図1: XRP Ledgerの要素_ - -XRP Ledgerでは、数秒ごとに新しいレジャーバージョンが作成されます。あるレジャーバージョンの内容にネットワークが同意すると、そのレジャーバージョンは _検証済み_ となり、その内容が変更されることはありません。それ以前の検証済みのレジャーバージョンによって、レジャー履歴が形成されます。検証済みの最新のレジャーも、少し前の時点のネットワークの状態を表しており、履歴の一部となります。現時点で、ネットワークは次のレジャーバージョンに適用されてファイナライズされる可能性のあるトランザクションを評価しています。この評価が行われている間、ネットワークには、検証前のレジャーバージョン候補が存在します。 - -[![図2: XRP Ledgerのシーケンスと履歴](img/ledger-history.ja.png)](img/ledger-history.ja.png) - -_図2: XRP Ledgerのシーケンスと履歴_ - -レジャーバージョンには2つの識別子があります。1つは _レジャーインデックス_ で、 _シーケンス番号_ とも呼ばれます。レジャーバージョンの番号は1つずつ増加します。例えば、現行のレジャーバージョンのレジャーインデックスが100の場合、1つ前はレジャーインデックス99、1つ後はレジャーインデックスは101です。もう1つの識別子は _レジャーハッシュ_ で、レジャーの内容のデジタル指紋を表します。 - -サーバーがレジャーに適用するトランザクションを提案するときに、内容がわずかに異なる複数の候補レジャーバージョンが作成される場合があります。このような候補レジャーバージョンでは、レジャーインデックスは同じですがレジャーハッシュが異なります。多くの候補のうち、検証済みとなるのは1つだけです。それ以外の候補レジャーバージョンはすべて、破棄されます。そのため、履歴内の各レジャーインデックスに対して存在する検証済みのレジャーハッシュは1つのみです。 - -レジャーに対するユーザーレベルの変更は、トランザクションによってなされます。[トランザクション](transaction-formats.html)の例としては、決済、アカウントの設定またはトラストラインの変更、取引のオファー(注文)などがあります。各トランザクションは、レジャーに対する1つ以上の変更を承認するものであり、アカウント所有者によって暗号署名されます。アカウントの変更を承認したり、レジャーのそれ以外の内容を変更したりするには、トランザクションによるしかありません。 - -各レジャーバージョンには、一連のトランザクションと、そのようなトランザクションに関するメタデータも含まれています。それらのトランザクションは、新しいレジャーバージョンを作成するために前のバージョンのレジャーに適用されたものです。メタデータには、レジャーの状態データに対する、トランザクションの影響が正確に記録されています。 - -[![図3: レジャーバージョンに適用されるトランザクション](img/ledger-changes.ja.png)](img/ledger-changes.ja.png) - -_図3: レジャーバージョンに適用されるトランザクション_ - -レジャーインスタンスに含まれる一連のトランザクションはそのレジャーに記録され、XRP Ledger履歴の監査を可能としています。レジャーN+1のアカウント残高がレジャーNのアカウント残高と異なる場合、レジャーN+1にはその変更の原因となったトランザクションが含まれます。 - -検証済みのレジャー内に出現するトランザクションは、レジャーの変更に成功したか、または要求されたアクションを実行せずに処理された可能性があります。成功したトランザクションには、要求された変更がレジャーに適用されたことを示す**tesSUCCESS** [結果コード](transaction-results.html)が含まれます。レジャー内の失敗したトランザクションには、**tec**クラスの結果コードが含まれます。1 - -レジャーに含まれるトランザクションでは必ず、[トランザクションコスト](transaction-cost.html)として一部のXRPが消却されます。この場合、**tes**コードまたは**tec**コードが含まれていたかどうかは関係ありません。消却するXRPの正確な量は、署名されたトランザクションの手順で定義されます。 - -**tes**クラスや**tec**クラスの結果コード以外に、**ter**クラス、**tef**クラス、および**tem**クラスのコードがあります。後者の3つは、APIの呼び出しによって返された暫定的な失敗を示します。レジャーには、**tes**および**tec**のコードのみ表示されます。レジャーに含まれていないトランザクションによって、レジャーの状態(XRP残高を含む)が影響を受けることはありませんが、暫定的に失敗したトランザクションが後で成功する可能性があります。 - -[`rippled` API](rippled-api.html)を使用する場合、レジャーに含めるように提案された候補トランザクションと、検証済みのレジャーに含まれる検証済みのトランザクションをアプリケーションで区別する必要があります。検証済みのレジャー内にあるトランザクションの結果のみが不変です。検証済みのレジャーには、候補トランザクションが含まれる場合と含まれない場合があります。 - -重要: 一部の[`rippled` API](rippled-api.html)では、候補トランザクションに基づき暫定的な結果が返されます2。アプリケーションで、トランザクションの最終的な結果を判断する目的で暫定的な結果を使用するのは望ましくありません。最終的にトランザクションが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ、結果コードがtesSUCCESSになるまで、トランザクションの状況を確認することです。トランザクションが検証済みレジャー内にあるが、結果コードがそれ以外の場合、トランザクションの失敗を意味します。トランザクションの[`LastLedgerSequence`](transaction-common-fields.html)で指定されたレジャーが検証済みにもかかわらず、そのトランザクションがそのレジャーまたはそれ以前の他のレジャー内にない場合、トランザクションは失敗しており、どのレジャーにも表示されません。検証済みのレジャー内に表示されるトランザクションの場合にのみ、結果は最終的なものとなります。それ以外の場合、このドキュメントで後述するように、`LastLedgerSequence`の制限により、表示されることはありません。 - -## XRP Ledgerプロトコル - コンセンサスと検証 - -ピアツーピアのXRP Ledgerネットワークは、トランザクションを承認して処理する多数の独立したXRP Ledgerサーバー(通常、[`rippled`](the-rippled-server.html)を実行)で構成されています。クライアントアプリケーションは、トランザクションに署名してXRP Ledgerサーバーに送信します。サーバーは、これらの候補トランザクションを処理するためにネットワーク内を中継します。クライアントアプリケーションには、モバイルおよびウェブウォレット、金融機関へのゲートウェイ、電子取引プラットフォームなどがあります。 - -[![図4: XRP Ledgerプロトコルの参加者](img/xrp-ledger-network.ja.png)](img/xrp-ledger-network.ja.png) - -_図4: XRP Ledgerプロトコルの参加者_ - -トランザクションを受信、中継、処理するサーバーは、追跡サーバーとバリデータのいずれかです。追跡サーバーの主な機能には、クライアントからのトランザクションの分散やレジャーに関する照会への応答が含まれます。検証サーバーは、追跡サーバーと同じ機能を実行し、さらにレジャーのシーケンスを進めます3。 - -クライアントアプリケーションによって送信されたトランザクションを受け入れるときに、各追跡サーバーは最後に検証されたレジャーを開始点として使用します。受け入れられたトランザクションは候補トランザクションとなります。サーバーから候補トランザクションがそれぞれのピアに中継され、候補トランザクションがネットワーク全体に伝達されます。理想的には、各候補トランザクションはすべてのサーバーに伝達される必要があります。その結果、各サーバーは最後に検証されたレジャーに同じ一連のトランザクションを適用できる可能性が高くなります。しかし、トランザクションが伝達されるまでには時間がかかるため、サーバーは常に同じ候補トランザクションを処理するわけではありません。このことを考慮に入れて、XRP Ledgerでは、コンセンサスと呼ばれるプロセスを使用して、同一のトランザクションが処理され、ピアツーピアのXRP Ledgerネットワーク全体で検証済みのレジャーの一貫性が確保できるようにしています。 - -### コンセンサス - -ネットワーク内のサーバーは、候補トランザクションに関する情報を共有します。コンセンサスプロセスを通じて、バリデータは、候補トランザクションの特定のサブセットが次のレジャーで考慮されることに同意します。コンセンサスとは、サーバーが提案や一連の候補トランザクションを中継する反復プロセスです。サーバーは、選択されたバリデータの過半数4が同じ候補トランザクションのセットについて合意するまで、提案の通信と更新を行います。 - -コンセンサスの間、各サーバーは、そのサーバーの信頼できるバリデータ(_ユニークノードリスト(UNL)_)と呼ばれる特定のサーバー群からの提案を評価します。5信頼できるバリデータとは、提案を評価するサーバーを欺こうと共謀しない、全体として「信頼できる」ネットワークのサブセットを表します。この「信頼」の定義では、選択された個々のバリデータが信頼されている必要はありません。バリデータの選択は、ネットワークに中継されたデータを改ざんする組織的な試みで共謀しないという想定に基づいて行われます6 - -[![図5: バリデータによるトランザクションセットの提案と修正](img/consensus-rounds.ja.png)](img/consensus-rounds.ja.png) - -_図5: バリデータによるトランザクションセットの提案と修正 - コンセンサスの開始時点で、バリデータ毎に異なるトランザクションセットを持っている可能性があります。後のラウンドで、サーバーは現在の提案を信頼できるバリデータの提案と一致するように変更します。このプロセスでは、現在議論しているレジャーバージョンに適用するトランザクションと、それ以降のレジャーバージョンに適用するトランザクションを決定します。_ - -合意済みの提案に含まれていない候補トランザクションは、その後も候補トランザクションとして残ります。これらは次のレジャーバージョンで再度検討される可能性があります。通常、1つのレジャーバージョンから除外されたトランザクションは、次のレジャーバージョンに含まれます。 - -状況によっては、いつまでもコンセンサスに達することができないトランザクションもあります。そのような状況として、ネットワークが、必要な[トランザクションコスト](transaction-cost.html)を、トランザクションで指定されたものよりも高い値に変更している場合が考えられます。将来のある時点でこの手数料が引き下げられると、そのトランザクションが成功する可能性があります。トランザクションの成功または失敗が一定時間内に確定するように、トランザクションが特定のレジャーインデックスによって一定時間処理されない場合は期限切れになるように設定することができます。詳細については、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 - -### 検証 - -検証は、全体のコンセンサスプロセスの第2段階です。このプロセスでは、すべてのサーバーで同じ結果が得られたことを確認し、あるレジャーバージョンが最終バージョンとして宣言されます。まれに、第一段階の[コンセンサスプロセスが失敗する場合](consensus-principles-and-rules.html#コンセンサス失敗の可能性)があります。検証によって後で確認が行われるため、サーバーは結果を確認し、それに応じて対処することができます。 - -検証は、大きく分けて次の2つの部分に分かれます。 - -- 合意済みのトランザクションセットから結果として生じるレジャーバージョンを計算する。 -- 結果を比較し、十分に信頼できるバリデータが同意した場合はレジャーバージョンの検証済みを宣言する。 - -#### 検証の計算と共有 - -コンセンサスプロセスが完了すると、各サーバーは合意済みの一連のトランザクションから新しいレジャーを個別に計算します。各サーバーは、同じ規則に従って結果を次のように計算します。 - -1. 一つ前の検証済みのレジャーから始めます。 - -2. すべてのサーバーが同じ方法で処理できるように、合意済みのトランザクションセットを _正規順序_ で並べ変えます。 - - [正規順序](https://github.com/ripple/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/src/ripple/app/misc/CanonicalTXSet.cpp#L25-L36)は、トランザクションを受け取った順序ではありません(サーバーが同じトランザクションを異なる順序で受け取る可能性があるため)。参加者がトランザクションの順序付けで競合しないように、故意に操作するのが困難な正規順序を使います。 - -3. 指示に従って、各トランザクションを順番に処理します。それに応じてレジャーの状態データを更新します。 - - トランザクションを正常に実行できない場合は、[`tec`クラス結果コード](tec-codes.html)を持つトランザクションを含めます。1 - - 特定の「再試行可能な」トランザクションの失敗に対しては、同じレジャーバージョンの他のトランザクションが実行された後に再試行されるように、そのトランザクションを正規順序の最後に移動します。 - -4. 適切なメタデータでレジャーヘッダーを更新します。 - - これには、レジャーインデックス、前に検証済みのレジャーの識別ハッシュ(このレジャーの「親」)、このレジャーバージョンの予定終了時刻、このレジャーの内容の暗号化ハッシュなどのデータが含まれます。 - -5. 新しいレジャーバージョンの識別用ハッシュを計算します。 - - -[![図7: XRP Ledgerサーバーでレジャー検証を計算する](img/consensus-calculate-validation.ja.png)](img/consensus-calculate-validation.ja.png) - -_図7: XRP Ledgerサーバーでレジャー検証を計算する - 各サーバーは、同意済みのトランザクションを前の検証済みレジャーに適用します。バリデータは結果をネットワーク全体に送信します。_ - -#### 結果を比較する - -バリデータはそれぞれ、計算したレジャーバージョンのハッシュを含む署名付きメッセージの形式で結果を中継します。 _検証_ と呼ばれるこれらのメッセージによって、各サーバーで計算したレジャーとそのピアのレジャーを比較することができます。 - -[![図8: 過半数のピアが同じ結果を計算するとレジャーが検証される](img/consensus-declare-validation.ja.png)](img/consensus-declare-validation.ja.png) - -_図8: 過半数のピアが同じ結果を計算するとレジャーが検証される - 各サーバーは、計算されたレジャーを、選択されたバリデータから受け取ったハッシュと比較します。一致しない場合、サーバーは正しいレジャーを再計算または取得する必要があります。_ - -ネットワーク内のサーバーは、圧倒的多数のピアが同じ検証ハッシュに署名してそれをブロードキャストしたときに、そのレジャーインスタンスを検証済みと認識します 7。それ以降のトランザクションは、シーケンス番号N+1の更新および検証済みのこのレジャーに適用されます。 - -サーバーが少数で、ピアと異なるレジャーを計算した場合、計算したレジャーは無視されます8。正しいレジャーを再計算するか、必要に応じて正しいレジャーを取得します。 - -ネットワークで、検証に関する過半数の同意が得られない場合、コンセンサスプロセスで一貫した提案を作成するにはトランザクション量が多すぎるか、ネットワーク遅延が大きすぎることを意味します。この場合、サーバーはコンセンサスプロセスを繰り返します。コンセンサスが始まってから時間が経過するにつれて、各コンセンサスラウンドで不一致は減少するため、過半数のサーバーが同じ候補トランザクションのセットを受け取った可能性が高くなります。XRP Ledgerは、これらの状況に応じて[トランザクションコスト](transaction-cost.html)と、コンセンサスを待つ時間を動的に調整します。 - -検証について過半数の合意が得られると、サーバーは検証済みの新しいレジャー、シーケンス番号N+1との作業に入ることができます。最後のラウンドに含まれなかった候補トランザクションと、その間に送信された新しいトランザクションに対して、コンセンサスと検証プロセスが繰り返されます9。 - - -## 要点 - -XRP Ledgerに送信されたトランザクションはすぐには処理されません。一定期間、各トランザクションは候補状態になります。 - -単一トランザクションのライフサイクルは次のとおりです。 - -- アカウント所有者によってトランザクションが作成され、署名されます。 -- トランザクションがネットワークに送信されます。 - - 書式が正しくないトランザクションはその場で拒否される可能性があります。 - - 書式が正しいトランザクションは暫定的に成功し、その後で失敗する可能性があります。 - - 書式が正しトランザクションは暫定的に失敗し、その後で成功する可能性があります。 -- コンセンサスの間、トランザクションはレジャーに含まれます。 - - コンセンサスラウンドが成功すると、レジャーが有効になります。 - - コンセンサスラウンドが失敗すると、成功するまでコンセンサスプロセスが繰り返されます。 -- 検証済みレジャーには、トランザクションとレジャーの状態への反映が含まれます。 - -アプリケーションでは、候補トランザクションの暫定的な結果ではなく、検証済みのレジャーの情報のみを信頼してください。一部の[`rippled` API](rippled-api.html)では、トランザクションの暫定的な結果が最初に返されます。そのトランザクションが検証済みのレジャーに含まれている場合、またはトランザクションに`LastLedgerSequence`が含まれ、そのシーケンス番号以下の検証済みのレジャーにそのトランザクションが出現しない場合にのみ、トランザクションの結果は不変になります。 - -トランザクションを送信するアプリケーションのベストプラクティスは次のとおりです。 - -- `LastLedgerSequence`パラメーターを使用して、トランザクションが確定的かつ迅速な方法で検証されるか、失敗するようにします。 -- 検証されたレジャーでトランザクションの結果を確認します。 - - トランザクションを含むレジャーが検証されるか、`LastLedgerSequence`が経過するまで、結果は暫定的です。 - - 結果コードが**tesSUCCESS**で`"validated": true`のトランザクションは、恒久的に成功しています。 - - 結果コードがそれ以外の場合で`"validated": true`のトランザクションは、恒久的に失敗しています。 - - トランザクションの`LastLedgerSequence`によって識別された検証済みレジャーを含め、これまでの検証済みのレジャーに出現しないトランザクションは、恒久的に失敗しています。 - - このようなケースを検出するために、レジャーの継続的な履歴を有するサーバーを使用には注意してください10。 - - `LastLedgerSequence`で識別されるレジャーが検証されるまで、トランザクションの状態を繰り返し確認する必要がある場合があります。 - -## その他のリソース - -- [コンセンサスホワイトペーパー](https://ripple.com/files/ripple_consensus_whitepaper.pdf) -- [レジャーフォーマットのリファレンス](ledger-data-formats.html) -- [Ripple コンセンサスの動画](https://www.youtube.com/watch?v=pj1QVb1vlC0) -- [信頼できるトランザクションの送信](reliable-transaction-submission.html) - - - -## 脚注 - -1 – **tec**結果コードを含むトランザクションでは、リクエストされたアクションは実行されませんが、レジャーには影響します。ネットワークの悪用を防ぎ、トランザクションの分散コストを賄うために、XRPのトランザクションコストが消却されます。同じ送信者によって同時に送信された他のトランザクションをブロックしないようにするには、送信者のアカウントのシーケンス番号を都度増やしてゆきます。期限切れのオブジェクトや資金のない取引注文を削除するなどのメンテナンスも行います。 - -2 – 例えば、Aliceが100ドルを持っていて、全額をBobに送信するシナリオを考えてみましょう。アプリケーションは最初にPaymentトランザクションを送信し、Aliceの残高を確認したらすぐにAPIから0ドルが返されます。この値は、候補トランザクションの暫定結果に基づいています。支払いが失敗し、Aliceの残高が100ドルのままになる(または他のトランザクションによって別の金額になる)場合があります。AliceからBobへの支払いが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ結果コードが**tesSUCCESS**になるまで、トランザクションの状況を確認することです。トランザクションが有効なレジャーにあるが、結果コードが異なる場合、支払いは失敗したことを意味します。 - -3 – 厳密に言えば、バリデータは追跡サーバーのサブセットです。同じ機能を提供することに加えて、「検証」メッセージを送信します。追跡サーバーは、レジャー履歴全体を保持しているか、部分的なレジャー履歴を保持しているかによって、さらに分類することができます。 - -4 – トランザクションを認識したピアの割合(%)がしきい値を下回った場合、コンセンサスのラウンドは失敗します。各ラウンドは反復プロセスです。第1ラウンドの開始時には、少なくともピアの50%が同意する必要があります。コンセンサスラウンドの最終的なしきい値は80%の合意です。これらの具体的な値は変更される可能性があります。 - -5 –各サーバーは独自の信頼できるバリデータを定義しますが、ネットワークの一貫性は、様々なサーバーで重複の度合いが高いバリデータのリストが選択されるかどうかにかかっています。このため、Rippleでは推奨するバリデータのリストを公開しています。 - -6 – 共謀しないとされるバリデータからだけでなくすべてのバリデータからの提案が評価される場合は、悪意のある攻撃者によって、無効なトランザクションが導入されたり、提案から有効なトランザクションが除外されたりする可能性があります。選択されたバリデータリストによって、[Sybil攻撃](consensus-protections.html#sybil-attacks)から保護することができます。 - -7 – 2014年11月の時点で、圧倒的多数を表すしきい値として、少なくともピアの80%が検証すべきレジャーに同意する必要があります。これは、コンセンサスのラウンドで要求される割合と同じです。いずれのしきい値も変更される可能性があり、同じである必要はありません。 - -8 – 実際には、サーバーは自身が少数であることを検知してから、すべてのピアの検証を受け取ります。ピアの20%以上から不一致の検証を受け取ると、その検証がしきい値の80%を満たしていないことが分かります。その時点で、レジャーの再計算を始めることができます。 - -9 – 実際には、効率的に実行できるように、検証の完了前に新しいコンセンサスのラウンドが開始されます。 - -10 – `rippled`サーバーはレジャーの履歴全体がなくてもAPIリクエストに応答することができます。サービスやネットワーク接続が中断すると、そのサーバーのレジャー履歴にレジャーの不足や誤差が生じることがあります。時間の経過とともに、`rippled`によってその誤差は埋まります(そのように設定されている場合)。欠落しているトランザクションを検証する場合は、トランザクションが送信されてからLastLedgerSequenceまでの連続した完全なレジャーを持つサーバーに照らして検証することが重要です。特定のサーバーで利用できるcomplete_ledgersを判断するには、RPCサーバーの状態を使用します。 +# コンセンサス + +_著者: Dave Cohen、David Schwartz、Arthur Britto_ + +この記事では、XRP Ledgerの概要や格納される情報、[トランザクション](transaction-formats.html)によってレジャー(台帳)が変化する様子について説明します。 + +XRP Ledger上でアプリケーションを構築する場合は、XRP Ledger APIの動作や、その動作によってもたされる影響を知っておくために、このプロセスを理解することが重要です。 + + +## まえがき + +ピアツーピアサーバーのXRP Ledgerネットワークは世界で共有されている台帳であり、ここから、アプリケーションはこの台帳の内容の状態に関して信頼できる情報を得ることができます。この状態に関する情報には以下の内容が含まれます。 + +- 各[アカウント](accounts.html)の設定 +- XRPおよび[発行済み通貨](issued-currencies.html)の残高 +- 分散型取引所でのオファー(注文) +- ネットワーク設定(例: [トランザクションコスト](transaction-cost.html)と[準備金](reserves.html)の金額) +- タイムスタンプ + +レジャーバージョンに含まれるデータの詳細な技術説明については、[レジャーフォーマットのリファレンス](ledger-data-formats.html)を参照してください。 + +[![図1: XRP Ledgerの要素](img/anatomy-of-a-ledger-complete.ja.png)](img/anatomy-of-a-ledger-complete.ja.png) + +_図1: XRP Ledgerの要素_ + +XRP Ledgerでは、数秒ごとに新しいレジャーバージョンが作成されます。あるレジャーバージョンの内容にネットワークが同意すると、そのレジャーバージョンは _検証済み_ となり、その内容が変更されることはありません。それ以前の検証済みのレジャーバージョンによって、レジャー履歴が形成されます。検証済みの最新のレジャーも、少し前の時点のネットワークの状態を表しており、履歴の一部となります。現時点で、ネットワークは次のレジャーバージョンに適用されてファイナライズされる可能性のあるトランザクションを評価しています。この評価が行われている間、ネットワークには、検証前のレジャーバージョン候補が存在します。 + +[![図2: XRP Ledgerのシーケンスと履歴](img/ledger-history.ja.png)](img/ledger-history.ja.png) + +_図2: XRP Ledgerのシーケンスと履歴_ + +レジャーバージョンには2つの識別子があります。1つは _レジャーインデックス_ で、 _シーケンス番号_ とも呼ばれます。レジャーバージョンの番号は1つずつ増加します。例えば、現行のレジャーバージョンのレジャーインデックスが100の場合、1つ前はレジャーインデックス99、1つ後はレジャーインデックスは101です。もう1つの識別子は _レジャーハッシュ_ で、レジャーの内容のデジタル指紋を表します。 + +サーバーがレジャーに適用するトランザクションを提案するときに、内容がわずかに異なる複数の候補レジャーバージョンが作成される場合があります。このような候補レジャーバージョンでは、レジャーインデックスは同じですがレジャーハッシュが異なります。多くの候補のうち、検証済みとなるのは1つだけです。それ以外の候補レジャーバージョンはすべて、破棄されます。そのため、履歴内の各レジャーインデックスに対して存在する検証済みのレジャーハッシュは1つのみです。 + +レジャーに対するユーザーレベルの変更は、トランザクションによってなされます。[トランザクション](transaction-formats.html)の例としては、決済、アカウントの設定またはトラストラインの変更、取引のオファー(注文)などがあります。各トランザクションは、レジャーに対する1つ以上の変更を承認するものであり、アカウント所有者によって暗号署名されます。アカウントの変更を承認したり、レジャーのそれ以外の内容を変更したりするには、トランザクションによるしかありません。 + +各レジャーバージョンには、一連のトランザクションと、そのようなトランザクションに関するメタデータも含まれています。それらのトランザクションは、新しいレジャーバージョンを作成するために前のバージョンのレジャーに適用されたものです。メタデータには、レジャーの状態データに対する、トランザクションの影響が正確に記録されています。 + +[![図3: レジャーバージョンに適用されるトランザクション](img/ledger-changes.ja.png)](img/ledger-changes.ja.png) + +_図3: レジャーバージョンに適用されるトランザクション_ + +レジャーインスタンスに含まれる一連のトランザクションはそのレジャーに記録され、XRP Ledger履歴の監査を可能としています。レジャーN+1のアカウント残高がレジャーNのアカウント残高と異なる場合、レジャーN+1にはその変更の原因となったトランザクションが含まれます。 + +検証済みのレジャー内に出現するトランザクションは、レジャーの変更に成功したか、または要求されたアクションを実行せずに処理された可能性があります。成功したトランザクションには、要求された変更がレジャーに適用されたことを示す**tesSUCCESS** [結果コード](transaction-results.html)が含まれます。レジャー内の失敗したトランザクションには、**tec**クラスの結果コードが含まれます。1 + +レジャーに含まれるトランザクションでは必ず、[トランザクションコスト](transaction-cost.html)として一部のXRPが消却されます。この場合、**tes**コードまたは**tec**コードが含まれていたかどうかは関係ありません。消却するXRPの正確な量は、署名されたトランザクションの手順で定義されます。 + +**tes**クラスや**tec**クラスの結果コード以外に、**ter**クラス、**tef**クラス、および**tem**クラスのコードがあります。後者の3つは、APIの呼び出しによって返された暫定的な失敗を示します。レジャーには、**tes**および**tec**のコードのみ表示されます。レジャーに含まれていないトランザクションによって、レジャーの状態(XRP残高を含む)が影響を受けることはありませんが、暫定的に失敗したトランザクションが後で成功する可能性があります。 + +[`rippled` API](rippled-api.html)を使用する場合、レジャーに含めるように提案された候補トランザクションと、検証済みのレジャーに含まれる検証済みのトランザクションをアプリケーションで区別する必要があります。検証済みのレジャー内にあるトランザクションの結果のみが不変です。検証済みのレジャーには、候補トランザクションが含まれる場合と含まれない場合があります。 + +重要: 一部の[`rippled` API](rippled-api.html)では、候補トランザクションに基づき暫定的な結果が返されます2。アプリケーションで、トランザクションの最終的な結果を判断する目的で暫定的な結果を使用するのは望ましくありません。最終的にトランザクションが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ、結果コードがtesSUCCESSになるまで、トランザクションの状況を確認することです。トランザクションが検証済みレジャー内にあるが、結果コードがそれ以外の場合、トランザクションの失敗を意味します。トランザクションの[`LastLedgerSequence`](transaction-common-fields.html)で指定されたレジャーが検証済みにもかかわらず、そのトランザクションがそのレジャーまたはそれ以前の他のレジャー内にない場合、トランザクションは失敗しており、どのレジャーにも表示されません。検証済みのレジャー内に表示されるトランザクションの場合にのみ、結果は最終的なものとなります。それ以外の場合、このドキュメントで後述するように、`LastLedgerSequence`の制限により、表示されることはありません。 + +## XRP Ledgerプロトコル - コンセンサスと検証 + +ピアツーピアのXRP Ledgerネットワークは、トランザクションを承認して処理する多数の独立したXRP Ledgerサーバー(通常、[`rippled`](the-rippled-server.html)を実行)で構成されています。クライアントアプリケーションは、トランザクションに署名してXRP Ledgerサーバーに送信します。サーバーは、これらの候補トランザクションを処理するためにネットワーク内を中継します。クライアントアプリケーションには、モバイルおよびウェブウォレット、金融機関へのゲートウェイ、電子取引プラットフォームなどがあります。 + +[![図4: XRP Ledgerプロトコルの参加者](img/xrp-ledger-network.ja.png)](img/xrp-ledger-network.ja.png) + +_図4: XRP Ledgerプロトコルの参加者_ + +トランザクションを受信、中継、処理するサーバーは、追跡サーバーとバリデータのいずれかです。追跡サーバーの主な機能には、クライアントからのトランザクションの分散やレジャーに関する照会への応答が含まれます。検証サーバーは、追跡サーバーと同じ機能を実行し、さらにレジャーのシーケンスを進めます3。 + +クライアントアプリケーションによって送信されたトランザクションを受け入れるときに、各追跡サーバーは最後に検証されたレジャーを開始点として使用します。受け入れられたトランザクションは候補トランザクションとなります。サーバーから候補トランザクションがそれぞれのピアに中継され、候補トランザクションがネットワーク全体に伝達されます。理想的には、各候補トランザクションはすべてのサーバーに伝達される必要があります。その結果、各サーバーは最後に検証されたレジャーに同じ一連のトランザクションを適用できる可能性が高くなります。しかし、トランザクションが伝達されるまでには時間がかかるため、サーバーは常に同じ候補トランザクションを処理するわけではありません。このことを考慮に入れて、XRP Ledgerでは、コンセンサスと呼ばれるプロセスを使用して、同一のトランザクションが処理され、ピアツーピアのXRP Ledgerネットワーク全体で検証済みのレジャーの一貫性が確保できるようにしています。 + +### コンセンサス + +ネットワーク内のサーバーは、候補トランザクションに関する情報を共有します。コンセンサスプロセスを通じて、バリデータは、候補トランザクションの特定のサブセットが次のレジャーで考慮されることに同意します。コンセンサスとは、サーバーが提案や一連の候補トランザクションを中継する反復プロセスです。サーバーは、選択されたバリデータの過半数4が同じ候補トランザクションのセットについて合意するまで、提案の通信と更新を行います。 + +コンセンサスの間、各サーバーは、そのサーバーの信頼できるバリデータ(_ユニークノードリスト(UNL)_)と呼ばれる特定のサーバー群からの提案を評価します。5信頼できるバリデータとは、提案を評価するサーバーを欺こうと共謀しない、全体として「信頼できる」ネットワークのサブセットを表します。この「信頼」の定義では、選択された個々のバリデータが信頼されている必要はありません。バリデータの選択は、ネットワークに中継されたデータを改ざんする組織的な試みで共謀しないという想定に基づいて行われます6 + +[![図5: バリデータによるトランザクションセットの提案と修正](img/consensus-rounds.ja.png)](img/consensus-rounds.ja.png) + +_図5: バリデータによるトランザクションセットの提案と修正 - コンセンサスの開始時点で、バリデータ毎に異なるトランザクションセットを持っている可能性があります。後のラウンドで、サーバーは現在の提案を信頼できるバリデータの提案と一致するように変更します。このプロセスでは、現在議論しているレジャーバージョンに適用するトランザクションと、それ以降のレジャーバージョンに適用するトランザクションを決定します。_ + +合意済みの提案に含まれていない候補トランザクションは、その後も候補トランザクションとして残ります。これらは次のレジャーバージョンで再度検討される可能性があります。通常、1つのレジャーバージョンから除外されたトランザクションは、次のレジャーバージョンに含まれます。 + +状況によっては、いつまでもコンセンサスに達することができないトランザクションもあります。そのような状況として、ネットワークが、必要な[トランザクションコスト](transaction-cost.html)を、トランザクションで指定されたものよりも高い値に変更している場合が考えられます。将来のある時点でこの手数料が引き下げられると、そのトランザクションが成功する可能性があります。トランザクションの成功または失敗が一定時間内に確定するように、トランザクションが特定のレジャーインデックスによって一定時間処理されない場合は期限切れになるように設定することができます。詳細については、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 + +### 検証 + +検証は、全体のコンセンサスプロセスの第2段階です。このプロセスでは、すべてのサーバーで同じ結果が得られたことを確認し、あるレジャーバージョンが最終バージョンとして宣言されます。まれに、第一段階の[コンセンサスプロセスが失敗する場合](consensus-principles-and-rules.html#コンセンサス失敗の可能性)があります。検証によって後で確認が行われるため、サーバーは結果を確認し、それに応じて対処することができます。 + +検証は、大きく分けて次の2つの部分に分かれます。 + +- 合意済みのトランザクションセットから結果として生じるレジャーバージョンを計算する。 +- 結果を比較し、十分に信頼できるバリデータが同意した場合はレジャーバージョンの検証済みを宣言する。 + +#### 検証の計算と共有 + +コンセンサスプロセスが完了すると、各サーバーは合意済みの一連のトランザクションから新しいレジャーを個別に計算します。各サーバーは、同じ規則に従って結果を次のように計算します。 + +1. 一つ前の検証済みのレジャーから始めます。 + +2. すべてのサーバーが同じ方法で処理できるように、合意済みのトランザクションセットを _正規順序_ で並べ変えます。 + + [正規順序](https://github.com/ripple/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/src/ripple/app/misc/CanonicalTXSet.cpp#L25-L36)は、トランザクションを受け取った順序ではありません(サーバーが同じトランザクションを異なる順序で受け取る可能性があるため)。参加者がトランザクションの順序付けで競合しないように、故意に操作するのが困難な正規順序を使います。 + +3. 指示に従って、各トランザクションを順番に処理します。それに応じてレジャーの状態データを更新します。 + + トランザクションを正常に実行できない場合は、[`tec`クラス結果コード](tec-codes.html)を持つトランザクションを含めます。1 + + 特定の「再試行可能な」トランザクションの失敗に対しては、同じレジャーバージョンの他のトランザクションが実行された後に再試行されるように、そのトランザクションを正規順序の最後に移動します。 + +4. 適切なメタデータでレジャーヘッダーを更新します。 + + これには、レジャーインデックス、前に検証済みのレジャーの識別ハッシュ(このレジャーの「親」)、このレジャーバージョンの予定終了時刻、このレジャーの内容の暗号化ハッシュなどのデータが含まれます。 + +5. 新しいレジャーバージョンの識別用ハッシュを計算します。 + + +[![図7: XRP Ledgerサーバーでレジャー検証を計算する](img/consensus-calculate-validation.ja.png)](img/consensus-calculate-validation.ja.png) + +_図7: XRP Ledgerサーバーでレジャー検証を計算する - 各サーバーは、同意済みのトランザクションを前の検証済みレジャーに適用します。バリデータは結果をネットワーク全体に送信します。_ + +#### 結果を比較する + +バリデータはそれぞれ、計算したレジャーバージョンのハッシュを含む署名付きメッセージの形式で結果を中継します。 _検証_ と呼ばれるこれらのメッセージによって、各サーバーで計算したレジャーとそのピアのレジャーを比較することができます。 + +[![図8: 過半数のピアが同じ結果を計算するとレジャーが検証される](img/consensus-declare-validation.ja.png)](img/consensus-declare-validation.ja.png) + +_図8: 過半数のピアが同じ結果を計算するとレジャーが検証される - 各サーバーは、計算されたレジャーを、選択されたバリデータから受け取ったハッシュと比較します。一致しない場合、サーバーは正しいレジャーを再計算または取得する必要があります。_ + +ネットワーク内のサーバーは、圧倒的多数のピアが同じ検証ハッシュに署名してそれをブロードキャストしたときに、そのレジャーインスタンスを検証済みと認識します 7。それ以降のトランザクションは、シーケンス番号N+1の更新および検証済みのこのレジャーに適用されます。 + +サーバーが少数で、ピアと異なるレジャーを計算した場合、計算したレジャーは無視されます8。正しいレジャーを再計算するか、必要に応じて正しいレジャーを取得します。 + +ネットワークで、検証に関する過半数の同意が得られない場合、コンセンサスプロセスで一貫した提案を作成するにはトランザクション量が多すぎるか、ネットワーク遅延が大きすぎることを意味します。この場合、サーバーはコンセンサスプロセスを繰り返します。コンセンサスが始まってから時間が経過するにつれて、各コンセンサスラウンドで不一致は減少するため、過半数のサーバーが同じ候補トランザクションのセットを受け取った可能性が高くなります。XRP Ledgerは、これらの状況に応じて[トランザクションコスト](transaction-cost.html)と、コンセンサスを待つ時間を動的に調整します。 + +検証について過半数の合意が得られると、サーバーは検証済みの新しいレジャー、シーケンス番号N+1との作業に入ることができます。最後のラウンドに含まれなかった候補トランザクションと、その間に送信された新しいトランザクションに対して、コンセンサスと検証プロセスが繰り返されます9。 + + +## 要点 + +XRP Ledgerに送信されたトランザクションはすぐには処理されません。一定期間、各トランザクションは候補状態になります。 + +単一トランザクションのライフサイクルは次のとおりです。 + +- アカウント所有者によってトランザクションが作成され、署名されます。 +- トランザクションがネットワークに送信されます。 + - 書式が正しくないトランザクションはその場で拒否される可能性があります。 + - 書式が正しいトランザクションは暫定的に成功し、その後で失敗する可能性があります。 + - 書式が正しトランザクションは暫定的に失敗し、その後で成功する可能性があります。 +- コンセンサスの間、トランザクションはレジャーに含まれます。 + - コンセンサスラウンドが成功すると、レジャーが有効になります。 + - コンセンサスラウンドが失敗すると、成功するまでコンセンサスプロセスが繰り返されます。 +- 検証済みレジャーには、トランザクションとレジャーの状態への反映が含まれます。 + +アプリケーションでは、候補トランザクションの暫定的な結果ではなく、検証済みのレジャーの情報のみを信頼してください。一部の[`rippled` API](rippled-api.html)では、トランザクションの暫定的な結果が最初に返されます。そのトランザクションが検証済みのレジャーに含まれている場合、またはトランザクションに`LastLedgerSequence`が含まれ、そのシーケンス番号以下の検証済みのレジャーにそのトランザクションが出現しない場合にのみ、トランザクションの結果は不変になります。 + +トランザクションを送信するアプリケーションのベストプラクティスは次のとおりです。 + +- `LastLedgerSequence`パラメーターを使用して、トランザクションが確定的かつ迅速な方法で検証されるか、失敗するようにします。 +- 検証されたレジャーでトランザクションの結果を確認します。 + - トランザクションを含むレジャーが検証されるか、`LastLedgerSequence`が経過するまで、結果は暫定的です。 + - 結果コードが**tesSUCCESS**で`"validated": true`のトランザクションは、恒久的に成功しています。 + - 結果コードがそれ以外の場合で`"validated": true`のトランザクションは、恒久的に失敗しています。 + - トランザクションの`LastLedgerSequence`によって識別された検証済みレジャーを含め、これまでの検証済みのレジャーに出現しないトランザクションは、恒久的に失敗しています。 + - このようなケースを検出するために、レジャーの継続的な履歴を有するサーバーを使用には注意してください10。 + - `LastLedgerSequence`で識別されるレジャーが検証されるまで、トランザクションの状態を繰り返し確認する必要がある場合があります。 + +## その他のリソース + +- [コンセンサスホワイトペーパー](https://ripple.com/files/ripple_consensus_whitepaper.pdf) +- [レジャーフォーマットのリファレンス](ledger-data-formats.html) +- [Ripple コンセンサスの動画](https://www.youtube.com/watch?v=pj1QVb1vlC0) +- [信頼できるトランザクションの送信](reliable-transaction-submission.html) + + + +## 脚注 + +1 – **tec**結果コードを含むトランザクションでは、リクエストされたアクションは実行されませんが、レジャーには影響します。ネットワークの悪用を防ぎ、トランザクションの分散コストを賄うために、XRPのトランザクションコストが消却されます。同じ送信者によって同時に送信された他のトランザクションをブロックしないようにするには、送信者のアカウントのシーケンス番号を都度増やしてゆきます。期限切れのオブジェクトや資金のない取引注文を削除するなどのメンテナンスも行います。 + +2 – 例えば、Aliceが100ドルを持っていて、全額をBobに送信するシナリオを考えてみましょう。アプリケーションは最初にPaymentトランザクションを送信し、Aliceの残高を確認したらすぐにAPIから0ドルが返されます。この値は、候補トランザクションの暫定結果に基づいています。支払いが失敗し、Aliceの残高が100ドルのままになる(または他のトランザクションによって別の金額になる)場合があります。AliceからBobへの支払いが成功したことを確実に知る唯一の方法は、そのトランザクションが検証済みのレジャー内にあり、かつ結果コードが**tesSUCCESS**になるまで、トランザクションの状況を確認することです。トランザクションが有効なレジャーにあるが、結果コードが異なる場合、支払いは失敗したことを意味します。 + +3 – 厳密に言えば、バリデータは追跡サーバーのサブセットです。同じ機能を提供することに加えて、「検証」メッセージを送信します。追跡サーバーは、レジャー履歴全体を保持しているか、部分的なレジャー履歴を保持しているかによって、さらに分類することができます。 + +4 – トランザクションを認識したピアの割合(%)がしきい値を下回った場合、コンセンサスのラウンドは失敗します。各ラウンドは反復プロセスです。第1ラウンドの開始時には、少なくともピアの50%が同意する必要があります。コンセンサスラウンドの最終的なしきい値は80%の合意です。これらの具体的な値は変更される可能性があります。 + +5 –各サーバーは独自の信頼できるバリデータを定義しますが、ネットワークの一貫性は、様々なサーバーで重複の度合いが高いバリデータのリストが選択されるかどうかにかかっています。このため、Rippleでは推奨するバリデータのリストを公開しています。 + +6 – 共謀しないとされるバリデータからだけでなくすべてのバリデータからの提案が評価される場合は、悪意のある攻撃者によって、無効なトランザクションが導入されたり、提案から有効なトランザクションが除外されたりする可能性があります。選択されたバリデータリストによって、[Sybil攻撃](consensus-protections.html#sybil-attacks)から保護することができます。 + +7 – 2014年11月の時点で、圧倒的多数を表すしきい値として、少なくともピアの80%が検証すべきレジャーに同意する必要があります。これは、コンセンサスのラウンドで要求される割合と同じです。いずれのしきい値も変更される可能性があり、同じである必要はありません。 + +8 – 実際には、サーバーは自身が少数であることを検知してから、すべてのピアの検証を受け取ります。ピアの20%以上から不一致の検証を受け取ると、その検証がしきい値の80%を満たしていないことが分かります。その時点で、レジャーの再計算を始めることができます。 + +9 – 実際には、効率的に実行できるように、検証の完了前に新しいコンセンサスのラウンドが開始されます。 + +10 – `rippled`サーバーはレジャーの履歴全体がなくてもAPIリクエストに応答することができます。サービスやネットワーク接続が中断すると、そのサーバーのレジャー履歴にレジャーの不足や誤差が生じることがあります。時間の経過とともに、`rippled`によってその誤差は埋まります(そのように設定されている場合)。欠落しているトランザクションを検証する場合は、トランザクションが送信されてからLastLedgerSequenceまでの連続した完全なレジャーを持つサーバーに照らして検証することが重要です。特定のサーバーで利用できるcomplete_ledgersを判断するには、RPCサーバーの状態を使用します。 diff --git a/content/concepts/consensus-network/fee-voting.ja.md b/content/concepts/consensus-network/fee-voting.ja.md index 284c3aa8c2..ebd170c1cf 100644 --- a/content/concepts/consensus-network/fee-voting.ja.md +++ b/content/concepts/consensus-network/fee-voting.ja.md @@ -1,40 +1,40 @@ -# 手数料投票 - -バリデータは、基本の[トランザクションコスト](transaction-cost.html)と[必要準備金](reserves.html)の変更について投票できます。バリデータの構成の設定がネットワークの現在の設定と異なる場合、バリデータはその設定をネットワークに定期的に公開します。定数のバリデータが変更に合意すると、変更を適用できるようになり、以後この変更が有効になります。バリデータはさまざまな理由から(特にXRPの価値の長期的な変化に適応するために)、この処理を行います。 - -[`rippled`バリデータ](run-rippled-as-a-validator.html)のオペレーターは、`rippled.cfg`ファイルの`[voting]`スタンザでトランザクションコストと必要準備金の設定を指定できます。 - -**注意:** 信頼できるバリデータの合意により不十分な必要準備金が採用された場合、XRP Ledgerピアツーピアネットワークがサービス拒否(DoS)攻撃を受ける可能性があります。 - -設定できるパラメーターは次の通りです。 - -| パラメーター | 説明 | 推奨される値 | -|-----------|-------------|-------------------| -| `reference_fee` | リファレンストランザクション(最も安価なトランザクション)を送信するときに消却する必要があるXRPの額( _drop_ 単位)。(1 XRP = 100万drop)実際のトランザクションコストはこの値の数倍であり、個々のサーバーの負荷に基づいて動的に調整されます。 | `10` (0.00001 XRP) | -| `account_reserve` | アカウントの準備金に必要なXRPの最小額( _drop_ 単位)。これは、レジャーの新しいアカウントへの資金供給のために送金できる最小額です。 | `20000000` (20 XRP) | -| `owner_reserve` | アドレスがレジャーで所有するオブジェクト _ごと_ に必要なXRPの額( _drop_ 単位)。 | `5000000` (5 XRP) | - -## 投票プロセス - -256番目の各レジャーは「フラグ」レジャーと呼ばれます。(フラグレジャーは`ledger_index` [modulo](https://en.wikipedia.org/wiki/Modulo_operation) `256`が`0`になるように定義されています。)フラグレジャーの直前のレジャーでは、アカウント準備金またはトランザクションコストの設定が現行のネットワーク設定と異なる各バリデータは、そのレジャー検証とともに「投票」メッセージを配信し、バリデータが希望する値を示します。 - -フラグレジャー自体では何も起こりませんが、バリデータは信頼する他のバリデータからの投票を受信して記録します。 - -他のバリデータの投票を集計した後、各バリデータは自身の設定と信頼する過半数のバリデータの設定の間で妥協点を探ります。(たとえば、あるバリデータが最小トランザクションコストを10から100に引き上げることを望む一方で、ほとんどのバリデータは10から20に引き上げることを望んでいる場合、そのバリデータは当該のコストを20に引き上げることにします。ただし、そのバリデータは10未満の値または100を超える値にすることはありません。)妥協できる場合、バリデータはフラグレジャーの直後のレジャーに対する提案に[SetFee疑似トランザクション](setfee.html)を挿入します。同じ変更を求める他のバリデータは、同じレジャーに対する各自の提案に同じSetFee疑似トランザクションを挿入します。(設定が既存のネットワーク設定と一致している場合、バリデータは何も行いません。)SetFee疑似トランザクションがコンセンサスプロセスを通過し、検証済みレジャーに追加される場合、SetFee疑似トランザクションで設定された新しいトランザクションコストと準備金の設定がその次のレジャーから有効になります。 - -まとめ: - -* **フラグレジャー-1**: バリデータが投票を送信します。 -* **フラグレジャー**: バリデータが投票を集計し、どのSetFeeの内容を含めるか決定します(存在する場合)。 -* **フラグレジャー+1**: バリデータは、SetFee疑似トランザクションを各自の提案レジャーに挿入します。 -* **フラグレジャー+2**: SetFee疑似トランザクションがコンセンサスに達すると、新しい設定が有効になります。 - -## 手数料の最大値 - -手数料の最大可能値は、[FeeSettingsレジャーオブジェクト](feesettings.html)に保管されている内部データ型により制限されます。これらの値は次のとおりです。 - -| パラメーター | 最大値(drop) | 最大値(XRP) -|-----------|-----------------------|----| -| `reference_fee` | 2**64 | (これまでに存在したXRP総額よりも大きい) | -| `account_reserve` | 2^32 drop | 約4294 XRP | -| `owner_reserve` | 2^32 drop | 約4294 XRP | +# 手数料投票 + +バリデータは、基本の[トランザクションコスト](transaction-cost.html)と[必要準備金](reserves.html)の変更について投票できます。バリデータの構成の設定がネットワークの現在の設定と異なる場合、バリデータはその設定をネットワークに定期的に公開します。定数のバリデータが変更に合意すると、変更を適用できるようになり、以後この変更が有効になります。バリデータはさまざまな理由から(特にXRPの価値の長期的な変化に適応するために)、この処理を行います。 + +[`rippled`バリデータ](run-rippled-as-a-validator.html)のオペレーターは、`rippled.cfg`ファイルの`[voting]`スタンザでトランザクションコストと必要準備金の設定を指定できます。 + +**注意:** 信頼できるバリデータの合意により不十分な必要準備金が採用された場合、XRP Ledgerピアツーピアネットワークがサービス拒否(DoS)攻撃を受ける可能性があります。 + +設定できるパラメーターは次の通りです。 + +| パラメーター | 説明 | 推奨される値 | +|-----------|-------------|-------------------| +| `reference_fee` | リファレンストランザクション(最も安価なトランザクション)を送信するときに消却する必要があるXRPの額( _drop_ 単位)。(1 XRP = 100万drop)実際のトランザクションコストはこの値の数倍であり、個々のサーバーの負荷に基づいて動的に調整されます。 | `10` (0.00001 XRP) | +| `account_reserve` | アカウントの準備金に必要なXRPの最小額( _drop_ 単位)。これは、レジャーの新しいアカウントへの資金供給のために送金できる最小額です。 | `20000000` (20 XRP) | +| `owner_reserve` | アドレスがレジャーで所有するオブジェクト _ごと_ に必要なXRPの額( _drop_ 単位)。 | `5000000` (5 XRP) | + +## 投票プロセス + +256番目の各レジャーは「フラグ」レジャーと呼ばれます。(フラグレジャーは`ledger_index` [modulo](https://en.wikipedia.org/wiki/Modulo_operation) `256`が`0`になるように定義されています。)フラグレジャーの直前のレジャーでは、アカウント準備金またはトランザクションコストの設定が現行のネットワーク設定と異なる各バリデータは、そのレジャー検証とともに「投票」メッセージを配信し、バリデータが希望する値を示します。 + +フラグレジャー自体では何も起こりませんが、バリデータは信頼する他のバリデータからの投票を受信して記録します。 + +他のバリデータの投票を集計した後、各バリデータは自身の設定と信頼する過半数のバリデータの設定の間で妥協点を探ります。(たとえば、あるバリデータが最小トランザクションコストを10から100に引き上げることを望む一方で、ほとんどのバリデータは10から20に引き上げることを望んでいる場合、そのバリデータは当該のコストを20に引き上げることにします。ただし、そのバリデータは10未満の値または100を超える値にすることはありません。)妥協できる場合、バリデータはフラグレジャーの直後のレジャーに対する提案に[SetFee疑似トランザクション](setfee.html)を挿入します。同じ変更を求める他のバリデータは、同じレジャーに対する各自の提案に同じSetFee疑似トランザクションを挿入します。(設定が既存のネットワーク設定と一致している場合、バリデータは何も行いません。)SetFee疑似トランザクションがコンセンサスプロセスを通過し、検証済みレジャーに追加される場合、SetFee疑似トランザクションで設定された新しいトランザクションコストと準備金の設定がその次のレジャーから有効になります。 + +まとめ: + +* **フラグレジャー-1**: バリデータが投票を送信します。 +* **フラグレジャー**: バリデータが投票を集計し、どのSetFeeの内容を含めるか決定します(存在する場合)。 +* **フラグレジャー+1**: バリデータは、SetFee疑似トランザクションを各自の提案レジャーに挿入します。 +* **フラグレジャー+2**: SetFee疑似トランザクションがコンセンサスに達すると、新しい設定が有効になります。 + +## 手数料の最大値 + +手数料の最大可能値は、[FeeSettingsレジャーオブジェクト](feesettings.html)に保管されている内部データ型により制限されます。これらの値は次のとおりです。 + +| パラメーター | 最大値(drop) | 最大値(XRP) +|-----------|-----------------------|----| +| `reference_fee` | 2**64 | (これまでに存在したXRP総額よりも大きい) | +| `account_reserve` | 2^32 drop | 約4294 XRP | +| `owner_reserve` | 2^32 drop | 約4294 XRP | diff --git a/content/concepts/consensus-network/parallel-networks.ja.md b/content/concepts/consensus-network/parallel-networks.ja.md index 4cecf1be28..392da66fc4 100644 --- a/content/concepts/consensus-network/parallel-networks.ja.md +++ b/content/concepts/consensus-network/parallel-networks.ja.md @@ -1,13 +1,13 @@ -# 並列ネットワーク - -大抵の場合、XRP Ledgerは1つの集合体であると説明され、これはほぼ真実です。本番環境のXRP Ledgerピアツーピアネットワークが1つ存在し、XRP Ledgerに記録されるすべての取引はその本番環境のネットワーク内で発生します。 - -ただし、場合によってはコアネットワークとの通信なしでテストや実験を行うことが求められます。このため、Rippleは「代替環境の」ネットワークとして[Ripple Test Net](xrp-test-net-faucet.html)を開始しました。Ripple Test Netは、XRP Ledgerユーザーによるビジネス処理に影響を及ぼすことなく、アプリケーションや`rippled`サーバー自体をテストできる環境として機能します。Ripple Test Net(AltNetとも呼ばれます)にはTestNet専用のXRPが供給されています。Rippleは、Test Netでのアプリケーション開発に関心のある当事者にこのTestNet専用XRPを[無料で提供](xrp-test-net-faucet.html)しています。 - -**注意:** Rippleはテストネットワークの安定性について一切保証しません。テストネットワークは、サーバー構成、ネットワークトポロジー、ネットワークパフォーマンスのさまざまな特性をテストする目的でこれまで使用され、またこれからも同様に使用されます。 - -今後は、特定の目的向けに小規模な臨時テストネットワークも導入される可能性があります。 - -## 並列ネットワークとコンセンサス - -使用するネットワークを定義する`rippled`の設定はありません。その代わり、信頼するバリデータのコンセンサスに基づいてどのレジャーを正しいレジャーとして受け入れるかを把握します。`rippled`インスタンスからなる異なるコンセンサスグループが、同じグループの他のメンバーだけを信頼する場合、各グループは引き続き並列ネットワークとして機能します。悪意のあるコンピューターや不適切に動作するコンピューターが両方のネットワークに接続している場合でも、各ネットワークのメンバーが、定数設定を超えて別のネットワークのメンバーを信頼するように設定されていない限り、コンセンサスプロセスに混乱は生じません。 +# 並列ネットワーク + +大抵の場合、XRP Ledgerは1つの集合体であると説明され、これはほぼ真実です。本番環境のXRP Ledgerピアツーピアネットワークが1つ存在し、XRP Ledgerに記録されるすべての取引はその本番環境のネットワーク内で発生します。 + +ただし、場合によってはコアネットワークとの通信なしでテストや実験を行うことが求められます。このため、Rippleは「代替環境の」ネットワークとして[Ripple Test Net](xrp-test-net-faucet.html)を開始しました。Ripple Test Netは、XRP Ledgerユーザーによるビジネス処理に影響を及ぼすことなく、アプリケーションや`rippled`サーバー自体をテストできる環境として機能します。Ripple Test Net(AltNetとも呼ばれます)にはTestNet専用のXRPが供給されています。Rippleは、Test Netでのアプリケーション開発に関心のある当事者にこのTestNet専用XRPを[無料で提供](xrp-test-net-faucet.html)しています。 + +**注意:** Rippleはテストネットワークの安定性について一切保証しません。テストネットワークは、サーバー構成、ネットワークトポロジー、ネットワークパフォーマンスのさまざまな特性をテストする目的でこれまで使用され、またこれからも同様に使用されます。 + +今後は、特定の目的向けに小規模な臨時テストネットワークも導入される可能性があります。 + +## 並列ネットワークとコンセンサス + +使用するネットワークを定義する`rippled`の設定はありません。その代わり、信頼するバリデータのコンセンサスに基づいてどのレジャーを正しいレジャーとして受け入れるかを把握します。`rippled`インスタンスからなる異なるコンセンサスグループが、同じグループの他のメンバーだけを信頼する場合、各グループは引き続き並列ネットワークとして機能します。悪意のあるコンピューターや不適切に動作するコンピューターが両方のネットワークに接続している場合でも、各ネットワークのメンバーが、定数設定を超えて別のネットワークのメンバーを信頼するように設定されていない限り、コンセンサスプロセスに混乱は生じません。 diff --git a/content/concepts/consensus-network/transaction-malleability.ja.md b/content/concepts/consensus-network/transaction-malleability.ja.md index f648c90d1f..e5baa49c5f 100644 --- a/content/concepts/consensus-network/transaction-malleability.ja.md +++ b/content/concepts/consensus-network/transaction-malleability.ja.md @@ -1,147 +1,147 @@ -# トランザクション展性 - -署名後のトランザクションを、署名に使用されたキーを使用せずに変更できる場合、そのトランザクションには「展性がある」ことになります。XRP Ledgerでは、署名付きトランザクションの**機能性**は変更できませんが、場合によっては第三者がトランザクションの署名と識別用ハッシュを変更できる _可能性があります_ 。 - -展性のあるトランザクションは元のハッシュでのみ実行できると想定して、脆弱なソフトウェアが展性のあるトランザクションを送信した場合、トランザクションの状況を把握できなくなる可能性があります。最悪の場合、不正使用者がこの点を悪用して脆弱なシステムから資金を盗むことが可能です。 - -次の2つの状況は、トランザクション展性の問題につながる可能性があります。 - -1. デフォルトの署名アルゴリズム(ECDSAとsecp256k1曲線)を使用して署名されたトランザクションにtfFullyCanonicalSigフラグが指定されていない。 - - **[tfFullyCanonicalSigフラグ](transaction-common-fields.html#グローバルフラグ)を使用** して、トランザクションに展性がないことを保証します。[Ed25519キーで署名されている](cryptographic-keys.html#署名アルゴリズム)トランザクションはこの問題に対して脆弱ではありませんが、 _すべての_ トランザクションにこのフラグを使用しても **特に不都合はありません** 。 - -2. トランザクションが[マルチ署名済み](multi-signing.html)であり、署名の数が必要以上に多い場合。元々トランザクションに必要な数を上回る署名がされていなかった場合でも、権限のある署名者が追加の署名を提供すると、このトランザクションが展性を得ることがあります。 - - 適切な運用セキュリティ対策を導入することで、このような問題を防ぐことができます。ガイドラインについては、[マルチ署名の展性の緩和対策](#マルチ署名の展性の緩和対策)を参照してください。 - - -## 背景 - -XRP Ledgerでは、以下の条件に該当しない場合にはトランザクションを実行できません。 - -- 署名自体を除く[トランザクションのすべてのフィールド](transaction-common-fields.html)に署名がなされている。 -- トランザクションの署名に使用されるキーペアが、[そのアカウントの代理としてトランザクションを送信することが承認されている](transaction-basics.html#取引の承認)。 -- 署名は _正規_ であり、トランザクションの指示に一致している。 - -署名付きフィールドに変更を加えると、どれほど小さな変更であっても署名が無効となるため、署名自体を除き、トランザクションのいかなる部分にも展性が生じることはありません。ほとんどの場合、署名自体を変更すると常に署名が無効になりますが、以下で説明するような特定の例外があります。 - -署名はトランザクションの識別用ハッシュの計算に使用されるデータの1つであるため、展性のあるトランザクションを変更すると、ハッシュ値が変わります。 - -### 代替secp256k1署名 - -「正規」であるためには、ECDSAアルゴリズムとsecp256k1曲線(デフォルト)を使用して作成された署名が以下の要件を満たしている必要があります。 - -- 署名が適切な[DERエンコードデータ](https://en.wikipedia.org/wiki/X.690#DER_encoding)である必要があります。 -- 署名ではDERエンコードデータ外部に埋め込みバイトがあってはなりません。 -- 署名を構成する整数はマイナスであってはならず、またsecp256k1係数以下でなければなりません。 - -一般に、あらゆる標準ECDSA実装ではこれらの要件が自動的に処理されます。ただしsecp256k1では、展性を防ぐにはこれらの要件では不十分です。したがってXRP Ledgerでは、同様の問題がない「完全に正規である」署名という概念を採用しています。 - -ECDSA署名はRおよびSと呼ばれる2つの整数で構成されています。secp256k1係数はNと呼ばれ、すべてのsecp256k1署名の定数です。具体的にはNは値`0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141`です。署名`(R,S)`では、署名`(R, N-S)`(Sの位置にN-Sを使用)も有効です。 - -このように、 _完全に_ 正規である署名を使用する場合には、2つの有効な値のうちどちらを使用するかを選択し、もう一方が無効であることを宣言する必要があります。XRP Ledgerの作成者は、2つの有効な値(`S`と`N-S`)のいずれか _小さい方_ を任意に選択すると決めました。トランザクションが選択された(小さな)値`S`を使用し、正規トランザクションとなるためのすべての標準ルールに準拠している場合、このトランザクションは _完全に正規_ であるとみなされます。 - -完全に正規である署名の生成が確実に行われていなかった古いソフトウェアとの互換性を維持するため、XRP Ledgerは完全に正規ではないトランザクションも受け入れます。新しいユーザーを悪用から保護するため、XRP Ledgerではトランザクション向けに[**tfFullyCanonicalSig**](transaction-common-fields.html#グローバルフラグ)というフラグがあります。このフラグが設定されている場合、トランザクションが有効となるには _完全に正規_ の署名を使用する必要があります。 - -完全に正規であるECDSA署名を計算するには、SとN-Sを比較していずれが小さいかを見極めて、トランザクションの`Signature`フィールドにその値を使用する必要があります。 - -Rippleが公開しているすべてのXRP Ledgerソフトウェア(`rippled`およびripple-lib/RippleAPIを含む)では、完全に正規である署名のみが生成されます。ユーザーの保護を強化するため、Rippleは、可能な限りデフォルトで**tfFullyCanonicalSig**フラグを有効にするようにコードを構成しています。XRP Ledgerソフトウェアのサードパーティ実装においても、完全に正規である署名だけを生成し、デフォルトでトランザクションのtfFullyCanonicalSigが有効にすることを強く推奨します。 - -次の2つの状況においては、RippleのXRP Ledgerの署名実装によってtfFullyCanonicalSigフラグが自動的に有効になりません。次の状況では、フラグを慎重に設定する必要があります。 - -- ユーザーがトランザクションの`Flags`フィールドを明示的に指定している場合。ビット単位のORを使用してtfFullyCanonicalSig _と_ その他の必要なすべてのフラグを適用します。 -- ユーザーがトランザクションにマルチ署名を提供する場合。マルチ署名の複数の参加者は _厳密に_ 同一のデータに署名する必要があるので、署名コードはtfFullyCanonicalSigフラグを追加するというトランザクションの指示を事前に処理しません。マルチ署名済みトランザクションでは、常にtfFullyCanonicalSigフラグを明示的に有効にしてください。 - - -### マルチ署名の展性 - -マルチ署名の明示的で重要な機能として、さまざまな設定によってトランザクションを有効にできるという機能があげられます。たとえば、5人の署名者のうち3人の署名者の署名によってトランザクションを承認できるようにアカウントを設定できます。ただしこの場合、有効なトランザクションにはいくつかのバリエーションが存在する可能性があり、識別用ハッシュは各バリエーションごとに異なります。 - -以下のケースはすべて、トランザクション展性の問題につながる可能性があります。 - -- トランザクションへの署名を1つ以上を削除しても、まだその定数を満たすのに十分な数の署名がある場合。第三者が署名を削除し、署名なしでトランザクションを再送信できる可能性があります。 -- すでに定数に達しているトランザクションに有効な署名を追加できる場合。このような署名を作成できるのは、送信側アカウントの権限のある署名者だけです。 -- 定数を維持しながら、あるトランザクションの署名を、別の有効な署名に置き換えることができる場合。このような署名を作成できるのは、送信側アカウントの権限のある署名者だけです。 - -権限のある署名者に意図的な悪意がない場合でも、混乱や不適切な調整が原因で、複数の署名者が同じトランザクションの異なる有効バージョンを送信することがあります。 - -#### マルチ署名の展性の緩和対策 - -**適切な運用セキュリティ対策を導入することで、このような問題を防ぐことができます。** 通常、以下のような適切な運用セキュリティ対策に従っていれば、マルチ署名でのトランザクション展性の問題を防ぐことができます。 - -- 必要な数以上の署名を収集しない。 -- 必要な数の署名を収集した後でトランザクションを作成する当事者を任命するか、または署名者が事前に定義された順序でトランザクション指示に署名して次に渡せるように「チェーン」を指定する。 -- マルチ署名リストに不要な署名者または信頼できない署名者を追加しない。これは、これらの署名者のキーに関連付けられている`weight`の値が、トランザクションの承認には不十分である場合にも該当する。 -- トランザクションが異なるハッシュまたは想定外の署名セットを使用して実行される可能性に対処できるよう備える。アカウントから送信されたトランザクションを注意深く監視する([account_txメソッド][]などを使用)。 -- アカウントの`Sequence`番号を監視する([account_infoメソッド][]などを使用)。この番号は、アカウントがトランザクションを正常に送信するたびに1ずつ増えますが、それ以外の状況で増えることはありません。番号が想定した番号と一致しない場合は、最近のトランザクションを調べてその原因を確認します。(展性のあるトランザクションの他にも、このような状況が発生することがあります。たとえばトランザクションを送信するように別のアプリケーションを設定する場合などです。不正使用者が秘密鍵にアクセスした可能性もあります。あるいは、アプリケーションでデータが失われ、送信済みのトランザクションが忘れられた可能性もあります。) -- トランザクションを再度作成してマルチ署名済みにする場合は、目的の処理がまだ実行されていないことを手動で確認している場合を除き、`Sequence`番号を変更 _しないでください_ 。 -- 署名前にtfFullyCanonicalSigフラグが有効であることを確認する。 - -セキュリティ強化のため、上記のガイドラインにより何重もの保護対策が講じられます。 - - -## 展性のあるトランザクションを使用した悪用 - -XRP Ledgerとのインフターフェイスに使用するソフトウェアから展性のあるトランザクションが送信されると、不正使用者がソフトウェアをだましてトランザクションの最終結果を確認できなくし、(最悪の場合)同額の支払いを複数回送金させることが可能になります。 - -シングルシグネチャーを使用していて、tfFullyCanonicalSigフラグを常に有効にしている場合には、このような悪用に対し脆弱ではありません。マルチ署名を使用していて、署名者が必要な数を超える署名を提供する場合には脆弱になります。 - -### 悪用シナリオの流れ - -脆弱なシステムを悪用するプロセスは、以下のような順で進みます。 - -1. 脆弱なシステムが、tfFullyCanonicalSigを有効にせずにトランザクションを生成し署名する。 - - トランザクションでtfFullyCanonicalSigフラグが有効に設定されない状況として以下の3つがあります。 - - - システムが`Flags`フィールドを明示的に指定し、このフィールドでtfFullyCanonicalSigビットが有効になっていない。 - - トランザクションがマルチ署名済みであり、tfFullyCanonicalSigフラグが明示的に有効にされていない。 - - システムでトランザクションのフィールドから`Flags`フィールドが省略されているが、署名時にtfFullyCanonicalSigを自動的に有効にしない非標準の実装が使用されている。 - - トランザクションがECDSAキーペアで署名されている場合、そのトランザクションは脆弱になります。マルチ署名済みの場合、トランザクションの署名に少なくとも1つのECDSAキーペアが使用される必要があります。 - - ほとんどの場合、脆弱なトランザクションには完全に正規である署名が使用されていますが、トランザクションが完全に正規ではない署名を使用していても、フラグはそのトランザクションが有効であると示します。また、限られた時間内に最終結果が判かるように、トランザクションで`LastLedgerSequence`が使用されていることもあります。 - -2. システムは脆弱なトランザクションの識別用ハッシュを確認し、そのハッシュをXRP Ledgerネットワークに送信し、検証済みレジャーバージョンにそのハッシュが記録されるのを監視し始めます。 - -3. 不正使用者は、トランザクションが確定する前にそのトランザクションがネットワークを通じて伝搬することを確認します。 - -4. 不正使用者が脆弱なトランザクションの代替署名を計算します。 - - 異なるトランザクション指示の署名を作成する場合とは異なり、この場合は大量の計算処理は不要です。最初に署名を生成する場合よりもかなり短い時間で完了する可能性があります。 - - 改ざんされた署名により、異なる識別用ハッシュが生成されます。(ネットワークに送信する前にハッシュを計算する必要はありませんが、ハッシュがあれば後でトランザクションのステータスを容易に確認できることを理解しています。) - -5. 不正使用者が改ざんした(完全に正規ではない可能性のある)トランザクションをネットワークに送信します。 - - これにより、当初送信されたトランザクションと、不正使用者によって送信された改ざんバージョンが「競争」します。この2つのトランザクションが同時に記録されることはありません。いずれのトランザクションも有効ですが、`Sequence`番号をはじめ厳密に同一のトランザクションデータを含んでいるので、検証済みレジャーに記録できるのは常にいずれか1つになります。 - - ピアツーピアネットワークのサーバーは、どちらが「最初に到着した」トランザクションであるか、またはどちらが元の送信者が意図したトランザクションであるかを認識できません。ネットワーク接続での遅延やその他の偶発的な事象により、バリデータはコンセンサス提案をファイナライズする時点で、いずれかのトランザクションだけを認識する結果になる可能性があります。この場合、いずれかのトランザクションが「競争に勝った」ことになります。 - - もし不正使用者がピアツーピアネットワークで適切に接続しているいくつかのサーバーを乗っ取れば、これらのサーバーがバリデータとして信頼されていなくても、非正規トランザクションを確定できる確率を高めることができます。 - - 脆弱なシステムからのトランザクションを唯一受信したサーバーを不正使用者が乗っ取った場合、不正使用者はネットワークの他の部分に配信されるバージョンを容易に制御できるようになります。 - -6. 不正ユーザーのトランザクションがコンセンサスに達し、検証済みレジャーに記録されます。 - - この時点でトランザクションは実行されており、このトランザクションを無効にすることはできません。その影響(XRPの送金など)は最終的です。本来のトランザクションは、その`Sequence`番号がすでに使用されているために有効ではなくなります。 - - XRP Ledgerでのトランザクションの影響は、本来のバージョンが実行された場合とまったく同じです。 - -7. 脆弱なシステムは、予期しているトランザクションハッシュを認識せず、トランザクションが実行されなかったという誤った結論に達します。 - - トランザクションに`LastLedgerSequence`フィールドが含まれている場合は、指定されたレジャーインデックスを経過した後でこの状況が発生します。 - - トランザクションで`LastLedgerSequence`フィールドが省略されている場合は、別の意味で誤っている可能性があります。つまり、同じ送信者からの他のトランザクションでは同じ`Sequence`番号が使用されていない場合、トランザクションはその後、時間の経過に関係なく、理論上成功します。(詳細は、[確実なトランザクションの送信](reliable-transaction-submission.html)を参照してください。) - -8. 脆弱なシステムは、トランザクションが失敗したと想定してアクションを実行します。 - - たとえば、XRP Ledgerで送金されていないと判断した資金についての責任を果たすため、システムで顧客の残高に返金します(または単に引き落としを行いません)。 - - さらに、脆弱なシステムがトランザクションを置き換えるために新しいトランザクションを生成し、ネットワークの現在の状態に基づいて新しい`Sequence`、`LastLedgerSequence`、および`Fee`パラメーターを選択し、その一方でトランザクションの残りの部分は本来のトランザクションと同じ状態で維持することがあります。この新しいトランザクションにも展性がある場合、システムは何度も同じように悪用される可能性があります。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トランザクション展性 + +署名後のトランザクションを、署名に使用されたキーを使用せずに変更できる場合、そのトランザクションには「展性がある」ことになります。XRP Ledgerでは、署名付きトランザクションの**機能性**は変更できませんが、場合によっては第三者がトランザクションの署名と識別用ハッシュを変更できる _可能性があります_ 。 + +展性のあるトランザクションは元のハッシュでのみ実行できると想定して、脆弱なソフトウェアが展性のあるトランザクションを送信した場合、トランザクションの状況を把握できなくなる可能性があります。最悪の場合、不正使用者がこの点を悪用して脆弱なシステムから資金を盗むことが可能です。 + +次の2つの状況は、トランザクション展性の問題につながる可能性があります。 + +1. デフォルトの署名アルゴリズム(ECDSAとsecp256k1曲線)を使用して署名されたトランザクションにtfFullyCanonicalSigフラグが指定されていない。 + + **[tfFullyCanonicalSigフラグ](transaction-common-fields.html#グローバルフラグ)を使用** して、トランザクションに展性がないことを保証します。[Ed25519キーで署名されている](cryptographic-keys.html#署名アルゴリズム)トランザクションはこの問題に対して脆弱ではありませんが、 _すべての_ トランザクションにこのフラグを使用しても **特に不都合はありません** 。 + +2. トランザクションが[マルチ署名済み](multi-signing.html)であり、署名の数が必要以上に多い場合。元々トランザクションに必要な数を上回る署名がされていなかった場合でも、権限のある署名者が追加の署名を提供すると、このトランザクションが展性を得ることがあります。 + + 適切な運用セキュリティ対策を導入することで、このような問題を防ぐことができます。ガイドラインについては、[マルチ署名の展性の緩和対策](#マルチ署名の展性の緩和対策)を参照してください。 + + +## 背景 + +XRP Ledgerでは、以下の条件に該当しない場合にはトランザクションを実行できません。 + +- 署名自体を除く[トランザクションのすべてのフィールド](transaction-common-fields.html)に署名がなされている。 +- トランザクションの署名に使用されるキーペアが、[そのアカウントの代理としてトランザクションを送信することが承認されている](transaction-basics.html#取引の承認)。 +- 署名は _正規_ であり、トランザクションの指示に一致している。 + +署名付きフィールドに変更を加えると、どれほど小さな変更であっても署名が無効となるため、署名自体を除き、トランザクションのいかなる部分にも展性が生じることはありません。ほとんどの場合、署名自体を変更すると常に署名が無効になりますが、以下で説明するような特定の例外があります。 + +署名はトランザクションの識別用ハッシュの計算に使用されるデータの1つであるため、展性のあるトランザクションを変更すると、ハッシュ値が変わります。 + +### 代替secp256k1署名 + +「正規」であるためには、ECDSAアルゴリズムとsecp256k1曲線(デフォルト)を使用して作成された署名が以下の要件を満たしている必要があります。 + +- 署名が適切な[DERエンコードデータ](https://en.wikipedia.org/wiki/X.690#DER_encoding)である必要があります。 +- 署名ではDERエンコードデータ外部に埋め込みバイトがあってはなりません。 +- 署名を構成する整数はマイナスであってはならず、またsecp256k1係数以下でなければなりません。 + +一般に、あらゆる標準ECDSA実装ではこれらの要件が自動的に処理されます。ただしsecp256k1では、展性を防ぐにはこれらの要件では不十分です。したがってXRP Ledgerでは、同様の問題がない「完全に正規である」署名という概念を採用しています。 + +ECDSA署名はRおよびSと呼ばれる2つの整数で構成されています。secp256k1係数はNと呼ばれ、すべてのsecp256k1署名の定数です。具体的にはNは値`0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141`です。署名`(R,S)`では、署名`(R, N-S)`(Sの位置にN-Sを使用)も有効です。 + +このように、 _完全に_ 正規である署名を使用する場合には、2つの有効な値のうちどちらを使用するかを選択し、もう一方が無効であることを宣言する必要があります。XRP Ledgerの作成者は、2つの有効な値(`S`と`N-S`)のいずれか _小さい方_ を任意に選択すると決めました。トランザクションが選択された(小さな)値`S`を使用し、正規トランザクションとなるためのすべての標準ルールに準拠している場合、このトランザクションは _完全に正規_ であるとみなされます。 + +完全に正規である署名の生成が確実に行われていなかった古いソフトウェアとの互換性を維持するため、XRP Ledgerは完全に正規ではないトランザクションも受け入れます。新しいユーザーを悪用から保護するため、XRP Ledgerではトランザクション向けに[**tfFullyCanonicalSig**](transaction-common-fields.html#グローバルフラグ)というフラグがあります。このフラグが設定されている場合、トランザクションが有効となるには _完全に正規_ の署名を使用する必要があります。 + +完全に正規であるECDSA署名を計算するには、SとN-Sを比較していずれが小さいかを見極めて、トランザクションの`Signature`フィールドにその値を使用する必要があります。 + +Rippleが公開しているすべてのXRP Ledgerソフトウェア(`rippled`およびripple-lib/RippleAPIを含む)では、完全に正規である署名のみが生成されます。ユーザーの保護を強化するため、Rippleは、可能な限りデフォルトで**tfFullyCanonicalSig**フラグを有効にするようにコードを構成しています。XRP Ledgerソフトウェアのサードパーティ実装においても、完全に正規である署名だけを生成し、デフォルトでトランザクションのtfFullyCanonicalSigが有効にすることを強く推奨します。 + +次の2つの状況においては、RippleのXRP Ledgerの署名実装によってtfFullyCanonicalSigフラグが自動的に有効になりません。次の状況では、フラグを慎重に設定する必要があります。 + +- ユーザーがトランザクションの`Flags`フィールドを明示的に指定している場合。ビット単位のORを使用してtfFullyCanonicalSig _と_ その他の必要なすべてのフラグを適用します。 +- ユーザーがトランザクションにマルチ署名を提供する場合。マルチ署名の複数の参加者は _厳密に_ 同一のデータに署名する必要があるので、署名コードはtfFullyCanonicalSigフラグを追加するというトランザクションの指示を事前に処理しません。マルチ署名済みトランザクションでは、常にtfFullyCanonicalSigフラグを明示的に有効にしてください。 + + +### マルチ署名の展性 + +マルチ署名の明示的で重要な機能として、さまざまな設定によってトランザクションを有効にできるという機能があげられます。たとえば、5人の署名者のうち3人の署名者の署名によってトランザクションを承認できるようにアカウントを設定できます。ただしこの場合、有効なトランザクションにはいくつかのバリエーションが存在する可能性があり、識別用ハッシュは各バリエーションごとに異なります。 + +以下のケースはすべて、トランザクション展性の問題につながる可能性があります。 + +- トランザクションへの署名を1つ以上を削除しても、まだその定数を満たすのに十分な数の署名がある場合。第三者が署名を削除し、署名なしでトランザクションを再送信できる可能性があります。 +- すでに定数に達しているトランザクションに有効な署名を追加できる場合。このような署名を作成できるのは、送信側アカウントの権限のある署名者だけです。 +- 定数を維持しながら、あるトランザクションの署名を、別の有効な署名に置き換えることができる場合。このような署名を作成できるのは、送信側アカウントの権限のある署名者だけです。 + +権限のある署名者に意図的な悪意がない場合でも、混乱や不適切な調整が原因で、複数の署名者が同じトランザクションの異なる有効バージョンを送信することがあります。 + +#### マルチ署名の展性の緩和対策 + +**適切な運用セキュリティ対策を導入することで、このような問題を防ぐことができます。** 通常、以下のような適切な運用セキュリティ対策に従っていれば、マルチ署名でのトランザクション展性の問題を防ぐことができます。 + +- 必要な数以上の署名を収集しない。 +- 必要な数の署名を収集した後でトランザクションを作成する当事者を任命するか、または署名者が事前に定義された順序でトランザクション指示に署名して次に渡せるように「チェーン」を指定する。 +- マルチ署名リストに不要な署名者または信頼できない署名者を追加しない。これは、これらの署名者のキーに関連付けられている`weight`の値が、トランザクションの承認には不十分である場合にも該当する。 +- トランザクションが異なるハッシュまたは想定外の署名セットを使用して実行される可能性に対処できるよう備える。アカウントから送信されたトランザクションを注意深く監視する([account_txメソッド][]などを使用)。 +- アカウントの`Sequence`番号を監視する([account_infoメソッド][]などを使用)。この番号は、アカウントがトランザクションを正常に送信するたびに1ずつ増えますが、それ以外の状況で増えることはありません。番号が想定した番号と一致しない場合は、最近のトランザクションを調べてその原因を確認します。(展性のあるトランザクションの他にも、このような状況が発生することがあります。たとえばトランザクションを送信するように別のアプリケーションを設定する場合などです。不正使用者が秘密鍵にアクセスした可能性もあります。あるいは、アプリケーションでデータが失われ、送信済みのトランザクションが忘れられた可能性もあります。) +- トランザクションを再度作成してマルチ署名済みにする場合は、目的の処理がまだ実行されていないことを手動で確認している場合を除き、`Sequence`番号を変更 _しないでください_ 。 +- 署名前にtfFullyCanonicalSigフラグが有効であることを確認する。 + +セキュリティ強化のため、上記のガイドラインにより何重もの保護対策が講じられます。 + + +## 展性のあるトランザクションを使用した悪用 + +XRP Ledgerとのインフターフェイスに使用するソフトウェアから展性のあるトランザクションが送信されると、不正使用者がソフトウェアをだましてトランザクションの最終結果を確認できなくし、(最悪の場合)同額の支払いを複数回送金させることが可能になります。 + +シングルシグネチャーを使用していて、tfFullyCanonicalSigフラグを常に有効にしている場合には、このような悪用に対し脆弱ではありません。マルチ署名を使用していて、署名者が必要な数を超える署名を提供する場合には脆弱になります。 + +### 悪用シナリオの流れ + +脆弱なシステムを悪用するプロセスは、以下のような順で進みます。 + +1. 脆弱なシステムが、tfFullyCanonicalSigを有効にせずにトランザクションを生成し署名する。 + + トランザクションでtfFullyCanonicalSigフラグが有効に設定されない状況として以下の3つがあります。 + + - システムが`Flags`フィールドを明示的に指定し、このフィールドでtfFullyCanonicalSigビットが有効になっていない。 + - トランザクションがマルチ署名済みであり、tfFullyCanonicalSigフラグが明示的に有効にされていない。 + - システムでトランザクションのフィールドから`Flags`フィールドが省略されているが、署名時にtfFullyCanonicalSigを自動的に有効にしない非標準の実装が使用されている。 + + トランザクションがECDSAキーペアで署名されている場合、そのトランザクションは脆弱になります。マルチ署名済みの場合、トランザクションの署名に少なくとも1つのECDSAキーペアが使用される必要があります。 + + ほとんどの場合、脆弱なトランザクションには完全に正規である署名が使用されていますが、トランザクションが完全に正規ではない署名を使用していても、フラグはそのトランザクションが有効であると示します。また、限られた時間内に最終結果が判かるように、トランザクションで`LastLedgerSequence`が使用されていることもあります。 + +2. システムは脆弱なトランザクションの識別用ハッシュを確認し、そのハッシュをXRP Ledgerネットワークに送信し、検証済みレジャーバージョンにそのハッシュが記録されるのを監視し始めます。 + +3. 不正使用者は、トランザクションが確定する前にそのトランザクションがネットワークを通じて伝搬することを確認します。 + +4. 不正使用者が脆弱なトランザクションの代替署名を計算します。 + + 異なるトランザクション指示の署名を作成する場合とは異なり、この場合は大量の計算処理は不要です。最初に署名を生成する場合よりもかなり短い時間で完了する可能性があります。 + + 改ざんされた署名により、異なる識別用ハッシュが生成されます。(ネットワークに送信する前にハッシュを計算する必要はありませんが、ハッシュがあれば後でトランザクションのステータスを容易に確認できることを理解しています。) + +5. 不正使用者が改ざんした(完全に正規ではない可能性のある)トランザクションをネットワークに送信します。 + + これにより、当初送信されたトランザクションと、不正使用者によって送信された改ざんバージョンが「競争」します。この2つのトランザクションが同時に記録されることはありません。いずれのトランザクションも有効ですが、`Sequence`番号をはじめ厳密に同一のトランザクションデータを含んでいるので、検証済みレジャーに記録できるのは常にいずれか1つになります。 + + ピアツーピアネットワークのサーバーは、どちらが「最初に到着した」トランザクションであるか、またはどちらが元の送信者が意図したトランザクションであるかを認識できません。ネットワーク接続での遅延やその他の偶発的な事象により、バリデータはコンセンサス提案をファイナライズする時点で、いずれかのトランザクションだけを認識する結果になる可能性があります。この場合、いずれかのトランザクションが「競争に勝った」ことになります。 + + もし不正使用者がピアツーピアネットワークで適切に接続しているいくつかのサーバーを乗っ取れば、これらのサーバーがバリデータとして信頼されていなくても、非正規トランザクションを確定できる確率を高めることができます。 + + 脆弱なシステムからのトランザクションを唯一受信したサーバーを不正使用者が乗っ取った場合、不正使用者はネットワークの他の部分に配信されるバージョンを容易に制御できるようになります。 + +6. 不正ユーザーのトランザクションがコンセンサスに達し、検証済みレジャーに記録されます。 + + この時点でトランザクションは実行されており、このトランザクションを無効にすることはできません。その影響(XRPの送金など)は最終的です。本来のトランザクションは、その`Sequence`番号がすでに使用されているために有効ではなくなります。 + + XRP Ledgerでのトランザクションの影響は、本来のバージョンが実行された場合とまったく同じです。 + +7. 脆弱なシステムは、予期しているトランザクションハッシュを認識せず、トランザクションが実行されなかったという誤った結論に達します。 + + トランザクションに`LastLedgerSequence`フィールドが含まれている場合は、指定されたレジャーインデックスを経過した後でこの状況が発生します。 + + トランザクションで`LastLedgerSequence`フィールドが省略されている場合は、別の意味で誤っている可能性があります。つまり、同じ送信者からの他のトランザクションでは同じ`Sequence`番号が使用されていない場合、トランザクションはその後、時間の経過に関係なく、理論上成功します。(詳細は、[確実なトランザクションの送信](reliable-transaction-submission.html)を参照してください。) + +8. 脆弱なシステムは、トランザクションが失敗したと想定してアクションを実行します。 + + たとえば、XRP Ledgerで送金されていないと判断した資金についての責任を果たすため、システムで顧客の残高に返金します(または単に引き落としを行いません)。 + + さらに、脆弱なシステムがトランザクションを置き換えるために新しいトランザクションを生成し、ネットワークの現在の状態に基づいて新しい`Sequence`、`LastLedgerSequence`、および`Fee`パラメーターを選択し、その一方でトランザクションの残りの部分は本来のトランザクションと同じ状態で維持することがあります。この新しいトランザクションにも展性がある場合、システムは何度も同じように悪用される可能性があります。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/consensus-network/transaction-queue.ja.md b/content/concepts/consensus-network/transaction-queue.ja.md index 3fd6f92d66..3c81f08eda 100644 --- a/content/concepts/consensus-network/transaction-queue.ja.md +++ b/content/concepts/consensus-network/transaction-queue.ja.md @@ -1,73 +1,73 @@ -# トランザクションキュー - -`rippled`サーバーは、トランザクションキューを使用して[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)を適用します。オープンレジャーコストにより、特定のレジャーの目標トランザクション数が設定され、オープンレジャーがこのサイズを超えると、必要なトランザクションコストが迅速に引き上げられます。`rippled`は引き上げられたトランザクションコストを支払うことができないトランザクションを無効にする代わりに、次のレジャーの構築に使用するトランザクションキューにそれらのトランザクションを入れようとします。 - -## トランザクションキューとコンセンサス - -トランザクションキューは、コンセンサスプロセスで特定のレジャーバージョンに記録されるトランザクションと除外されるトランザクションを選択する際に、重要な役割を果たします。以下のステップでは、トランザクションキューと[コンセンサスプロセス](consensus.html)の関係を説明します。 - -[![トランザクションキューとコンセンサスの図](img/consensus-with-queue.ja.png)](img/consensus-with-queue.ja.png) - -1. **コンセンサスラウンド1** - 各バリデータが、次のレジャーバージョンに記録するトランザクションセットを提案します。各バリデータは、現在提案されていないトランザクション候補のキューも保持します。 - -2. **コンセンサスラウンド2** - バリデータは後のラウンドで自身の提案からトランザクションを削除する場合、そのトランザクションをキューに追加します。 - -3. **コンセンサスラウンドN** - 十分な数のサーバーがトランザクションセットについて合意するまで、コンセンサスプロセスが継続されます。 - -4. **検証** - 複数のサーバーが、各々同一のレジャーを構築したことを確認し、そのレジャーが検証済みであると宣言します。 - -5. **次の提案の作成** - 各バリデータは、キューに入れられているトランザクションを最初に使用して、次のレジャーバージョンの提案を準備します。 - -6. **キューへの追加** - 次の提案レジャーがすでにいっぱいである場合は、着信トランザクションはその後のレジャーバージョンのキューに入れられます。([オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)を支払うトランザクションは、次の提案レジャーが「いっぱい」であってもそのレジャーに追加されますが、このようにトランザクションが追加されるたびにオープンレジャーコストは急激に増加します。) - - このステップの後、プロセスが最初から繰り返されます。 - -**注記:** 技術的には、上記のプロセスで説明したステップのいくつかは並行して発生します。これは、各サーバーは常に新しいトランザクションに備えて待機しており、前のレジャーバージョンのコンセンサスプロセスの実行中に次のレジャー提案の準備を開始するためです。 - -## キューの制約事項 - -`rippled`サーバーはさまざまな経験則によるテストを行って「レジャーに追加される可能性がある」トランザクションを推定します。現行の実装では、以下のルールに基づいてキューに入れるトランザクションが決定されます。 - -- トランザクションは適切な形式で作成され、有効な署名によって[承認](transaction-basics.html#取引の承認)されている必要があります。 -- `AccountTxnID`フィールドが指定されているトランザクションはキューに入れることができません。 -- 1つの送信側アドレスには、同時に最大10個のトランザクションを入れることができます。 -- トランザクションをキューに入れるには、送信者が以下のすべてを行うのに十分なXRPを保有している必要があります。[更新: rippled 1.2.0][] - - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.html)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では20 XRP)を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) - - キュー内のすべての送信者のトランザクションの送金を可能とするXRPの最大合計額の送信。 - - アカウントの[必要準備金](reserves.html)を確保するのに十分なXRPの保有。 -- あるトランザクションが、送信側アドレスがトランザクションを承認する方法に影響する場合、同じアドレスからの他のトランザクションをそのトランザクションの後にキューに入れることはできません。[新規: rippled 0.32.0][] -- トランザクションに`LastLedgerSequence`フィールドが指定されている場合、そのフィールドの値は少なくとも **現在のレジャーインデックス+ 2**になります。 - -### 手数料の平均化 - -[新規: rippled 0.33.0][] - -送信側アドレスのキューに1つ以上のトランザクションが入っている場合、その送信者はキューに入れられている既存のトランザクションをオープンレジャーに「プッシュ」するため、それらすべてのトランザクションのトランザクションコストの支払いをするのに十分なトランザクションコストが指定された新しいトランザクションを送信します。具体的には、新しいトランザクションは、そのトランザクション自体と、そのトランザクションより先にキュー内に入れられている同じ送信者からの各トランザクションの[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)をカバーするのに十分なトランザクションコストを支払う必要があります。(オープンレジャーコストは、トランザクションがトランザクションコストを支払うたびに急激に増加することに留意してください。)トランザクションは他の[キューの制約事項](#キューの制約事項)にも従い、送信側アドレスはキュー内のすべてのトランザクションのトランザクションコストを支払うのに十分な額のXRPを保有している必要があります。 - -この機能により、特定の状況を回避できます。キュー内にある低コストのトランザクションを1つ以上送信した場合、同じアドレスから新しいトランザクションを送信するには、以下のいずれかを実行する必要があります。 - -* キュー内のトランザクションが検証済みレジャーに追加されるまで待機する。 -* キュー内のトランザクションに[`LastLedgerSequence`フィールド](reliable-transaction-submission.html#lastledgersequence)が設定されている場合、それらのトランザクションが完全に無効化されるまで待機する。 -* [キュー内のトランザクションを取り消す](cancel-or-skip-a-transaction.html)。このためには、同じシーケンス番号で、これらのトランザクションよりも高いトランザクションコストを指定した新しいトランザクションを送信します。 - -上記のどの操作も行われないと、トランザクションは理論上無期限にキューに入れられたままとなり、他の送信者はそれらよりもトランザクションコストが高いトランザクションを送信してキューに「割り込む」ことができます。署名済みのトランザクションは変更できないため、キュー内のトランザクションのトランザクションコストを増加して、トランザクションの優先度を上げることはできません。以前に送信されたトランザクションを無効にしたくない場合には、手数料の平均化が回避策となります。新しいトランザクションのトランザクションコストを増額して不足分を補えば、キュー内のトランザクションは即時にオープンレジャーに追加されます。 - -## キュー内の順序 - -トランザクションキュー内では、最も高いトランザクションコストを支払うトランザクションが一番になるようにトランザクションがランク付けされています。このランク付けはトランザクションの _絶対_ XRPコストではなく、 _[該当するトランザクションタイプの最小コスト](transaction-cost.html#特別なトランザクションコスト)に相対的な_ コストに基づいています。トランザクションコストが同額のトランザクションが複数ある場合は、サーバーが受信した順にランク付けされます。キュー内のトランザクションの順序にはその他の要因も影響します。たとえば、同一送信者からのトランザクションはその`Sequence`番号によりソートされ、順に送信されます。 - -キュー内のトランザクションの数が次のレジャーバージョンの予期サイズを超える場合には、キュー内のトランザクションの正確な順序に基づいて、次の処理レジャーバージョンに追加されるトランザクションが決定します。トランザクションの順序は**検証済みレジャー内でのトランザクションの実行順序には影響しません**。各検証済みレジャーバージョンでは、そのバージョンのトランザクションセットが[正規の順序](consensus.html#検証の計算と共有)で実行されます。 - -**注記:**`rippled`がトランザクションをキューに入れるときに付与される暫定的な[トランザクション応答コード](transaction-results.html)は`terQUEUED`です。つまり、トランザクションは今後のレジャーバージョンで成功する見込みです。すべての暫定的な応答コードと同様に、トランザクションが検証済みレジャーに追加されるか、または[完全に無効であると示される](finality-of-results.html)までは、トランザクションの結果は最終的ではありません。 - - -## 関連項目 - -- トランザクションコストが設けられている理由と、XRP Ledgerでのトランザクションコストの適用方法については、[トランザクションコスト](transaction-cost.html)を参照してください。 -- コンセンサスプロセスによるトランザクション承認方法についての詳しい説明は、[コンセンサス](consensus.html)を参照してください。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トランザクションキュー + +`rippled`サーバーは、トランザクションキューを使用して[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)を適用します。オープンレジャーコストにより、特定のレジャーの目標トランザクション数が設定され、オープンレジャーがこのサイズを超えると、必要なトランザクションコストが迅速に引き上げられます。`rippled`は引き上げられたトランザクションコストを支払うことができないトランザクションを無効にする代わりに、次のレジャーの構築に使用するトランザクションキューにそれらのトランザクションを入れようとします。 + +## トランザクションキューとコンセンサス + +トランザクションキューは、コンセンサスプロセスで特定のレジャーバージョンに記録されるトランザクションと除外されるトランザクションを選択する際に、重要な役割を果たします。以下のステップでは、トランザクションキューと[コンセンサスプロセス](consensus.html)の関係を説明します。 + +[![トランザクションキューとコンセンサスの図](img/consensus-with-queue.ja.png)](img/consensus-with-queue.ja.png) + +1. **コンセンサスラウンド1** - 各バリデータが、次のレジャーバージョンに記録するトランザクションセットを提案します。各バリデータは、現在提案されていないトランザクション候補のキューも保持します。 + +2. **コンセンサスラウンド2** - バリデータは後のラウンドで自身の提案からトランザクションを削除する場合、そのトランザクションをキューに追加します。 + +3. **コンセンサスラウンドN** - 十分な数のサーバーがトランザクションセットについて合意するまで、コンセンサスプロセスが継続されます。 + +4. **検証** - 複数のサーバーが、各々同一のレジャーを構築したことを確認し、そのレジャーが検証済みであると宣言します。 + +5. **次の提案の作成** - 各バリデータは、キューに入れられているトランザクションを最初に使用して、次のレジャーバージョンの提案を準備します。 + +6. **キューへの追加** - 次の提案レジャーがすでにいっぱいである場合は、着信トランザクションはその後のレジャーバージョンのキューに入れられます。([オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)を支払うトランザクションは、次の提案レジャーが「いっぱい」であってもそのレジャーに追加されますが、このようにトランザクションが追加されるたびにオープンレジャーコストは急激に増加します。) + + このステップの後、プロセスが最初から繰り返されます。 + +**注記:** 技術的には、上記のプロセスで説明したステップのいくつかは並行して発生します。これは、各サーバーは常に新しいトランザクションに備えて待機しており、前のレジャーバージョンのコンセンサスプロセスの実行中に次のレジャー提案の準備を開始するためです。 + +## キューの制約事項 + +`rippled`サーバーはさまざまな経験則によるテストを行って「レジャーに追加される可能性がある」トランザクションを推定します。現行の実装では、以下のルールに基づいてキューに入れるトランザクションが決定されます。 + +- トランザクションは適切な形式で作成され、有効な署名によって[承認](transaction-basics.html#取引の承認)されている必要があります。 +- `AccountTxnID`フィールドが指定されているトランザクションはキューに入れることができません。 +- 1つの送信側アドレスには、同時に最大10個のトランザクションを入れることができます。 +- トランザクションをキューに入れるには、送信者が以下のすべてを行うのに十分なXRPを保有している必要があります。[更新: rippled 1.2.0][] + - キュー内のすべての送信者のトランザクションの`Fee`フィールドに指定されているXRP[トランザクションコスト](transaction-cost.html)の消却。キュー内のトランザクションの合計額は、アカウントの基本準備金(現時点では20 XRP)を超えることはできません。(トランザクションコストの支払いが最小額の0.00001 XRPを大幅に上回るトランザクションは、キューをスキップし、オープンレジャーに直接追加されます。) + - キュー内のすべての送信者のトランザクションの送金を可能とするXRPの最大合計額の送信。 + - アカウントの[必要準備金](reserves.html)を確保するのに十分なXRPの保有。 +- あるトランザクションが、送信側アドレスがトランザクションを承認する方法に影響する場合、同じアドレスからの他のトランザクションをそのトランザクションの後にキューに入れることはできません。[新規: rippled 0.32.0][] +- トランザクションに`LastLedgerSequence`フィールドが指定されている場合、そのフィールドの値は少なくとも **現在のレジャーインデックス+ 2**になります。 + +### 手数料の平均化 + +[新規: rippled 0.33.0][] + +送信側アドレスのキューに1つ以上のトランザクションが入っている場合、その送信者はキューに入れられている既存のトランザクションをオープンレジャーに「プッシュ」するため、それらすべてのトランザクションのトランザクションコストの支払いをするのに十分なトランザクションコストが指定された新しいトランザクションを送信します。具体的には、新しいトランザクションは、そのトランザクション自体と、そのトランザクションより先にキュー内に入れられている同じ送信者からの各トランザクションの[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)をカバーするのに十分なトランザクションコストを支払う必要があります。(オープンレジャーコストは、トランザクションがトランザクションコストを支払うたびに急激に増加することに留意してください。)トランザクションは他の[キューの制約事項](#キューの制約事項)にも従い、送信側アドレスはキュー内のすべてのトランザクションのトランザクションコストを支払うのに十分な額のXRPを保有している必要があります。 + +この機能により、特定の状況を回避できます。キュー内にある低コストのトランザクションを1つ以上送信した場合、同じアドレスから新しいトランザクションを送信するには、以下のいずれかを実行する必要があります。 + +* キュー内のトランザクションが検証済みレジャーに追加されるまで待機する。 +* キュー内のトランザクションに[`LastLedgerSequence`フィールド](reliable-transaction-submission.html#lastledgersequence)が設定されている場合、それらのトランザクションが完全に無効化されるまで待機する。 +* [キュー内のトランザクションを取り消す](cancel-or-skip-a-transaction.html)。このためには、同じシーケンス番号で、これらのトランザクションよりも高いトランザクションコストを指定した新しいトランザクションを送信します。 + +上記のどの操作も行われないと、トランザクションは理論上無期限にキューに入れられたままとなり、他の送信者はそれらよりもトランザクションコストが高いトランザクションを送信してキューに「割り込む」ことができます。署名済みのトランザクションは変更できないため、キュー内のトランザクションのトランザクションコストを増加して、トランザクションの優先度を上げることはできません。以前に送信されたトランザクションを無効にしたくない場合には、手数料の平均化が回避策となります。新しいトランザクションのトランザクションコストを増額して不足分を補えば、キュー内のトランザクションは即時にオープンレジャーに追加されます。 + +## キュー内の順序 + +トランザクションキュー内では、最も高いトランザクションコストを支払うトランザクションが一番になるようにトランザクションがランク付けされています。このランク付けはトランザクションの _絶対_ XRPコストではなく、 _[該当するトランザクションタイプの最小コスト](transaction-cost.html#特別なトランザクションコスト)に相対的な_ コストに基づいています。トランザクションコストが同額のトランザクションが複数ある場合は、サーバーが受信した順にランク付けされます。キュー内のトランザクションの順序にはその他の要因も影響します。たとえば、同一送信者からのトランザクションはその`Sequence`番号によりソートされ、順に送信されます。 + +キュー内のトランザクションの数が次のレジャーバージョンの予期サイズを超える場合には、キュー内のトランザクションの正確な順序に基づいて、次の処理レジャーバージョンに追加されるトランザクションが決定します。トランザクションの順序は**検証済みレジャー内でのトランザクションの実行順序には影響しません**。各検証済みレジャーバージョンでは、そのバージョンのトランザクションセットが[正規の順序](consensus.html#検証の計算と共有)で実行されます。 + +**注記:**`rippled`がトランザクションをキューに入れるときに付与される暫定的な[トランザクション応答コード](transaction-results.html)は`terQUEUED`です。つまり、トランザクションは今後のレジャーバージョンで成功する見込みです。すべての暫定的な応答コードと同様に、トランザクションが検証済みレジャーに追加されるか、または[完全に無効であると示される](finality-of-results.html)までは、トランザクションの結果は最終的ではありません。 + + +## 関連項目 + +- トランザクションコストが設けられている理由と、XRP Ledgerでのトランザクションコストの適用方法については、[トランザクションコスト](transaction-cost.html)を参照してください。 +- コンセンサスプロセスによるトランザクション承認方法についての詳しい説明は、[コンセンサス](consensus.html)を参照してください。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/decentralized-exchange/autobridging.ja.md b/content/concepts/decentralized-exchange/autobridging.ja.md index ec5c162ee4..7bd4cd63b1 100644 --- a/content/concepts/decentralized-exchange/autobridging.ja.md +++ b/content/concepts/decentralized-exchange/autobridging.ja.md @@ -1,13 +1,13 @@ -# オートブリッジング - -XRP以外の2種類の通貨を交換するOfferCreateでは、合成されたオーダーブックでXRPが中間通貨として使用されることがあります。これは、XRPを媒介通貨として使用することであらゆる通貨ペアの流動性を改善するオートブリッジング機能によるものです。XRP Ledgerのネイティブ暗号資産であるというXRPの特性によりこのように機能します。オファーを実行する際は、直接オファーとオートブリッジングオファーを組み合わせることで全体として最良の為替レートを実現できます。 - -例: _AnitaはGBPを売却してBRLを購入するオファーを発行しました。このような一般的ではない通貨マーケットでは、オファーがあまりない場合があります。良いレートのオファーが1件ありますが、Anitaの取引を満たすのに十分な量ではありません。ただしGBPとXRPおよびBRLとXRPの間には、それぞれアクティブで競争力のあるマーケットが存在します。オートブリッジングソフトウェアは、Anitaのオファーを履行できる方法を見つけるため、あるトレーダーからXRPをGBPで購入し、別のトレーダーにXRPを支払ってBRLを購入します。AnitaはGBPとBRLを直接交換するマーケットでの少額オファーを、GBP対XRPのオファーとXRP対BRLのオファーをペアリングしてより良い複合レートと組み合わせて、最適なレートを自動的に得ることができます。_ - -OfferCreateトランザクションではオートブリッジングが常に自動的に行われます。[Paymentトランザクション](payment.html)ではオートブリッジングはデフォルトで _行われません_ が、path-findingにより同様の効果のあるパスを検索できます。 - -## 参照項目 - -- [Dev Blog: Introducing Autobridging](https://ripple.com/dev-blog/introducing-offer-autobridging/) - -- [オファーの優先度](offers.html#オファーの優先度) +# オートブリッジング + +XRP以外の2種類の通貨を交換するOfferCreateでは、合成されたオーダーブックでXRPが中間通貨として使用されることがあります。これは、XRPを媒介通貨として使用することであらゆる通貨ペアの流動性を改善するオートブリッジング機能によるものです。XRP Ledgerのネイティブ暗号資産であるというXRPの特性によりこのように機能します。オファーを実行する際は、直接オファーとオートブリッジングオファーを組み合わせることで全体として最良の為替レートを実現できます。 + +例: _AnitaはGBPを売却してBRLを購入するオファーを発行しました。このような一般的ではない通貨マーケットでは、オファーがあまりない場合があります。良いレートのオファーが1件ありますが、Anitaの取引を満たすのに十分な量ではありません。ただしGBPとXRPおよびBRLとXRPの間には、それぞれアクティブで競争力のあるマーケットが存在します。オートブリッジングソフトウェアは、Anitaのオファーを履行できる方法を見つけるため、あるトレーダーからXRPをGBPで購入し、別のトレーダーにXRPを支払ってBRLを購入します。AnitaはGBPとBRLを直接交換するマーケットでの少額オファーを、GBP対XRPのオファーとXRP対BRLのオファーをペアリングしてより良い複合レートと組み合わせて、最適なレートを自動的に得ることができます。_ + +OfferCreateトランザクションではオートブリッジングが常に自動的に行われます。[Paymentトランザクション](payment.html)ではオートブリッジングはデフォルトで _行われません_ が、path-findingにより同様の効果のあるパスを検索できます。 + +## 参照項目 + +- [Dev Blog: Introducing Autobridging](https://ripple.com/dev-blog/introducing-offer-autobridging/) + +- [オファーの優先度](offers.html#オファーの優先度) diff --git a/content/concepts/decentralized-exchange/offers.ja.md b/content/concepts/decentralized-exchange/offers.ja.md index 214fa4829f..cbf5c952ff 100644 --- a/content/concepts/decentralized-exchange/offers.ja.md +++ b/content/concepts/decentralized-exchange/offers.ja.md @@ -1,75 +1,75 @@ -# オファー - -XRP Ledgerの分散型取引所では、通貨の取引注文は「オファー」と呼ばれます。オファーはXRPと発行済み通貨の取引、または発行済み通貨間の取引(同一通貨コードだがイシュアーが異なる発行済み通貨を含む)を行うことができます。(同一コードでイシュアーが異なる通貨は、[rippling](rippling.html)によって取引することもできます。) - -- オファーを作成するには、[OfferCreateトランザクション][]を送信します。 -- 即時に履行されないオファーはレジャーデータの[Offerオブジェクト](offer.html)になります。その後のオファーとPaymentにより、レジャーのOfferオブジェクトは消費されます。 -- [複数通貨間の支払い](cross-currency-payments.html)はオファーを消費して流動性を提供します。 - - -## オファーのライフサイクル - -OfferCreateトランザクションの処理時に、このトランザクションは一致するオファーまたはクロスオファーを可能な限り自動的に消費します。(既存のオファーのレートが要求よりも良い場合には、オファーの作成者は`TakerGets`の全額よりも低い額を支払い、`TakerPays`を全額を受領できます。)それにより`TakerPays`の額を完全に満たせない場合、オファーはレジャーのOfferオブジェクトになります。([OfferCreateフラグ](offercreate.html#offercreateフラグ)を使用してこの動作を変更できます。) - -既存のオファーに対応する追加のOfferCreateトランザクション、またはオファーを使用してペイメントパスを接続する[Paymentトランザクション][]のいずれかにより、レジャー上のオファーは履行されます。オファーの部分的な履行と、部分的な資金化が可能です。1つのトランザクションで、レジャーのオファーを最大850件まで消費できます。(この数を超えるとメタデータが大きくなり過ぎて、[`tecOVERSIZE`](tec-codes.html)となります。) - -オファーの`TakerGets`パラメーターで指定された通貨をいくらかでも(ゼロ以外のプラスの額)保有している限り、オファーを作成できます。オファーは、`TakerPays`の額が満たされるまで、`TakerGets`の額を上限として保有している通貨を売却します。オファーによって誰かに負債が発生することはありません。 - -レジャーにすでに記録されているオファーにクロスするオファーを出した場合、関連する額に関係なく古いオファーは自動的に取り消されます。 - -次の場合には、オファーは一時的または永久に _資金化されない_ 可能性があります。 - -* 作成者に`TakerGets`の通貨がない場合。 - * 作成者がその通貨を取得すると、オファーに資金が再び供給されます。 -* オファーに資金を供給するために必要な通貨が[凍結されたトラストライン](freezes.html)で保有されている場合。 - * トラストラインの凍結が解除されると、オファーに資金が再び供給されます。 -* オファーに必要な新しいトラストラインの準備金として十分な額のXRPを作成者が保有していない場合。([オファーとトラスト](#オファーとトラスト)を参照してください。) - * 作成者がXRPをさらに取得するか、または必要準備金が減額されると、オファーに資金が再び供給されます。 -* オファーに指定されている有効期限が最新の閉鎖済みレジャーの閉鎖時刻よりも前である場合。([オファーの有効期限](#オファーの有効期限)を参照してください。) - -資金化されないオファーはレジャーに無期限で残ることがありますが、特に影響はありません。次の方法でのみ、オファーはレジャーから*完全に*削除されます。 - -* Paymentトランザクションまたは対応するOfferCreateトランザクションにより全額が請求される。 -* OfferCancelトランザクションまたはOfferCreateトランザクションによりオファーが明示的に取り消される。 -* 同じアカウントからのOfferCreateトランザクションが以前のオファーにクロスする。(この場合、古いオファーが自動的に取り消されます。) -* トランザクションの処理中にオファーへの資金が供給されていないことが判明する。一般的に、オファーがオーダーブックの先中で最も有利なレートであったことが原因です。 - * これには、オファーのいずれかの側が、`rippled`の精度でサポートされているよりも0に近いことが検出されるケースも含まれます。 - -### 資金化されていないオファーの追跡 - -すべてのオファーの資金化状況の追跡は、コンピューターにとって負荷の高い処理となることがあります。特に積極的に取引しているアドレスでは大量のオファーがオープンです。1つの残高が、さまざまな通貨を購入する多数のオファーの資金化の状況に影響することがあります。このため、`rippled`ではオファーの検出と削除を積極的に行なっていません。 - -クライアントアプリケーションでオファーの資金化の状況をローカルで追跡できます。このためには、最初に[book_offersメソッド][]を使用してオーダーブックを取得し、次にオファーの`taker_gets_funded`フィールドを調べます。次に`transactions`ストリームを[サブスクライブ](subscribe.html)し、トランザクションメタデータを監視してどのオファーが変更されるかを確認します。 - - -## オファーとトラスト - -トラストラインの限度額([TrustSet](trustset.html)を参照)はオファーに影響しません。つまり、オファーを使用して、イシュアーの信用できる最大精算額を上回る額を取得できます。 - -ただし、XRP以外の残高を保有するには、それらの残高を発行するアドレスへのトラストラインが必要です。オファーが受け入れられると、必要なトラストラインが自動的に作成され、その限度額が0に設定されます。[アカウントが保有する必要のある準備金はトラストラインによって増加する](reserves.html)ため、新しいトラストラインを必要とするオファーがある場合、そのトラストラインの準備金として十分なXRPをアドレスに保有する必要があります。 - -トラストラインはあなたが信用するイシュア―を示し、限度額の範囲内でそのイシュア―のイシュアンスを支払いとして受領します。オファーは特定通貨を取得するための明示的な指示であるため、これらの限度額を超えることができます。 - - -## オファーの優先度 - -既存のオファーは為替レート(「オファークオリティ」とも呼ばれます)によってグループにまとめられます。為替レートは、`TakerGets`と`TakerPays`の比率として計算されます。為替レートが高いオファーが優先的に処理されます。(つまり、オファーを受け入れる人は、支払われる通貨額に対して可能な限り多くを受領します。)同じ為替レートのオファーは、最も古いレジャーバージョンで出されたオファーに基づいて受け入れられます。 - -同じ為替レートのオファーが同じレジャーバージョンに記録されている場合、オファーの処理順序は[レジャーへトランザクションを適用する](https://github.com/ripple/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/consensus/LedgerConsensus.cpp#L1435-L1538 "Source: Applying transactions")ための[正規の順序](https://github.com/ripple/rippled/blob/release/src/ripple/app/misc/CanonicalTXSet.cpp "Source: Transaction ordering")によって決定します。この動作は確定的かつ効率的であり、操作することが困難であるように設計されています。 - - -## オファーの有効期限 - -トランザクションの伝搬と確定には時間がかかることがあるため、レジャーのタイムスタンプからオファーの有効性を判断します。オファーが有効期限切れとなるのは、有効期限が最新の検証済みレジャーよりも前の場合だけです。つまり、`Expiration`フィールドが指定されているオファーが「アクティブ」であると見なされるのは、ローカルクロックに関係なく、その有効期限が最新の検証済みレジャーのタイムスタンプよりも後である場合です。 - -閉鎖時刻が有効期限と同じかそれよりも後である完全な検証済みレジャーが作成されたら、`Expiration`が指定されているオファーの最終的な処理を即時に判断できます。 - -**注記:** レジャーを変更できるのは新しいトランザクションだけであることから、有効期限切れのオファーは、非アクティブになった後でもレジャーに残ることがあります。このオファーは資金化されていないと見なされ特に影響はありませんが、([ledger_entry](ledger_entry.html)コマンドなどの)実行結果に、引き続き表示される可能性があります。後に、サーバーが処理中に有効期限切れのオファーを検出すると、このオファーは別のトランザクション(別のOfferCreateなど)の結果として最終的に削除されることがあります。 - -OfferCreateトランザクションが最初にレジャーに追加された時点で、このトランザクションに指定されている`Expiration`時刻をすでに経過していた場合は、トランザクションはオファーを実行しません。このようなトランザクションの結果コードは、[Checks Amendment][]:not_enabled:が有効であるかどうかによって異なります。Checks Amendmentが有効な場合、トランザクションの結果コードは`tecEXPIRED`です。それ以外の場合、トランザクションの結果コードは`tesSUCCESS`です。いずれの場合でも、このトランザクションには、[トランザクションコスト](transaction-cost.html)として支払われたXRPを消却する以外に影響はありません。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# オファー + +XRP Ledgerの分散型取引所では、通貨の取引注文は「オファー」と呼ばれます。オファーはXRPと発行済み通貨の取引、または発行済み通貨間の取引(同一通貨コードだがイシュアーが異なる発行済み通貨を含む)を行うことができます。(同一コードでイシュアーが異なる通貨は、[rippling](rippling.html)によって取引することもできます。) + +- オファーを作成するには、[OfferCreateトランザクション][]を送信します。 +- 即時に履行されないオファーはレジャーデータの[Offerオブジェクト](offer.html)になります。その後のオファーとPaymentにより、レジャーのOfferオブジェクトは消費されます。 +- [複数通貨間の支払い](cross-currency-payments.html)はオファーを消費して流動性を提供します。 + + +## オファーのライフサイクル + +OfferCreateトランザクションの処理時に、このトランザクションは一致するオファーまたはクロスオファーを可能な限り自動的に消費します。(既存のオファーのレートが要求よりも良い場合には、オファーの作成者は`TakerGets`の全額よりも低い額を支払い、`TakerPays`を全額を受領できます。)それにより`TakerPays`の額を完全に満たせない場合、オファーはレジャーのOfferオブジェクトになります。([OfferCreateフラグ](offercreate.html#offercreateフラグ)を使用してこの動作を変更できます。) + +既存のオファーに対応する追加のOfferCreateトランザクション、またはオファーを使用してペイメントパスを接続する[Paymentトランザクション][]のいずれかにより、レジャー上のオファーは履行されます。オファーの部分的な履行と、部分的な資金化が可能です。1つのトランザクションで、レジャーのオファーを最大850件まで消費できます。(この数を超えるとメタデータが大きくなり過ぎて、[`tecOVERSIZE`](tec-codes.html)となります。) + +オファーの`TakerGets`パラメーターで指定された通貨をいくらかでも(ゼロ以外のプラスの額)保有している限り、オファーを作成できます。オファーは、`TakerPays`の額が満たされるまで、`TakerGets`の額を上限として保有している通貨を売却します。オファーによって誰かに負債が発生することはありません。 + +レジャーにすでに記録されているオファーにクロスするオファーを出した場合、関連する額に関係なく古いオファーは自動的に取り消されます。 + +次の場合には、オファーは一時的または永久に _資金化されない_ 可能性があります。 + +* 作成者に`TakerGets`の通貨がない場合。 + * 作成者がその通貨を取得すると、オファーに資金が再び供給されます。 +* オファーに資金を供給するために必要な通貨が[凍結されたトラストライン](freezes.html)で保有されている場合。 + * トラストラインの凍結が解除されると、オファーに資金が再び供給されます。 +* オファーに必要な新しいトラストラインの準備金として十分な額のXRPを作成者が保有していない場合。([オファーとトラスト](#オファーとトラスト)を参照してください。) + * 作成者がXRPをさらに取得するか、または必要準備金が減額されると、オファーに資金が再び供給されます。 +* オファーに指定されている有効期限が最新の閉鎖済みレジャーの閉鎖時刻よりも前である場合。([オファーの有効期限](#オファーの有効期限)を参照してください。) + +資金化されないオファーはレジャーに無期限で残ることがありますが、特に影響はありません。次の方法でのみ、オファーはレジャーから*完全に*削除されます。 + +* Paymentトランザクションまたは対応するOfferCreateトランザクションにより全額が請求される。 +* OfferCancelトランザクションまたはOfferCreateトランザクションによりオファーが明示的に取り消される。 +* 同じアカウントからのOfferCreateトランザクションが以前のオファーにクロスする。(この場合、古いオファーが自動的に取り消されます。) +* トランザクションの処理中にオファーへの資金が供給されていないことが判明する。一般的に、オファーがオーダーブックの先中で最も有利なレートであったことが原因です。 + * これには、オファーのいずれかの側が、`rippled`の精度でサポートされているよりも0に近いことが検出されるケースも含まれます。 + +### 資金化されていないオファーの追跡 + +すべてのオファーの資金化状況の追跡は、コンピューターにとって負荷の高い処理となることがあります。特に積極的に取引しているアドレスでは大量のオファーがオープンです。1つの残高が、さまざまな通貨を購入する多数のオファーの資金化の状況に影響することがあります。このため、`rippled`ではオファーの検出と削除を積極的に行なっていません。 + +クライアントアプリケーションでオファーの資金化の状況をローカルで追跡できます。このためには、最初に[book_offersメソッド][]を使用してオーダーブックを取得し、次にオファーの`taker_gets_funded`フィールドを調べます。次に`transactions`ストリームを[サブスクライブ](subscribe.html)し、トランザクションメタデータを監視してどのオファーが変更されるかを確認します。 + + +## オファーとトラスト + +トラストラインの限度額([TrustSet](trustset.html)を参照)はオファーに影響しません。つまり、オファーを使用して、イシュアーの信用できる最大精算額を上回る額を取得できます。 + +ただし、XRP以外の残高を保有するには、それらの残高を発行するアドレスへのトラストラインが必要です。オファーが受け入れられると、必要なトラストラインが自動的に作成され、その限度額が0に設定されます。[アカウントが保有する必要のある準備金はトラストラインによって増加する](reserves.html)ため、新しいトラストラインを必要とするオファーがある場合、そのトラストラインの準備金として十分なXRPをアドレスに保有する必要があります。 + +トラストラインはあなたが信用するイシュア―を示し、限度額の範囲内でそのイシュア―のイシュアンスを支払いとして受領します。オファーは特定通貨を取得するための明示的な指示であるため、これらの限度額を超えることができます。 + + +## オファーの優先度 + +既存のオファーは為替レート(「オファークオリティ」とも呼ばれます)によってグループにまとめられます。為替レートは、`TakerGets`と`TakerPays`の比率として計算されます。為替レートが高いオファーが優先的に処理されます。(つまり、オファーを受け入れる人は、支払われる通貨額に対して可能な限り多くを受領します。)同じ為替レートのオファーは、最も古いレジャーバージョンで出されたオファーに基づいて受け入れられます。 + +同じ為替レートのオファーが同じレジャーバージョンに記録されている場合、オファーの処理順序は[レジャーへトランザクションを適用する](https://github.com/ripple/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/consensus/LedgerConsensus.cpp#L1435-L1538 "Source: Applying transactions")ための[正規の順序](https://github.com/ripple/rippled/blob/release/src/ripple/app/misc/CanonicalTXSet.cpp "Source: Transaction ordering")によって決定します。この動作は確定的かつ効率的であり、操作することが困難であるように設計されています。 + + +## オファーの有効期限 + +トランザクションの伝搬と確定には時間がかかることがあるため、レジャーのタイムスタンプからオファーの有効性を判断します。オファーが有効期限切れとなるのは、有効期限が最新の検証済みレジャーよりも前の場合だけです。つまり、`Expiration`フィールドが指定されているオファーが「アクティブ」であると見なされるのは、ローカルクロックに関係なく、その有効期限が最新の検証済みレジャーのタイムスタンプよりも後である場合です。 + +閉鎖時刻が有効期限と同じかそれよりも後である完全な検証済みレジャーが作成されたら、`Expiration`が指定されているオファーの最終的な処理を即時に判断できます。 + +**注記:** レジャーを変更できるのは新しいトランザクションだけであることから、有効期限切れのオファーは、非アクティブになった後でもレジャーに残ることがあります。このオファーは資金化されていないと見なされ特に影響はありませんが、([ledger_entry](ledger_entry.html)コマンドなどの)実行結果に、引き続き表示される可能性があります。後に、サーバーが処理中に有効期限切れのオファーを検出すると、このオファーは別のトランザクション(別のOfferCreateなど)の結果として最終的に削除されることがあります。 + +OfferCreateトランザクションが最初にレジャーに追加された時点で、このトランザクションに指定されている`Expiration`時刻をすでに経過していた場合は、トランザクションはオファーを実行しません。このようなトランザクションの結果コードは、[Checks Amendment][]:not_enabled:が有効であるかどうかによって異なります。Checks Amendmentが有効な場合、トランザクションの結果コードは`tecEXPIRED`です。それ以外の場合、トランザクションの結果コードは`tesSUCCESS`です。いずれの場合でも、このトランザクションには、[トランザクションコスト](transaction-cost.html)として支払われたXRPを消却する以外に影響はありません。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/decentralized-exchange/ticksize.ja.md b/content/concepts/decentralized-exchange/ticksize.ja.md index d2ee5b30f1..50561ccb2f 100644 --- a/content/concepts/decentralized-exchange/ticksize.ja.md +++ b/content/concepts/decentralized-exchange/ticksize.ja.md @@ -1,23 +1,23 @@ -# ティックサイズ - -_([TickSize Amendment][]が必要です。)_ - -オファーがオーダーブックに対して発行されると、そのオファーに関係する通貨のイシュアーによって設定された`TickSize`の値に基づいて、為替レートが切り捨てられます。トレーダーがXRPと発行済み通貨を交換するオファーを出した場合は、その発行済み通貨のイシュアーからの`TickSize`が適用されます。トレーダーが2種類の発行済み通貨を交換するオファーを出した場合は、小さい方の`TickSize`の値(有効数字の桁数が少ない値)がこのオファーに適用されます。いずれの通貨にも`TickSize`が設定されていない場合、デフォルトが適用されます。 - -オーダーブックにオファーが発行されると、`TickSize` によりオファーの為替レートの _有効数字_ の桁数が切り捨てられます。イシュアーは[AccountSetトランザクション][]を使用して`TickSize`を`3`~`15`の整数に設定できます。為替レートは有効数字と指数で表されますが、`TickSize`は指数には影響しません。これにより、XRP Ledgerでは価値が大きく異なる資産(ハイパーインフレ通貨と希少通貨など)間の為替レートを表せます。イシュアーが設定する`TickSize`が小さいほど、トレーダーはより多くの増分をオファーして、既存のオファーよりも高い為替レートと見えるようにする必要があります。 - -`TickSize`は、オファーの即時に実行可能な部分には影響しません。(この理由から、`tfImmediateOrCancel`が指定されたOfferCreateトランザクションは`TickSize` の値の影響を受けません。)オファーを完全に実行できない場合、トランザクション処理エンジンは`TickSize`に基づいて為替レートを計算して切り捨てを行います。次にエンジンは、切り捨てた後の為替レートに一致するように、「重要性が低い」側からのオファーの残額を丸めます。デフォルトのOfferCreateトランザクション(「買い」オファー)の場合、`TakerPays`の額(購入額)が丸められます。`tfSell`フラグが有効な場合(「売り」オファー)`TakerGets`の額(売却額)が丸められます。 - -イシュアーが`TickSize`を有効化、無効化、または変更する場合、以前の設定で発行されたオファーはその影響を受けません。 - -## 参照項目 - -- [Dev Blog: Introducing the TickSize Amendment](https://ripple.com/dev-blog/ticksize-amendment-open-voting/#ticksize-amendment-overview) - -- [AccountSetトランザクション][] - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# ティックサイズ + +_([TickSize Amendment][]が必要です。)_ + +オファーがオーダーブックに対して発行されると、そのオファーに関係する通貨のイシュアーによって設定された`TickSize`の値に基づいて、為替レートが切り捨てられます。トレーダーがXRPと発行済み通貨を交換するオファーを出した場合は、その発行済み通貨のイシュアーからの`TickSize`が適用されます。トレーダーが2種類の発行済み通貨を交換するオファーを出した場合は、小さい方の`TickSize`の値(有効数字の桁数が少ない値)がこのオファーに適用されます。いずれの通貨にも`TickSize`が設定されていない場合、デフォルトが適用されます。 + +オーダーブックにオファーが発行されると、`TickSize` によりオファーの為替レートの _有効数字_ の桁数が切り捨てられます。イシュアーは[AccountSetトランザクション][]を使用して`TickSize`を`3`~`15`の整数に設定できます。為替レートは有効数字と指数で表されますが、`TickSize`は指数には影響しません。これにより、XRP Ledgerでは価値が大きく異なる資産(ハイパーインフレ通貨と希少通貨など)間の為替レートを表せます。イシュアーが設定する`TickSize`が小さいほど、トレーダーはより多くの増分をオファーして、既存のオファーよりも高い為替レートと見えるようにする必要があります。 + +`TickSize`は、オファーの即時に実行可能な部分には影響しません。(この理由から、`tfImmediateOrCancel`が指定されたOfferCreateトランザクションは`TickSize` の値の影響を受けません。)オファーを完全に実行できない場合、トランザクション処理エンジンは`TickSize`に基づいて為替レートを計算して切り捨てを行います。次にエンジンは、切り捨てた後の為替レートに一致するように、「重要性が低い」側からのオファーの残額を丸めます。デフォルトのOfferCreateトランザクション(「買い」オファー)の場合、`TakerPays`の額(購入額)が丸められます。`tfSell`フラグが有効な場合(「売り」オファー)`TakerGets`の額(売却額)が丸められます。 + +イシュアーが`TickSize`を有効化、無効化、または変更する場合、以前の設定で発行されたオファーはその影響を受けません。 + +## 参照項目 + +- [Dev Blog: Introducing the TickSize Amendment](https://ripple.com/dev-blog/ticksize-amendment-open-voting/#ticksize-amendment-overview) + +- [AccountSetトランザクション][] + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/introduction/intro-to-consensus.ja.md b/content/concepts/introduction/intro-to-consensus.ja.md index 633b0bc331..b9a12d3961 100644 --- a/content/concepts/introduction/intro-to-consensus.ja.md +++ b/content/concepts/introduction/intro-to-consensus.ja.md @@ -1,70 +1,70 @@ -# コンセンサスについて - - _コンセンサス_ は、分散型決済システムの最も重要な特性です。従来の中央集権型決済システムでは、権限のある1人の管理者が決済の方法とタイミングについて最終的な決定権を持ちます。分散型システムでは、その名が示すとおり、そのような管理者は存在しません。その代わりに、XRP Ledgerのような分散型システムでは、参加者は定められた一連のルールに従うことになっているため、同じ一連のイベントとその結果についていつでも合意することができます。この一連のルールは、 _コンセンサスプロトコル_ と呼ばれます。 - - -## コンセンサスプロトコルの特性 - -従来のデジタル資産と異なり、XRP Ledgerでは、コンセンサスプロトコルを使用します。このプロトコルは、XRP Ledger コンセンサスプロトコルと呼ばれ、次の重要な特性を持つように設計されています。 - -- XRP Ledgerを使用するユーザーは誰でも、最新の台帳や、どのような取引がどのような順番で発生したかについて同意することができます。 -- 中央のオペレーター無しに、有効な取引を処理することができます。また、障害が1か所に集中することもありません。 -- 一部の参加者が不適切に参加、退去、または行動した場合でも、取引の処理は続行します。 -- 多数の参加者がアクセスできない場合や、多数が不適切に行動している場合は、無効な取引を分離したり確認したりする代わりに、ネットワークは処理を停止します。 -- 取引の確認のために、リソースを無駄に使ったり取り合う必要もありません。この点は、他の一般的なブロックチェーンシステムとは異なります。 - -これらの特性は、次の3原則としてまとめられます。優先順位の高い順に示します。**正確さ、合意、処理の継続** - -このプロトコルはまだ発展段階にあり、その限界と起こり得る障害についての知識もまだ蓄積中です。プロトコル自体に関する学術研究については、[コンセンサスリサーチ](consensus-research.html)を参照してください。 - -## 背景 - -コンセンサスプロトコルは、_二重支払いの問題_、つまり同じデジタルマネーを2回使用することを防ぐという課題に対する解決策です。この問題において最も困難なのは、取引を順序立てる点です。中央管理者がいない中で、同時に複数の相互排他的取引が送信されたときに、先に到着したのはどの取引なのかという紛争を解決するのは困難です。二重支払いの問題や、XRP Ledger コンセンサスプロトコルでこの問題を解決する方法、およびそれに伴うトレードオフと制限事項の詳細な分析については、[コンセンサスの原理とルール](consensus-principles-and-rules.html)を参照してください。 - - -## レジャー(台帳)履歴 - -XRP Ledgerは、「レジャーバージョン」、または略して「レジャー」と呼ばれるブロックで取引を処理します。レジャーの各バージョンには、次の3つの部分が含まれています。 - -- レジャーに保存されているすべての残高とオブジェクトの現在の状態。 -- このレジャーにつながる、以前のレジャーに適用された一連の取引。 -- レジャーインデックスや、その内容を一意に識別する[暗号化ハッシュ](https://en.wikipedia.org/wiki/Cryptographic_hash_function)、およびこのレジャーを構築するための基盤として使用された親レジャーに関する情報など、現行のレジャーバージョンに関するメタデータ。 - -[![図1: レジャーバージョンの構造(取引、状態、およびメタデータを含む)](img/anatomy-of-a-ledger-simplified.ja.png)](img/anatomy-of-a-ledger-simplified.ja.png) - - -レジャーの各バージョンには _レジャーインデックス_ としての番号が付けられており、インデックスが1つ前のレジャーバージョンを基に新たな情報を追加する形で作成されています。一番最初まで遡ると、レジャーインデックスが1の _ジェネシスレジャー_ と呼ばれる出発点に戻ります。[¹](#footnote-1)これにより、Bitcoinや他のブロックチェーン技術と同様に、すべての取引とその結果についての公開履歴が形成されます。多くのブロックチェーン技術とは異なり、XRP Ledgerの新しい「ブロック」には現在の状態がすべて含まれているため、現在起こっている内容を把握するために履歴全体を収集する必要はありません。[²](#footnote-2) - -XRP Ledger コンセンサスプロトコルの主な役割は、前のレジャーに適用する一連の新しい取引に合意し、それらを明確に定義された順序で適用した上で、全員が同じ結果を得たことを確認することです。これが正常に行われると、レジャーバージョンは _検証済み_ 、および確定したとみなされます。続いて、次のレジャーバージョンが構築されます。 - - -## 信頼に基づく検証 - -XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな効果を生み出すという基本的な原理に支えられています。ネットワークの各参加者は、一連の _バリデータ_ (検証者)を選択します。バリデータは常に誠実に行動することが期待されるさまざまな当事者によって運営されており、[コンセンサスにアクティブに参加するように特別に設定されたサーバー](run-a-rippled-validator.html)上に存在します。さらに重要なことは、選択された一連のバリデータが互いに共謀して同じ方法を使ってルールを破ることはないということです。この一連バリデータのリストは、_ユニークノードリスト_(UNL)とも呼ばれます。 - -ネットワークが更新する中で、各サーバーは信頼できるバリデータ[³](#footnote-3)をモニターします。十分な数のバリデータが、一連の取引の発生を確認し、特定のレジャーにその結果が反映されたことに同意した場合、サーバーによってコンセンサスが宣言されます。バリデータ間で同意が得られない場合、バリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。このプロセスは、コンセンサスに達するまで何度か繰り返されます。 - -[![図2: コンセンサスラウンドバリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。](img/consensus-rounds.ja.png)](img/consensus-rounds.ja.png) - -常に正しく行動しないバリデータが一部存在しても問題ありません。信頼できるバリデータのうち、正しく行動しないバリデータの割合が20%未満である場合は、制限なくコンセンサスは継続します。また、無効な取引を確認するには、信頼できるバリデータの80%以上が合意する必要があります。信頼できるバリデータのうち、正しく行動しないバリデータの割合が20%以上80%未満である場合、ネットワークは停止します。 - -XRP Ledger コンセンサスプロトコルで、さまざまな課題や攻撃、失敗の事例にどのように対応するかについての詳細な説明については、[攻撃と失敗モードに対するコンセンサスの保護](consensus-protections.html)を参照してください。 - - -## 関連項目 - -- XRP Ledger コンセンサスプロトコルの仕組みの詳細に関する記事は、[コンセンサスネットワークの概念](consensus-network.html)を参照してください。 -- 独自のバリデータを実行する手順については、[バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html)を参照してください。 -- XRP Ledgerの分散化に関するRippleの目標および計画については、[分散化戦略についてのアップデート (Ripple Dev Blog)](https://ripple.com/dev-blog/decentralization-strategy-update/)を参照してください。 - - - ----- - -## 脚注 - -1. XRP Ledgerの運用開始当初に起きた事故により、[1~32569番目までのレジャーが失われました](https://forum.ripple.com/viewtopic.php?f=2&t=3613)。(この損失はレジャー履歴の第1週目に発生しています。)このため、現存する一番最初のレジャーは番号32570のレジャーです。XRP Ledgerの状態はすべてのレジャーバージョンに記録されるため、履歴がなくても継続することができます。新しいテストネットワークでは、レジャーインデックス1から始まります。 - -2. Bitcoinでは、現在の状態は「UTXO」(Unspent Transaction Outputの略)と呼ばれることもあります。XRP Ledgerとは異なり、BitcoinサーバーではすべてのUTXOを把握し、新しい取引を処理できるように、トランザクション(取引)履歴全体をダウンロードする必要があります。2018年現在、Bitcoinの新しいサーバーでこれを行う必要がないように、最新のUTXOのサマリーを定期的に提供するようコンセンサスメカニズムを修正する提案がいくつかあります。EthereumはXRP Ledgerと類似したアプローチを使用しており、各ブロックには、 _状態ルート_ と呼ばれる現在の状態のサマリーがありますが、Ethereumは巨大な状態データを蓄積しているため同期するにはXRP Ledgerよりもより多くの時間を要します。 - -3. 信頼できるバリデータをモニターするにあたり、サーバーが直接それに接続する必要はありません。XRP Ledgerのピアツーピアネットワークでは、サーバーが公開鍵によって互いを識別し、他のサーバーからのデジタル署名付きメッセージを中継する _ゴシッププロトコル_ によってモニターします。 +# コンセンサスについて + + _コンセンサス_ は、分散型決済システムの最も重要な特性です。従来の中央集権型決済システムでは、権限のある1人の管理者が決済の方法とタイミングについて最終的な決定権を持ちます。分散型システムでは、その名が示すとおり、そのような管理者は存在しません。その代わりに、XRP Ledgerのような分散型システムでは、参加者は定められた一連のルールに従うことになっているため、同じ一連のイベントとその結果についていつでも合意することができます。この一連のルールは、 _コンセンサスプロトコル_ と呼ばれます。 + + +## コンセンサスプロトコルの特性 + +従来のデジタル資産と異なり、XRP Ledgerでは、コンセンサスプロトコルを使用します。このプロトコルは、XRP Ledger コンセンサスプロトコルと呼ばれ、次の重要な特性を持つように設計されています。 + +- XRP Ledgerを使用するユーザーは誰でも、最新の台帳や、どのような取引がどのような順番で発生したかについて同意することができます。 +- 中央のオペレーター無しに、有効な取引を処理することができます。また、障害が1か所に集中することもありません。 +- 一部の参加者が不適切に参加、退去、または行動した場合でも、取引の処理は続行します。 +- 多数の参加者がアクセスできない場合や、多数が不適切に行動している場合は、無効な取引を分離したり確認したりする代わりに、ネットワークは処理を停止します。 +- 取引の確認のために、リソースを無駄に使ったり取り合う必要もありません。この点は、他の一般的なブロックチェーンシステムとは異なります。 + +これらの特性は、次の3原則としてまとめられます。優先順位の高い順に示します。**正確さ、合意、処理の継続** + +このプロトコルはまだ発展段階にあり、その限界と起こり得る障害についての知識もまだ蓄積中です。プロトコル自体に関する学術研究については、[コンセンサスリサーチ](consensus-research.html)を参照してください。 + +## 背景 + +コンセンサスプロトコルは、_二重支払いの問題_、つまり同じデジタルマネーを2回使用することを防ぐという課題に対する解決策です。この問題において最も困難なのは、取引を順序立てる点です。中央管理者がいない中で、同時に複数の相互排他的取引が送信されたときに、先に到着したのはどの取引なのかという紛争を解決するのは困難です。二重支払いの問題や、XRP Ledger コンセンサスプロトコルでこの問題を解決する方法、およびそれに伴うトレードオフと制限事項の詳細な分析については、[コンセンサスの原理とルール](consensus-principles-and-rules.html)を参照してください。 + + +## レジャー(台帳)履歴 + +XRP Ledgerは、「レジャーバージョン」、または略して「レジャー」と呼ばれるブロックで取引を処理します。レジャーの各バージョンには、次の3つの部分が含まれています。 + +- レジャーに保存されているすべての残高とオブジェクトの現在の状態。 +- このレジャーにつながる、以前のレジャーに適用された一連の取引。 +- レジャーインデックスや、その内容を一意に識別する[暗号化ハッシュ](https://en.wikipedia.org/wiki/Cryptographic_hash_function)、およびこのレジャーを構築するための基盤として使用された親レジャーに関する情報など、現行のレジャーバージョンに関するメタデータ。 + +[![図1: レジャーバージョンの構造(取引、状態、およびメタデータを含む)](img/anatomy-of-a-ledger-simplified.ja.png)](img/anatomy-of-a-ledger-simplified.ja.png) + + +レジャーの各バージョンには _レジャーインデックス_ としての番号が付けられており、インデックスが1つ前のレジャーバージョンを基に新たな情報を追加する形で作成されています。一番最初まで遡ると、レジャーインデックスが1の _ジェネシスレジャー_ と呼ばれる出発点に戻ります。[¹](#footnote-1)これにより、Bitcoinや他のブロックチェーン技術と同様に、すべての取引とその結果についての公開履歴が形成されます。多くのブロックチェーン技術とは異なり、XRP Ledgerの新しい「ブロック」には現在の状態がすべて含まれているため、現在起こっている内容を把握するために履歴全体を収集する必要はありません。[²](#footnote-2) + +XRP Ledger コンセンサスプロトコルの主な役割は、前のレジャーに適用する一連の新しい取引に合意し、それらを明確に定義された順序で適用した上で、全員が同じ結果を得たことを確認することです。これが正常に行われると、レジャーバージョンは _検証済み_ 、および確定したとみなされます。続いて、次のレジャーバージョンが構築されます。 + + +## 信頼に基づく検証 + +XRP Ledgerのコンセンサスメカニズムは、小さな信頼が大きな効果を生み出すという基本的な原理に支えられています。ネットワークの各参加者は、一連の _バリデータ_ (検証者)を選択します。バリデータは常に誠実に行動することが期待されるさまざまな当事者によって運営されており、[コンセンサスにアクティブに参加するように特別に設定されたサーバー](run-a-rippled-validator.html)上に存在します。さらに重要なことは、選択された一連のバリデータが互いに共謀して同じ方法を使ってルールを破ることはないということです。この一連バリデータのリストは、_ユニークノードリスト_(UNL)とも呼ばれます。 + +ネットワークが更新する中で、各サーバーは信頼できるバリデータ[³](#footnote-3)をモニターします。十分な数のバリデータが、一連の取引の発生を確認し、特定のレジャーにその結果が反映されたことに同意した場合、サーバーによってコンセンサスが宣言されます。バリデータ間で同意が得られない場合、バリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。このプロセスは、コンセンサスに達するまで何度か繰り返されます。 + +[![図2: コンセンサスラウンドバリデータは信頼する他のバリデータとの間での意見の一致に向けて提案を修正します。](img/consensus-rounds.ja.png)](img/consensus-rounds.ja.png) + +常に正しく行動しないバリデータが一部存在しても問題ありません。信頼できるバリデータのうち、正しく行動しないバリデータの割合が20%未満である場合は、制限なくコンセンサスは継続します。また、無効な取引を確認するには、信頼できるバリデータの80%以上が合意する必要があります。信頼できるバリデータのうち、正しく行動しないバリデータの割合が20%以上80%未満である場合、ネットワークは停止します。 + +XRP Ledger コンセンサスプロトコルで、さまざまな課題や攻撃、失敗の事例にどのように対応するかについての詳細な説明については、[攻撃と失敗モードに対するコンセンサスの保護](consensus-protections.html)を参照してください。 + + +## 関連項目 + +- XRP Ledger コンセンサスプロトコルの仕組みの詳細に関する記事は、[コンセンサスネットワークの概念](consensus-network.html)を参照してください。 +- 独自のバリデータを実行する手順については、[バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html)を参照してください。 +- XRP Ledgerの分散化に関するRippleの目標および計画については、[分散化戦略についてのアップデート (Ripple Dev Blog)](https://ripple.com/dev-blog/decentralization-strategy-update/)を参照してください。 + + + +---- + +## 脚注 + +1. XRP Ledgerの運用開始当初に起きた事故により、[1~32569番目までのレジャーが失われました](https://forum.ripple.com/viewtopic.php?f=2&t=3613)。(この損失はレジャー履歴の第1週目に発生しています。)このため、現存する一番最初のレジャーは番号32570のレジャーです。XRP Ledgerの状態はすべてのレジャーバージョンに記録されるため、履歴がなくても継続することができます。新しいテストネットワークでは、レジャーインデックス1から始まります。 + +2. Bitcoinでは、現在の状態は「UTXO」(Unspent Transaction Outputの略)と呼ばれることもあります。XRP Ledgerとは異なり、BitcoinサーバーではすべてのUTXOを把握し、新しい取引を処理できるように、トランザクション(取引)履歴全体をダウンロードする必要があります。2018年現在、Bitcoinの新しいサーバーでこれを行う必要がないように、最新のUTXOのサマリーを定期的に提供するようコンセンサスメカニズムを修正する提案がいくつかあります。EthereumはXRP Ledgerと類似したアプローチを使用しており、各ブロックには、 _状態ルート_ と呼ばれる現在の状態のサマリーがありますが、Ethereumは巨大な状態データを蓄積しているため同期するにはXRP Ledgerよりもより多くの時間を要します。 + +3. 信頼できるバリデータをモニターするにあたり、サーバーが直接それに接続する必要はありません。XRP Ledgerのピアツーピアネットワークでは、サーバーが公開鍵によって互いを識別し、他のサーバーからのデジタル署名付きメッセージを中継する _ゴシッププロトコル_ によってモニターします。 diff --git a/content/concepts/introduction/technical-faq.ja.md b/content/concepts/introduction/technical-faq.ja.md index 538839c705..491fbb7a81 100644 --- a/content/concepts/introduction/technical-faq.ja.md +++ b/content/concepts/introduction/technical-faq.ja.md @@ -1,108 +1,108 @@ -# 技術に関するよくある質問 - -## バリデータ(検証者)とユニークノードリスト - - -#### トランザクション(取引)のバリデータはどのようなサービスを提供するのですか? - -バリデータは、トランザクションがプロトコル要件を満たしていて、結果として「有効」であるかどうかを判断します。バリデータが提供する独自の機能は、順序付けされた単位にトランザクションをグループ化し、二重支払いを防ぐことを目的としてその順序に同意することです。 - -コンセンサスプロセスの詳細については、[Consensus](consensus.html)と[Ripple Labs Tech Talk: Understanding Consensus](https://ripple.com/insights/ripple-labs-tech-talk-consensus-within-the-ripple-protocol/)を参照してください。 - - -#### バリデータの実行にはいくらかかりますか? - -バリデータを実行するのに手数料やXRPは必要ありません。メールサーバーを稼働するための電気代相当です。 - - -#### ユニークノードリスト(UNL)とは何ですか? - -特定の参加者が、互いに共謀して自身をだますような企てを行わないものとして信頼するトランザクションバリデータから構成されるリストです。 - - -#### どのUNLを選択すればよいですか? - -誰でもバリデータになりえるため、信頼できるセットを選択する責任はネットワーク参加者側にあります。現在、Rippleではデフォルトかつ推奨するリストを提供しています。これは、Rippleおよび第三者によって運用されているバリデータの履歴を見て、弊社が更新しているものです。最終的には、バリデータの品質に関して公表されているデータに基づいてネットワークの参加者自身が独自にリストを選択できるようになることで、Ripple自体がこのプロセスから身を引くようになると意図しています。 - - -#### RippleがそのUNLの採用を推奨しているなら、それは集中型システムを形成することにならないのですか? - -いいえ。XRP Ledgerネットワークはオプトイン方式です。各参加者は直接的または間接的に自身のUNLを選択することができます。万が一、Rippleが活動を停止したり、Rippleが悪意を持って行動したりした場合、参加者は自身のUNLを変更してXRP Ledgerを引き続き使用することができます。 - - -#### Rippleによって運用されないバリデータにとってインセンティブとなるものは何ですか? - -XRP Ledgerが広まり、銀行間決済に広く使用されると、参加者にとってネットワークの信頼性と安定性を保証するというインセンティブがあります。このような場合、金融機関はネットワークに参加するために`rippled`サーバーを運用します。サーバーの運用開始後、バリデータを運用するための追加のコストと労力は基本的にかかりません。ソフトウェアスイッチをオフからオンに切り替えるだけです。XRP Ledgerの進化を決定するのはバリデータであるため、バリデータを運用することの主なインセンティブは、ネットワークの安定した運用と賢明な進化を維持し保護することです。 - - -#### 金融機関は、特定の制度上の基準や要件を満たすのに役立つトランザクションバリデータを設定できますか? - -いいえ。トランザクション選択のためにカスタマイズされたバリデータポリシーを金融機関が設定することはできません。バリデータは既存のプロトコルに従う、従わないのいずれかを選択します。ソフトウェアは、プロトコルルールに従わない場合は機能しません。そのため、金融機関が社内の専門知識なしにカスタム実装を求めることはお勧めできません。 - - -#### ネットワーク内の20%を超えるノードが過半数と一致しない場合はどうなりますか? レジャー(台帳)の最終バージョンはどのように選択されますか? - -コンセンサスを目的に新しく作られたUNLリストで継続するために、ネットワークが一時的に停止して再構成される場合があります。この一時的な処理の遅れは、むしろ二重支出のリスクを回避します。 - -レジャーの正式な最終バージョンを決定する過程で、一時的な内部バージョンが複数存在する可能性があります。分散型システムでは、すべてのノードが同じ順序でトランザクションを受け取るわけではないため、そのような内部バージョンが発生します。従来のBitcoinにおける類似の振る舞いとしては、2つのブロックがほぼ同時にマイニングされたために2つのサーバーがそれぞれ異なる最長チェーンを参照してしまう状況があります。 - -しかし、正式なレジャーバージョンは常に1つしかありません。他のバージョンは無関係で、何の影響も与えません。 - - -#### XRP Ledgerでは正式なバリデータのオンボーディングプロセスを使用していますか? - -いいえ。XRP Ledgerは、中央権限のないシステムであるため、正式なバリデータのオンボーディングプロセスのようなものは存在しません。代わりに、Rippleでは推奨事項とベストプラクティスを提供しています。 - - -## XRPの役割 - - -#### RippleはなぜXRPを多く保有しているのですか? - -RippleはXRPを保有することで、XRP Ledgerを可能な限り有用なものにするインセンティブを持つことになります。XRPは、Ledgerのネイティブ資産として存在し、スパム対策や、ユーザーにとって有益な場合にブリッジ通貨として使われます。それ以外の場合、トランザクションでXRPを使用するかどうかは完全にユーザーの自由です。 - - -#### XRP Ledgerでは大量のトランザクションが行われている場合にどう対応しますか? - -XRP Ledgerは、スパム対策として、需要に基づいてトランザクションコストを動的に設定するように設計されています。潜在的なXRPの操作による影響は、時価総額とトランザクション量の増加に伴うネットワークサイズの拡大によって最小限に抑えられます。 - - -#### マネーロンダリングや疑わしい経済活動に対して、Rippleではどのような標準操作手順が実施されていますか? - -Rippleは、XRP Ledgerネットワーク全体でAML(Anti-Money Laundering)フラグを監視および報告するとともに、必要に応じてFinCEN(Financial Crimes Enforcement Network )に疑わしい活動を報告することをコミットしています。 - - -## セキュリティー上の懸念 - - -#### サードパーティーにより提供されたコードをマスターコードベースに受け入れる前に、Rippleではどのような確認プロセスを行っていますか? - -コード提供プロセスは、開発者がRippleの`rippled`リポジトリーに対してプルリクエストを出すことから始まります。このプルリクエストがあると、自動化された単体テストと統合テスト、およびそのプルリクエストによって変更されるコードについて専門知識を持つ開発者によりコードレビューが行われます。 - -プルリクエストが自動テストに合格し、レビュー担当者から承認されると、[リポジトリの信頼できる保守担当者](https://opensource.guide/best-practices/)によって、次のベータ版に含められるようにステージングされます。 - -#### RippleはXRP LedgerまたはXRP Ledgerネットワークを所有または管理していますか? - -いいえ、RippleはXRP LedgerとXRP Ledgerネットワークを所有も管理もしていません。 - -Rippleは、コアとなるXRP Ledgerサーバー([`rippled`](https://github.com/ripple/rippled))のリファレンス実装を公開し、オープンソースコードベースに貢献しているエンジニアチームを雇用しています。Rippleはまた、利用可能なソフトウェアのプリコンパイル済みバイナリーパッケージも定期的に発行しています。必要に応じて、誰でも自由に[ソースからソフトウェアをダウンロードしてコンパイル](install-rippled.html)できます。 - -XRP Ledgerと通信するためにRippleのXRP Ledgerソフトウェアを使用する必要はありません。 `rippled` はオープンソースソフトウェアであり、[ISCライセンス](https://github.com/ripple/rippled/blob/develop/LICENSE)の条件に従う限り、誰でも使用、拡張、および変更できます。ISCライセンスは、ソフトウェアの拡張方法と適応方法を厳密に制限する他のオープンソースライセンスと比較して非常に柔軟です。 - -#### Rippleでは、ソフトウェアを安全にダウンロードする方法を提供していますか? - -`rippled` ソースコードはから入手できます。ここでは、`master`、`release`、および`develop`の各ブランチのヒントに、`rippled`開発者が署名したバージョン設定コミットが常に含まれています。XRP Ledgerは、CentOS、RedHat Enterprise Linux、Fedora、およびUbuntu用のビルド済みRPMパッケージも提供します。これらのパッケージは不正開封防止が施されており、その真正性を確認できるようにRippleによってデジタル署名されています。最後に、リリースノートは安全なWebサイトで公開されており、リポジトリーのコミットIDと公開されているRPMパッケージのmd5sumが含まれています。 - - -#### Rippleは検証用のコードベースとユーザーソフトウェア用のコードベースを区別していますか? - -はい。ripple-libを含むXRP Ledger用のクライアントソフトウェアには、`rippled`(検証)とは異なるコードベースおよびリポジトリーがあります。 - - -## 関連項目 - -- [`rippled` コードベース](https://github.com/ripple/rippled) -- ユーザーソフトウェアのコードベース - - [ripple-lib](https://github.com/ripple/ripple-lib) - - [ripplecharts-frontend](https://github.com/ripple/ripplecharts-frontend) -- [Ripple GitHub Organization](https://github.com/ripple/) +# 技術に関するよくある質問 + +## バリデータ(検証者)とユニークノードリスト + + +#### トランザクション(取引)のバリデータはどのようなサービスを提供するのですか? + +バリデータは、トランザクションがプロトコル要件を満たしていて、結果として「有効」であるかどうかを判断します。バリデータが提供する独自の機能は、順序付けされた単位にトランザクションをグループ化し、二重支払いを防ぐことを目的としてその順序に同意することです。 + +コンセンサスプロセスの詳細については、[Consensus](consensus.html)と[Ripple Labs Tech Talk: Understanding Consensus](https://ripple.com/insights/ripple-labs-tech-talk-consensus-within-the-ripple-protocol/)を参照してください。 + + +#### バリデータの実行にはいくらかかりますか? + +バリデータを実行するのに手数料やXRPは必要ありません。メールサーバーを稼働するための電気代相当です。 + + +#### ユニークノードリスト(UNL)とは何ですか? + +特定の参加者が、互いに共謀して自身をだますような企てを行わないものとして信頼するトランザクションバリデータから構成されるリストです。 + + +#### どのUNLを選択すればよいですか? + +誰でもバリデータになりえるため、信頼できるセットを選択する責任はネットワーク参加者側にあります。現在、Rippleではデフォルトかつ推奨するリストを提供しています。これは、Rippleおよび第三者によって運用されているバリデータの履歴を見て、弊社が更新しているものです。最終的には、バリデータの品質に関して公表されているデータに基づいてネットワークの参加者自身が独自にリストを選択できるようになることで、Ripple自体がこのプロセスから身を引くようになると意図しています。 + + +#### RippleがそのUNLの採用を推奨しているなら、それは集中型システムを形成することにならないのですか? + +いいえ。XRP Ledgerネットワークはオプトイン方式です。各参加者は直接的または間接的に自身のUNLを選択することができます。万が一、Rippleが活動を停止したり、Rippleが悪意を持って行動したりした場合、参加者は自身のUNLを変更してXRP Ledgerを引き続き使用することができます。 + + +#### Rippleによって運用されないバリデータにとってインセンティブとなるものは何ですか? + +XRP Ledgerが広まり、銀行間決済に広く使用されると、参加者にとってネットワークの信頼性と安定性を保証するというインセンティブがあります。このような場合、金融機関はネットワークに参加するために`rippled`サーバーを運用します。サーバーの運用開始後、バリデータを運用するための追加のコストと労力は基本的にかかりません。ソフトウェアスイッチをオフからオンに切り替えるだけです。XRP Ledgerの進化を決定するのはバリデータであるため、バリデータを運用することの主なインセンティブは、ネットワークの安定した運用と賢明な進化を維持し保護することです。 + + +#### 金融機関は、特定の制度上の基準や要件を満たすのに役立つトランザクションバリデータを設定できますか? + +いいえ。トランザクション選択のためにカスタマイズされたバリデータポリシーを金融機関が設定することはできません。バリデータは既存のプロトコルに従う、従わないのいずれかを選択します。ソフトウェアは、プロトコルルールに従わない場合は機能しません。そのため、金融機関が社内の専門知識なしにカスタム実装を求めることはお勧めできません。 + + +#### ネットワーク内の20%を超えるノードが過半数と一致しない場合はどうなりますか? レジャー(台帳)の最終バージョンはどのように選択されますか? + +コンセンサスを目的に新しく作られたUNLリストで継続するために、ネットワークが一時的に停止して再構成される場合があります。この一時的な処理の遅れは、むしろ二重支出のリスクを回避します。 + +レジャーの正式な最終バージョンを決定する過程で、一時的な内部バージョンが複数存在する可能性があります。分散型システムでは、すべてのノードが同じ順序でトランザクションを受け取るわけではないため、そのような内部バージョンが発生します。従来のBitcoinにおける類似の振る舞いとしては、2つのブロックがほぼ同時にマイニングされたために2つのサーバーがそれぞれ異なる最長チェーンを参照してしまう状況があります。 + +しかし、正式なレジャーバージョンは常に1つしかありません。他のバージョンは無関係で、何の影響も与えません。 + + +#### XRP Ledgerでは正式なバリデータのオンボーディングプロセスを使用していますか? + +いいえ。XRP Ledgerは、中央権限のないシステムであるため、正式なバリデータのオンボーディングプロセスのようなものは存在しません。代わりに、Rippleでは推奨事項とベストプラクティスを提供しています。 + + +## XRPの役割 + + +#### RippleはなぜXRPを多く保有しているのですか? + +RippleはXRPを保有することで、XRP Ledgerを可能な限り有用なものにするインセンティブを持つことになります。XRPは、Ledgerのネイティブ資産として存在し、スパム対策や、ユーザーにとって有益な場合にブリッジ通貨として使われます。それ以外の場合、トランザクションでXRPを使用するかどうかは完全にユーザーの自由です。 + + +#### XRP Ledgerでは大量のトランザクションが行われている場合にどう対応しますか? + +XRP Ledgerは、スパム対策として、需要に基づいてトランザクションコストを動的に設定するように設計されています。潜在的なXRPの操作による影響は、時価総額とトランザクション量の増加に伴うネットワークサイズの拡大によって最小限に抑えられます。 + + +#### マネーロンダリングや疑わしい経済活動に対して、Rippleではどのような標準操作手順が実施されていますか? + +Rippleは、XRP Ledgerネットワーク全体でAML(Anti-Money Laundering)フラグを監視および報告するとともに、必要に応じてFinCEN(Financial Crimes Enforcement Network )に疑わしい活動を報告することをコミットしています。 + + +## セキュリティー上の懸念 + + +#### サードパーティーにより提供されたコードをマスターコードベースに受け入れる前に、Rippleではどのような確認プロセスを行っていますか? + +コード提供プロセスは、開発者がRippleの`rippled`リポジトリーに対してプルリクエストを出すことから始まります。このプルリクエストがあると、自動化された単体テストと統合テスト、およびそのプルリクエストによって変更されるコードについて専門知識を持つ開発者によりコードレビューが行われます。 + +プルリクエストが自動テストに合格し、レビュー担当者から承認されると、[リポジトリの信頼できる保守担当者](https://opensource.guide/best-practices/)によって、次のベータ版に含められるようにステージングされます。 + +#### RippleはXRP LedgerまたはXRP Ledgerネットワークを所有または管理していますか? + +いいえ、RippleはXRP LedgerとXRP Ledgerネットワークを所有も管理もしていません。 + +Rippleは、コアとなるXRP Ledgerサーバー([`rippled`](https://github.com/ripple/rippled))のリファレンス実装を公開し、オープンソースコードベースに貢献しているエンジニアチームを雇用しています。Rippleはまた、利用可能なソフトウェアのプリコンパイル済みバイナリーパッケージも定期的に発行しています。必要に応じて、誰でも自由に[ソースからソフトウェアをダウンロードしてコンパイル](install-rippled.html)できます。 + +XRP Ledgerと通信するためにRippleのXRP Ledgerソフトウェアを使用する必要はありません。 `rippled` はオープンソースソフトウェアであり、[ISCライセンス](https://github.com/ripple/rippled/blob/develop/LICENSE)の条件に従う限り、誰でも使用、拡張、および変更できます。ISCライセンスは、ソフトウェアの拡張方法と適応方法を厳密に制限する他のオープンソースライセンスと比較して非常に柔軟です。 + +#### Rippleでは、ソフトウェアを安全にダウンロードする方法を提供していますか? + +`rippled` ソースコードはから入手できます。ここでは、`master`、`release`、および`develop`の各ブランチのヒントに、`rippled`開発者が署名したバージョン設定コミットが常に含まれています。XRP Ledgerは、CentOS、RedHat Enterprise Linux、Fedora、およびUbuntu用のビルド済みRPMパッケージも提供します。これらのパッケージは不正開封防止が施されており、その真正性を確認できるようにRippleによってデジタル署名されています。最後に、リリースノートは安全なWebサイトで公開されており、リポジトリーのコミットIDと公開されているRPMパッケージのmd5sumが含まれています。 + + +#### Rippleは検証用のコードベースとユーザーソフトウェア用のコードベースを区別していますか? + +はい。ripple-libを含むXRP Ledger用のクライアントソフトウェアには、`rippled`(検証)とは異なるコードベースおよびリポジトリーがあります。 + + +## 関連項目 + +- [`rippled` コードベース](https://github.com/ripple/rippled) +- ユーザーソフトウェアのコードベース + - [ripple-lib](https://github.com/ripple/ripple-lib) + - [ripplecharts-frontend](https://github.com/ripple/ripplecharts-frontend) +- [Ripple GitHub Organization](https://github.com/ripple/) diff --git a/content/concepts/introduction/xrp-ledger-overview.ja.md b/content/concepts/introduction/xrp-ledger-overview.ja.md index 1e1e8e49ff..27820453c9 100644 --- a/content/concepts/introduction/xrp-ledger-overview.ja.md +++ b/content/concepts/introduction/xrp-ledger-overview.ja.md @@ -1,99 +1,99 @@ -# XRP Ledgerの概要 - -**XRP Ledger**は、ピアツーピア・サーバーのネットワーク機能を備えた分散型の暗号台帳です。XRP Ledgerは**XRP**の土台となるものであり、世界中で使用されている様々な通貨の橋渡しをするために設計されたデジタル資産です。RippleはXRP Ledgerの開発を主導し、_「価値のインターネット」_(情報が移動するようにお金が移動する世界)の実現に向けて鍵となる役割を果たすと期待されるXRPを推進しています。 - -## 決済のためのデジタル資産 - -XRPはXRP Ledger固有のデジタル資産です。暗号鍵を持ち、インターネットに接続できる人は誰でも、XRPを受け取り、保持し、任意の人に送ることができます。XRPは他の通貨での取引をも容易にできる魅力的なブリッジ通貨として開発されました。XRPには次のような多くの特性があり、これにより他の多くのユースケースでも魅力的な資産となっています。 - -- **[耐検閲性のある取引処理][]:** どの特定の個人もXRP取引の成功・不成功を勝手に決定することはできませんし、一度完了した取引を組み戻すこともできません。ネットワークに参加するユーザーは、ネットワークを健全に保っている限り、XRPを数秒で送受信できます。 -- **[高速で効率的なConsensusアルゴリズム][]:** XRP LedgerのConsensusアルゴリズムは、最大1500件/秒のスループットで取引を処理し、4秒から5秒で完了します。これらの特性により、XRPは、他の上位デジタル資産の少なくとも10倍の優位性をもっています。 -- **[限定されたXRP供給量][]:** XRP Ledgerが開始された時、1000億XRPが発行され、今後さらにXRPが発行されることはありません。(各XRPは、小数第6位まで再分割でき、総計10万兆(10の17乗)_drop_(XRPの最小単位)となります。)取引に必要なコストを支払うために少額のXRPが毎回消却され、使用可能なXRPの供給量は時間とともにゆっくりと減少していきます。 -- **[責任あるソフトウェア管理][]:** Rippleでは、世界に通用する技術をもった常勤の開発チームが、XRP Ledgerの基礎となるソフトウェアを保守し、継続的に改良しています。Rippleは、技術の担い手として、さらに技術に対する支援者として、世界中の政府および金融機関と建設的な関係を築いています。 -- **[安全で適応性のある暗号技術][]:** XRP Ledgerは、ECDSA(Bitcoinが使用しているものと同じアルゴリズム)などの業界標準のデジタル署名システムを利用しています。またEd25519などの最新の効率的なアルゴリズムもサポートしています。XRP Ledgerのソフトウェアは拡張性に富み、最先端の暗号技術の進歩に合わせてアルゴリズムを追加したり消却にしたりすることが可能です。 -- **[スマートコントラクト用の最新機能][]:** Escrow、ChecksおよびPayment Channelなどの機能は、[Interledgerプロトコル](https://interledger.org/)を含む最新の金融アプリケーションをサポートしています。この拡張機能のツールボックスには、ネットワークの修正プロセスや、取引の不変性を担保するチェックを分けて行うなどの安全機能が備わっています。 -- **[台帳上の分散型取引所][]:** XRP自身を便利に使えるあらゆる機能に加えて、XRP Ledgerには、ユーザーが希望する任意の通貨で表示された債務を追跡し取引するための多機能な会計システムや、プロトコルに組み込まれた取引機能などがあります。XRP Ledgerは、通貨間の長い支払いパスや、複数通貨の一元的決済を確実に処理し、XRPを活用することで分散型ネットワークに存在する信頼のギャップを解消しています。 - -## 耐検閲性のある取引処理 -[耐検閲性のある取引処理]: #耐検閲性のある取引処理 - -XRPは、Bitcoinや他の暗号資産と同様に新しい通貨の一種です。 - -- これらの**分散型デジタル資産**はそれぞれのコンピューターシステム上に存在し、これを管理する中央管理者はいません。システムが十分に分散されている限り、取引を組み戻したり、残高を凍結したり、他のユーザーが分散型デジタル資産を使用することを阻止したりすることはできません。これらの資産はもともとデジタルであるため、離れた場所からもオンラインで使用できます。 - -これは物理的な通貨と中央集権型デジタル通貨の良い部分を併せ持っていることを意味します。2009年にBitcoinが発明されるまでは、すべての通貨は次の2つのカテゴリに分類できました。 - -- **物理的な硬貨および紙幣**。これは、中央の管理者を経由せずに、個人が決済するために使用できます。ただし、物理的なものであるためオンラインでは使用できず、長距離のビジネスで使うには時間がかかり不便です。 -- **中央集権型デジタル通貨**。これには、取引を承認する管理者が必要です。管理者には、取引の検閲や組み戻しの権限、また一部の個人がデジタル通貨を使用することを許可しない権限もあります。デジタル通貨の運営者は、誰かが利用規約に違反したことが判明した場合、その個人の通貨を凍結したり没収したりすることもできます。ただし、これらの通貨の残高はデジタルであるためオンラインで使用でき、離れた場所の取引にも便利です。 - -**注記:** XRP Ledgerのユーザーは、XRP Ledgerで発行されたXRP以外の通貨であれば凍結 _できます_ 。詳細は、[凍結についての資料](freezes.html)を参照してください。 - -信頼できるバリデータノードから構成されるXRP Ledgerのシステムでは、人手をほとんどかけることなく、他の分散型システムよりも優れた権限の分散が可能です。不特定多数の参加者間でのConsensusを完全に自動化しているシステムは、議決権の集中のリスクに晒されます。例えば、Bitcoinの採掘は、電気代が安い場所に偏って集中しています。Rippleは、様々な地域の異なる組織によって運営される別個のバリデータリストを管理しています。そのためXRP Ledgerは検閲などの外部の圧力に対してプルーフ・オブ・ワークによる採掘よりも高い耐性を持つことができます。推奨されるバリデータを分散させるためのRippleの対応策の詳細は、[分散化戦略についてのアップデート](https://ripple.com/dev-blog/decentralization-strategy-update/)を参照してください。 - -XRP Ledgerの検閲機能の詳細については、[取引検閲の検知](transaction-censorship-detection.html)を参照してください。 - - -## 高速で効率的なConsensusアルゴリズム -[高速で効率的なConsensusアルゴリズム]: #高速で効率的なconsensusアルゴリズム - -XRP Ledgerが多くの暗号資産と最も異なっている点は、BitcoinやEthereumなど他のほとんどのシステムが行う「採掘」の時間と労力を必要とせず、独自のConsensusアルゴリズムを使用していることです。「プルーフ・オブ・ワーク」または「プルーフ・オブ・ステーク」の代わりに、XRP LedgerのConsensusアルゴリズムでは、すべての参加者が重複する「信頼されるバリデータ」のリストを持ち、どの取引がどの順序で発生したかについて効率的に合意するシステムとなっています。2018年の初めの時点で、Bitcoinネットワークが取引ごとに使用する電力量は、米国の一世帯の住宅で1日に使用される量よりも多く、さらに取引の承認には何時間もかかっています。1つのXRP取引で使用される電力量はごく少量であり、承認には4秒から5秒しかかかりません。 - -さらに、XRP Ledgerのそれぞれの新しい「台帳バージョン」(「ブロック」と同義)には、すべての残高が完全かつ最新の状態で保持されているため、サーバーは、何時間もかけてすべての取引履歴をダウンロードして再処理する必要がなく、数分でネットワークと同期することができます。 - -XRP LedgerのConsensusアルゴリズムの動作方法の詳細は、[XRP Ledger Consensusプロセス](consensus.html)を参照してください。XRP LedgerがこのConsensusアルゴリズムを使用する理由の背景は、[Consensusの原理とルール](consensus-principles-and-rules.html)を参照してください。 - - -## 限定されたXRP供給量 -[限定されたXRP供給量]: #限定されたXRP供給量 - -戦争および政変と並んで、超インフレは通貨が消滅する主な原因の1つです。バリデータが分散しているため、XRPは政治的要因に対してはある程度の耐性があります。一方、超インフレに対しては、XRP Ledgerのルールにより簡潔なソリューションで対応しています。つまりXRPのトータル供給量の限定です。発行量を増やすメカニズムがそもそもないため、XRPが超インフレに悩まされる可能性は非常に低くなります。 - -市場に出回るXRPの供給量は、次のいくつかの要因によって変化 _します_ 。 - -- XRP Ledgerで取引を送信すると、毎回少額のXRPが消却されます。送信者は消却する額を選択できますが、予想される取引の処理作業とネットワークの混雑度に応じて一定の最低額が設定されています。ネットワークが混み合っている場合、より多くのXRPを消却するよう選択している取引は、取引キューの前に割り込むことができます。これはスパム防止策で、XRP Ledgerネットワークに対する[DDoS](https://en.wikipedia.org/wiki/Denial-of-service_attack)攻撃にかかるコストは極めて高額になります。詳細は、[取引コスト](transaction-cost.html)を参照してください。 -- XRP Ledgerの各アカウントは、少額のXRPを準備しておく必要があります。これもスパム防止策で、台帳データが必要以上に増えてしまうことを防ぎます。XRP Ledgerのバリデータは、実世界でのXRPの価値の変動に対応する目的で、準備金として必要なXRPの金額を変更するために投票決議を行うことができます。(この投票が前回発生したのは2013年の12月であり、このときは[必要な準備金が50 XRPから20 XRPに減少しました](https://ripple.com/insights/proposed-change-to-ripple-reserve-requirement-2/)。)必要な準備金が減少すると、以前は準備金によって使用できなくなっていた部分のXRPが再び使用可能になります。 -- Ripple(会社)は、大量のXRPをEscrowに保有しています。毎月の初めに、Rippleで使用するために10億XRPがEscrowから引き出されます。(RippleはXRPを使用してXRP Ledgerエコシステムの成長を促し、また一部のXRPを機関投資家に売却しています。Rippleはまた、取引所での取引総量のうちのわずかな比率に限定して、プログラムに従って取引所でXRPを売却しています。Rippleは[XRP市場レポート](https://ripple.com/insights/q1-2018-xrp-markets-report/)で四半期ごとに売上高を公開しています。)毎月の終わりに、Rippleが売却や譲渡をせずに残っているXRPがあればEscrowに戻し、54か月保管します。RippleのEscrowポリシーの詳細は、[Ripple社はXRPの供給の予測可能性向上のために55BnのXRPをエスクローに預託しました](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/)を参照してください。Escrow機能の技術的詳細は、[Escrow](escrow.html)を参照してください。 - - -## 責任あるソフトウェア管理 -[責任あるソフトウェア管理]: #責任あるソフトウェア管理 - -ソフトウェアの水準は、そのソフトウェアを作成して管理する開発者によって決まります。Rippleは、XRP Ledgerソフトウェア、特にコアサーバーである`rippled`の保守および改良に専念する優秀な常勤エンジニアチームを雇用しています。[`rippled`のソースコード](https://github.com/ripple/rippled/)は、XRP Ledgerエコシステムの他の多くの部分と同様に、一般利用が可能なオープンソースライセンスを有するソフトウェアとして公開されています。Rippleのエンジニアは、次のようなソフトウェアエンジニアリングのベストプラクティスに従っています。 - -- 慎重で徹底的なコードレビュープロセス -- 包括的なコードカバレッジと単体テスト -- 潜在的な脆弱性およびメモリーリークの自動チェックの定期的な実行 -- 専門家組織による外部レビューヘの定期的な委託 - -巨額のXRPを長期にわたって保持する義務がある組織として、Rippleは、XRPが法に準拠して持続的かつ建設的な方法で広く使用されるために努力する強い自発的なインセンティブを持っています。「価値のインターネット」というRippleの理想と同じ目標を持つ企業に対して、Rippleは技術的なサポートを提供します。Rippleはまた、世界中の立法当局や規制当局と協力し、デジタル資産および関連ビジネスを管理する合理的な法律の実施に向けて誘導しています。 - - -## 安全で適応性のある暗号技術 -[安全で適応性のある暗号技術]: #安全で適応性のある暗号技術 - -暗号技術は分散システムにおいて最も重要な部分の1つであり、小さな技術的問題が一瞬にして世界中の悪意あるハッカーによる盗難につながる危険性を秘めています。XRP Ledgerは、取引の署名および検証のための業界標準の技術と、何年もの間、数千億USドルにも相当する価値を保護することに成功してきたアルゴリズムを使用しています。また、XRP Ledgerにはマルチ署名機能が備わっているため、バックアップとして多要素認証や複数のユーザー間で分割キーを使用できます。さらに暗号技術の飛躍的な進歩によって古いアルゴリズムが時代遅れになり、新しいアルゴリズムが導入される場合でも、ユーザーはそのままキーを使い続けることができます。 - -詳細は、[暗号鍵](cryptographic-keys.html)および[マルチ署名](multi-signing.html)を参照してください。 - - -## スマートコントラクト用の最新機能 -[スマートコントラクト用の最新機能]: #スマートコントラクト用の最新機能 - -XRP決済による単純な価値の移動に加えて、XRP Ledgerにはいくつかの拡張機能があります。「価値のインターネット」を標榜するアプリケーションの構築にこれらの機能を提供することにより、以前は知られていなかったニーズや実現困難であったニーズを満たすことができます。ネットワーク自体のなかで「スマートコントラクト」としてのアプリケーションを実行するのではなく、XRP Ledgerでは、コントラクトを処理するためのツールを提供しつつ、実行環境またはコンテナが適切であれば、すべての場所でアプリケーションを実行することができます。この「シンプルにする」というアプローチは、柔軟でスケーラブル、かつ強力です。 - -XRP Ledgerの拡張機能として次のものがあります。 - -- [Payment Channel](use-payment-channels.html)により、非同期の残高を署名の作成、検証とほぼ同時に変更することができます。 -- [Escrow](escrow.html)により、宣言した時間が経過するまで、または暗号条件が満たされるまで、XRPはロックされます。 -- [DepositAuth](depositauth.html)により、ユーザーは自分に対して送金できる相手か、送金できない相手かを決めることができます。 -- [分散型取引所](#台帳上の分散型取引所)により、ユーザーは台帳上で債務およびXRPを取引することができます。 -- [Invariant Checking](https://ripple.com/dev-blog/protecting-ledger-invariant-checking/)により、独立したレイヤーで取引実行時のバグから取引を保護することができます。 -- [Amendment](amendments.html)により、現行機能にスムーズにアップグレードすることができ、移行に際してエコシステムに被害を及ぼしたり、不確定要素を発生させることなく、継続して技術を発展させることができます。 - - -## 台帳上の分散型取引所 -[台帳上の分散型取引所]: #台帳上の分散型取引所 - -XRP Ledgerを他の暗号資産ネットワークとは異なるものにしている最も大きな特徴は、XRP Ledger上に完全な取引機能が含まれている点です。このシステム内で、事業者(通常は「ゲートウェイ」と言います)は希望の通貨を顧客に自由に発行でき、その顧客はその特定ゲートウェイによってXRPに発行された通貨や他のゲートウェイによって発行された通貨を自由に取引できます。このようにXRP Ledgerでは、取引注文によって流動性を確保しつつ、複数通貨間の一元的な取引を実行することができます。 - -分散型取引所がどのように機能するかの詳細は、[分散型取引所](decentralized-exchange.html)を参照してください。ゲートウェイビジネスモデルの詳細は、[Become an XRP Ledger Gateway](become-an-xrp-ledger-gateway.html)を参照してください。 +# XRP Ledgerの概要 + +**XRP Ledger**は、ピアツーピア・サーバーのネットワーク機能を備えた分散型の暗号台帳です。XRP Ledgerは**XRP**の土台となるものであり、世界中で使用されている様々な通貨の橋渡しをするために設計されたデジタル資産です。RippleはXRP Ledgerの開発を主導し、_「価値のインターネット」_(情報が移動するようにお金が移動する世界)の実現に向けて鍵となる役割を果たすと期待されるXRPを推進しています。 + +## 決済のためのデジタル資産 + +XRPはXRP Ledger固有のデジタル資産です。暗号鍵を持ち、インターネットに接続できる人は誰でも、XRPを受け取り、保持し、任意の人に送ることができます。XRPは他の通貨での取引をも容易にできる魅力的なブリッジ通貨として開発されました。XRPには次のような多くの特性があり、これにより他の多くのユースケースでも魅力的な資産となっています。 + +- **[耐検閲性のある取引処理][]:** どの特定の個人もXRP取引の成功・不成功を勝手に決定することはできませんし、一度完了した取引を組み戻すこともできません。ネットワークに参加するユーザーは、ネットワークを健全に保っている限り、XRPを数秒で送受信できます。 +- **[高速で効率的なConsensusアルゴリズム][]:** XRP LedgerのConsensusアルゴリズムは、最大1500件/秒のスループットで取引を処理し、4秒から5秒で完了します。これらの特性により、XRPは、他の上位デジタル資産の少なくとも10倍の優位性をもっています。 +- **[限定されたXRP供給量][]:** XRP Ledgerが開始された時、1000億XRPが発行され、今後さらにXRPが発行されることはありません。(各XRPは、小数第6位まで再分割でき、総計10万兆(10の17乗)_drop_(XRPの最小単位)となります。)取引に必要なコストを支払うために少額のXRPが毎回消却され、使用可能なXRPの供給量は時間とともにゆっくりと減少していきます。 +- **[責任あるソフトウェア管理][]:** Rippleでは、世界に通用する技術をもった常勤の開発チームが、XRP Ledgerの基礎となるソフトウェアを保守し、継続的に改良しています。Rippleは、技術の担い手として、さらに技術に対する支援者として、世界中の政府および金融機関と建設的な関係を築いています。 +- **[安全で適応性のある暗号技術][]:** XRP Ledgerは、ECDSA(Bitcoinが使用しているものと同じアルゴリズム)などの業界標準のデジタル署名システムを利用しています。またEd25519などの最新の効率的なアルゴリズムもサポートしています。XRP Ledgerのソフトウェアは拡張性に富み、最先端の暗号技術の進歩に合わせてアルゴリズムを追加したり消却にしたりすることが可能です。 +- **[スマートコントラクト用の最新機能][]:** Escrow、ChecksおよびPayment Channelなどの機能は、[Interledgerプロトコル](https://interledger.org/)を含む最新の金融アプリケーションをサポートしています。この拡張機能のツールボックスには、ネットワークの修正プロセスや、取引の不変性を担保するチェックを分けて行うなどの安全機能が備わっています。 +- **[台帳上の分散型取引所][]:** XRP自身を便利に使えるあらゆる機能に加えて、XRP Ledgerには、ユーザーが希望する任意の通貨で表示された債務を追跡し取引するための多機能な会計システムや、プロトコルに組み込まれた取引機能などがあります。XRP Ledgerは、通貨間の長い支払いパスや、複数通貨の一元的決済を確実に処理し、XRPを活用することで分散型ネットワークに存在する信頼のギャップを解消しています。 + +## 耐検閲性のある取引処理 +[耐検閲性のある取引処理]: #耐検閲性のある取引処理 + +XRPは、Bitcoinや他の暗号資産と同様に新しい通貨の一種です。 + +- これらの**分散型デジタル資産**はそれぞれのコンピューターシステム上に存在し、これを管理する中央管理者はいません。システムが十分に分散されている限り、取引を組み戻したり、残高を凍結したり、他のユーザーが分散型デジタル資産を使用することを阻止したりすることはできません。これらの資産はもともとデジタルであるため、離れた場所からもオンラインで使用できます。 + +これは物理的な通貨と中央集権型デジタル通貨の良い部分を併せ持っていることを意味します。2009年にBitcoinが発明されるまでは、すべての通貨は次の2つのカテゴリに分類できました。 + +- **物理的な硬貨および紙幣**。これは、中央の管理者を経由せずに、個人が決済するために使用できます。ただし、物理的なものであるためオンラインでは使用できず、長距離のビジネスで使うには時間がかかり不便です。 +- **中央集権型デジタル通貨**。これには、取引を承認する管理者が必要です。管理者には、取引の検閲や組み戻しの権限、また一部の個人がデジタル通貨を使用することを許可しない権限もあります。デジタル通貨の運営者は、誰かが利用規約に違反したことが判明した場合、その個人の通貨を凍結したり没収したりすることもできます。ただし、これらの通貨の残高はデジタルであるためオンラインで使用でき、離れた場所の取引にも便利です。 + +**注記:** XRP Ledgerのユーザーは、XRP Ledgerで発行されたXRP以外の通貨であれば凍結 _できます_ 。詳細は、[凍結についての資料](freezes.html)を参照してください。 + +信頼できるバリデータノードから構成されるXRP Ledgerのシステムでは、人手をほとんどかけることなく、他の分散型システムよりも優れた権限の分散が可能です。不特定多数の参加者間でのConsensusを完全に自動化しているシステムは、議決権の集中のリスクに晒されます。例えば、Bitcoinの採掘は、電気代が安い場所に偏って集中しています。Rippleは、様々な地域の異なる組織によって運営される別個のバリデータリストを管理しています。そのためXRP Ledgerは検閲などの外部の圧力に対してプルーフ・オブ・ワークによる採掘よりも高い耐性を持つことができます。推奨されるバリデータを分散させるためのRippleの対応策の詳細は、[分散化戦略についてのアップデート](https://ripple.com/dev-blog/decentralization-strategy-update/)を参照してください。 + +XRP Ledgerの検閲機能の詳細については、[取引検閲の検知](transaction-censorship-detection.html)を参照してください。 + + +## 高速で効率的なConsensusアルゴリズム +[高速で効率的なConsensusアルゴリズム]: #高速で効率的なconsensusアルゴリズム + +XRP Ledgerが多くの暗号資産と最も異なっている点は、BitcoinやEthereumなど他のほとんどのシステムが行う「採掘」の時間と労力を必要とせず、独自のConsensusアルゴリズムを使用していることです。「プルーフ・オブ・ワーク」または「プルーフ・オブ・ステーク」の代わりに、XRP LedgerのConsensusアルゴリズムでは、すべての参加者が重複する「信頼されるバリデータ」のリストを持ち、どの取引がどの順序で発生したかについて効率的に合意するシステムとなっています。2018年の初めの時点で、Bitcoinネットワークが取引ごとに使用する電力量は、米国の一世帯の住宅で1日に使用される量よりも多く、さらに取引の承認には何時間もかかっています。1つのXRP取引で使用される電力量はごく少量であり、承認には4秒から5秒しかかかりません。 + +さらに、XRP Ledgerのそれぞれの新しい「台帳バージョン」(「ブロック」と同義)には、すべての残高が完全かつ最新の状態で保持されているため、サーバーは、何時間もかけてすべての取引履歴をダウンロードして再処理する必要がなく、数分でネットワークと同期することができます。 + +XRP LedgerのConsensusアルゴリズムの動作方法の詳細は、[XRP Ledger Consensusプロセス](consensus.html)を参照してください。XRP LedgerがこのConsensusアルゴリズムを使用する理由の背景は、[Consensusの原理とルール](consensus-principles-and-rules.html)を参照してください。 + + +## 限定されたXRP供給量 +[限定されたXRP供給量]: #限定されたXRP供給量 + +戦争および政変と並んで、超インフレは通貨が消滅する主な原因の1つです。バリデータが分散しているため、XRPは政治的要因に対してはある程度の耐性があります。一方、超インフレに対しては、XRP Ledgerのルールにより簡潔なソリューションで対応しています。つまりXRPのトータル供給量の限定です。発行量を増やすメカニズムがそもそもないため、XRPが超インフレに悩まされる可能性は非常に低くなります。 + +市場に出回るXRPの供給量は、次のいくつかの要因によって変化 _します_ 。 + +- XRP Ledgerで取引を送信すると、毎回少額のXRPが消却されます。送信者は消却する額を選択できますが、予想される取引の処理作業とネットワークの混雑度に応じて一定の最低額が設定されています。ネットワークが混み合っている場合、より多くのXRPを消却するよう選択している取引は、取引キューの前に割り込むことができます。これはスパム防止策で、XRP Ledgerネットワークに対する[DDoS](https://en.wikipedia.org/wiki/Denial-of-service_attack)攻撃にかかるコストは極めて高額になります。詳細は、[取引コスト](transaction-cost.html)を参照してください。 +- XRP Ledgerの各アカウントは、少額のXRPを準備しておく必要があります。これもスパム防止策で、台帳データが必要以上に増えてしまうことを防ぎます。XRP Ledgerのバリデータは、実世界でのXRPの価値の変動に対応する目的で、準備金として必要なXRPの金額を変更するために投票決議を行うことができます。(この投票が前回発生したのは2013年の12月であり、このときは[必要な準備金が50 XRPから20 XRPに減少しました](https://ripple.com/insights/proposed-change-to-ripple-reserve-requirement-2/)。)必要な準備金が減少すると、以前は準備金によって使用できなくなっていた部分のXRPが再び使用可能になります。 +- Ripple(会社)は、大量のXRPをEscrowに保有しています。毎月の初めに、Rippleで使用するために10億XRPがEscrowから引き出されます。(RippleはXRPを使用してXRP Ledgerエコシステムの成長を促し、また一部のXRPを機関投資家に売却しています。Rippleはまた、取引所での取引総量のうちのわずかな比率に限定して、プログラムに従って取引所でXRPを売却しています。Rippleは[XRP市場レポート](https://ripple.com/insights/q1-2018-xrp-markets-report/)で四半期ごとに売上高を公開しています。)毎月の終わりに、Rippleが売却や譲渡をせずに残っているXRPがあればEscrowに戻し、54か月保管します。RippleのEscrowポリシーの詳細は、[Ripple社はXRPの供給の予測可能性向上のために55BnのXRPをエスクローに預託しました](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/)を参照してください。Escrow機能の技術的詳細は、[Escrow](escrow.html)を参照してください。 + + +## 責任あるソフトウェア管理 +[責任あるソフトウェア管理]: #責任あるソフトウェア管理 + +ソフトウェアの水準は、そのソフトウェアを作成して管理する開発者によって決まります。Rippleは、XRP Ledgerソフトウェア、特にコアサーバーである`rippled`の保守および改良に専念する優秀な常勤エンジニアチームを雇用しています。[`rippled`のソースコード](https://github.com/ripple/rippled/)は、XRP Ledgerエコシステムの他の多くの部分と同様に、一般利用が可能なオープンソースライセンスを有するソフトウェアとして公開されています。Rippleのエンジニアは、次のようなソフトウェアエンジニアリングのベストプラクティスに従っています。 + +- 慎重で徹底的なコードレビュープロセス +- 包括的なコードカバレッジと単体テスト +- 潜在的な脆弱性およびメモリーリークの自動チェックの定期的な実行 +- 専門家組織による外部レビューヘの定期的な委託 + +巨額のXRPを長期にわたって保持する義務がある組織として、Rippleは、XRPが法に準拠して持続的かつ建設的な方法で広く使用されるために努力する強い自発的なインセンティブを持っています。「価値のインターネット」というRippleの理想と同じ目標を持つ企業に対して、Rippleは技術的なサポートを提供します。Rippleはまた、世界中の立法当局や規制当局と協力し、デジタル資産および関連ビジネスを管理する合理的な法律の実施に向けて誘導しています。 + + +## 安全で適応性のある暗号技術 +[安全で適応性のある暗号技術]: #安全で適応性のある暗号技術 + +暗号技術は分散システムにおいて最も重要な部分の1つであり、小さな技術的問題が一瞬にして世界中の悪意あるハッカーによる盗難につながる危険性を秘めています。XRP Ledgerは、取引の署名および検証のための業界標準の技術と、何年もの間、数千億USドルにも相当する価値を保護することに成功してきたアルゴリズムを使用しています。また、XRP Ledgerにはマルチ署名機能が備わっているため、バックアップとして多要素認証や複数のユーザー間で分割キーを使用できます。さらに暗号技術の飛躍的な進歩によって古いアルゴリズムが時代遅れになり、新しいアルゴリズムが導入される場合でも、ユーザーはそのままキーを使い続けることができます。 + +詳細は、[暗号鍵](cryptographic-keys.html)および[マルチ署名](multi-signing.html)を参照してください。 + + +## スマートコントラクト用の最新機能 +[スマートコントラクト用の最新機能]: #スマートコントラクト用の最新機能 + +XRP決済による単純な価値の移動に加えて、XRP Ledgerにはいくつかの拡張機能があります。「価値のインターネット」を標榜するアプリケーションの構築にこれらの機能を提供することにより、以前は知られていなかったニーズや実現困難であったニーズを満たすことができます。ネットワーク自体のなかで「スマートコントラクト」としてのアプリケーションを実行するのではなく、XRP Ledgerでは、コントラクトを処理するためのツールを提供しつつ、実行環境またはコンテナが適切であれば、すべての場所でアプリケーションを実行することができます。この「シンプルにする」というアプローチは、柔軟でスケーラブル、かつ強力です。 + +XRP Ledgerの拡張機能として次のものがあります。 + +- [Payment Channel](use-payment-channels.html)により、非同期の残高を署名の作成、検証とほぼ同時に変更することができます。 +- [Escrow](escrow.html)により、宣言した時間が経過するまで、または暗号条件が満たされるまで、XRPはロックされます。 +- [DepositAuth](depositauth.html)により、ユーザーは自分に対して送金できる相手か、送金できない相手かを決めることができます。 +- [分散型取引所](#台帳上の分散型取引所)により、ユーザーは台帳上で債務およびXRPを取引することができます。 +- [Invariant Checking](https://ripple.com/dev-blog/protecting-ledger-invariant-checking/)により、独立したレイヤーで取引実行時のバグから取引を保護することができます。 +- [Amendment](amendments.html)により、現行機能にスムーズにアップグレードすることができ、移行に際してエコシステムに被害を及ぼしたり、不確定要素を発生させることなく、継続して技術を発展させることができます。 + + +## 台帳上の分散型取引所 +[台帳上の分散型取引所]: #台帳上の分散型取引所 + +XRP Ledgerを他の暗号資産ネットワークとは異なるものにしている最も大きな特徴は、XRP Ledger上に完全な取引機能が含まれている点です。このシステム内で、事業者(通常は「ゲートウェイ」と言います)は希望の通貨を顧客に自由に発行でき、その顧客はその特定ゲートウェイによってXRPに発行された通貨や他のゲートウェイによって発行された通貨を自由に取引できます。このようにXRP Ledgerでは、取引注文によって流動性を確保しつつ、複数通貨間の一元的な取引を実行することができます。 + +分散型取引所がどのように機能するかの詳細は、[分散型取引所](decentralized-exchange.html)を参照してください。ゲートウェイビジネスモデルの詳細は、[Become an XRP Ledger Gateway](become-an-xrp-ledger-gateway.html)を参照してください。 diff --git a/content/concepts/introduction/xrp.ja.md b/content/concepts/introduction/xrp.ja.md index 421e96c4af..16ba8cbb8b 100644 --- a/content/concepts/introduction/xrp.ja.md +++ b/content/concepts/introduction/xrp.ja.md @@ -1,15 +1,15 @@ -# XRP - -**XRP**は、XRP Ledgerのネイティブ暗号資産です。XRP Ledgerのすべての[アカウント](accounts.html)間で相互にXRPを送金できます。アカウントは、最小限度額のXRPを[準備金](reserves.html)として保有する必要があります。XRP Ledgerアドレス間にてXRPの直接送金が可能で、ゲートウェイや流動性プロバイダーを必要としません。このため、XRPは便利なブリッジ通貨となりました。 - -XRP Ledgerの高度機能の一部([Escrow](escrow.html)や[Payment Channel](use-payment-channels.html)など)は、XRPでのみ使えます。オーダーブックの[オートブリッジング](https://ripple.com/dev-blog/introducing-offer-autobridging/)は、XRPを使用して、2つの発行済み通貨のオーダーブックをXRPオーダーブックにマージして、合成された一つのオーダーブックを作成することで、分散型取引所の流動性を高めます。(たとえば、オートブリッジングによりUSD:XRPオーダーとXRP:EURオーダーがマッチングされ、USD:EURオーダーブックとなります。) - -XRPはまた、ネットワークのスパムの防御対策としても機能します。すべてのXRP Ledgerアドレスには、XRP Ledger維持管理コストを支払うために少額のXRPが必要です。[トランザクションコスト](transaction-cost.html)と[準備金](reserves.html)は、XRP建ての中立的な手数料であり、どの当事者にも支払われません。レジャーのデータフォーマットで、XRPは[AccountRootオブジェクト](accountroot.html)に保管されます。 - -XRPのユースケース、メリット、最新情報についての詳細は、[XRPポータル](https://ripple.com/xrp-portal/)を参照してください。 - -## XRPの特性 - -一番最初のレジャーにて1000億XRPが発行され、これ以上新しいXRPは作成できません。XRPは、[トランザクションコスト](transaction-cost.html)によって消却されるか、またはキーの所有者がいないアドレスに送金すると失われることがあります。このため、XRPは本質的にはやや[デフレ通貨](https://en.wikipedia.org/wiki/Deflation)です。XRPがなくなることを心配する必要はありません。現時点の消却のペースでは、すべてのXRPが消却されるまでに約7万年かかります。またXRPの総供給量の変化に伴い、XRPの[価格と手数料が調整される可能性があります](fee-voting.html)。 - -技術的には、XRPは0.000001 XRPの単位まで正確に計算され、「Drop」と呼ばれます。[`rippled`API](rippled-api.html)では、XRPの量は常にXRPのdrop単位で指定する必要があります。たとえば1 XRPは`1000000` dropと表されます。詳細については、[通貨フォーマットのリファレンス](currency-formats.html)を参照してください。 +# XRP + +**XRP**は、XRP Ledgerのネイティブ暗号資産です。XRP Ledgerのすべての[アカウント](accounts.html)間で相互にXRPを送金できます。アカウントは、最小限度額のXRPを[準備金](reserves.html)として保有する必要があります。XRP Ledgerアドレス間にてXRPの直接送金が可能で、ゲートウェイや流動性プロバイダーを必要としません。このため、XRPは便利なブリッジ通貨となりました。 + +XRP Ledgerの高度機能の一部([Escrow](escrow.html)や[Payment Channel](use-payment-channels.html)など)は、XRPでのみ使えます。オーダーブックの[オートブリッジング](https://ripple.com/dev-blog/introducing-offer-autobridging/)は、XRPを使用して、2つの発行済み通貨のオーダーブックをXRPオーダーブックにマージして、合成された一つのオーダーブックを作成することで、分散型取引所の流動性を高めます。(たとえば、オートブリッジングによりUSD:XRPオーダーとXRP:EURオーダーがマッチングされ、USD:EURオーダーブックとなります。) + +XRPはまた、ネットワークのスパムの防御対策としても機能します。すべてのXRP Ledgerアドレスには、XRP Ledger維持管理コストを支払うために少額のXRPが必要です。[トランザクションコスト](transaction-cost.html)と[準備金](reserves.html)は、XRP建ての中立的な手数料であり、どの当事者にも支払われません。レジャーのデータフォーマットで、XRPは[AccountRootオブジェクト](accountroot.html)に保管されます。 + +XRPのユースケース、メリット、最新情報についての詳細は、[XRPポータル](https://ripple.com/xrp-portal/)を参照してください。 + +## XRPの特性 + +一番最初のレジャーにて1000億XRPが発行され、これ以上新しいXRPは作成できません。XRPは、[トランザクションコスト](transaction-cost.html)によって消却されるか、またはキーの所有者がいないアドレスに送金すると失われることがあります。このため、XRPは本質的にはやや[デフレ通貨](https://en.wikipedia.org/wiki/Deflation)です。XRPがなくなることを心配する必要はありません。現時点の消却のペースでは、すべてのXRPが消却されるまでに約7万年かかります。またXRPの総供給量の変化に伴い、XRPの[価格と手数料が調整される可能性があります](fee-voting.html)。 + +技術的には、XRPは0.000001 XRPの単位まで正確に計算され、「Drop」と呼ばれます。[`rippled`API](rippled-api.html)では、XRPの量は常にXRPのdrop単位で指定する必要があります。たとえば1 XRPは`1000000` dropと表されます。詳細については、[通貨フォーマットのリファレンス](currency-formats.html)を参照してください。 diff --git a/content/concepts/issued-currencies/authorized-trust-lines.ja.md b/content/concepts/issued-currencies/authorized-trust-lines.ja.md index fa3cfaf7bc..20a5812afc 100644 --- a/content/concepts/issued-currencies/authorized-trust-lines.ja.md +++ b/content/concepts/issued-currencies/authorized-trust-lines.ja.md @@ -1,104 +1,104 @@ -# Authorized Trust Lines - -XRP LedgerのAuthorized Trust Lines機能により、通貨イシュアーは自身の(XRP以外の)発行済み通貨を保有できるユーザーを制限できます。これにより、不明なXRP Ledgerアドレスは発行済み通貨を保有できなくなります。Authorized Trust Lines機能は発行済み通貨にのみ適用され、XRPには影響しません。 - -Authorized Trust Lines機能を使用するには、発行アドレスでRequireAuthフラグを有効にします。その後、発行アドレスは他のアドレスからのトラストラインを承認する[TrustSetトランザクション][]を送信できます。RequireAuthが有効であるときに発行アドレスから発行された資金を他のアドレスが保有できるのは、発行アドレスへのトラストラインが承認されている場合だけです。 - -トラストラインを承認するトランザクションには発行アドレスによる署名が必要ですが、これにより発行アドレスが危険にさらされる可能性が高くなります。RequireAuthが有効であるXRP Ledgerへの資金の送金プロセスは次のようになります。 - -1. 発行ゲートウェイがその発行アドレスを顧客に公開します。 -2. 顧客のXRP Ledgerアドレスからゲートウェイの発行アドレスへのトラストラインを作成するために顧客は[TrustSetトランザクション][]を送信します。これは、ゲートウェイが発行した特定通貨を特定の限度額まで保有することを顧客が望んでいることを意味します。 -3. ゲートウェイの発行アドレスは、顧客のトラストラインを承認するTrustSetトランザクションを送信します。 - -**ヒント:** 発行ゲートウェイは、顧客がトラストラインの作成を完了する前に、そのトラストラインを事前に承認できます(ステップ3)。これにより限度額がゼロのトラストラインが作成されます。顧客のTrustSetトランザクション(ステップ2)により、事前承認されたトラストラインに限度額が設定されます。_([TrustSetAuth Amendment][]が必要です。)_ - -## RequireAuth設定 - -`RequireAuth`設定([RippleAPI](rippleapi-reference.html)の`requireAuthorization`)をすることで、発行アドレスが当該通貨に関してその取引相手とのトラストラインを具体的に承認している場合を除き、すべての取引相手はアドレスから発行された残高を保有できなくなります。 - -用心として、発行ゲートウェイが[運用アドレスとスタンバイアドレス](issuing-and-operational-addresses.html)に対して`RequireAuth`を常に有効にし、これらのアドレスへのトラストラインを一切承認しないことが推奨されます。これにより、運用アドレスとスタンバイアドレスがXRP Ledgerで誤って通貨を発行することを防止できます。これは純粋な予防措置であり、発行アドレスにより作成された発行済み通貨の残高を、これらのアドレスが意図したとおりに送金することを阻止するものではありません。 - -Authorized Trust Lines機能を使用するには、イシュアーがその発行アドレスの`RequireAuth`も有効にする必要もあります。その後、発行アドレスは顧客からの[各トラストラインを承認する`TrustSet`トランザクションを送信する](#トラストラインの承認)必要があります。 - -**注意:** アカウントが`RequireAuth`を有効にできるのは、アカウントがトラストラインを所有しておらず、またXRP Ledgerにオファーがない場合に限られます。したがってXRP Ledgerで取引を開始する前に、この設定を使用するかどうかを決定しておく必要があります。 - -### RequireAuthの有効化 - -ローカルでホストされている`rippled`の[submitメソッド][]を使用して、RequireAuthフラグを有効にする[AccountSetトランザクション][]を送信する例を以下に示します。(このメソッドは、アドレスが発行アドレス、運用アドレス、スタンバイアドレスのいずれであっても同様に機能します。) - -要求: - -``` -POST http://localhost:5005/ -{ - "method": "submit", - "params": [ - { - "secret": "sn3nxiW7v8KXzPzAqzyHXbSSKNuN9", - "tx_json": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "Fee": "15000", - "Flags": 0, - "SetFlag": 2, - "TransactionType": "AccountSet" - } - } - ] -} -``` - -{% include '_snippets/secret-key-warning.md' %} - - -## アカウントのRequireAuthの有効化の確認 - -アカウントのRequireAuth設定の有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](accountroot.html)と比較します。 - -`Flags`値と`lsfRequireAuth`フラグ値(0x00040000)のビット単位のANDの結果がゼロ以外の場合、アカウントではRequireAuthが有効になっています。結果がゼロの場合、アカウントではRequireAuthが無効になっています。 - -## トラストラインの承認 - -Authorized Trust Lines機能を使用している場合、他のアカウントからのトラストラインを最初に承認しなければ、これらの他のアカウントはあなたが発行する残高を保有できません。複数の通貨を発行する場合には、各通貨のトラストラインを個別に承認する必要があります。 - -トラストラインを承認するには、`LimitAmount`の`issuer`として信頼するユーザーを指定して、発行アドレスから[TrustSetトラストライン][]を送信します。`value`(信頼する額)を**0**のままにし、トランザクションの[tfSetfAuth](trustset.html#trustsetのフラグ)フラグを有効にします。 - -ローカルでホストされている`rippled`の[submitメソッド][]を使用して、顧客アドレス(rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn)が発行アドレス(rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW)からのUSDのイシュアンスを保有することを承認するTrustSetトランザクションを送信する例を以下に示します。 - -要求: - -``` -POST http://localhost:8088/ -{ - "method": "submit", - "params": [ - { - "secret": "sn3nxiW7v8KXzPzAqzyHXbSSKNuN9", - "tx_json": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "Fee": "15000", - "TransactionType": "TrustSet", - "LimitAmount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": 0 - }, - "Flags": 65536 - } - } - ] -} -``` - -{% include '_snippets/secret-key-warning.md' %} - - -## トラストラインの承認状況の確認 - -トラストラインの承認状況を確認するには、[account_linesメソッド][]を使用してトラストラインを調べます。要求の`account`フィールドに顧客のアドレスを指定し、`peer`フィールドにイシュアーのアドレスを指定します。 - -応答の`result.lines`配列で、必要とする通貨のトラストラインを表している`currency`フィールドを持つオブジェクトを見つけます。そのオブジェクトの`peer_authorized`フィールドに値`true`が設定されている場合は、イシュアー(要求の`peer`フィールドとして使用したアドレス)によりそのトラストラインが承認されています。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Authorized Trust Lines + +XRP LedgerのAuthorized Trust Lines機能により、通貨イシュアーは自身の(XRP以外の)発行済み通貨を保有できるユーザーを制限できます。これにより、不明なXRP Ledgerアドレスは発行済み通貨を保有できなくなります。Authorized Trust Lines機能は発行済み通貨にのみ適用され、XRPには影響しません。 + +Authorized Trust Lines機能を使用するには、発行アドレスでRequireAuthフラグを有効にします。その後、発行アドレスは他のアドレスからのトラストラインを承認する[TrustSetトランザクション][]を送信できます。RequireAuthが有効であるときに発行アドレスから発行された資金を他のアドレスが保有できるのは、発行アドレスへのトラストラインが承認されている場合だけです。 + +トラストラインを承認するトランザクションには発行アドレスによる署名が必要ですが、これにより発行アドレスが危険にさらされる可能性が高くなります。RequireAuthが有効であるXRP Ledgerへの資金の送金プロセスは次のようになります。 + +1. 発行ゲートウェイがその発行アドレスを顧客に公開します。 +2. 顧客のXRP Ledgerアドレスからゲートウェイの発行アドレスへのトラストラインを作成するために顧客は[TrustSetトランザクション][]を送信します。これは、ゲートウェイが発行した特定通貨を特定の限度額まで保有することを顧客が望んでいることを意味します。 +3. ゲートウェイの発行アドレスは、顧客のトラストラインを承認するTrustSetトランザクションを送信します。 + +**ヒント:** 発行ゲートウェイは、顧客がトラストラインの作成を完了する前に、そのトラストラインを事前に承認できます(ステップ3)。これにより限度額がゼロのトラストラインが作成されます。顧客のTrustSetトランザクション(ステップ2)により、事前承認されたトラストラインに限度額が設定されます。_([TrustSetAuth Amendment][]が必要です。)_ + +## RequireAuth設定 + +`RequireAuth`設定([RippleAPI](rippleapi-reference.html)の`requireAuthorization`)をすることで、発行アドレスが当該通貨に関してその取引相手とのトラストラインを具体的に承認している場合を除き、すべての取引相手はアドレスから発行された残高を保有できなくなります。 + +用心として、発行ゲートウェイが[運用アドレスとスタンバイアドレス](issuing-and-operational-addresses.html)に対して`RequireAuth`を常に有効にし、これらのアドレスへのトラストラインを一切承認しないことが推奨されます。これにより、運用アドレスとスタンバイアドレスがXRP Ledgerで誤って通貨を発行することを防止できます。これは純粋な予防措置であり、発行アドレスにより作成された発行済み通貨の残高を、これらのアドレスが意図したとおりに送金することを阻止するものではありません。 + +Authorized Trust Lines機能を使用するには、イシュアーがその発行アドレスの`RequireAuth`も有効にする必要もあります。その後、発行アドレスは顧客からの[各トラストラインを承認する`TrustSet`トランザクションを送信する](#トラストラインの承認)必要があります。 + +**注意:** アカウントが`RequireAuth`を有効にできるのは、アカウントがトラストラインを所有しておらず、またXRP Ledgerにオファーがない場合に限られます。したがってXRP Ledgerで取引を開始する前に、この設定を使用するかどうかを決定しておく必要があります。 + +### RequireAuthの有効化 + +ローカルでホストされている`rippled`の[submitメソッド][]を使用して、RequireAuthフラグを有効にする[AccountSetトランザクション][]を送信する例を以下に示します。(このメソッドは、アドレスが発行アドレス、運用アドレス、スタンバイアドレスのいずれであっても同様に機能します。) + +要求: + +``` +POST http://localhost:5005/ +{ + "method": "submit", + "params": [ + { + "secret": "sn3nxiW7v8KXzPzAqzyHXbSSKNuN9", + "tx_json": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "Fee": "15000", + "Flags": 0, + "SetFlag": 2, + "TransactionType": "AccountSet" + } + } + ] +} +``` + +{% include '_snippets/secret-key-warning.md' %} + + +## アカウントのRequireAuthの有効化の確認 + +アカウントのRequireAuth設定の有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](accountroot.html)と比較します。 + +`Flags`値と`lsfRequireAuth`フラグ値(0x00040000)のビット単位のANDの結果がゼロ以外の場合、アカウントではRequireAuthが有効になっています。結果がゼロの場合、アカウントではRequireAuthが無効になっています。 + +## トラストラインの承認 + +Authorized Trust Lines機能を使用している場合、他のアカウントからのトラストラインを最初に承認しなければ、これらの他のアカウントはあなたが発行する残高を保有できません。複数の通貨を発行する場合には、各通貨のトラストラインを個別に承認する必要があります。 + +トラストラインを承認するには、`LimitAmount`の`issuer`として信頼するユーザーを指定して、発行アドレスから[TrustSetトラストライン][]を送信します。`value`(信頼する額)を**0**のままにし、トランザクションの[tfSetfAuth](trustset.html#trustsetのフラグ)フラグを有効にします。 + +ローカルでホストされている`rippled`の[submitメソッド][]を使用して、顧客アドレス(rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn)が発行アドレス(rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW)からのUSDのイシュアンスを保有することを承認するTrustSetトランザクションを送信する例を以下に示します。 + +要求: + +``` +POST http://localhost:8088/ +{ + "method": "submit", + "params": [ + { + "secret": "sn3nxiW7v8KXzPzAqzyHXbSSKNuN9", + "tx_json": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "Fee": "15000", + "TransactionType": "TrustSet", + "LimitAmount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": 0 + }, + "Flags": 65536 + } + } + ] +} +``` + +{% include '_snippets/secret-key-warning.md' %} + + +## トラストラインの承認状況の確認 + +トラストラインの承認状況を確認するには、[account_linesメソッド][]を使用してトラストラインを調べます。要求の`account`フィールドに顧客のアドレスを指定し、`peer`フィールドにイシュアーのアドレスを指定します。 + +応答の`result.lines`配列で、必要とする通貨のトラストラインを表している`currency`フィールドを持つオブジェクトを見つけます。そのオブジェクトの`peer_authorized`フィールドに値`true`が設定されている場合は、イシュアー(要求の`peer`フィールドとして使用したアドレス)によりそのトラストラインが承認されています。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/issued-currencies/freezes.ja.md b/content/concepts/issued-currencies/freezes.ja.md index 799dfb5fb9..0a762470d0 100644 --- a/content/concepts/issued-currencies/freezes.ja.md +++ b/content/concepts/issued-currencies/freezes.ja.md @@ -1,429 +1,429 @@ -# 発行済み通貨の凍結 - -XRPは発行済み通貨ではありません。XRPはXRP Ledgerのネイティブ資産であり、XRP Ledgerでのトランザクションの実行に必要となります。XRPは取引相手を必要としません。つまり、XRPを保有しているということは負債ではなく実際の通貨であるXRPを保有していることになります。このため、_**いかなる組織または個人もXRPを凍結できません**_。 - -XRP Ledgerでは、XRP以外の通貨はすべて発行済み通貨として表すことができます。このような発行済み通貨(「イシュアンス」または「IOU」とも呼ばれます)は、「トラストライン」と呼ばれるアドレス間の会計上の関係で管理されます。発行済み通貨は通常、負債とも資産とも見なされるため、トラストラインの残高は、見る視点によってマイナスにもプラスにもなります。どのアドレスも(XRP以外の)通貨を自由に発行できますが、他のアドレスが希望する保有量によってのみ制限されます。 - -特定のケースでは、法的要件への準拠や、疑わしい活動の調査のために、取引所またはゲートウェイが、XRP以外の発行済み通貨の残高を急きょ凍結することがあります。 - -**ヒント:** 誰もXRPを凍結することはできません。 - -凍結については、3種類の設定があります。 - -* [**Individual Freeze**](#individual-freeze) - 1件の取引相手を凍結します。 -* [**Global Freeze**](#global-freeze) - 取引相手全員を凍結します。 -* [**No Freeze**](#no-freeze) - 個々の取引相手の凍結機能と、Global Freezeを終了できる機能を永久に放棄します。 - -凍結機能は発行済み通貨にのみ適用されます。XRP Ledgerには特権的な立場の当事者は存在しないため、凍結機能では、取引相手が、XRPまたはその他の取引相手が発行した資金で取引を実行することを阻止できません。Rippleを含め誰もXRPを凍結することはできません。 - -凍結対象の残高がプラス、マイナスにかかわらず、すべての凍結設定を行うことができます。通貨イシュアーまたは通貨保持者のいずれかがトラストラインを凍結できますが、通貨保持者がイシュアーを凍結しても、その影響はわずかです。 - - -## Individual Freeze - -**Individual Freeze**機能は、[トラストライン](trust-lines-and-issuing.html)に関する設定です。発行アドレスがIndividual Freeze設定を有効にすると、そのトラストラインの通貨に対して以下のルールが適用されます。 - -* 凍結されたトラストラインの両当事者間の直接決済は、凍結後も可能です。 -* そのトラストラインの取引相手は、イシュアーへ直接支払う場合を除き、凍結されたトラストラインの残高を減らすことはできません。取引相手は、凍結されたイシュアンスを直接イシュアーに送信することだけが可能です。 -* 取引相手は、凍結されたトラストライン上で引き続きその他の当事者からの支払を受け取ることができます。 -* 取引相手が凍結されたトラストライン上の発行済み通貨の売りオファーを出した場合、[資金不足とみなされます](offers.html#オファーのライフサイクル)。 - -確認事項: トラストラインではXRPは保持されません。XRPは凍結できません。 - -金融機関は、疑わしい活動を行う取引相手や、金融機関の利用規約に違反する取引相手にリンクしているトラストラインを凍結できます。金融機関は、同機関が運用する、XRP Ledgerに接続されているその他のシステムにおいても、その取引相手を凍結する必要があります。(凍結しないと、アドレスから金融機関経由で支払を送金することで、望ましくない活動を行うことが依然として可能となります。) - -各個別アドレスは金融機関とのトラストラインを凍結できます。これは金融機関とその他のユーザーの間の取引には影響しません。ただし、他のアドレス([運用アドレス](issuing-and-operational-addresses.html)を含む)からその個別アドレスに対しては、その金融機関のイシュアンスを送信できなくなります。このようなIndividual Freezeは、オファーには影響しません。 - -Individual Freezeは1つの通貨にのみ適用されます。特定の取引相手の複数通貨を凍結するには、アドレスが各通貨のトラストラインで、個別にIndividual Freezeを有効にする必要があります。 - -[No Freeze](#no-freeze)設定を有効にしている場合、アドレスはIndividual Freeze設定を有効にできません。 - - -## Global Freeze - -**Global Freeze**機能は、アドレスに設定できます。発行アドレスがGlobal Freeze機能を有効にすると、その発行アドレスのすべての発行済み通貨に対して以下のルールが適用されます: - -* 凍結された発行アドレスのすべての取引相手は、イシュアーに直接支払う場合を除き、凍結されたアドレスへのトラストラインの残高を減らすことができません。(これはすべての[運用アドレス](issuing-and-operational-addresses.html)にも影響します。) -* 凍結された発行アドレスの取引相手は、発行アドレスとの直接的な支払の送受信を引き続き行うことができます。 -* 凍結アドレスによる発行済み通貨の売りオファーはすべて、[資金不足とみなされます](offers.html#オファーのライフサイクル)。 - -確認事項: アドレスはXRPを発行できません。Global FreezeはXRPには適用されません。 - -運用アドレスのシークレットキーが漏えいした場合には、運用アドレスの制御を取り戻した後であっても金融機関の[発行アドレス](issuing-and-operational-addresses.html)に対してGlobal Freezeを有効にすることが有益です。これにより資金流出を止め、攻撃者がそれ以上の資金を盗むことを防止し、少なくともそれまでの経過の追跡が容易になります。XRP LedgerでGlobal Freezeを行う他に、金融機関は外部システムへのコネクターでの疑わしい活動を停止する必要があります。 - -また、金融機関が新しい[発行アドレス](issuing-and-operational-addresses.html)への移行や、営業の停止を予定している場合にも、Global Freezeを有効にすることが有用です。これにより、特定の時点で資金がロックされるため、ユーザーは他の通貨で取引することができなくなります。 - -Global Freezeは、当該アドレスによって発行および保有されている _すべての_ 通貨に適用されます。1つの通貨のみに対してGlobal Freezeを有効にすることはできません。一部の通貨のみを凍結できるようにしたい場合は、通貨ごとに異なるアドレスを使用してください。 - -アドレスのGlobal Freeze設定はいつでも有効にできます。ただし、アドレスの[No Freeze](#no-freeze)設定を有効にすると、Global Freezeを _無効にする_ ことはできません。 - - -## No Freeze - -**No Freeze**機能をアドレスに設定すると、取引相手が発行した通貨を凍結する機能を永久に放棄します。この機能を使用すれば、企業は自社が発行した資金を「物理的なお金のように」扱うことができます。これにより、企業は顧客どうしがその資金を取引することに介入できなくなります。 - -確認事項: XRPはすでに凍結できません。No Freeze機能は、XRP Ledgerで発行された他の通貨にのみ適用されます。 - -No Freeze設定には次の2つの効果があります。 - -* 発行アドレスは、すべての取引相手とのトラストラインに対してIndividual Freezeを有効にできなくなります。 -* 発行アドレスは、Global Freezeを有効にしてグローバル凍結を施行できますが、Global Freezeを _無効にする_ ことはできません。 - -XRP Ledgerは金融機関に対し、その発行資金が表す債務を履行することを強制できません。このため、Global Freezeを有効にする機能を放棄しても顧客を保護できません。ただし、Global Freezeを _無効にする_ 機能を放棄することで、Global Freeze機能が一部の顧客に対して不当に適用されないようにすることができます。 - -No Freeze設定は、アドレスに対して発行される通貨と、アドレスから発行される通貨のすべてに適用されます。一部の通貨のみを凍結できるようにしたい場合は、通貨ごとに異なるアドレスを使用してください。 - -No Freeze設定は、アドレスのマスターキーのシークレットキーにより署名されたトランザクションでのみ有効にできます。[レギュラーキー](setregularkey.html)または[マルチ署名済みトランザクション](multi-signing.html)を使用してNo Freezeを有効にすることはできません。 - - -# 技術詳細 - -## Individual Freezeの有効化または無効化 - -### 使用する`rippled` - -特定のトラストラインに対するIndividual Freezeを有効または無効にするには、`TrustSet`トランザクションを送信します。Freezeを有効にするには[`tfSetFreeze`フラグ](trustset.html#trustsetのフラグ)を使用し、無効にするには`tfClearFreeze`フラグを使用します。トランザクションのフィールドは次のとおりです。 - -| フィールド | 値 | 説明 | -|----------------------|--------|-------------| -| Account | 文字列 | Freezeを有効または無効にするXRP Ledgerアドレス。 | -| TransactionType | 文字列 | `TrustSet` | -| LimitAmount | オブジェクト | 凍結するトラストラインを定義するオブジェクト。 | -| LimitAmount.currency | 文字列 | トラストラインの通貨(XRPは指定できません) | -| LimitAmount.issuer | 文字列 | 凍結する取引相手のXRP Ledgerアドレス | -| LimitAmount.value | 文字列 | この取引相手があなたに対して発行する通貨の数量として信頼できる数量を、引用符で囲んで指定します。金融機関の観点からは、通常これは`"0"`となります。 | -| Flags | 数値 | 凍結を有効にするには、ビット`0x00100000`(tfSetFreeze)が有効な値を使用します。凍結を無効にするには、ビット`0x00200000`(tfClearFreeze)が有効な値を使用します。 | - -`Fee`、`Sequence`、`LastLedgerSequence`パラメーターは[通常の方法で](transaction-basics.html#トランザクションへの署名とトランザクションの送信)設定します。 - -[WebSocket API](get-started-with-the-rippled-api.html#websocket-api)を使用してIndividual Freezeを有効にするTrustSetトランザクションを送信する例: - -``` -{ - "id": 12, - "command": "submit", - "tx_json": { - "TransactionType": "TrustSet", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12000", - "Flags": 1048576, - "LastLedgerSequence": 18103014, - "LimitAmount": { - "currency": "USD", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "110" - }, - "Sequence": 340 - }, - "secret": "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 -} -``` - -**注意:** シークレットキーを信頼できないサーバーに送信することや、安全ではないチャネル経由で送信することは避けてください。 - - -### RippleAPIを使用する - -特定のトラストラインに対するIndividual Freezeを有効または無効にするには、[prepareTrustline](rippleapi-reference.html#preparetrustline)メソッドを使用して *Trustline* トランザクションを準備します。`trustline`パラメーターのフィールドは次のように設定してください: - -| フィールド | 値 | 説明 | -|--------------|--------|-------------| -| currency | 文字列 | 凍結するトラストラインの[通貨](rippleapi-reference.html#currency)(XRPは指定できません) | -| counterparty | 文字列 | 取引相手の[XRP Ledgerアドレス](rippleapi-reference.html#address) | -| limit | 文字列 | この取引相手があなたに対して発行する通貨の数量として信頼できる数量を、引用符で囲んで指定します。金融機関の観点からは、通常これは`"0"`となります。 | -| frozen | ブール値 | `true` このトラストラインのIndividual Freezeを有効にします。`false`Individual Freezeを無効にします。 | - -残りの[トランザクションフロー](rippleapi-reference.html#transaction-flow)は他のトランザクションと同じです。 - -トラストラインのIndividual Freezeを有効にするJavaScript(ECMAScript 6)コードの例: - -```js -{% include '_code-samples/freeze/set-individual-freeze.js' %} -``` - - -## Global Freezeの有効化または無効化 - -### 使用する`rippled` - -アドレスに対してGlobal Freezeを有効にするには、`SetFlag`フィールドに[asfGlobalFreezeフラグ値](accountset.html#accountsetのフラグ)を指定した`AccountSet`トランザクションを送信します。Global Freezeを無効にするには、`ClearFlag`フィールドにasfGlobalFreezeフラグ値を指定します。 - -[WebSocket API](get-started-with-the-rippled-api.html#websocket-api)を使用してGlobal Freezeを有効にするAccountSetトランザクションを送信する例: - -``` -{ - "id": 12, - "command": "submit", - "tx_json": { - "TransactionType": "AccountSet", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12000", - "Flags": 0, - "SetFlag": 7, - "LastLedgerSequence": 18122753, - "Sequence": 349 - }, - "secret": "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 -} -``` - -**注意:** シークレットキーを信頼できないサーバーに送信することや、安全ではないチャネル経由で送信することは避けてください。 - - -### RippleAPIを使用する - -アドレスに対してGlobal Freezeを有効または無効にするには、[prepareSettings](rippleapi-reference.html#preparesettings)メソッドを使用して**Settings**トランザクションを準備します。`settings`パラメーターは、次のように設定されているオブジェクトです: - -| フィールド | 値 | 説明 | -|--------------|--------|-------------| -| globalFreeze | ブール値 | `true` このアドレスに対してGlobal Freezeを有効にします。`false`Global Freezeを無効にします。 | - -残りの[トランザクションフロー](rippleapi-reference.html#transaction-flow)は他のトランザクションと同じです。 - -アドレスに対してGlobal Freezeを有効にするJavaScript(ECMAScript 6)コードの例: - -```js -{% include '_code-samples/freeze/set-global-freeze.js' %} -``` - - - -## No Freezeの有効化 - -### 使用する`rippled` - -アドレスに対してNo Freezeを有効にするには、`SetFlag`フィールドに[asfNoFreezeフラグ値](accountset.html#accountsetのフラグ)を指定した`AccountSet`トランザクションを送信します。このトランザクションをマスターキーで署名する必要があります。有効にしたNo Freezeを無効にすることはできません。 - -[WebSocket API](get-started-with-the-rippled-api.html#websocket-api)を使用してNo Freezeを有効にするAccountSetトランザクションを送信する例: - -WebSocket要求: - -``` -{ - "id": 12, - "command": "submit", - "tx_json": { - "TransactionType": "AccountSet", - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "Fee": "12000", - "Flags": 0, - "SetFlag": 6, - "LastLedgerSequence": 18124917, - "Sequence": 4 - }, - "secret": "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 -} -``` - -**注意:** シークレットキーを信頼できないサーバーに送信することや、安全ではないチャネル経由で送信することは避けてください。 - -### RippleAPIを使用する - -アドレスに対してNo Freezeを有効または無効にするには、[prepareSettings](rippleapi-reference.html#preparesettings)メソッドを使用して**Settings**トランザクションを準備します。有効にしたNo Freezeを無効にすることはできません。`settings`パラメーターは、次のように設定されているオブジェクトです: - -| フィールド | 値 | 説明 | -|----------|---------|-------------| -| noFreeze | ブール値 | `true` | - -このトランザクションをマスターキーで[署名](rippleapi-reference.html#sign)する必要があります。残りの[トランザクションフロー](rippleapi-reference.html#transaction-flow)は他のトランザクションと同じです。 - -アドレスに対してNo Freezeを有効にするJavaScript(ECMAScript 6)コードの例: - -```js -{% include '_code-samples/freeze/set-no-freeze.js' %} -``` - - -## Individual Freezeの確認 - -### 使用する`rippled` - -トラストラインでIndividual Freezeが有効になっているかどうかを確認するには、以下のパラメーターを持つ[account_linesメソッド][]を使用します。 - -| フィールド | 値 | 説明 | -|----------|---------|-------------| -| account | 文字列 | イシュアーのXRP Ledgerアドレス | -| peer | 文字列 | 取引相手のXRP Ledgerアドレス | -| ledger\_index | 文字列 | 最新の検証済み情報を取得するには`validated`を使用します。 | - -応答には、発行アドレスと取引相手がリンクされている各通貨のトラストラインの配列が含まれています。各トラストラインオブジェクトで以下のフィールドを確認します: - -| フィールド | 値 | 説明 | -|--------------|---------|-------------| -| freeze | ブール値 | (省略される場合があります)`true`: 発行アドレスがこのトラストラインを凍結した場合。省略されている場合は、`false`と同じです。 | -| freeze\_peer | ブール値 | (省略される場合があります)`true`: 取引相手がこのトラストラインを凍結した場合。省略されている場合は、`false`と同じです。 | - -Individual Freezeを確認するためのWebSocket要求の例: - -``` -{ - "id": 15, - "command": "account_lines", - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger": "validated", - "peer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW" -} -``` - -WebSocket応答の例: - -``` -{ - "id": 15, - "status": "success", - "type": "response", - "result": { - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "lines": [ - { - "account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "balance": "10", - "currency": "USD", - "freeze": true, - "limit": "110", - "limit_peer": "0", - "peer_authorized": true, - "quality_in": 0, - "quality_out": 0 - } - ] - } -} -``` - -`"freeze": true`フィールドは、 rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnが、rsA2LpzuawewSBQXkiju3YQTMzW13pAAdWへのUSDトラストラインに対してIndividual Freezeを有効にしたことを示しています。`"freeze_peer": true`フィールドがない場合、取引相手はトラストラインを凍結 _していません_ 。 - - -### RippleAPIを使用する - -トラストラインに対するIndividual Freezeが有効になっているかどうかを確認するには、以下のパラメーターを持つ[`getTrustlines`メソッド](rippleapi-reference.html#gettrustlines)を使用します。 - -| フィールド | 値 | 説明 | -|---------------|---------|-------------| -| address | 文字列 | イシュアーのXRP Ledgerアドレス | -| options.counterparty | 文字列 | 取引相手のXRP Ledgerアドレス | - -応答には、発行アドレスと取引相手がリンクされている各通貨のトラストラインの配列が含まれています。各トラストラインオブジェクトで以下のフィールドを確認します: - -| フィールド | 値 | 説明 | -|----------------------|---------|-------------| -| specification.frozen | ブール値 | (省略される場合があります)`true`: 発行アドレスがトラストラインを凍結した場合。 | -| counterparty.frozen | ブール値 | (省略される場合があります)`true`: 取引相手がトラストラインを凍結した場合。 | - -トラストラインが凍結されているかどうかを確認するJavaScript(ECMAScript 6)コードの例: - -```js -{% include '_code-samples/freeze/check-individual-freeze.js' %} -``` - - -## Global FreezeとNo Freezeの確認 - -### 使用する`rippled` - -アドレスがGlobal FreezeとNo Freezeのいずれかまたは両方を有効にしているかどうかを確認するには、以下のパラメーターを持つ[account_infoメソッド][]を使用します。 - -| フィールド | 値 | 説明 | -|----------|---------|-------------| -| account | 文字列 | 発行アドレスのXRP Ledgerアドレス | -| ledger\_index | 文字列 | 最新の検証済み情報を取得するには`validated`を使用します。 | - -[ビット単位AND](https://en.wikipedia.org/wiki/Bitwise_operation#AND)演算子を使用して応答の`account_data.Flags`フィールドの値を確認します: - -* `Flags` AND `0x00400000`([lsfGlobalFreeze](accountroot.html#accountrootフラグ))が _ゼロ以外_ の場合: Global Freezeが有効です。 -* `Flags` AND `0x00200000`([lsfNoFreeze](accountroot.html#accountrootフラグ))が _ゼロ以外_ の場合: No Freezeが有効です。 - -WebSocket要求の例: - -``` -{ - "id": 1, - "command": "account_info", - "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" -} -``` - -WebSocket応答: - -``` -{ - "id": 4, - "status": "success", - "type": "response", - "result": { - "account_data": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "AccountTxnID": "41320138CA9837B34E82B3B3D6FB1E581D5DE2F0A67B3D62B5B8A8C9C8D970D0", - "Balance": "100258663", - "Domain": "6D64756F31332E636F6D", - "EmailHash": "98B4375E1D753E5B91627516F6D70977", - "Flags": 12582912, - "LedgerEntryType": "AccountRoot", - "MessageKey": "0000000000000000000000070000000300", - "OwnerCount": 4, - "PreviousTxnID": "41320138CA9837B34E82B3B3D6FB1E581D5DE2F0A67B3D62B5B8A8C9C8D970D0", - "PreviousTxnLgrSeq": 18123095, - "Sequence": 352, - "TransferRate": 1004999999, - "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", - "urlgravatar": "http://www.gravatar.com/avatar/98b4375e1d753e5b91627516f6d70977" - }, - "ledger_hash": "A777B05A293A73E511669B8A4A45A298FF89AD9C9394430023008DB4A6E7FDD5", - "ledger_index": 18123249, - "validated": true - } -} -``` - -上記の例では`Flags`の値は12582912です。この場合、次のJavaScriptコードのように、lsfGlobalFreezeフラグとlsfDefaultRippleフラグが有効になっています。 - -```js -var lsfGlobalFreeze = 0x00400000; -var lsfNoFreeze = 0x00200000; - -var currentFlags = 12582912; - -console.log(currentFlags & lsfGlobalFreeze); //4194304 -//therefore, Global Freeze is enabled - -console.log(currentFlags & lsfNoFreeze); //0 -//therefore, No Freeze is not enabled -``` - -### RippleAPIを使用する - -アドレスに対してGlobal FreezeとNo Freezeのいずれか、または両方が有効になっているかどうかを確認するには、以下のパラメーターを持つ[`getSettings`メソッド](rippleapi-reference.html#getsettings)を使用します。 - -| フィールド | 値 | 説明 | -|---------------|---------|-------------| -| address | 文字列 | 発行アドレスのXRP Ledgerアドレス | - -応答オブジェクトの以下の値を確認します: - -| フィールド | 値 | 説明 | -|---------------|---------|-------------| -| noFreeze | ブール値 | (省略される場合があります)`true`: No Freezeが有効な場合。 | -| globalFreeze | ブール値 | (省略される場合があります)`true`: Global Freezeが有効な場合。 | - -アドレスに対するGlobal FreezeまたはNo Freezeが有効になっているかどうかを確認するJavaScript(ECMAScript 6)コードの例: - -```js -{% include '_code-samples/freeze/check-global-freeze-no-freeze.js' %} -``` - -# 関連項目 - -* [GB-2014-02新機能残高凍結](https://ripple.com/files/GB-2014-02.pdf) -* [凍結コードの例](https://github.com/ripple/ripple-dev-portal/tree/master/content/_code-samples/freeze) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 発行済み通貨の凍結 + +XRPは発行済み通貨ではありません。XRPはXRP Ledgerのネイティブ資産であり、XRP Ledgerでのトランザクションの実行に必要となります。XRPは取引相手を必要としません。つまり、XRPを保有しているということは負債ではなく実際の通貨であるXRPを保有していることになります。このため、_**いかなる組織または個人もXRPを凍結できません**_。 + +XRP Ledgerでは、XRP以外の通貨はすべて発行済み通貨として表すことができます。このような発行済み通貨(「イシュアンス」または「IOU」とも呼ばれます)は、「トラストライン」と呼ばれるアドレス間の会計上の関係で管理されます。発行済み通貨は通常、負債とも資産とも見なされるため、トラストラインの残高は、見る視点によってマイナスにもプラスにもなります。どのアドレスも(XRP以外の)通貨を自由に発行できますが、他のアドレスが希望する保有量によってのみ制限されます。 + +特定のケースでは、法的要件への準拠や、疑わしい活動の調査のために、取引所またはゲートウェイが、XRP以外の発行済み通貨の残高を急きょ凍結することがあります。 + +**ヒント:** 誰もXRPを凍結することはできません。 + +凍結については、3種類の設定があります。 + +* [**Individual Freeze**](#individual-freeze) - 1件の取引相手を凍結します。 +* [**Global Freeze**](#global-freeze) - 取引相手全員を凍結します。 +* [**No Freeze**](#no-freeze) - 個々の取引相手の凍結機能と、Global Freezeを終了できる機能を永久に放棄します。 + +凍結機能は発行済み通貨にのみ適用されます。XRP Ledgerには特権的な立場の当事者は存在しないため、凍結機能では、取引相手が、XRPまたはその他の取引相手が発行した資金で取引を実行することを阻止できません。Rippleを含め誰もXRPを凍結することはできません。 + +凍結対象の残高がプラス、マイナスにかかわらず、すべての凍結設定を行うことができます。通貨イシュアーまたは通貨保持者のいずれかがトラストラインを凍結できますが、通貨保持者がイシュアーを凍結しても、その影響はわずかです。 + + +## Individual Freeze + +**Individual Freeze**機能は、[トラストライン](trust-lines-and-issuing.html)に関する設定です。発行アドレスがIndividual Freeze設定を有効にすると、そのトラストラインの通貨に対して以下のルールが適用されます。 + +* 凍結されたトラストラインの両当事者間の直接決済は、凍結後も可能です。 +* そのトラストラインの取引相手は、イシュアーへ直接支払う場合を除き、凍結されたトラストラインの残高を減らすことはできません。取引相手は、凍結されたイシュアンスを直接イシュアーに送信することだけが可能です。 +* 取引相手は、凍結されたトラストライン上で引き続きその他の当事者からの支払を受け取ることができます。 +* 取引相手が凍結されたトラストライン上の発行済み通貨の売りオファーを出した場合、[資金不足とみなされます](offers.html#オファーのライフサイクル)。 + +確認事項: トラストラインではXRPは保持されません。XRPは凍結できません。 + +金融機関は、疑わしい活動を行う取引相手や、金融機関の利用規約に違反する取引相手にリンクしているトラストラインを凍結できます。金融機関は、同機関が運用する、XRP Ledgerに接続されているその他のシステムにおいても、その取引相手を凍結する必要があります。(凍結しないと、アドレスから金融機関経由で支払を送金することで、望ましくない活動を行うことが依然として可能となります。) + +各個別アドレスは金融機関とのトラストラインを凍結できます。これは金融機関とその他のユーザーの間の取引には影響しません。ただし、他のアドレス([運用アドレス](issuing-and-operational-addresses.html)を含む)からその個別アドレスに対しては、その金融機関のイシュアンスを送信できなくなります。このようなIndividual Freezeは、オファーには影響しません。 + +Individual Freezeは1つの通貨にのみ適用されます。特定の取引相手の複数通貨を凍結するには、アドレスが各通貨のトラストラインで、個別にIndividual Freezeを有効にする必要があります。 + +[No Freeze](#no-freeze)設定を有効にしている場合、アドレスはIndividual Freeze設定を有効にできません。 + + +## Global Freeze + +**Global Freeze**機能は、アドレスに設定できます。発行アドレスがGlobal Freeze機能を有効にすると、その発行アドレスのすべての発行済み通貨に対して以下のルールが適用されます: + +* 凍結された発行アドレスのすべての取引相手は、イシュアーに直接支払う場合を除き、凍結されたアドレスへのトラストラインの残高を減らすことができません。(これはすべての[運用アドレス](issuing-and-operational-addresses.html)にも影響します。) +* 凍結された発行アドレスの取引相手は、発行アドレスとの直接的な支払の送受信を引き続き行うことができます。 +* 凍結アドレスによる発行済み通貨の売りオファーはすべて、[資金不足とみなされます](offers.html#オファーのライフサイクル)。 + +確認事項: アドレスはXRPを発行できません。Global FreezeはXRPには適用されません。 + +運用アドレスのシークレットキーが漏えいした場合には、運用アドレスの制御を取り戻した後であっても金融機関の[発行アドレス](issuing-and-operational-addresses.html)に対してGlobal Freezeを有効にすることが有益です。これにより資金流出を止め、攻撃者がそれ以上の資金を盗むことを防止し、少なくともそれまでの経過の追跡が容易になります。XRP LedgerでGlobal Freezeを行う他に、金融機関は外部システムへのコネクターでの疑わしい活動を停止する必要があります。 + +また、金融機関が新しい[発行アドレス](issuing-and-operational-addresses.html)への移行や、営業の停止を予定している場合にも、Global Freezeを有効にすることが有用です。これにより、特定の時点で資金がロックされるため、ユーザーは他の通貨で取引することができなくなります。 + +Global Freezeは、当該アドレスによって発行および保有されている _すべての_ 通貨に適用されます。1つの通貨のみに対してGlobal Freezeを有効にすることはできません。一部の通貨のみを凍結できるようにしたい場合は、通貨ごとに異なるアドレスを使用してください。 + +アドレスのGlobal Freeze設定はいつでも有効にできます。ただし、アドレスの[No Freeze](#no-freeze)設定を有効にすると、Global Freezeを _無効にする_ ことはできません。 + + +## No Freeze + +**No Freeze**機能をアドレスに設定すると、取引相手が発行した通貨を凍結する機能を永久に放棄します。この機能を使用すれば、企業は自社が発行した資金を「物理的なお金のように」扱うことができます。これにより、企業は顧客どうしがその資金を取引することに介入できなくなります。 + +確認事項: XRPはすでに凍結できません。No Freeze機能は、XRP Ledgerで発行された他の通貨にのみ適用されます。 + +No Freeze設定には次の2つの効果があります。 + +* 発行アドレスは、すべての取引相手とのトラストラインに対してIndividual Freezeを有効にできなくなります。 +* 発行アドレスは、Global Freezeを有効にしてグローバル凍結を施行できますが、Global Freezeを _無効にする_ ことはできません。 + +XRP Ledgerは金融機関に対し、その発行資金が表す債務を履行することを強制できません。このため、Global Freezeを有効にする機能を放棄しても顧客を保護できません。ただし、Global Freezeを _無効にする_ 機能を放棄することで、Global Freeze機能が一部の顧客に対して不当に適用されないようにすることができます。 + +No Freeze設定は、アドレスに対して発行される通貨と、アドレスから発行される通貨のすべてに適用されます。一部の通貨のみを凍結できるようにしたい場合は、通貨ごとに異なるアドレスを使用してください。 + +No Freeze設定は、アドレスのマスターキーのシークレットキーにより署名されたトランザクションでのみ有効にできます。[レギュラーキー](setregularkey.html)または[マルチ署名済みトランザクション](multi-signing.html)を使用してNo Freezeを有効にすることはできません。 + + +# 技術詳細 + +## Individual Freezeの有効化または無効化 + +### 使用する`rippled` + +特定のトラストラインに対するIndividual Freezeを有効または無効にするには、`TrustSet`トランザクションを送信します。Freezeを有効にするには[`tfSetFreeze`フラグ](trustset.html#trustsetのフラグ)を使用し、無効にするには`tfClearFreeze`フラグを使用します。トランザクションのフィールドは次のとおりです。 + +| フィールド | 値 | 説明 | +|----------------------|--------|-------------| +| Account | 文字列 | Freezeを有効または無効にするXRP Ledgerアドレス。 | +| TransactionType | 文字列 | `TrustSet` | +| LimitAmount | オブジェクト | 凍結するトラストラインを定義するオブジェクト。 | +| LimitAmount.currency | 文字列 | トラストラインの通貨(XRPは指定できません) | +| LimitAmount.issuer | 文字列 | 凍結する取引相手のXRP Ledgerアドレス | +| LimitAmount.value | 文字列 | この取引相手があなたに対して発行する通貨の数量として信頼できる数量を、引用符で囲んで指定します。金融機関の観点からは、通常これは`"0"`となります。 | +| Flags | 数値 | 凍結を有効にするには、ビット`0x00100000`(tfSetFreeze)が有効な値を使用します。凍結を無効にするには、ビット`0x00200000`(tfClearFreeze)が有効な値を使用します。 | + +`Fee`、`Sequence`、`LastLedgerSequence`パラメーターは[通常の方法で](transaction-basics.html#トランザクションへの署名とトランザクションの送信)設定します。 + +[WebSocket API](get-started-with-the-rippled-api.html#websocket-api)を使用してIndividual Freezeを有効にするTrustSetトランザクションを送信する例: + +``` +{ + "id": 12, + "command": "submit", + "tx_json": { + "TransactionType": "TrustSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12000", + "Flags": 1048576, + "LastLedgerSequence": 18103014, + "LimitAmount": { + "currency": "USD", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "110" + }, + "Sequence": 340 + }, + "secret": "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 +} +``` + +**注意:** シークレットキーを信頼できないサーバーに送信することや、安全ではないチャネル経由で送信することは避けてください。 + + +### RippleAPIを使用する + +特定のトラストラインに対するIndividual Freezeを有効または無効にするには、[prepareTrustline](rippleapi-reference.html#preparetrustline)メソッドを使用して *Trustline* トランザクションを準備します。`trustline`パラメーターのフィールドは次のように設定してください: + +| フィールド | 値 | 説明 | +|--------------|--------|-------------| +| currency | 文字列 | 凍結するトラストラインの[通貨](rippleapi-reference.html#currency)(XRPは指定できません) | +| counterparty | 文字列 | 取引相手の[XRP Ledgerアドレス](rippleapi-reference.html#address) | +| limit | 文字列 | この取引相手があなたに対して発行する通貨の数量として信頼できる数量を、引用符で囲んで指定します。金融機関の観点からは、通常これは`"0"`となります。 | +| frozen | ブール値 | `true` このトラストラインのIndividual Freezeを有効にします。`false`Individual Freezeを無効にします。 | + +残りの[トランザクションフロー](rippleapi-reference.html#transaction-flow)は他のトランザクションと同じです。 + +トラストラインのIndividual Freezeを有効にするJavaScript(ECMAScript 6)コードの例: + +```js +{% include '_code-samples/freeze/set-individual-freeze.js' %} +``` + + +## Global Freezeの有効化または無効化 + +### 使用する`rippled` + +アドレスに対してGlobal Freezeを有効にするには、`SetFlag`フィールドに[asfGlobalFreezeフラグ値](accountset.html#accountsetのフラグ)を指定した`AccountSet`トランザクションを送信します。Global Freezeを無効にするには、`ClearFlag`フィールドにasfGlobalFreezeフラグ値を指定します。 + +[WebSocket API](get-started-with-the-rippled-api.html#websocket-api)を使用してGlobal Freezeを有効にするAccountSetトランザクションを送信する例: + +``` +{ + "id": 12, + "command": "submit", + "tx_json": { + "TransactionType": "AccountSet", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12000", + "Flags": 0, + "SetFlag": 7, + "LastLedgerSequence": 18122753, + "Sequence": 349 + }, + "secret": "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 +} +``` + +**注意:** シークレットキーを信頼できないサーバーに送信することや、安全ではないチャネル経由で送信することは避けてください。 + + +### RippleAPIを使用する + +アドレスに対してGlobal Freezeを有効または無効にするには、[prepareSettings](rippleapi-reference.html#preparesettings)メソッドを使用して**Settings**トランザクションを準備します。`settings`パラメーターは、次のように設定されているオブジェクトです: + +| フィールド | 値 | 説明 | +|--------------|--------|-------------| +| globalFreeze | ブール値 | `true` このアドレスに対してGlobal Freezeを有効にします。`false`Global Freezeを無効にします。 | + +残りの[トランザクションフロー](rippleapi-reference.html#transaction-flow)は他のトランザクションと同じです。 + +アドレスに対してGlobal Freezeを有効にするJavaScript(ECMAScript 6)コードの例: + +```js +{% include '_code-samples/freeze/set-global-freeze.js' %} +``` + + + +## No Freezeの有効化 + +### 使用する`rippled` + +アドレスに対してNo Freezeを有効にするには、`SetFlag`フィールドに[asfNoFreezeフラグ値](accountset.html#accountsetのフラグ)を指定した`AccountSet`トランザクションを送信します。このトランザクションをマスターキーで署名する必要があります。有効にしたNo Freezeを無効にすることはできません。 + +[WebSocket API](get-started-with-the-rippled-api.html#websocket-api)を使用してNo Freezeを有効にするAccountSetトランザクションを送信する例: + +WebSocket要求: + +``` +{ + "id": 12, + "command": "submit", + "tx_json": { + "TransactionType": "AccountSet", + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "Fee": "12000", + "Flags": 0, + "SetFlag": 6, + "LastLedgerSequence": 18124917, + "Sequence": 4 + }, + "secret": "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 +} +``` + +**注意:** シークレットキーを信頼できないサーバーに送信することや、安全ではないチャネル経由で送信することは避けてください。 + +### RippleAPIを使用する + +アドレスに対してNo Freezeを有効または無効にするには、[prepareSettings](rippleapi-reference.html#preparesettings)メソッドを使用して**Settings**トランザクションを準備します。有効にしたNo Freezeを無効にすることはできません。`settings`パラメーターは、次のように設定されているオブジェクトです: + +| フィールド | 値 | 説明 | +|----------|---------|-------------| +| noFreeze | ブール値 | `true` | + +このトランザクションをマスターキーで[署名](rippleapi-reference.html#sign)する必要があります。残りの[トランザクションフロー](rippleapi-reference.html#transaction-flow)は他のトランザクションと同じです。 + +アドレスに対してNo Freezeを有効にするJavaScript(ECMAScript 6)コードの例: + +```js +{% include '_code-samples/freeze/set-no-freeze.js' %} +``` + + +## Individual Freezeの確認 + +### 使用する`rippled` + +トラストラインでIndividual Freezeが有効になっているかどうかを確認するには、以下のパラメーターを持つ[account_linesメソッド][]を使用します。 + +| フィールド | 値 | 説明 | +|----------|---------|-------------| +| account | 文字列 | イシュアーのXRP Ledgerアドレス | +| peer | 文字列 | 取引相手のXRP Ledgerアドレス | +| ledger\_index | 文字列 | 最新の検証済み情報を取得するには`validated`を使用します。 | + +応答には、発行アドレスと取引相手がリンクされている各通貨のトラストラインの配列が含まれています。各トラストラインオブジェクトで以下のフィールドを確認します: + +| フィールド | 値 | 説明 | +|--------------|---------|-------------| +| freeze | ブール値 | (省略される場合があります)`true`: 発行アドレスがこのトラストラインを凍結した場合。省略されている場合は、`false`と同じです。 | +| freeze\_peer | ブール値 | (省略される場合があります)`true`: 取引相手がこのトラストラインを凍結した場合。省略されている場合は、`false`と同じです。 | + +Individual Freezeを確認するためのWebSocket要求の例: + +``` +{ + "id": 15, + "command": "account_lines", + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger": "validated", + "peer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW" +} +``` + +WebSocket応答の例: + +``` +{ + "id": 15, + "status": "success", + "type": "response", + "result": { + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "lines": [ + { + "account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "balance": "10", + "currency": "USD", + "freeze": true, + "limit": "110", + "limit_peer": "0", + "peer_authorized": true, + "quality_in": 0, + "quality_out": 0 + } + ] + } +} +``` + +`"freeze": true`フィールドは、 rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnが、rsA2LpzuawewSBQXkiju3YQTMzW13pAAdWへのUSDトラストラインに対してIndividual Freezeを有効にしたことを示しています。`"freeze_peer": true`フィールドがない場合、取引相手はトラストラインを凍結 _していません_ 。 + + +### RippleAPIを使用する + +トラストラインに対するIndividual Freezeが有効になっているかどうかを確認するには、以下のパラメーターを持つ[`getTrustlines`メソッド](rippleapi-reference.html#gettrustlines)を使用します。 + +| フィールド | 値 | 説明 | +|---------------|---------|-------------| +| address | 文字列 | イシュアーのXRP Ledgerアドレス | +| options.counterparty | 文字列 | 取引相手のXRP Ledgerアドレス | + +応答には、発行アドレスと取引相手がリンクされている各通貨のトラストラインの配列が含まれています。各トラストラインオブジェクトで以下のフィールドを確認します: + +| フィールド | 値 | 説明 | +|----------------------|---------|-------------| +| specification.frozen | ブール値 | (省略される場合があります)`true`: 発行アドレスがトラストラインを凍結した場合。 | +| counterparty.frozen | ブール値 | (省略される場合があります)`true`: 取引相手がトラストラインを凍結した場合。 | + +トラストラインが凍結されているかどうかを確認するJavaScript(ECMAScript 6)コードの例: + +```js +{% include '_code-samples/freeze/check-individual-freeze.js' %} +``` + + +## Global FreezeとNo Freezeの確認 + +### 使用する`rippled` + +アドレスがGlobal FreezeとNo Freezeのいずれかまたは両方を有効にしているかどうかを確認するには、以下のパラメーターを持つ[account_infoメソッド][]を使用します。 + +| フィールド | 値 | 説明 | +|----------|---------|-------------| +| account | 文字列 | 発行アドレスのXRP Ledgerアドレス | +| ledger\_index | 文字列 | 最新の検証済み情報を取得するには`validated`を使用します。 | + +[ビット単位AND](https://en.wikipedia.org/wiki/Bitwise_operation#AND)演算子を使用して応答の`account_data.Flags`フィールドの値を確認します: + +* `Flags` AND `0x00400000`([lsfGlobalFreeze](accountroot.html#accountrootフラグ))が _ゼロ以外_ の場合: Global Freezeが有効です。 +* `Flags` AND `0x00200000`([lsfNoFreeze](accountroot.html#accountrootフラグ))が _ゼロ以外_ の場合: No Freezeが有効です。 + +WebSocket要求の例: + +``` +{ + "id": 1, + "command": "account_info", + "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" +} +``` + +WebSocket応答: + +``` +{ + "id": 4, + "status": "success", + "type": "response", + "result": { + "account_data": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "AccountTxnID": "41320138CA9837B34E82B3B3D6FB1E581D5DE2F0A67B3D62B5B8A8C9C8D970D0", + "Balance": "100258663", + "Domain": "6D64756F31332E636F6D", + "EmailHash": "98B4375E1D753E5B91627516F6D70977", + "Flags": 12582912, + "LedgerEntryType": "AccountRoot", + "MessageKey": "0000000000000000000000070000000300", + "OwnerCount": 4, + "PreviousTxnID": "41320138CA9837B34E82B3B3D6FB1E581D5DE2F0A67B3D62B5B8A8C9C8D970D0", + "PreviousTxnLgrSeq": 18123095, + "Sequence": 352, + "TransferRate": 1004999999, + "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", + "urlgravatar": "http://www.gravatar.com/avatar/98b4375e1d753e5b91627516f6d70977" + }, + "ledger_hash": "A777B05A293A73E511669B8A4A45A298FF89AD9C9394430023008DB4A6E7FDD5", + "ledger_index": 18123249, + "validated": true + } +} +``` + +上記の例では`Flags`の値は12582912です。この場合、次のJavaScriptコードのように、lsfGlobalFreezeフラグとlsfDefaultRippleフラグが有効になっています。 + +```js +var lsfGlobalFreeze = 0x00400000; +var lsfNoFreeze = 0x00200000; + +var currentFlags = 12582912; + +console.log(currentFlags & lsfGlobalFreeze); //4194304 +//therefore, Global Freeze is enabled + +console.log(currentFlags & lsfNoFreeze); //0 +//therefore, No Freeze is not enabled +``` + +### RippleAPIを使用する + +アドレスに対してGlobal FreezeとNo Freezeのいずれか、または両方が有効になっているかどうかを確認するには、以下のパラメーターを持つ[`getSettings`メソッド](rippleapi-reference.html#getsettings)を使用します。 + +| フィールド | 値 | 説明 | +|---------------|---------|-------------| +| address | 文字列 | 発行アドレスのXRP Ledgerアドレス | + +応答オブジェクトの以下の値を確認します: + +| フィールド | 値 | 説明 | +|---------------|---------|-------------| +| noFreeze | ブール値 | (省略される場合があります)`true`: No Freezeが有効な場合。 | +| globalFreeze | ブール値 | (省略される場合があります)`true`: Global Freezeが有効な場合。 | + +アドレスに対するGlobal FreezeまたはNo Freezeが有効になっているかどうかを確認するJavaScript(ECMAScript 6)コードの例: + +```js +{% include '_code-samples/freeze/check-global-freeze-no-freeze.js' %} +``` + +# 関連項目 + +* [GB-2014-02新機能残高凍結](https://ripple.com/files/GB-2014-02.pdf) +* [凍結コードの例](https://github.com/ripple/ripple-dev-portal/tree/master/content/_code-samples/freeze) + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/issued-currencies/issued-currencies-overview.ja.md b/content/concepts/issued-currencies/issued-currencies-overview.ja.md index 0fde1ff016..4a27e673ff 100644 --- a/content/concepts/issued-currencies/issued-currencies-overview.ja.md +++ b/content/concepts/issued-currencies/issued-currencies-overview.ja.md @@ -1,27 +1,27 @@ -# 発行済み通貨の概要 - -XRP Ledgerでは、XRP以外の通貨はすべて**発行済み通貨**とされます。このようなデジタル資産(「イシュアンス」または「IOU」とも呼ばれます)は、「トラストライン」と呼ばれるアドレス間の会計上の関係で管理されます。発行済み通貨は通常、負債とも資産とも見なされるため、トラストラインの残高は、見る視点によってマイナスにもプラスにもなります。どのアドレスも(XRP以外の)通貨を自由に発行できますが、他のアドレスが希望する保有量によってのみ制限されます。 - -発行済み通貨は、同一通貨コードを使用する複数のイシュアーと保有者を通じて「Rippling」されます。これが役立つ場合もありますが、予期しない結果や望ましくない結果が生じることもあります。トラストライン上で[NoRippleフラグ](rippling.html)を使用すれば、トラストラインを通じたRipplingを防ぐことができます。 - -XRP Ledgerの分散型取引所では、発行済み通貨対XRPの取引や、発行済み通貨間の取引を行えます。 - -一般的なモデルでは、発行済み通貨は、XRP Ledger外部で保有されている通貨またはその他の資産に結び付けられています。通貨のイシュアー(_ゲートウェイ_)は、XRP Ledger外部の通貨を、XRP Ledgerの発行済み通貨の同等の残高と交換するための入出金処理を行います。ゲートウェイの運用方法についての詳細は、[XRP Ledgerのゲートウェイになる](become-an-xrp-ledger-gateway.html)を参照してください。 - -XRP Ledgerの発行済み通貨は他の用途にも使えます。たとえば、固定量の通貨をセカンダリアドレスに発行し、イシュアーへキーを譲渡すれば、「イニシャルコインオファリング」(ICO)を作成できます。 - -**警告:** ICOは米国では[証券と見なされ、規制対象となる](https://www.sec.gov/oiea/investor-alerts-and-bulletins/ib_coinofferings)可能性があります。 - -金融サービスビジネスを始める前に、関連規制を調査されることを強くお勧めします。 - -## 発行済み通貨の特性 - -XRP Ledger内の発行済み通貨はすべてトラストラインに存在し、レジャーのデータでは[RippleStateオブジェクト](ripplestate.html)として表示されます。発行済み通貨を作成するには、発行アドレスは、対象となる通貨に対し非ゼロ制限のあるイシュアーへのトラストラインを持つアドレスに対し、[Paymentトランザクション][]を送信します。(発行済み通貨は、このようなトラストラインを通じてRipplingする方法でも作成できます。)発行済み通貨を消去するには、通貨をイシュアーに戻します。 - -通貨のイシュアーは、2名の当事者が発行済み通貨で取引をする際に差し引かれる[送金手数料](transfer-fees.html)のパーセンテージを定義できます。 - -アドレスは発行済み通貨を[凍結](freezes.html)することもでき、企業が当該地域の金融規制に準拠する際に有用です。この機能が不要で、通貨を凍結しない場合は、アドレスが有する個別のトラストラインを凍結する機能と、Global Freezeを取り消す機能を放棄できます。XRPは凍結できません。 - -発行済み通貨は、あらゆる種類の通貨または資産(額面価格が極めて低い、または高いものを含む)に相当するとされています。通貨コードの種類と発行済み通貨の表記の数値制限に関する技術的な詳細は、[通貨フォーマットのリファレンス](currency-formats.html)を参照してください。 - -{% include '_snippets/tx-type-links.md' %} +# 発行済み通貨の概要 + +XRP Ledgerでは、XRP以外の通貨はすべて**発行済み通貨**とされます。このようなデジタル資産(「イシュアンス」または「IOU」とも呼ばれます)は、「トラストライン」と呼ばれるアドレス間の会計上の関係で管理されます。発行済み通貨は通常、負債とも資産とも見なされるため、トラストラインの残高は、見る視点によってマイナスにもプラスにもなります。どのアドレスも(XRP以外の)通貨を自由に発行できますが、他のアドレスが希望する保有量によってのみ制限されます。 + +発行済み通貨は、同一通貨コードを使用する複数のイシュアーと保有者を通じて「Rippling」されます。これが役立つ場合もありますが、予期しない結果や望ましくない結果が生じることもあります。トラストライン上で[NoRippleフラグ](rippling.html)を使用すれば、トラストラインを通じたRipplingを防ぐことができます。 + +XRP Ledgerの分散型取引所では、発行済み通貨対XRPの取引や、発行済み通貨間の取引を行えます。 + +一般的なモデルでは、発行済み通貨は、XRP Ledger外部で保有されている通貨またはその他の資産に結び付けられています。通貨のイシュアー(_ゲートウェイ_)は、XRP Ledger外部の通貨を、XRP Ledgerの発行済み通貨の同等の残高と交換するための入出金処理を行います。ゲートウェイの運用方法についての詳細は、[XRP Ledgerのゲートウェイになる](become-an-xrp-ledger-gateway.html)を参照してください。 + +XRP Ledgerの発行済み通貨は他の用途にも使えます。たとえば、固定量の通貨をセカンダリアドレスに発行し、イシュアーへキーを譲渡すれば、「イニシャルコインオファリング」(ICO)を作成できます。 + +**警告:** ICOは米国では[証券と見なされ、規制対象となる](https://www.sec.gov/oiea/investor-alerts-and-bulletins/ib_coinofferings)可能性があります。 + +金融サービスビジネスを始める前に、関連規制を調査されることを強くお勧めします。 + +## 発行済み通貨の特性 + +XRP Ledger内の発行済み通貨はすべてトラストラインに存在し、レジャーのデータでは[RippleStateオブジェクト](ripplestate.html)として表示されます。発行済み通貨を作成するには、発行アドレスは、対象となる通貨に対し非ゼロ制限のあるイシュアーへのトラストラインを持つアドレスに対し、[Paymentトランザクション][]を送信します。(発行済み通貨は、このようなトラストラインを通じてRipplingする方法でも作成できます。)発行済み通貨を消去するには、通貨をイシュアーに戻します。 + +通貨のイシュアーは、2名の当事者が発行済み通貨で取引をする際に差し引かれる[送金手数料](transfer-fees.html)のパーセンテージを定義できます。 + +アドレスは発行済み通貨を[凍結](freezes.html)することもでき、企業が当該地域の金融規制に準拠する際に有用です。この機能が不要で、通貨を凍結しない場合は、アドレスが有する個別のトラストラインを凍結する機能と、Global Freezeを取り消す機能を放棄できます。XRPは凍結できません。 + +発行済み通貨は、あらゆる種類の通貨または資産(額面価格が極めて低い、または高いものを含む)に相当するとされています。通貨コードの種類と発行済み通貨の表記の数値制限に関する技術的な詳細は、[通貨フォーマットのリファレンス](currency-formats.html)を参照してください。 + +{% include '_snippets/tx-type-links.md' %} diff --git a/content/concepts/issued-currencies/issuing-and-operational-addresses.ja.md b/content/concepts/issued-currencies/issuing-and-operational-addresses.ja.md index da50ea6498..09480dd90f 100644 --- a/content/concepts/issued-currencies/issuing-and-operational-addresses.ja.md +++ b/content/concepts/issued-currencies/issuing-and-operational-addresses.ja.md @@ -1,52 +1,52 @@ -# 発行アドレスと運用アドレス - -{% include '_snippets/issuing-and-operational-addresses-intro.md' %} - - -## 資金のライフサイクル - -XRP LedgerのXRP以外の通貨の残高(イシュアンス)はすべて、2つのXRP Ledgerアドレス間の会計上の関係に関連付けられています。Rippleが推奨する役割の分割を金融機関が行うと、その金融機関に関連する資金の流れは循環する傾向にあります。 - -[![図: 発行アドレスからスタンバイアドレス、運用アドレス、顧客アドレスおよびパートナーアドレスに移動し、最後に発行アドレスに戻る資金フロー](img/funds_flow_diagram.ja.png)](img/funds_flow_diagram.ja.png) - -発行アドレスはペイメントの送金時に、XRP Ledgerの会計上の関係に残高を作成します。ユーザーはXRP Ledger内のさまざまな会計上の関係と残高を交換できます。このため、XRP以外の残高を表す用語として _イシュアンス_ を使用します。イシュアンスの額は、発行アドレスの側から見ると債務を表すため、マイナスです。同じイシュアンスの額を発行アドレスの相手側から見ると、プラスになります。発行アドレスがペイメントを受領すると、送信されたイシュアンスが消去され、発行アドレスの債務が減少します。 - -イシュアンスは発行アドレスからスタンバイアドレスに送信されるか、または運用アドレスに直接送信されます。これらのイシュアンスはスタンバイアドレスから運用アドレスに送信されます。運用アドレスから他の取引相手(流動性プロバイダー、パートナー、その他の顧客など)にペイメントが送信されます。すべてのイシュアンスは発行アドレスとの会計上の関係に関連付けられているため、イシュアンスのペイメントと取引は、発行アドレスを「通じてRippling」されます。ペイメントが行われると、送金元と発行アドレスの会計上の関係において送金元の残高から支払額が引き落とされ、受取人と発行アドレスの会計上の関係において受取人の残高に支払額が入金されます。XRP Ledgerでは、オーダーブックや[資金のRipplingに対応する流動性プロバイダー](rippling.html)を通じて複数のイシュアーを結び付ける、より複雑な[パス](paths.html)もサポートされています。 - -## 発行アドレス - -発行アドレスは、金庫に似ています。パートナーアドレス、顧客アドレス、運用アドレスは、発行アドレスとの間で会計上の関係(トラストライン)を作成しますが、発行アドレスから送信されるトランザクションは可能な限り少ない数に抑えられます。人間のオペレーターが定期的に、発行アドレスからトランザクションを作成、署名し、スタンバイアドレスまたは運用アドレスの残高を補充します。このようなトランザクションの署名に使用されるシークレットキーには、インターネットに接続されたどのコンピューターからもアクセスできないことが極めて重要です。 - -金庫とは異なり、発行アドレスは顧客またはパートナーからのペイメントを直接受領できます。XRP Ledgerのトランザクションはすべて公開されているため、自動システムは発行アドレスからのペイメントを監視する際にシークレットキーを必要としません。 - -### 発行アドレスの漏えい - -不正使用者は金融機関の発行アドレスのシークレットキーを入手すると、際限なく新しいイシュアンスを作成し、分散型取引所でそのイシュアンスを取引できるようになります。これにより、金融機関が正式に取得したイシュアンスを識別して適切に清算することが難しくなります。金融機関の発行アドレスが乗っ取られた場合には、金融機関が新たに発行アドレスを作成する必要があり、また古い発行アドレスと会計上の関係を有するすべてのユーザーは新しいアドレスで、アカウントとの関係を新たに作成する必要があります。 - -### 複数の発行アドレス - -金融機関はXRP Ledgerで1つの発行アドレスから複数の通貨を発行できます。ただし、いくつかの設定([送金手数料](transfer-fees.html)のパーセンテージや[Global Freeze](freezes.html)の状況など)は、1つのアドレスから発行されるすべての通貨に同様に適用されます。金融機関が通貨ごとに設定を変えて柔軟に管理したい場合、金融機関は通貨ごとに異なる発行アドレスを使用する必要があります。 - - -## 運用アドレス - -運用アドレスはレジに似ています。イシュアンスを顧客とパートナーに送信して、金融機関に代わってペイメントを行います。トランザクションに自動的に署名するには、運用アドレスのシークレットキーをインターネットに接続されたサーバーに保管する必要があります。(シークレットキーは暗号化して保管できますが、サーバーがトランザクションに署名する際にシークレットキーを暗号化解除する必要があります。)顧客とパートナーは、運用アドレスとの会計上の関係を作成すべきではありません。 - -各運用アドレスではイシュアンスの残高が限られています。運用アドレスの残高が少なくなると、金融機関は残高を補充するため、発行アドレスまたはスタンバイアドレスから送金します。 - -### 運用アドレスの漏えい - -不正使用者が運用アドレスのシークレットキーを入手した場合に金融機関が失う可能性のある通貨額は、最大でも運用アドレスが保有している額までです。金融機関は、顧客やパートナーからのアクションなしに、新しい運用アドレスに切り替えることができます。 - - -## スタンバイアドレス - -金融機関がリスクと利便性のバランスを保つためのもう1つの手段として、発行アドレスと運用アドレスの中間ステップとして「スタンバイアドレス」を利用することができます。金融機関はスタンバイアドレスという追加のXRP Ledgerアドレスに資金を供給できます。このアドレスのキーはオンライン上に保管されず、別の信頼できるユーザーに預けられています。 - -運用アドレスの資金が少なくなると、信頼できるユーザーがスタンバイアドレスを使用して運用アドレスの残高を補充できます。スタンバイアドレスの資金が少なくなると、金融機関は発行アドレスを使用して1回のトランザクションでスタンバイアドレスにより多くの額の通貨を送金できます。スタンバイアドレスは、送金された通貨を必要に応じてスタンバイアドレス間で分散できます。これにより発行アドレスのセキュリティが強化され、発行アドレスが実行する合計トランザクション数が減少し、1つの自動化システムの管理下に過剰な資金が残ることがなくなります。 - -運用アドレスと同様に、スタンバイアドレスは顧客やパートナーではなく発行アドレスとの間に会計上の関係を確立する必要があります。運用アドレスに適用される注意事項はすべてスタンバイアドレスにも適用されます。 - -### スタンバイアドレスの漏えい - -スタンバイアドレスの漏えいが発生した場合、運用アドレスが漏えいした場合と同様の影響が及びます。不正使用者がスタンバイアドレスに保有される残高を盗むことが可能となり、金融機関は顧客やパートナーからのアクションなしに新しいスタンバイアドレスに切り替えることができます。 +# 発行アドレスと運用アドレス + +{% include '_snippets/issuing-and-operational-addresses-intro.md' %} + + +## 資金のライフサイクル + +XRP LedgerのXRP以外の通貨の残高(イシュアンス)はすべて、2つのXRP Ledgerアドレス間の会計上の関係に関連付けられています。Rippleが推奨する役割の分割を金融機関が行うと、その金融機関に関連する資金の流れは循環する傾向にあります。 + +[![図: 発行アドレスからスタンバイアドレス、運用アドレス、顧客アドレスおよびパートナーアドレスに移動し、最後に発行アドレスに戻る資金フロー](img/funds_flow_diagram.ja.png)](img/funds_flow_diagram.ja.png) + +発行アドレスはペイメントの送金時に、XRP Ledgerの会計上の関係に残高を作成します。ユーザーはXRP Ledger内のさまざまな会計上の関係と残高を交換できます。このため、XRP以外の残高を表す用語として _イシュアンス_ を使用します。イシュアンスの額は、発行アドレスの側から見ると債務を表すため、マイナスです。同じイシュアンスの額を発行アドレスの相手側から見ると、プラスになります。発行アドレスがペイメントを受領すると、送信されたイシュアンスが消去され、発行アドレスの債務が減少します。 + +イシュアンスは発行アドレスからスタンバイアドレスに送信されるか、または運用アドレスに直接送信されます。これらのイシュアンスはスタンバイアドレスから運用アドレスに送信されます。運用アドレスから他の取引相手(流動性プロバイダー、パートナー、その他の顧客など)にペイメントが送信されます。すべてのイシュアンスは発行アドレスとの会計上の関係に関連付けられているため、イシュアンスのペイメントと取引は、発行アドレスを「通じてRippling」されます。ペイメントが行われると、送金元と発行アドレスの会計上の関係において送金元の残高から支払額が引き落とされ、受取人と発行アドレスの会計上の関係において受取人の残高に支払額が入金されます。XRP Ledgerでは、オーダーブックや[資金のRipplingに対応する流動性プロバイダー](rippling.html)を通じて複数のイシュアーを結び付ける、より複雑な[パス](paths.html)もサポートされています。 + +## 発行アドレス + +発行アドレスは、金庫に似ています。パートナーアドレス、顧客アドレス、運用アドレスは、発行アドレスとの間で会計上の関係(トラストライン)を作成しますが、発行アドレスから送信されるトランザクションは可能な限り少ない数に抑えられます。人間のオペレーターが定期的に、発行アドレスからトランザクションを作成、署名し、スタンバイアドレスまたは運用アドレスの残高を補充します。このようなトランザクションの署名に使用されるシークレットキーには、インターネットに接続されたどのコンピューターからもアクセスできないことが極めて重要です。 + +金庫とは異なり、発行アドレスは顧客またはパートナーからのペイメントを直接受領できます。XRP Ledgerのトランザクションはすべて公開されているため、自動システムは発行アドレスからのペイメントを監視する際にシークレットキーを必要としません。 + +### 発行アドレスの漏えい + +不正使用者は金融機関の発行アドレスのシークレットキーを入手すると、際限なく新しいイシュアンスを作成し、分散型取引所でそのイシュアンスを取引できるようになります。これにより、金融機関が正式に取得したイシュアンスを識別して適切に清算することが難しくなります。金融機関の発行アドレスが乗っ取られた場合には、金融機関が新たに発行アドレスを作成する必要があり、また古い発行アドレスと会計上の関係を有するすべてのユーザーは新しいアドレスで、アカウントとの関係を新たに作成する必要があります。 + +### 複数の発行アドレス + +金融機関はXRP Ledgerで1つの発行アドレスから複数の通貨を発行できます。ただし、いくつかの設定([送金手数料](transfer-fees.html)のパーセンテージや[Global Freeze](freezes.html)の状況など)は、1つのアドレスから発行されるすべての通貨に同様に適用されます。金融機関が通貨ごとに設定を変えて柔軟に管理したい場合、金融機関は通貨ごとに異なる発行アドレスを使用する必要があります。 + + +## 運用アドレス + +運用アドレスはレジに似ています。イシュアンスを顧客とパートナーに送信して、金融機関に代わってペイメントを行います。トランザクションに自動的に署名するには、運用アドレスのシークレットキーをインターネットに接続されたサーバーに保管する必要があります。(シークレットキーは暗号化して保管できますが、サーバーがトランザクションに署名する際にシークレットキーを暗号化解除する必要があります。)顧客とパートナーは、運用アドレスとの会計上の関係を作成すべきではありません。 + +各運用アドレスではイシュアンスの残高が限られています。運用アドレスの残高が少なくなると、金融機関は残高を補充するため、発行アドレスまたはスタンバイアドレスから送金します。 + +### 運用アドレスの漏えい + +不正使用者が運用アドレスのシークレットキーを入手した場合に金融機関が失う可能性のある通貨額は、最大でも運用アドレスが保有している額までです。金融機関は、顧客やパートナーからのアクションなしに、新しい運用アドレスに切り替えることができます。 + + +## スタンバイアドレス + +金融機関がリスクと利便性のバランスを保つためのもう1つの手段として、発行アドレスと運用アドレスの中間ステップとして「スタンバイアドレス」を利用することができます。金融機関はスタンバイアドレスという追加のXRP Ledgerアドレスに資金を供給できます。このアドレスのキーはオンライン上に保管されず、別の信頼できるユーザーに預けられています。 + +運用アドレスの資金が少なくなると、信頼できるユーザーがスタンバイアドレスを使用して運用アドレスの残高を補充できます。スタンバイアドレスの資金が少なくなると、金融機関は発行アドレスを使用して1回のトランザクションでスタンバイアドレスにより多くの額の通貨を送金できます。スタンバイアドレスは、送金された通貨を必要に応じてスタンバイアドレス間で分散できます。これにより発行アドレスのセキュリティが強化され、発行アドレスが実行する合計トランザクション数が減少し、1つの自動化システムの管理下に過剰な資金が残ることがなくなります。 + +運用アドレスと同様に、スタンバイアドレスは顧客やパートナーではなく発行アドレスとの間に会計上の関係を確立する必要があります。運用アドレスに適用される注意事項はすべてスタンバイアドレスにも適用されます。 + +### スタンバイアドレスの漏えい + +スタンバイアドレスの漏えいが発生した場合、運用アドレスが漏えいした場合と同様の影響が及びます。不正使用者がスタンバイアドレスに保有される残高を盗むことが可能となり、金融機関は顧客やパートナーからのアクションなしに新しいスタンバイアドレスに切り替えることができます。 diff --git a/content/concepts/issued-currencies/paths.ja.md b/content/concepts/issued-currencies/paths.ja.md index 4b57976f24..05284aff0c 100644 --- a/content/concepts/issued-currencies/paths.ja.md +++ b/content/concepts/issued-currencies/paths.ja.md @@ -1,99 +1,99 @@ -# パス - -XRP Ledgerでは、送金元から受取人への支払いが中間ステップをどのように通過するかをパスによって定義します。パスはオーダーブックを通じて送金元と受取人を結び付けることで、複数通貨間の支払いを可能にします。また、負債を相殺するような複雑な決済もパスにより可能になります。 - -XRP Ledgerでは1つのPaymentトランザクションは複数のパスを使用でき、複数のソースの流動性を組み合わせて必要な額を送金することができます。そのため、トランザクションには使用可能なパスをまとめた _パスセット_ が含まれます。パスセットの中のパスでは開始時と終了時には同一通貨が使用される必要があります。 - -XRPは任意のアドレスに直接送金できるため、XRP間のトランザクションではパスは使用されません。 - -## パスのステップ - -パスは、支払いの送金元と受取人を結ぶステップで構成されています。すべてのステップは次のいずれかを行います。 - -* 同一通貨の別のアドレスを通じたRippling -* オーダーブックでの通貨の取引 - -別のアドレスを通じたRipplingは、負債を移動するプロセスです。一般的なケースでは、ある当事者に対するイシュアーの債務が削減され、別の当事者に対する債務が増加します。Ripplingは、トラストラインで結ばれているすべてのアドレスの間で発生させることができます。Ripplingのその他の例については、[NoRippleフラグについて](rippling.html)を参照してください。 - -通貨取引ステップの場合、パスステップにより変換先の通貨が指定されますが、オーダーブックにはオファーの状態は記録されません。レジャーが検証されるまではトランザクションの正規の順序は最終的ではないため、トランザクションの検証が完了するまでは、トランザクションがどのオファーをとるかは不明です。(各トランザクションは最終レジャーでの実行時に利用可能なオファーの中から最適なオファーをとるため、経験に基づいて推測することができます。) - -いずれのタイプのステップでも、中間アドレスでは取得する価値と失う価値はほぼ同等です。トラストラインから同じ通貨の別のトラストラインへ残高がripplingするか、または以前に出されたオーダーに基づいて通貨が交換されます。場合によっては、[送金手数料](transfer-fees.html)、トラストラインクオリティ、または数値の丸め方が原因で、取得する価値と失われる価値が厳密に同等ではないことがあります。 - -[![3つのパスの例を示す図](img/paths-examples.ja.png)](img/paths-examples.ja.png) - - - -# 技術詳細 - -## Pathfinding - -`rippled` APIではPathfindingに使用できるメソッドが2つあります。[ripple_path_findメソッド][]は、1回限りのパスセットの検索を実行します。[path_findメソッド][](WebSocketのみ)は、レジャーが閉鎖するか、またはサーバーがより適切なパスを検出するたびに、フォローアップ応答によって検索を拡大します。 - -署名時に`rippled`によりパスが自動的に入力されるようにするには、[signメソッド][]または[`submit`コマンド(署名と送信モード)](submit.html#署名と送信モード)への要求に`build_path`フィールドを指定します。ただし、トラブルを回避するために、署名前にPathfindingを個別に実行し、結果を確認することが推奨されます。 - -**注意:**`rippled`は可能な限り低コストのパスを検出するように設計されていますが、常にこのようなパスを検出できるわけではありません。信頼できない`rippled`インスタンスが改ざんされ、利益目的でこの動作が変更される可能性もあります。パスに沿った支払いの実行にかかる実際のコストは、送信時とトランザクション実行時で異なることがあります。 - -パスの検出は、新しいレジャーが検証されるたびに数秒ごとに変化する非常に難しい課題であるため、`rippled`は完全に最適なパスを検出するようには設計されていません。ただし、いくつかの有効なパスを検出し、特定額の送金コストを推定することができます。 - - -## 暗黙のステップ - -規約として、パスのステップのいくつかは[Paymentトランザクションのフィールド](payment.html)により黙示的に示されます。これらのフィールドは、`Account`(送金元)、`Destination`(受取人)、`Amount`(通貨と納入額)、`SendMax`(通貨と送金額(指定されている場合))です。暗黙のステップは次のとおりです。 - -* パスの1番目のステップは、トランザクションの`Account`フィールドに定義されるとおり、トランザクションの送信者であると常に黙示されます。 -* トランザクションに、そのトランザクションの送信者ではない`issuer`が指定されている`SendMax`フィールドが含まれている場合、そのイシュアーはパスの2番目のパスとして黙示されます。 - * `SendMax`の`issuer`が送信側アドレス _である_ 場合、パスはその送信側アドレスから始まり、そのアドレスの特定の通貨のトラストラインのいずれかを使用できます。詳細は、[SendMaxおよびAmountの特殊な値](payment.html#sendmaxおよびamountで使用する特殊なイシュアーの値)を参照してください。 -* トランザクションの`Amount`フィールドに、トランザクションの`Destination`とは異なる`issuer` が指定されている場合、そのイシュアーはパスの最後から2番目のステップであると黙示されます。 -* 最後に、トランザクションの`Destination`フィールドに定義されるとおり、パスの最終ステップはトランザクションの受信者であることが常に黙示されます。 - - -## デフォルトパス - -明示的に指定されたパスの他に、トランザクションは _デフォルトパス_ に沿って実行できます。デフォルトパスは、トランザクションの[暗黙のステップ](#暗黙のステップ)を接続する最も簡単な方法です。 - -デフォルトパスは次のいずれかになります。 - -* トランザクションで(イシュアーに関係なく)1種類の通貨のみが使用される場合、デフォルトパスでは支払いが、関連するアドレスを通じてRipplingされると想定されます。このパスは、これらのアドレスがトラストラインで接続されている場合にのみ機能します。 - * `SendMax`が省略されているか、または`SendMax`の`issuer`が送金元の場合、デフォルトパスが機能するためには送金元`Account`から宛先`Amount`の`issuer`へのトラストラインが必要です。 - * `SendMax`と`Amount`に異なる`issuer`値が指定されており、そのいずれも送金元または受取人ではない場合、これらの2つのイシュアー間のトラストラインでRipplingが必要となるため、デフォルトパスは有用ではない可能性があります。一般にイシュアーが互いに直接信頼し合うことはお勧めしません。 -* 複数通貨間のトランザクションの場合、デフォルトパスは支払元通貨(`SendMax`フィールドで指定)と宛先通貨(`Amount`フィールドで指定)の間でオーダーブックを使用します。 - -有効なすべてのデフォルトパスを次の図に示します。 -[![デフォルトパスの図](img/paths-default_paths.ja.png)](img/paths-default_paths.ja.png) - -デフォルトパスを無効にするには[`tfNoDirectRipple`フラグ](payment.html#paymentのフラグ)を使用します。このケースでは、トランザクションに明示的に指定されたパスを使用してトランザクションを実行することだけが可能です。トレーダーはこのオプションを使用して裁定取引を実行できます。 - - -## パスの仕様 - -パスセットは配列です。パスセットの各要素は、個々の _パス_ を表す別の配列です。パスの各要素は、ステップを指定するオブジェクトです。ステップのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:-----------|:-----------------------|:---------------------------------------| -| `account` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは指定されたアドレスを通じたRipplingを表します。このステップに`currency`フィールドまたは`issuer`フィールドが指定されている場合は、このフィールドを指定しないでください。 | -| `currency` | 文字列 - 通貨コード | _(省略可)_ 指定されている場合、このパスステップはオーダーブックを通じた通貨の変換を表します。指定される通貨は新しい通貨を表します。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | -| `issuer` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは通貨の変換を表し、このアドレスは新しい通貨のイシュアーを定義します。XRP以外の`currency`のステップでこのフィールドが省略されている場合、パスの直前のステップがイシュアーを定義します。`currency`が省略され、このフィールドが指定されている場合、イシュアーが異なる同名の通貨間でオーダーブックを使用するパスステップを示します。`currency`がXRPの場合は省略する必要があります。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | -| `type` | 整数 | **廃止予定**_(省略可)_ 他にどのフィールドが指定されているかを示します。 | -| `type_hex` | 文字列 | **廃止予定**: _(省略可)_`type`フィールドの16進数表現です。 | - -要約すると、以下のフィールドの組み合わせが有効であり、またオプションで`type`、`type_hex`のいずれかまたは両方を指定できます。 - -- `account` のみ -- `currency` のみ -- `currency` と`issuer`(`currency`がXRP以外の場合) -- `issuer` のみ - -パスステップで`account`、`currency`、`issuer`の各フィールドを上記以外の方法で指定することは無効です。 - -パスセットのバイナリシリアル化に使用される`type`フィールドは、実際には1つの整数上でビット演算により作成されます。ビットの定義は次のとおりです。 - -| 値(16進数) | 値(10進数) | 説明 | -|-------------|-----------------|-------------| -| 0x01 | 1 | アドレスの変更(Rippling):`account`フィールドが指定されています。 | -| 0x10 | 16 | 通貨の変更:`currency`フィールドが指定されています。 | -| 0x20 | 32 | イシュアーの変更:`issuer`フィールドが指定されています。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# パス + +XRP Ledgerでは、送金元から受取人への支払いが中間ステップをどのように通過するかをパスによって定義します。パスはオーダーブックを通じて送金元と受取人を結び付けることで、複数通貨間の支払いを可能にします。また、負債を相殺するような複雑な決済もパスにより可能になります。 + +XRP Ledgerでは1つのPaymentトランザクションは複数のパスを使用でき、複数のソースの流動性を組み合わせて必要な額を送金することができます。そのため、トランザクションには使用可能なパスをまとめた _パスセット_ が含まれます。パスセットの中のパスでは開始時と終了時には同一通貨が使用される必要があります。 + +XRPは任意のアドレスに直接送金できるため、XRP間のトランザクションではパスは使用されません。 + +## パスのステップ + +パスは、支払いの送金元と受取人を結ぶステップで構成されています。すべてのステップは次のいずれかを行います。 + +* 同一通貨の別のアドレスを通じたRippling +* オーダーブックでの通貨の取引 + +別のアドレスを通じたRipplingは、負債を移動するプロセスです。一般的なケースでは、ある当事者に対するイシュアーの債務が削減され、別の当事者に対する債務が増加します。Ripplingは、トラストラインで結ばれているすべてのアドレスの間で発生させることができます。Ripplingのその他の例については、[NoRippleフラグについて](rippling.html)を参照してください。 + +通貨取引ステップの場合、パスステップにより変換先の通貨が指定されますが、オーダーブックにはオファーの状態は記録されません。レジャーが検証されるまではトランザクションの正規の順序は最終的ではないため、トランザクションの検証が完了するまでは、トランザクションがどのオファーをとるかは不明です。(各トランザクションは最終レジャーでの実行時に利用可能なオファーの中から最適なオファーをとるため、経験に基づいて推測することができます。) + +いずれのタイプのステップでも、中間アドレスでは取得する価値と失う価値はほぼ同等です。トラストラインから同じ通貨の別のトラストラインへ残高がripplingするか、または以前に出されたオーダーに基づいて通貨が交換されます。場合によっては、[送金手数料](transfer-fees.html)、トラストラインクオリティ、または数値の丸め方が原因で、取得する価値と失われる価値が厳密に同等ではないことがあります。 + +[![3つのパスの例を示す図](img/paths-examples.ja.png)](img/paths-examples.ja.png) + + + +# 技術詳細 + +## Pathfinding + +`rippled` APIではPathfindingに使用できるメソッドが2つあります。[ripple_path_findメソッド][]は、1回限りのパスセットの検索を実行します。[path_findメソッド][](WebSocketのみ)は、レジャーが閉鎖するか、またはサーバーがより適切なパスを検出するたびに、フォローアップ応答によって検索を拡大します。 + +署名時に`rippled`によりパスが自動的に入力されるようにするには、[signメソッド][]または[`submit`コマンド(署名と送信モード)](submit.html#署名と送信モード)への要求に`build_path`フィールドを指定します。ただし、トラブルを回避するために、署名前にPathfindingを個別に実行し、結果を確認することが推奨されます。 + +**注意:**`rippled`は可能な限り低コストのパスを検出するように設計されていますが、常にこのようなパスを検出できるわけではありません。信頼できない`rippled`インスタンスが改ざんされ、利益目的でこの動作が変更される可能性もあります。パスに沿った支払いの実行にかかる実際のコストは、送信時とトランザクション実行時で異なることがあります。 + +パスの検出は、新しいレジャーが検証されるたびに数秒ごとに変化する非常に難しい課題であるため、`rippled`は完全に最適なパスを検出するようには設計されていません。ただし、いくつかの有効なパスを検出し、特定額の送金コストを推定することができます。 + + +## 暗黙のステップ + +規約として、パスのステップのいくつかは[Paymentトランザクションのフィールド](payment.html)により黙示的に示されます。これらのフィールドは、`Account`(送金元)、`Destination`(受取人)、`Amount`(通貨と納入額)、`SendMax`(通貨と送金額(指定されている場合))です。暗黙のステップは次のとおりです。 + +* パスの1番目のステップは、トランザクションの`Account`フィールドに定義されるとおり、トランザクションの送信者であると常に黙示されます。 +* トランザクションに、そのトランザクションの送信者ではない`issuer`が指定されている`SendMax`フィールドが含まれている場合、そのイシュアーはパスの2番目のパスとして黙示されます。 + * `SendMax`の`issuer`が送信側アドレス _である_ 場合、パスはその送信側アドレスから始まり、そのアドレスの特定の通貨のトラストラインのいずれかを使用できます。詳細は、[SendMaxおよびAmountの特殊な値](payment.html#sendmaxおよびamountで使用する特殊なイシュアーの値)を参照してください。 +* トランザクションの`Amount`フィールドに、トランザクションの`Destination`とは異なる`issuer` が指定されている場合、そのイシュアーはパスの最後から2番目のステップであると黙示されます。 +* 最後に、トランザクションの`Destination`フィールドに定義されるとおり、パスの最終ステップはトランザクションの受信者であることが常に黙示されます。 + + +## デフォルトパス + +明示的に指定されたパスの他に、トランザクションは _デフォルトパス_ に沿って実行できます。デフォルトパスは、トランザクションの[暗黙のステップ](#暗黙のステップ)を接続する最も簡単な方法です。 + +デフォルトパスは次のいずれかになります。 + +* トランザクションで(イシュアーに関係なく)1種類の通貨のみが使用される場合、デフォルトパスでは支払いが、関連するアドレスを通じてRipplingされると想定されます。このパスは、これらのアドレスがトラストラインで接続されている場合にのみ機能します。 + * `SendMax`が省略されているか、または`SendMax`の`issuer`が送金元の場合、デフォルトパスが機能するためには送金元`Account`から宛先`Amount`の`issuer`へのトラストラインが必要です。 + * `SendMax`と`Amount`に異なる`issuer`値が指定されており、そのいずれも送金元または受取人ではない場合、これらの2つのイシュアー間のトラストラインでRipplingが必要となるため、デフォルトパスは有用ではない可能性があります。一般にイシュアーが互いに直接信頼し合うことはお勧めしません。 +* 複数通貨間のトランザクションの場合、デフォルトパスは支払元通貨(`SendMax`フィールドで指定)と宛先通貨(`Amount`フィールドで指定)の間でオーダーブックを使用します。 + +有効なすべてのデフォルトパスを次の図に示します。 +[![デフォルトパスの図](img/paths-default_paths.ja.png)](img/paths-default_paths.ja.png) + +デフォルトパスを無効にするには[`tfNoDirectRipple`フラグ](payment.html#paymentのフラグ)を使用します。このケースでは、トランザクションに明示的に指定されたパスを使用してトランザクションを実行することだけが可能です。トレーダーはこのオプションを使用して裁定取引を実行できます。 + + +## パスの仕様 + +パスセットは配列です。パスセットの各要素は、個々の _パス_ を表す別の配列です。パスの各要素は、ステップを指定するオブジェクトです。ステップのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:-----------|:-----------------------|:---------------------------------------| +| `account` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは指定されたアドレスを通じたRipplingを表します。このステップに`currency`フィールドまたは`issuer`フィールドが指定されている場合は、このフィールドを指定しないでください。 | +| `currency` | 文字列 - 通貨コード | _(省略可)_ 指定されている場合、このパスステップはオーダーブックを通じた通貨の変換を表します。指定される通貨は新しい通貨を表します。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | +| `issuer` | 文字列 - アドレス | _(省略可)_ 指定されている場合、このパスステップは通貨の変換を表し、このアドレスは新しい通貨のイシュアーを定義します。XRP以外の`currency`のステップでこのフィールドが省略されている場合、パスの直前のステップがイシュアーを定義します。`currency`が省略され、このフィールドが指定されている場合、イシュアーが異なる同名の通貨間でオーダーブックを使用するパスステップを示します。`currency`がXRPの場合は省略する必要があります。このステップに`account`フィールドが指定されている場合は、このフィールドを指定しないでください。 | +| `type` | 整数 | **廃止予定**_(省略可)_ 他にどのフィールドが指定されているかを示します。 | +| `type_hex` | 文字列 | **廃止予定**: _(省略可)_`type`フィールドの16進数表現です。 | + +要約すると、以下のフィールドの組み合わせが有効であり、またオプションで`type`、`type_hex`のいずれかまたは両方を指定できます。 + +- `account` のみ +- `currency` のみ +- `currency` と`issuer`(`currency`がXRP以外の場合) +- `issuer` のみ + +パスステップで`account`、`currency`、`issuer`の各フィールドを上記以外の方法で指定することは無効です。 + +パスセットのバイナリシリアル化に使用される`type`フィールドは、実際には1つの整数上でビット演算により作成されます。ビットの定義は次のとおりです。 + +| 値(16進数) | 値(10進数) | 説明 | +|-------------|-----------------|-------------| +| 0x01 | 1 | アドレスの変更(Rippling):`account`フィールドが指定されています。 | +| 0x10 | 16 | 通貨の変更:`currency`フィールドが指定されています。 | +| 0x20 | 32 | イシュアーの変更:`issuer`フィールドが指定されています。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/issued-currencies/rippling.ja.md b/content/concepts/issued-currencies/rippling.ja.md index 1c8e45bd42..0110cb2fb4 100644 --- a/content/concepts/issued-currencies/rippling.ja.md +++ b/content/concepts/issued-currencies/rippling.ja.md @@ -1,86 +1,86 @@ -# Rippling - -XRP Ledgerでは、「Rippling」とは同一通貨の[トラストライン](trust-lines-and-issuing.html)を有する複数の接続当事者間での非可分なネット決済のプロセスを指しています。Ripplingは発行済み通貨の基幹的なプロセスです。Ripplingを利用すれば、同一イシュアーを信頼するユーザーは、そのイシュアーを受動的な仲介機関として発行済み残高を相互に送金できるようになります。Ripplingは、受動的かつ双方向の[通貨取引オーダー](offers.html)のようなもので、制限がなく、通貨コードが同一でイシュアーが異なる2つの通貨間の為替レートは1:1です。 - -Ripplingは、支払[パス](paths.html)でのみ発生します。 - -発行アカウント以外のアカウントでは、Ripplingが望ましくない場合があります。Ripplingを使えば、他のユーザーが同一通貨のイシュアー間で債権債務を移動できるようになるためです。このため、アカウントの[DefaultRippleフラグ](#defaultrippleフラグ)を有効にして、アカウントがデフォルトでRipplingを有効にしない限り、デフォルトでは[NoRippleフラグ](#norippleフラグ)により着信トラストラインでのRipplingが無効になっています。 - -**注意:** 別のアドレスへのトラストラインを作成する場合、そのトラストラインのあなたの側でRipplingをブロックするには、tfSetNoRippleフラグを明示的に有効にする必要があります。 - -## Ripplingの例 - -「Rippling」は、支払いを行うために複数のトラストラインが調整されたときに発生します。たとえば、AliceがCharlieにお金を借りており、さらにAliceはBobからもお金を借りている場合、XRP Ledgerではトラストラインは次のようになります: - -![Charlie --($10)-- Alice --($20)-- Bob](img/noripple-01.ja.png) - -BobがCharlieに$3を支払いたい場合、BobはAliceに対して「Alice、君に貸しているお金の中から$3をCharlieに支払ってくれ。」と言えます。AliceはBobに借りているお金の一部をCharlieに送金します。最終的にはトラストラインは次のようになります。 - -![Charlie --($13)-- Alice --($17)-- Bob](img/noripple-02.ja.png) - -2つのアドレスが、アドレス間のトラストライン上の残高を調整することで相互に支払うこのプロセスを「Rippling」と呼びます。これはXRP Ledgerの有用で重要な機能です。Ripplingは、同一の[通貨コード][]を使用するトラストラインによってアドレスがリンクされている場合に起こります。イシュアーが同一でなくてもかまいません。実際、大規模なチェーンでは常にイシュアーが変更されます。 - -## NoRippleフラグ - -発行アカウント以外のアカウント、特に手数料やポリシーが異なる複数のイシュアーの残高を保有している流動性プロバイダーは、一般的に残高がRipplingされることを望みません。 - -「NoRipple」フラグは、トラストライン上の設定です。2つのトラストラインの両方で、同じアドレスによってNoRippleが有効に設定されている場合、第三者からの支払を、これらのトラストラインでこのアドレスを通じて「Rippling」することはできません。これにより、同一通貨の複数イシュアー間で流動性プロバイダーの残高が予期せず移動されるのを防ぎます。 - -アカウントは1つのトラストラインでNoRippleを無効にできます。これにより、そのトラストラインを含む任意のペアを通じてのRipplingが可能になります。アカウントにてデフォルトでRipplingを有効にするには、[DefaultRippleフラグ](#defaultrippleフラグ)を有効にします。 - -たとえば、Emilyが2つの異なる金融機関から発行されたお金を保有しているとします。 - -![Charlie --($10)-- 金融機関A --($1)-- Emily --($100)-- 金融機関B --($2)-- Daniel](img/noripple-03.ja.png) - -CharlieはDanielに支払うため、Emilyのアドレスを通じてRipplingします。たとえば、CharlieがDanielに$10を支払うとします: - -![Charlie --($0)-- 金融機関A --($11)-- Emily --($90)-- 金融機関B --($12)-- Daniel](img/noripple-04.ja.png) - -この場合、CharlieやDanielと面識のないEmilyは驚く可能性があります。さらに、金融機関Aが金融機関Bよりも高い出金手数料をEmilyに請求した場合、Emilyがコストを負担することになる可能性があります。NoRippleフラグはこの状況を回避するためのフラグです。Emilyが両方のトラストラインでNoRippleフラグを設定していれば、この2つのトラストラインを使用しているEmilyのアドレスを通じて、支払がRipplingされることはありません。 - -例: - -![Charlie --($10)-- 金融機関A --($1、NoRipple)-- Emily --($100、NoRipple)-- 金融機関B --($2)-- Daniel](img/noripple-05.ja.png) - -このように、CharlieがEmilyのアドレスを通じてRipplingし、Danielに支払うという上記のシナリオは、不可能になります。 - -### 詳細 - -NoRippleフラグにより特定のパスが無効になり、無効になったパスは支払に使用できなくなります。パスが無効であると見なされるのは、パスが、あるアドレスに対してNoRippleが有効となっているトラストラインを通じて、そのアドレスノードに入り**かつ**そのノードから出た場合に限られます。 - -![処理を行うためには同一アドレスによって両方のトラストラインにNoRippleが設定されている必要があることを示す図](img/noripple-06.ja.png) - - -## DefaultRippleフラグ - -DefaultRippleフラグは、デフォルトで着信トラストラインでのRipplingを有効にするアカウント設定です。ゲートウェイやその他の通貨イシュアーは、顧客が通貨を相互に送金できるようにするには、このフラグを有効にする必要があります。 - -アカウントのDefaultRipple設定は、他者があなたに対してオープンしたトラストラインにのみ影響し、あなたが作成するトラストラインには影響しません。アカウントのDefaultRipple設定を変更する場合、変更前に作成したトラストラインでは既存のNoRipple設定が維持されます。アドレスの新しいデフォルトに合わせてトラストラインのNoRipple設定を変更するには、[TrustSetトランザクション][]を使用します。 - -詳細は、[「XRP Ledgerゲートウェイの開設」のDefaultRipple](become-an-xrp-ledger-gateway.html#defaultripple)を参照してください。 - - -## NoRippleを使用する - - -### NoRippleを有効/無効にする - -トラストライン上のNoRippleフラグは、トラストライン上のアドレスの残高がプラスまたはゼロの場合に限り、有効にできます。これにより、この機能を悪用してトラストラインの残高に示される債務を不履行にすることができなくなります。(ただし、アドレスを放棄すれば債務を不履行にできます。) - -[`rippled` API](rippled-api.html)でNoRippleフラグを有効にするには、`tfSetNoRipple`フラグを設定した[TrustSetトランザクション][]を送信します。NoRippleを無効にする(Ripplingを有効にする)には、`tfClearNoRipple`フラグを使用します。 - -[RippleAPI](rippleapi-reference.html)でNoRippleフラグを有効にするには、トラストラインの`ripplingDisabled` フィールドを`true`に設定して[Trustlineトランザクション](rippleapi-reference.html#preparetrustline)を送信します。 - - -### NoRippleステータスの確認 - -相互に信頼し合っている2つのアカウントの場合、NoRippleフラグはアカウントごとに管理されます。 - -[`rippled` API](rippled-api.html)でアドレスに関連付けられているトラストラインを確認するには、[account_linesメソッド][]を使用します。各トラストラインの`no_ripple`フィールドには、現在のアドレスがそのトラストラインに対してNoRippleフラグを有効にしているか否かが表示され、`no_ripple_peer`フィールドには、取引相手がNoRippleフラグを有効にしているか否かが表示されます。 - -[RippleAPI](rippleapi-reference.html)でアドレスに関連付けられているトラストラインを確認するには、[getTrustlines](rippleapi-reference.html#gettrustlines)メソッドを使用します。各トラストラインの`ripplingDisabled`フィールドには、現在のアドレスがそのトラストラインに対してNoRippleフラグを有効にしているか否かが表示され、`counterparty.ripplingDisabled`フィールドには、取引相手がNoRippleフラグを有効にしているか否かが表示されます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Rippling + +XRP Ledgerでは、「Rippling」とは同一通貨の[トラストライン](trust-lines-and-issuing.html)を有する複数の接続当事者間での非可分なネット決済のプロセスを指しています。Ripplingは発行済み通貨の基幹的なプロセスです。Ripplingを利用すれば、同一イシュアーを信頼するユーザーは、そのイシュアーを受動的な仲介機関として発行済み残高を相互に送金できるようになります。Ripplingは、受動的かつ双方向の[通貨取引オーダー](offers.html)のようなもので、制限がなく、通貨コードが同一でイシュアーが異なる2つの通貨間の為替レートは1:1です。 + +Ripplingは、支払[パス](paths.html)でのみ発生します。 + +発行アカウント以外のアカウントでは、Ripplingが望ましくない場合があります。Ripplingを使えば、他のユーザーが同一通貨のイシュアー間で債権債務を移動できるようになるためです。このため、アカウントの[DefaultRippleフラグ](#defaultrippleフラグ)を有効にして、アカウントがデフォルトでRipplingを有効にしない限り、デフォルトでは[NoRippleフラグ](#norippleフラグ)により着信トラストラインでのRipplingが無効になっています。 + +**注意:** 別のアドレスへのトラストラインを作成する場合、そのトラストラインのあなたの側でRipplingをブロックするには、tfSetNoRippleフラグを明示的に有効にする必要があります。 + +## Ripplingの例 + +「Rippling」は、支払いを行うために複数のトラストラインが調整されたときに発生します。たとえば、AliceがCharlieにお金を借りており、さらにAliceはBobからもお金を借りている場合、XRP Ledgerではトラストラインは次のようになります: + +![Charlie --($10)-- Alice --($20)-- Bob](img/noripple-01.ja.png) + +BobがCharlieに$3を支払いたい場合、BobはAliceに対して「Alice、君に貸しているお金の中から$3をCharlieに支払ってくれ。」と言えます。AliceはBobに借りているお金の一部をCharlieに送金します。最終的にはトラストラインは次のようになります。 + +![Charlie --($13)-- Alice --($17)-- Bob](img/noripple-02.ja.png) + +2つのアドレスが、アドレス間のトラストライン上の残高を調整することで相互に支払うこのプロセスを「Rippling」と呼びます。これはXRP Ledgerの有用で重要な機能です。Ripplingは、同一の[通貨コード][]を使用するトラストラインによってアドレスがリンクされている場合に起こります。イシュアーが同一でなくてもかまいません。実際、大規模なチェーンでは常にイシュアーが変更されます。 + +## NoRippleフラグ + +発行アカウント以外のアカウント、特に手数料やポリシーが異なる複数のイシュアーの残高を保有している流動性プロバイダーは、一般的に残高がRipplingされることを望みません。 + +「NoRipple」フラグは、トラストライン上の設定です。2つのトラストラインの両方で、同じアドレスによってNoRippleが有効に設定されている場合、第三者からの支払を、これらのトラストラインでこのアドレスを通じて「Rippling」することはできません。これにより、同一通貨の複数イシュアー間で流動性プロバイダーの残高が予期せず移動されるのを防ぎます。 + +アカウントは1つのトラストラインでNoRippleを無効にできます。これにより、そのトラストラインを含む任意のペアを通じてのRipplingが可能になります。アカウントにてデフォルトでRipplingを有効にするには、[DefaultRippleフラグ](#defaultrippleフラグ)を有効にします。 + +たとえば、Emilyが2つの異なる金融機関から発行されたお金を保有しているとします。 + +![Charlie --($10)-- 金融機関A --($1)-- Emily --($100)-- 金融機関B --($2)-- Daniel](img/noripple-03.ja.png) + +CharlieはDanielに支払うため、Emilyのアドレスを通じてRipplingします。たとえば、CharlieがDanielに$10を支払うとします: + +![Charlie --($0)-- 金融機関A --($11)-- Emily --($90)-- 金融機関B --($12)-- Daniel](img/noripple-04.ja.png) + +この場合、CharlieやDanielと面識のないEmilyは驚く可能性があります。さらに、金融機関Aが金融機関Bよりも高い出金手数料をEmilyに請求した場合、Emilyがコストを負担することになる可能性があります。NoRippleフラグはこの状況を回避するためのフラグです。Emilyが両方のトラストラインでNoRippleフラグを設定していれば、この2つのトラストラインを使用しているEmilyのアドレスを通じて、支払がRipplingされることはありません。 + +例: + +![Charlie --($10)-- 金融機関A --($1、NoRipple)-- Emily --($100、NoRipple)-- 金融機関B --($2)-- Daniel](img/noripple-05.ja.png) + +このように、CharlieがEmilyのアドレスを通じてRipplingし、Danielに支払うという上記のシナリオは、不可能になります。 + +### 詳細 + +NoRippleフラグにより特定のパスが無効になり、無効になったパスは支払に使用できなくなります。パスが無効であると見なされるのは、パスが、あるアドレスに対してNoRippleが有効となっているトラストラインを通じて、そのアドレスノードに入り**かつ**そのノードから出た場合に限られます。 + +![処理を行うためには同一アドレスによって両方のトラストラインにNoRippleが設定されている必要があることを示す図](img/noripple-06.ja.png) + + +## DefaultRippleフラグ + +DefaultRippleフラグは、デフォルトで着信トラストラインでのRipplingを有効にするアカウント設定です。ゲートウェイやその他の通貨イシュアーは、顧客が通貨を相互に送金できるようにするには、このフラグを有効にする必要があります。 + +アカウントのDefaultRipple設定は、他者があなたに対してオープンしたトラストラインにのみ影響し、あなたが作成するトラストラインには影響しません。アカウントのDefaultRipple設定を変更する場合、変更前に作成したトラストラインでは既存のNoRipple設定が維持されます。アドレスの新しいデフォルトに合わせてトラストラインのNoRipple設定を変更するには、[TrustSetトランザクション][]を使用します。 + +詳細は、[「XRP Ledgerゲートウェイの開設」のDefaultRipple](become-an-xrp-ledger-gateway.html#defaultripple)を参照してください。 + + +## NoRippleを使用する + + +### NoRippleを有効/無効にする + +トラストライン上のNoRippleフラグは、トラストライン上のアドレスの残高がプラスまたはゼロの場合に限り、有効にできます。これにより、この機能を悪用してトラストラインの残高に示される債務を不履行にすることができなくなります。(ただし、アドレスを放棄すれば債務を不履行にできます。) + +[`rippled` API](rippled-api.html)でNoRippleフラグを有効にするには、`tfSetNoRipple`フラグを設定した[TrustSetトランザクション][]を送信します。NoRippleを無効にする(Ripplingを有効にする)には、`tfClearNoRipple`フラグを使用します。 + +[RippleAPI](rippleapi-reference.html)でNoRippleフラグを有効にするには、トラストラインの`ripplingDisabled` フィールドを`true`に設定して[Trustlineトランザクション](rippleapi-reference.html#preparetrustline)を送信します。 + + +### NoRippleステータスの確認 + +相互に信頼し合っている2つのアカウントの場合、NoRippleフラグはアカウントごとに管理されます。 + +[`rippled` API](rippled-api.html)でアドレスに関連付けられているトラストラインを確認するには、[account_linesメソッド][]を使用します。各トラストラインの`no_ripple`フィールドには、現在のアドレスがそのトラストラインに対してNoRippleフラグを有効にしているか否かが表示され、`no_ripple_peer`フィールドには、取引相手がNoRippleフラグを有効にしているか否かが表示されます。 + +[RippleAPI](rippleapi-reference.html)でアドレスに関連付けられているトラストラインを確認するには、[getTrustlines](rippleapi-reference.html#gettrustlines)メソッドを使用します。各トラストラインの`ripplingDisabled`フィールドには、現在のアドレスがそのトラストラインに対してNoRippleフラグを有効にしているか否かが表示され、`counterparty.ripplingDisabled`フィールドには、取引相手がNoRippleフラグを有効にしているか否かが表示されます。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/issued-currencies/transfer-fees.ja.md b/content/concepts/issued-currencies/transfer-fees.ja.md index d69aac2e48..ba822e9dd0 100644 --- a/content/concepts/issued-currencies/transfer-fees.ja.md +++ b/content/concepts/issued-currencies/transfer-fees.ja.md @@ -1,55 +1,55 @@ -# 送金手数料 - -[XRP Ledgerで通貨を発行する金融機関](become-an-xrp-ledger-gateway.html)は、XRP Ledgerの`TransferRate`設定を使用して、 その金融機関が発行する通貨を送金するユーザーに対し _送金手数料_ を請求できます。この送金の送金元からは送金手数料に基づくパーセンテージが引き落とされ、送金先には予定額が入金されます。差額が送金手数料です。送金手数料は発行アドレスの資産となり、XRP Ledgerではこれ以上追跡されません。発行アカウントとの _直接_ の送金と入金には送金手数料は適用されませんが、[運用アドレス][]から別のユーザーへの送金には送金手数料が適用されます。 - -[運用アドレス]: issuing-and-operational-addresses.html -[発行アドレス]: issuing-and-operational-addresses.html - -XRPにはイシュアーがいないため、送金手数料が発生することはありません。 - -たとえばACME BankがACMEイシュアンスの送金手数料を0.5%に設定するとします。支払いの受取人が2 EUR.ACMEを受領するには、送金元が2.01 EUR.ACMEを送金する必要があります。このトランザクションの後、XRP LedgerのACMEの債務残高は0.01€減少します。つまり、ACMEはそのXRP Ledgerイシュアンスの担保となるアカウントで当該の額を保有する必要がありません。 - -次の図は、XRP LedgerによるAliceからCharlieへの2 EUR.ACMEの支払い(送金手数料1%)を示します。 - -![Aliceが2,02€を送金し、Charlieが2,00€を受領し、XRP LedgerでのACMEの負債が0,02€減少します](img/e2g-with_transferrate.ja.png) - -## ペイメントパスでの送金手数料 - - - -送金手数料は、各送金においてイシュアンスが発行アカウントを通じて当事者間を移動するたびに適用されます。さらに複雑なトランザクションでは、手数料が複数回適用されます。送金手数料は、送金の終わりの時点から逆方向に適用されるので、最終的には支払いの送金者がすべての手数料をカバーするのに十分な額を送金する必要があります。次に例を示します。 - -![手数料が適用された複数通貨間の支払いの図](img/transfer_fees_example.ja.png) - -このシナリオでは、ACMEが発行したEURをSalazar(送金元)が保有しており、WayGateが発行した100 USDをRosa(受取人)に送金したいと思っています。FXMakerはオーダーブックで最も良いレート(1 USD.WayGate = 0.9 EUR.ACME)のオファーを提供する通貨取引業者です。もし手数料がなければ、Salazarは90 EURを送金すればRosaに100 USDを送金することができます。しかしながら、ACMEで1%の送金手数料が発生し、WayGateで0.2%の送金手数料が発生します。つまり、次のようになります。 - -* Rosaが100 USD.WayGateを受領するには、FXMakerから100.20 USD.WayGateを送金する必要があります。 -* 100.20 USD.WayGateを送金する場合のFXMakerの現在の買値は90.18 EUR.ACMEです。 -* FXMakerが90.18 EUR.ACMEを受領するには、Salazarが91.0818 EUR.ACMEを送金する必要があります。 - -# 技術詳細 - -送金手数料は[発行アドレス][]の設定により表されます。送金手数料には、0%未満の値と100%を超える値は指定できず、0.0000001%の位までで切り捨てられます。TransferRate設定は同一アカウントにより発行されるすべての通貨に適用されます。通貨によって異なる送金手数料のパーセンテージを適用するには、通貨ごとに異なる[発行アドレス][発行アドレス]を使用します。 - -**注記:**`rippled`v0.80.0で導入され2017-11-14に有効となった[fix1201 Amendment](amendments.html)により、最大送金手数料は実効限度である約329%(32ビット整数の最大サイズに基づく)から100%に引き下げられました。送金手数料の設定が100%(`TransferRate`が`2000000000`)を上回るアカウントがレジャーにまだ含まれている可能性があります。すでに設定されている手数料はすべて、規定のレートで引き続き運用されます。 - -## RippleAPI - -RippleAPIでは、送金手数料は`transferRate`フィールドに10進数で指定され、この数は受取人が同一通貨を1単位受領できるよう送金する必要のある額を表します。`transferRate`が`1.005`の場合、送金手数料0.5%に相当します。デフォルトでは`transferRate`は手数料なしに設定されています。`transferRate`には、`1.0`未満の値と`2.0`を上回る値は指定できません。送金手数料は、10桁の有効数字に丸められます(1の位の数字を含む)。値`null`は手数料なしの特殊なケースであり、`1.0`に相当します。 - -金融機関は、[発行アドレス][]から[Settingsトランザクション](rippleapi-reference.html#settings)を送信して、イシュアンスの`transferRate`を変更することができます。 - -アカウントの`transferRate`を確認するには、[getSettingsメソッド](rippleapi-reference.html#getsettings)を使用します。 - -## rippled - -`rippled`のJSON-RPC APIおよびWebSocket APIでは、送金手数料は`TransferRate`フィールドに10進数で指定され、この数字は受取人が同一通貨を10億単位受領できるよう送金する必要のある額を表します。`TransferRate`が`1005000000`の場合、送金手数料0.5%に相当します。デフォルトでは`TransferRate`は手数料なしに設定されています。`TransferRate`には、`1000000000`(手数料「0%」)未満の値と`2000000000`(手数料「100%」)を上回る値は指定できません。値`0`は手数料なしの特殊なケースであり、`1000000000`に相当します。 - -金融機関は、[発行アドレス][]から[AccountSetトランザクション][]を送信して、イシュアンスの`TransferRate`を変更することができます。 - -アカウントの`TransferRate`を確認するには、[account_infoメソッド][]を使用します。`TransferRate`が省略されている場合は、手数料はありません。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 送金手数料 + +[XRP Ledgerで通貨を発行する金融機関](become-an-xrp-ledger-gateway.html)は、XRP Ledgerの`TransferRate`設定を使用して、 その金融機関が発行する通貨を送金するユーザーに対し _送金手数料_ を請求できます。この送金の送金元からは送金手数料に基づくパーセンテージが引き落とされ、送金先には予定額が入金されます。差額が送金手数料です。送金手数料は発行アドレスの資産となり、XRP Ledgerではこれ以上追跡されません。発行アカウントとの _直接_ の送金と入金には送金手数料は適用されませんが、[運用アドレス][]から別のユーザーへの送金には送金手数料が適用されます。 + +[運用アドレス]: issuing-and-operational-addresses.html +[発行アドレス]: issuing-and-operational-addresses.html + +XRPにはイシュアーがいないため、送金手数料が発生することはありません。 + +たとえばACME BankがACMEイシュアンスの送金手数料を0.5%に設定するとします。支払いの受取人が2 EUR.ACMEを受領するには、送金元が2.01 EUR.ACMEを送金する必要があります。このトランザクションの後、XRP LedgerのACMEの債務残高は0.01€減少します。つまり、ACMEはそのXRP Ledgerイシュアンスの担保となるアカウントで当該の額を保有する必要がありません。 + +次の図は、XRP LedgerによるAliceからCharlieへの2 EUR.ACMEの支払い(送金手数料1%)を示します。 + +![Aliceが2,02€を送金し、Charlieが2,00€を受領し、XRP LedgerでのACMEの負債が0,02€減少します](img/e2g-with_transferrate.ja.png) + +## ペイメントパスでの送金手数料 + + + +送金手数料は、各送金においてイシュアンスが発行アカウントを通じて当事者間を移動するたびに適用されます。さらに複雑なトランザクションでは、手数料が複数回適用されます。送金手数料は、送金の終わりの時点から逆方向に適用されるので、最終的には支払いの送金者がすべての手数料をカバーするのに十分な額を送金する必要があります。次に例を示します。 + +![手数料が適用された複数通貨間の支払いの図](img/transfer_fees_example.ja.png) + +このシナリオでは、ACMEが発行したEURをSalazar(送金元)が保有しており、WayGateが発行した100 USDをRosa(受取人)に送金したいと思っています。FXMakerはオーダーブックで最も良いレート(1 USD.WayGate = 0.9 EUR.ACME)のオファーを提供する通貨取引業者です。もし手数料がなければ、Salazarは90 EURを送金すればRosaに100 USDを送金することができます。しかしながら、ACMEで1%の送金手数料が発生し、WayGateで0.2%の送金手数料が発生します。つまり、次のようになります。 + +* Rosaが100 USD.WayGateを受領するには、FXMakerから100.20 USD.WayGateを送金する必要があります。 +* 100.20 USD.WayGateを送金する場合のFXMakerの現在の買値は90.18 EUR.ACMEです。 +* FXMakerが90.18 EUR.ACMEを受領するには、Salazarが91.0818 EUR.ACMEを送金する必要があります。 + +# 技術詳細 + +送金手数料は[発行アドレス][]の設定により表されます。送金手数料には、0%未満の値と100%を超える値は指定できず、0.0000001%の位までで切り捨てられます。TransferRate設定は同一アカウントにより発行されるすべての通貨に適用されます。通貨によって異なる送金手数料のパーセンテージを適用するには、通貨ごとに異なる[発行アドレス][発行アドレス]を使用します。 + +**注記:**`rippled`v0.80.0で導入され2017-11-14に有効となった[fix1201 Amendment](amendments.html)により、最大送金手数料は実効限度である約329%(32ビット整数の最大サイズに基づく)から100%に引き下げられました。送金手数料の設定が100%(`TransferRate`が`2000000000`)を上回るアカウントがレジャーにまだ含まれている可能性があります。すでに設定されている手数料はすべて、規定のレートで引き続き運用されます。 + +## RippleAPI + +RippleAPIでは、送金手数料は`transferRate`フィールドに10進数で指定され、この数は受取人が同一通貨を1単位受領できるよう送金する必要のある額を表します。`transferRate`が`1.005`の場合、送金手数料0.5%に相当します。デフォルトでは`transferRate`は手数料なしに設定されています。`transferRate`には、`1.0`未満の値と`2.0`を上回る値は指定できません。送金手数料は、10桁の有効数字に丸められます(1の位の数字を含む)。値`null`は手数料なしの特殊なケースであり、`1.0`に相当します。 + +金融機関は、[発行アドレス][]から[Settingsトランザクション](rippleapi-reference.html#settings)を送信して、イシュアンスの`transferRate`を変更することができます。 + +アカウントの`transferRate`を確認するには、[getSettingsメソッド](rippleapi-reference.html#getsettings)を使用します。 + +## rippled + +`rippled`のJSON-RPC APIおよびWebSocket APIでは、送金手数料は`TransferRate`フィールドに10進数で指定され、この数字は受取人が同一通貨を10億単位受領できるよう送金する必要のある額を表します。`TransferRate`が`1005000000`の場合、送金手数料0.5%に相当します。デフォルトでは`TransferRate`は手数料なしに設定されています。`TransferRate`には、`1000000000`(手数料「0%」)未満の値と`2000000000`(手数料「100%」)を上回る値は指定できません。値`0`は手数料なしの特殊なケースであり、`1000000000`に相当します。 + +金融機関は、[発行アドレス][]から[AccountSetトランザクション][]を送信して、イシュアンスの`TransferRate`を変更することができます。 + +アカウントの`TransferRate`を確認するには、[account_infoメソッド][]を使用します。`TransferRate`が省略されている場合は、手数料はありません。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/issued-currencies/trust-lines-and-issuing.ja.md b/content/concepts/issued-currencies/trust-lines-and-issuing.ja.md index 10ae54d61b..fe9d0328e5 100644 --- a/content/concepts/issued-currencies/trust-lines-and-issuing.ja.md +++ b/content/concepts/issued-currencies/trust-lines-and-issuing.ja.md @@ -1,24 +1,24 @@ -# トラストラインと発行 - -XRP Ledgerの[発行済み通貨](issued-currencies.html)は、XRP Ledger外部で _ゲートウェイ_ が保有する価値をしばしば表します。ユーザーがXRP Ledgerの残高をイシュアーに返却して清算するときには、XRP Ledger内でこれらの資金を発行するアドレスが、XRP Ledger外部で残高を払い戻すことが期待されます。 - -コンピュータープログラムは外界で約束を守ることを誰にも強制できないため、トラストラインは、イシュアーがあなたの代わりに保有する価値の量として、あなたが信頼できる量を設定する手段となります。信用のある大手金融機関は、お金のないルームメートに比べれば返済能力は高いため、トラストラインごとに異なる限度を設定して、XRP Ledgerでイシュアーがあなたから「借用」できる上限額を指定できます。イシュアーが債務不履行になった場合や、倒産した場合には、XRP Ledgerでの保有残高をその他の等価の資産と交換できなくなるため、設定した上限額まで失う可能性があります。(XRP Ledgerで引き続き発行済み通貨を保持または取引できますが、発行済み通貨に価値があると見なされる理由がなくなる可能性があります。) - -次の2つの場合、残高が限度額を _超過_ しても、トラストラインにその残高を保有できます。[取引](decentralized-exchange.html)によりその通貨をさらに積み増しする場合と、トラストラインの限度を引き下げる場合。 - -トラストラインはレジャーのスペースを使用するため、[トラストラインにより、アカウントの準備金として保有する必要のあるXRPが増加します](reserves.html)。これは、信頼を受けているアカウントではなく、信頼を拡大しているアカウントに適用されます。 - -各トラストラインは、特定の[通貨コード][]に固有です。2つのアカウント間に作成できる各種通貨コードのトラストラインの数に制限はありませんが、どの通貨コードについても、作成できるトラストラインは1方向に1つだけです。 - -## トラストラインの設定 - -トラストラインは、レジャーの状態データでは[RippleStateオブジェクト](ripplestate.html)として表されます。1つのRippleStateオブジェクトは、一方向または両方向のトラストラインの可能性を表します。このオブジェクトにはトラストラインのそれぞれのサイドに対する制限やその他の設定が含まれていますが、両サイドは1つの正味残高を共有しています。 - -トラストラインの設定がデフォルトの状態である場合、トラストラインがないのと同等です。 - -[NoRippleフラグ](rippling.html)(デフォルトの設定はDefaultRippleフラグの設定に応じて異なる)を除き、トラストラインフラグのすべてのフラグは、デフォルトでオフになっています。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トラストラインと発行 + +XRP Ledgerの[発行済み通貨](issued-currencies.html)は、XRP Ledger外部で _ゲートウェイ_ が保有する価値をしばしば表します。ユーザーがXRP Ledgerの残高をイシュアーに返却して清算するときには、XRP Ledger内でこれらの資金を発行するアドレスが、XRP Ledger外部で残高を払い戻すことが期待されます。 + +コンピュータープログラムは外界で約束を守ることを誰にも強制できないため、トラストラインは、イシュアーがあなたの代わりに保有する価値の量として、あなたが信頼できる量を設定する手段となります。信用のある大手金融機関は、お金のないルームメートに比べれば返済能力は高いため、トラストラインごとに異なる限度を設定して、XRP Ledgerでイシュアーがあなたから「借用」できる上限額を指定できます。イシュアーが債務不履行になった場合や、倒産した場合には、XRP Ledgerでの保有残高をその他の等価の資産と交換できなくなるため、設定した上限額まで失う可能性があります。(XRP Ledgerで引き続き発行済み通貨を保持または取引できますが、発行済み通貨に価値があると見なされる理由がなくなる可能性があります。) + +次の2つの場合、残高が限度額を _超過_ しても、トラストラインにその残高を保有できます。[取引](decentralized-exchange.html)によりその通貨をさらに積み増しする場合と、トラストラインの限度を引き下げる場合。 + +トラストラインはレジャーのスペースを使用するため、[トラストラインにより、アカウントの準備金として保有する必要のあるXRPが増加します](reserves.html)。これは、信頼を受けているアカウントではなく、信頼を拡大しているアカウントに適用されます。 + +各トラストラインは、特定の[通貨コード][]に固有です。2つのアカウント間に作成できる各種通貨コードのトラストラインの数に制限はありませんが、どの通貨コードについても、作成できるトラストラインは1方向に1つだけです。 + +## トラストラインの設定 + +トラストラインは、レジャーの状態データでは[RippleStateオブジェクト](ripplestate.html)として表されます。1つのRippleStateオブジェクトは、一方向または両方向のトラストラインの可能性を表します。このオブジェクトにはトラストラインのそれぞれのサイドに対する制限やその他の設定が含まれていますが、両サイドは1つの正味残高を共有しています。 + +トラストラインの設定がデフォルトの状態である場合、トラストラインがないのと同等です。 + +[NoRippleフラグ](rippling.html)(デフォルトの設定はDefaultRippleフラグの設定に応じて異なる)を除き、トラストラインフラグのすべてのフラグは、デフォルトでオフになっています。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-system-basics/accounts/accounts.ja.md b/content/concepts/payment-system-basics/accounts/accounts.ja.md index d5f2697d5c..db815f30c2 100644 --- a/content/concepts/payment-system-basics/accounts/accounts.ja.md +++ b/content/concepts/payment-system-basics/accounts/accounts.ja.md @@ -1,141 +1,141 @@ -# アカウント - -XRP Ledgerの「アカウント」は、XRPの所有者と[トランザクション](transaction-formats.html)の送信者を表します。アカウントの主な要素は次のとおりです。 - -- 識別用の**アドレス**。例えば、 `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn` -- **XRPの残高**。このXRPの一部は、[準備金](reserves.html)用に確保されています。 -- **シーケンス番号**は1から始まり、このアカウントからトランザクションが送信されるたびに1つ増加します。トランザクションのシーケンス番号がその送信者の次のシーケンス番号と一致しない限り、トランザクションをレジャーに含めることはできません。 -- このアカウントと残高に影響を及ぼした**取引の履歴**。 -- [取引の承認](transaction-basics.html#取引の承認)方法。以下に例を示します。 - - アカウント固有のマスターキーのペア。([無効](accountset.html)にできますが、変更はできません。) - - [ローテーションで使用](setregularkey.html)できる「レギュラー」キーペア。 - - [マルチ署名](multi-signing.html)の署名者のリスト。(アカウントのコアデータとは別に保存されます。) - -アカウントのコアデータは、レジャーのデータツリーの[AccountRoot](accountroot.html)レジャーのオブジェクトタイプに保存されます。アカウントは、他の複数のタイプのデータの所有者(または部分的な所有者)になることもできます。 - -**ヒント:** XRP Ledgerの「アカウント」は、財務上の用途(例:「銀行口座」)やコンピューター上の用途(例:「UNIXアカウント」)で使用されます。XRP以外の通貨および資産はXRP Ledgerアカウント自体には保存されません。そのような資産はそれぞれ、両当事者を結ぶ「トラストライン」と呼ばれる会計関係に保存されます。 - -### アカウントの作成 - -「アカウント作成」専用のトランザクションはありません。Paymentトランザクション でまだアカウントを所有していない数学的に有効なアドレスに[アカウントの準備金](reserves.html)以上のXRPが送信されると、[Paymentトランザクション][]で自動的に新しいアカウントが作成されます。これはアカウントの _資金提供_ と呼ばれ、レジャーに[AccountRootオブジェクト](accountroot.html)が作成されます。それ以外のトランザクションでアカウントを作成することはできません。 - -**注意:** アカウントを資金提供することによって、そのアカウントに対して特別な権限を持つことには**なりません**。アカウントのアドレスに対応するシークレットキーを持っている人なら誰でも、アカウントとそれに含まれるすべてのXRPの完全制御権を持っています。一部のアドレスでは、誰もシークレットキーを持っていない場合があります。その場合、アカウントは[ブラックホール](#特別なアドレス)になり、XRPは永久に失われます。 - -XRP Ledgerでアカウントを取得する一般的な方法は次のとおりです。 - -1. ランダム性の強いソースからキーペアを生成し、そのキーペアのアドレスを計算します。(例えば、[wallet_proposeメソッド][]を使用して計算することができます。) - -2. XRP Ledgerにアカウントをすでに持っているユーザーに、生成したアドレスにXRPを送信してもらいます。 - - - 例えば、一般の取引所でXRPを購入し、その取引所から、指定したアドレスにXRPを引き出すことができます。 - - **注意:** 自身のXRP Ledgerアドレスで初めてXRPを受け取る場合は[アカウントの準備金](reserveves.html)(現在は20 XRP)を支払う必要があります。この金額のXRPは無期限に使用できなくなります。一方で、一般の取引所では通常、顧客のXRPはすべて、共有されたいくつかのXRP Ledgerアカウントに保有されているため、顧客はその取引所で個々のアカウントの準備金を支払う必要はありません。引き出す前に、XRP Ledgerに直接アカウントを保有することが、金額に見合う価値があるかどうかを検討してください。 - -## アドレス - -{% include '_snippets/data_types/address.md' %} - -有効なアドレスに資金供給することで、そのアドレスを[XRP Ledgerのアカウントにする](#アカウントの作成)ことができます。[レギュラーキー](setregularkey.html)または[署名者リスト](multi-signing.html)のメンバーを表すために資金供給されていないアドレスを使用することもできます。資金供給されたアカウントのみがトランザクションの送信者になることができます。 - -キーペアを始め、有効なアドレスの作成は、厳密な数学的演算です。キーペアの生成と、そのアドレスの計算は完全にオフラインで行うことができます。XRP Ledgerやその他の関係者と通信する必要はありません。公開鍵からアドレスへの変換には一方向のハッシュ関数が含まれるため、公開鍵がアドレスと一致することは確認できますが、アドレスのみから公開鍵を導出することはできません。(このことが、署名付きのトランザクションに送信者の公開鍵 _と_ アドレスが含まれる理由の1つとなっています。) - -XRP Ledgerアドレスの計算方法の技術的な詳細については、[アドレスのエンコード](#アドレスのエンコード)を参照してください。 - - -### 特別なアドレス - -XRP Ledgerでは、過去の使用という点で、一部のアドレスに特別な意味があります。多くの場合、これらのアドレスは「ブラックホール」アドレスです。つまり、このアドレスは既知のシークレットキーから派生したものではありません。アドレスのみからシークレットキーを推測することは事実上不可能なため、ブラックホールアドレスが保有しているXRPは永久に失われます。 - -| アドレス | 名前 | 意味 | ブラックホール? | -|-----------------------------|------|---------|-------------| -| rrrrrrrrrrrrrrrrrrrrrhoLvTp | ACCOUNT\_ZERO | 値`0`を[base58][]形式にエンコードしたXRP Ledgerのアドレス。ピアツーピア通信では、このアドレスは、XRPの発行者として`rippled`で使用されます。 | はい | -| rrrrrrrrrrrrrrrrrrrrBZbvji | ACCOUNT\_ONE | 値`1`を[base58][]形式にエンコードしたXRP Ledgerのアドレス。レジャーの[RippleState項目](ripplestate.html)では、このアドレスは、トラストライン残高の発行者のプレースホルダーとして使用されます。 | はい | -| rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh | ジェネシスアカウント | `rippled`で新しいジェネシスレジャーが一から開始される場合(例えば、スタンドアロンモード)、このアカウントはすべてのXRPを保持します。このアドレスは、シード値「masterpassphrase」から生成されており、この値は[ハードコーディング](https://github.com/ripple/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184)されています。 | いいえ | -| rrrrrrrrrrrrrrrrrNAMEtxvNvQ | Ripple名予約のブラックホール | 以前は、Rippleでは、このアカウントにXRPを送信してRipple名を予約するようユーザーに求めていました。| はい | -| rrrrrrrrrrrrrrrrrrrn5RM1rHd | NaNアドレス | 以前のバージョンの[ripple-lib](https://github.com/ripple/ripple-lib)では、XRP Ledgerの[base58][]文字列エンコード形式を使用して、値[NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)をエンコードするときにこのアドレスを生成しました。 | はい | - - -## アカウントの永続性 - -一度作成されたアカウントはXRP Ledgerのデータツリーに永続的に存在します。これは、古いトランザクションを2回処理できないように、トランザクションの現在のシーケンス番号を永続的に追跡する必要があるためです。 - -Bitcoinや他の多くの暗号資産とは異なり、XRP Ledgerの公開レジャーチェーンの新しい各バージョンにはレジャーの詳細なステータスが含まれており、このサイズは、新規アカウントが増えるごとに大きくなります。そのため、Rippleでは、本当に必要でない限り、新しいアカウントを作成することは推奨していません。多くのユーザーに代わって価値を送受信する金融機関などは、XRP Ledgerでは1つ(または少数)のアカウントのみを使用し、顧客との間の個別の決済を区別するために[**ソースタグ**と**宛先タグ**](become-an-xrp-ledger-gateway.html#source-and-destination-tags)を使用できます。 - - -## トランザクション履歴 - -XRP Ledgerでは、トランザクション(取引)履歴をトランザクションの「スレッド」によって追跡することができます。これはトランザクションの識別用のハッシュとレジャーインデックスにリンクされています。`AccountRoot`レジャーオブジェクトには、それを最後に修正したトランザクションの識別用のハッシュとレジャーが含まれます。そのトランザクションのメタデータには、`AccountRoot`ノードの前の状態が含まれているため、この方法で1つのアカウントの履歴を繰り返すことができます。このトランザクション履歴には、`AccountRoot`ノードを直接変更するトランザクションが含まれます。以下に例を示します。 - -- アカウントによって送信されるトランザクション。アカウントの`Sequence`番号が変更されるため。このようなトランザクションでは、[トランザクションコスト](transaction-cost.html)によりアカウントのXRP残高も変更されます。 -- アカウントのXRP残高を変更したトランザクション。例えば、着信する[Paymentトランザクション][]や他のタイプの取引(例:[PaymentChannelClaim][]や[EscrowFinish][])。 - -アカウントの _概念的な_ トランザクション履歴には、アカウントの所有オブジェクトとXRP以外の残高を変更したトランザクションも含まれます。これらのオブジェクトは別個のレジャーオブジェクトであり、それぞれに影響を及ぼした独自のトランザクションスレッドが含まれます。アカウントのレジャーの履歴全体がある場合は、それをたどって、その履歴によって作成または変更されたレジャーオブジェクトを見つけることができます。「完全」なトランザクション履歴には、トランザクションで所有されているオブジェクトの履歴が含まれます。例を以下に示します。 - -- `RippleState` オブジェクト(トラストライン)。アカウントに関連付けられています。 -- `DirectoryNode` オブジェクト(特にアカウントの所有オブジェクトを追跡する所有者ディレクトリ)。 -- `Offer` オブジェクト。分散型取引所でのアカウントの未処理の取引注文を表すオブジェクト。 -- `PayChannel` アカウントとの間の非同期のPayment Channelを表すオブジェクト。 -- `Escrow` 時間または暗号条件によってロックされ、アカウントとの間の保留中の支払いを表すオブジェクト。 -- `SignerList` [マルチ署名](multi-signing.html)によってアカウントのトランザクションを承認できるアドレスのリストを表すオブジェクト。 - -これらの各オブジェクトの詳細については、[レジャーフォーマットのリファレンス](ledger-data-formats.html)を参照してください。 - - -## アドレスのエンコード - -**ヒント:** これらの技術的な詳細は、XRP Ledgerとの互換性を保つために低レベルのライブラリソフトウェアを構築しているユーザーのみを対象としています。 - -[[ソース]
](https://github.com/ripple/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/AccountID.cpp#L109-L140 "Source") - -XRP Ledgerのアドレスは、次のRipple _ディクショナリー_ の[base58](https://en.wikipedia.org/wiki/Base58)を使用してエンコードされています。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。XRP Ledgerはbase58でいくつかのタイプのキーをエンコードするため、それらを区別するためにエンコードされたデータの前に1バイトの「タイププレフィクス」(「バージョンプレフィクス」とも呼ばれます)を付けます。タイププレフィクスによりアドレスは通常、base58形式の異なる文字で始まります。 - -次の図は、キーとアドレスの関係を示しています。 - -![パスフレーズ→シークレットキー→公開鍵+プレフィクスの種類→アカウントID +チェックサム→アドレス](img/key-address-rels.ja.png) - -XRP Ledgerアドレスの計算式は次のとおりです。コード例全体については、[`encode_address.js`](https://github.com/ripple/ripple-dev-portal/blob/master/content/_code-samples/address_encoding/encode_address.js)を参照してください。 - -1. 次の必須アルゴリズムをインポートします。SHA-256、RIPEMD160、base58。base58のディクショナリーを設定します。 - - 'use strict'; - const assert = require('assert'); - const crypto = require('crypto'); - const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; - const base58 = require('base-x')(R_B58_DICT); - - assert(crypto.getHashes().includes('sha256')); - assert(crypto.getHashes().includes('ripemd160')); - -2. 33バイトのECDSA secp256k1公開鍵、または32バイトのEd25119公開鍵で始めます。Ed25519キーの場合は、キーの前にバイト`0xED`を付けます。 - - const pubkey_hex = - 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; - const pubkey = Buffer.from(pubkey_hex, 'hex'); - assert(pubkey.length == 33); - -3. 公開鍵のSHA-256ハッシュの[RIPEMD160](https://en.wikipedia.org/wiki/RIPEMD)ハッシュを計算します。この値は「Account ID」です。 - - const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); - const pubkey_outer_hash = crypto.createHash('ripemd160'); - pubkey_outer_hash.update(pubkey_inner_hash.digest()); - const account_id = pubkey_outer_hash.digest(); - -4. アカウントIDのSHA-256ハッシュのSHA-256ハッシュを計算します。最初の4バイトを使用ます。この値が「チェックサム」です。 - - const address_type_prefix = Buffer.from([0x00]); - const payload = Buffer.concat([address_type_prefix, account_id]); - const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); - const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); - const checksum = chksum_hash2.slice(0,4); - -5. ペイロードとチェックサムを連結します。連結バッファーのbase58値を計算します。この結果が、該当のアドレスになります。 - - const dataToEncode = Buffer.concat([payload, checksum]); - const address = base58.encode(dataToEncode); - console.log(address); - // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# アカウント + +XRP Ledgerの「アカウント」は、XRPの所有者と[トランザクション](transaction-formats.html)の送信者を表します。アカウントの主な要素は次のとおりです。 + +- 識別用の**アドレス**。例えば、 `rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn` +- **XRPの残高**。このXRPの一部は、[準備金](reserves.html)用に確保されています。 +- **シーケンス番号**は1から始まり、このアカウントからトランザクションが送信されるたびに1つ増加します。トランザクションのシーケンス番号がその送信者の次のシーケンス番号と一致しない限り、トランザクションをレジャーに含めることはできません。 +- このアカウントと残高に影響を及ぼした**取引の履歴**。 +- [取引の承認](transaction-basics.html#取引の承認)方法。以下に例を示します。 + - アカウント固有のマスターキーのペア。([無効](accountset.html)にできますが、変更はできません。) + - [ローテーションで使用](setregularkey.html)できる「レギュラー」キーペア。 + - [マルチ署名](multi-signing.html)の署名者のリスト。(アカウントのコアデータとは別に保存されます。) + +アカウントのコアデータは、レジャーのデータツリーの[AccountRoot](accountroot.html)レジャーのオブジェクトタイプに保存されます。アカウントは、他の複数のタイプのデータの所有者(または部分的な所有者)になることもできます。 + +**ヒント:** XRP Ledgerの「アカウント」は、財務上の用途(例:「銀行口座」)やコンピューター上の用途(例:「UNIXアカウント」)で使用されます。XRP以外の通貨および資産はXRP Ledgerアカウント自体には保存されません。そのような資産はそれぞれ、両当事者を結ぶ「トラストライン」と呼ばれる会計関係に保存されます。 + +### アカウントの作成 + +「アカウント作成」専用のトランザクションはありません。Paymentトランザクション でまだアカウントを所有していない数学的に有効なアドレスに[アカウントの準備金](reserves.html)以上のXRPが送信されると、[Paymentトランザクション][]で自動的に新しいアカウントが作成されます。これはアカウントの _資金提供_ と呼ばれ、レジャーに[AccountRootオブジェクト](accountroot.html)が作成されます。それ以外のトランザクションでアカウントを作成することはできません。 + +**注意:** アカウントを資金提供することによって、そのアカウントに対して特別な権限を持つことには**なりません**。アカウントのアドレスに対応するシークレットキーを持っている人なら誰でも、アカウントとそれに含まれるすべてのXRPの完全制御権を持っています。一部のアドレスでは、誰もシークレットキーを持っていない場合があります。その場合、アカウントは[ブラックホール](#特別なアドレス)になり、XRPは永久に失われます。 + +XRP Ledgerでアカウントを取得する一般的な方法は次のとおりです。 + +1. ランダム性の強いソースからキーペアを生成し、そのキーペアのアドレスを計算します。(例えば、[wallet_proposeメソッド][]を使用して計算することができます。) + +2. XRP Ledgerにアカウントをすでに持っているユーザーに、生成したアドレスにXRPを送信してもらいます。 + + - 例えば、一般の取引所でXRPを購入し、その取引所から、指定したアドレスにXRPを引き出すことができます。 + + **注意:** 自身のXRP Ledgerアドレスで初めてXRPを受け取る場合は[アカウントの準備金](reserveves.html)(現在は20 XRP)を支払う必要があります。この金額のXRPは無期限に使用できなくなります。一方で、一般の取引所では通常、顧客のXRPはすべて、共有されたいくつかのXRP Ledgerアカウントに保有されているため、顧客はその取引所で個々のアカウントの準備金を支払う必要はありません。引き出す前に、XRP Ledgerに直接アカウントを保有することが、金額に見合う価値があるかどうかを検討してください。 + +## アドレス + +{% include '_snippets/data_types/address.md' %} + +有効なアドレスに資金供給することで、そのアドレスを[XRP Ledgerのアカウントにする](#アカウントの作成)ことができます。[レギュラーキー](setregularkey.html)または[署名者リスト](multi-signing.html)のメンバーを表すために資金供給されていないアドレスを使用することもできます。資金供給されたアカウントのみがトランザクションの送信者になることができます。 + +キーペアを始め、有効なアドレスの作成は、厳密な数学的演算です。キーペアの生成と、そのアドレスの計算は完全にオフラインで行うことができます。XRP Ledgerやその他の関係者と通信する必要はありません。公開鍵からアドレスへの変換には一方向のハッシュ関数が含まれるため、公開鍵がアドレスと一致することは確認できますが、アドレスのみから公開鍵を導出することはできません。(このことが、署名付きのトランザクションに送信者の公開鍵 _と_ アドレスが含まれる理由の1つとなっています。) + +XRP Ledgerアドレスの計算方法の技術的な詳細については、[アドレスのエンコード](#アドレスのエンコード)を参照してください。 + + +### 特別なアドレス + +XRP Ledgerでは、過去の使用という点で、一部のアドレスに特別な意味があります。多くの場合、これらのアドレスは「ブラックホール」アドレスです。つまり、このアドレスは既知のシークレットキーから派生したものではありません。アドレスのみからシークレットキーを推測することは事実上不可能なため、ブラックホールアドレスが保有しているXRPは永久に失われます。 + +| アドレス | 名前 | 意味 | ブラックホール? | +|-----------------------------|------|---------|-------------| +| rrrrrrrrrrrrrrrrrrrrrhoLvTp | ACCOUNT\_ZERO | 値`0`を[base58][]形式にエンコードしたXRP Ledgerのアドレス。ピアツーピア通信では、このアドレスは、XRPの発行者として`rippled`で使用されます。 | はい | +| rrrrrrrrrrrrrrrrrrrrBZbvji | ACCOUNT\_ONE | 値`1`を[base58][]形式にエンコードしたXRP Ledgerのアドレス。レジャーの[RippleState項目](ripplestate.html)では、このアドレスは、トラストライン残高の発行者のプレースホルダーとして使用されます。 | はい | +| rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh | ジェネシスアカウント | `rippled`で新しいジェネシスレジャーが一から開始される場合(例えば、スタンドアロンモード)、このアカウントはすべてのXRPを保持します。このアドレスは、シード値「masterpassphrase」から生成されており、この値は[ハードコーディング](https://github.com/ripple/rippled/blob/94ed5b3a53077d815ad0dd65d490c8d37a147361/src/ripple/app/ledger/Ledger.cpp#L184)されています。 | いいえ | +| rrrrrrrrrrrrrrrrrNAMEtxvNvQ | Ripple名予約のブラックホール | 以前は、Rippleでは、このアカウントにXRPを送信してRipple名を予約するようユーザーに求めていました。| はい | +| rrrrrrrrrrrrrrrrrrrn5RM1rHd | NaNアドレス | 以前のバージョンの[ripple-lib](https://github.com/ripple/ripple-lib)では、XRP Ledgerの[base58][]文字列エンコード形式を使用して、値[NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)をエンコードするときにこのアドレスを生成しました。 | はい | + + +## アカウントの永続性 + +一度作成されたアカウントはXRP Ledgerのデータツリーに永続的に存在します。これは、古いトランザクションを2回処理できないように、トランザクションの現在のシーケンス番号を永続的に追跡する必要があるためです。 + +Bitcoinや他の多くの暗号資産とは異なり、XRP Ledgerの公開レジャーチェーンの新しい各バージョンにはレジャーの詳細なステータスが含まれており、このサイズは、新規アカウントが増えるごとに大きくなります。そのため、Rippleでは、本当に必要でない限り、新しいアカウントを作成することは推奨していません。多くのユーザーに代わって価値を送受信する金融機関などは、XRP Ledgerでは1つ(または少数)のアカウントのみを使用し、顧客との間の個別の決済を区別するために[**ソースタグ**と**宛先タグ**](become-an-xrp-ledger-gateway.html#source-and-destination-tags)を使用できます。 + + +## トランザクション履歴 + +XRP Ledgerでは、トランザクション(取引)履歴をトランザクションの「スレッド」によって追跡することができます。これはトランザクションの識別用のハッシュとレジャーインデックスにリンクされています。`AccountRoot`レジャーオブジェクトには、それを最後に修正したトランザクションの識別用のハッシュとレジャーが含まれます。そのトランザクションのメタデータには、`AccountRoot`ノードの前の状態が含まれているため、この方法で1つのアカウントの履歴を繰り返すことができます。このトランザクション履歴には、`AccountRoot`ノードを直接変更するトランザクションが含まれます。以下に例を示します。 + +- アカウントによって送信されるトランザクション。アカウントの`Sequence`番号が変更されるため。このようなトランザクションでは、[トランザクションコスト](transaction-cost.html)によりアカウントのXRP残高も変更されます。 +- アカウントのXRP残高を変更したトランザクション。例えば、着信する[Paymentトランザクション][]や他のタイプの取引(例:[PaymentChannelClaim][]や[EscrowFinish][])。 + +アカウントの _概念的な_ トランザクション履歴には、アカウントの所有オブジェクトとXRP以外の残高を変更したトランザクションも含まれます。これらのオブジェクトは別個のレジャーオブジェクトであり、それぞれに影響を及ぼした独自のトランザクションスレッドが含まれます。アカウントのレジャーの履歴全体がある場合は、それをたどって、その履歴によって作成または変更されたレジャーオブジェクトを見つけることができます。「完全」なトランザクション履歴には、トランザクションで所有されているオブジェクトの履歴が含まれます。例を以下に示します。 + +- `RippleState` オブジェクト(トラストライン)。アカウントに関連付けられています。 +- `DirectoryNode` オブジェクト(特にアカウントの所有オブジェクトを追跡する所有者ディレクトリ)。 +- `Offer` オブジェクト。分散型取引所でのアカウントの未処理の取引注文を表すオブジェクト。 +- `PayChannel` アカウントとの間の非同期のPayment Channelを表すオブジェクト。 +- `Escrow` 時間または暗号条件によってロックされ、アカウントとの間の保留中の支払いを表すオブジェクト。 +- `SignerList` [マルチ署名](multi-signing.html)によってアカウントのトランザクションを承認できるアドレスのリストを表すオブジェクト。 + +これらの各オブジェクトの詳細については、[レジャーフォーマットのリファレンス](ledger-data-formats.html)を参照してください。 + + +## アドレスのエンコード + +**ヒント:** これらの技術的な詳細は、XRP Ledgerとの互換性を保つために低レベルのライブラリソフトウェアを構築しているユーザーのみを対象としています。 + +[[ソース]
](https://github.com/ripple/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/AccountID.cpp#L109-L140 "Source") + +XRP Ledgerのアドレスは、次のRipple _ディクショナリー_ の[base58](https://en.wikipedia.org/wiki/Base58)を使用してエンコードされています。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。XRP Ledgerはbase58でいくつかのタイプのキーをエンコードするため、それらを区別するためにエンコードされたデータの前に1バイトの「タイププレフィクス」(「バージョンプレフィクス」とも呼ばれます)を付けます。タイププレフィクスによりアドレスは通常、base58形式の異なる文字で始まります。 + +次の図は、キーとアドレスの関係を示しています。 + +![パスフレーズ→シークレットキー→公開鍵+プレフィクスの種類→アカウントID +チェックサム→アドレス](img/key-address-rels.ja.png) + +XRP Ledgerアドレスの計算式は次のとおりです。コード例全体については、[`encode_address.js`](https://github.com/ripple/ripple-dev-portal/blob/master/content/_code-samples/address_encoding/encode_address.js)を参照してください。 + +1. 次の必須アルゴリズムをインポートします。SHA-256、RIPEMD160、base58。base58のディクショナリーを設定します。 + + 'use strict'; + const assert = require('assert'); + const crypto = require('crypto'); + const R_B58_DICT = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz'; + const base58 = require('base-x')(R_B58_DICT); + + assert(crypto.getHashes().includes('sha256')); + assert(crypto.getHashes().includes('ripemd160')); + +2. 33バイトのECDSA secp256k1公開鍵、または32バイトのEd25119公開鍵で始めます。Ed25519キーの場合は、キーの前にバイト`0xED`を付けます。 + + const pubkey_hex = + 'ED9434799226374926EDA3B54B1B461B4ABF7237962EAE18528FEA67595397FA32'; + const pubkey = Buffer.from(pubkey_hex, 'hex'); + assert(pubkey.length == 33); + +3. 公開鍵のSHA-256ハッシュの[RIPEMD160](https://en.wikipedia.org/wiki/RIPEMD)ハッシュを計算します。この値は「Account ID」です。 + + const pubkey_inner_hash = crypto.createHash('sha256').update(pubkey); + const pubkey_outer_hash = crypto.createHash('ripemd160'); + pubkey_outer_hash.update(pubkey_inner_hash.digest()); + const account_id = pubkey_outer_hash.digest(); + +4. アカウントIDのSHA-256ハッシュのSHA-256ハッシュを計算します。最初の4バイトを使用ます。この値が「チェックサム」です。 + + const address_type_prefix = Buffer.from([0x00]); + const payload = Buffer.concat([address_type_prefix, account_id]); + const chksum_hash1 = crypto.createHash('sha256').update(payload).digest(); + const chksum_hash2 = crypto.createHash('sha256').update(chksum_hash1).digest(); + const checksum = chksum_hash2.slice(0,4); + +5. ペイロードとチェックサムを連結します。連結バッファーのbase58値を計算します。この結果が、該当のアドレスになります。 + + const dataToEncode = Buffer.concat([payload, checksum]); + const address = base58.encode(dataToEncode); + console.log(address); + // rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md b/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md index 17687bfd5b..289b1d7fdc 100644 --- a/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md +++ b/content/concepts/payment-system-basics/accounts/cryptographic-keys.ja.md @@ -1,121 +1,121 @@ -# 暗号鍵 - -XRP Ledgerでは、トランザクションによる一連の具体的なアクションの実行が承認されていることを、デジタル署名によって証明します。署名されたトランザクションのみがネットワークに配信され、検証済みレジャーに取り込まれます。 - -すべてのデジタル署名は、トランザクションの送信側アカウントに関連付けられている暗号鍵ペアに基づいています。キーペアはXRP Ledgerでサポートされている[暗号化署名アルゴリズム](#署名アルゴリズム)を使用して生成できます。キーペアの生成に使用されたアルゴリズムの種類にかかわらず、キーペアは[マスターキーペア](#マスターキーペア)、[レギュラーキーペア](#レギュラーキーペア)、または[署名者リスト](multi-signing.html)のメンバーとして使用できます。 - -**警告:** 秘密鍵のセキュリティを適切に維持することが重要です。デジタル署名は、あなたがトランザクション送信する権限を有していることをXRP Ledgerに対して検証できる唯一の手段であり、レジャーに提出されたトランザクションの取り消しや無効化を行う権限を有する管理者は存在しません。あなたのXRP Ledgerアカウントの秘密鍵があなた以外の何者かに知られた場合、その人物はあなたと同様にデジタル署名を作成し、トランザクションを承認することができます。 - -## キーの生成 - -[`wallet_propose`](wallet_propose.html)メソッドを使用してキーペアを生成します。以下は、`wallet_propose`の応答例です。 - -``` -{ - "result": { - "account_id": "rDGnaDqJczDAjrKHKdhGRJh2G7zJfZhj5q", - "key_type": "secp256k1", - "master_key": "COON WARN AWE LUCK TILE WIRE ELI SNUG TO COVE SHAM NAT", - "master_seed": "sstV9YX8k7yTRzxkRFAHmX7EVqMfX", - "master_seed_hex": "559EDD35041D3C11F9BBCED912F4DE6A", - "public_key": "aBQXEw1vZD3guCX3rHL8qy8ooDomdFuxZcWrbRZKZjdDkUoUjGVS", - "public_key_hex": "0351BDFB30E7924993C625687AE6127034C4A5EBA78A01E9C58B0C46E04E3A4948" - }, - "status": "success", - "type": "response" -} -``` - -この応答には、キーペア(さまざまなフォーマットの秘密鍵と公開鍵)と`account_id`が含まれています。 - -**秘密鍵** - -`master_key`、`master_seed`、および`master_seed_hex`は、トランザクションの署名に使用できる異なるフォーマットの秘密鍵です。キーの先頭に`master_`が付いていますが、これらのキーは必ずしもアカウントのマスターキーというわけではありません。ここでは、`master_`というプレフィックスは、そのキーの秘密鍵としての役割を示します。`master_seed`はマスターシードで、そこからこのアカウントに関するその他のあらゆる情報が引き出されます。 - -**公開鍵** - -`public_key`と`public_key_hex`は異なるフォーマットの公開鍵で、`public_key_hex`はトランザクションに署名された秘密鍵に対応する公開鍵です。`public_key`と`public_key_hex`はいずれも`master_seed`から生成されます。 - -**account_id** - -`account_id`は[公開鍵から生成され](accounts.html#アドレスのエンコード)、アカウントがXRP Ledgerに作成される *可能性* を示します。`account_id`が存在していても、`account_id`が最初の XRPでの支払いを受領するまでは、実際のアカウントはXRP Ledgerに存在しません。さらに`account_id`は、資金を供給するトランザクションを受領して、アカウントが作成されるまでは、トランザクションを送信することができません。 - -ただし、(資金供給されたアカウントのない)`account_id`は、既存の別のアカウントのトランザクションを承認する際に[レギュラーキー](#レギュラーキーペア)または[署名者リストのメンバー](multi-signing.html)として使用できます。 - -資金供給されたアカウントを作成してレジャーに保管するには、`account_id`が、[必要準備金](reserves.html)を満たすのに十分なXRPを供給する[`Payment`トランザクションを受領する](payment.html#アカウントの作成)必要があります。 - -`wallet_propose`応答についての詳細は、[`wallet_propose`](wallet_propose.html)を参照してください。 - -生成されたキーペアは、[マスターキーペア](#マスターキーペア)、[レギュラーキーペア](#レギュラーキーペア)、または[署名者リストメンバー](multi-signing.html)のいずれかとして使用できます。 - -**キータイプ** - -`key_type`フィールドは、このキーペアの生成に使用された[暗号化署名アルゴリズム](#署名アルゴリズム)を示します。[wallet_proposeメソッド][]を使用したキーペアの生成を要求するときに、`key_type`を指定できます。 - - -## マスターキーペア - -マスターキーペアは秘密鍵と公開鍵からなります。マスターキーペアの秘密鍵は、レギュラーキーペアが署名できるすべてのトランザクションに署名できる他、以下の操作の実行に使用できる唯一の鍵でもあります。 - -* [マスター公開鍵を無効にする](accountset.html)。 - -* [凍結](freezes.html#no-freeze)機能を永久に放棄する。 - -* トランザクションコストが0の[Key Resetトランザクション](transaction-cost.html#key-resetトランザクション)を送信する。 - -アカウントのマスターキーペアは、マスターキーペアによるトランザクションへの署名が承認されているアカウントの`account_id`と同じ[`wallet_propose`](wallet_propose.html)応答にて生成されます。マスターキーペアは同じ応答内で生成されるため、`public_key_hex`から生成される`account_id`アカウントに[固有に関連付け](accounts.html#アドレスのエンコード)られています。 - -これは、同様に`wallet_propose` メソッドを使用して生成されても、レギュラーキーペアとしてアカウントに明示的に割り当てられる必要があるレギュラーキーペアとは対照的です。レギュラーキーペアは明示的に割り当てられるので、トランザクションの署名が承認されているアカウントの`account_id`には固有に関連付けられません。詳細は、[レギュラーキーペア](#レギュラーキーペア) を参照してください。 - -**注意:** マスターキーペアは変更できませんが、無効にできます。つまり、マスター秘密鍵が漏えいした場合、マスター秘密鍵を変更するのではなく、[無効にする](accountset.html)必要があります。 - -漏えいが発生した場合、マスターキーペアの変更は不可で、無効化するしかありませんので、マスターキーペアをオフラインで保管し、代わりにアカウントのトランザクションの署名用にレギュラーキーペアを設定することを強くお勧めします。 - -マスターキーペアをオフラインで保管する際には、不正使用者がアクセスできる場所にマスター秘密鍵を保管しないようにします。たとえば、インターネットに一切接続されない物理的に隔離されたマシンに保管したり、紙に記入して安全な場所に保管します。一般的には、インターネットと相互にやり取りをするコンピュータプログラムがアクセスできる範囲内には保管しません。マスターキーペアは、緊急時(漏えいの恐れがある場合や実際に漏えいが発生した場合にレギュラーキーペアを変更するなど)に限り、最も信頼できるデバイスでのみ使用することが理想的です。 - - -## レギュラーキーペア - -XRP Ledgerでは、アカウントのマスターキーペアをオフラインで保管し、その後のトランザクションには _レギュラーキーペア_ と呼ばれるセカンダリキーペアで署名することができます。レギュラーキーペアの秘密鍵が漏えいした場合は、秘密鍵を削除または交換できます。その際に、アカウントの秘密鍵以外の設定を変更したり、他のアカウントとの関係を再設定する必要はありません。レギュラーキーペアを積極的にローテーションすることも可能です。(アカウントのアドレスに固有に関連付けられているアカウントのマスターキーペアでは、このような操作は実行できません。) - -レギュラーキーペアとして使用するキーペアは、[`wallet_propose`](wallet_propose.html)メソッドを使用して生成します。ただし、サポートするアカウントの`account_id`と同時に生成され、それに固有に関連付けられている[マスターキーペア](#マスターキーペア)とは異なり、レギュラーキーペアと、このキーペアがトランザクションの署名に使用されるアカウントとの関係を明示的に作成する必要があります。レギュラーキーペアをアカウントに割り当てるには、[`SetRegularKey`](setregularkey.html)メソッドを使用します。 - -レギュラーキーペアの割り当てに関するチュートリアルについては、[レギュラーキーペアの割り当て](assign-a-regular-key-pair.html)を参照してください。 - -レギュラーキーペアを割り当てたアカウントには、次の2つのキーペアが関連付けられることになります。 - -* アカウントの`account_id`に固有に関連付けられ、オフラインで保管されるマスターキーペア。 -* アカウントに明示的に割り当てられ、アカウントのトランザクションの署名に使用されるレギュラーキーペア。 - -レギュラーキーペアをアカウントに割り当てて、[マスターキーペア](#マスターキーペア)で署名されるトランザクションを除く、すべてのトランザクションの署名にそのレギュラーキーペアを使用できます。 - -レギュラーキーペアはいつでも削除または変更できます。つまり、レギュラーキーペアの秘密鍵が漏えいした(ただしマスターキーペアの秘密鍵の漏えいは発生していない)場合、レギュラーキーペアを削除または変更するだけでアカウントの制御を取り戻すことができます。 - -レギュラーキーペアの変更または削除のチュートリアルについては、[レギュラーキーペアの割り当て](assign-a-regular-key-pair.html)を参照してください。 - - -## 署名アルゴリズム - -暗号鍵ペアは常に特定の署名アルゴリズムに結び付けられています。署名アルゴリズムは、秘密鍵と公開鍵の間の数学的関係を定義します。暗号化署名アルゴリズムには、現在の暗号技術では、秘密鍵を使用して対応する公開鍵を「簡単に」計算できるが、公開鍵から対応する秘密鍵を計算することは実質的に不可能であるという特性があります。 - -XRP Ledgerでは次の暗号化署名アルゴリズムがサポートされています。 - -| キータイプ | アルゴリズム | 説明 | -|-------------|-----------|---| -| `secp256k1` | 楕円曲線[secp256k1](https://en.bitcoin.it/wiki/Secp256k1)を使用する[ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) | これはBitcoinで使用されているスキームです。XRP Ledgerではデフォルトでこのキータイプが使用されます。 | -| `ed25519` | 楕円曲線[Ed25519](https://ed25519.cr.yp.to/)を使用する[EdDSA](https://tools.ietf.org/html/rfc8032) | パフォーマンスに優れ、その他の便利な特性を備えた新しいアルゴリズムです。Ed25519公開鍵はsecp256k1鍵よりも1バイト短いため、`rippled`ではEd25519公開鍵の先頭に`0xED`バイトが追加されます。これにより、両方の公開鍵タイプは33バイトになります。 | - -[wallet_proposeメソッド][]を使用してキーペアを生成するときには、キーの生成に使用する暗号化署名アルゴリズムを選択するため`key_type`を指定できます。デフォルト以外のキータイプを生成した場合は、トランザクションに署名する際に`key_type`も指定する必要があります。 - -XRP Ledgerでは、サポートされているさまざまなタイプのキーペアは、マスターキーペア、レギュラーキーペア、署名者リストメンバーとして互換的に使用できます。[アドレス生成](accounts.html#アドレスのエンコード)プロセスは、secp256k1キーペアとEd25519キーペアでは同一です。 - -**注記:** 現時点では、Ed25519キーで[Payment Channelクレーム](use-payment-channels.html)に署名することはできません。これはバグです。 - -### 将来のアルゴリズム - -今後は、暗号技術の発展に伴い、XRP Ledgerに新しい暗号化署名アルゴリズムを追加する予定です。たとえば、[Shorのアルゴリズム](https://en.wikipedia.org/wiki/Shor's_algorithm)(または類似のアルゴリズム)を使用する量子コンピューターの実用化が間近となり、楕円曲線暗号が解読される可能性が生じた場合には、Rippleは容易に解読できない暗号化署名アルゴリズムを追加できます。2018年前半の時点では、「耐量子」署名アルゴリズムはまだ実用化できる段階ではなく、量子コンピューターはさらに実現段階から遠いため、現時点では特定のアルゴリズムを追加する予定はありません。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 暗号鍵 + +XRP Ledgerでは、トランザクションによる一連の具体的なアクションの実行が承認されていることを、デジタル署名によって証明します。署名されたトランザクションのみがネットワークに配信され、検証済みレジャーに取り込まれます。 + +すべてのデジタル署名は、トランザクションの送信側アカウントに関連付けられている暗号鍵ペアに基づいています。キーペアはXRP Ledgerでサポートされている[暗号化署名アルゴリズム](#署名アルゴリズム)を使用して生成できます。キーペアの生成に使用されたアルゴリズムの種類にかかわらず、キーペアは[マスターキーペア](#マスターキーペア)、[レギュラーキーペア](#レギュラーキーペア)、または[署名者リスト](multi-signing.html)のメンバーとして使用できます。 + +**警告:** 秘密鍵のセキュリティを適切に維持することが重要です。デジタル署名は、あなたがトランザクション送信する権限を有していることをXRP Ledgerに対して検証できる唯一の手段であり、レジャーに提出されたトランザクションの取り消しや無効化を行う権限を有する管理者は存在しません。あなたのXRP Ledgerアカウントの秘密鍵があなた以外の何者かに知られた場合、その人物はあなたと同様にデジタル署名を作成し、トランザクションを承認することができます。 + +## キーの生成 + +[`wallet_propose`](wallet_propose.html)メソッドを使用してキーペアを生成します。以下は、`wallet_propose`の応答例です。 + +``` +{ + "result": { + "account_id": "rDGnaDqJczDAjrKHKdhGRJh2G7zJfZhj5q", + "key_type": "secp256k1", + "master_key": "COON WARN AWE LUCK TILE WIRE ELI SNUG TO COVE SHAM NAT", + "master_seed": "sstV9YX8k7yTRzxkRFAHmX7EVqMfX", + "master_seed_hex": "559EDD35041D3C11F9BBCED912F4DE6A", + "public_key": "aBQXEw1vZD3guCX3rHL8qy8ooDomdFuxZcWrbRZKZjdDkUoUjGVS", + "public_key_hex": "0351BDFB30E7924993C625687AE6127034C4A5EBA78A01E9C58B0C46E04E3A4948" + }, + "status": "success", + "type": "response" +} +``` + +この応答には、キーペア(さまざまなフォーマットの秘密鍵と公開鍵)と`account_id`が含まれています。 + +**秘密鍵** + +`master_key`、`master_seed`、および`master_seed_hex`は、トランザクションの署名に使用できる異なるフォーマットの秘密鍵です。キーの先頭に`master_`が付いていますが、これらのキーは必ずしもアカウントのマスターキーというわけではありません。ここでは、`master_`というプレフィックスは、そのキーの秘密鍵としての役割を示します。`master_seed`はマスターシードで、そこからこのアカウントに関するその他のあらゆる情報が引き出されます。 + +**公開鍵** + +`public_key`と`public_key_hex`は異なるフォーマットの公開鍵で、`public_key_hex`はトランザクションに署名された秘密鍵に対応する公開鍵です。`public_key`と`public_key_hex`はいずれも`master_seed`から生成されます。 + +**account_id** + +`account_id`は[公開鍵から生成され](accounts.html#アドレスのエンコード)、アカウントがXRP Ledgerに作成される *可能性* を示します。`account_id`が存在していても、`account_id`が最初の XRPでの支払いを受領するまでは、実際のアカウントはXRP Ledgerに存在しません。さらに`account_id`は、資金を供給するトランザクションを受領して、アカウントが作成されるまでは、トランザクションを送信することができません。 + +ただし、(資金供給されたアカウントのない)`account_id`は、既存の別のアカウントのトランザクションを承認する際に[レギュラーキー](#レギュラーキーペア)または[署名者リストのメンバー](multi-signing.html)として使用できます。 + +資金供給されたアカウントを作成してレジャーに保管するには、`account_id`が、[必要準備金](reserves.html)を満たすのに十分なXRPを供給する[`Payment`トランザクションを受領する](payment.html#アカウントの作成)必要があります。 + +`wallet_propose`応答についての詳細は、[`wallet_propose`](wallet_propose.html)を参照してください。 + +生成されたキーペアは、[マスターキーペア](#マスターキーペア)、[レギュラーキーペア](#レギュラーキーペア)、または[署名者リストメンバー](multi-signing.html)のいずれかとして使用できます。 + +**キータイプ** + +`key_type`フィールドは、このキーペアの生成に使用された[暗号化署名アルゴリズム](#署名アルゴリズム)を示します。[wallet_proposeメソッド][]を使用したキーペアの生成を要求するときに、`key_type`を指定できます。 + + +## マスターキーペア + +マスターキーペアは秘密鍵と公開鍵からなります。マスターキーペアの秘密鍵は、レギュラーキーペアが署名できるすべてのトランザクションに署名できる他、以下の操作の実行に使用できる唯一の鍵でもあります。 + +* [マスター公開鍵を無効にする](accountset.html)。 + +* [凍結](freezes.html#no-freeze)機能を永久に放棄する。 + +* トランザクションコストが0の[Key Resetトランザクション](transaction-cost.html#key-resetトランザクション)を送信する。 + +アカウントのマスターキーペアは、マスターキーペアによるトランザクションへの署名が承認されているアカウントの`account_id`と同じ[`wallet_propose`](wallet_propose.html)応答にて生成されます。マスターキーペアは同じ応答内で生成されるため、`public_key_hex`から生成される`account_id`アカウントに[固有に関連付け](accounts.html#アドレスのエンコード)られています。 + +これは、同様に`wallet_propose` メソッドを使用して生成されても、レギュラーキーペアとしてアカウントに明示的に割り当てられる必要があるレギュラーキーペアとは対照的です。レギュラーキーペアは明示的に割り当てられるので、トランザクションの署名が承認されているアカウントの`account_id`には固有に関連付けられません。詳細は、[レギュラーキーペア](#レギュラーキーペア) を参照してください。 + +**注意:** マスターキーペアは変更できませんが、無効にできます。つまり、マスター秘密鍵が漏えいした場合、マスター秘密鍵を変更するのではなく、[無効にする](accountset.html)必要があります。 + +漏えいが発生した場合、マスターキーペアの変更は不可で、無効化するしかありませんので、マスターキーペアをオフラインで保管し、代わりにアカウントのトランザクションの署名用にレギュラーキーペアを設定することを強くお勧めします。 + +マスターキーペアをオフラインで保管する際には、不正使用者がアクセスできる場所にマスター秘密鍵を保管しないようにします。たとえば、インターネットに一切接続されない物理的に隔離されたマシンに保管したり、紙に記入して安全な場所に保管します。一般的には、インターネットと相互にやり取りをするコンピュータプログラムがアクセスできる範囲内には保管しません。マスターキーペアは、緊急時(漏えいの恐れがある場合や実際に漏えいが発生した場合にレギュラーキーペアを変更するなど)に限り、最も信頼できるデバイスでのみ使用することが理想的です。 + + +## レギュラーキーペア + +XRP Ledgerでは、アカウントのマスターキーペアをオフラインで保管し、その後のトランザクションには _レギュラーキーペア_ と呼ばれるセカンダリキーペアで署名することができます。レギュラーキーペアの秘密鍵が漏えいした場合は、秘密鍵を削除または交換できます。その際に、アカウントの秘密鍵以外の設定を変更したり、他のアカウントとの関係を再設定する必要はありません。レギュラーキーペアを積極的にローテーションすることも可能です。(アカウントのアドレスに固有に関連付けられているアカウントのマスターキーペアでは、このような操作は実行できません。) + +レギュラーキーペアとして使用するキーペアは、[`wallet_propose`](wallet_propose.html)メソッドを使用して生成します。ただし、サポートするアカウントの`account_id`と同時に生成され、それに固有に関連付けられている[マスターキーペア](#マスターキーペア)とは異なり、レギュラーキーペアと、このキーペアがトランザクションの署名に使用されるアカウントとの関係を明示的に作成する必要があります。レギュラーキーペアをアカウントに割り当てるには、[`SetRegularKey`](setregularkey.html)メソッドを使用します。 + +レギュラーキーペアの割り当てに関するチュートリアルについては、[レギュラーキーペアの割り当て](assign-a-regular-key-pair.html)を参照してください。 + +レギュラーキーペアを割り当てたアカウントには、次の2つのキーペアが関連付けられることになります。 + +* アカウントの`account_id`に固有に関連付けられ、オフラインで保管されるマスターキーペア。 +* アカウントに明示的に割り当てられ、アカウントのトランザクションの署名に使用されるレギュラーキーペア。 + +レギュラーキーペアをアカウントに割り当てて、[マスターキーペア](#マスターキーペア)で署名されるトランザクションを除く、すべてのトランザクションの署名にそのレギュラーキーペアを使用できます。 + +レギュラーキーペアはいつでも削除または変更できます。つまり、レギュラーキーペアの秘密鍵が漏えいした(ただしマスターキーペアの秘密鍵の漏えいは発生していない)場合、レギュラーキーペアを削除または変更するだけでアカウントの制御を取り戻すことができます。 + +レギュラーキーペアの変更または削除のチュートリアルについては、[レギュラーキーペアの割り当て](assign-a-regular-key-pair.html)を参照してください。 + + +## 署名アルゴリズム + +暗号鍵ペアは常に特定の署名アルゴリズムに結び付けられています。署名アルゴリズムは、秘密鍵と公開鍵の間の数学的関係を定義します。暗号化署名アルゴリズムには、現在の暗号技術では、秘密鍵を使用して対応する公開鍵を「簡単に」計算できるが、公開鍵から対応する秘密鍵を計算することは実質的に不可能であるという特性があります。 + +XRP Ledgerでは次の暗号化署名アルゴリズムがサポートされています。 + +| キータイプ | アルゴリズム | 説明 | +|-------------|-----------|---| +| `secp256k1` | 楕円曲線[secp256k1](https://en.bitcoin.it/wiki/Secp256k1)を使用する[ECDSA](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) | これはBitcoinで使用されているスキームです。XRP Ledgerではデフォルトでこのキータイプが使用されます。 | +| `ed25519` | 楕円曲線[Ed25519](https://ed25519.cr.yp.to/)を使用する[EdDSA](https://tools.ietf.org/html/rfc8032) | パフォーマンスに優れ、その他の便利な特性を備えた新しいアルゴリズムです。Ed25519公開鍵はsecp256k1鍵よりも1バイト短いため、`rippled`ではEd25519公開鍵の先頭に`0xED`バイトが追加されます。これにより、両方の公開鍵タイプは33バイトになります。 | + +[wallet_proposeメソッド][]を使用してキーペアを生成するときには、キーの生成に使用する暗号化署名アルゴリズムを選択するため`key_type`を指定できます。デフォルト以外のキータイプを生成した場合は、トランザクションに署名する際に`key_type`も指定する必要があります。 + +XRP Ledgerでは、サポートされているさまざまなタイプのキーペアは、マスターキーペア、レギュラーキーペア、署名者リストメンバーとして互換的に使用できます。[アドレス生成](accounts.html#アドレスのエンコード)プロセスは、secp256k1キーペアとEd25519キーペアでは同一です。 + +**注記:** 現時点では、Ed25519キーで[Payment Channelクレーム](use-payment-channels.html)に署名することはできません。これはバグです。 + +### 将来のアルゴリズム + +今後は、暗号技術の発展に伴い、XRP Ledgerに新しい暗号化署名アルゴリズムを追加する予定です。たとえば、[Shorのアルゴリズム](https://en.wikipedia.org/wiki/Shor's_algorithm)(または類似のアルゴリズム)を使用する量子コンピューターの実用化が間近となり、楕円曲線暗号が解読される可能性が生じた場合には、Rippleは容易に解読できない暗号化署名アルゴリズムを追加できます。2018年前半の時点では、「耐量子」署名アルゴリズムはまだ実用化できる段階ではなく、量子コンピューターはさらに実現段階から遠いため、現時点では特定のアルゴリズムを追加する予定はありません。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-system-basics/accounts/depositauth.ja.md b/content/concepts/payment-system-basics/accounts/depositauth.ja.md index 2d9e0bfbc4..c31f742812 100644 --- a/content/concepts/payment-system-basics/accounts/depositauth.ja.md +++ b/content/concepts/payment-system-basics/accounts/depositauth.ja.md @@ -1,108 +1,108 @@ -# Deposit Authorization - -_([DepositAuthのAmendment][]が必要です。)_ - -Deposit Authorization は、XRP Ledgerの[アカウント](accounts.html)のオプション機能です。Deposit Authorizationが有効な場合、トランザクションはそのトランザクションの送信者がアカウント自体でない限り、アカウントへはどのような資産も送信できません。これには、XRPと発行済み通貨の送金が含まれます。 - -デフォルトでは、新しいアカウントではDepositAuthが無効になっています。 - -## 背景 - -金融サービスの規制やライセンスによっては、企業や組織に対して、受領するすべてのトランザクションの送信者を把握するよう義務付けています。これは、自由に生成できる偽名で参加者を識別し、デフォルトですべてのアドレスからあらゆる宛先への支払いを可能とするXRP Ledgerのような分散型システムとっては課題となります。 - -Deposit Authorizationフラグにより、XRP Ledgerを使用するユーザーが分散型レジャーの基本的な特性を変えずにこのような規制に準拠するためのオプションを採用しました。Deposit Authorizationが有効な場合、アカウントはトランザクションを送信することで明示的に承認した資金のみを受領できます。Deposit Authorizationを使用するアカウントの所有者は、アカウントに資金を入金するトランザクションを送信する _前に_ 、資金の送金元の確認に必要なデューディリジェンス(確認調査)を実施できます。 - -Deposit Authorizationを有効にすると、[Checks](known-amendments.html#checks)、[Escrow](escrow.html)、および[Payment Channel](known-amendments.html#paychan)から資金を受領できます。このような「二段階」トランザクションモデルでは、最初に送金元は資金の送金を承認するトランザクションを送信し、次に送金先は資金受領を承認するトランザクションを送信します。 - -Deposit Authorizationが有効になっている場合に[Paymentトランザクション][]から資金を受領するには、このような支払の送金元を[事前承認](#事前承認)する必要があります。_([DepositPreauthのAmendment][]が必要です。)_ - -## 推奨される使い方 - -Deposit Authorizationを最大限に活用するため、以下の実施を推奨します。 - -- XRP残高が常に最低[必要準備金](reserves.html)を上回るようにする。 -- DefaultRippleフラグをデフォルトの状態(無効)にしておく。トラストラインに対して[Rippling](rippling.html)を有効にしない。TrustSetトランザクションを送信するときには常に[`tfSetNoRipple`フラグ](trustset.html)を使用する。 -- [オファー](offercreate.html)を行わない。このようなトランザクションの実行にあたり、消費される一致オファーを事前に把握することは不可能です。 - -## 詳細なセマンティクス - -Deposit Authorizationが有効化されているアカウントの特徴は次のとおりです。 - -- [Paymentトランザクション][]の送信先には**できません**。ただし**以下の例外**は除きます。 - - 送金先により、支払の送金元が[事前承認](#事前承認)されている場合。_([DepositPreauthのAmendment][]が必要です)_ - - アカウントのXRP残高がアカウントの最低[必要準備金](reserves.html)以下で、XRP PaymentのAmountがアカウントの最低準備金(現時点では20 XRP)以下である場合は、このアカウントを送金先に指定できます。これにより、アカウントがトランザクションを送信することも、XRPを受領することもできずに操作不可能な状態になるのを防ぎます。この場合、アカウントの所有者の準備金は関係ありません。 -- **以下に該当する場合にのみ**[PaymentChannelClaimトランザクション][]からXRPを受領できます。 - - PaymentChannelClaimトランザクションの送金元がPayment Channelの送金先である場合。 - - PaymentChannelClaimトランザクションの送金先がPaymentChannelClaimの送金元を[事前承認している](#事前承認)場合。_([DepositPreauthのAmendment][]が必要です)_ -- **以下に該当する場合にのみ**[EscrowFinishトランザクション][]からXRPを受領できます。 - - EscrowFinishトランザクションの送金元がEscrowの送金先である場合。 - - EscrowFinishトランザクションの送金先がEscrowFinishの送金元を[事前承認している](#事前承認)場合。_([DepositPreauthのAmendment][]が必要です)_ -- [CheckCash][]トランザクションを送信してXRPまたは発行済み通貨を受領**できます**。 _([ChecksのAmendment][]が必要です:有効ではありません:)_ -- [OfferCreateトランザクション][]を送信してXRPまたは発行済み通貨を受領**できます**。 - - 即時には完全に実行されないOfferCreateトランザクションがアカウントから送信される場合、このアカウントは、後でオファーが他のアカウントの[Payment][]トランザクションと[OfferCreate][]トランザクションによって消費される時点で、注文済みXRPと発行済み通貨のリマインダーを受信する**ことがあります**。 -- アカウントが[NoRippleフラグ](rippling.html)を有効にせずにトラストラインを作成している場合、またはDefaultRippleフラグを有効にして通貨を発行した場合は、アカウントはRipplingの結果として、[Paymentトランザクション][]でそれらのトラストラインの発行済み通貨を受領**できます**。このようなトランザクションの送金先にすることはできません。 -- 一般的に、以下のすべての条件に該当する場合は、XRP LedgerのアカウントはXRP LedgerでXRP以外の通貨を受領**できません**。(このルールは、DepositAuthフラグに特有のものではありません。) - - アカウントにより、ゼロ以外の限度を指定したトラストラインが作成されていない。 - - アカウントが、その他のアカウントにより作成されたトラストラインで通貨を発行していない。 - - アカウントがまだオファーを出していない。 - -以下の表に、トランザクションタイプ別にDepositAuthが有効または無効な状態での入金の可否をまとめました。 - -{% include '_snippets/depositauth-semantics-table.html' %} - - - -## Deposit Authorizationの有効化または無効化 - -アカウントのDeposit Authorizationを有効にするには、`SetFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。アカウントのDeposit Authorizationを無効にするには、`ClearFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。AccountSetフラグについての詳細は、[AccountSetフラグ](accountset.html)を参照してください。 - -## AccountのDepositAuthの有効化の確認 - -アカウントのDeposit Authorizationの有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](accountroot.html)と比較します。 - -`Flags`値と`lsfDepositAuth`フラグ値(0x01000000)のビット単位のANDの結果がゼロ以外の場合、アカウントではDepositAuthが有効になっています。結果がゼロの場合、アカウントではDepositAuthが無効になっています。 - -## 事前承認 - -_([DepositPreauthのAmendment][]が必要です。)_ - -DepositAuthが有効なアカウントは、特定の送金元を _事前承認_ することにより、DepositAuthが有効になっていても、これらの送金元からの支払を受領することができます。これにより、特定の送金元からの資金の直接送金が可能となり、受取人はトランザクションごとに個別にアクションを実行する必要がなくなります。事前承認はDepositAuthの使用にあたり必須の要件ではありませんが、事前承認により特定の操作を実行しやすくなります。 - -事前承認は通貨に依存しません。特定の通貨のみについてアカウントを事前承認することはできません。 - -特定の送金元を事前承認するには、`Authorize`フィールドに事前承認する別のアカウントのアドレスを指定した[DepositPreauthトランザクション][]を送信します。事前承認を取り消すには、当該アカウントのアドレスを`Unauthorize`フィールドに指定します。通常どおり、`Account`フィールドには自分自身のアドレスを指定します。現在DepositAuthを有効にしていない場合でも、アカウントを事前承認または承認解除できます。他のアカウントに設定した事前認証ステータスは保存されますが、DepositAuthを有効にしない限り、このステータスの影響はありません。アカウントがアカウント自体を事前認証することはできません。事前認証は一方向であり、反対方向の支払には影響しません。 - -別のアカウントを事前認証すると、レジャーに[DepositPreauthオブジェクト](depositpreauth-object.html)が追加されます。これにより、認証を提供するアカウントの[所有者準備金](reserves.html#所有者準備金)が増加します。アカウントで事前承認が取り消されると、オブジェクトが削除され、準備金はこれに伴い減少します。 - -DepositPreauthトランザクションの処理が完了すると、承認済みアカウントからあなたのアカウントに資金を送金できるようになります。これは、以下のトランザクションタイプのいずれかを使用してDepositAuthを有効にしている場合にも該当します。 - -- [Payment][] -- [EscrowFinish][] -- [PaymentChannelClaim][] - -事前承認は、DepositAuthが有効なアカウントへのその他の送金方法には影響しません。詳しいルールについては、[詳細なセマンティクス](#詳細なセマンティクス)を参照してください。 - -### 承認の確認 - -[deposit_authorizedメソッド][]を使用して、特定のアカウントに対し別のアカウントへの入金が許可されているかどうかを確認できます。このメソッドは次の2点を確認します。 - -- 送金先アカウントがDeposit Authorizationを必要としているかどうか。(承認を必要としていない場合は、すべての送金元アカウントが承認済みとみなされます。) -- 送金元アカウントに対し、送金先への送金が事前承認されているかどうか。 - - -## 関連項目 - -- [DepositPreauthトランザクション][]リファレンス。 -- [DepositPreauthレジャーオブジェクトタイプ](depositpreauth-object.html)。 -- [`rippled` API](rippled-api.html)の[deposit_authorizedメソッド][]。 -- [Authorized Trust Lines](authorized-trust-lines.html)機能(`RequireAuth`フラグ)により、アカウントが発行したXRP以外の通貨を保有できる取引相手が制限されます。 -- `DisallowXRP`フラグは、アカウントがXRPを受領してはならないことを示します。これはDeposit Authorizationよりもソフトな保護機能であり、XRP Ledgerにより強制されません。(クライアントアプリケーションはこのフラグに従うか、または少なくともこのフラグについて警告します。) -- 送信トランザクションが[Destinationタグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)を指定している場合には、`RequireDest`フラグは、アカウントが通貨額のみを受領できることを示します。これにより、ユーザーが支払の目的を指定し忘れることがなくなりますが、恣意的な送金先タグを作成できる不明な送金元から受取人が保護されるわけではありません。 -- [Partial Payment](partial-payments.html)により、アカウントは不要な支払を返金できます。この際、[送金手数料](transfer-fees.html)と為替レートは送金額には追加されず、送金された金額から差し引かれます。 - - - -[DepositPreauthのAmendment]: known-amendments.html#depositpreauth -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Deposit Authorization + +_([DepositAuthのAmendment][]が必要です。)_ + +Deposit Authorization は、XRP Ledgerの[アカウント](accounts.html)のオプション機能です。Deposit Authorizationが有効な場合、トランザクションはそのトランザクションの送信者がアカウント自体でない限り、アカウントへはどのような資産も送信できません。これには、XRPと発行済み通貨の送金が含まれます。 + +デフォルトでは、新しいアカウントではDepositAuthが無効になっています。 + +## 背景 + +金融サービスの規制やライセンスによっては、企業や組織に対して、受領するすべてのトランザクションの送信者を把握するよう義務付けています。これは、自由に生成できる偽名で参加者を識別し、デフォルトですべてのアドレスからあらゆる宛先への支払いを可能とするXRP Ledgerのような分散型システムとっては課題となります。 + +Deposit Authorizationフラグにより、XRP Ledgerを使用するユーザーが分散型レジャーの基本的な特性を変えずにこのような規制に準拠するためのオプションを採用しました。Deposit Authorizationが有効な場合、アカウントはトランザクションを送信することで明示的に承認した資金のみを受領できます。Deposit Authorizationを使用するアカウントの所有者は、アカウントに資金を入金するトランザクションを送信する _前に_ 、資金の送金元の確認に必要なデューディリジェンス(確認調査)を実施できます。 + +Deposit Authorizationを有効にすると、[Checks](known-amendments.html#checks)、[Escrow](escrow.html)、および[Payment Channel](known-amendments.html#paychan)から資金を受領できます。このような「二段階」トランザクションモデルでは、最初に送金元は資金の送金を承認するトランザクションを送信し、次に送金先は資金受領を承認するトランザクションを送信します。 + +Deposit Authorizationが有効になっている場合に[Paymentトランザクション][]から資金を受領するには、このような支払の送金元を[事前承認](#事前承認)する必要があります。_([DepositPreauthのAmendment][]が必要です。)_ + +## 推奨される使い方 + +Deposit Authorizationを最大限に活用するため、以下の実施を推奨します。 + +- XRP残高が常に最低[必要準備金](reserves.html)を上回るようにする。 +- DefaultRippleフラグをデフォルトの状態(無効)にしておく。トラストラインに対して[Rippling](rippling.html)を有効にしない。TrustSetトランザクションを送信するときには常に[`tfSetNoRipple`フラグ](trustset.html)を使用する。 +- [オファー](offercreate.html)を行わない。このようなトランザクションの実行にあたり、消費される一致オファーを事前に把握することは不可能です。 + +## 詳細なセマンティクス + +Deposit Authorizationが有効化されているアカウントの特徴は次のとおりです。 + +- [Paymentトランザクション][]の送信先には**できません**。ただし**以下の例外**は除きます。 + - 送金先により、支払の送金元が[事前承認](#事前承認)されている場合。_([DepositPreauthのAmendment][]が必要です)_ + - アカウントのXRP残高がアカウントの最低[必要準備金](reserves.html)以下で、XRP PaymentのAmountがアカウントの最低準備金(現時点では20 XRP)以下である場合は、このアカウントを送金先に指定できます。これにより、アカウントがトランザクションを送信することも、XRPを受領することもできずに操作不可能な状態になるのを防ぎます。この場合、アカウントの所有者の準備金は関係ありません。 +- **以下に該当する場合にのみ**[PaymentChannelClaimトランザクション][]からXRPを受領できます。 + - PaymentChannelClaimトランザクションの送金元がPayment Channelの送金先である場合。 + - PaymentChannelClaimトランザクションの送金先がPaymentChannelClaimの送金元を[事前承認している](#事前承認)場合。_([DepositPreauthのAmendment][]が必要です)_ +- **以下に該当する場合にのみ**[EscrowFinishトランザクション][]からXRPを受領できます。 + - EscrowFinishトランザクションの送金元がEscrowの送金先である場合。 + - EscrowFinishトランザクションの送金先がEscrowFinishの送金元を[事前承認している](#事前承認)場合。_([DepositPreauthのAmendment][]が必要です)_ +- [CheckCash][]トランザクションを送信してXRPまたは発行済み通貨を受領**できます**。 _([ChecksのAmendment][]が必要です:有効ではありません:)_ +- [OfferCreateトランザクション][]を送信してXRPまたは発行済み通貨を受領**できます**。 + - 即時には完全に実行されないOfferCreateトランザクションがアカウントから送信される場合、このアカウントは、後でオファーが他のアカウントの[Payment][]トランザクションと[OfferCreate][]トランザクションによって消費される時点で、注文済みXRPと発行済み通貨のリマインダーを受信する**ことがあります**。 +- アカウントが[NoRippleフラグ](rippling.html)を有効にせずにトラストラインを作成している場合、またはDefaultRippleフラグを有効にして通貨を発行した場合は、アカウントはRipplingの結果として、[Paymentトランザクション][]でそれらのトラストラインの発行済み通貨を受領**できます**。このようなトランザクションの送金先にすることはできません。 +- 一般的に、以下のすべての条件に該当する場合は、XRP LedgerのアカウントはXRP LedgerでXRP以外の通貨を受領**できません**。(このルールは、DepositAuthフラグに特有のものではありません。) + - アカウントにより、ゼロ以外の限度を指定したトラストラインが作成されていない。 + - アカウントが、その他のアカウントにより作成されたトラストラインで通貨を発行していない。 + - アカウントがまだオファーを出していない。 + +以下の表に、トランザクションタイプ別にDepositAuthが有効または無効な状態での入金の可否をまとめました。 + +{% include '_snippets/depositauth-semantics-table.html' %} + + + +## Deposit Authorizationの有効化または無効化 + +アカウントのDeposit Authorizationを有効にするには、`SetFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。アカウントのDeposit Authorizationを無効にするには、`ClearFlag`フィールドに`asfDepositAuth`の値(9)を設定した[AccountSetトランザクション][]を送信します。AccountSetフラグについての詳細は、[AccountSetフラグ](accountset.html)を参照してください。 + +## AccountのDepositAuthの有効化の確認 + +アカウントのDeposit Authorizationの有効化の状態を確認するには、[account_infoメソッド][]を使用してアカウントを調べます。`Flags`フィールド(`result.account_data`オブジェクト)の値を、[AccountRootレジャーオブジェクトのビット単位フラグ](accountroot.html)と比較します。 + +`Flags`値と`lsfDepositAuth`フラグ値(0x01000000)のビット単位のANDの結果がゼロ以外の場合、アカウントではDepositAuthが有効になっています。結果がゼロの場合、アカウントではDepositAuthが無効になっています。 + +## 事前承認 + +_([DepositPreauthのAmendment][]が必要です。)_ + +DepositAuthが有効なアカウントは、特定の送金元を _事前承認_ することにより、DepositAuthが有効になっていても、これらの送金元からの支払を受領することができます。これにより、特定の送金元からの資金の直接送金が可能となり、受取人はトランザクションごとに個別にアクションを実行する必要がなくなります。事前承認はDepositAuthの使用にあたり必須の要件ではありませんが、事前承認により特定の操作を実行しやすくなります。 + +事前承認は通貨に依存しません。特定の通貨のみについてアカウントを事前承認することはできません。 + +特定の送金元を事前承認するには、`Authorize`フィールドに事前承認する別のアカウントのアドレスを指定した[DepositPreauthトランザクション][]を送信します。事前承認を取り消すには、当該アカウントのアドレスを`Unauthorize`フィールドに指定します。通常どおり、`Account`フィールドには自分自身のアドレスを指定します。現在DepositAuthを有効にしていない場合でも、アカウントを事前承認または承認解除できます。他のアカウントに設定した事前認証ステータスは保存されますが、DepositAuthを有効にしない限り、このステータスの影響はありません。アカウントがアカウント自体を事前認証することはできません。事前認証は一方向であり、反対方向の支払には影響しません。 + +別のアカウントを事前認証すると、レジャーに[DepositPreauthオブジェクト](depositpreauth-object.html)が追加されます。これにより、認証を提供するアカウントの[所有者準備金](reserves.html#所有者準備金)が増加します。アカウントで事前承認が取り消されると、オブジェクトが削除され、準備金はこれに伴い減少します。 + +DepositPreauthトランザクションの処理が完了すると、承認済みアカウントからあなたのアカウントに資金を送金できるようになります。これは、以下のトランザクションタイプのいずれかを使用してDepositAuthを有効にしている場合にも該当します。 + +- [Payment][] +- [EscrowFinish][] +- [PaymentChannelClaim][] + +事前承認は、DepositAuthが有効なアカウントへのその他の送金方法には影響しません。詳しいルールについては、[詳細なセマンティクス](#詳細なセマンティクス)を参照してください。 + +### 承認の確認 + +[deposit_authorizedメソッド][]を使用して、特定のアカウントに対し別のアカウントへの入金が許可されているかどうかを確認できます。このメソッドは次の2点を確認します。 + +- 送金先アカウントがDeposit Authorizationを必要としているかどうか。(承認を必要としていない場合は、すべての送金元アカウントが承認済みとみなされます。) +- 送金元アカウントに対し、送金先への送金が事前承認されているかどうか。 + + +## 関連項目 + +- [DepositPreauthトランザクション][]リファレンス。 +- [DepositPreauthレジャーオブジェクトタイプ](depositpreauth-object.html)。 +- [`rippled` API](rippled-api.html)の[deposit_authorizedメソッド][]。 +- [Authorized Trust Lines](authorized-trust-lines.html)機能(`RequireAuth`フラグ)により、アカウントが発行したXRP以外の通貨を保有できる取引相手が制限されます。 +- `DisallowXRP`フラグは、アカウントがXRPを受領してはならないことを示します。これはDeposit Authorizationよりもソフトな保護機能であり、XRP Ledgerにより強制されません。(クライアントアプリケーションはこのフラグに従うか、または少なくともこのフラグについて警告します。) +- 送信トランザクションが[Destinationタグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)を指定している場合には、`RequireDest`フラグは、アカウントが通貨額のみを受領できることを示します。これにより、ユーザーが支払の目的を指定し忘れることがなくなりますが、恣意的な送金先タグを作成できる不明な送金元から受取人が保護されるわけではありません。 +- [Partial Payment](partial-payments.html)により、アカウントは不要な支払を返金できます。この際、[送金手数料](transfer-fees.html)と為替レートは送金額には追加されず、送金された金額から差し引かれます。 + + + +[DepositPreauthのAmendment]: known-amendments.html#depositpreauth +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-system-basics/accounts/multi-signing.ja.md b/content/concepts/payment-system-basics/accounts/multi-signing.ja.md index 575dee512e..9d2051b283 100644 --- a/content/concepts/payment-system-basics/accounts/multi-signing.ja.md +++ b/content/concepts/payment-system-basics/accounts/multi-signing.ja.md @@ -1,35 +1,35 @@ -# マルチ署名 - -マルチ署名は、複数のシークレットキーを組み合わせて使用してXRP Ledgerの[トランザクションを承認する](transaction-basics.html#取引の承認)手法です。アドレスで有効な承認手法(マルチ署名、[マスターキーペア](cryptographic-keys.html#マスターキーペア)、[レギュラーキーペア](cryptographic-keys.html#レギュラーキーペア)など)を自由に組み合わせて使用できます。(唯一の要件は、 _少なくとも1つの_ 手法を有効にする必要があることです。) - -マルチ署名には次のメリットがあります。 - -* 複数のデバイスからのキーを要求できます。これにより、不正使用者があなたの代わりにトランザクションを送信するには複数のマシンを悪用しなければならなくなります。 -* 複数のユーザー間で1つのアドレスの管理を共有できます。この場合、各ユーザーが、そのアドレスからトランザクションを送信する際に必要な複数のキーのいずれか1つだけを所有します。 -* あなたのアドレスからトランザクションを送信できる権限を、複数ユーザーのグループに委任できます。委任を受けた各ユーザーは、あなたが通常の方法で署名できない場合にあなたのアドレスを制御できます。 -* その他のメリットもあります。 - -## 署名者リスト - -マルチ署名を使用するには、あなたの代理として署名できるアドレスのリストを作成する必要があります。 - -[SignerListSetトランザクション][]は、あなたのアドレスからのトランザクションを承認できるアドレスを定義します。SignerListには最大8個のアドレスを指定できます。SignerListのquorum値とweight値を使用して、必要な署名の数と組み合わせを制御できます。 - -## マルチ署名済みトランザクションの送信 - -マルチ署名済みトランザクションを正常に送信するには、以下のすべての条件を満たす必要があります。 - -* トランザクションを送信するアドレス(`Account`に指定されるアドレス)は、[レジャーに`SignerList`](signerlist.html)を所有する必要があります。 -* トランザクションに`SigningPubKey`フィールドを空の文字列として含める必要があります。 -* トランザクションに、署名の配列が指定されている[`Signers`フィールド](transaction-common-fields.html#signersフィールド)を含める必要があります。 -* `Signers`配列に含まれている署名は、SignerListで定義されている署名と一致している必要があります。 -* 指定された署名で、これらの署名者に関連付けられている`weight`の合計が、SignerListの`quorum`以上である必要があります。 -* [トランザクションコスト](transaction-cost.html)(`Fee`フィールドで指定)は、通常のトランザクションコストの(N+1)倍以上である必要があります。このNは、指定される署名の数です。 -* トランザクションのすべてのフィールドは、署名収集前に定義する必要があります。フィールドの[自動入力](transaction-common-fields.html#自動入力可能なフィールド)は実行できません。 -* `Signers` 配列がバイナリ形式で指定される場合、この配列は署名者アドレスの数値に基づいて、低い値から順にソートされている必要があります。(JSONとして提出される場合は、[submit_multisignedメソッド][] がこの処理を自動的に実行します。) - -詳細は、[マルチ署名の設定](set-up-multi-signing.html)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# マルチ署名 + +マルチ署名は、複数のシークレットキーを組み合わせて使用してXRP Ledgerの[トランザクションを承認する](transaction-basics.html#取引の承認)手法です。アドレスで有効な承認手法(マルチ署名、[マスターキーペア](cryptographic-keys.html#マスターキーペア)、[レギュラーキーペア](cryptographic-keys.html#レギュラーキーペア)など)を自由に組み合わせて使用できます。(唯一の要件は、 _少なくとも1つの_ 手法を有効にする必要があることです。) + +マルチ署名には次のメリットがあります。 + +* 複数のデバイスからのキーを要求できます。これにより、不正使用者があなたの代わりにトランザクションを送信するには複数のマシンを悪用しなければならなくなります。 +* 複数のユーザー間で1つのアドレスの管理を共有できます。この場合、各ユーザーが、そのアドレスからトランザクションを送信する際に必要な複数のキーのいずれか1つだけを所有します。 +* あなたのアドレスからトランザクションを送信できる権限を、複数ユーザーのグループに委任できます。委任を受けた各ユーザーは、あなたが通常の方法で署名できない場合にあなたのアドレスを制御できます。 +* その他のメリットもあります。 + +## 署名者リスト + +マルチ署名を使用するには、あなたの代理として署名できるアドレスのリストを作成する必要があります。 + +[SignerListSetトランザクション][]は、あなたのアドレスからのトランザクションを承認できるアドレスを定義します。SignerListには最大8個のアドレスを指定できます。SignerListのquorum値とweight値を使用して、必要な署名の数と組み合わせを制御できます。 + +## マルチ署名済みトランザクションの送信 + +マルチ署名済みトランザクションを正常に送信するには、以下のすべての条件を満たす必要があります。 + +* トランザクションを送信するアドレス(`Account`に指定されるアドレス)は、[レジャーに`SignerList`](signerlist.html)を所有する必要があります。 +* トランザクションに`SigningPubKey`フィールドを空の文字列として含める必要があります。 +* トランザクションに、署名の配列が指定されている[`Signers`フィールド](transaction-common-fields.html#signersフィールド)を含める必要があります。 +* `Signers`配列に含まれている署名は、SignerListで定義されている署名と一致している必要があります。 +* 指定された署名で、これらの署名者に関連付けられている`weight`の合計が、SignerListの`quorum`以上である必要があります。 +* [トランザクションコスト](transaction-cost.html)(`Fee`フィールドで指定)は、通常のトランザクションコストの(N+1)倍以上である必要があります。このNは、指定される署名の数です。 +* トランザクションのすべてのフィールドは、署名収集前に定義する必要があります。フィールドの[自動入力](transaction-common-fields.html#自動入力可能なフィールド)は実行できません。 +* `Signers` 配列がバイナリ形式で指定される場合、この配列は署名者アドレスの数値に基づいて、低い値から順にソートされている必要があります。(JSONとして提出される場合は、[submit_multisignedメソッド][] がこの処理を自動的に実行します。) + +詳細は、[マルチ署名の設定](set-up-multi-signing.html)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} diff --git a/content/concepts/payment-system-basics/accounts/reserves.ja.md b/content/concepts/payment-system-basics/accounts/reserves.ja.md index 343ac0b196..089cc66794 100644 --- a/content/concepts/payment-system-basics/accounts/reserves.ja.md +++ b/content/concepts/payment-system-basics/accounts/reserves.ja.md @@ -1,52 +1,52 @@ -# 準備金 - -XRP Ledgerでは、スパムや悪意のある使用によって、共有グローバル台帳(レジャー)が過度に大きくならないように、 _準備金_ の仕組みをXRPに適用しています。現在一般に市販されているのマシンで、処理中の現行レジャーを常にRAMに保存でき、全履歴がディスクに収まるように、技術の向上に合わせて台帳が大きくなるのを制限することが目的です。 - -取引(トランザクション)を送信するには、各アドレスが共有グローバル台帳内に最小量のXRPを保有している必要があります。このXRPを他のアドレスに送信することはできません。新しいアドレスに資金供給するには、必要準備金を満たすのに十分なXRPを送信する必要があります。 - -現在の最低必要準備金は**20 XRP**です。(これは、レジャーにそれ以外のオブジェクトを所有していないアドレスにかかるコストです。) - - -## 基本準備金と所有者準備金 - -必要な準備金は2つの部分に分けられます。 - -* **基本準備金**は、レジャーの各アドレスに必要なXRPの最小額です。現在、この準備金は、20 XRP(`20000000` drop)です。 -* **所有者準備金**は、アドレスがレジャーに所有しているオブジェクトごとに必要な準備金の増加額です。現在、これは1アイテムにつき5 XRP(`5000000` drop)です。 - - -### 所有者準備金 - -レジャー内の多くのオブジェクトは特定のアドレスによって所有され、そのアドレスに対する必要準備金と見なされます。レジャーから削除されたオブジェクトは、所有者の必要準備金にカウントされなくなります。 - -- [オファー](offer.html)はそれらを発行したアドレスによって所有されています。すべてが処理済みとなるか、または資金供給のないことが判明したオファーは、取引処理によって自動的に削除されます。または、所有者は、[OfferCancelトランザクション][]を送信するか、`OfferSequence`パラメーターを含む[OfferCreateトランザクション][]を送信することで、オファーを取り消すことができます。 -- [トラストライン](ripplestate.html)は2つのアドレス間で共有されます。所有者準備金は、いずれかまたは両方のアドレスに適用されます。どちらに適用されるかは、アドレスが制御するフィールドがデフォルト状態であるかどうかによって決まります。詳細については、[Contributing to the Owner Reserve](ripplestate.html#所有者の準備金への資金供給)を参照してください。 -- [MultiSignReserve Amendment][]がない場合、1つの[SignerList](signerlist.html)は、メンバーの数に応じて、所有者準備金用に3~10個のオブジェクトとしてカウントされます。[MultiSignReserve Amendment][]が有効になっている場合、1つのSignerListは、メンバーの数に関係なく、所有者準備金用に1つのオブジェクトとしてカウントされます。関連項目: [SignerListと準備金](signerlist.html#signerlistsと準備金) -- [保留中の支払い(Escrow)](escrow-object.html)は、支払元のアドレスが所有します。 -- [Payment Channel](use-payment-channels.html)は、作成したアドレスが所有します。 -- [所有者ディレクトリー](directorynode.html)には、アドレスの所有者の準備金の対象となるすべてのレジャーオブジェクトが一覧表示されます。所有者ディレクトリー自体は準備金としてカウントされません。 -- [Checks](checks.html)は、作成したアドレス(送信先ではなく送信元)が所有します。 - - -#### 所有者準備金のエッジケース - -XRP Ledgerでは、 [OfferCreateトランザクション][]は、資産を保持する意図の明示的なステートメントであるとみなします。オファーが実行されることで、(限界値0で、その限界値を超える残高の)トラストラインが(そのようなトラストラインが存在しない場合)`taker_pays`の通貨で自動的に作成されます。ただし、オファーの所有者が新しく作られたトラストラインの所有者準備金を満たすための十分なXRPを保持していない場合、そのオファーは資金不足とみなされます。関連項目: [オファーのライフサイクル](offers.html#オファーのライフサイクル) - - -## 必要準備金を下回る - -トランザクション処理中、[トランザクションコスト](transaction-cost.html)によって、送信元アドレスのXRP残高の一部が消却されます。その結果、そのアドレスのXRPが必要準備金を下回る可能性があります。 - -アドレスが保持しているXRPが、現在の必要準備金を下回ると、XRPを他のアドレスに転送するトランザクションを送信したり、自身の準備金を増やしたりできなくなります。このような場合でも、そのアドレスはレジャー内に存在し、トランザクションコストを支払うのに十分なXRPを持っている限り、その他のトランザクションを送信することができます。必要準備金を満たすために十分なXRPを受け取った場合、またはそのアドレスのXRP保有額よりも[準備金の必要額が減少した](#必要準備金の変更)場合、そのアドレスはすべてのタイプのトランザクションを再度送信できるようになります。 - -**ヒント:** アドレスが必要準備金を下回った場合は、新しい[OfferCreateトランザクション][]を送信して、追加のXRP、または既存のトラストライン上の他の通貨を入手することができます。このような取引では、新しい[トラストライン](ripplestate.html)や[レジャー内のオファーノード](offer.html)を作成することはできないため、すでにオーダーブック内にあるオファーを実行するトランザクションのみを実行することができます。 - - -## 必要準備金の変更 - -XRP Ledgerには、XRPの価値の長期的な変動に応じて必要準備金を調整する仕組みがあります。変更はすべて、コンセンサスプロセスによる承認が必要です。詳細については、[手数料の投票](fee-voting.html)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 準備金 + +XRP Ledgerでは、スパムや悪意のある使用によって、共有グローバル台帳(レジャー)が過度に大きくならないように、 _準備金_ の仕組みをXRPに適用しています。現在一般に市販されているのマシンで、処理中の現行レジャーを常にRAMに保存でき、全履歴がディスクに収まるように、技術の向上に合わせて台帳が大きくなるのを制限することが目的です。 + +取引(トランザクション)を送信するには、各アドレスが共有グローバル台帳内に最小量のXRPを保有している必要があります。このXRPを他のアドレスに送信することはできません。新しいアドレスに資金供給するには、必要準備金を満たすのに十分なXRPを送信する必要があります。 + +現在の最低必要準備金は**20 XRP**です。(これは、レジャーにそれ以外のオブジェクトを所有していないアドレスにかかるコストです。) + + +## 基本準備金と所有者準備金 + +必要な準備金は2つの部分に分けられます。 + +* **基本準備金**は、レジャーの各アドレスに必要なXRPの最小額です。現在、この準備金は、20 XRP(`20000000` drop)です。 +* **所有者準備金**は、アドレスがレジャーに所有しているオブジェクトごとに必要な準備金の増加額です。現在、これは1アイテムにつき5 XRP(`5000000` drop)です。 + + +### 所有者準備金 + +レジャー内の多くのオブジェクトは特定のアドレスによって所有され、そのアドレスに対する必要準備金と見なされます。レジャーから削除されたオブジェクトは、所有者の必要準備金にカウントされなくなります。 + +- [オファー](offer.html)はそれらを発行したアドレスによって所有されています。すべてが処理済みとなるか、または資金供給のないことが判明したオファーは、取引処理によって自動的に削除されます。または、所有者は、[OfferCancelトランザクション][]を送信するか、`OfferSequence`パラメーターを含む[OfferCreateトランザクション][]を送信することで、オファーを取り消すことができます。 +- [トラストライン](ripplestate.html)は2つのアドレス間で共有されます。所有者準備金は、いずれかまたは両方のアドレスに適用されます。どちらに適用されるかは、アドレスが制御するフィールドがデフォルト状態であるかどうかによって決まります。詳細については、[Contributing to the Owner Reserve](ripplestate.html#所有者の準備金への資金供給)を参照してください。 +- [MultiSignReserve Amendment][]がない場合、1つの[SignerList](signerlist.html)は、メンバーの数に応じて、所有者準備金用に3~10個のオブジェクトとしてカウントされます。[MultiSignReserve Amendment][]が有効になっている場合、1つのSignerListは、メンバーの数に関係なく、所有者準備金用に1つのオブジェクトとしてカウントされます。関連項目: [SignerListと準備金](signerlist.html#signerlistsと準備金) +- [保留中の支払い(Escrow)](escrow-object.html)は、支払元のアドレスが所有します。 +- [Payment Channel](use-payment-channels.html)は、作成したアドレスが所有します。 +- [所有者ディレクトリー](directorynode.html)には、アドレスの所有者の準備金の対象となるすべてのレジャーオブジェクトが一覧表示されます。所有者ディレクトリー自体は準備金としてカウントされません。 +- [Checks](checks.html)は、作成したアドレス(送信先ではなく送信元)が所有します。 + + +#### 所有者準備金のエッジケース + +XRP Ledgerでは、 [OfferCreateトランザクション][]は、資産を保持する意図の明示的なステートメントであるとみなします。オファーが実行されることで、(限界値0で、その限界値を超える残高の)トラストラインが(そのようなトラストラインが存在しない場合)`taker_pays`の通貨で自動的に作成されます。ただし、オファーの所有者が新しく作られたトラストラインの所有者準備金を満たすための十分なXRPを保持していない場合、そのオファーは資金不足とみなされます。関連項目: [オファーのライフサイクル](offers.html#オファーのライフサイクル) + + +## 必要準備金を下回る + +トランザクション処理中、[トランザクションコスト](transaction-cost.html)によって、送信元アドレスのXRP残高の一部が消却されます。その結果、そのアドレスのXRPが必要準備金を下回る可能性があります。 + +アドレスが保持しているXRPが、現在の必要準備金を下回ると、XRPを他のアドレスに転送するトランザクションを送信したり、自身の準備金を増やしたりできなくなります。このような場合でも、そのアドレスはレジャー内に存在し、トランザクションコストを支払うのに十分なXRPを持っている限り、その他のトランザクションを送信することができます。必要準備金を満たすために十分なXRPを受け取った場合、またはそのアドレスのXRP保有額よりも[準備金の必要額が減少した](#必要準備金の変更)場合、そのアドレスはすべてのタイプのトランザクションを再度送信できるようになります。 + +**ヒント:** アドレスが必要準備金を下回った場合は、新しい[OfferCreateトランザクション][]を送信して、追加のXRP、または既存のトラストライン上の他の通貨を入手することができます。このような取引では、新しい[トラストライン](ripplestate.html)や[レジャー内のオファーノード](offer.html)を作成することはできないため、すでにオーダーブック内にあるオファーを実行するトランザクションのみを実行することができます。 + + +## 必要準備金の変更 + +XRP Ledgerには、XRPの価値の長期的な変動に応じて必要準備金を調整する仕組みがあります。変更はすべて、コンセンサスプロセスによる承認が必要です。詳細については、[手数料の投票](fee-voting.html)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-system-basics/fees.ja.md b/content/concepts/payment-system-basics/fees.ja.md index 42c1a77481..52afa536d6 100644 --- a/content/concepts/payment-system-basics/fees.ja.md +++ b/content/concepts/payment-system-basics/fees.ja.md @@ -1,27 +1,27 @@ -# 手数料(曖昧さの回避) - -XRP Ledgerは分散型レジャーであり、暗号技術により保護され、サーバーで構成される分散型ピアツーピアネットワークで運用されます。つまり、Rippleを含め誰もネットワークアクセス料を要求できません。 - -ただしXRP Ledgerのルールには、レジャーを悪用から保護するための中立的な手数料を含む各種手数料が設定されています。この中立的な手数料の受取先はありません。また、XRP Ledgerの内外でユーザーはさまざまな方法で相互に手数料を徴収できます。 - - -## レジャー内部 - -### 中立的な手数料 - -_**トランザクションコスト**_(トランザクション手数料とも呼ばれます)は、トランザクションの送信にあたって消却される極わずかな額のXRPです。このコストはネットワークへの負荷に比例して増減するため、ピアツーピアネットワークをスパムから保護します。詳細は、[トランザクションコスト](transaction-cost.html)を参照してください。 - -_**必要準備金**_ は、アカウントが保有する必要があるXRPの最小額です。これは、アカウントがレジャーで所有するオブジェクトの数に比例して増加します。これにより、ユーザーが不注意または悪意によってレジャーのサイズを増やすことを防ぎます。詳細は、[準備金](reserves.html)を参照してください。 - -### オプションの手数料 - -_**送金手数料**_ は、イシュアーが発行する通貨を、そのイシュアーがXRP Ledger内の他のアドレスに送金する場合に請求できる手数料であり、そのパーセンテージは任意に設定されます。詳細は、[送金手数料](transfer-fees.html)を参照してください。 - -_**トラストラインクオリティ**_ は、アカウントがトラストラインの残高を額面価格よりも高い価格または低い価格で評価できるようにする設定です。この設定により、手数料が発生するような状況になることがあります。トラストラインクオリティは、トラストラインに関連付けられていないXRPには適用されません。 - - -## レジャー外部 - -XRP Ledgerには前述の手数料しか組み込まれていませんが、この他にもレジャーに関連した手数料を請求する方法を考案することが可能です。たとえば、一般的に金融機関は、XRP Ledgerへの資金の送金やXRP Ledgerからの資金の受領に関して、手数料を顧客に請求します。 - -その他にもさまざまな手数料を設定できます。企業はクライアントアプリケーションへのアクセス、XRP Ledger以外のアカウント、取引所サービス(特にXRP Ledgerの分散型取引所内ではなくプライベートマーケットでXRPを購入する場合)、およびその他のさまざまなサービスの管理の手数料を請求できます。金融機関と取引を行う前に、必ず手数料一覧を確認してください。 +# 手数料(曖昧さの回避) + +XRP Ledgerは分散型レジャーであり、暗号技術により保護され、サーバーで構成される分散型ピアツーピアネットワークで運用されます。つまり、Rippleを含め誰もネットワークアクセス料を要求できません。 + +ただしXRP Ledgerのルールには、レジャーを悪用から保護するための中立的な手数料を含む各種手数料が設定されています。この中立的な手数料の受取先はありません。また、XRP Ledgerの内外でユーザーはさまざまな方法で相互に手数料を徴収できます。 + + +## レジャー内部 + +### 中立的な手数料 + +_**トランザクションコスト**_(トランザクション手数料とも呼ばれます)は、トランザクションの送信にあたって消却される極わずかな額のXRPです。このコストはネットワークへの負荷に比例して増減するため、ピアツーピアネットワークをスパムから保護します。詳細は、[トランザクションコスト](transaction-cost.html)を参照してください。 + +_**必要準備金**_ は、アカウントが保有する必要があるXRPの最小額です。これは、アカウントがレジャーで所有するオブジェクトの数に比例して増加します。これにより、ユーザーが不注意または悪意によってレジャーのサイズを増やすことを防ぎます。詳細は、[準備金](reserves.html)を参照してください。 + +### オプションの手数料 + +_**送金手数料**_ は、イシュアーが発行する通貨を、そのイシュアーがXRP Ledger内の他のアドレスに送金する場合に請求できる手数料であり、そのパーセンテージは任意に設定されます。詳細は、[送金手数料](transfer-fees.html)を参照してください。 + +_**トラストラインクオリティ**_ は、アカウントがトラストラインの残高を額面価格よりも高い価格または低い価格で評価できるようにする設定です。この設定により、手数料が発生するような状況になることがあります。トラストラインクオリティは、トラストラインに関連付けられていないXRPには適用されません。 + + +## レジャー外部 + +XRP Ledgerには前述の手数料しか組み込まれていませんが、この他にもレジャーに関連した手数料を請求する方法を考案することが可能です。たとえば、一般的に金融機関は、XRP Ledgerへの資金の送金やXRP Ledgerからの資金の受領に関して、手数料を顧客に請求します。 + +その他にもさまざまな手数料を設定できます。企業はクライアントアプリケーションへのアクセス、XRP Ledger以外のアカウント、取引所サービス(特にXRP Ledgerの分散型取引所内ではなくプライベートマーケットでXRPを購入する場合)、およびその他のさまざまなサービスの管理の手数料を請求できます。金融機関と取引を行う前に、必ず手数料一覧を確認してください。 diff --git a/content/concepts/payment-system-basics/ledgers.ja.md b/content/concepts/payment-system-basics/ledgers.ja.md index 93adcf2872..49c468e4bc 100644 --- a/content/concepts/payment-system-basics/ledgers.ja.md +++ b/content/concepts/payment-system-basics/ledgers.ja.md @@ -1,35 +1,35 @@ -# レジャー - -XRP Ledgerは完全にオープンな共有グローバルレジャーです。個々の参加者はこのレジャーを管理する個々の機関を信頼しなくても、レジャーの整合性を信頼できます。`rippled`サーバーソフトウェアは、非常に特殊なルールによってのみ更新可能なレジャーデータベースを管理することにより、これを実現しています。各`rippled`インスタンスはレジャーの完全なコピーを保持し、`rippled`サーバーからなるピアツーピアネットワークはトランザクション候補を各サーバーに配信します。コンセンサスプロセスによって、レジャーの新しいバージョンに適用されるトランザクションが決定します。関連項目: [コンセンサスプロセス](consensus.html)。 - -![図: 各レジャーは、その前のレジャーバージョンにトランザクションを適用して生成されます。](img/ledger-changes.ja.png) - -この共有グローバルレジャーは、実際には`rippled`の内部データベースに保持されている一連の個別レジャー(レジャーバージョン)です。各レジャーバージョンには、レジャーの生成順を示す[レジャーインデックス][]が付いています。各閉鎖済みレジャーバージョンにも、レジャーの内容を示す識別用ハッシュ値があります。`rippled`インスタンスには常に、1つの処理中の「現行」オープンレジャー、コンセンサスにより承認されていないいくつかの閉鎖済みレジャー、およびコンセンサスによる検証済みの任意の数の履歴レジャーがあります。検証済みレジャーだけが、その内容が正確で変更できません。 - -1つのレジャーバージョンはさまざまな要素で構成されています: - -![図: レジャーにはトランザクション、状態ツリー、閉鎖時刻、検証情報を含むヘッダーが含まれています。](img/anatomy-of-a-ledger-simplified.ja.png) - -* **ヘッダー** - [レジャーインデックス][]、レジャーのその他のコンテンツのハッシュ、その他のメタデータ。 -* **トランザクションツリー** - このレジャーの作成時に、直前のレジャーに適用された[トランザクション](transaction-formats.html)。トランザクションは、レジャーの変更を可能にする _唯一の_ 手段です。 -* **状態ツリー** - このバージョンのレジャーの設定、残高、オブジェクトを含むすべての[レジャーオブジェクト](ledger-object-types.html)。 - - -## ツリーの形式 - -レジャーの状態ツリーは、その名前のとおりツリー型データ構造です。状態ツリーの各オブジェクトは256ビットのオブジェクトIDで識別されます。JSONではレジャーオブジェクトのIDは`index`フィールドです。このフィールドには64文字の16進数文字列が含まれています(例: `"193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94"`)。状態ツリーの各オブジェクトには、オブジェクトの検索に使用できるIDが設定されています。各トランザクションには、トランザクションツリーでトランザクションを検索するときに使用できる識別用ハッシュが含まれています。レジャーオブジェクトの`index`(ID)と[レジャーの`ledger_index`(シーケンス番号)][レジャーインデックス]を混同しないでください。 - -**ヒント:** レジャーの状態ツリーのオブジェクトは「レジャーノード」と呼ばれることもあります。たとえばトランザクションメタデータは`AffectedNodes`のリストを返します。これをピアツーピアネットワークの「ノード」(サーバー)と混同しないでください。 - -トランザクションの場合、識別用ハッシュは署名済みトランザクションの指示に基づいていますが、検索時のトランザクションオブジェクトにはトランザクションの結果とメタデータが含まれています。これは、ハッシュの生成時には反映されません。 - - -## 関連項目 - -レジャーヘッダー、レジャーオブジェクトID、レジャーオブジェクトタイプについての詳細は、[レジャーデータフォーマット](ledger-data-formats.html)を参照してください。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# レジャー + +XRP Ledgerは完全にオープンな共有グローバルレジャーです。個々の参加者はこのレジャーを管理する個々の機関を信頼しなくても、レジャーの整合性を信頼できます。`rippled`サーバーソフトウェアは、非常に特殊なルールによってのみ更新可能なレジャーデータベースを管理することにより、これを実現しています。各`rippled`インスタンスはレジャーの完全なコピーを保持し、`rippled`サーバーからなるピアツーピアネットワークはトランザクション候補を各サーバーに配信します。コンセンサスプロセスによって、レジャーの新しいバージョンに適用されるトランザクションが決定します。関連項目: [コンセンサスプロセス](consensus.html)。 + +![図: 各レジャーは、その前のレジャーバージョンにトランザクションを適用して生成されます。](img/ledger-changes.ja.png) + +この共有グローバルレジャーは、実際には`rippled`の内部データベースに保持されている一連の個別レジャー(レジャーバージョン)です。各レジャーバージョンには、レジャーの生成順を示す[レジャーインデックス][]が付いています。各閉鎖済みレジャーバージョンにも、レジャーの内容を示す識別用ハッシュ値があります。`rippled`インスタンスには常に、1つの処理中の「現行」オープンレジャー、コンセンサスにより承認されていないいくつかの閉鎖済みレジャー、およびコンセンサスによる検証済みの任意の数の履歴レジャーがあります。検証済みレジャーだけが、その内容が正確で変更できません。 + +1つのレジャーバージョンはさまざまな要素で構成されています: + +![図: レジャーにはトランザクション、状態ツリー、閉鎖時刻、検証情報を含むヘッダーが含まれています。](img/anatomy-of-a-ledger-simplified.ja.png) + +* **ヘッダー** - [レジャーインデックス][]、レジャーのその他のコンテンツのハッシュ、その他のメタデータ。 +* **トランザクションツリー** - このレジャーの作成時に、直前のレジャーに適用された[トランザクション](transaction-formats.html)。トランザクションは、レジャーの変更を可能にする _唯一の_ 手段です。 +* **状態ツリー** - このバージョンのレジャーの設定、残高、オブジェクトを含むすべての[レジャーオブジェクト](ledger-object-types.html)。 + + +## ツリーの形式 + +レジャーの状態ツリーは、その名前のとおりツリー型データ構造です。状態ツリーの各オブジェクトは256ビットのオブジェクトIDで識別されます。JSONではレジャーオブジェクトのIDは`index`フィールドです。このフィールドには64文字の16進数文字列が含まれています(例: `"193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94"`)。状態ツリーの各オブジェクトには、オブジェクトの検索に使用できるIDが設定されています。各トランザクションには、トランザクションツリーでトランザクションを検索するときに使用できる識別用ハッシュが含まれています。レジャーオブジェクトの`index`(ID)と[レジャーの`ledger_index`(シーケンス番号)][レジャーインデックス]を混同しないでください。 + +**ヒント:** レジャーの状態ツリーのオブジェクトは「レジャーノード」と呼ばれることもあります。たとえばトランザクションメタデータは`AffectedNodes`のリストを返します。これをピアツーピアネットワークの「ノード」(サーバー)と混同しないでください。 + +トランザクションの場合、識別用ハッシュは署名済みトランザクションの指示に基づいていますが、検索時のトランザクションオブジェクトにはトランザクションの結果とメタデータが含まれています。これは、ハッシュの生成時には反映されません。 + + +## 関連項目 + +レジャーヘッダー、レジャーオブジェクトID、レジャーオブジェクトタイプについての詳細は、[レジャーデータフォーマット](ledger-data-formats.html)を参照してください。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-system-basics/transaction-basics/finality-of-results.ja.md b/content/concepts/payment-system-basics/transaction-basics/finality-of-results.ja.md index ad88d70088..878fb49f0e 100644 --- a/content/concepts/payment-system-basics/transaction-basics/finality-of-results.ja.md +++ b/content/concepts/payment-system-basics/transaction-basics/finality-of-results.ja.md @@ -1,17 +1,17 @@ -# 結果のファイナリティー - -トランザクションがコンセンサスレジャーに適用される順序は、レジャーがクローズされ、そのトランザクションセットがコンセンサスプロセスによって承認されるまで最終的なものではありません。最初に成功したトランザクションはその後で失敗する可能性があり、最初に失敗したトランザクションはその後で成功する可能性があります。さらに、あるラウンドでコンセンサスプロセスによって拒否されたトランザクションは、後のラウンドでコンセンサスに達する可能性があります。 - -検証済みレジャーには、失敗したトランザクション (`tec`結果コード)だけでなく、成功したトランザクション(`tes`結果コード)も含まれる可能性があります。それ以外の結果のトランザクションはレジャーに含まれません。 - -結果コードがそれ以外の場合は、結果が最終的なものかどうかを判断するのは困難です。次の表は、トランザクションの結果がいつ確定するかをまとめたものです。この内容は、トランザクション送信からの結果コードに基づいています。 - -| エラーコード | ファイナリティー | -|:----------------|:-----------------------------------------------------------| -| `tesSUCCESS` | 検証済みレジャーに含まれる場合は確定 | -| すべての`tec`コード | 検証済みレジャーに含まれる場合は確定 | -| すべての`tem`コード | 確定(トランザクションが有効になるようにプロトコルが変更される場合を除く) | -| `tefPAST_SEQ` | 検証済みレジャーに同じシーケンス番号の別のトランザクションが含まれている場合は確定 | -| `tefMAX_LEDGER` | 検証済みレジャーにトランザクションの`LastLedgerSequence`フィールドよりも大きいシーケンス番号があり、検証済みレジャーにそのトランザクションが含まれていない場合は確定 | - -他のトランザクション結果は確定でない可能性があります。その場合、トランザクションはその後に成功または失敗する可能性があります(特に、条件の変更によってトランザクションの適用を妨げる原因がなくなった場合)。例えば、まだ存在していないアカウントにXRP以外の通貨を送信しようとしても失敗しますが、別のトランザクションで送信先アカウントを作成するのに十分なXRPを送信すれば成功します。サーバーは、一時的に失敗した署名付きのトランザクションを保存してから、事前に確認せずに後でそれを正常に適用する場合があります。 +# 結果のファイナリティー + +トランザクションがコンセンサスレジャーに適用される順序は、レジャーがクローズされ、そのトランザクションセットがコンセンサスプロセスによって承認されるまで最終的なものではありません。最初に成功したトランザクションはその後で失敗する可能性があり、最初に失敗したトランザクションはその後で成功する可能性があります。さらに、あるラウンドでコンセンサスプロセスによって拒否されたトランザクションは、後のラウンドでコンセンサスに達する可能性があります。 + +検証済みレジャーには、失敗したトランザクション (`tec`結果コード)だけでなく、成功したトランザクション(`tes`結果コード)も含まれる可能性があります。それ以外の結果のトランザクションはレジャーに含まれません。 + +結果コードがそれ以外の場合は、結果が最終的なものかどうかを判断するのは困難です。次の表は、トランザクションの結果がいつ確定するかをまとめたものです。この内容は、トランザクション送信からの結果コードに基づいています。 + +| エラーコード | ファイナリティー | +|:----------------|:-----------------------------------------------------------| +| `tesSUCCESS` | 検証済みレジャーに含まれる場合は確定 | +| すべての`tec`コード | 検証済みレジャーに含まれる場合は確定 | +| すべての`tem`コード | 確定(トランザクションが有効になるようにプロトコルが変更される場合を除く) | +| `tefPAST_SEQ` | 検証済みレジャーに同じシーケンス番号の別のトランザクションが含まれている場合は確定 | +| `tefMAX_LEDGER` | 検証済みレジャーにトランザクションの`LastLedgerSequence`フィールドよりも大きいシーケンス番号があり、検証済みレジャーにそのトランザクションが含まれていない場合は確定 | + +他のトランザクション結果は確定でない可能性があります。その場合、トランザクションはその後に成功または失敗する可能性があります(特に、条件の変更によってトランザクションの適用を妨げる原因がなくなった場合)。例えば、まだ存在していないアカウントにXRP以外の通貨を送信しようとしても失敗しますが、別のトランザクションで送信先アカウントを作成するのに十分なXRPを送信すれば成功します。サーバーは、一時的に失敗した署名付きのトランザクションを保存してから、事前に確認せずに後でそれを正常に適用する場合があります。 diff --git a/content/concepts/payment-system-basics/transaction-basics/transaction-basics.ja.md b/content/concepts/payment-system-basics/transaction-basics/transaction-basics.ja.md index 057e4578d6..3299382f3f 100644 --- a/content/concepts/payment-system-basics/transaction-basics/transaction-basics.ja.md +++ b/content/concepts/payment-system-basics/transaction-basics/transaction-basics.ja.md @@ -1,195 +1,195 @@ -# 取引の基本 - - _取引(トランザクション)_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](consensus.html)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types.html)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションであっても、スパム対策の[トランザクションコスト][]を支払のためXRPの残高が変わるため、レジャーに記録されます。 - - -### トランザクションの識別 - -署名付きトランザクションには、それを識別する固有の`"hash"`があります。トランザクションを送信すると、サーバーの応答でハッシュが返されます。[account_txコマンド](account_tx.html)を使用して、アカウントのトランザクション履歴でトランザクションを検索することもできます。 - -だれでも最終的なステータスを確認として[ハッシュによってトランザクションを調べる](look-up-transaction-results.html)ことができるため、トランザクションハッシュは「支払いの証明」として使用することができます。 - - -## 請求コストの正当化 - -失敗したトランザクションに対しても[トランザクションコスト](transaction-cost.html)が発生するのは不公平に思えるかもしれませんが、正当な理由から`tec`クラスのエラーが存在します。 - -* 失敗したトランザクションの後に送信するトランザクションでは、シーケンス値の番号を変更する必要はありません。失敗したトランザクションをレジャーに組み込むと、トランザクションのシーケンス番号が順に使われ予想される順序が保持されます。 -* ネットワーク全体にトランザクションを拡散されられると、ネットワークの負荷が増大します。トランザクションコストを強制することにより、攻撃者が失敗したトランザクションでネットワークを乱用することが難しくなります。 -* トランザクションコストは実際には非常に少額であるため、大量のトランザクションを送信している場合を除き、ユーザーに害を及ぼすことはありません。 - - -## 取引の承認 - -分散型XRP Ledgerでは、デジタル署名によって、トランザクションが一定のアクションを起こすが承認されていることが証明されます。署名されたトランザクションのみがネットワークに送信され、有効なレジャーに含まれます。署名付きトランザクションは不変です。その内容は変更できず、他のトランザクションでこの署名を使用することはできません。 - -トランザクションは、次のいずれかの署名によって承認できます。 - -* 送信元アドレスと数学的に関連付けられている、マスター秘密鍵による単一の署名。[AccountSetトランザクション][]を使用して、マスターキーペアを無効または有効にできます。 -* アドレスに関連付けられているレギュラー秘密鍵と一致する単一の署名。[SetRegularKeyトランザクション][]を使用して、レギュラーキーペアを追加、削除、または置き換えることができます。 -* アドレスが所有する署名者のリストと一致する[マルチ署名](multi-signing.html)。[SignerListSetトランザクション][]を使用して、署名者のリストを追加、削除、または置換することができます。 - -署名の種類に関係なく、あらゆるタイプのトランザクションを承認できます。ただし、次の例外があります。 - -* マスター秘密鍵だけが[マスター公開鍵](accountset.html)を無効にできます。 -* マスター秘密鍵だけが[凍結機能を永続的に放棄](freezes.html#no-freeze)できます。 -* アドレスからトランザクションに署名する最後の方法を削除することはできません。 - -マスターキーとレギュラーキーペアについて詳しくは、[暗号鍵](cryptographic-keys.html)を参照してください。 - - - - -## トランザクションへの署名とトランザクションの送信 - -XRP Ledgerにトランザクションを送信するには、いくつかの手順を実行する必要があります。 - -1. [未署名のトランザクションをJSON形式](#未署名のトランザクションの例)で作成します。 -2. 1つ以上の署名を使用して[トランザクションを承認](#取引の承認)します。 -3. `rippled`サーバーにトランザクションを送信します。トランザクションが適切に作成されている場合、サーバーはそのトランザクションを現行バージョンのレジャーに暫定的に適用し、そのトランザクションをピアツーピアネットワークの他のメンバーに中継します。 -4. [コンセンサスプロセス](consensus.html)によって、次の検証済みレジャーに含まれる暫定的なトランザクションが決定されます。 -5. `rippled`サーバーはそれらのトランザクションを正規順序で前のレジャーに適用し、それらの結果を共有します。 -6. 十分に[信頼できるバリデータ](rippled-server-modes.html#バリデータを運用する理由) がまったく同じレジャーを作成した場合、そのレジャーは _検証済み_ であると宣言され、そのレジャーの[トランザクションの結果](transaction-results.html)は不変となります。 - -XRP決済の送信に関する対話型チュートリアルについては、[Send XRP](send-xrp.html)を参照してください。 - - -### 未署名のトランザクションの例 - -JSON形式の未署名の[Paymentトランザクション][]の例を次に示します。 - -``` -{ - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - }, - "Fee": "12", - "Flags": 2147483648, - "Sequence": 2, -} -``` - -XRP Ledgerは、トランザクションオブジェクトが送信元アドレス(`Account`内)フィールドによって承認されている場合にのみ、トランザクションを中継して実行します。単一の署名によってのみ承認されたトランザクションの場合、2つの選択肢があります。 - -1. バイナリーブロブに変換してオフラインで署名します。これが望ましい方法です。トランザクションの署名に使用されたアカウントの機密情報がネットワーク接続を介して送信されないことを意味するためです。 - * オフライン署名には[RippleAPI](rippleapi-reference.html#sign)を使用できます。 -2. `rippled`サーバーにトランザクションの署名を依頼します。[signコマンド](sign.html)はJSON形式のトランザクションと機密情報を受け取り、送信可能な署名付きバイナリートランザクション形式を返します。(アカウントの機密情報を送信するのは危険です。そのため、信頼できる暗号化された接続内か、またはローカル接続経由で、自分が管理しているサーバーのみに送信するようにしてください。) - * ショートカットとして、`tx_json`オブジェクトを指定した[submitコマンド](submit.html)を使用してトランザクションへの署名とトランザクションの送信を同時に実行できます。これはテストと開発の目的の場合にのみ推奨されます。 - -## 署名付きトランザクションブロブの例 - -トランザクションに署名すると、ネットワークに送信できるバイナリーブロブが生成されます。この場合、`rippled`の[submitコマンド](submit.html)を使用します。署名付きブロブと同じトランザクションの例を示します。このトランザクションは、WebSocket APIを使用して送信されています。 - -``` -{ - "id": 2, - "command": "submit", - "tx_blob" : "120000240000000461D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000F732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74483046022100982064CDD3F052D22788DB30B52EEA8956A32A51375E72274E417328EBA31E480221008F522C9DB4B0F31E695AA013843958A10DE8F6BA7D6759BEE645F71A7EB240BE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" -} -``` - -## メタデータを含む実行済みトランザクションの例 - -トランザクションが送信されたら、APIを使用して(例えば、[txコマンド](tx.html)を使用して)トランザクションのステータスを確認できます。これにより、トランザクションの指示、その結果、およびそれを実行する過程で行われたすべての変更の[メタデータ](transaction-metadata.html) が表示されます。 - -**注意:** トランザクションが結果コード`tesSUCCESS`で**検証済み**のレジャーに表示されない限り、トランザクションの成功は最終的なものではありません。関連項目:[結果のファイナリティー](finality-of-results.html) - -`tx`コマンドの応答の例: - -``` -{ - "id": 6, - "status": "success", - "type": "response", - "result": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 2, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "Payment", - "TxnSignature": "3045022100D64A32A506B86E880480CCB846EFA3F9665C9B11FDCA35D7124F53C486CC1D0402206EC8663308D91C928D1FDA498C3A2F8DD105211B9D90F4ECFD75172BAE733340", - "date": 455224610, - "hash": "33EA42FC7A06F062A7B843AF4DC7C0AB00D6644DFDF4C5D354A87C035813D321", - "inLedger": 7013674, - "ledger_index": 7013674, - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Balance": "99999980", - "Flags": 0, - "OwnerCount": 0, - "Sequence": 3 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", - "PreviousFields": { - "Balance": "99999990", - "Sequence": 2 - }, - "PreviousTxnID": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E", - "PreviousTxnLgrSeq": 6979192 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "2" - }, - "Flags": 65536, - "HighLimit": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "0" - }, - "HighNode": "0000000000000000", - "LowLimit": { - "currency": "USD", - "issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "value": "100" - }, - "LowNode": "0000000000000000" - }, - "LedgerEntryType": "RippleState", - "LedgerIndex": "96D2F43BA7AE7193EC59E5E7DDB26A9D786AB1F7C580E030E7D2FF5233DA01E9", - "PreviousFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "1" - } - }, - "PreviousTxnID": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E", - "PreviousTxnLgrSeq": 6979192 - } - } - ], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" - }, - "validated": true - } -} -``` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 取引の基本 + + _取引(トランザクション)_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](consensus.html)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types.html)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションであっても、スパム対策の[トランザクションコスト][]を支払のためXRPの残高が変わるため、レジャーに記録されます。 + + +### トランザクションの識別 + +署名付きトランザクションには、それを識別する固有の`"hash"`があります。トランザクションを送信すると、サーバーの応答でハッシュが返されます。[account_txコマンド](account_tx.html)を使用して、アカウントのトランザクション履歴でトランザクションを検索することもできます。 + +だれでも最終的なステータスを確認として[ハッシュによってトランザクションを調べる](look-up-transaction-results.html)ことができるため、トランザクションハッシュは「支払いの証明」として使用することができます。 + + +## 請求コストの正当化 + +失敗したトランザクションに対しても[トランザクションコスト](transaction-cost.html)が発生するのは不公平に思えるかもしれませんが、正当な理由から`tec`クラスのエラーが存在します。 + +* 失敗したトランザクションの後に送信するトランザクションでは、シーケンス値の番号を変更する必要はありません。失敗したトランザクションをレジャーに組み込むと、トランザクションのシーケンス番号が順に使われ予想される順序が保持されます。 +* ネットワーク全体にトランザクションを拡散されられると、ネットワークの負荷が増大します。トランザクションコストを強制することにより、攻撃者が失敗したトランザクションでネットワークを乱用することが難しくなります。 +* トランザクションコストは実際には非常に少額であるため、大量のトランザクションを送信している場合を除き、ユーザーに害を及ぼすことはありません。 + + +## 取引の承認 + +分散型XRP Ledgerでは、デジタル署名によって、トランザクションが一定のアクションを起こすが承認されていることが証明されます。署名されたトランザクションのみがネットワークに送信され、有効なレジャーに含まれます。署名付きトランザクションは不変です。その内容は変更できず、他のトランザクションでこの署名を使用することはできません。 + +トランザクションは、次のいずれかの署名によって承認できます。 + +* 送信元アドレスと数学的に関連付けられている、マスター秘密鍵による単一の署名。[AccountSetトランザクション][]を使用して、マスターキーペアを無効または有効にできます。 +* アドレスに関連付けられているレギュラー秘密鍵と一致する単一の署名。[SetRegularKeyトランザクション][]を使用して、レギュラーキーペアを追加、削除、または置き換えることができます。 +* アドレスが所有する署名者のリストと一致する[マルチ署名](multi-signing.html)。[SignerListSetトランザクション][]を使用して、署名者のリストを追加、削除、または置換することができます。 + +署名の種類に関係なく、あらゆるタイプのトランザクションを承認できます。ただし、次の例外があります。 + +* マスター秘密鍵だけが[マスター公開鍵](accountset.html)を無効にできます。 +* マスター秘密鍵だけが[凍結機能を永続的に放棄](freezes.html#no-freeze)できます。 +* アドレスからトランザクションに署名する最後の方法を削除することはできません。 + +マスターキーとレギュラーキーペアについて詳しくは、[暗号鍵](cryptographic-keys.html)を参照してください。 + + + + +## トランザクションへの署名とトランザクションの送信 + +XRP Ledgerにトランザクションを送信するには、いくつかの手順を実行する必要があります。 + +1. [未署名のトランザクションをJSON形式](#未署名のトランザクションの例)で作成します。 +2. 1つ以上の署名を使用して[トランザクションを承認](#取引の承認)します。 +3. `rippled`サーバーにトランザクションを送信します。トランザクションが適切に作成されている場合、サーバーはそのトランザクションを現行バージョンのレジャーに暫定的に適用し、そのトランザクションをピアツーピアネットワークの他のメンバーに中継します。 +4. [コンセンサスプロセス](consensus.html)によって、次の検証済みレジャーに含まれる暫定的なトランザクションが決定されます。 +5. `rippled`サーバーはそれらのトランザクションを正規順序で前のレジャーに適用し、それらの結果を共有します。 +6. 十分に[信頼できるバリデータ](rippled-server-modes.html#バリデータを運用する理由) がまったく同じレジャーを作成した場合、そのレジャーは _検証済み_ であると宣言され、そのレジャーの[トランザクションの結果](transaction-results.html)は不変となります。 + +XRP決済の送信に関する対話型チュートリアルについては、[Send XRP](send-xrp.html)を参照してください。 + + +### 未署名のトランザクションの例 + +JSON形式の未署名の[Paymentトランザクション][]の例を次に示します。 + +``` +{ + "TransactionType" : "Payment", + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + }, + "Fee": "12", + "Flags": 2147483648, + "Sequence": 2, +} +``` + +XRP Ledgerは、トランザクションオブジェクトが送信元アドレス(`Account`内)フィールドによって承認されている場合にのみ、トランザクションを中継して実行します。単一の署名によってのみ承認されたトランザクションの場合、2つの選択肢があります。 + +1. バイナリーブロブに変換してオフラインで署名します。これが望ましい方法です。トランザクションの署名に使用されたアカウントの機密情報がネットワーク接続を介して送信されないことを意味するためです。 + * オフライン署名には[RippleAPI](rippleapi-reference.html#sign)を使用できます。 +2. `rippled`サーバーにトランザクションの署名を依頼します。[signコマンド](sign.html)はJSON形式のトランザクションと機密情報を受け取り、送信可能な署名付きバイナリートランザクション形式を返します。(アカウントの機密情報を送信するのは危険です。そのため、信頼できる暗号化された接続内か、またはローカル接続経由で、自分が管理しているサーバーのみに送信するようにしてください。) + * ショートカットとして、`tx_json`オブジェクトを指定した[submitコマンド](submit.html)を使用してトランザクションへの署名とトランザクションの送信を同時に実行できます。これはテストと開発の目的の場合にのみ推奨されます。 + +## 署名付きトランザクションブロブの例 + +トランザクションに署名すると、ネットワークに送信できるバイナリーブロブが生成されます。この場合、`rippled`の[submitコマンド](submit.html)を使用します。署名付きブロブと同じトランザクションの例を示します。このトランザクションは、WebSocket APIを使用して送信されています。 + +``` +{ + "id": 2, + "command": "submit", + "tx_blob" : "120000240000000461D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000F732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74483046022100982064CDD3F052D22788DB30B52EEA8956A32A51375E72274E417328EBA31E480221008F522C9DB4B0F31E695AA013843958A10DE8F6BA7D6759BEE645F71A7EB240BE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" +} +``` + +## メタデータを含む実行済みトランザクションの例 + +トランザクションが送信されたら、APIを使用して(例えば、[txコマンド](tx.html)を使用して)トランザクションのステータスを確認できます。これにより、トランザクションの指示、その結果、およびそれを実行する過程で行われたすべての変更の[メタデータ](transaction-metadata.html) が表示されます。 + +**注意:** トランザクションが結果コード`tesSUCCESS`で**検証済み**のレジャーに表示されない限り、トランザクションの成功は最終的なものではありません。関連項目:[結果のファイナリティー](finality-of-results.html) + +`tx`コマンドの応答の例: + +``` +{ + "id": 6, + "status": "success", + "type": "response", + "result": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 2, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "Payment", + "TxnSignature": "3045022100D64A32A506B86E880480CCB846EFA3F9665C9B11FDCA35D7124F53C486CC1D0402206EC8663308D91C928D1FDA498C3A2F8DD105211B9D90F4ECFD75172BAE733340", + "date": 455224610, + "hash": "33EA42FC7A06F062A7B843AF4DC7C0AB00D6644DFDF4C5D354A87C035813D321", + "inLedger": 7013674, + "ledger_index": 7013674, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Balance": "99999980", + "Flags": 0, + "OwnerCount": 0, + "Sequence": 3 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", + "PreviousFields": { + "Balance": "99999990", + "Sequence": 2 + }, + "PreviousTxnID": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E", + "PreviousTxnLgrSeq": 6979192 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "2" + }, + "Flags": 65536, + "HighLimit": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "0" + }, + "HighNode": "0000000000000000", + "LowLimit": { + "currency": "USD", + "issuer": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "value": "100" + }, + "LowNode": "0000000000000000" + }, + "LedgerEntryType": "RippleState", + "LedgerIndex": "96D2F43BA7AE7193EC59E5E7DDB26A9D786AB1F7C580E030E7D2FF5233DA01E9", + "PreviousFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "1" + } + }, + "PreviousTxnID": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E", + "PreviousTxnLgrSeq": 6979192 + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "validated": true + } +} +``` + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-system-basics/transaction-basics/transaction-cost.ja.md b/content/concepts/payment-system-basics/transaction-basics/transaction-cost.ja.md index ca1f2540d3..a2ad96eb15 100644 --- a/content/concepts/payment-system-basics/transaction-basics/transaction-cost.ja.md +++ b/content/concepts/payment-system-basics/transaction-basics/transaction-cost.ja.md @@ -1,157 +1,157 @@ -# トランザクションコスト - -XRP LedgerをスパムやDoS攻撃から守るため、各トランザクションでは少額の[XRP](https://ripple.com/xrp-portal/)が消却されます。この _トランザクションコスト_ はネットワークの負荷とともに増加するように設計されており、故意または不注意にネットワークに過剰な負荷をかけると非常に高くつきます。 - -各トランザクションのトランザクションコストを支払う際には、[消却するXRPの額を指定](#トランザクションコストの指定)する必要があります。 - - -## 現在のトランザクションコスト - -ネットワークが標準のトランザクションに必要とする現在の最低トランザクションコストは**0.00001 XRP**(10 drop)です。これは負荷が通常より高くなると増加することがあります。 - -また、[現在のトランザクションコストについて`rippled`に問い合わせる](#トランザクションコストの問い合わせ)こともできます。 - -### 特別なトランザクションコスト - -一部のトランザクションには異なるトランザクションコストがあります。 - -| トランザクション | 負荷スケーリング前のコスト | -|-----------------------|--------------------------| -| [Referenceトランザクション](#referenceトランザクションコスト)(ほとんどのトランザクション) | 10 drop | -| [Key Resetトランザクション](#key-resetトランザクション) | 0 | -| [マルチ署名済みトランザクション](multi-signing.html) | 10 drop × (1 + 署名の数) | -| [フルフィルメントを伴うEscrowFinishトランザクション](escrowfinish.html) | 10 drop × (33 + (バイト単位のフルフィルメントサイズ ÷ 16)) | - - -## トランザクションコストの受取人 - -トランザクションコストは誰かに支払われるものではありません。XRPは取り消し不能で消却されます。XRPを新たに作ることはできないため、XRPの希少性が高まり、XRPの価値を高めることによって、すべてのXRP保有者に利益がもたらされます。 - - -## 負荷コストとオープンレジャーコスト - -[FeeEscalation Amendment][]が有効な場合、トランザクションコストには以下の2つのしきい値があります。 - -* トランザクションコストが`rippled`サーバーの[負荷ベーストランザクションコストのしきい値](#ローカル負荷コスト)を満たしていない場合、サーバーはそのトランザクションを完全に無視します。(このロジックはAmendmentの有無にかかわらず基本的に変わりません。) -* トランザクションコストが`rippled`サーバーの[オープンレジャーコストのしきい値](#オープンレジャーコスト)を満たしていない場合、サーバーはそのトランザクションを後のレジャーのキューに入れます。 - -これによってトランザクションは大まかに以下の3つのカテゴリーに分けられます。 - -* トランザクションコストが低く設定され、負荷ベーストランザクションコストによって拒否されるトランザクション。 -* トランザクションコストが高く設定され、現在のオープンレジャーに組み入れられるトランザクション。 -* その中間のトランザクション。[後のレジャーバージョンのキューに入れられます](#キューに入れられたトランザクション)。 - - -## ローカル負荷コスト - -各`rippled`サーバーには、現在の負荷に基づいてコストしきい値が保持されています。送信するトランザクションの`Fee`値が`rippled`サーバーの現在の負荷ベーストランザクションコストより低い場合、そのサーバーはトランザクションの適用も中継もしません。(**注記:** [管理者接続](get-started-with-the-rippled-api.html)を介してトランザクションを送信する場合、トランザクションがスケーリングされていない最低トランザクションコストを満たすかぎり、サーバーはそのトランザクションを適用し、中継します。)トランザクションの`Fee`値が大半のサーバーの要件を満たさないかぎり、そのトランザクションが[コンセンサスプロセス](https://ripple.com/build/ripple-ledger-consensus-process/)を完了する可能性は極めて低くなります。 - -## オープンレジャーコスト - -`rippled`サーバーにはトランザクションコストを強制する2つ目のメカニズムがあり、 _オープンレジャーコスト_ と呼ばれます。トランザクションがXRPによるオープンレジャーコスト要件を満たす場合のみ、そのトランザクションをオープンレジャーに含めることができます。オープンレジャーコスト要件を満たさないトランザクションは、[次のレジャーのキューに入れられます](#キューに入れられたトランザクション)。 - -新しいレジャーバージョンごとに、サーバーは前のレジャーのトランザクション数に基づいてオープンレジャーに含めるトランザクション数のソフトリミットを選択します。オープンレジャーコストは、オープンレジャー内のトランザクション数がソフトリミットと等しくなるまでは、スケーリングされていない最低トランザクションコストと同じです。それを超えると、オープンレジャーコストはオープンレジャーに含まれるトランザクションごとに急激に増加します。次のレジャーでは、現行のレジャーにソフトリミットを超えるトランザクションが含まれていれば、サーバーはソフトリミットを高くし、コンセンサスプロセスに5秒より時間が掛かる場合はソフトリミットを低くします。 - -オープンレジャーコストの水準は、絶対的なトランザクションコストではなく[標準的なトランザクションコストに比例](#手数料レベル)しています。標準よりも高い要件を持つトランザクションタイプ([マルチ署名済みトランザクション](multi-signing.html)など)は、オープンレジャーコストを満たすために最低限のトランザクションコスト要件を持つトランザクションよりも多く支払う必要があります。 - -関連項目: [`rippled`リポジトリー内のFee Escalationの説明](https://github.com/ripple/rippled/blob/release/src/ripple/app/misc/FeeEscalation.md)。 - -### キューに入れられたトランザクション - -`rippled`が、サーバーのローカル負荷コストは満たすが[オープンレジャーコスト](#オープンレジャーコスト)は満たさないトランザクションを受け取った場合、サーバーはそのトランザクションが後のレジャーに「含まれる可能性」を判断します。その可能性が高いと判断すれば、サーバーはそのトランザクションをトランザクションキューに追加し、他のネットワークメンバーにトランザクションを中継します。そうでない場合、サーバーはトランザクションを破棄します。[トランザクションコストは検証済みレジャーに含まれるトランザクションにのみ適用される](#transaction-costs-and-failed-transactions)ため、サーバーは、トランザクションコストを支払わないトランザクションにより生じるネットワーク負荷量を最低限に抑えようとします。 - -キューに入れられたトランザクションの詳細は、[トランザクションキュー](transaction-queue.html)を参照してください。 - -## Referenceトランザクションコスト - -「Referenceトランザクション」とは、負荷スケーリング前の[トランザクションコスト](transaction-cost.html)という観点からは、最も安価な(無料ではない)トランザクションと言えます。ほとんどのトランザクションのコストはReferenceトランザクションと同じです。[マルチ署名済みトランザクション](multi-signing.html)など一部のトランザクションでは、このコストの数倍のコストが必要です。オープンレジャーコストが上昇する場合は、コスト水準はトランザクションの基本コストに比例します。 - -### 手数料レベル - - _手数料レベル_ は、トランザクションの最少コストと実際のコストとの相対的な差を表します。[オープンレジャーコスト](#オープンレジャーコスト)は絶対的なコストではなく手数料レベルで評価されます。比較する場合は以下の表を参照してください。 - -| トランザクション | drop単位の最少コスト | 手数料レベルでの最少コスト | drop単位で倍のコスト | 手数料レベルで倍のコスト | -|-------------|-----------------------|----------------------------|----------------------|---------------------------| -| Referenceトランザクション(ほとんどのトランザクション) | 10 | 256 | 20 | 512 | -| 4つの署名を持つ[マルチ署名済みトランザクション](multi-signing.html) | 50 | 256 | 100 | 512 | -| [Key Resetトランザクション](transaction-cost.html#key-resetトランザクション) | 0 | (事実上無限) | なし | (事実上無限) | -| 32バイトのプリイメージ付きの[EscrowFinishトランザクション](escrowfinish.html)。 | 350 | 256 | 700 | 512 | - - -## トランザクションコストの問い合わせ - -`rippled` APIには、ローカル負荷ベースのトランザクションコストを問い合わせる方法が2つあります。`server_info`コマンド(人を対象とする)と`server_state`コマンド(マシンを対象とする)です。 - -[FeeEscalation Amendment][]が有効である場合、[feeメソッド][]を使用してオープンレジャーコストを確認することができます。 - -### server_info - -[server_infoメソッド][]は、`validated_ledger.base_fee_xrp`と同様に、前のレジャー時点のスケーリングされていない最低XRPコストを10進XRPの形式でレポートします。トランザクションを中継するために必要な実際のコストをスケーリングするには、その`base_fee_xrp`値に同じ応答内の`load_factor`パラメーターを掛けます。このパラメーターは、サーバーの現在の負荷レベルを表します。つまり、次の式になります。 - -**XRP単位の現在のトランザクションコスト = `base_fee_xrp` × `load_factor`** - - -### server_state - -[server_stateメソッド][]は、`rippled`の内部負荷計算の内容をそのままの表示形式で返します。この場合、有効負荷率は`load_base`に対する`load_factor` の割合です。`validated_ledger.base_fee`パラメーターは、[XRPのdrop](basic-data-types.html#通貨額の指定)単位の最低トランザクションコストをレポートします。この設計により、`rippled`では整数のみでトランザクションコストの計算ができ、サーバー負荷の微調整も十分に行えます。実際のトランザクションコストの計算は以下のようになります。 - -**drop単位の現在のトランザクションコスト = (`base_fee` × `load_factor`) ÷ `load_base`** - - - -## トランザクションコストの指定 - -署名されたすべてのトランザクションの[`Fee`フィールド](transaction-common-fields.html)には、トランザクションコストを含める必要があります。署名されたトランザクションのすべてのフィールドと同様に、このフィールドは署名の無効化を行わなければ変更できません。 - -通常、XRP Ledgerはトランザクションを署名された _とおりに_ 実行します。(少なくとも、分散型コンセンサスネットワーク全体をコーディネートしてそれ以外のことを実行するのは難しいと思われます。)したがって、`Fee`フィールドに指定されたXRPの額が、ネットワーク内で指定されているどの現在の最低トランザクションコストをもはるかに上回っていたとしても、指定したとおりのXRPがすべてのトランザクションで消却されます。トランザクションコストでは、アカウントの[準備金](reserves.html)用に確保していたXRPも消却される場合があります。 - -トランザクションに署名する前に、[現在の負荷ベースのトランザクションコストを調べる](#トランザクションコストの問い合わせ)ことをお勧めします。負荷スケーリングが原因でトランザクションコストが高い場合は、低下するまで待つことができます。トランザクションをすぐに送信するつもりがない場合は、トランザクションコストにおける将来の負荷ベースの変動を考慮して、少し高めのトランザクションコストを指定することをお勧めします。 - - -### トランザクションコストの自動指定 - -オンラインでトランザクションに署名する場合は、`Fee`フィールドを省略できます。この場合、`rippled`または[RippleAPI](rippleapi-reference.html)が現在の要件に照らしてピアツーピアネットワークの状態を確認し、トランザクションに署名する前に`Fee`値を追加します。ただし、このようなトランザクションコストへの自動入力にはいくつかの欠点と制限事項があります。 - -* トランザクションに署名し、分散するまでの間にネットワークのトランザクションコストが上昇した場合、そのトランザクションは承認されない場合があります。 - * 最悪の場合、トランザクションに`LastLedgerSequence`パラメーターが含まれているか、同じ`Sequence`番号を使用する新しいトランザクションによってそのトランザクションがキャンセルされない限り、トランザクションは明確に承認も拒否もされない状態のままとなってしまいます。ベストプラクティスについては、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 -* 署名するトランザクションの`Fee`フィールドの正確な値は事前にわかりません。 - * `rippled`を使用している場合は、[signメソッド][]の`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、署名しようとしている負荷スケーリングに制限を設定することもできます。 -* オフラインのマシンから現在のトランザクションコストを調べることはできません。 -* [マルチ署名](multi-signing.html)の場合、トランザクションコストの自動指定は行えません。 - - - -## トランザクションコストと失敗したトランザクション - -トランザクションコストの目的はXRP Ledgerピアツーピアネットワークを過度な負荷から保護することであるため、トランザクションが成功するかどうかにかかわらず、ネットワークに分散されるすべてのトランザクションにコストが適用されます。ただし、共有のグローバルレジャーに作用するため、トランザクションを検証済みレジャーに含める必要があります。したがって、`rippled`サーバーは[`tec`ステータスコード](transaction-results.html)(「tec」は「トランザクションエンジン - 請求手数料のみ」(Transaction Engine - Claimed fee only)を表します)で、失敗したトランザクションをレジャーに含めようとします。 - -トランザクションコストは、トランザクションが実際に検証済みレジャーに含められた場合に、送信者のXRP残高から差し引かれるだけです。このことは、トランザクションが成功するか`tec`コードとともに失敗するかにかかわらず適用されます。 - -トランザクションの失敗が[確定](finality-of-results.html)である場合、`rippled`サーバーによるネットワークへの中継は行われません。トランザクションは検証済みレジャーに含まれないため、誰のXRP残高にも影響することはありません。 - -### 不十分なXRP - -`rippled`サーバーが最初にトランザクションを評価するとき、送信側アカウントにXRPトランザクションコストを支払うのに十分なXRP残高がない場合は、エラーコード`terINSUF_FEE_B`にてトランザクションを拒否します。これは`ter`(再試行)コードであるため、トランザクションの結果が[確定](finality-of-results.html)になるまで、`rippled`サーバーはネットワークへの中継を行わずにトランザクションを再試行します。 - -トランザクションはすでにネットワークに配信されているけれども、アカウントにトランザクションコストを支払うのに十分なXRPがない場合は、結果コード`tecINSUFF_FEE`が発生します。この場合、アカウントからは可能なかぎりすべてのXRPが支払われるため、最終的に0 XRPになります。これは、`rippled` がトランザクションをネットワークに中継するかどうかを進行中のレジャーに基づいて判断するために起こります。しかしコンセンサスレジャーを作成するときにトランザクションは破棄されるか並べ替えられることになります。 - - -## Key Resetトランザクション - -特殊なケースですが、アカウントの[lsfPasswordSpentフラグ](accountroot.html)が無効であるかぎり、そのアカウントはトランザクションコスト`0`で[SetRegularKey](setregularkey.html)トランザクションを送信できます。このトランザクションにはアカウントの _マスターキーペア_ による署名が必要です。このトランザクションを送信すると、lsfPasswordSpentフラグが有効になります。 - -この機能は、レギュラーキーが危害を受けた場合に、危害を受けたアカウントに使用可能なXRPがあるかどうかを気にすることなく、そのアカウントを復元できるように設計されています。このようにして、追加のXRPを送信する前にそのアカウントを再び管理できるようになります。 - -[lsfPasswordSpentフラグ](accountroot.html)は無効になります。このフラグを有効にするには、マスターキーペアによって署名されたSetRegularKeyトランザクションを送信します。アカウントでXRPの[支払い](payment.html)が受け入れた場合、再び無効になります。 - -[FeeEscalation Amendment][]が有効な場合、Key Resetトランザクションの名目トランザクションコストがゼロであっても、`rippled`は他のトランザクションよりもKey Resetトランザクションを優先します。 - - -## トランザクションコストの変更 - -XRP Ledgerは、XRPの価値が長期的に変化することを見越して、最低トランザクションコストを変更するしくみを備えています。変更はすべて、コンセンサスプロセスによる承認が必要です。詳細は、[手数料の投票](fee-voting.html)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トランザクションコスト + +XRP LedgerをスパムやDoS攻撃から守るため、各トランザクションでは少額の[XRP](https://ripple.com/xrp-portal/)が消却されます。この _トランザクションコスト_ はネットワークの負荷とともに増加するように設計されており、故意または不注意にネットワークに過剰な負荷をかけると非常に高くつきます。 + +各トランザクションのトランザクションコストを支払う際には、[消却するXRPの額を指定](#トランザクションコストの指定)する必要があります。 + + +## 現在のトランザクションコスト + +ネットワークが標準のトランザクションに必要とする現在の最低トランザクションコストは**0.00001 XRP**(10 drop)です。これは負荷が通常より高くなると増加することがあります。 + +また、[現在のトランザクションコストについて`rippled`に問い合わせる](#トランザクションコストの問い合わせ)こともできます。 + +### 特別なトランザクションコスト + +一部のトランザクションには異なるトランザクションコストがあります。 + +| トランザクション | 負荷スケーリング前のコスト | +|-----------------------|--------------------------| +| [Referenceトランザクション](#referenceトランザクションコスト)(ほとんどのトランザクション) | 10 drop | +| [Key Resetトランザクション](#key-resetトランザクション) | 0 | +| [マルチ署名済みトランザクション](multi-signing.html) | 10 drop × (1 + 署名の数) | +| [フルフィルメントを伴うEscrowFinishトランザクション](escrowfinish.html) | 10 drop × (33 + (バイト単位のフルフィルメントサイズ ÷ 16)) | + + +## トランザクションコストの受取人 + +トランザクションコストは誰かに支払われるものではありません。XRPは取り消し不能で消却されます。XRPを新たに作ることはできないため、XRPの希少性が高まり、XRPの価値を高めることによって、すべてのXRP保有者に利益がもたらされます。 + + +## 負荷コストとオープンレジャーコスト + +[FeeEscalation Amendment][]が有効な場合、トランザクションコストには以下の2つのしきい値があります。 + +* トランザクションコストが`rippled`サーバーの[負荷ベーストランザクションコストのしきい値](#ローカル負荷コスト)を満たしていない場合、サーバーはそのトランザクションを完全に無視します。(このロジックはAmendmentの有無にかかわらず基本的に変わりません。) +* トランザクションコストが`rippled`サーバーの[オープンレジャーコストのしきい値](#オープンレジャーコスト)を満たしていない場合、サーバーはそのトランザクションを後のレジャーのキューに入れます。 + +これによってトランザクションは大まかに以下の3つのカテゴリーに分けられます。 + +* トランザクションコストが低く設定され、負荷ベーストランザクションコストによって拒否されるトランザクション。 +* トランザクションコストが高く設定され、現在のオープンレジャーに組み入れられるトランザクション。 +* その中間のトランザクション。[後のレジャーバージョンのキューに入れられます](#キューに入れられたトランザクション)。 + + +## ローカル負荷コスト + +各`rippled`サーバーには、現在の負荷に基づいてコストしきい値が保持されています。送信するトランザクションの`Fee`値が`rippled`サーバーの現在の負荷ベーストランザクションコストより低い場合、そのサーバーはトランザクションの適用も中継もしません。(**注記:** [管理者接続](get-started-with-the-rippled-api.html)を介してトランザクションを送信する場合、トランザクションがスケーリングされていない最低トランザクションコストを満たすかぎり、サーバーはそのトランザクションを適用し、中継します。)トランザクションの`Fee`値が大半のサーバーの要件を満たさないかぎり、そのトランザクションが[コンセンサスプロセス](https://ripple.com/build/ripple-ledger-consensus-process/)を完了する可能性は極めて低くなります。 + +## オープンレジャーコスト + +`rippled`サーバーにはトランザクションコストを強制する2つ目のメカニズムがあり、 _オープンレジャーコスト_ と呼ばれます。トランザクションがXRPによるオープンレジャーコスト要件を満たす場合のみ、そのトランザクションをオープンレジャーに含めることができます。オープンレジャーコスト要件を満たさないトランザクションは、[次のレジャーのキューに入れられます](#キューに入れられたトランザクション)。 + +新しいレジャーバージョンごとに、サーバーは前のレジャーのトランザクション数に基づいてオープンレジャーに含めるトランザクション数のソフトリミットを選択します。オープンレジャーコストは、オープンレジャー内のトランザクション数がソフトリミットと等しくなるまでは、スケーリングされていない最低トランザクションコストと同じです。それを超えると、オープンレジャーコストはオープンレジャーに含まれるトランザクションごとに急激に増加します。次のレジャーでは、現行のレジャーにソフトリミットを超えるトランザクションが含まれていれば、サーバーはソフトリミットを高くし、コンセンサスプロセスに5秒より時間が掛かる場合はソフトリミットを低くします。 + +オープンレジャーコストの水準は、絶対的なトランザクションコストではなく[標準的なトランザクションコストに比例](#手数料レベル)しています。標準よりも高い要件を持つトランザクションタイプ([マルチ署名済みトランザクション](multi-signing.html)など)は、オープンレジャーコストを満たすために最低限のトランザクションコスト要件を持つトランザクションよりも多く支払う必要があります。 + +関連項目: [`rippled`リポジトリー内のFee Escalationの説明](https://github.com/ripple/rippled/blob/release/src/ripple/app/misc/FeeEscalation.md)。 + +### キューに入れられたトランザクション + +`rippled`が、サーバーのローカル負荷コストは満たすが[オープンレジャーコスト](#オープンレジャーコスト)は満たさないトランザクションを受け取った場合、サーバーはそのトランザクションが後のレジャーに「含まれる可能性」を判断します。その可能性が高いと判断すれば、サーバーはそのトランザクションをトランザクションキューに追加し、他のネットワークメンバーにトランザクションを中継します。そうでない場合、サーバーはトランザクションを破棄します。[トランザクションコストは検証済みレジャーに含まれるトランザクションにのみ適用される](#transaction-costs-and-failed-transactions)ため、サーバーは、トランザクションコストを支払わないトランザクションにより生じるネットワーク負荷量を最低限に抑えようとします。 + +キューに入れられたトランザクションの詳細は、[トランザクションキュー](transaction-queue.html)を参照してください。 + +## Referenceトランザクションコスト + +「Referenceトランザクション」とは、負荷スケーリング前の[トランザクションコスト](transaction-cost.html)という観点からは、最も安価な(無料ではない)トランザクションと言えます。ほとんどのトランザクションのコストはReferenceトランザクションと同じです。[マルチ署名済みトランザクション](multi-signing.html)など一部のトランザクションでは、このコストの数倍のコストが必要です。オープンレジャーコストが上昇する場合は、コスト水準はトランザクションの基本コストに比例します。 + +### 手数料レベル + + _手数料レベル_ は、トランザクションの最少コストと実際のコストとの相対的な差を表します。[オープンレジャーコスト](#オープンレジャーコスト)は絶対的なコストではなく手数料レベルで評価されます。比較する場合は以下の表を参照してください。 + +| トランザクション | drop単位の最少コスト | 手数料レベルでの最少コスト | drop単位で倍のコスト | 手数料レベルで倍のコスト | +|-------------|-----------------------|----------------------------|----------------------|---------------------------| +| Referenceトランザクション(ほとんどのトランザクション) | 10 | 256 | 20 | 512 | +| 4つの署名を持つ[マルチ署名済みトランザクション](multi-signing.html) | 50 | 256 | 100 | 512 | +| [Key Resetトランザクション](transaction-cost.html#key-resetトランザクション) | 0 | (事実上無限) | なし | (事実上無限) | +| 32バイトのプリイメージ付きの[EscrowFinishトランザクション](escrowfinish.html)。 | 350 | 256 | 700 | 512 | + + +## トランザクションコストの問い合わせ + +`rippled` APIには、ローカル負荷ベースのトランザクションコストを問い合わせる方法が2つあります。`server_info`コマンド(人を対象とする)と`server_state`コマンド(マシンを対象とする)です。 + +[FeeEscalation Amendment][]が有効である場合、[feeメソッド][]を使用してオープンレジャーコストを確認することができます。 + +### server_info + +[server_infoメソッド][]は、`validated_ledger.base_fee_xrp`と同様に、前のレジャー時点のスケーリングされていない最低XRPコストを10進XRPの形式でレポートします。トランザクションを中継するために必要な実際のコストをスケーリングするには、その`base_fee_xrp`値に同じ応答内の`load_factor`パラメーターを掛けます。このパラメーターは、サーバーの現在の負荷レベルを表します。つまり、次の式になります。 + +**XRP単位の現在のトランザクションコスト = `base_fee_xrp` × `load_factor`** + + +### server_state + +[server_stateメソッド][]は、`rippled`の内部負荷計算の内容をそのままの表示形式で返します。この場合、有効負荷率は`load_base`に対する`load_factor` の割合です。`validated_ledger.base_fee`パラメーターは、[XRPのdrop](basic-data-types.html#通貨額の指定)単位の最低トランザクションコストをレポートします。この設計により、`rippled`では整数のみでトランザクションコストの計算ができ、サーバー負荷の微調整も十分に行えます。実際のトランザクションコストの計算は以下のようになります。 + +**drop単位の現在のトランザクションコスト = (`base_fee` × `load_factor`) ÷ `load_base`** + + + +## トランザクションコストの指定 + +署名されたすべてのトランザクションの[`Fee`フィールド](transaction-common-fields.html)には、トランザクションコストを含める必要があります。署名されたトランザクションのすべてのフィールドと同様に、このフィールドは署名の無効化を行わなければ変更できません。 + +通常、XRP Ledgerはトランザクションを署名された _とおりに_ 実行します。(少なくとも、分散型コンセンサスネットワーク全体をコーディネートしてそれ以外のことを実行するのは難しいと思われます。)したがって、`Fee`フィールドに指定されたXRPの額が、ネットワーク内で指定されているどの現在の最低トランザクションコストをもはるかに上回っていたとしても、指定したとおりのXRPがすべてのトランザクションで消却されます。トランザクションコストでは、アカウントの[準備金](reserves.html)用に確保していたXRPも消却される場合があります。 + +トランザクションに署名する前に、[現在の負荷ベースのトランザクションコストを調べる](#トランザクションコストの問い合わせ)ことをお勧めします。負荷スケーリングが原因でトランザクションコストが高い場合は、低下するまで待つことができます。トランザクションをすぐに送信するつもりがない場合は、トランザクションコストにおける将来の負荷ベースの変動を考慮して、少し高めのトランザクションコストを指定することをお勧めします。 + + +### トランザクションコストの自動指定 + +オンラインでトランザクションに署名する場合は、`Fee`フィールドを省略できます。この場合、`rippled`または[RippleAPI](rippleapi-reference.html)が現在の要件に照らしてピアツーピアネットワークの状態を確認し、トランザクションに署名する前に`Fee`値を追加します。ただし、このようなトランザクションコストへの自動入力にはいくつかの欠点と制限事項があります。 + +* トランザクションに署名し、分散するまでの間にネットワークのトランザクションコストが上昇した場合、そのトランザクションは承認されない場合があります。 + * 最悪の場合、トランザクションに`LastLedgerSequence`パラメーターが含まれているか、同じ`Sequence`番号を使用する新しいトランザクションによってそのトランザクションがキャンセルされない限り、トランザクションは明確に承認も拒否もされない状態のままとなってしまいます。ベストプラクティスについては、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 +* 署名するトランザクションの`Fee`フィールドの正確な値は事前にわかりません。 + * `rippled`を使用している場合は、[signメソッド][]の`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、署名しようとしている負荷スケーリングに制限を設定することもできます。 +* オフラインのマシンから現在のトランザクションコストを調べることはできません。 +* [マルチ署名](multi-signing.html)の場合、トランザクションコストの自動指定は行えません。 + + + +## トランザクションコストと失敗したトランザクション + +トランザクションコストの目的はXRP Ledgerピアツーピアネットワークを過度な負荷から保護することであるため、トランザクションが成功するかどうかにかかわらず、ネットワークに分散されるすべてのトランザクションにコストが適用されます。ただし、共有のグローバルレジャーに作用するため、トランザクションを検証済みレジャーに含める必要があります。したがって、`rippled`サーバーは[`tec`ステータスコード](transaction-results.html)(「tec」は「トランザクションエンジン - 請求手数料のみ」(Transaction Engine - Claimed fee only)を表します)で、失敗したトランザクションをレジャーに含めようとします。 + +トランザクションコストは、トランザクションが実際に検証済みレジャーに含められた場合に、送信者のXRP残高から差し引かれるだけです。このことは、トランザクションが成功するか`tec`コードとともに失敗するかにかかわらず適用されます。 + +トランザクションの失敗が[確定](finality-of-results.html)である場合、`rippled`サーバーによるネットワークへの中継は行われません。トランザクションは検証済みレジャーに含まれないため、誰のXRP残高にも影響することはありません。 + +### 不十分なXRP + +`rippled`サーバーが最初にトランザクションを評価するとき、送信側アカウントにXRPトランザクションコストを支払うのに十分なXRP残高がない場合は、エラーコード`terINSUF_FEE_B`にてトランザクションを拒否します。これは`ter`(再試行)コードであるため、トランザクションの結果が[確定](finality-of-results.html)になるまで、`rippled`サーバーはネットワークへの中継を行わずにトランザクションを再試行します。 + +トランザクションはすでにネットワークに配信されているけれども、アカウントにトランザクションコストを支払うのに十分なXRPがない場合は、結果コード`tecINSUFF_FEE`が発生します。この場合、アカウントからは可能なかぎりすべてのXRPが支払われるため、最終的に0 XRPになります。これは、`rippled` がトランザクションをネットワークに中継するかどうかを進行中のレジャーに基づいて判断するために起こります。しかしコンセンサスレジャーを作成するときにトランザクションは破棄されるか並べ替えられることになります。 + + +## Key Resetトランザクション + +特殊なケースですが、アカウントの[lsfPasswordSpentフラグ](accountroot.html)が無効であるかぎり、そのアカウントはトランザクションコスト`0`で[SetRegularKey](setregularkey.html)トランザクションを送信できます。このトランザクションにはアカウントの _マスターキーペア_ による署名が必要です。このトランザクションを送信すると、lsfPasswordSpentフラグが有効になります。 + +この機能は、レギュラーキーが危害を受けた場合に、危害を受けたアカウントに使用可能なXRPがあるかどうかを気にすることなく、そのアカウントを復元できるように設計されています。このようにして、追加のXRPを送信する前にそのアカウントを再び管理できるようになります。 + +[lsfPasswordSpentフラグ](accountroot.html)は無効になります。このフラグを有効にするには、マスターキーペアによって署名されたSetRegularKeyトランザクションを送信します。アカウントでXRPの[支払い](payment.html)が受け入れた場合、再び無効になります。 + +[FeeEscalation Amendment][]が有効な場合、Key Resetトランザクションの名目トランザクションコストがゼロであっても、`rippled`は他のトランザクションよりもKey Resetトランザクションを優先します。 + + +## トランザクションコストの変更 + +XRP Ledgerは、XRPの価値が長期的に変化することを見越して、最低トランザクションコストを変更するしくみを備えています。変更はすべて、コンセンサスプロセスによる承認が必要です。詳細は、[手数料の投票](fee-voting.html)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-types/checks.ja.md b/content/concepts/payment-types/checks.ja.md index d290c27d85..f797dc50aa 100644 --- a/content/concepts/payment-types/checks.ja.md +++ b/content/concepts/payment-types/checks.ja.md @@ -1,111 +1,111 @@ -# Checks - -_([Checks Amendment][]が必要です :not_enabled:)_ - -XRP LedgerのChecks機能を使用すると、指定の受取人による取消または換金が可能な後払いの支払いを生成することができます。個人用の紙の小切手と同様に、XRP Ledger Checksでは最初に資金の送金元が金額と受取人を指定するCheckを作成します。受取人はCheckを換金して、送金元のアカウントから受取人のアカウントに資金を移動します。受取人がCheckを換金するまでは、実際の資金移動は発生しません。Checkの作成時には資金は保留されていないことから、受取人が換金する時点で送金元に十分な資金がない場合、従来の小切手同様に換金が失敗します。Checkを換金できなかった場合、送信者はCheckが有効期限切れになるまで再試行できます。 - -XRP Ledger Checksには有効期限があり、この期限を過ぎると換金できなくなります。受取人が有効期限までにCheckを換金できなかった場合、Checkオブジェクトは誰かに取り消されるまでXRP Ledgerに残ります。有効期限切れになったCheckは誰でも取り消すことができます。有効期限前、あるいはChecksが換金されるまでは、送金元と受取人のみがCheckを取り消すことができます。Checkオブジェクトは、送金元がそのCheckを換金できた時点または誰かが取り消した時点でLedgerから削除されます。 - -Checksは[Escrow](escrow.html)と[Payment Channel](use-payment-channels.html)に似ていますが、Checksとこれらの機能の間には重要な相違がいくつかあります。 - -* Checksでは発行済み通貨を送金できます。Payment ChannelとEscrowで送金できるのはXRPのみです。 - -* Checksは資金を凍結しません。Payment ChannelとEscrowでは、送金元が発行したクレームでXRPが清算されるか(Payment Channel)、または有効期限切れまたはCrypto-conditionsによってXRPがリリースされる(Escrow)までは、そのXRPを使用できません。 - -* EscrowではXRPを自分自身に送金できます。ChecksとPayment Channelを使用してXRP(Checksの場合は発行済み通貨)を自身に送金することはできません。 - - -**注記:** [Checks Amendment][]:not_enabled: により、[OfferCreate][]トランザクションの有効期限が変更されます。詳細は[オファーの有効期限](offers.html#オファーの有効期限)を参照してください。 - - -## Checksを利用する理由 - -従来の紙の小切手では、実際の通貨を即座にやり取りすることなく残高を送金できます。XRP Ledger Checksを使用すると、銀行業界でよく利用され受け入れられている方法で資金を非同期にやり取りすることができます。 - -XRP Ledger Checksは、XRP Ledgerに固有の問題も解決できます。たとえば、ユーザーが不審な支払いを拒否したり、支払いの一部のみを受領することを可能にします。これは、コンプライアンス上の理由から支払いの受け入れに慎重に対応する必要がある機関にとっては有用です。 - -Checksはその他のさまざまな用途に利用できる可能性があります。RippleはコミュニティにてChecksの新しく創造的な用途が探られていくことを推奨しています。 - - -### ユースケース: 支払いの承認 - -**課題:** [BSA、KYC、AML、CFT](become-an-xrp-ledger-gateway.html#gateway-compliance)などの規制に準拠するにあたり、金融機関は受領する資金の送金元に関する文書を提出する必要があります。違法な資金移動を防止するため、これらの規制は金融機関に対して、処理済のすべての支払いについて、その送金元と送金先を開示するよう義務付けています。XRP Ledgerの性質上、誰でもXRPを(および該当する場合には発行済み通貨を)XRP Ledger上の金融機関のアカウントに送金することができます。金融機関のコンプライアンス部門では、このような不審な支払いへの対応にかかるコスト(罰金の可能性を含む)の増大と処理の遅れが生じます。 - -**解決策:** 金融機関は各自のXRP Ledgerのアカウントで、[`AccountSet`トランザクションの`asfDepositAuth`フラグを設定](accountset.html)することにより、[Deposit Authorization](depositauth.html)を有効にできます。これにより、アカウントはPaymentトランザクションを受領できなくなります。Deposit Authorizationが有効なアカウントは、Escrow、Payment Channel、またはChecksでのみ資金を受領できます。Deposit Authorizationが有効な場合、Checksが最もシンプルで使いやすく、柔軟な資金移動手段となります。 - - -## 使用法 - -Checksの一般的なライフサイクルを以下で説明します。 - - - -[![Checkのフローチャート(換金に成功した場合)](img/checks-happy-path.ja.png)](img/checks-happy-path.ja.png) - -**ステップ1:** Checkを作成するため、送金元が[CheckCreate][]トランザクションを送信し、受取人(`Destination`)、有効期限(`Expiration`)、および送金元アカウントからの引き落とし限度額(`SendMax`)を指定します。 - - -**ステップ2:** CheckCreateトランザクションの処理が完了すると、XRP Ledgerに[Checkオブジェクト](check.html)が作成されます。このオブジェクトには、オブジェクトを作成したトランザクションにより定義されたCheckのプロパティーが含まれています。有効期限前にこのオブジェクトを変更できるのは、送金元([CheckCancel][]トランザクションで取り消す)と受取人(取り消すかまたは換金する)だけです。有効期限の経過後は、誰でもCheckを取り消すことができます。 - -**ステップ3:** Checkを換金するため、受取人が[CheckCash][]トランザクションを送信します。受取人には次の2つのCheck換金オプションがあります。 - -* `Amount` — 受取人はこのオプションを使用して換金する正確な額を指定できます。これは、送金元が想定される[送金手数料](transfer-fees.html)をCheckの額に上乗せし、受取人は請求書やその他の契約に記載されている指定された額のみ受け取れるようにする場合に役立ちます。 - -* `DeliverMin` — 受取人はこのオプションを使用してCheckから受領する最小額を指定できます。受取人がこのオプションを使用する場合、`rippled`は可能な限り多くの送金を試み、少なくともこの額以上を送金します。受取人に入金できる額がこの額よりも少ない場合には、このトランザクションは失敗します。 - -送金元にCheckの裏付けとなる資金が十分あり、有効期限が経過してなければ、資金は送金元のアカウントから引き落とされ、受取人のアカウントに入金され、Checkオブジェクトは消却されます。 - - - -#### 有効期限切れの例 - -Checksが有効期限切れになった場合のライフサイクルを以下で説明します。 - - - -[![Checkのフローチャート(有効期限切れ)](img/checks-expiration.ja.png)](img/checks-expiration.ja.png) - - -Checksはすべて同じ方法で開始されるため、**ステップ1と2**は換金の例と同じです。 - -**ステップ3a:** 受取人が換金する前にCheckが有効期限切れになると、そのCheckは換金できなくなりますが、レジャーに残ります。 - -**ステップ4a:** 有効期限切れになったCheckは、[CheckCancel][]トランザクションを送信することで誰でも取り消すことができます。このトランザクションによりレジャーからCheckが削除されます。 - - - -## Checksの利用可能性 - -Checksを使用するには`rippled` v0.90.0以降が必要です。2018年10月11日の時点では、Checks Amendmentは本番環境のXRP Ledgerで有効になっていません。すべての既知のAmendmentの最新状況については、[既知のAmendment](known-amendments.html)を参照してください。Amendmentを有効化し、Amendmentに投票する方法については、[Amendmentプロセス](amendments.html#amendmentプロセス)を参照してください。 - -Test NetまたはプライベートXRP LedgerネットワークでのAmendmentの状況を確認するには、[featureメソッド][]を使用してください。 - - -## 参考情報 - -XRP LedgerのChecksの詳細は、以下を参照してください。 - -- [トランザクションのリファレンス](transaction-types.html) - - [CheckCreate][] - - [CheckCash][] - - [CheckCancel][] -- [Checksのチュートリアル](use-checks.html) - - [Checkの送信](send-a-check.html) - - [送金元アドレスに基づくChecksの検索](look-up-checks-by-sender.html) - - [受取人アドレスに基づくChecksの検索](look-up-checks-by-recipient.html) - - [Checkの指定された金額での換金](cash-a-check-for-an-exact-amount.html) - - [Checkの変動金額での換金](cash-a-check-for-a-flexible-amount.html) - - [Checkの取消し](cancel-a-check.html) -- [Checks Amendment][] - -関連機能の詳細については、以下を参照してください。 - -* [Deposit Authorization](depositauth.html) -* [Escrow](escrow.html) -* [Payment Channelチュートリアル](use-payment-channels.html) - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Checks + +_([Checks Amendment][]が必要です :not_enabled:)_ + +XRP LedgerのChecks機能を使用すると、指定の受取人による取消または換金が可能な後払いの支払いを生成することができます。個人用の紙の小切手と同様に、XRP Ledger Checksでは最初に資金の送金元が金額と受取人を指定するCheckを作成します。受取人はCheckを換金して、送金元のアカウントから受取人のアカウントに資金を移動します。受取人がCheckを換金するまでは、実際の資金移動は発生しません。Checkの作成時には資金は保留されていないことから、受取人が換金する時点で送金元に十分な資金がない場合、従来の小切手同様に換金が失敗します。Checkを換金できなかった場合、送信者はCheckが有効期限切れになるまで再試行できます。 + +XRP Ledger Checksには有効期限があり、この期限を過ぎると換金できなくなります。受取人が有効期限までにCheckを換金できなかった場合、Checkオブジェクトは誰かに取り消されるまでXRP Ledgerに残ります。有効期限切れになったCheckは誰でも取り消すことができます。有効期限前、あるいはChecksが換金されるまでは、送金元と受取人のみがCheckを取り消すことができます。Checkオブジェクトは、送金元がそのCheckを換金できた時点または誰かが取り消した時点でLedgerから削除されます。 + +Checksは[Escrow](escrow.html)と[Payment Channel](use-payment-channels.html)に似ていますが、Checksとこれらの機能の間には重要な相違がいくつかあります。 + +* Checksでは発行済み通貨を送金できます。Payment ChannelとEscrowで送金できるのはXRPのみです。 + +* Checksは資金を凍結しません。Payment ChannelとEscrowでは、送金元が発行したクレームでXRPが清算されるか(Payment Channel)、または有効期限切れまたはCrypto-conditionsによってXRPがリリースされる(Escrow)までは、そのXRPを使用できません。 + +* EscrowではXRPを自分自身に送金できます。ChecksとPayment Channelを使用してXRP(Checksの場合は発行済み通貨)を自身に送金することはできません。 + + +**注記:** [Checks Amendment][]:not_enabled: により、[OfferCreate][]トランザクションの有効期限が変更されます。詳細は[オファーの有効期限](offers.html#オファーの有効期限)を参照してください。 + + +## Checksを利用する理由 + +従来の紙の小切手では、実際の通貨を即座にやり取りすることなく残高を送金できます。XRP Ledger Checksを使用すると、銀行業界でよく利用され受け入れられている方法で資金を非同期にやり取りすることができます。 + +XRP Ledger Checksは、XRP Ledgerに固有の問題も解決できます。たとえば、ユーザーが不審な支払いを拒否したり、支払いの一部のみを受領することを可能にします。これは、コンプライアンス上の理由から支払いの受け入れに慎重に対応する必要がある機関にとっては有用です。 + +Checksはその他のさまざまな用途に利用できる可能性があります。RippleはコミュニティにてChecksの新しく創造的な用途が探られていくことを推奨しています。 + + +### ユースケース: 支払いの承認 + +**課題:** [BSA、KYC、AML、CFT](become-an-xrp-ledger-gateway.html#gateway-compliance)などの規制に準拠するにあたり、金融機関は受領する資金の送金元に関する文書を提出する必要があります。違法な資金移動を防止するため、これらの規制は金融機関に対して、処理済のすべての支払いについて、その送金元と送金先を開示するよう義務付けています。XRP Ledgerの性質上、誰でもXRPを(および該当する場合には発行済み通貨を)XRP Ledger上の金融機関のアカウントに送金することができます。金融機関のコンプライアンス部門では、このような不審な支払いへの対応にかかるコスト(罰金の可能性を含む)の増大と処理の遅れが生じます。 + +**解決策:** 金融機関は各自のXRP Ledgerのアカウントで、[`AccountSet`トランザクションの`asfDepositAuth`フラグを設定](accountset.html)することにより、[Deposit Authorization](depositauth.html)を有効にできます。これにより、アカウントはPaymentトランザクションを受領できなくなります。Deposit Authorizationが有効なアカウントは、Escrow、Payment Channel、またはChecksでのみ資金を受領できます。Deposit Authorizationが有効な場合、Checksが最もシンプルで使いやすく、柔軟な資金移動手段となります。 + + +## 使用法 + +Checksの一般的なライフサイクルを以下で説明します。 + + + +[![Checkのフローチャート(換金に成功した場合)](img/checks-happy-path.ja.png)](img/checks-happy-path.ja.png) + +**ステップ1:** Checkを作成するため、送金元が[CheckCreate][]トランザクションを送信し、受取人(`Destination`)、有効期限(`Expiration`)、および送金元アカウントからの引き落とし限度額(`SendMax`)を指定します。 + + +**ステップ2:** CheckCreateトランザクションの処理が完了すると、XRP Ledgerに[Checkオブジェクト](check.html)が作成されます。このオブジェクトには、オブジェクトを作成したトランザクションにより定義されたCheckのプロパティーが含まれています。有効期限前にこのオブジェクトを変更できるのは、送金元([CheckCancel][]トランザクションで取り消す)と受取人(取り消すかまたは換金する)だけです。有効期限の経過後は、誰でもCheckを取り消すことができます。 + +**ステップ3:** Checkを換金するため、受取人が[CheckCash][]トランザクションを送信します。受取人には次の2つのCheck換金オプションがあります。 + +* `Amount` — 受取人はこのオプションを使用して換金する正確な額を指定できます。これは、送金元が想定される[送金手数料](transfer-fees.html)をCheckの額に上乗せし、受取人は請求書やその他の契約に記載されている指定された額のみ受け取れるようにする場合に役立ちます。 + +* `DeliverMin` — 受取人はこのオプションを使用してCheckから受領する最小額を指定できます。受取人がこのオプションを使用する場合、`rippled`は可能な限り多くの送金を試み、少なくともこの額以上を送金します。受取人に入金できる額がこの額よりも少ない場合には、このトランザクションは失敗します。 + +送金元にCheckの裏付けとなる資金が十分あり、有効期限が経過してなければ、資金は送金元のアカウントから引き落とされ、受取人のアカウントに入金され、Checkオブジェクトは消却されます。 + + + +#### 有効期限切れの例 + +Checksが有効期限切れになった場合のライフサイクルを以下で説明します。 + + + +[![Checkのフローチャート(有効期限切れ)](img/checks-expiration.ja.png)](img/checks-expiration.ja.png) + + +Checksはすべて同じ方法で開始されるため、**ステップ1と2**は換金の例と同じです。 + +**ステップ3a:** 受取人が換金する前にCheckが有効期限切れになると、そのCheckは換金できなくなりますが、レジャーに残ります。 + +**ステップ4a:** 有効期限切れになったCheckは、[CheckCancel][]トランザクションを送信することで誰でも取り消すことができます。このトランザクションによりレジャーからCheckが削除されます。 + + + +## Checksの利用可能性 + +Checksを使用するには`rippled` v0.90.0以降が必要です。2018年10月11日の時点では、Checks Amendmentは本番環境のXRP Ledgerで有効になっていません。すべての既知のAmendmentの最新状況については、[既知のAmendment](known-amendments.html)を参照してください。Amendmentを有効化し、Amendmentに投票する方法については、[Amendmentプロセス](amendments.html#amendmentプロセス)を参照してください。 + +Test NetまたはプライベートXRP LedgerネットワークでのAmendmentの状況を確認するには、[featureメソッド][]を使用してください。 + + +## 参考情報 + +XRP LedgerのChecksの詳細は、以下を参照してください。 + +- [トランザクションのリファレンス](transaction-types.html) + - [CheckCreate][] + - [CheckCash][] + - [CheckCancel][] +- [Checksのチュートリアル](use-checks.html) + - [Checkの送信](send-a-check.html) + - [送金元アドレスに基づくChecksの検索](look-up-checks-by-sender.html) + - [受取人アドレスに基づくChecksの検索](look-up-checks-by-recipient.html) + - [Checkの指定された金額での換金](cash-a-check-for-an-exact-amount.html) + - [Checkの変動金額での換金](cash-a-check-for-a-flexible-amount.html) + - [Checkの取消し](cancel-a-check.html) +- [Checks Amendment][] + +関連機能の詳細については、以下を参照してください。 + +* [Deposit Authorization](depositauth.html) +* [Escrow](escrow.html) +* [Payment Channelチュートリアル](use-payment-channels.html) + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-types/cross-currency-payments.ja.md b/content/concepts/payment-types/cross-currency-payments.ja.md index b7382cdfc1..51ea6cc175 100644 --- a/content/concepts/payment-types/cross-currency-payments.ja.md +++ b/content/concepts/payment-types/cross-currency-payments.ja.md @@ -1,25 +1,25 @@ -# 複数通貨間の支払い - -XRP Ledgerでは、1つ以上の発行済み通貨、XRP、またはその両方を交換して、複数通貨間で支払いを送金できます。[XRPによる直接支払](use-simple-xrp-payments.html)と同様に、このような支払いでは[Paymentトランザクションタイプ][Payment]が使用されます。XRP Ledgerでの複数通貨間の支払いは完全に非可分です。つまり、支払いを全額実行するか、またはまったく実行しないかのいずれかになります。 - -デフォルトでは、複数通貨間の支払いでは宛先に一定額が送金され、支払元が変動コストを負担します。複数通貨間の支払いが、[Partial Payments](partial-payments.html)で行われ、一定の送金限度内の変動額が宛先に送金される場合もあります。 - - -## 前提条件 - -- 定義上、複数通貨間支払いには2種類以上の通貨が関係します。つまり、関係する通貨のうち、少なくとも1種類以上がXRP以外の発行済み通貨である必要があります。 - - 通常は、[XRP Ledgerゲートウェイ](become-an-xrp-ledger-gateway.html)が発行した通貨を1種類以上使用することになります。このような通貨はXRP Ledger外部の資金を担保とし、ゲートウェイを通じて引き出すことができます。 - - 取引を行う当事者が、XRP Ledger内でのみ発行され、外部の担保がないデジタルトークンを送受信し、何らかの価値を持つ資産として取り扱うことを望む限り、このデジタルトークンを使用することもできます。 -- 送金元と受取人の間に1つ以上の[パス](paths.html)が確立しており、すべてのパスの総流動性が、支払いを促進するのに十分である必要があります。複数通貨間の支払いの場合、これは一般に通貨取引[オファー](offers.html)を消費することを意味します。 - - -## オートブリッジング - -2種類の発行済み通貨を自動的に交換する複数通貨間の支払いでは、XRPの使用により支払いコストを抑えられる場合には自動的にXRPが使用されます。この場合、オーダーブックを接続して流動性プールが拡大されます。たとえば、USDからMXNに送金する支払いの場合、USDからXRP、XRPからMXNへの交換にかかるコストが、USDからMXNへの直接交換にかかるコストよりも低い場合には、前者の交換が自動的に実行されます。 - -詳細は、[オートブリッジング](autobridging.html)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 複数通貨間の支払い + +XRP Ledgerでは、1つ以上の発行済み通貨、XRP、またはその両方を交換して、複数通貨間で支払いを送金できます。[XRPによる直接支払](use-simple-xrp-payments.html)と同様に、このような支払いでは[Paymentトランザクションタイプ][Payment]が使用されます。XRP Ledgerでの複数通貨間の支払いは完全に非可分です。つまり、支払いを全額実行するか、またはまったく実行しないかのいずれかになります。 + +デフォルトでは、複数通貨間の支払いでは宛先に一定額が送金され、支払元が変動コストを負担します。複数通貨間の支払いが、[Partial Payments](partial-payments.html)で行われ、一定の送金限度内の変動額が宛先に送金される場合もあります。 + + +## 前提条件 + +- 定義上、複数通貨間支払いには2種類以上の通貨が関係します。つまり、関係する通貨のうち、少なくとも1種類以上がXRP以外の発行済み通貨である必要があります。 + - 通常は、[XRP Ledgerゲートウェイ](become-an-xrp-ledger-gateway.html)が発行した通貨を1種類以上使用することになります。このような通貨はXRP Ledger外部の資金を担保とし、ゲートウェイを通じて引き出すことができます。 + - 取引を行う当事者が、XRP Ledger内でのみ発行され、外部の担保がないデジタルトークンを送受信し、何らかの価値を持つ資産として取り扱うことを望む限り、このデジタルトークンを使用することもできます。 +- 送金元と受取人の間に1つ以上の[パス](paths.html)が確立しており、すべてのパスの総流動性が、支払いを促進するのに十分である必要があります。複数通貨間の支払いの場合、これは一般に通貨取引[オファー](offers.html)を消費することを意味します。 + + +## オートブリッジング + +2種類の発行済み通貨を自動的に交換する複数通貨間の支払いでは、XRPの使用により支払いコストを抑えられる場合には自動的にXRPが使用されます。この場合、オーダーブックを接続して流動性プールが拡大されます。たとえば、USDからMXNに送金する支払いの場合、USDからXRP、XRPからMXNへの交換にかかるコストが、USDからMXNへの直接交換にかかるコストよりも低い場合には、前者の交換が自動的に実行されます。 + +詳細は、[オートブリッジング](autobridging.html)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-types/escrow.ja.md b/content/concepts/payment-types/escrow.ja.md index 9b34e3a783..5619a2292d 100644 --- a/content/concepts/payment-types/escrow.ja.md +++ b/content/concepts/payment-types/escrow.ja.md @@ -1,141 +1,141 @@ -# Escrow - -Escrowは、XRP建ての条件付き送金決済を可能にするXRP Ledgerの機能です。 _Escrow_ と呼ばれるこの条件付き決済では、XRPはエスクローに預託され、後日特定の条件が満たされた時点で送金されます。Escrowを完了する条件には、時間ベースのロック解除や[Crypto-conditions][]などがあります。期限までに終了しなかった場合に期限切れとなるようにEscrowを設定することもできます。 - -エスクローに預託されているXRPはロックアップされます。Escrowが正常に終了またはキャンセルされるまでは、誰もXRPを使用または消却できません。有効期限前は、指定された受取人のみがXRPを受領できます。有効期限経過後は、XRPは送金元にのみ返金されます。 - -## 使用法 - - - -[![Escrowのフローチャート(正常終了)](img/escrow-success-flow.ja.png)](img/escrow-success-flow.ja.png) - -**ステップ1:** Escrowを送信するにあたり、送金元は[EscrowCreateトランザクション][]を使用していくらかのXRPをロックアップします。このトランザクションでは、終了時刻または有効期限、あるいはその両方が定義されます。また、このトランザクションでは、Escrow終了時に満たされるべきCrypto-conditionも定義できます。さらに、このトランザクションでは、XRPの指定受取人を定義する必要があります。受取人と送金元は同じでも _かまいません_ 。 - -**ステップ2:** このトランザクションの処理完了後に、エスクローに預託されたXRPを保持する[Escrowオブジェクト](escrow-object.html)がXRP Ledgerに作成されます。このオブジェクトには、オブジェクトを作成したトランザクションにより定義されたEscrowのプロパティーが含まれています。このEscrowに終了時刻が設定されている場合、この時刻まではXRPには誰もアクセスできません。 - -**ステップ3:** 受取人またはその他のXRP Ledgerアドレスが[EscrowFinishトランザクション][]を送信し、XRPが送金されます。正しい条件が満たされると、レジャーのEscrowオブジェクトは消却され、XRPが指定受取人に入金されます。EscrowにCrypto-conditionが指定されている場合、このトランザクションにはその条件に対するフルフィルメントが含まれている必要があります。Escrowの有効期限がすでに切れている場合、EscrowFinishトランザクションはコード[`tecNO_PERMISSION`](tec-codes.html)で失敗します。 - -### 有効期限切れの例 - -[![Escrowのフローチャート(期限切れEscrow)](img/escrow-cancel-flow.ja.png)](img/escrow-cancel-flow.ja.png) - -Escrowはすべて同じ方法で開始されるため、**ステップ1と2**は正常終了の例と同じです。 - -**ステップ3a:** Escrowに有効期限が設定されており、有効期限までにEscrowが正常に終了しなかった場合、Escrowは期限切れとみなされます。XRP Ledgerに引き続き残りますが、これ以降は正常に終了できなくなります。(期限切れオブジェクトは、トランザクションにより変更されるまでレジャーに残ります。時間ベースのトリガーではレジャーの内容は変更できません。) - -**ステップ4a:** 送金元またはその他のXRP Ledgerアドレスが、[EscrowCancelトランザクション][]を送信し、期限切れのEscrowをキャンセルします。これによりレジャーの[Escrowオブジェクト](escrow-object.html)が消却され、XRPは送金元に返金されます。 - -## 制約事項 - -Escrowは、XRP Ledgerを[インターレジャープロトコル][]やその他のスマートコントラクトで使用できるようにする機能として設計されています。現行バージョンでは、複雑にならないように範囲が適度に制限されています。 - -- EscrowはXRPでのみ実行でき、発行済み通貨では実行できません。 -- Escrowでは、少なくとも2つのトランザクション(Escrowを作成するトランザクションとEscrowを終了またはキャンセルするトランザクション)を送信する必要があります。したがって、参加者は2つのトランザクションの[トランザクションコスト](transaction-cost.html)を消却する必要があるため、ごく少額の決済にEscrowを使用することは合理的ではありません。 - - Crypto-conditionを使用する場合、[Escrowの終了トランザクションのコスト](#escrowの終了トランザクションのコスト)が通常よりも高くなります。 -- Escrowはすべて、「Finish-after」時刻または[Crypto-condition][]のいずれか、またはこの両方を使用して作成する必要があります。EscrowにFinish-after時刻が設定されていない場合は、有効期限が設定されている必要があります。 - - **注記:** [fix1571 Amendment][] でEscrowの作成要件が変更されました。このAmendmentよりも前に作成されたEscrowでは、条件やFinish-after時刻を指定せずに有効期限を指定できました。このようなEscrowは誰でも即時に終了できます(資金を指定受取人に送金します)。 - -- Escrowを作成するトランザクションの実行時には、時刻の値が過去の時間であってはなりません。 -- 時限リリースおよび有効期限は、XRP Ledgerクローズに制約されます。つまり実際には、レジャーの正確なクローズ時刻に基づいて、これらの時刻が約5秒単位で丸められる場合があります。 -- サポートされている唯一の[Crypto-condition][]タイプはPREIMAGE-SHA-256です。 - -Escrowは、少量の大口決済に適した大きな保証を提供しています。[Payment Channel](use-payment-channels.html)は、迅速な小口決済に適しています。もちろん、条件無しの[決済](payment.html)も多くのユースケースで好まれます。 - -## 状態遷移図 - -次の図は、Escrow実施時の各状態を示します。 - -[![Escrowの状態がHeld → Ready/Conditionally Ready → Expiredと遷移する様子を示す状態遷移図](img/escrow-states.ja.png)](img/escrow-states.ja.png) - -この図は、Escrowの「Finish-after」時刻(`FinishAfter`フィールド)、Crypto-condition(`Condition`フィールド)、および有効期限(`CancelAfter`フィールド)の3通りの組み合わせの3つの例を示します。 - -- **時間ベースのEscrow(左):** Finish-after時刻のみが設定されているEscrowは、**Held**状態で作成されます。指定の時刻が経過すると**Ready**になり、誰でもこのEscrowを終了できるようになります。Escrowに有効期限が設定されており、その時刻になるまでに誰もEscrowを終了しないと、そのEscrowは**Expired**になります。Expired状態では、Escrowを終了できなくなり、誰でもEscrowをキャンセルできるようになります。Escrowに`CancelAfter`フィールドが設定されていない場合、Escrowが期限切れになることがないため、キャンセルできません。 - -- **コンビネーションEscrow(中央):** EscrowでCrypto-condition(`Condition`フィールド) _および_ 「Finish-after」時刻(`FinishAfter` フィールド)の両方が指定されている場合、Finish-after時刻が経過するまでEscrowは**Held**状態です。その後**Conditionally Ready**になり、Crypto-conditionに対し正しいフルフィルメントを提供すればEscrowを終了できます。Escrowに有効期限(`CancelAfter`フィールド)が設定されており、その時刻になるまでに誰もEscrowを終了しないと、そのEscrowは**Expired**になります。Expired状態では、Escrowを終了できなくなり、誰でもEscrowをキャンセルできるようになります。Escrowに`CancelAfter`フィールドが設定されていない場合、Escrowが期限切れになることがないため、キャンセルできません。 - -- **条件付きEscrow(右):** EscrowでCrypto-condition(`Condition`フィールド)が指定されており、Finish-after時刻が指定されていない場合、Escrowは作成時点で即時に**Conditionally Ready**になります。この時点では、Crypto-conditionに対する正しいフルフィルメントを提供した人だけがEscrowを終了できます。有効期限(`CancelAfter`フィールド)までに終了されなかったEscrowは**Expired**になります。(Finish-after時刻が設定されていないEscrowには、有効期限が設定されている _必要があります_ 。)Expired状態では、Escrowを終了できなくなり、誰でもEscrowをキャンセルできるようになります。 - - - -## Escrowの利用可能性 - -条件付き決済は、2017-03-31以降XRP Ledgerコンセンサスプロトコルに対する[「Escrow」Amendment](known-amendments.html#escrow)により利用可能になりました。同機能の以前のバージョンは、2016年に「Suspended Payments」(SusPay)という名称で[Ripple Test Net](https://ripple.com/build/ripple-test-net/)で利用可能になりました。 - -[スタンドアロンモード](rippled-server-modes.html#rippledサーバーをスタンドアロンモードで実行する理由)でのテストの際には、Amendmentのステータスに関係なく、Escrow機能をローカルで強制的に有効にできます。次のスタンザを`rippled.cfg`に追加してください。 - - [features] - Escrow - -Escrow Amendmentのステータスは、[feature メソッド][]を使用して確認できます。 - -## EscrowFinishトランザクションのコスト - -[Crypto-condition][]を使用する場合、Crypto-conditionフルフィルメントの検証に高い処理負荷がかかるため、EscrowFinishトランザクションでは[高額なトランザクションコスト](transaction-cost.html#特別なトランザクションコスト)を支払う必要があります。 - -Escrowが時間のみによってロックされており、Crypto-conditionがない場合、EscrowFinishのコストは、リファレンストランザクションの標準[トランザクションコスト](transaction-cost.html)のみです。 - -必要となる追加のトランザクションコストは、フルフィルメントのサイズに比例します。現時点では、フルフィルメントのあるEscrowFinishでは最小トランザクションコストとして、**330 drop([XRPのdrop数](basic-data-types.html#通貨額の指定))と、フルフィルメントのサイズで16バイトあたり10 drop**が必要です。[マルチ署名済み](multi-signing.html)トランザクションの場合、マルチ署名のコストがフルフィルメントのコストに加算されます。 - -**注記:** 上記の式は、トランザクションのリファレンスコストがXRPの10 dropであることを前提としています。 - -[手数料投票](fee-voting.html)により`reference_fee`の値が変更される場合、この式は新しいリファレンスコストに基づいてスケーリングされます。フルフィルメントのあるEscrowFinishトランザクションの公式は次のとおりです。 - -``` -reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) -``` - - -## Escrowを使用する理由 - -従来の[Escrow](https://en.wikipedia.org/wiki/Escrow)では、特にオンラインでリスクが高いと見なされる可能性のあるさまざまな金融取引を可能にしてきました。取引期間中または評価期間中に信頼できる第三者に資金を預託することで、相手側が当事者としての責任を必ず果たすことが両者に対し保証されます。 - -Escrow機能では、第三者をXRP Ledger に組み込まれている自動システムに置き換えることで、この概念をさらに発展させました。これにより、資金のロックアップとリリースが公平に行われ、自動化できるようになりました。 - -完全に自動化されたEscrowは、XRP Ledger 自体の整合性で裏付けられており、Rippleにとって重大な問題を解決します。Escrowで実現可能なユースケースは他にも多数あると思われます。Rippleは、Escrowのユニークな活用法を新たに編み出すように業界に働きかけています。 - -### ユースケース: 時間ベースのロックアップ - -**背景:** Rippleは大量のXRPを保有しており、XRP Ledgerと関連テクノロジーの健全な発展を促進し、資金を調達する目的でXRPを系統立てて売却しています。その一方、大量のXRPを保有しているために、Rippleでは次のような課題が生じています: - -- XRP Ledgerを使用する個人や企業は、Rippleが市場でXRPを通常よりも高値で売却して市場へ大量供給した場合に、XRPへの投資の希薄化や価値の低下を招く可能性があると懸念しています。 - - 市場への大量売却は長期的にはRippleに損失をもたらしますが、Rippleがそのような大量売却を行う可能性は、XRP価格への押し下げ圧力を促し、Rippleの資産価値を下げることになります。 -- Rippleは、内部関係者を含め、デジタル盗難やその他の悪意のある行為からアカウントを保護するため、アカウント所有権を慎重に管理しなければなりません。 - -**解決策:** Rippleは550億XRPを時間ベースのエスクローに預託することで、XRPの供給量を予測可能なものとし、その供給量がゆっくりですが安定したペースで増加していくようにしています。XRPを保有するその他の当事者は、Rippleの優先課題や戦略が変わったとしても、同社が市場へ大量供給できないとわかっています。 - -資金をEscrowに委託しても、Rippleの保有分が不正使用者から直接保護されるわけではありませんが、不正使用者が一時的にRippleのXRPアカウントを乗っ取っても、すぐに盗んだり流用したりできるXRPの量は大幅に減少します。これによりXRPの壊滅的な損失リスクは減少し、Rippleが自社のXRP資産の不正な流用を検出、防止、追跡する時間が増加します。 - -### ユースケース: インターレジャー決済 - -**背景:** 急速に成長しているフィンテック業界の主な課題の1つに、複数のデジタル通貨システムまたはレジャー間でのアクティビティーの調整があります。この課題に対して多くの解決策(XRP Ledgerの初期ビューを含む)が提案されていますが、これは「すべてを管理する1つのレジャー」の作成に絞り込むことができます。Rippleでは、1つのシステムでは世界中のすべての人々のニーズに応えることはできないと考えています。実際に、望ましい機能のいくつかは互いに矛盾しています。Rippleではその代わりに、レジャーを相互に接続するネットワーク、つまり _インターレジャー_ に、フィンテックの未来があると考えています。[インターレジャープロトコル][]は、できるだけ多くのシステムを安全かつスムーズに接続するための標準を定義します。 - -インターレジャー決済の根幹をなす基本原則は、 _条件付き送金_ です。マルチホップペイメントにはリスクの問題があります。中間のホップが増えるほど、決済が失敗する箇所が増えます。インターレジャーでは、この問題が金融版「[2相コミット](https://en.wikipedia.org/wiki/Two-phase_commit_protocol)」で解決されます。この2相コミットでの2つのステップとは、(1)条件付き送金の準備と(2)送金実行のための条件のフルフィルメントです。インターレジャープロジェクトでは、条件の定義と確認を自動化する方法を標準化するために[Crypto-condition][]仕様が定義され、このような条件の「共通の土台」としてSHA-256ハッシュが定められました。 - -**解決策:** Escrow機能により、XRP Ledgerはインターレジャープロトコルを使用したマルチホップペイメントのブリッジングに理想的なレジャーとなりました。これは、Escrow機能がPREIMAGE-SHA-256 Crypto-conditionに基づいてXRPの送金をネイティブにサポートしており、一致するフルフィルメントの提示から数秒以内にこれらの送金が実行されるためです。 - - -## 参考情報 - -XRP LedgerのEscrowの詳細は、以下を参照してください: - -- [Escrowチュートリアル](use-escrows.html) - - [時間に基づくEscrowの送信](send-a-time-held-escrow.html) - - [条件に基づくEscrowの送信](send-a-conditionally-held-escrow.html) - - [送金元または受取人別のEscrow検索](look-up-escrows.html) -- [トランザクションのリファレンス](transaction-formats.html) - - [EscrowCreateトランザクション][] - - [EscrowFinishトランザクション][] - - [EscrowCancelトランザクション][] -- [レジャーリファレンス](ledger-data-formats.html) - - [Escrowオブジェクト](escrow-object.html) - -インターレジャーと、条件付き送金が実現する複数レジャー間での安全な決済についての詳細は、[Interledger Architecture](https://interledger.org/rfcs/0001-interledger-architecture/)を参照してください。 - -Rippleによる550億XRPのロックアップについては、[Ripple's Insights Blog](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Escrow + +Escrowは、XRP建ての条件付き送金決済を可能にするXRP Ledgerの機能です。 _Escrow_ と呼ばれるこの条件付き決済では、XRPはエスクローに預託され、後日特定の条件が満たされた時点で送金されます。Escrowを完了する条件には、時間ベースのロック解除や[Crypto-conditions][]などがあります。期限までに終了しなかった場合に期限切れとなるようにEscrowを設定することもできます。 + +エスクローに預託されているXRPはロックアップされます。Escrowが正常に終了またはキャンセルされるまでは、誰もXRPを使用または消却できません。有効期限前は、指定された受取人のみがXRPを受領できます。有効期限経過後は、XRPは送金元にのみ返金されます。 + +## 使用法 + + + +[![Escrowのフローチャート(正常終了)](img/escrow-success-flow.ja.png)](img/escrow-success-flow.ja.png) + +**ステップ1:** Escrowを送信するにあたり、送金元は[EscrowCreateトランザクション][]を使用していくらかのXRPをロックアップします。このトランザクションでは、終了時刻または有効期限、あるいはその両方が定義されます。また、このトランザクションでは、Escrow終了時に満たされるべきCrypto-conditionも定義できます。さらに、このトランザクションでは、XRPの指定受取人を定義する必要があります。受取人と送金元は同じでも _かまいません_ 。 + +**ステップ2:** このトランザクションの処理完了後に、エスクローに預託されたXRPを保持する[Escrowオブジェクト](escrow-object.html)がXRP Ledgerに作成されます。このオブジェクトには、オブジェクトを作成したトランザクションにより定義されたEscrowのプロパティーが含まれています。このEscrowに終了時刻が設定されている場合、この時刻まではXRPには誰もアクセスできません。 + +**ステップ3:** 受取人またはその他のXRP Ledgerアドレスが[EscrowFinishトランザクション][]を送信し、XRPが送金されます。正しい条件が満たされると、レジャーのEscrowオブジェクトは消却され、XRPが指定受取人に入金されます。EscrowにCrypto-conditionが指定されている場合、このトランザクションにはその条件に対するフルフィルメントが含まれている必要があります。Escrowの有効期限がすでに切れている場合、EscrowFinishトランザクションはコード[`tecNO_PERMISSION`](tec-codes.html)で失敗します。 + +### 有効期限切れの例 + +[![Escrowのフローチャート(期限切れEscrow)](img/escrow-cancel-flow.ja.png)](img/escrow-cancel-flow.ja.png) + +Escrowはすべて同じ方法で開始されるため、**ステップ1と2**は正常終了の例と同じです。 + +**ステップ3a:** Escrowに有効期限が設定されており、有効期限までにEscrowが正常に終了しなかった場合、Escrowは期限切れとみなされます。XRP Ledgerに引き続き残りますが、これ以降は正常に終了できなくなります。(期限切れオブジェクトは、トランザクションにより変更されるまでレジャーに残ります。時間ベースのトリガーではレジャーの内容は変更できません。) + +**ステップ4a:** 送金元またはその他のXRP Ledgerアドレスが、[EscrowCancelトランザクション][]を送信し、期限切れのEscrowをキャンセルします。これによりレジャーの[Escrowオブジェクト](escrow-object.html)が消却され、XRPは送金元に返金されます。 + +## 制約事項 + +Escrowは、XRP Ledgerを[インターレジャープロトコル][]やその他のスマートコントラクトで使用できるようにする機能として設計されています。現行バージョンでは、複雑にならないように範囲が適度に制限されています。 + +- EscrowはXRPでのみ実行でき、発行済み通貨では実行できません。 +- Escrowでは、少なくとも2つのトランザクション(Escrowを作成するトランザクションとEscrowを終了またはキャンセルするトランザクション)を送信する必要があります。したがって、参加者は2つのトランザクションの[トランザクションコスト](transaction-cost.html)を消却する必要があるため、ごく少額の決済にEscrowを使用することは合理的ではありません。 + - Crypto-conditionを使用する場合、[Escrowの終了トランザクションのコスト](#escrowの終了トランザクションのコスト)が通常よりも高くなります。 +- Escrowはすべて、「Finish-after」時刻または[Crypto-condition][]のいずれか、またはこの両方を使用して作成する必要があります。EscrowにFinish-after時刻が設定されていない場合は、有効期限が設定されている必要があります。 + + **注記:** [fix1571 Amendment][] でEscrowの作成要件が変更されました。このAmendmentよりも前に作成されたEscrowでは、条件やFinish-after時刻を指定せずに有効期限を指定できました。このようなEscrowは誰でも即時に終了できます(資金を指定受取人に送金します)。 + +- Escrowを作成するトランザクションの実行時には、時刻の値が過去の時間であってはなりません。 +- 時限リリースおよび有効期限は、XRP Ledgerクローズに制約されます。つまり実際には、レジャーの正確なクローズ時刻に基づいて、これらの時刻が約5秒単位で丸められる場合があります。 +- サポートされている唯一の[Crypto-condition][]タイプはPREIMAGE-SHA-256です。 + +Escrowは、少量の大口決済に適した大きな保証を提供しています。[Payment Channel](use-payment-channels.html)は、迅速な小口決済に適しています。もちろん、条件無しの[決済](payment.html)も多くのユースケースで好まれます。 + +## 状態遷移図 + +次の図は、Escrow実施時の各状態を示します。 + +[![Escrowの状態がHeld → Ready/Conditionally Ready → Expiredと遷移する様子を示す状態遷移図](img/escrow-states.ja.png)](img/escrow-states.ja.png) + +この図は、Escrowの「Finish-after」時刻(`FinishAfter`フィールド)、Crypto-condition(`Condition`フィールド)、および有効期限(`CancelAfter`フィールド)の3通りの組み合わせの3つの例を示します。 + +- **時間ベースのEscrow(左):** Finish-after時刻のみが設定されているEscrowは、**Held**状態で作成されます。指定の時刻が経過すると**Ready**になり、誰でもこのEscrowを終了できるようになります。Escrowに有効期限が設定されており、その時刻になるまでに誰もEscrowを終了しないと、そのEscrowは**Expired**になります。Expired状態では、Escrowを終了できなくなり、誰でもEscrowをキャンセルできるようになります。Escrowに`CancelAfter`フィールドが設定されていない場合、Escrowが期限切れになることがないため、キャンセルできません。 + +- **コンビネーションEscrow(中央):** EscrowでCrypto-condition(`Condition`フィールド) _および_ 「Finish-after」時刻(`FinishAfter` フィールド)の両方が指定されている場合、Finish-after時刻が経過するまでEscrowは**Held**状態です。その後**Conditionally Ready**になり、Crypto-conditionに対し正しいフルフィルメントを提供すればEscrowを終了できます。Escrowに有効期限(`CancelAfter`フィールド)が設定されており、その時刻になるまでに誰もEscrowを終了しないと、そのEscrowは**Expired**になります。Expired状態では、Escrowを終了できなくなり、誰でもEscrowをキャンセルできるようになります。Escrowに`CancelAfter`フィールドが設定されていない場合、Escrowが期限切れになることがないため、キャンセルできません。 + +- **条件付きEscrow(右):** EscrowでCrypto-condition(`Condition`フィールド)が指定されており、Finish-after時刻が指定されていない場合、Escrowは作成時点で即時に**Conditionally Ready**になります。この時点では、Crypto-conditionに対する正しいフルフィルメントを提供した人だけがEscrowを終了できます。有効期限(`CancelAfter`フィールド)までに終了されなかったEscrowは**Expired**になります。(Finish-after時刻が設定されていないEscrowには、有効期限が設定されている _必要があります_ 。)Expired状態では、Escrowを終了できなくなり、誰でもEscrowをキャンセルできるようになります。 + + + +## Escrowの利用可能性 + +条件付き決済は、2017-03-31以降XRP Ledgerコンセンサスプロトコルに対する[「Escrow」Amendment](known-amendments.html#escrow)により利用可能になりました。同機能の以前のバージョンは、2016年に「Suspended Payments」(SusPay)という名称で[Ripple Test Net](https://ripple.com/build/ripple-test-net/)で利用可能になりました。 + +[スタンドアロンモード](rippled-server-modes.html#rippledサーバーをスタンドアロンモードで実行する理由)でのテストの際には、Amendmentのステータスに関係なく、Escrow機能をローカルで強制的に有効にできます。次のスタンザを`rippled.cfg`に追加してください。 + + [features] + Escrow + +Escrow Amendmentのステータスは、[feature メソッド][]を使用して確認できます。 + +## EscrowFinishトランザクションのコスト + +[Crypto-condition][]を使用する場合、Crypto-conditionフルフィルメントの検証に高い処理負荷がかかるため、EscrowFinishトランザクションでは[高額なトランザクションコスト](transaction-cost.html#特別なトランザクションコスト)を支払う必要があります。 + +Escrowが時間のみによってロックされており、Crypto-conditionがない場合、EscrowFinishのコストは、リファレンストランザクションの標準[トランザクションコスト](transaction-cost.html)のみです。 + +必要となる追加のトランザクションコストは、フルフィルメントのサイズに比例します。現時点では、フルフィルメントのあるEscrowFinishでは最小トランザクションコストとして、**330 drop([XRPのdrop数](basic-data-types.html#通貨額の指定))と、フルフィルメントのサイズで16バイトあたり10 drop**が必要です。[マルチ署名済み](multi-signing.html)トランザクションの場合、マルチ署名のコストがフルフィルメントのコストに加算されます。 + +**注記:** 上記の式は、トランザクションのリファレンスコストがXRPの10 dropであることを前提としています。 + +[手数料投票](fee-voting.html)により`reference_fee`の値が変更される場合、この式は新しいリファレンスコストに基づいてスケーリングされます。フルフィルメントのあるEscrowFinishトランザクションの公式は次のとおりです。 + +``` +reference_fee * (signer_count + 33 + (fulfillment_bytes / 16)) +``` + + +## Escrowを使用する理由 + +従来の[Escrow](https://en.wikipedia.org/wiki/Escrow)では、特にオンラインでリスクが高いと見なされる可能性のあるさまざまな金融取引を可能にしてきました。取引期間中または評価期間中に信頼できる第三者に資金を預託することで、相手側が当事者としての責任を必ず果たすことが両者に対し保証されます。 + +Escrow機能では、第三者をXRP Ledger に組み込まれている自動システムに置き換えることで、この概念をさらに発展させました。これにより、資金のロックアップとリリースが公平に行われ、自動化できるようになりました。 + +完全に自動化されたEscrowは、XRP Ledger 自体の整合性で裏付けられており、Rippleにとって重大な問題を解決します。Escrowで実現可能なユースケースは他にも多数あると思われます。Rippleは、Escrowのユニークな活用法を新たに編み出すように業界に働きかけています。 + +### ユースケース: 時間ベースのロックアップ + +**背景:** Rippleは大量のXRPを保有しており、XRP Ledgerと関連テクノロジーの健全な発展を促進し、資金を調達する目的でXRPを系統立てて売却しています。その一方、大量のXRPを保有しているために、Rippleでは次のような課題が生じています: + +- XRP Ledgerを使用する個人や企業は、Rippleが市場でXRPを通常よりも高値で売却して市場へ大量供給した場合に、XRPへの投資の希薄化や価値の低下を招く可能性があると懸念しています。 + - 市場への大量売却は長期的にはRippleに損失をもたらしますが、Rippleがそのような大量売却を行う可能性は、XRP価格への押し下げ圧力を促し、Rippleの資産価値を下げることになります。 +- Rippleは、内部関係者を含め、デジタル盗難やその他の悪意のある行為からアカウントを保護するため、アカウント所有権を慎重に管理しなければなりません。 + +**解決策:** Rippleは550億XRPを時間ベースのエスクローに預託することで、XRPの供給量を予測可能なものとし、その供給量がゆっくりですが安定したペースで増加していくようにしています。XRPを保有するその他の当事者は、Rippleの優先課題や戦略が変わったとしても、同社が市場へ大量供給できないとわかっています。 + +資金をEscrowに委託しても、Rippleの保有分が不正使用者から直接保護されるわけではありませんが、不正使用者が一時的にRippleのXRPアカウントを乗っ取っても、すぐに盗んだり流用したりできるXRPの量は大幅に減少します。これによりXRPの壊滅的な損失リスクは減少し、Rippleが自社のXRP資産の不正な流用を検出、防止、追跡する時間が増加します。 + +### ユースケース: インターレジャー決済 + +**背景:** 急速に成長しているフィンテック業界の主な課題の1つに、複数のデジタル通貨システムまたはレジャー間でのアクティビティーの調整があります。この課題に対して多くの解決策(XRP Ledgerの初期ビューを含む)が提案されていますが、これは「すべてを管理する1つのレジャー」の作成に絞り込むことができます。Rippleでは、1つのシステムでは世界中のすべての人々のニーズに応えることはできないと考えています。実際に、望ましい機能のいくつかは互いに矛盾しています。Rippleではその代わりに、レジャーを相互に接続するネットワーク、つまり _インターレジャー_ に、フィンテックの未来があると考えています。[インターレジャープロトコル][]は、できるだけ多くのシステムを安全かつスムーズに接続するための標準を定義します。 + +インターレジャー決済の根幹をなす基本原則は、 _条件付き送金_ です。マルチホップペイメントにはリスクの問題があります。中間のホップが増えるほど、決済が失敗する箇所が増えます。インターレジャーでは、この問題が金融版「[2相コミット](https://en.wikipedia.org/wiki/Two-phase_commit_protocol)」で解決されます。この2相コミットでの2つのステップとは、(1)条件付き送金の準備と(2)送金実行のための条件のフルフィルメントです。インターレジャープロジェクトでは、条件の定義と確認を自動化する方法を標準化するために[Crypto-condition][]仕様が定義され、このような条件の「共通の土台」としてSHA-256ハッシュが定められました。 + +**解決策:** Escrow機能により、XRP Ledgerはインターレジャープロトコルを使用したマルチホップペイメントのブリッジングに理想的なレジャーとなりました。これは、Escrow機能がPREIMAGE-SHA-256 Crypto-conditionに基づいてXRPの送金をネイティブにサポートしており、一致するフルフィルメントの提示から数秒以内にこれらの送金が実行されるためです。 + + +## 参考情報 + +XRP LedgerのEscrowの詳細は、以下を参照してください: + +- [Escrowチュートリアル](use-escrows.html) + - [時間に基づくEscrowの送信](send-a-time-held-escrow.html) + - [条件に基づくEscrowの送信](send-a-conditionally-held-escrow.html) + - [送金元または受取人別のEscrow検索](look-up-escrows.html) +- [トランザクションのリファレンス](transaction-formats.html) + - [EscrowCreateトランザクション][] + - [EscrowFinishトランザクション][] + - [EscrowCancelトランザクション][] +- [レジャーリファレンス](ledger-data-formats.html) + - [Escrowオブジェクト](escrow-object.html) + +インターレジャーと、条件付き送金が実現する複数レジャー間での安全な決済についての詳細は、[Interledger Architecture](https://interledger.org/rfcs/0001-interledger-architecture/)を参照してください。 + +Rippleによる550億XRPのロックアップについては、[Ripple's Insights Blog](https://ripple.com/insights/ripple-to-place-55-billion-xrp-in-escrow-to-ensure-certainty-into-total-xrp-supply/)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-types/partial-payments.ja.md b/content/concepts/payment-types/partial-payments.ja.md index b321f3d71c..e84afae96b 100644 --- a/content/concepts/payment-types/partial-payments.ja.md +++ b/content/concepts/payment-types/partial-payments.ja.md @@ -1,111 +1,111 @@ -# Partial Payment - -デフォルトのケースでは、XRP Ledgerの[Paymentトランザクション][]の`Amount`フィールドに、為替レートと[送金手数料](transfer-fees.html)を差し引いた実際の送金額が指定されます。「Partial Payment」フラグ([**tfPartialPayment**](payment.html#paymentのフラグ))を使うと、送金額を増額する代わりに受取金額を減額して、支払を正常に実行できます。Partial Paymentは、追加コストなしで[支払を返金](become-an-xrp-ledger-gateway.html#bouncing-payments)したい場合に便利です。 - -[トランザクションコスト](transaction-cost.html)に使用されるXRPの額は、トランザクションタイプに関わらず常に送金元のアカウントから差し引かれます。 - -Partial Paymentは、XRP Ledgerとのネイティブ統合を悪用して取引所およびゲートウェイから資金を盗むのに使用される恐れがあります。本書の[Partial Paymentの悪用](#partial-paymentの悪用)セクションで、この悪用の仕組みと防止対策を説明します。 - -## セマンティクス - -### Partial Paymentを使用しない場合 - -Partial Paymentフラグを使用しないで送金する場合、トランザクションの`Amount`フィールドに実際の送金額を指定し、`SendMax`フィールドに送金上限額と通貨を指定します。`Amount`の額を全額送金すると`SendMax`パラメーターの値を超えてしまう場合や、その他何らかの理由で総額を送金できない場合は、トランザクションは失敗します。トランザクション指示で`SendMax`フィールドが省略されると、`Amount`と同額とみなされます。この場合、手数料の合計が0である場合のみ支払が成功します。 - -つまり、次の式になります。 - - Amount+(手数料)=(送金額)≤ SendMax - -この式の「手数料」は、[送金手数料](transfer-fees.html)と通貨の為替レートを指します。送金額(`Amount`)の通貨は、送金側と受取側で異なる通貨建てにすることができ、XRP Ledgerの分散型取引所でオファーを消費することにより交換されます。 - -**注記:** トランザクションの`Fee`フィールドが参照するXRP[トランザクションコスト](transaction-cost.html)は、トランザクションをネットワークに中継するために消却されます。トランザクションコストは、常に指定通りの額が送金元から引き落とされ、あらゆるタイプの支払の手数料計算とは完全に切り離されています。 - -### Partial Paymentを使用する場合 - -Partial Paymentフラグが有効になっている支払を送金する場合、このトランザクションの`Amount`フィールドには送金限度額を指定します。Partial Paymentでは、制限(手数料、流動性不足、受取アカウントのトラストラインの枠不足など)の有無にかかわらず、指定額の _一部_ を送金できます。 - -オプションの`DeliverMin`フィールドには、送金下限額を指定します。`SendMax`フィールドは、Partial Payment以外で送金する場合と同様に機能します。Partial Paymentトランザクションは、送金額が`DeliverMin`フィールドの金額以上、`SendMax`の金額未満であれば成功します。`DeliverMin`フィールドに指定のない場合、任意の正の金額の送金であれば、Partial Paymentは成功します。 - -つまり、次の式になります。 - - 金額 ≥(送金額)= SendMax -(手数料)≥ DeliverMin > 0 - -### Partial Paymentの制限事項 - -Partial Paymentには次の制限事項があります。 - -- Partial Paymentでは、アドレスにXRPにて資金を供給できません。この場合、[結果コード][]`telNO_DST_PARTIAL`が返されます。 -- Partial Paymentでは、XRP間の直接決済はできません。この場合、[結果コード][]`temBAD_SEND_XRP_PARTIAL`が返されます。 - - ただし、イシュアンスからXRPへの支払またはXRPからイシュアンスへの支払は、Partial Paymentが可能です。 - -[結果コード]: reference-transaction-format.html#transaction-results - -### `delivered_amount`フィールド - -Partial Paymentでの実際の送金額を把握できるように、正常に完了したPaymentトランザクションのメタデータには`delivered_amount`フィールドが含まれています。このフィールドには送金額が`Amount`フィールドと[同じフォーマット](basic-data-types.html#通貨額の指定)で示されています。 - -Partial Payment以外の場合、トランザクションのメタデータの`delivered_amount`フィールドは、トランザクションの`Amount`フィールドと同じです。支払が発行済み通貨で行われた場合、丸め方により`delivered_amount`が`Amount`フィールドとやや異なることがあります。 - -次の**両方**の条件に該当するトランザクションでは、送金額を**使用できません**。 - -- Partial Paymentである -- 2014-01-20以前の検証済みレジャーに含まれている - -この両方の条件に該当する場合、`delivered_amount`には実際の金額ではなく文字列値`unavailable`が示されます。この状況で実際の送金額を確認する唯一の方法は、トランザクションのメタデータでAffectedNodesを参照することです。発行済み通貨を送金するトランザクションで、`Amount`の`issuer`が`Destination`アドレスと同じアカウントである場合、送金額は異なる取引相手へのトラストラインを表す複数の`AffectedNodes`メンバー間で分割できます。 - -`delivered_amount`フィールドは以下のフィールドに含まれています。 - -| API | メソッド | フィールド | -|-----|--------|-------| -| [JSON-RPC / WebSocket][] | [account_txメソッド][] | `result.transactions` 配列メンバーの `meta.delivered_amount` | -| [JSON-RPC / WebSocket][] | [txメソッド][] | `result.meta.delivered_amount` | -| [JSON-RPC / WebSocket][] | [transaction_entryメソッド][] | `result.metadata.delivered_amount` | -| [JSON-RPC / WebSocket][] | [ledgerメソッド][](トランザクションが展開されている状態) | `result.ledger.transactions` 配列メンバーの`metaData.delivered_amount` [新規: rippled 1.2.1][] | -| [WebSocket][] | [トランザクションサブスクリプション](subscribe.html#トランザクションストリーム) | サブスクリプションメッセージの`meta.delivered_amount` [新規: rippled 1.2.1][] | -| [RippleAPI][] | [`getTransaction` メソッド](rippleapi-reference.html#gettransaction) | `outcome.deliveredAmount` | -| [RippleAPI][] | [`getTransactions` メソッド](rippleapi-reference.html#gettransaction) | 配列メンバーの `outcome.deliveredAmount` | - -[WebSocket]: rippled-api.html -[JSON-RPC / WebSocket]: rippled-api.html -[RippleAPI]: rippleapi-reference.html - -## Partial Paymentの悪用 - -金融機関によるXRP Ledgerとの統合が、Paymentの`Amount`フィールドは常に総送金額であると想定して行われる場合、不正使用者がその想定を悪用して、金融機関から資金を盗むことが可能になります。Partial Paymentがゲートウェイ、取引所、または業者のソフトウェアで正しく処理されない限り、これらの機関に対してこのような悪用が行われる可能性があります。 - -**着信Paymentトランザクションを正しく処理するには、**`Amount`フィールドではなく **[`delivered_amount`メタデータフィールド](#delivered_amountフィールド)を使用します。** これにより、金融機関が _実際の_ 受取金額を間違えることがなくなります。 - - -### 悪用シナリオの流れ - -脆弱な金融機関を攻撃するため、不正使用者は次のような操作を試みます。 - -1. 不正使用者がPaymentトランザクションを金融機関に送信します。このトランザクションの`Amount`フィールドの額は高額で、**tfPartialPayment**フラグが有効になっています。 -2. Partial Paymentは成功しますが(結果コード`tesSUCCESS`)、実際には指定通貨でわずかな金額だけが送金されます。 -3. 脆弱な金融機関はトランザクションの`Amount`フィールドを確認しますが、`Flags`フィールドや`delivered_amount`メタデータフィールドは確認しません。 -4. 脆弱な金融機関は、XRP Ledgerへ入金された`delivered_amount`が非常に少額のであるにもかかわらず、外部システム(金融機関独自のレジャーなど)で`Amount`の総額を不正使用者に入金します。 -5. 不正使用者は、脆弱な機関がこの差異に気付く前に、可能な限りの多くの残高を別のシステムに出金します。 - - ブロックチェーントランザクションは通常不可逆であるため、不正使用者は一般的にBitcoinなどの他の仮想通貨に残高を換金することを好みます。法定通貨システムに出金した場合、金融機関がトランザクションを撤回または取り消せるのは、最初にトランザクションが実行されてから数日後になります。 - - 取引所の場合、不正使用者はXRPから残高を出金し、直接XRP Ledgerに戻すこともできます。 - -業者の場合、操作の順序がやや異なりますが、概念は同じです: - -1. 不正使用者が大量の商品やサービスの購入を依頼します。 -2. 脆弱な業者が不正使用者に対し、購入された商品やサービスの手数料を請求します。 -3. 不正使用者がPaymentトランザクションを業者に送信します。このトランザクションの`Amount`フィールドの額は高額で、**tfPartialPayment**フラグが有効になっています。 -4. Partial Paymentが成功しますが(結果コード`tesSUCCESS`)、指定通貨でわずかな金額だけが送金されます。 -5. 脆弱な業者はトランザクションの`Amount`フィールドを確認しますが、`Flags`フィールドや`delivered_amount`メタデータフィールドは確認しません。 -6. 脆弱な業者は、XRP Ledgerへの入金された`delivered_amount` が非常に少額であるにもかかわらず、請求を支払済みとして扱い、商品またはサービスを不正使用者に納入します。 -7. 不正使用者は、業者が差異に気付く前に、商品やサービスを使用、再販売または持ち逃げします。 - -### その他の緩和対策 - -このような悪用を防ぐには、着信トランザクションの処理で[`delivered_amount`フィールド](#delivered_amountフィールド)を使用すれば十分です。ただし、積極的な取り組みを追加することによっても、このような悪用が発生する可能性を回避または緩和できます。例: - -- 出金処理のビジネスロジックにサニティチェックを追加します。XRP Ledgerで保有している残高の合計が、予期されている資産と債務に一致しない場合は、出金を処理をしません。 -- 「顧客確認」のガイドラインに従い、顧客の身元情報を厳密に検証します。不正使用者を事前に認識して阻止したり、システムを悪用した不正使用者に対して法的措置を講じたりすることができます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Partial Payment + +デフォルトのケースでは、XRP Ledgerの[Paymentトランザクション][]の`Amount`フィールドに、為替レートと[送金手数料](transfer-fees.html)を差し引いた実際の送金額が指定されます。「Partial Payment」フラグ([**tfPartialPayment**](payment.html#paymentのフラグ))を使うと、送金額を増額する代わりに受取金額を減額して、支払を正常に実行できます。Partial Paymentは、追加コストなしで[支払を返金](become-an-xrp-ledger-gateway.html#bouncing-payments)したい場合に便利です。 + +[トランザクションコスト](transaction-cost.html)に使用されるXRPの額は、トランザクションタイプに関わらず常に送金元のアカウントから差し引かれます。 + +Partial Paymentは、XRP Ledgerとのネイティブ統合を悪用して取引所およびゲートウェイから資金を盗むのに使用される恐れがあります。本書の[Partial Paymentの悪用](#partial-paymentの悪用)セクションで、この悪用の仕組みと防止対策を説明します。 + +## セマンティクス + +### Partial Paymentを使用しない場合 + +Partial Paymentフラグを使用しないで送金する場合、トランザクションの`Amount`フィールドに実際の送金額を指定し、`SendMax`フィールドに送金上限額と通貨を指定します。`Amount`の額を全額送金すると`SendMax`パラメーターの値を超えてしまう場合や、その他何らかの理由で総額を送金できない場合は、トランザクションは失敗します。トランザクション指示で`SendMax`フィールドが省略されると、`Amount`と同額とみなされます。この場合、手数料の合計が0である場合のみ支払が成功します。 + +つまり、次の式になります。 + + Amount+(手数料)=(送金額)≤ SendMax + +この式の「手数料」は、[送金手数料](transfer-fees.html)と通貨の為替レートを指します。送金額(`Amount`)の通貨は、送金側と受取側で異なる通貨建てにすることができ、XRP Ledgerの分散型取引所でオファーを消費することにより交換されます。 + +**注記:** トランザクションの`Fee`フィールドが参照するXRP[トランザクションコスト](transaction-cost.html)は、トランザクションをネットワークに中継するために消却されます。トランザクションコストは、常に指定通りの額が送金元から引き落とされ、あらゆるタイプの支払の手数料計算とは完全に切り離されています。 + +### Partial Paymentを使用する場合 + +Partial Paymentフラグが有効になっている支払を送金する場合、このトランザクションの`Amount`フィールドには送金限度額を指定します。Partial Paymentでは、制限(手数料、流動性不足、受取アカウントのトラストラインの枠不足など)の有無にかかわらず、指定額の _一部_ を送金できます。 + +オプションの`DeliverMin`フィールドには、送金下限額を指定します。`SendMax`フィールドは、Partial Payment以外で送金する場合と同様に機能します。Partial Paymentトランザクションは、送金額が`DeliverMin`フィールドの金額以上、`SendMax`の金額未満であれば成功します。`DeliverMin`フィールドに指定のない場合、任意の正の金額の送金であれば、Partial Paymentは成功します。 + +つまり、次の式になります。 + + 金額 ≥(送金額)= SendMax -(手数料)≥ DeliverMin > 0 + +### Partial Paymentの制限事項 + +Partial Paymentには次の制限事項があります。 + +- Partial Paymentでは、アドレスにXRPにて資金を供給できません。この場合、[結果コード][]`telNO_DST_PARTIAL`が返されます。 +- Partial Paymentでは、XRP間の直接決済はできません。この場合、[結果コード][]`temBAD_SEND_XRP_PARTIAL`が返されます。 + - ただし、イシュアンスからXRPへの支払またはXRPからイシュアンスへの支払は、Partial Paymentが可能です。 + +[結果コード]: reference-transaction-format.html#transaction-results + +### `delivered_amount`フィールド + +Partial Paymentでの実際の送金額を把握できるように、正常に完了したPaymentトランザクションのメタデータには`delivered_amount`フィールドが含まれています。このフィールドには送金額が`Amount`フィールドと[同じフォーマット](basic-data-types.html#通貨額の指定)で示されています。 + +Partial Payment以外の場合、トランザクションのメタデータの`delivered_amount`フィールドは、トランザクションの`Amount`フィールドと同じです。支払が発行済み通貨で行われた場合、丸め方により`delivered_amount`が`Amount`フィールドとやや異なることがあります。 + +次の**両方**の条件に該当するトランザクションでは、送金額を**使用できません**。 + +- Partial Paymentである +- 2014-01-20以前の検証済みレジャーに含まれている + +この両方の条件に該当する場合、`delivered_amount`には実際の金額ではなく文字列値`unavailable`が示されます。この状況で実際の送金額を確認する唯一の方法は、トランザクションのメタデータでAffectedNodesを参照することです。発行済み通貨を送金するトランザクションで、`Amount`の`issuer`が`Destination`アドレスと同じアカウントである場合、送金額は異なる取引相手へのトラストラインを表す複数の`AffectedNodes`メンバー間で分割できます。 + +`delivered_amount`フィールドは以下のフィールドに含まれています。 + +| API | メソッド | フィールド | +|-----|--------|-------| +| [JSON-RPC / WebSocket][] | [account_txメソッド][] | `result.transactions` 配列メンバーの `meta.delivered_amount` | +| [JSON-RPC / WebSocket][] | [txメソッド][] | `result.meta.delivered_amount` | +| [JSON-RPC / WebSocket][] | [transaction_entryメソッド][] | `result.metadata.delivered_amount` | +| [JSON-RPC / WebSocket][] | [ledgerメソッド][](トランザクションが展開されている状態) | `result.ledger.transactions` 配列メンバーの`metaData.delivered_amount` [新規: rippled 1.2.1][] | +| [WebSocket][] | [トランザクションサブスクリプション](subscribe.html#トランザクションストリーム) | サブスクリプションメッセージの`meta.delivered_amount` [新規: rippled 1.2.1][] | +| [RippleAPI][] | [`getTransaction` メソッド](rippleapi-reference.html#gettransaction) | `outcome.deliveredAmount` | +| [RippleAPI][] | [`getTransactions` メソッド](rippleapi-reference.html#gettransaction) | 配列メンバーの `outcome.deliveredAmount` | + +[WebSocket]: rippled-api.html +[JSON-RPC / WebSocket]: rippled-api.html +[RippleAPI]: rippleapi-reference.html + +## Partial Paymentの悪用 + +金融機関によるXRP Ledgerとの統合が、Paymentの`Amount`フィールドは常に総送金額であると想定して行われる場合、不正使用者がその想定を悪用して、金融機関から資金を盗むことが可能になります。Partial Paymentがゲートウェイ、取引所、または業者のソフトウェアで正しく処理されない限り、これらの機関に対してこのような悪用が行われる可能性があります。 + +**着信Paymentトランザクションを正しく処理するには、**`Amount`フィールドではなく **[`delivered_amount`メタデータフィールド](#delivered_amountフィールド)を使用します。** これにより、金融機関が _実際の_ 受取金額を間違えることがなくなります。 + + +### 悪用シナリオの流れ + +脆弱な金融機関を攻撃するため、不正使用者は次のような操作を試みます。 + +1. 不正使用者がPaymentトランザクションを金融機関に送信します。このトランザクションの`Amount`フィールドの額は高額で、**tfPartialPayment**フラグが有効になっています。 +2. Partial Paymentは成功しますが(結果コード`tesSUCCESS`)、実際には指定通貨でわずかな金額だけが送金されます。 +3. 脆弱な金融機関はトランザクションの`Amount`フィールドを確認しますが、`Flags`フィールドや`delivered_amount`メタデータフィールドは確認しません。 +4. 脆弱な金融機関は、XRP Ledgerへ入金された`delivered_amount`が非常に少額のであるにもかかわらず、外部システム(金融機関独自のレジャーなど)で`Amount`の総額を不正使用者に入金します。 +5. 不正使用者は、脆弱な機関がこの差異に気付く前に、可能な限りの多くの残高を別のシステムに出金します。 + - ブロックチェーントランザクションは通常不可逆であるため、不正使用者は一般的にBitcoinなどの他の仮想通貨に残高を換金することを好みます。法定通貨システムに出金した場合、金融機関がトランザクションを撤回または取り消せるのは、最初にトランザクションが実行されてから数日後になります。 + - 取引所の場合、不正使用者はXRPから残高を出金し、直接XRP Ledgerに戻すこともできます。 + +業者の場合、操作の順序がやや異なりますが、概念は同じです: + +1. 不正使用者が大量の商品やサービスの購入を依頼します。 +2. 脆弱な業者が不正使用者に対し、購入された商品やサービスの手数料を請求します。 +3. 不正使用者がPaymentトランザクションを業者に送信します。このトランザクションの`Amount`フィールドの額は高額で、**tfPartialPayment**フラグが有効になっています。 +4. Partial Paymentが成功しますが(結果コード`tesSUCCESS`)、指定通貨でわずかな金額だけが送金されます。 +5. 脆弱な業者はトランザクションの`Amount`フィールドを確認しますが、`Flags`フィールドや`delivered_amount`メタデータフィールドは確認しません。 +6. 脆弱な業者は、XRP Ledgerへの入金された`delivered_amount` が非常に少額であるにもかかわらず、請求を支払済みとして扱い、商品またはサービスを不正使用者に納入します。 +7. 不正使用者は、業者が差異に気付く前に、商品やサービスを使用、再販売または持ち逃げします。 + +### その他の緩和対策 + +このような悪用を防ぐには、着信トランザクションの処理で[`delivered_amount`フィールド](#delivered_amountフィールド)を使用すれば十分です。ただし、積極的な取り組みを追加することによっても、このような悪用が発生する可能性を回避または緩和できます。例: + +- 出金処理のビジネスロジックにサニティチェックを追加します。XRP Ledgerで保有している残高の合計が、予期されている資産と債務に一致しない場合は、出金を処理をしません。 +- 「顧客確認」のガイドラインに従い、顧客の身元情報を厳密に検証します。不正使用者を事前に認識して阻止したり、システムを悪用した不正使用者に対して法的措置を講じたりすることができます。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/payment-types/payment-channels.ja.md b/content/concepts/payment-types/payment-channels.ja.md index f8516d30e3..09aa3c4b04 100644 --- a/content/concepts/payment-types/payment-channels.ja.md +++ b/content/concepts/payment-types/payment-channels.ja.md @@ -1,37 +1,37 @@ -# Payment Channel - -Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。 - -Payment Channel向けのXRPは、指定された期間にわたって留保されます。送金元がチャネルに対する _クレーム_ を作成します。受取人は、XRP Ledgerトランザクションを送信したり、新しいレジャーバージョンが[コンセンサス](consensus.html)に基づいて承認されるまで待つことなしに、このクレームを検証します。(これは、合意に基づいてトランザクションが承認される通常のパターンとは別に発生する、 _非同期_ のプロセスです。)受取人はいつでもクレームを _清算_ して、このクレームにより承認された額のXRPを受領することができます。このようなクレームを清算するときには、通常の合意プロセスの一部として標準XRP Ledgerトランザクションを使用します。この1回のトランザクションに、少額のクレームにより保証される任意の数のトランザクションを含めることができます。 - -クレームは個別に検証され、後で一括で清算できるため、Payment Channelでは、クレームのデジタル署名を作成および検証する参加者の能力によってのみ制限されるペースで、トランザクションを行えます。この制限は主に、参加者のハードウェアのスピードと、署名アルゴリズムの複雑さによるものです。最大限の速度を引き出すにはEd25519署名を使用します。これはXRP Ledgerのデフォルトのsecp256k1 ECSDA 署名よりも高速です。研究の結果、2011年のコモディティーハードウェアで[1秒あたりEd25519署名を100,000個以上作成し、1秒あたり70,000個以上を検証できることが実証されました](https://ed25519.cr.yp.to/ed25519-20110926.pdf)。 - - -## Payment Channelを使用する理由 - -Payment Channelを使用するプロセスには常に、支払人と受取人という2名の当事者が関わります。支払人とは、受取人の顧客で、XRP Ledgerを使用している個人または機関です。受取人とは、商品またはサービスの代金としてXRPを受領する個人または事業者です。 - -Payment Channelでは本来、そこで売買可能なものにいては、一切指定されません。ただし、次の商品やサービスはPayment Channelに適しています。 - -- デジタルアイテムなど、ほぼ即時に送信できるもの -- 安価な商品(価格に占めるトランザクション処理コストの割合が大きい) -- 通常大量購入する商品(正確な希望数量が事前に判明していない) - - -## Payment Channelのライフサイクル - -次の図は、Payment Channelのライフサイクルの概要を示します。 - -[![Payment Channelフローチャート](img/paychan-flow.ja.png)](img/paychan-flow.ja.png) - - -## 関連項目 - -- [Payment Channelの使用](use-payment-channels.html): Payment Channelを使用するプロセスを段階的に説明するチュートリアル。 - -- [Escrow](escrow.html): 速度が遅い、条件付きの大量XRP決済のための類似機能。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Payment Channel + +Payment Channelは、少額の単位に分割可能な「非同期」のXRPペイメントを送信し、後日決済する高度な機能です。 + +Payment Channel向けのXRPは、指定された期間にわたって留保されます。送金元がチャネルに対する _クレーム_ を作成します。受取人は、XRP Ledgerトランザクションを送信したり、新しいレジャーバージョンが[コンセンサス](consensus.html)に基づいて承認されるまで待つことなしに、このクレームを検証します。(これは、合意に基づいてトランザクションが承認される通常のパターンとは別に発生する、 _非同期_ のプロセスです。)受取人はいつでもクレームを _清算_ して、このクレームにより承認された額のXRPを受領することができます。このようなクレームを清算するときには、通常の合意プロセスの一部として標準XRP Ledgerトランザクションを使用します。この1回のトランザクションに、少額のクレームにより保証される任意の数のトランザクションを含めることができます。 + +クレームは個別に検証され、後で一括で清算できるため、Payment Channelでは、クレームのデジタル署名を作成および検証する参加者の能力によってのみ制限されるペースで、トランザクションを行えます。この制限は主に、参加者のハードウェアのスピードと、署名アルゴリズムの複雑さによるものです。最大限の速度を引き出すにはEd25519署名を使用します。これはXRP Ledgerのデフォルトのsecp256k1 ECSDA 署名よりも高速です。研究の結果、2011年のコモディティーハードウェアで[1秒あたりEd25519署名を100,000個以上作成し、1秒あたり70,000個以上を検証できることが実証されました](https://ed25519.cr.yp.to/ed25519-20110926.pdf)。 + + +## Payment Channelを使用する理由 + +Payment Channelを使用するプロセスには常に、支払人と受取人という2名の当事者が関わります。支払人とは、受取人の顧客で、XRP Ledgerを使用している個人または機関です。受取人とは、商品またはサービスの代金としてXRPを受領する個人または事業者です。 + +Payment Channelでは本来、そこで売買可能なものにいては、一切指定されません。ただし、次の商品やサービスはPayment Channelに適しています。 + +- デジタルアイテムなど、ほぼ即時に送信できるもの +- 安価な商品(価格に占めるトランザクション処理コストの割合が大きい) +- 通常大量購入する商品(正確な希望数量が事前に判明していない) + + +## Payment Channelのライフサイクル + +次の図は、Payment Channelのライフサイクルの概要を示します。 + +[![Payment Channelフローチャート](img/paychan-flow.ja.png)](img/paychan-flow.ja.png) + + +## 関連項目 + +- [Payment Channelの使用](use-payment-channels.html): Payment Channelを使用するプロセスを段階的に説明するチュートリアル。 + +- [Escrow](escrow.html): 速度が遅い、条件付きの大量XRP決済のための類似機能。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/the-rippled-server/clustering.ja.md b/content/concepts/the-rippled-server/clustering.ja.md index afe673b7a7..63888b6368 100644 --- a/content/concepts/the-rippled-server/clustering.ja.md +++ b/content/concepts/the-rippled-server/clustering.ja.md @@ -1,16 +1,16 @@ -# クラスター化 - -1つのデータセンターで複数の`rippled`サーバーを運用している場合は、これらのサーバーをクラスターに編成して、効率性を最大化できます。`rippled`サーバーをクラスターで運用するメリットは以下のとおりです。 - -- クラスター化`rippled`サーバーは暗号処理を共有します。1台のサーバーがメッセージの真正性をすでに検証している場合、クラスターの他のサーバーはそのメッセージを信頼し、再検証を行いません。 -- クラスター化サーバーは、ネットワークで不適切な活動をしているかまたはネットワークを不正使用しているピアとAPIクライアントに関する情報を共有します。このため、クラスター内のすべてのサーバーを同時に攻撃することが難しくなります。 -- クラスター化サーバーは、一部のサーバーでの現行の負荷ベースのトランザクション手数料にトランザクションが対応していない場合を含め、常にクラスター全体にトランザクションを伝搬します。 - -バリデータを[プライベートピア](peer-protocol.html#プライベートピア)として実行している場合は、`rippled`サーバーのクラスターをプロキシサーバーとして使用することが推奨されます。 - -クラスターでのサーバーの設定方法に関するチュートリアルについては、[`rippled`サーバーのクラスター化](cluster-rippled-servers.html)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# クラスター化 + +1つのデータセンターで複数の`rippled`サーバーを運用している場合は、これらのサーバーをクラスターに編成して、効率性を最大化できます。`rippled`サーバーをクラスターで運用するメリットは以下のとおりです。 + +- クラスター化`rippled`サーバーは暗号処理を共有します。1台のサーバーがメッセージの真正性をすでに検証している場合、クラスターの他のサーバーはそのメッセージを信頼し、再検証を行いません。 +- クラスター化サーバーは、ネットワークで不適切な活動をしているかまたはネットワークを不正使用しているピアとAPIクライアントに関する情報を共有します。このため、クラスター内のすべてのサーバーを同時に攻撃することが難しくなります。 +- クラスター化サーバーは、一部のサーバーでの現行の負荷ベースのトランザクション手数料にトランザクションが対応していない場合を含め、常にクラスター全体にトランザクションを伝搬します。 + +バリデータを[プライベートピア](peer-protocol.html#プライベートピア)として実行している場合は、`rippled`サーバーのクラスターをプロキシサーバーとして使用することが推奨されます。 + +クラスターでのサーバーの設定方法に関するチュートリアルについては、[`rippled`サーバーのクラスター化](cluster-rippled-servers.html)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/concepts/the-rippled-server/ledger-history/history-sharding.ja.md b/content/concepts/the-rippled-server/ledger-history/history-sharding.ja.md index f72229d741..51cf3e44d9 100644 --- a/content/concepts/the-rippled-server/ledger-history/history-sharding.ja.md +++ b/content/concepts/the-rippled-server/ledger-history/history-sharding.ja.md @@ -1,36 +1,36 @@ -# 履歴シャーディング - -[導入: rippled 0.90.0][] - -稼働中のサーバーは、ネットワーク実行時に検知または取得したレジャーに関するデータを格納したデータベースを作成します。各`rippled`サーバーは、そのレジャーのデータをレジャーストアーに保存しますが、保存されたレジャー数が設定された容量制限を超えると、オンライン削除ロジックによりこれらのデータベースがローテーションされます。 - -履歴シャーディングは、XRP Ledgerのトランザクション履歴をシャードと呼ばれるセグメントに分割し、XRP Ledgerネットワークのサーバー全体に分散します。シャードは、一連のレジャーです。`rippled`サーバーは、レジャーストアーとシャードストアーの両方にレジャーを同じ方法で保存します。 - -履歴シャーディング機能を使用すると、個々の`rippled`サーバーが履歴データの保存する役割を担い、すべての履歴(数テラバイト)を保存する必要がなくなります。シャードストアーはレジャーストアーに代わるものではありませんが、XRP Ledgerネットワーク上の分散レジャー履歴への信頼性の高いパスを実現します。 - -[![XRP Ledgerネットワーク: レジャーストアーとシャードストアーの図](img/xrp-ledger-network-ledger-store-and-shard-store.ja.png)](img/xrp-ledger-network-ledger-store-and-shard-store.ja.png) - - - -## 履歴シャードの取得と共有 - -`rippled` サーバーは履歴シャードを取得して保存します(この動作には設定が必要です)。このようなサーバーでは、ネットワークとの同期を実行し、設定された数の最新レジャーへのレジャー履歴の埋め戻しが完了した後で、シャードの取得が開始されます。ネットワークアクティビティがあまり発生しないこの期間に、`shard_db`を維持するように設定されている`rippled`サーバー が、シャードストアーに追加するシャードをランダムに選択します。ネットワークレジャー履歴が均等に分散される確率を高めるため、取得対象のシャードはランダムに選択され、現行シャードが特に優先されることはありません。 - -シャードが選択されたら、レジャー取得プロセスが開始されます。最初にシャードの最後のレジャーのシーケンスが取得され、最初のシャードに向けて逆方向に処理が進められます。取得プロセスでは最初に、サーバーがローカルでデータを確認します。取得できないデータについては、サーバーはピア`rippled`サーバーにデータを要求します。要求された期間のデータを供給できるサーバーは、履歴で応答します。要求側サーバーはこれらの応答を結合し、シャードを作成します。シャードに特定範囲のレジャーがすべて含まれた状態になれば、シャードが完成します。 - -`rippled`サーバーが1つのシャードを完全に取得する前に容量不足になった場合、空き容量ができて処理を続行できるようになるまで取得プロセスを停止します。この後、古いシャードは完成された最新のシャードに置き換えられます。ディスク容量が十分にある場合は、`rippled`サーバーはシャードに割り当てられている最大ディスク容量(`max_size_gb`)に達するまで、ランダムに選択された追加のシャードを取得し、シャードストアーに追加します。 - -## XRP Ledgerネットワークデータの整合性 - -すべてのレジャーの履歴は、特定範囲の履歴レジャーを維持することに同意したサーバー間で共有されます。これにより、各サーバーは維持することに同意したデータがすべてあることを確認し、プルーフツリーまたはレジャーデルタを作成できるようになります。履歴シャーディングが設定されている`rippled`サーバーは、保存するシャードをランダムに選択するため、すべての閉鎖済みレジャーの履歴全体が正規分布曲線で保存され、XRP Ledgerネットワークで履歴が均一に維持される確率が高くなります。 - -## 関連項目 - -- [履歴シャーディングの設定](configure-history-sharding.html) -- [download_shardメソッド][] -- [crawl_shardsメソッド][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 履歴シャーディング + +[導入: rippled 0.90.0][] + +稼働中のサーバーは、ネットワーク実行時に検知または取得したレジャーに関するデータを格納したデータベースを作成します。各`rippled`サーバーは、そのレジャーのデータをレジャーストアーに保存しますが、保存されたレジャー数が設定された容量制限を超えると、オンライン削除ロジックによりこれらのデータベースがローテーションされます。 + +履歴シャーディングは、XRP Ledgerのトランザクション履歴をシャードと呼ばれるセグメントに分割し、XRP Ledgerネットワークのサーバー全体に分散します。シャードは、一連のレジャーです。`rippled`サーバーは、レジャーストアーとシャードストアーの両方にレジャーを同じ方法で保存します。 + +履歴シャーディング機能を使用すると、個々の`rippled`サーバーが履歴データの保存する役割を担い、すべての履歴(数テラバイト)を保存する必要がなくなります。シャードストアーはレジャーストアーに代わるものではありませんが、XRP Ledgerネットワーク上の分散レジャー履歴への信頼性の高いパスを実現します。 + +[![XRP Ledgerネットワーク: レジャーストアーとシャードストアーの図](img/xrp-ledger-network-ledger-store-and-shard-store.ja.png)](img/xrp-ledger-network-ledger-store-and-shard-store.ja.png) + + + +## 履歴シャードの取得と共有 + +`rippled` サーバーは履歴シャードを取得して保存します(この動作には設定が必要です)。このようなサーバーでは、ネットワークとの同期を実行し、設定された数の最新レジャーへのレジャー履歴の埋め戻しが完了した後で、シャードの取得が開始されます。ネットワークアクティビティがあまり発生しないこの期間に、`shard_db`を維持するように設定されている`rippled`サーバー が、シャードストアーに追加するシャードをランダムに選択します。ネットワークレジャー履歴が均等に分散される確率を高めるため、取得対象のシャードはランダムに選択され、現行シャードが特に優先されることはありません。 + +シャードが選択されたら、レジャー取得プロセスが開始されます。最初にシャードの最後のレジャーのシーケンスが取得され、最初のシャードに向けて逆方向に処理が進められます。取得プロセスでは最初に、サーバーがローカルでデータを確認します。取得できないデータについては、サーバーはピア`rippled`サーバーにデータを要求します。要求された期間のデータを供給できるサーバーは、履歴で応答します。要求側サーバーはこれらの応答を結合し、シャードを作成します。シャードに特定範囲のレジャーがすべて含まれた状態になれば、シャードが完成します。 + +`rippled`サーバーが1つのシャードを完全に取得する前に容量不足になった場合、空き容量ができて処理を続行できるようになるまで取得プロセスを停止します。この後、古いシャードは完成された最新のシャードに置き換えられます。ディスク容量が十分にある場合は、`rippled`サーバーはシャードに割り当てられている最大ディスク容量(`max_size_gb`)に達するまで、ランダムに選択された追加のシャードを取得し、シャードストアーに追加します。 + +## XRP Ledgerネットワークデータの整合性 + +すべてのレジャーの履歴は、特定範囲の履歴レジャーを維持することに同意したサーバー間で共有されます。これにより、各サーバーは維持することに同意したデータがすべてあることを確認し、プルーフツリーまたはレジャーデルタを作成できるようになります。履歴シャーディングが設定されている`rippled`サーバーは、保存するシャードをランダムに選択するため、すべての閉鎖済みレジャーの履歴全体が正規分布曲線で保存され、XRP Ledgerネットワークで履歴が均一に維持される確率が高くなります。 + +## 関連項目 + +- [履歴シャーディングの設定](configure-history-sharding.html) +- [download_shardメソッド][] +- [crawl_shardsメソッド][] + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/the-rippled-server/ledger-history/ledger-history.ja.md b/content/concepts/the-rippled-server/ledger-history/ledger-history.ja.md index 0c34b060f2..fe5b93f51f 100644 --- a/content/concepts/the-rippled-server/ledger-history/ledger-history.ja.md +++ b/content/concepts/the-rippled-server/ledger-history/ledger-history.ja.md @@ -1,56 +1,56 @@ -# レジャー履歴 - -[コンセンサスプロセス](intro-to-consensus.html)により、[検証済みレジャーバージョン](ledgers.html)のチェーンが作成されます。各バージョンは、以前のバージョンにトランザクションのセットを適用して生成されます。各`rippled`サーバーには、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバーに保管されるトランザクション履歴の量は、サーバーがオンラインであった期間と、サーバーが取得し、保持する履歴量の設定に応じて異なります。 - -ピアツーピアのXRP Ledgerネットワーク内のサーバーは、コンセンサスプロセスの一環としてトランザクションやその他のデータを相互に共有します。各サーバーは個別に新しいレジャーバージョンを作成し、その結果を信頼できるバリデータと比較して、整合性を維持します。(信頼できるバリデータのコンセンサスがサーバーの結果と一致しない場合は、サーバーがピアから必要なデータを取得して整合性を維持します。)サーバーはピアから古いデータをダウンロードして、利用可能な履歴のギャップを埋めることができます。レジャーはデータの暗号[ハッシュ](basic-data-types.html#ハッシュ)を使用した構造となっているため、すべてのサーバーがデータの整合性の検証を行えます。 - -## データベース - -サーバーはレジャーの状態データとトランザクションを _レジャーストアー_ と呼ばれるkey-valueストアで保持します。また、`rippled`にはいくつかのSQLiteデータベースファイルが維持されているので、トランザクション履歴などへより柔軟にアクセスし、特定の設定変更を追跡できます。 - -一般に、`rippled`サーバーが稼働していないときにはそのサーバーのすべてのデータベースファイルを安全に削除できます。(たとえばサーバーのストレージ設定を変更する場合や、Test Netから本番環境ネットワークに切り替える場合に、このような削除が必要となることがあります。) - -## 利用可能な履歴 - -設計上、XRP Ledgerのすべてのデータとトランザクションは公開されており、誰でもすべてのデータを検索または照会できます。ただし、サーバーが検索できるデータは、そのサーバーがローカルで使用できるデータに限られます。サーバーで利用できないレジャーバージョンやトランザクションを照会しようとすると、そのデータが見つからないという応答がサーバーから返されます。必要な履歴を保持している他のサーバーに対して同じ照会を実行すると、正常な応答が返されます。XRP Ledgerデータを使用する企業では、サーバーで利用可能な履歴の量に注意してください。 - -[server_infoメソッド][]は、サーバーで利用可能なレジャーバージョンの数を`complete_ledgers`フィールドで報告します。 - -## 履歴の取得 - -`rippled`サーバーは起動されると、最優先で最新の検証済みレジャーの完全なコピーを取得します。その後、サーバーは常にレジャーの進行状況を把握します。レジャー履歴を埋め戻すように設定されているサーバーでは、レジャー履歴が設定量に達するまで埋め戻されます。この設定量は、オンライン削除による削除が開始されるカットオフ値以下でなければなりません。 - -サーバーは同期される前から履歴の埋め戻しを行い、同期後にも収集した履歴のギャップを埋めることができます。(レジャー履歴のギャップは、サーバーの使用率が一時的に高くなりネットワークと同期をとることができない場合、ネットワークとの接続が失われた場合、またはその他の一時的な問題の影響を受けた場合に発生する可能性があります。)履歴を埋め戻すため、サーバーはピア`rippled`サーバーにデータを要求します。サーバーが埋め戻す量は、`[ledger_history]`設定で定義されます。 - -XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要が[LedgerHashesオブジェクトタイプ](ledgerhashes.html)の形式で含まれています。サーバーはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。 - -履歴の埋め戻しは、サーバーでは最も優先度の低い処理の1つであるため、サーバーの使用率が高い場合やハードウェアとネットワークのスペックが十分ではない場合には、欠落している履歴を埋めるのに時間がかかることがあります。推奨されるハードウェアスペックについては、[容量の計画](capacity-planning.html)を参照してください。履歴の埋め戻しでは、サーバーのダイレクトピアの1つ以上に当該の履歴が保持されている必要もあります。 - -### 指示による削除の使用 - -[オンライン削除](online-deletion.html)と指示による削除の両方が有効な場合、サーバーでは、まだ削除が許可されていない最も古いレジャーまでのデータが自動的に埋め戻されます。これにより、`[ledger_history]`設定と`online_delete`設定で構成されているレジャーバージョンの数よりも多いデータが取得されることがあります。[can_deleteメソッド][]を実行すると、削除可能なレジャーバージョンがサーバーに通知されます。 - - -## すべての履歴 - -XRP Ledgerネットワーク内の一部のサーバーは、「すべての履歴が記録される」サーバーとして設定されています。これらのサーバーは、使用可能なすべてのXRP Ledgerの履歴を収集しますが、**オンライン削除は使用しません**。このため他の追跡サーバーよりもかなり多くのディスク容量が必要です。 - -Rippleは、`s2.ripple.com`ですべての履歴が記録される一連の公開サーバーを公開サービスとして提供しています。このサービスは、より大きなXRPコミュニティーのために提供されています。Rippleは、サーバーを悪用するユーザーや、公平な量を超えるサーバーのリソースを使用するユーザーをブロックする権利を留保しています。 - -**ヒント:** 一部の暗号資産ネットワークとは異なり、XRP Ledgerのサーバーは、現在の状態を認識して最新のトランザクションを把握するのにすべての履歴を必要としません。 - -すべての履歴の設定については、[完全な履歴の設定](configure-full-history.html)を参照してください。 - -## 履歴シャーディング - -XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わりに、複数のサーバーがレジャー履歴の一部分を保管するように構成できます。これは[履歴シャーディング](history-sharding.html)機能によって実現します。一定範囲のレジャー履歴が _シャードストアー_ という個別の保管領域に保管されます。ピアサーバーから(上記の[履歴の取得](#履歴の取得)で説明したとおり)特定のデータが要求されると、サーバーはレジャーストアーまたはシャードストアーのデータを使用して応答できます。 - -オンライン削除ではシャードストアーのデータは削除**されません**。ただし、32768個以上のレジャーバージョンをサーバーのレジャーストアーに保持するようにオンライン削除が設定されていれば、レジャーストアーからデータが自動的に削除される前に、サーバーはレジャーストアーからシャードストアーにすべてのシャードをコピーできます。 - -詳細は、[履歴シャーディングの設定](configure-history-sharding.html)を参照してください。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# レジャー履歴 + +[コンセンサスプロセス](intro-to-consensus.html)により、[検証済みレジャーバージョン](ledgers.html)のチェーンが作成されます。各バージョンは、以前のバージョンにトランザクションのセットを適用して生成されます。各`rippled`サーバーには、レジャーバージョンとトランザクション履歴がローカルに保管されます。サーバーに保管されるトランザクション履歴の量は、サーバーがオンラインであった期間と、サーバーが取得し、保持する履歴量の設定に応じて異なります。 + +ピアツーピアのXRP Ledgerネットワーク内のサーバーは、コンセンサスプロセスの一環としてトランザクションやその他のデータを相互に共有します。各サーバーは個別に新しいレジャーバージョンを作成し、その結果を信頼できるバリデータと比較して、整合性を維持します。(信頼できるバリデータのコンセンサスがサーバーの結果と一致しない場合は、サーバーがピアから必要なデータを取得して整合性を維持します。)サーバーはピアから古いデータをダウンロードして、利用可能な履歴のギャップを埋めることができます。レジャーはデータの暗号[ハッシュ](basic-data-types.html#ハッシュ)を使用した構造となっているため、すべてのサーバーがデータの整合性の検証を行えます。 + +## データベース + +サーバーはレジャーの状態データとトランザクションを _レジャーストアー_ と呼ばれるkey-valueストアで保持します。また、`rippled`にはいくつかのSQLiteデータベースファイルが維持されているので、トランザクション履歴などへより柔軟にアクセスし、特定の設定変更を追跡できます。 + +一般に、`rippled`サーバーが稼働していないときにはそのサーバーのすべてのデータベースファイルを安全に削除できます。(たとえばサーバーのストレージ設定を変更する場合や、Test Netから本番環境ネットワークに切り替える場合に、このような削除が必要となることがあります。) + +## 利用可能な履歴 + +設計上、XRP Ledgerのすべてのデータとトランザクションは公開されており、誰でもすべてのデータを検索または照会できます。ただし、サーバーが検索できるデータは、そのサーバーがローカルで使用できるデータに限られます。サーバーで利用できないレジャーバージョンやトランザクションを照会しようとすると、そのデータが見つからないという応答がサーバーから返されます。必要な履歴を保持している他のサーバーに対して同じ照会を実行すると、正常な応答が返されます。XRP Ledgerデータを使用する企業では、サーバーで利用可能な履歴の量に注意してください。 + +[server_infoメソッド][]は、サーバーで利用可能なレジャーバージョンの数を`complete_ledgers`フィールドで報告します。 + +## 履歴の取得 + +`rippled`サーバーは起動されると、最優先で最新の検証済みレジャーの完全なコピーを取得します。その後、サーバーは常にレジャーの進行状況を把握します。レジャー履歴を埋め戻すように設定されているサーバーでは、レジャー履歴が設定量に達するまで埋め戻されます。この設定量は、オンライン削除による削除が開始されるカットオフ値以下でなければなりません。 + +サーバーは同期される前から履歴の埋め戻しを行い、同期後にも収集した履歴のギャップを埋めることができます。(レジャー履歴のギャップは、サーバーの使用率が一時的に高くなりネットワークと同期をとることができない場合、ネットワークとの接続が失われた場合、またはその他の一時的な問題の影響を受けた場合に発生する可能性があります。)履歴を埋め戻すため、サーバーはピア`rippled`サーバーにデータを要求します。サーバーが埋め戻す量は、`[ledger_history]`設定で定義されます。 + +XRP Ledgerは、コンテンツの一意のハッシュを使用して(さまざまなレベルの)データを識別します。XRP Ledgerの状態データには、レジャーの履歴の概要が[LedgerHashesオブジェクトタイプ](ledgerhashes.html)の形式で含まれています。サーバーはLedgerHashesオブジェクトを使用して取得するレジャーバージョンを認識し、受信するレジャーデータが正しく完全であることを確認します。 + +履歴の埋め戻しは、サーバーでは最も優先度の低い処理の1つであるため、サーバーの使用率が高い場合やハードウェアとネットワークのスペックが十分ではない場合には、欠落している履歴を埋めるのに時間がかかることがあります。推奨されるハードウェアスペックについては、[容量の計画](capacity-planning.html)を参照してください。履歴の埋め戻しでは、サーバーのダイレクトピアの1つ以上に当該の履歴が保持されている必要もあります。 + +### 指示による削除の使用 + +[オンライン削除](online-deletion.html)と指示による削除の両方が有効な場合、サーバーでは、まだ削除が許可されていない最も古いレジャーまでのデータが自動的に埋め戻されます。これにより、`[ledger_history]`設定と`online_delete`設定で構成されているレジャーバージョンの数よりも多いデータが取得されることがあります。[can_deleteメソッド][]を実行すると、削除可能なレジャーバージョンがサーバーに通知されます。 + + +## すべての履歴 + +XRP Ledgerネットワーク内の一部のサーバーは、「すべての履歴が記録される」サーバーとして設定されています。これらのサーバーは、使用可能なすべてのXRP Ledgerの履歴を収集しますが、**オンライン削除は使用しません**。このため他の追跡サーバーよりもかなり多くのディスク容量が必要です。 + +Rippleは、`s2.ripple.com`ですべての履歴が記録される一連の公開サーバーを公開サービスとして提供しています。このサービスは、より大きなXRPコミュニティーのために提供されています。Rippleは、サーバーを悪用するユーザーや、公平な量を超えるサーバーのリソースを使用するユーザーをブロックする権利を留保しています。 + +**ヒント:** 一部の暗号資産ネットワークとは異なり、XRP Ledgerのサーバーは、現在の状態を認識して最新のトランザクションを把握するのにすべての履歴を必要としません。 + +すべての履歴の設定については、[完全な履歴の設定](configure-full-history.html)を参照してください。 + +## 履歴シャーディング + +XRP Ledgerのすべての履歴を1台の高価なマシンに保管する代わりに、複数のサーバーがレジャー履歴の一部分を保管するように構成できます。これは[履歴シャーディング](history-sharding.html)機能によって実現します。一定範囲のレジャー履歴が _シャードストアー_ という個別の保管領域に保管されます。ピアサーバーから(上記の[履歴の取得](#履歴の取得)で説明したとおり)特定のデータが要求されると、サーバーはレジャーストアーまたはシャードストアーのデータを使用して応答できます。 + +オンライン削除ではシャードストアーのデータは削除**されません**。ただし、32768個以上のレジャーバージョンをサーバーのレジャーストアーに保持するようにオンライン削除が設定されていれば、レジャーストアーからデータが自動的に削除される前に、サーバーはレジャーストアーからシャードストアーにすべてのシャードをコピーできます。 + +詳細は、[履歴シャーディングの設定](configure-history-sharding.html)を参照してください。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/the-rippled-server/ledger-history/online-deletion.ja.md b/content/concepts/the-rippled-server/ledger-history/online-deletion.ja.md index 7cdbbfd360..a41e35d8aa 100644 --- a/content/concepts/the-rippled-server/ledger-history/online-deletion.ja.md +++ b/content/concepts/the-rippled-server/ledger-history/online-deletion.ja.md @@ -1,122 +1,122 @@ -# オンライン削除 -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/misc/SHAMapStoreImp.cpp "Source") - -オンライン削除機能により、`rippled`サーバーはレジャーの古いバージョンのローカルコピーを削除できます。これにより、時間とともにディスク使用量が急増しないようにできます。デフォルトの構成ファイルにはオンライン削除の自動実行が設定されていますが、指示があった場合にのみオンライン削除を実行するようにも設定できます。[新規: rippled 0.27.0][] - -サーバーは、レジャーおよびそのすべての残高と設定を、常に完全かつ _最新_ の状態に維持します。削除されるデータには、保存されている履歴よりも古いレジャー状態の古いトランザクションやバージョンがあります。 - -デフォルトの構成ファイルは、`rippled`サーバーが2000の最新レジャーバージョンを保持し、古いデータを自動的に削除するように設定されています。 - -**ヒント:** オンライン削除を使用しても、同一期間のレジャーデータを保管するのに必要なディスク容量は時間の経過とともに増加します。これは、個々のレジャーバージョンのサイズが時間とともに増加する傾向にあるためです。蓄積データが増加するペースは、古いレジャーを削除しない場合に比べると、非常にゆっくりとしています。必要なディスク容量に関する詳細は、[容量の計画](capacity-planning.html)を参照してください。 - - -## 背景 - -`rippled`サーバーでは[レジャー履歴](ledger-history.html)がその _レジャーストアー_ に保管されます。このデータは時間とともに蓄積されます。 - -レジャーストアー内ではレジャーデータの「重複排除」が行われます。つまり、バージョン間で変更されていないデータは1回だけ保存されます。レジャーストアーのレコード自体には、レコードが記録されているレジャーバージョンの記載はありません。オンライン削除処理において、古いレジャーバージョンでのみ使用されるレコードが特定されます。この処理には時間がかかり、またディスクI/Oとアプリケーションキャッシュに影響するため、レジャーを閉鎖するたびに古いデータを削除することは現実的ではありません。 - - -## オンライン削除の動作 - -オンライン削除の設定では、`rippled`サーバーがレジャーストアーで使用可能な状態で維持するレジャーバージョンの数が設定されます。ただし、指定される数は目安であり、厳格に適用されるものではありません。 - -- サーバーでは、設定された数のレジャーバージョンよりも新しいデータが削除されることはありませんが、長期にわたってサーバーが稼働していない場合や、ネットワークとの同期が失われた場合には、サーバーに含まれるレジャーバージョンの数が使用可能な数よりも少ないことがあります。(サーバーは一部の履歴の埋め戻しを試みます。詳細は、[履歴の取得](ledger-history.html#履歴の取得)を参照してください。) -- オンライン削除の自動実行が設定されている場合、設定されているレジャーバージョンの数の2倍を超える数まで保存できる可能性があります。(オンライン削除を実行するたびに、保管されるレジャーバージョンの数が削減され、設定数に近くなります。) - - PCサーバーがビジーのためオンライン削除が遅延すると、レジャーバージョンが蓄積し続けることがあります。正常に動作している場合には、サーバー内のレジャーバージョン数が設定された数の2倍に達した時点でオンライン削除が開始されますが、さらにいくつかのレジャーバージョンが蓄積するまではオンライン削除が完了しないことがあります。 - -- 指示による削除が有効な場合、管理者が[can_deleteメソッド][]を呼び出すまで、サーバーが取得および作成したすべてのレジャーバージョンがサーバーに保存されます。 - - サーバーに保存されるデータ量は、[can_delete][can_deleteメソッド]を呼び出す頻度と、`online_delete`設定に指定されている期間の長さに応じて異なります。 - - - `online_delete`の間隔よりも頻繁に`can_delete`を呼び出す場合、サーバーには最大で **`online_delete`の値の2倍** にほぼ相当するレジャーバージョンが保存されます。(削除後には、この数はほぼ`online_delete`の値まで減少します。) - - たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`に値50,000を指定している場合、削除実行前のサーバーには通常、最大100,000のレジャーバージョンが蓄積されます。削除実行後は、少なくとも50,000のレジャーバージョン(約 2日分)がサーバーに保持されます。この設定では、約1回おきに`can_delete`を呼び出しした場合、変更が生じません。これは、削除するのに十分な数のレジャーバージョンがサーバーにないためです。 - - - `online_delete`の間隔 _よりも少ない頻度で_ `can_delete`を呼び出す場合、最大で **`can_delete`呼び出しの間隔のほぼ2倍** の期間にわたりレジャーバージョンがサーバーに保管されます。(削除後には、この数は約1間隔分のデータまで減少します。) - - たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`値に2000を指定している場合、サーバーでは通常、削除が実行されるまでに最大で2日間分のレジャーバージョンが保管されます。削除の実行後は、サーバーには約1日分のレジャーバージョン(約25,000)が保持されますが、このレジャーバージョンの数が2000を下回ることはありません。 - - -オンライン削除が有効であり、自動的に実行される場合(つまり指示による削除が無効な場合)、保管されるレジャーデータの量は、最低でもサーバーに設定された保持レジャーバージョン数に相当し、最大でその約2倍です。 - -オンライン削除が実行されても、ディスク上のSQLiteデータベースファイルのサイズは減少しません。これらのファイルの中に新しいデータを入れるのに再利用できるスペースが確保されるだけです。オンライン削除によって、レジャーストアーが含まれるRocksDB または NuDB データベースファイルのサイズは _減少します_ 。 - -サーバーでは、削除範囲を決定する際に検証済みレジャーバージョンの数だけがカウントされます。(ローカルネットワーク接続が停止していたか、グローバルXRP Ledgerネットワークがコンセンサスに達しなかったことが原因で)サーバーが新しいレジャーバージョンを検証できない例外的な状況にある場合、ネットワークが復旧した際に迅速に回復できるように、`rippled`は引き続きレジャーを閉鎖します。この場合、サーバーには未検証の閉鎖済みレジャーが多数蓄積されます。このような未検証レジャーは、オンライン削除の実行までにサーバーに保持される _検証済み_ レジャーの数には影響しません。 - -### オンライン削除の中断 - -[サーバーの状態](rippled-server-states.html)が`full`より優先順位の低い状態になると、オンライン削除は自動的に停止します。この場合、サーバーはプレフィクス`SHAMapStore::WRN`が付いたログメッセージを書き込みます。サーバーは完全に同期された後、次の検証済みレジャーバージョン以降からオンライン削除の再開を試みます。 - -サーバーを停止した場合や、オンライン削除の実行中にサーバーがクラッシュした場合には、サーバーが再起動し、完全に同期されれば、オンライン削除が再開されます。 - -オンライン削除を一時的に無効にするには、引数`never`を指定した[can_deleteメソッド][]を使用できます。この変更は、[can_delete][can_delete method] をもう一度呼び出してオンライン削除を再度有効にするまで保持されます。オンライン削除の実行時点の制御についての詳細は、[指示による削除](#指示による削除)を参照してください。 - - -## 設定 - -オンライン削除に関連する設定は以下のとおりです。 - -- **`online_delete`** - 維持する検証済みレジャーバージョンの数を指定します。サーバーは、この数よりも古いレジャーバージョンをすべて定期的に削除します。数を指定しなければ、レジャーは削除されません。 - - デフォルトの構成ファイルでは、この値は2000に設定されています。この値に256未満の数は設定はできません。これは、[手数料投票](fee-voting.html)や[Amendmentプロセス](amendments.html#amendmentプロセス)などのイベントで一度に更新されるレジャーの数が256であるためです。 - - **注意:**`online_delete`を無効にして`rippled`を実行し、その後`online_delete`を有効にしてサーバーを再起動すると、`online_delete`が無効の間にサーバーがダウンロードした既存のレジャー履歴は無視されますが、削除されません。ディスク容量を節約するには、`online_delete`設定の変更後にサーバーを再起動する前に、既存の履歴を削除します。 - -- **`[ledger_history]`** - 検証済みレジャーの数(`online_delete`の値以下)を指定します。サーバーの検証済みレジャーバージョンの数がこの数よりも少ない場合、ピアからデータを取得してバージョンを埋め戻す操作が試行されます。 - - この設定のデフォルト値はレジャー256個です。 - - 次の図は、`online_delete`設定と`ledger_history`設定の関係を示します。 - - ![`online_delete`より古いレジャーは自動的に削除されます。`ledger_history`よりも新しいレジャーは埋め戻されます。その間に位置するレジャーは、使用可能な場合は保持されますが、埋め戻しは行われません](img/online_delete-vs-ledger_history.ja.png) - -- **`advisory_delete`** - 有効な場合、オンライン削除は自動的にスケジュールされません。代わりに管理者が手動でオンライン削除をトリガーする必要があります。無効にするには値`0`を使用し、有効にするには`1`を使用します。 - - この設定はデフォルトで無効になっています。 - -- **`[fetch_depth]`** - 検証済みレジャーバージョンの数を指定します。サーバーは、指定されている数のレジャーバージョンよりも古い履歴データに対するピアからの取得要求を受け入れません。使用可能なすべてのデータをピアに提供するには、値`full`を指定します。 - - `fetch_depth`のデフォルトは`full`です(使用可能なすべてのデータを提供します)。 - - `fetch_depth`設定と`online_delete`設定の両方が指定されている場合、`fetch_depth`には`online_delete`よりも大きな値を設定できません。`fetch_depth`に大きな値が設定されている場合、サーバーは`fetch_depth`の値が`online_delete`と同等であるものとして扱います。 - - 次の図は、fetch_depthの仕組みを示します。 - - ![fetch_depthよりも古いレジャーバージョンはピアに提供されません](img/fetch_depth.ja.png) - -さまざまな量の履歴の保管に必要なディスク容量の見積もりについては、[容量の計画](capacity-planning.html#ディスク容量)を参照してください。 - -### 指示による削除 - -デフォルトの構成ファイルでは、オンライン削除が定期的に自動で実行されるように設定されています。構成ファイルに`online_delete`間隔が指定されていない場合、オンライン削除は実行されません。構成ファイルで`advisory_delete`設定が有効になっている場合、オンライン削除は、管理者が[can_deleteメソッド][]を使用してオンライン削除をトリガーしたときにのみ実行されます。 - -指示による削除とスケジュール済みジョブを使用すれば、閉鎖済みレジャーバージョン数の代わりに、時刻に基づいて自動削除をトリガーできます。サーバーの使用率が高い場合、オンライン削除によって負荷が追加されるとサーバーの処理が遅延し、コンセンサスネットワークと一時的に非同期になることがあります。この場合は、指示による削除を使用して、オンライン削除をオフピーク期間にのみ実行するようにスケジュールできます。 - -指示による削除はその他の目的でも使用できます。たとえば、トランザクションデータを削除する前に、そのデータが別のサーバーにバックアップされていることを手動で確認できます。あるいは、トランザクションデータを削除する前に、別のタスクによるそのデータの処理が完了していることを手動で確認できます。 - -`can_delete` API メソッドは、構成ファイルで `advisory_delete` が有効になっている場合は、一般的な自動削除または特定のレジャーバージョンまでの自動削除を有効または無効にできます。`rippled`サーバーの再起動前に構成ファイルで`advisory_delete`を無効にしている場合を除き、これらの設定はサーバーを再起動しても維持されます。 - - -## 仕組み - -オンライン削除では2つのデータベースが作成されます。このため、「古い」読み取り専用データベースと、書き込み可能な「現行」データベースが常に存在します。`rippled`サーバーはいずれかのデータベースからオブジェクトを読み取ることができます。このため、現行レジャーバージョンにはいずれかのデータベースのオブジェクトが含まれます。レジャーバージョン間でレジャー内のオブジェクトに変更がない場合、そのオブジェクトのコピーが1つだけデータベースに残ります。これにより、オブジェクトのコピーが重複してサーバーに保存されることはありません。レジャーバージョンの更新によりオブジェクトが変更されると、サーバーは変更されたオブジェクトを「新しい」データベースに保存し、古いバージョンのオブジェクト(古いレジャーバージョンで使用されているオブジェクト)は「古い」データベースに残ります。 - -オンライン削除を実行する場合、サーバーはまず、最も古いレジャーバージョンの中から保持するものを確認し、そのレジャーバージョンのすべてのオブジェクトを読み取り専用の「古い」データベースから「現行」データベースにコピーします。これにより、「現行」データベースには、選択したレジャーバージョンとそれ以降のすべての新しいバージョンで使用されるオブジェクトがすべて含まれることになります。次に、サーバーは「古い」データベースを削除し、既存の「現行」データベースを「古い」読み取り専用データベースにします。これ以降、サーバーは新しい「現行」データベースを始動し、新たな変更をすべてこのデータベースに保存します。 - -![オンライン削除で2つのデータベースがどのように使用されるかを示す図](img/online-deletion-process.ja.png) - -## 関連項目 - -- [容量の計画](capacity-planning.html) -- [can_deleteメソッド][] - APIリファレンス資料 -- [オンライン削除の設定](configure-online-deletion.html) -- [指示による削除の設定](configure-advisory-deletion.html) -- [完全な履歴の設定](configure-full-history.html) - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# オンライン削除 +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/misc/SHAMapStoreImp.cpp "Source") + +オンライン削除機能により、`rippled`サーバーはレジャーの古いバージョンのローカルコピーを削除できます。これにより、時間とともにディスク使用量が急増しないようにできます。デフォルトの構成ファイルにはオンライン削除の自動実行が設定されていますが、指示があった場合にのみオンライン削除を実行するようにも設定できます。[新規: rippled 0.27.0][] + +サーバーは、レジャーおよびそのすべての残高と設定を、常に完全かつ _最新_ の状態に維持します。削除されるデータには、保存されている履歴よりも古いレジャー状態の古いトランザクションやバージョンがあります。 + +デフォルトの構成ファイルは、`rippled`サーバーが2000の最新レジャーバージョンを保持し、古いデータを自動的に削除するように設定されています。 + +**ヒント:** オンライン削除を使用しても、同一期間のレジャーデータを保管するのに必要なディスク容量は時間の経過とともに増加します。これは、個々のレジャーバージョンのサイズが時間とともに増加する傾向にあるためです。蓄積データが増加するペースは、古いレジャーを削除しない場合に比べると、非常にゆっくりとしています。必要なディスク容量に関する詳細は、[容量の計画](capacity-planning.html)を参照してください。 + + +## 背景 + +`rippled`サーバーでは[レジャー履歴](ledger-history.html)がその _レジャーストアー_ に保管されます。このデータは時間とともに蓄積されます。 + +レジャーストアー内ではレジャーデータの「重複排除」が行われます。つまり、バージョン間で変更されていないデータは1回だけ保存されます。レジャーストアーのレコード自体には、レコードが記録されているレジャーバージョンの記載はありません。オンライン削除処理において、古いレジャーバージョンでのみ使用されるレコードが特定されます。この処理には時間がかかり、またディスクI/Oとアプリケーションキャッシュに影響するため、レジャーを閉鎖するたびに古いデータを削除することは現実的ではありません。 + + +## オンライン削除の動作 + +オンライン削除の設定では、`rippled`サーバーがレジャーストアーで使用可能な状態で維持するレジャーバージョンの数が設定されます。ただし、指定される数は目安であり、厳格に適用されるものではありません。 + +- サーバーでは、設定された数のレジャーバージョンよりも新しいデータが削除されることはありませんが、長期にわたってサーバーが稼働していない場合や、ネットワークとの同期が失われた場合には、サーバーに含まれるレジャーバージョンの数が使用可能な数よりも少ないことがあります。(サーバーは一部の履歴の埋め戻しを試みます。詳細は、[履歴の取得](ledger-history.html#履歴の取得)を参照してください。) +- オンライン削除の自動実行が設定されている場合、設定されているレジャーバージョンの数の2倍を超える数まで保存できる可能性があります。(オンライン削除を実行するたびに、保管されるレジャーバージョンの数が削減され、設定数に近くなります。) + + PCサーバーがビジーのためオンライン削除が遅延すると、レジャーバージョンが蓄積し続けることがあります。正常に動作している場合には、サーバー内のレジャーバージョン数が設定された数の2倍に達した時点でオンライン削除が開始されますが、さらにいくつかのレジャーバージョンが蓄積するまではオンライン削除が完了しないことがあります。 + +- 指示による削除が有効な場合、管理者が[can_deleteメソッド][]を呼び出すまで、サーバーが取得および作成したすべてのレジャーバージョンがサーバーに保存されます。 + + サーバーに保存されるデータ量は、[can_delete][can_deleteメソッド]を呼び出す頻度と、`online_delete`設定に指定されている期間の長さに応じて異なります。 + + - `online_delete`の間隔よりも頻繁に`can_delete`を呼び出す場合、サーバーには最大で **`online_delete`の値の2倍** にほぼ相当するレジャーバージョンが保存されます。(削除後には、この数はほぼ`online_delete`の値まで減少します。) + + たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`に値50,000を指定している場合、削除実行前のサーバーには通常、最大100,000のレジャーバージョンが蓄積されます。削除実行後は、少なくとも50,000のレジャーバージョン(約 2日分)がサーバーに保持されます。この設定では、約1回おきに`can_delete`を呼び出しした場合、変更が生じません。これは、削除するのに十分な数のレジャーバージョンがサーバーにないためです。 + + - `online_delete`の間隔 _よりも少ない頻度で_ `can_delete`を呼び出す場合、最大で **`can_delete`呼び出しの間隔のほぼ2倍** の期間にわたりレジャーバージョンがサーバーに保管されます。(削除後には、この数は約1間隔分のデータまで減少します。) + + たとえば`now`値を指定した`can_delete`を1日1回呼び出し、`online_delete`値に2000を指定している場合、サーバーでは通常、削除が実行されるまでに最大で2日間分のレジャーバージョンが保管されます。削除の実行後は、サーバーには約1日分のレジャーバージョン(約25,000)が保持されますが、このレジャーバージョンの数が2000を下回ることはありません。 + + +オンライン削除が有効であり、自動的に実行される場合(つまり指示による削除が無効な場合)、保管されるレジャーデータの量は、最低でもサーバーに設定された保持レジャーバージョン数に相当し、最大でその約2倍です。 + +オンライン削除が実行されても、ディスク上のSQLiteデータベースファイルのサイズは減少しません。これらのファイルの中に新しいデータを入れるのに再利用できるスペースが確保されるだけです。オンライン削除によって、レジャーストアーが含まれるRocksDB または NuDB データベースファイルのサイズは _減少します_ 。 + +サーバーでは、削除範囲を決定する際に検証済みレジャーバージョンの数だけがカウントされます。(ローカルネットワーク接続が停止していたか、グローバルXRP Ledgerネットワークがコンセンサスに達しなかったことが原因で)サーバーが新しいレジャーバージョンを検証できない例外的な状況にある場合、ネットワークが復旧した際に迅速に回復できるように、`rippled`は引き続きレジャーを閉鎖します。この場合、サーバーには未検証の閉鎖済みレジャーが多数蓄積されます。このような未検証レジャーは、オンライン削除の実行までにサーバーに保持される _検証済み_ レジャーの数には影響しません。 + +### オンライン削除の中断 + +[サーバーの状態](rippled-server-states.html)が`full`より優先順位の低い状態になると、オンライン削除は自動的に停止します。この場合、サーバーはプレフィクス`SHAMapStore::WRN`が付いたログメッセージを書き込みます。サーバーは完全に同期された後、次の検証済みレジャーバージョン以降からオンライン削除の再開を試みます。 + +サーバーを停止した場合や、オンライン削除の実行中にサーバーがクラッシュした場合には、サーバーが再起動し、完全に同期されれば、オンライン削除が再開されます。 + +オンライン削除を一時的に無効にするには、引数`never`を指定した[can_deleteメソッド][]を使用できます。この変更は、[can_delete][can_delete method] をもう一度呼び出してオンライン削除を再度有効にするまで保持されます。オンライン削除の実行時点の制御についての詳細は、[指示による削除](#指示による削除)を参照してください。 + + +## 設定 + +オンライン削除に関連する設定は以下のとおりです。 + +- **`online_delete`** - 維持する検証済みレジャーバージョンの数を指定します。サーバーは、この数よりも古いレジャーバージョンをすべて定期的に削除します。数を指定しなければ、レジャーは削除されません。 + + デフォルトの構成ファイルでは、この値は2000に設定されています。この値に256未満の数は設定はできません。これは、[手数料投票](fee-voting.html)や[Amendmentプロセス](amendments.html#amendmentプロセス)などのイベントで一度に更新されるレジャーの数が256であるためです。 + + **注意:**`online_delete`を無効にして`rippled`を実行し、その後`online_delete`を有効にしてサーバーを再起動すると、`online_delete`が無効の間にサーバーがダウンロードした既存のレジャー履歴は無視されますが、削除されません。ディスク容量を節約するには、`online_delete`設定の変更後にサーバーを再起動する前に、既存の履歴を削除します。 + +- **`[ledger_history]`** - 検証済みレジャーの数(`online_delete`の値以下)を指定します。サーバーの検証済みレジャーバージョンの数がこの数よりも少ない場合、ピアからデータを取得してバージョンを埋め戻す操作が試行されます。 + + この設定のデフォルト値はレジャー256個です。 + + 次の図は、`online_delete`設定と`ledger_history`設定の関係を示します。 + + ![`online_delete`より古いレジャーは自動的に削除されます。`ledger_history`よりも新しいレジャーは埋め戻されます。その間に位置するレジャーは、使用可能な場合は保持されますが、埋め戻しは行われません](img/online_delete-vs-ledger_history.ja.png) + +- **`advisory_delete`** - 有効な場合、オンライン削除は自動的にスケジュールされません。代わりに管理者が手動でオンライン削除をトリガーする必要があります。無効にするには値`0`を使用し、有効にするには`1`を使用します。 + + この設定はデフォルトで無効になっています。 + +- **`[fetch_depth]`** - 検証済みレジャーバージョンの数を指定します。サーバーは、指定されている数のレジャーバージョンよりも古い履歴データに対するピアからの取得要求を受け入れません。使用可能なすべてのデータをピアに提供するには、値`full`を指定します。 + + `fetch_depth`のデフォルトは`full`です(使用可能なすべてのデータを提供します)。 + + `fetch_depth`設定と`online_delete`設定の両方が指定されている場合、`fetch_depth`には`online_delete`よりも大きな値を設定できません。`fetch_depth`に大きな値が設定されている場合、サーバーは`fetch_depth`の値が`online_delete`と同等であるものとして扱います。 + + 次の図は、fetch_depthの仕組みを示します。 + + ![fetch_depthよりも古いレジャーバージョンはピアに提供されません](img/fetch_depth.ja.png) + +さまざまな量の履歴の保管に必要なディスク容量の見積もりについては、[容量の計画](capacity-planning.html#ディスク容量)を参照してください。 + +### 指示による削除 + +デフォルトの構成ファイルでは、オンライン削除が定期的に自動で実行されるように設定されています。構成ファイルに`online_delete`間隔が指定されていない場合、オンライン削除は実行されません。構成ファイルで`advisory_delete`設定が有効になっている場合、オンライン削除は、管理者が[can_deleteメソッド][]を使用してオンライン削除をトリガーしたときにのみ実行されます。 + +指示による削除とスケジュール済みジョブを使用すれば、閉鎖済みレジャーバージョン数の代わりに、時刻に基づいて自動削除をトリガーできます。サーバーの使用率が高い場合、オンライン削除によって負荷が追加されるとサーバーの処理が遅延し、コンセンサスネットワークと一時的に非同期になることがあります。この場合は、指示による削除を使用して、オンライン削除をオフピーク期間にのみ実行するようにスケジュールできます。 + +指示による削除はその他の目的でも使用できます。たとえば、トランザクションデータを削除する前に、そのデータが別のサーバーにバックアップされていることを手動で確認できます。あるいは、トランザクションデータを削除する前に、別のタスクによるそのデータの処理が完了していることを手動で確認できます。 + +`can_delete` API メソッドは、構成ファイルで `advisory_delete` が有効になっている場合は、一般的な自動削除または特定のレジャーバージョンまでの自動削除を有効または無効にできます。`rippled`サーバーの再起動前に構成ファイルで`advisory_delete`を無効にしている場合を除き、これらの設定はサーバーを再起動しても維持されます。 + + +## 仕組み + +オンライン削除では2つのデータベースが作成されます。このため、「古い」読み取り専用データベースと、書き込み可能な「現行」データベースが常に存在します。`rippled`サーバーはいずれかのデータベースからオブジェクトを読み取ることができます。このため、現行レジャーバージョンにはいずれかのデータベースのオブジェクトが含まれます。レジャーバージョン間でレジャー内のオブジェクトに変更がない場合、そのオブジェクトのコピーが1つだけデータベースに残ります。これにより、オブジェクトのコピーが重複してサーバーに保存されることはありません。レジャーバージョンの更新によりオブジェクトが変更されると、サーバーは変更されたオブジェクトを「新しい」データベースに保存し、古いバージョンのオブジェクト(古いレジャーバージョンで使用されているオブジェクト)は「古い」データベースに残ります。 + +オンライン削除を実行する場合、サーバーはまず、最も古いレジャーバージョンの中から保持するものを確認し、そのレジャーバージョンのすべてのオブジェクトを読み取り専用の「古い」データベースから「現行」データベースにコピーします。これにより、「現行」データベースには、選択したレジャーバージョンとそれ以降のすべての新しいバージョンで使用されるオブジェクトがすべて含まれることになります。次に、サーバーは「古い」データベースを削除し、既存の「現行」データベースを「古い」読み取り専用データベースにします。これ以降、サーバーは新しい「現行」データベースを始動し、新たな変更をすべてこのデータベースに保存します。 + +![オンライン削除で2つのデータベースがどのように使用されるかを示す図](img/online-deletion-process.ja.png) + +## 関連項目 + +- [容量の計画](capacity-planning.html) +- [can_deleteメソッド][] - APIリファレンス資料 +- [オンライン削除の設定](configure-online-deletion.html) +- [指示による削除の設定](configure-advisory-deletion.html) +- [完全な履歴の設定](configure-full-history.html) + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/the-rippled-server/peer-protocol.ja.md b/content/concepts/the-rippled-server/peer-protocol.ja.md index 2b06b860cf..c89ea0cedf 100644 --- a/content/concepts/the-rippled-server/peer-protocol.ja.md +++ b/content/concepts/the-rippled-server/peer-protocol.ja.md @@ -1,75 +1,75 @@ -# ピアプロトコル - -XRP Ledgerのサーバーは、XRP Ledgerピアプロトコル(RTXP)を使用して相互に通信します。 - -ピアプロトコルは、XRP Ledgerのサーバー間のメイン通信モードです。XRP Ledgerの動作、進捗状況、接続に関するすべての情報がピアプロトコルを通じて伝達されます。ピアツーピア通信の例を以下に示します。 - -- ピアツーピアネットワーク内の他のサーバーへの接続の要求、または接続スロットの使用可能性についてのアドバタイズ。 -- ネットワークのその他の部分との候補トランザクションの共有。 -- 履歴レジャーへのレジャーデータの要求、またはレジャーデータの提供。 -- コンセンサスのための一連のトランザクションの提示、またはコンセンサストランザクションセットの適用に関する算出結果の共有。 - -ピアツーピア接続を確立するには、サーバーどうしをHTTPSで接続し、一方のサーバーはRTXPへの切り替えのために[HTTPアップグレード](https://tools.ietf.org/html/rfc7230#section-6.7)を要求します。(詳細は、[`rippled`リポジトリ](https://github.com/ripple/rippled)の[Overlay Network](https://github.com/ripple/rippled/blob/906ef761bab95f80b0a7e0cab3b4c594b226cf57/src/ripple/overlay/README.md#handshake)を参照してください。) - -## ピアプロトコルポート - -XRP Ledgerに参加するため、`rippled`サーバーはピアプロトコルを使用して任意のピアに接続します。(すべてのピアは、現行サーバーで[クラスター化されている](clustering.html)場合を除き、信頼できないものとして扱われます。) - -サーバーがピアポートで接続を送信 _かつ_ 受信できることが理想的です。ピアプロトコルに使用するポートを、ファイアウォール経由で`rippled`サーバーに転送する必要があります。[デフォルトの`rippled`構成ファイル](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg)は、すべてのネットワークインターフェイスでポート51235で着信ピアプロトコル接続を待機します。使用するポートを変更するには、`rippled.cfg`ファイル内の該当するスタンザを編集します。 - -例: - -``` -[port_peer] -port = 51235 -ip = 0.0.0.0 -protocol = peer -``` - -ピアプロトコルポートは[特殊なPeer Crawler APIメソッド](peer-crawler.html)も処理します。 - -### ノードキーペア - -サーバーを初めて起動すると、ピアプロトコル通信でサーバー自体を識別するための _ノードキーペア_ が生成されます。サーバーはこのキーを使用して、ピアプロトコル通信のすべてに署名します。これにより、ピアツーピアネットワーク内の別のサーバーからのメッセージの整合性を、信頼できる方法で識別、検証できます。これは、そのサーバーのメッセージが信頼できないピアにより中継される場合も同様です。 - -ノードキーペアはデータベースに保存され、サーバーの再起動時に再利用されます。サーバーのデータベースを削除すると、新しいノードキーペアが作成され、異なるアイデンティティでオンラインになります。データベースが削除されても同じキーペアを再利用するには、`[node_seed]`スタンザを使用してサーバーを設定できます。`[node_seed]`スタンザでの使用に適した値を生成するには、[validation_createメソッド][]を使用します。 - -ノードキーペアは、このサーバーと共に[クラスター化](clustering.html)されている他のサーバーも識別します。サーバークラスターを使用している場合、一意の`[node_seed]`設定を使用してクラスター内の各サーバーを構成する必要があります。クラスターの設定についての詳細は、[`rippled`サーバーのクラスター化](cluster-rippled-servers.html)を参照してください。 - - -## プライベートピア - -`rippled`サーバーが「プライベート」サーバーとして動作するように設定し、そのIPアドレスを非公開にすることができます。これは、信頼できるバリデータなどの重要な`rippled`サーバーへのサービス拒否攻撃や侵入の試みに対する予防対策として有用です。ピアツーピアネットワークに参加するには、プライベートサーバーは1つ以上の非プライベートサーバーに接続するように設定されている必要があります。この非プライベートサーバーにより、メッセージがネットワークのその他の部分へ中継されます。 - -サーバーをプライベートサーバーとして設定すると次のさまざまな影響が生じます。 - -- サーバーがピアツーピアネットワーク内の他のサーバーに接続するように明示的に設定されていない場合、サーバーは他のサーバーに発信接続しません。 -- サーバーは、他のサーバーからの接続を受け入れるように明示的に設定されていない場合、他のサーバーからの着信接続を受け入れません。 -- サーバーはそのダイレクトピアに対し、信頼できない通信([ピアクローラーAPI応答](peer-crawler.html)を含む)の中ではサーバーのIPアドレスを公開しないように指示します。これは、[peers adminメソッド][peers method]などの信頼できる通信には影響しません。 - - プライベートサーバーの設定に関係なく、バリデータは常にそのピアに対し、バリデータのIPアドレスを非公開にするように指示します。これにより、バリデータがサービス拒否攻撃を受け過剰な負荷がかかることから保護されます。[新規: rippled 1.2.1][] - - **注意:** サーバーのソースコードを改ざんして、サーバーがこの要求を無視し、直近のピアのIPアドレスを共有する可能性があります。プライベートサーバーを、このように改ざんされていないことが確認されているサーバーにのみ接続するように設定してください。 - - -### プライベートサーバーの設定 - -サーバーがプライベートピアとして動作するように設定するには、`rippled`構成ファイルの`[peer_private]`スタンザを使用します。`[ips_fixed]`を使用して、サーバーの接続先サーバーをリストします。(`[ips_fixed]`にアドレスを指定せずに`[peer_private]`を有効にすると、サーバーはネットワークに接続しません。)追加の予防対策として、ファイアウォールを使用して他のサーバーからの着信接続をブロックします。 - -設定例: - -``` -# Configuration on a private server that only connects through -# a second rippled server at IP address 10.1.10.55 -[ips_fixed] -10.1.10.55 - -[peer_private] -1 -``` - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# ピアプロトコル + +XRP Ledgerのサーバーは、XRP Ledgerピアプロトコル(RTXP)を使用して相互に通信します。 + +ピアプロトコルは、XRP Ledgerのサーバー間のメイン通信モードです。XRP Ledgerの動作、進捗状況、接続に関するすべての情報がピアプロトコルを通じて伝達されます。ピアツーピア通信の例を以下に示します。 + +- ピアツーピアネットワーク内の他のサーバーへの接続の要求、または接続スロットの使用可能性についてのアドバタイズ。 +- ネットワークのその他の部分との候補トランザクションの共有。 +- 履歴レジャーへのレジャーデータの要求、またはレジャーデータの提供。 +- コンセンサスのための一連のトランザクションの提示、またはコンセンサストランザクションセットの適用に関する算出結果の共有。 + +ピアツーピア接続を確立するには、サーバーどうしをHTTPSで接続し、一方のサーバーはRTXPへの切り替えのために[HTTPアップグレード](https://tools.ietf.org/html/rfc7230#section-6.7)を要求します。(詳細は、[`rippled`リポジトリ](https://github.com/ripple/rippled)の[Overlay Network](https://github.com/ripple/rippled/blob/906ef761bab95f80b0a7e0cab3b4c594b226cf57/src/ripple/overlay/README.md#handshake)を参照してください。) + +## ピアプロトコルポート + +XRP Ledgerに参加するため、`rippled`サーバーはピアプロトコルを使用して任意のピアに接続します。(すべてのピアは、現行サーバーで[クラスター化されている](clustering.html)場合を除き、信頼できないものとして扱われます。) + +サーバーがピアポートで接続を送信 _かつ_ 受信できることが理想的です。ピアプロトコルに使用するポートを、ファイアウォール経由で`rippled`サーバーに転送する必要があります。[デフォルトの`rippled`構成ファイル](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg)は、すべてのネットワークインターフェイスでポート51235で着信ピアプロトコル接続を待機します。使用するポートを変更するには、`rippled.cfg`ファイル内の該当するスタンザを編集します。 + +例: + +``` +[port_peer] +port = 51235 +ip = 0.0.0.0 +protocol = peer +``` + +ピアプロトコルポートは[特殊なPeer Crawler APIメソッド](peer-crawler.html)も処理します。 + +### ノードキーペア + +サーバーを初めて起動すると、ピアプロトコル通信でサーバー自体を識別するための _ノードキーペア_ が生成されます。サーバーはこのキーを使用して、ピアプロトコル通信のすべてに署名します。これにより、ピアツーピアネットワーク内の別のサーバーからのメッセージの整合性を、信頼できる方法で識別、検証できます。これは、そのサーバーのメッセージが信頼できないピアにより中継される場合も同様です。 + +ノードキーペアはデータベースに保存され、サーバーの再起動時に再利用されます。サーバーのデータベースを削除すると、新しいノードキーペアが作成され、異なるアイデンティティでオンラインになります。データベースが削除されても同じキーペアを再利用するには、`[node_seed]`スタンザを使用してサーバーを設定できます。`[node_seed]`スタンザでの使用に適した値を生成するには、[validation_createメソッド][]を使用します。 + +ノードキーペアは、このサーバーと共に[クラスター化](clustering.html)されている他のサーバーも識別します。サーバークラスターを使用している場合、一意の`[node_seed]`設定を使用してクラスター内の各サーバーを構成する必要があります。クラスターの設定についての詳細は、[`rippled`サーバーのクラスター化](cluster-rippled-servers.html)を参照してください。 + + +## プライベートピア + +`rippled`サーバーが「プライベート」サーバーとして動作するように設定し、そのIPアドレスを非公開にすることができます。これは、信頼できるバリデータなどの重要な`rippled`サーバーへのサービス拒否攻撃や侵入の試みに対する予防対策として有用です。ピアツーピアネットワークに参加するには、プライベートサーバーは1つ以上の非プライベートサーバーに接続するように設定されている必要があります。この非プライベートサーバーにより、メッセージがネットワークのその他の部分へ中継されます。 + +サーバーをプライベートサーバーとして設定すると次のさまざまな影響が生じます。 + +- サーバーがピアツーピアネットワーク内の他のサーバーに接続するように明示的に設定されていない場合、サーバーは他のサーバーに発信接続しません。 +- サーバーは、他のサーバーからの接続を受け入れるように明示的に設定されていない場合、他のサーバーからの着信接続を受け入れません。 +- サーバーはそのダイレクトピアに対し、信頼できない通信([ピアクローラーAPI応答](peer-crawler.html)を含む)の中ではサーバーのIPアドレスを公開しないように指示します。これは、[peers adminメソッド][peers method]などの信頼できる通信には影響しません。 + + プライベートサーバーの設定に関係なく、バリデータは常にそのピアに対し、バリデータのIPアドレスを非公開にするように指示します。これにより、バリデータがサービス拒否攻撃を受け過剰な負荷がかかることから保護されます。[新規: rippled 1.2.1][] + + **注意:** サーバーのソースコードを改ざんして、サーバーがこの要求を無視し、直近のピアのIPアドレスを共有する可能性があります。プライベートサーバーを、このように改ざんされていないことが確認されているサーバーにのみ接続するように設定してください。 + + +### プライベートサーバーの設定 + +サーバーがプライベートピアとして動作するように設定するには、`rippled`構成ファイルの`[peer_private]`スタンザを使用します。`[ips_fixed]`を使用して、サーバーの接続先サーバーをリストします。(`[ips_fixed]`にアドレスを指定せずに`[peer_private]`を有効にすると、サーバーはネットワークに接続しません。)追加の予防対策として、ファイアウォールを使用して他のサーバーからの着信接続をブロックします。 + +設定例: + +``` +# Configuration on a private server that only connects through +# a second rippled server at IP address 10.1.10.55 +[ips_fixed] +10.1.10.55 + +[peer_private] +1 +``` + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/concepts/the-rippled-server/rippled-server-modes.ja.md b/content/concepts/the-rippled-server/rippled-server-modes.ja.md index e83b034732..b98f7ea233 100644 --- a/content/concepts/the-rippled-server/rippled-server-modes.ja.md +++ b/content/concepts/the-rippled-server/rippled-server-modes.ja.md @@ -1,56 +1,56 @@ -# rippledサーバーのモード - -`rippled`サーバーソフトウェアは、その設定に応じて以下のようなさまざまなモードで実行できます。 - -* ストックサーバー - レジャーのローカルコピーを保持し、ネットワークをフォローします。 -* 検証サーバー(_バリデータ_)- コンセンサスの参加者(ストックサーバーの処理もすべて行います)。 -* `rippled` スタンドアロンモードのサーバー - テスト用。他の`rippled`サーバーと通信しません。 - -また、[`rippled` API](rippled-api.html)にローカルでアクセスするためのクライアントアプリケーションとして、`rippled`実行可能ファイルを実行できます。(この場合同じバイナリの2つのインスタンスを並列して実行できます。1つのインスタンスをサーバーとして実行し、もう1つのインスタンスをクライアントとして一時的に実行して終了します。) - -各モードでrippledを実行するためのコマンドについては、[rippledコマンドライン使用リファレンス](commandline-usage.html)を参照してください。 - - -## ストックサーバーを運用する理由 - -独自の`rippled`サーバーを運用する理由は多数ありますが、その最たる理由として、独自サーバーが信頼できるものであり、自身でその負荷を管理でき、サーバーにアクセスするタイミングとアクセス方法を他のユーザーに依存せずに決めることができる点があげられます。もちろん、独自サーバーを不正使用者から保護するために適切なネットワークセキュリティ対策を講じなければなりません。 - -使用する`rippled`を信頼する必要があります。悪意のあるサーバーに接続してしまうと、そのサーバーはさまざまな方法であなたを利用して資金を失わせることができます。次に例を示します。 - -* 悪意のあるサーバーは、実際には行われていないあなたへの支払いが行われたと報告することがあります。 -* ペイメントパスと通貨取引オファーを選択的に表示または非表示にし、最適なディールをあなたに提示せずに不正使用者の利益になるようにします。 -* 悪意のあるサーバーにアドレスのシークレットキーを送信すると、このサーバーがあなたの代理として任意のトランザクションを実行し、アドレスが保有する資金全額を送金または消却することがあります。 - -さらに、独自サーバーを運用することでサーバーを制御できるようになり、重要な管理者専用コマンドや負荷の高いコマンドを実行できます。共有サーバーを使用する場合は、同じサーバーを利用する他のユーザーとサーバーのコンピューティング能力をめぐって競合することに注意する必要があります。WebSocket APIのコマンドの多くは、サーバーに大きな負荷をかけるため、`rippled`には必要に応じてその応答を縮小できるオプションがあります。サーバーを他のユーザーと共有する場合には、常に最適の結果を得られるとは限りません。 - -最後に、各自で検証サーバーを運用する場合には、ストックサーバーをパブリックネットワークへのプロキシとして使用し、ストックサーバー経由でのみ外部にアクセス可能なプライベートサブネット上で検証サーバーを維持することができます。これにより、検証サーバーの整合性を危うくすることはさらに難しくなります。 - - -## バリデータを運用する理由 - -XRP Ledgerの堅牢性は、バリデータが相互に接続されたネットワークに依存しています。各バリデータは、他の何人かのバリデータが _共謀しない_ と信頼しています。利害の異なるバリデータ運用オペレーターが増えるほど、ネットワークの各メンバーは、ネットワークが引き続き公平に運営されることに確信が持てるようになります。XRP Ledgerを使用している組織や個人の場合、コンセンサスプロセスへ参加することが自らの利益につながります。 - -すべての`rippled`サーバーをバリデータとする必要はありません。信頼する同一オペレーターのサーバーの数が増えても、共謀の発生をよりよく防止できるわけではありません。組織が自然災害などの緊急事態に備えて冗長性を保つために、複数の地域でバリデータを運用することがあります。 - -組織が検証サーバーを運用している場合は、1つ以上のストックサーバーを実行して、APIアクセスの計算負荷のバランスを取ったり、それらを検証サーバーと外部ネットワーク間のプロキシとすることもできます。 - -バリデータの実行についての詳細は、[バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html)を参照してください。 - - - -## `rippled`サーバーをスタンドアロンモードで実行する理由 - -信頼できるサーバーのコンセンサスなしでも、`rippled`をスタンドアロンモードで実行できます。スタンドアロンモードでは、`rippled`はXRP Ledgerピアツーピアネットワーク内のその他のサーバーとは通信しませんが、同じ操作のほとんどをローカルサーバーのみで実行できます。スタンドアロンでは、本番環境ネットワークに接続せずに`rippled`の動作をテストできます。たとえば、分散型ネットワークにAmendmentが反映される前に、[Amendmentの効果をテスト](amendments.html#amendmentのテスト)できます。 - -`rippled`をスタンドアロンモードで実行する場合、どのレジャーバージョンから開始するかを指示する必要があります。 - -* [新しいジェネシスレジャー](start-a-new-genesis-ledger-in-stand-alone-mode.html)を最初から作成する。 -* ディスクから[既存のレジャーバージョンを読み込む](load-a-saved-ledger-in-stand-alone-mode.html)。 - -**注意:** スタンドアロンモードでは[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.html)必要があります。 - -## 関連項目 - -- [コマンドライン使用リファレンス](commandline-usage.html) - すべての`rippled`サーバーモードのコマンドラインオプションに関する詳細情報。 - -{% include '_snippets/rippled_versions.md' %} +# rippledサーバーのモード + +`rippled`サーバーソフトウェアは、その設定に応じて以下のようなさまざまなモードで実行できます。 + +* ストックサーバー - レジャーのローカルコピーを保持し、ネットワークをフォローします。 +* 検証サーバー(_バリデータ_)- コンセンサスの参加者(ストックサーバーの処理もすべて行います)。 +* `rippled` スタンドアロンモードのサーバー - テスト用。他の`rippled`サーバーと通信しません。 + +また、[`rippled` API](rippled-api.html)にローカルでアクセスするためのクライアントアプリケーションとして、`rippled`実行可能ファイルを実行できます。(この場合同じバイナリの2つのインスタンスを並列して実行できます。1つのインスタンスをサーバーとして実行し、もう1つのインスタンスをクライアントとして一時的に実行して終了します。) + +各モードでrippledを実行するためのコマンドについては、[rippledコマンドライン使用リファレンス](commandline-usage.html)を参照してください。 + + +## ストックサーバーを運用する理由 + +独自の`rippled`サーバーを運用する理由は多数ありますが、その最たる理由として、独自サーバーが信頼できるものであり、自身でその負荷を管理でき、サーバーにアクセスするタイミングとアクセス方法を他のユーザーに依存せずに決めることができる点があげられます。もちろん、独自サーバーを不正使用者から保護するために適切なネットワークセキュリティ対策を講じなければなりません。 + +使用する`rippled`を信頼する必要があります。悪意のあるサーバーに接続してしまうと、そのサーバーはさまざまな方法であなたを利用して資金を失わせることができます。次に例を示します。 + +* 悪意のあるサーバーは、実際には行われていないあなたへの支払いが行われたと報告することがあります。 +* ペイメントパスと通貨取引オファーを選択的に表示または非表示にし、最適なディールをあなたに提示せずに不正使用者の利益になるようにします。 +* 悪意のあるサーバーにアドレスのシークレットキーを送信すると、このサーバーがあなたの代理として任意のトランザクションを実行し、アドレスが保有する資金全額を送金または消却することがあります。 + +さらに、独自サーバーを運用することでサーバーを制御できるようになり、重要な管理者専用コマンドや負荷の高いコマンドを実行できます。共有サーバーを使用する場合は、同じサーバーを利用する他のユーザーとサーバーのコンピューティング能力をめぐって競合することに注意する必要があります。WebSocket APIのコマンドの多くは、サーバーに大きな負荷をかけるため、`rippled`には必要に応じてその応答を縮小できるオプションがあります。サーバーを他のユーザーと共有する場合には、常に最適の結果を得られるとは限りません。 + +最後に、各自で検証サーバーを運用する場合には、ストックサーバーをパブリックネットワークへのプロキシとして使用し、ストックサーバー経由でのみ外部にアクセス可能なプライベートサブネット上で検証サーバーを維持することができます。これにより、検証サーバーの整合性を危うくすることはさらに難しくなります。 + + +## バリデータを運用する理由 + +XRP Ledgerの堅牢性は、バリデータが相互に接続されたネットワークに依存しています。各バリデータは、他の何人かのバリデータが _共謀しない_ と信頼しています。利害の異なるバリデータ運用オペレーターが増えるほど、ネットワークの各メンバーは、ネットワークが引き続き公平に運営されることに確信が持てるようになります。XRP Ledgerを使用している組織や個人の場合、コンセンサスプロセスへ参加することが自らの利益につながります。 + +すべての`rippled`サーバーをバリデータとする必要はありません。信頼する同一オペレーターのサーバーの数が増えても、共謀の発生をよりよく防止できるわけではありません。組織が自然災害などの緊急事態に備えて冗長性を保つために、複数の地域でバリデータを運用することがあります。 + +組織が検証サーバーを運用している場合は、1つ以上のストックサーバーを実行して、APIアクセスの計算負荷のバランスを取ったり、それらを検証サーバーと外部ネットワーク間のプロキシとすることもできます。 + +バリデータの実行についての詳細は、[バリデータとしての`rippled`の実行](run-rippled-as-a-validator.html)を参照してください。 + + + +## `rippled`サーバーをスタンドアロンモードで実行する理由 + +信頼できるサーバーのコンセンサスなしでも、`rippled`をスタンドアロンモードで実行できます。スタンドアロンモードでは、`rippled`はXRP Ledgerピアツーピアネットワーク内のその他のサーバーとは通信しませんが、同じ操作のほとんどをローカルサーバーのみで実行できます。スタンドアロンでは、本番環境ネットワークに接続せずに`rippled`の動作をテストできます。たとえば、分散型ネットワークにAmendmentが反映される前に、[Amendmentの効果をテスト](amendments.html#amendmentのテスト)できます。 + +`rippled`をスタンドアロンモードで実行する場合、どのレジャーバージョンから開始するかを指示する必要があります。 + +* [新しいジェネシスレジャー](start-a-new-genesis-ledger-in-stand-alone-mode.html)を最初から作成する。 +* ディスクから[既存のレジャーバージョンを読み込む](load-a-saved-ledger-in-stand-alone-mode.html)。 + +**注意:** スタンドアロンモードでは[レジャーを手動で進める](advance-the-ledger-in-stand-alone-mode.html)必要があります。 + +## 関連項目 + +- [コマンドライン使用リファレンス](commandline-usage.html) - すべての`rippled`サーバーモードのコマンドラインオプションに関する詳細情報。 + +{% include '_snippets/rippled_versions.md' %} diff --git a/content/dev-tools/dev-tools.ja.md b/content/dev-tools/dev-tools.ja.md index f678ace661..b1cb49a8fc 100644 --- a/content/dev-tools/dev-tools.ja.md +++ b/content/dev-tools/dev-tools.ja.md @@ -1,28 +1,28 @@ -# 開発者用ツール - - -Rippleには、XRP LedgerのAPIリクエストと動作をテスト、探索、検証するための一連の開発者用ツールがそろっています。 - -* **[XRP Ledger Lookup Tool](xrp-ledger-rpc-tool.html)** - - このJSON-RPCベースのデバッグツールを使用して、XRP Ledgerのアカウント、取引、台帳についての生データを表示します。 - -* **[XRP Ledger Test Net Faucet](xrp-test-net-faucet.html)** - - WebSocketおよびJSON-RPC Test Netエンドポイントを使用して、XRP Ledger上で構築したソフトウェアを実際の資金を使用せずにテストします。テストの目的でTest Netのクレデンシャルと資金を生成します。Test Netの台帳と残高は定期的にリセットされます。 - - -* **[rippled API WebSocket Tool](websocket-api-tool.html)** - - 動作中のrippled APIを今すぐ見る必要がありますか? このツールを使用して、あらかじめ用意されたサンプル要求を送信し、応答を取得します。設定は何も必要ありません。 - - -* **[Data API v2 Tool](data-api-v2-tool.html)** - - 動作中のData API v2を今すぐ見る必要がありますか? このツールを使用して、あらかじめ用意されたサンプル要求を送信し、応答を取得します。設定は何も必要ありません。 - -* **[rippled.txt Validator](ripple-txt-validator.html)** - - このツールを使用して、「ripple.txt」が構文的に正しいことと、正しくデプロイされたことを確認します。 - -ここにないツールについて何かアイデアをお持ちですか? [お問い合わせ>](mailto:docs@ripple.com) +# 開発者用ツール + + +Rippleには、XRP LedgerのAPIリクエストと動作をテスト、探索、検証するための一連の開発者用ツールがそろっています。 + +* **[XRP Ledger Lookup Tool](xrp-ledger-rpc-tool.html)** + + このJSON-RPCベースのデバッグツールを使用して、XRP Ledgerのアカウント、取引、台帳についての生データを表示します。 + +* **[XRP Ledger Test Net Faucet](xrp-test-net-faucet.html)** + + WebSocketおよびJSON-RPC Test Netエンドポイントを使用して、XRP Ledger上で構築したソフトウェアを実際の資金を使用せずにテストします。テストの目的でTest Netのクレデンシャルと資金を生成します。Test Netの台帳と残高は定期的にリセットされます。 + + +* **[rippled API WebSocket Tool](websocket-api-tool.html)** + + 動作中のrippled APIを今すぐ見る必要がありますか? このツールを使用して、あらかじめ用意されたサンプル要求を送信し、応答を取得します。設定は何も必要ありません。 + + +* **[Data API v2 Tool](data-api-v2-tool.html)** + + 動作中のData API v2を今すぐ見る必要がありますか? このツールを使用して、あらかじめ用意されたサンプル要求を送信し、応答を取得します。設定は何も必要ありません。 + +* **[rippled.txt Validator](ripple-txt-validator.html)** + + このツールを使用して、「ripple.txt」が構文的に正しいことと、正しくデプロイされたことを確認します。 + +ここにないツールについて何かアイデアをお持ちですか? [お問い合わせ>](mailto:docs@ripple.com) diff --git a/content/references/data-api.ja.md b/content/references/data-api.ja.md index 2deb4a4553..6b0d228b0b 100644 --- a/content/references/data-api.ja.md +++ b/content/references/data-api.ja.md @@ -1,5407 +1,5407 @@ -# Ripple Data API v2 - -Ripple Data API v2を使用すると、XRP Ledgerの変更に関する情報(トランザクション履歴や処理済みの分析データなど)にアクセスできます。このような情報は専用データベースに保管されるので、`rippled`サーバーで保持する必要のある履歴レジャーバージョンの数が少なくなります。Data API v2は[XRP Charts](https://xrpcharts.ripple.com/)や[ripple.com](https://www.ripple.com)などのアプリケーションのデータソースとしても機能します。 - -Rippleは可能な限り完全なトランザクションレコードが含まれているData APIのライブインスタンスを以下のアドレスで公開しています。 - -[**https://data.ripple.com**](https://data.rifpple.com) - - -## 詳細情報 -Ripple Data API v2はHistorical Database v1および[Charts API](https://github.com/ripple/ripple-data-api/)を置き換えます。 - -* [APIメソッド](#apiメソッドリファレンス) -* [APIの規則](#apiの規則) -* [設定(ローカルインスタンス)](#historical-databaseの実行) -* [ソースコード(Github)](https://github.com/ripple/rippled-historical-database) -* [リリースノート](https://github.com/ripple/rippled-historical-database/releases) - -[v2.0.4]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.4 -[v2.0.5]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.5 -[v2.0.6]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.6 -[v2.0.7]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.7 -[v2.0.8]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.8 -[v2.1.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.1.0 -[v2.2.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.2.0 -[v2.3.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.0 -[v2.3.2]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.2 -[v2.3.5]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.5 -[v2.3.7]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.7 -[v2.4.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.4.0 - - -# APIメソッドリファレンス - -Data API v2は、以下のメソッドを備えたREST APIです。 - -レジャーコンテンツメソッド: - -* [Get Ledger - `GET /v2/ledgers/{ledger_identifier}`](#get-ledger) -* [Get Transaction - `GET /v2/transactions/{hash}`](#get-transaction) -* [Get Transactions - `GET /v2/transactions/`](#get-transactions) -* [Get Payments - `GET /v2/payments/{currency}`](#get-payments) -* [Get Exchanges - `GET /v2/exchanges/{base}/{counter}`](#get-exchanges) -* [Get Exchange Rates - `GET /v2/exchange_rates/{base}/{counter}`](#get-exchange-rates) -* [Normalize - `GET /v2/normalize`](#normalize) -* [Get Daily Reports - `GET /v2/reports/`](#get-daily-reports) -* [Get Stats - `GET /v2/stats/`](#get-stats) -* [Get Active Accounts - `GET /v2/active_accounts/{base}/{counter}`](#get-active-accounts) -* [Get Exchange Volume - `GET /v2/network/exchange_volume`](#get-exchange-volume) -* [Get Payment Volume - `GET /v2/network/payment_volume`](#get-payment-volume) -* [Get External Markets - `GET /v2/network/external_markets`](#get-external-markets) -* [Get XRP Distribution - `GET /v2/network/xrp_distribution`](#get-xrp-distribution) -* [Get Top Currencies - `GET /v2/network/top_currencies`](#get-top-currencies) -* [Get Top Markets - `GET /v2/network/top_markets`](#get-top-markets) - -アカウントメソッド: - -* [Get Account - `GET /v2/accounts/{address}`](#get-account) -* [Get Accounts - `GET /v2/accounts`](#get-accounts) -* [Get Account Balances - `GET /v2/accounts/{address}/balances`](#get-account-balances) -* [Get Account Orders - `GET /v2/accounts/{address}/orders`](#get-account-orders) -* [Get Account Transaction History - `GET /v2/accounts/{address}/transactions`](#get-account-transaction-history) -* [Get Transaction By Account and Sequence - `GET /v2/accounts/{address}/transactions/{sequence}`](#get-transaction-by-account-and-sequence) -* [Get Account Payments - `GET /v2/accounts/{address}/payments`](#get-account-payments) -* [Get Account Exchanges - `GET /v2/accounts/{address}/exchanges`](#get-account-exchanges) -* [Get Account Balance Changes - `GET /v2/accounts/{address}/balance_changes`](#get-account-balance-changes) -* [Get Account Reports - `GET /v2/accounts/{address}/reports`](#get-account-reports) -* [Get Account Transaction Stats - `GET /v2/accounts/{address}/stats/transactions`](#get-account-transaction-stats) -* [Get Account Value Stats - `GET /v2/accounts/{address}/stats/value`](#get-account-value-stats) - -外部情報メソッド: - -* [Get All Gateways - `GET /v2/gateways`](#get-all-gateways) -* [Get Gateway - `GET /v2/gateways/{gateway}`](#get-gateway) -* [Get Currency Image - `GET /v2/currencies/{currencyimage}`](#get-currency-image) - -検証ネットワークメソッド: - -* [Get Transaction Costs - `GET /v2/network/fees`](#get-transaction-costs) -* [Get Fee Stats - `GET /v2/network/fee_stats`](#get-fee-stats) -* [Get Ledger Validations - `GET /v2/ledger/{hash}/validations`](#get-ledger-validations) -* [Get Ledger Validation - `GET /v2/ledger/{hash}/validations/{pubkey}`](#get-ledger-validation) -* [Get Topology - `GET /v2/network/topology`](#get-topology) -* [Get Topology Nodes - `GET /v2/network/topology/nodes`](#get-topology-nodes) -* [Get Topology Node - `GET /v2/network/topology/nodes/{pubkey}`](#get-topology-node) -* [Get Topology Links - `GET /v2/network/topology/links`](#get-topology-links) -* [Get Validator - `GET /v2/network/validators/{pubkey}`](#get-validator) -* [Get Validators - `GET /v2/network/validators`](#get-validators) -* [Get Validator Manifests - `GET /v2/network/validators/{pubkey}/manifests`](#get-validator-manifests) -* [Get Single Validator Reports - `GET /v2/network/validators/{pubkey}/reports`](#get-single-validator-reports) -* [Get Daily Validator Reports - `GET /v2/network/validator_reports`](#get-daily-validator-reports) -* [Get `rippled` Versions - `GET /v2/network/rippled_versions`](#get-rippled-versions) - -健全性チェック: - -* [API Health Check - `GET /v2/health/api`](#health-check-api) -* [Importer Health Check - `GET /v2/health/importer`](#health-check-ledger-importer) -* [Nodes ETL Health Check - `GET /v2/health/nodes_etl`](#health-check-nodes-etl) -* [Validations ETL Health Check - `GET /v2/health/validations_etl`](#health-check-validations-etl) - - -## Get Ledger -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getLedger.js "Source") - -ハッシュ、インデックス、または日付を指定して特定のレジャーを取得するか、または最新の検証済みレジャーを取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/ledgers/{identifier} -``` - - - -[試してみる>](data-api-v2-tool.html#get-ledger) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:--------------------|:----------------------------------------------------|:--| -| `ledger_identifier` | レジャー[ハッシュ][]、[レジャーインデックス][]、または[タイムスタンプ][] | _(省略可)_ 取得するレジャーのID。16進数のハッシュ全体、整数のシーケンス番号、または日時のいずれかです。日時を指定すると、その指定した日時の時点で最新であった閉鎖済みレジャーが取得されます。省略すると、最新の検証済みレジャーが取得されます。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------------|:--------|:--------------------------------------------------| -| `transactions` | ブール値 | `true`の場合は、このレジャーに含まれるすべてのトランザクションの識別用ハッシュが含まれます。 | -| `binary` | ブール値 | `true`の場合は、このレジャーのすべてのトランザクションが16進フォーマットのバイナリデータとして含まれます。(このフィールドが指定されている場合、`transactions`をオーバーライドします。) | -| `expand` | ブール値 | `true`の場合、このレジャーのすべてのトランザクションが入れ子のJSONオブジェクトとして含まれます。(このフィールドが指定されている場合は、`binary`と`transactions`をオーバーライドします。) | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:---------------------------------|:-------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `ledger` | [レジャーオブジェクト](#レジャーオブジェクト) | 要求されたレジャー。 | - -#### 例 - -要求: - -``` -GET /v2/ledgers/3170DA37CE2B7F045F889594CBC323D88686D2E90E8FFD2BBCD9BAD12E416DB5 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "ledger": { - "ledger_hash": "3170da37ce2b7f045f889594cbc323d88686d2e90e8ffd2bbcd9bad12e416db5", - "ledger_index": 8317037, - "parent_hash": "aff6e04f07f441abc6b4133f8c50c65935b817a85b895f06dba098b3fbc1be90", - "total_coins": 99999980165594400, - "close_time_res": 10, - "accounts_hash": "8ad73e49a34d8b9c31bc13b8a97c56981e45ee70225ef4892e8b198fec5a1f7d", - "transactions_hash": "33e0b9c5fd7766343e67854aed4222f5ed9c9507e0ec0d7ae7d54d0f17adb98e", - "close_time": 1408047740, - "close_time_human": "2014-08-14T20:22:20+00:00" - } -} -``` - - - -## Get Ledger Validations -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getLedger.js "Source") - -特定のレジャーハッシュについて記録されたすべての検証を取得します。このデータセットには、検証済みレジャーチェーン外部のレジャーバージョンが含まれます。_(新規: [v2.2.0][])_ - -**注記:** Data APIは、すべてのバリデーションを網羅する包括的な記録を持っていません。応答には、Data APIに記録されているデータのみが含まれています。一部のレジャーバージョン、特に古いレジャーは、コンセンサスによって検証済みであっても検証が取得できないことがあります。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/ledgers/{ledger_hash}/validations -``` - - - -[試してみる>](data-api-v2-tool.html#get-ledger-validations) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:--------------|:---------|:-----------------------------------------| -| `ledger_hash` | [ハッシュ][] | 検証を取得するレジャーのハッシュ。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:--------------|:--------------------------------|:---------------------------| -| `result` | 文字列 - `success` | 本文が成功した場合の応答を表しています。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | 要求したレジャーバージョンの識別用ハッシュ。 | -| `count` | 整数 | 返された検証の数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `validations` | [検証オブジェクト][]の配列 | このレジャーバージョンのすべての既知の検証投票。 | - - -#### 例 - -要求: - -``` -GET /v2/ledgers/A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7/validations?limit=2 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", - "count": 2, - "marker": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7|n9KDJnMxfjH5Ez8DeWzWoE9ath3PnsmkUy3GAHiVjE7tn7Q7KhQ2|20160608001732", - "validations": [ - { - "count": 27, - "first_datetime": "2016-06-08T00:17:32.352Z", - "last_datetime": "2016-06-08T00:17:32.463Z", - "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", - "reporter_public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", - "signature": "304402204C751D0033070EBC008786F0ECCA8E29195FD7DD8D22498EB6E4E732905FC7090220091F458976904E7AE4633A1EC405175E6A126798E4896DD452853B887B1E6359", - "validation_public_key": "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7" - }, - { - "count": 3, - "first_datetime": "2016-06-08T00:17:32.653Z", - "last_datetime": "2016-06-08T00:17:32.673Z", - "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", - "reporter_public_key": "n9JCK5AML7Ejv3TcJmnvJk5qeYhf7Q9YwScjz5PhtUbtWCKH3NAm", - "signature": "3045022100A48E5AF6EA9D0ACA6FDE18536081A7D2182535579EA580C3D0B0F18C2556C5D30220521615A3D677376069F8F3E608B59F14482DDE4CD2A304DE578B6CCE2F5E8D54", - "validation_public_key": "n9K6YbD1y9dWSAG2tbdFwVCtcuvUeNkBwoy9Z6BmeMra9ZxsMTuo" - } - ] -} -``` - - - -## Get Ledger Validation -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getLedger.js "Source") - -特定のバリデータの特定のレジャーハッシュについて記録された検証投票を取得します。このデータセットには、検証済みレジャーチェーン外部のレジャーバージョンが含まれます。_(新規: [v2.2.0][])_ - -**注記:** Data APIは、すべてのバリデーションを網羅する包括的な記録を持っていません。応答には、Data APIに記録されているデータのみが含まれています。一部のレジャーバージョン、特に古いレジャーは、コンセンサスによって検証済みであっても検証が取得できないことがあります。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/ledgers/{ledger_hash}/validations/{pubkey} -``` - - - -[試してみる>](data-api-v2-tool.html#get-ledger-validation) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:--------------|:--------------------------------|:---------------------------| -| `ledger_hash` | [ハッシュ][] | 検証を取得するレジャーのハッシュ。 | -| `pubkey` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | - -この要求はクエリーパラメーターをとりません。 - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と、以下の追加フィールドを持つ **[検証オブジェクト][]** を含むJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-------|:---------------------------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | - -#### 例 - -要求: - -``` -GET /v2/ledgers/A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7/validations/n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7 -``` - -応答: - -``` -200 OK -{ - "count": 27, - "first_datetime": "2016-06-08T00:17:32.352Z", - "last_datetime": "2016-06-08T00:17:32.463Z", - "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", - "reporter_public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", - "signature": "304402204C751D0033070EBC008786F0ECCA8E29195FD7DD8D22498EB6E4E732905FC7090220091F458976904E7AE4633A1EC405175E6A126798E4896DD452853B887B1E6359", - "validation_public_key": "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", - "result": "success" -} -``` - - - -## Get Transaction -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getTransactions.js "Source") - -識別用ハッシュに基づいて特定のトランザクションを取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/transactions/{hash} -``` - - - -[試してみる>](data-api-v2-tool.html#get-transaction) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:-------|:------------------|:-----------------------------------------| -| `hash` | 文字列 - [ハッシュ][] | トランザクションの識別用ハッシュ。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `binary` | ブール値 | `true`の場合、バイナリフォーマットのトランザクションデータを16進文字列として返します。それ以外の場合、トランザクションデータを入れ子のJSONとして返します。デフォルトは`false`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:--------------|:-----------------------|:------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `transaction` | [トランザクションオブジェクト][] | 要求されたトランザクション。 | - -[トランザクションオブジェクト]: #トランザクションオブジェクト - -#### 例 - -要求: - -``` -GET /v2/transactions/03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A -``` - -応答(サイズが大きいため一部省略): - -```js -200 OK -{ - "result": "success", - "transaction": { - "ledger_index": 8317037, - "date": "2014-08-14T20:22:20+00:00", - "hash": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", - "tx": { - "TransactionType": "OfferCreate", - "Flags": 131072, - "Sequence": 159244, - "TakerPays": { - "value": "0.001567373", - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "TakerGets": "146348921", - "Fee": "64", - "SigningPubKey": "02279DDA900BC53575FC5DFA217113A5B21C1ACB2BB2AEFDD60EA478A074E9E264", - "TxnSignature": "3045022100D81FFECC36A3DEF0922EB5D16F1AA5AA0804C30A18ED3B512093A75E87C81AD602206B221E22A4E3158785C109E7508624AD3DE5C0E06108D34FA709FCC9575C9441", - "Account": "r2d2iZiCcJmNL6vhUGFjs8U8BuUq6BnmT" - }, - "meta": { - "TransactionIndex": 0, - "AffectedNodes": [ - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "PreviousTxnLgrSeq": 8317036, - "PreviousTxnID": "A56793D47925BED682BFF754806121E3C0281E63C24B62ADF7078EF86CC2AA53", - "LedgerIndex": "2880A9B4FB90A306B576C2D532BFE390AB3904642647DCF739492AA244EF46D1", - "PreviousFields": { - "Balance": "275716601760" - }, - "FinalFields": { - "Flags": 0, - "Sequence": 326323, - "OwnerCount": 27, - "Balance": "275862935331", - "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", - "RegularKey": "rfYqosNivHQFJ6KpArouxoci3QE3huKNYe" - } - } - }, - - ... - ], - "TransactionResult": "tesSUCCESS" - } - } -} -``` - - - - - -## Get Transactions -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getTransactions.js "Source") - -時刻に基づいて複数のトランザクションを取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/transactions/ -``` - - - -[試してみる>](data-api-v2-tool.html#get-transactions) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | -| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `type` | 文字列 | 特定の[トランザクションタイプ](transaction-types.html)にトランザクションを絞り込みます。 | -| `result` | 文字列 | 特定の[トランザクション結果](transaction-results.html)でトランザクションを絞り込みます。 | -| `binary` | ブール値 | `true`の場合、トランザクションをバイナリフォーマットで返します。デフォルトは`false`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは20です。100を超える値は指定できません。 | -| `marker` | 文字列 | 前の応答の[ページネーション](#ページネーション)マーカー。 | - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------------|:---------------------------------|:-------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返されたトランザクションの数。 | -| `marker` | 文字列 | (省略される場合があります)ページネーションマーカー。 | -| `transactions` | [トランザクションオブジェクト][]の配列。 | 要求されたトランザクション。 | - -[トランザクションオブジェクト]: #トランザクションオブジェクト - -#### 例 - -要求: - -``` -GET /v2/transactions/?result=tecPATH_DRY&limit=2&type=Payment -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 2, - "marker": "20130106022000|000000053869|00000", - "transactions": [ - { - "hash": "B8E4335A94438EC8209135A4E861A4C88F988C651B819DDAF2E8C55F9B41E589", - "date": "2013-01-02T20:13:40+00:00", - "ledger_index": 40752, - "ledger_hash": "55A900C2BA9483DC83F8FC065DE7789570662365BDE98EB75C5F4CE4F9B43214", - "tx": { - "TransactionType": "Payment", - "Flags": 0, - "Sequence": 61, - "Amount": { - "value": "96", - "currency": "USD", - "issuer": "rJ6VE6L87yaVmdyxa9jZFXSAdEFSoTGPbE" - }, - "Fee": "10", - "SigningPubKey": "02082622E4DA1DC6EA6B38A48956D816881E000ACF0C5F5B52863B9F698799D474", - "TxnSignature": "304402200A0746192EBC7BC3C1B9D657F42B6345A49D75FE23EF340CB6F0427254C139D00220446BF9169C94AEDC87F56D01DB011866E2A67E2AADDCC45C4D11422550D044CB", - "Account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", - "Destination": "rJ6VE6L87yaVmdyxa9jZFXSAdEFSoTGPbE" - }, - "meta": { - "TransactionIndex": 0, - "AffectedNodes": [ - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "PreviousTxnLgrSeq": 40212, - "PreviousTxnID": "F491DC8B5E51045D4420297293199039D5AE1EA0C6D62CAD9A973E3C89E40CD6", - "LedgerIndex": "9B242A0D59328CE964FFFBFF7D3BBF8B024F9CB1A212923727B42F24ADC93930", - "PreviousFields": { - "Sequence": 61, - "Balance": "8178999999999400" - }, - "FinalFields": { - "Flags": 0, - "Sequence": 62, - "OwnerCount": 6, - "Balance": "8178999999999390", - "Account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY" - } - } - } - ], - "TransactionResult": "tecPATH_DRY" - } - }, - { - "hash": "1E1C14BF5E61682F3DC9D035D9908816497B8E8843E05C0EE98E06DFDDDAE920", - "date": "2013-01-05T08:43:10+00:00", - "ledger_index": 51819, - "ledger_hash": "88ED10E4E31FC7580285CF173B264690B0E8688A3FC9F5F9C62F1A295B96269D", - "tx": { - "TransactionType": "Payment", - "Flags": 0, - "Sequence": 10, - "Amount": { - "value": "2", - "currency": "EUR", - "issuer": "rfitr7nL7MX85LLKJce7E3ATQjSiyUPDfj" - }, - "Fee": "10", - "SigningPubKey": "03FDDCD97668B686100E60653FD1E5210A8310616669AACB3A1FCC6D2C090CCB32", - "TxnSignature": "304402204F9BB7E37C14A3A3762E2A7DADB9A28D1AFFB3797521229B6FB98BA666B5491B02204F69AAEAFAC8FA473E52042FF06035AB3618A54E0B76C9852766D55184E98598", - "Account": "rhdAw3LiEfWWmSrbnZG3udsN7PoWKT56Qo", - "Destination": "rfitr7nL7MX85LLKJce7E3ATQjSiyUPDfj" - }, - "meta": { - "TransactionIndex": 0, - "AffectedNodes": [ - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "PreviousTxnLgrSeq": 51814, - "PreviousTxnID": "5EC1C179996BD87E2EB11FE60A37ADD0FB2229ADC7D13B204FAB04FABED8A38D", - "LedgerIndex": "AC1B67084F84839A3158A4E38618218BF9016047B1EE435AECD4B02226AB2105", - "PreviousFields": { - "Sequence": 10, - "Balance": "10000999910" - }, - "FinalFields": { - "Flags": 0, - "Sequence": 11, - "OwnerCount": 2, - "Balance": "10000999900", - "Account": "rhdAw3LiEfWWmSrbnZG3udsN7PoWKT56Qo" - } - } - } - ], - "TransactionResult": "tecPATH_DRY" - } - } - ] -} -``` - - - -## Get Payments -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getPayments.js "Source") - -Paymentを経時的に取得します。Paymentは、トランザクションの送金元が同時に送金先ではない`Payment`タイプのトランザクションと定義されます。_(新規: [v2.0.4][])_ - -結果は個別のペイメントとして返されるか、または通貨とイシュアーが指定されている場合には特定の間隔でリストに集約されます。 - -#### 要求フォーマット - - - -*REST - 全通貨* - -``` -GET /v2/payments/ -``` - -*REST - 特定の通貨* - -``` -GET /v2/payments/{currency} -``` - - - -[試してみる>](data-api-v2-tool.html#get-payments) - -このメソッドでは以下のURLパラメーターを使用します。 - -| フィールド | 値 | 説明 | -|:-----------|:-------|:-------------------------------------------------------| -| `currency` | 文字列 | _(省略可)_ 通貨コード、`+`、相手側アドレスの順。(あるいは`XRP`のみ(相手側なし)。)省略すると、全通貨のペイメントが返されます。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | -| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -結果を集計するための`interval`パラメーターは、[v2.3.5][]で削除されました。 - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:-----------|:-----------------------------|:---------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返されたペイメントの件数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `payments` | [ペイメントオブジェクト][]の配列 | 要求されたペイメント。 | - - -#### 例 - -要求: - -``` -GET /v2/payments/BTC+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q?limit=2 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 2, - "marker": "20131124004240|000003504935|00002", - "payments": [ - { - "amount": "100.0", - "delivered_amount": "100.0", - "destination_balance_changes": [ - { - "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "currency": "BTC", - "value": "100" - } - ], - "transaction_cost": "1.0E-5", - "source_balance_changes": [ - { - "counterparty": "rwm98fCBS8tV1YB8CGho8zUPW5J7N41th2", - "currency": "BTC", - "value": "-100" - } - ], - "tx_index": 3, - "currency": "BTC", - "destination": "rwm98fCBS8tV1YB8CGho8zUPW5J7N41th2", - "executed_time": "2013-09-27T04:03:00Z", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "ledger_index": 2424349, - "source": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "source_currency": "BTC", - "tx_hash": "EDDE2601C38F886E1183B5E7E1BFD936105C76E3648E3FAD2A6C55E90BABDB47" - }, - { - "amount": "0.2", - "delivered_amount": "0.2", - "destination_balance_changes": [ - { - "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "currency": "BTC", - "value": "0.2" - } - ], - "transaction_cost": "1.5E-5", - "max_amount": "0.202", - "source_balance_changes": [ - { - "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "currency": "BTC", - "value": "-0.2" - } - ], - "tx_index": 1, - "currency": "BTC", - "destination": "rHfcNvcg8pBqBxtSvD9Ma8gF17uxauB31o", - "executed_time": "2013-11-20T23:52:30Z", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "ledger_index": 3445885, - "source": "rwm98fCBS8tV1YB8CGho8zUPW5J7N41th2", - "source_currency": "BTC", - "tx_hash": "F30D6CED4B0C37660F6DD741C9CA49F0BCB2D2648CDB8FC8AD6CFD86A86384E2" - } - ] -} -``` - - - - - -## Get Exchanges -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getExchanges.js "Source") - -特定の通貨ペアの取引を経時的に取得します。結果は取引ごとに個別に返されるか、または特定の間隔でリストにまとめられます。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/exchanges/{base}/{counter} -``` - - - -[試してみる>](data-api-v2-tool.html#get-exchanges) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `base` | 文字列 | ペアのベース通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ただし、ベース通貨がXRPの場合を除く)。 | -| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ただし、クオート通貨がXRPの場合を除く)。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:--------------|:-----------------------|:------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | -| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | -| `interval` | 文字列 | 収集間隔: `1minute`、`5minute`、`15minute`、`30minute`、`1hour`、`2hour`、`4hour`、`1day`、`3day`、`7day`、または`1month`。デフォルトでは結果は収集されません。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。 | -| `reduce` | ブール値 | `true`の場合、個々の結果がすべてまとめられます。デフォルトは`false`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。`reduce`がtrueの場合、指定できる最大値は20,000です。それ以外の場合は、指定できる最大値は1,000です。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `autobridged` | ブール値 | `true`の場合は、オートブリッジングされた取引のみに結果が絞り込まれます。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------|:------------------------------|:-------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返されたトランザクションの数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `exchanges` | [取引オブジェクト][]の配列 | 要求された取引。 | - -#### 例 - -要求: - -``` -GET /v2/exchanges/USD+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP?descending=true&limit=3&result=tesSUCCESS&type=OfferCreate -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 3, - "marker": "USD|rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q|XRP||20151021222220|000016612683|00017|00000", - "exchanges": [ - { - "base_amount": 4.98954834453577, - "counter_amount": 1047.806201, - "node_index": 9, - "rate": 210.00021000021, - "tx_index": 0, - "buyer": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "executed_time": "2015-10-21T23:09:50", - "ledger_index": 16613308, - "offer_sequence": 1010056, - "provider": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "seller": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", - "taker": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", - "tx_hash": "25600A10E5395D45A9D514E1EC3D98C341C5451FD21C48FA9D104C310EC29D6B", - "tx_type": "Payment", - "base_currency": "USD", - "base_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "counter_currency": "XRP" - }, - { - "base_amount": 0.0004716155440678037, - "counter_amount": 0.1, - "node_index": 3, - "rate": 212.03711637126, - "tx_index": 0, - "buyer": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", - "executed_time": "2015-10-21T23:09:50", - "ledger_index": 16613308, - "offer_sequence": 158081, - "provider": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", - "seller": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", - "taker": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", - "tx_hash": "25600A10E5395D45A9D514E1EC3D98C341C5451FD21C48FA9D104C310EC29D6B", - "tx_type": "Payment", - "base_currency": "USD", - "base_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "counter_currency": "XRP" - }, - { - "base_amount": 0.0004714169229390923, - "counter_amount": 0.1, - "node_index": 3, - "rate": 212.1264535361624, - "tx_index": 17, - "autobridged_currency": "USD", - "autobridged_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "buyer": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", - "executed_time": "2015-10-21T22:22:20", - "ledger_index": 16612683, - "offer_sequence": 158059, - "provider": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", - "seller": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "taker": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "tx_hash": "F05F670B06D641D7F6FE18E450DDB2C7A4DDF76D580C34C820939DC22AD9F582", - "tx_type": "OfferCreate", - "base_currency": "USD", - "base_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "counter_currency": "XRP" - } - ] -} -``` - - - -## Get Exchange Rates -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getExchangeRate.js "Source") - -指定された通貨ペアの特定の時点での為替レートを取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/exchange_rates/{base}/{counter} -``` - - - -[試してみる>](data-api-v2-tool.html#get-exchange-rates) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `base` | 文字列 | ペアのベース通貨を、[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します。XRPの場合は`+`とイシュアーを省略します。 | -| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します。XRPの場合は`+`とイシュアーを省略します。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------|:-----------------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | 指定された時点の為替レートを返します。デフォルトは現行時刻です。 | -| `strict` | ブール値 | `false`の場合、10件未満の取引からレートを導出できます。デフォルトは`true`です。 | - - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-------|:---------------------------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `rate` | 数値 | 要求された為替レート。為替レートを判別できなかった場合は`0` です。 | - -すべての為替レートは、ベース通貨とクオート通貨をXRPに変換して算出されます。 - -レートは指定されたカレンダー日の出来高加重平均から導出されます。過去14日間における最新50件の取引の加重平均です。 - -#### 例 - -要求: - -``` -GET /v2/exchange_rates/USD+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP?date=2015-11-13T00:00:00Z -``` - -応答: - -``` -200 OK -{ - "result": "success", - "rate": "224.65709" -} -``` - - - - -## Normalize -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/normalize.js "Source") - -ネットワークの為替レートを使用して、ある通貨とイシュアーからの額を別の通貨とイシュアーの額へ交換します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/normalize -``` - - - -[試してみる>](data-api-v2-tool.html#normalize) - -少なくとも以下のクエリーパラメーターのいくつかを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:--------------------|:---------------------------|:--------------------------| -| `amount` | 数値 | (必須)正規化する通貨の額。 | -| `currency` | 文字列 - [通貨コード][] | 交換前の`amount`の通貨コード。デフォルトはXRPです。 | -| `issuer` | 文字列 - [アドレス][] | 交換前の通貨のイシュアー。(`currency`がXRP以外の場合には必須です。) | -| `exchange_currency` | 文字列 - [通貨コード][] | 交換後の通貨。デフォルトはXRPです。 | -| `exchange_issuer` | 文字列 - [アドレス][] | 交換後の通貨のイシュアー。(`exchange_currency`がXRP以外の場合には必須です。) | -| `date` | 文字列 - [タイムスタンプ][] | この時点の為替レートに基づいて変換します。デフォルトは現行時刻です。 | -| `strict` | ブール値 | `true`の場合は、10件未満の取引から判別された為替レートは使用されません。デフォルトは`true`です。 | - - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------|:-------|:------------------------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `amount` | 数値 | 要求に指定されている交換前の額。 | -| `converted` | 数値 | 交換後の`exchange_currency`の額。為替レートを判別できなかった場合は`0`です。 | -| `rate` | 数値 | 交換の計算に使用された為替レート。為替レートを判別できなかった場合は`0`です。 | - -為替レートはすべて、両方の通貨をXRPに交換することで算出されます。 - -#### 例 - -要求: - -``` -GET /v2/normalize?amount=100¤cy=XRP&exchange_currency=USD&exchange_issuer=rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q -``` - -応答: - -``` -200 OK -{ - "result": "success", - "amount": "100", - "converted": "0.4267798022744489", - "rate": "0.0042677980" -} -``` - - - - -## Get Daily Reports -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/reports.js "Source") - -1日あたりのアカウント別に集計されたペイメントのサマリーを取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/reports/{date} -``` - - - -[試してみる>](data-api-v2-tool.html#get-daily-reports) - -このメソッドでは以下のURLパラメーターを使用します。 - -| フィールド | 値 | 説明 | -|:-------|:-------|:--------------------------------------------------------------| -| `date` | 文字列 | _(省略可)_ クエリー実行日(UTC)。省略すると現在の日付が使用されます。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-----------|:--------|:------------------------------------------------------| -| `accounts` | ブール値 | `true`の場合は、相手側アカウントのリストが含まれます。デフォルトは`false`です。 | -| `payments` | ブール値 | `true`の場合は、個々のペイメントのリストが含まれます。デフォルトは`false`です。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:----------|:-----------------------------|:----------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `date` | 文字列 - [タイムスタンプ][] | このレポートが適用される日付。 | -| `count` | 整数 | 返されたレポートの数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `reports` | [レポートオブジェクト][]の配列 | 要求されたレポート。各レポートは1つのアカウントに関連します。 | - -**注意:** このメソッドでは非常に大量のデータ(1 MB以上)が返されることがあり、クライアントアプリケーションのパフォーマンスを低下させる可能性があります。 - -#### 例 - -要求: - -``` -GET /v2/reports/2015-08-19T00:00:00Z?accounts=true&payments=true -``` - -応答(サイズが大きいため一部省略): - -``` -{ - "result": "success", - "date": "2015-08-19T00:00:00Z", - "count": 2, - "marker": "20150819000000|r2nt4zXDP6Be5FNrLsiuuTEBETbGR9RFw", - "reports": [ - { - "account": "r2LXq2rZWSgQ1thhKiEytzi1smg6oEn8A", - "date": "2015-08-19T00:00:00Z", - "high_value_received": "7000", - "high_value_sent": "3400", - "payments": [ - { - "tx_hash": "A032EFBB219B1102BBD9BCCB91EDC6EAA8185509574FA476A2D3FE6BA79B04EF", - "amount": "1700", - "type": "received" - }, - { - "tx_hash": "8B059360DC83777CDCABA84824C169651AFD6A7AB44E8742A3B8C6BC2AAF7384", - "amount": "40", - "type": "received" - }, - - ...(additional results trimmed)... - - { - "tx_hash": "76041BD6546389B5EC2CDBAA543200CF7B8D300F34F908BA5CA8523B0CA158C8", - "amount": "1400", - "type": "sent" - } - ], - "payments_received": 155, - "payments_sent": 49, - "receiving_counterparties": [ - "rDMFJrKg2jyoNG6WDWJknXDEKZ6ywNFGwD", - "r4XXHxraHLuCiLmLMw96FTPXXywZSnWSyR", - - ...(additional results trimmed)... - - - "rp1C4Ld6uGjurFpempUJ8q5hPSWhak5EQf" - ], - "sending_counterparties": [ - "rwxcJVWZSEgN2DmLZYYjyagHjMx5jQ7BAa", - - ...(additional results trimmed)... - - - "rBK1rLjbWsSU9EuST1cAz9RsiYdJPVGXXA" - ], - "total_value": "210940", - "total_value_received": "100540", - "total_value_sent": "110400" - }, - { - "account": "r2adXWaWFJt9mHeoWN77iHJozDz2FDAPA", - "date": "2015-08-19T00:00:00Z", - "high_value_received": "7400", - "high_value_sent": "15900", - "payments": [ - { - "tx_hash": "9C7EA76D467AE58E6AEFAAC7994D42FB4E7FA72BFA22F90260937386D76BDB64", - "amount": "900", - "type": "sent" - }, - - ...(additional results trimmed)... - - - { - "tx_hash": "EC25427964419394BB5D06343BC74235C33655C1F70523C688F9A201957D65BA", - "amount": "100", - "type": "sent" - } - ], - "payments_received": 43, - "payments_sent": 62, - "receiving_counterparties": [ - "rB4cyZxrBrTmJcWZSBc8YoW2t3bafiKRp", - - ...(additional results trimmed)... - - - "rKybkw3Pu74VfJfrWr7QJbVPJNarnKP2EJ" - ], - "sending_counterparties": [ - "rNRCXw8PQRjvTwMDDLZVvuLHSKqqXUXQHv", - "r7CLMVEuNvK2yXTPLPnkWMqzkkXuopWeL", - - ...(additional results trimmed)... - - - "ranyeoYRhvwiFABzDvxSVyqQKp1bMkFsaX" - ], - "total_value": "117600", - "total_value_received": "54700", - "total_value_sent": "62900" - } - ] -} -``` - - - -## Get Stats -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/stats.js "Source") - -XRP Ledgerでのトランザクションアクティビティの統計情報を、さまざまな時間間隔で取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/stats -``` - - - -[試してみる>](data-api-v2-tool.html#get-stats) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `family` | 文字列 | 指定されている場合は、結果が`type`、`result`、または`metric`のいずれか1つの統計ファミリーに絞り込まれます。デフォルトでは、すべてのファミリーのすべての統計情報が返されます。 | -| `metrics` | 文字列 | 結果を1つ以上のメトリック(カンマ区切りリスト)に絞り込みます。メトリックの`family`を指定する必要があります。デフォルトでは、当該ファミリーのすべてのメトリックが返されます。 | -| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | -| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | -| `interval` | 文字列 | 収集間隔(`hour`、`day`、または`week`)。デフォルトは`day`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -##### ファミリーとメトリクス - -クエリーパラメーター`family`と`metrics`を使用すると、任意の間隔ですべてのトランザクションに適用できるあらゆるメトリクスの特定のサブセットに結果を絞り込むことができます。各メトリクスは以下のように特定のファミリーに関連付けられています。 - -| ファミリー | 含まれるメトリクス | 意味 | -|:---------|:-----------------|:--------| -| `type` | XRP Ledgerのすべての[トランザクションタイプ](transaction-formats.html)(`Payment`、`AccountSet`、`OfferCreate`など)。 | 所定の間隔内に発生した、指定されたタイプのトランザクションの数。 | -| `result` | `tesSUCCESS`、`tecPATH_DRY`などを含む、すべての[トランザクション結果コード](transaction-results.html)(数値コードではなく文字列コード)。 | 所定の間隔内に指定された結果コードを取得したトランザクションの数。 | -| `metric` | Data-API定義の特殊トランザクションメトリクス。 | (場合により異なる) | - -##### 特殊トランザクションメトリクス - -Data APIは各間隔ごとに以下の値を導出します。これらのメトリクスは`metric`ファミリーの一部です。 - -| フィールド | 値 | 説明 | -|:-------------------|:-------|:-----------------------------------------------| -| `accounts_created` | 数値 | この間隔内に資金供給を受けた新しいアカウントの数。 | -| `exchanges_count` | 数値 | この間隔内に発生した通貨取引の数。 | -| `ledger_count` | 数値 | この間隔内に閉鎖されたレジャーの数。 | -| `ledger_interval` | 数値 | この間隔内におけるレジャーの平均閉鎖間隔(秒数)。 | -| `payments_count` | 数値 | この間隔におけるアカウント間決済数。 | -| `tx_per_ledger` | 数値 | この間隔におけるレジャーあたりの平均トランザクション数。 | - -値が0のメトリクスは結果から省略されます。 - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------|:-----------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返されたレポートの数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `stats` | 統計情報オブジェクトの配列 | 要求された統計情報。値が0のメトリクスと、0以外のメトリクスのない間隔は省略されます。 | - -#### 例 - -要求: - -``` -GET /v2/stats/?start=2015-08-30&end=2015-08-31&interval=day&family=metric&metrics=accounts_created,exchanges_count,ledger_count,payments_count -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 2, - "stats": [ - { - "accounts_created": 15, - "exchanges_count": 19368, - "ledger_count": 20307, - "payments_count": 24763, - "date": "2015-08-30T00:00:00Z" - }, - { - "accounts_created": 18, - "exchanges_count": 17192, - "ledger_count": 19971, - "payments_count": 30894, - "date": "2015-08-31T00:00:00Z" - } - ] -} -``` - - - -## Get Active Accounts -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/activeAccounts.js "Source") - -特定の通貨ペアの取引を実際に行っているアカウントに関する情報を取得します。_(新規: [v2.0.4][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/active_accounts/{base}/{counter} -``` - - - -[試してみる>](data-api-v2-tool.html#get-active-accounts) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `base` | 文字列 | ペアのベース通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ベース通貨がXRPの場合を除く)。 | -| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ただし、クオート通貨がXRPの場合を除く)。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:--------------------|:--------|:---------------------------------------------| -| `period` | 文字列 | 選択した期間中の取引アクティビティの結果を取得します。有効期間は`1day`、`3day`、`7day`です。デフォルトは`1day`です。 | -| `date` | 文字列 | この日に始まる期間の結果を取得します。デフォルトは、直近の期間です。 | -| `include_exchanges` | ブール値 | 各アカウントの個々の取引を結果に含めます。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------------|:----------------------------------------|:---------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返されたアカウントの数。 | -| `exchanges_count` | 整数 | 当該期間の取引の合計数。 | -| `accounts` | アクティブなアカウント取引オブジェクトの配列。 | 当該期間のアクティブな取引アカウント。 | - -各**アカウント取引オブジェクト**は、当該期間における1つのアカウントのアクティビティを表し、以下のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:----------------------|:---------------------|:------------------------------| -| `buy` | オブジェクト | ベース通貨を購入する通貨取引のサマリー。 | -| `buy.base_volume` | 数値 | このアカウントが当該期間に購入したベース通貨の額。 | -| `buy.counter_volume` | 数値 | このアカウントが当該期間に売却したクオート通貨の額。 | -| `buy.count` | 数値 | 当該期間にベース通貨を購入した取引の数。 | -| `sell` | オブジェクト | ベース通貨を売却する通貨取引のサマリー。 | -| `sell.base_volume` | 数値 | このアカウントが当該期間に売却したベース通貨の額。 | -| `sell.counter_volume` | 数値 | このアカウントが当該期間に購入したクオート通貨の額。 | -| `sell.count` | 数値 | 当該期間にベース通貨を売却した取引の数。 | -| `account` | 文字列 - [アドレス][] | このオブジェクトが表すアクティビティのアドレス。 | -| `base_volume` | 数値 | このアカウントが当該期間中に売買したベース通貨の総額。 | -| `counter_volume` | 数値 | このアカウントが当該期間中に売買したクオート通貨の総額。 | -| `count` | 数値 | このアカウントが当該期間中に行った取引の合計数。 | - -#### 例 - -要求: - -``` -GET /v2/active_accounts/XRP/USD+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 12, - "exchanges_count": 11, - "accounts": [ - { - "buy": { - "base_volume": 0, - "counter_volume": 0, - "count": 0 - }, - "sell": { - "base_volume": 13084.822874, - "counter_volume": 54.499328645454604, - "count": 4 - }, - "account": "rGBQhB8EH5DmqMmfKPLchpqr3MR19pv6zN", - "base_volume": 13084.822874, - "counter_volume": 54.499328645454604, - "count": 4 - }, - { - "buy": { - "base_volume": 12597.822874, - "counter_volume": 52.4909286454546, - "count": 1 - }, - "sell": { - "base_volume": 0, - "counter_volume": 0, - "count": 0 - }, - "account": "rQE5Z3FgVnRMbVfS6xiVQFgB4J3X162FVD", - "base_volume": 12597.822874, - "counter_volume": 52.4909286454546, - "count": 1 - }, - - ...(additional results trimmed)... - - { - "buy": { - "base_volume": 1.996007, - "counter_volume": 0.008782427920595, - "count": 1 - }, - "sell": { - "base_volume": 0, - "counter_volume": 0, - "count": 0 - }, - "account": "rD8LigXE7165r3VWhSQ4FwzJy7PNrTMwUq", - "base_volume": 1.996007, - "counter_volume": 0.008782427920595, - "count": 1 - }, - { - "buy": { - "base_volume": 0, - "counter_volume": 0, - "count": 0 - }, - "sell": { - "base_volume": 0.1, - "counter_volume": 0.0004821658905462904, - "count": 1 - }, - "account": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", - "base_volume": 0.1, - "counter_volume": 0.0004821658905462904, - "count": 1 - } - ] -} -``` - - - -## Get Exchange Volume -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getMetric.js "Source") - -指定された期間における取引量の合計を取得します。_(新規: [v2.0.4][])_ - -APIは、結果を複数の種類の通貨ではなく1つの _表示通貨_ 単位で返します。XRPと他の通貨の取引には、標準レートが使用されます。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/exchange_volume -``` - - - -[試してみる>](data-api-v2-tool.html#get-exchange-volume) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:--------------------|:---------------------------|:--------------------------| -| `live` | 文字列 | この時間の長さのライブローリングウィンドウを返します。有効な値は`day`、`hour`、`minute`です。_(新規: [v2.3.0][])_ | -| `exchange_currency` | 文字列 - [通貨コード][] | すべての額を正規化し、この通貨を表示通貨として使用します。XRP以外の場合は`exchange_issuer`も必要です。デフォルトはXRPです。 | -| `exchange_issuer` | 文字列 - [アドレス][] | 結果を、このイシュアーが発行した特定の`currency`に正規化します。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -`start`、`end`、`interval`、`limit`、および`marker`パラメーターは[v2.3.5][]で削除されました。 - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-------------------------------------|:---------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返された結果の数。 | -| `rows` | 取引[取引量オブジェクト][]の配列。 | 要求された期間における各間隔の取引量。(デフォルトでは、この配列には直近の完全な間隔だけが含まれます。`live`が指定されており`interval`が指定されていない場合は、この配列には指定されたローリングウィンドウが含まれます。) | - -取引量オブジェクトの`components`配列内の各オブジェクトは、2種類の通貨間のマーケットにおける取引量を表し、以下のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:-------------------|:-------|:-----------------------------------------------| -| `count` | 数値 | この間隔内にこのマーケットで行われた取引の件数。 | -| `rate` | 数値 | ベース通貨から表示通貨への為替レート。 | -| `amount` | 数値 | このマーケットにおける取引量(ベース通貨単位)。 | -| `base` | オブジェクト | このマーケットにおけるベース通貨の`currency`と`issuer`。XRPの場合は`issuer`はありません。 | -| `counter` | オブジェクト | このマーケットにおけるクオート通貨の`currency`と`issuer`。XRPの場合は`issuer`はありません。 | -| `converted_amount` | 数値 | このマーケットにおける合計取引量(表示通貨に変換)。_([v2.1.0][]より古いバージョンでは、これは`convertedAmount`でした。)_ | - -#### 例 - -要求: - -``` -GET /v2/network/exchange_volume?exchange_currency=USD&exchange_issuer=rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B -``` - - -応答: - -``` -200 OK -{ - "result": "success", - "count": 1, - "rows": [ - { - "components": [ - { - "count": 1711, - "rate": 5.514373809662552e-8, - "amount": 333.7038784107369, - "base": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "counter": { - "currency": "XRP" - }, - "converted_amount": 117720.99268355068 - }, - { - "count": 1977, - "rate": 0.000019601413454357618, - "amount": 74567.72531650064, - "base": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "counter": { - "currency": "XRP" - }, - "converted_amount": 74003.51871932109 - }, - - ...(additional results trimmed) ... - - { - "count": 3, - "rate": 0.022999083584408355, - "amount": 85.40728674708998, - "base": { - "currency": "CNY", - "issuer": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA" - }, - "counter": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "converted_amount": 12.72863756671683 - }, - { - "count": 3, - "rate": 1.7749889023209692e-7, - "amount": 570.687912196755, - "base": { - "currency": "JPY", - "issuer": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN" - }, - "counter": { - "currency": "BTC", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" - }, - "converted_amount": 4.4137945368632545 - } - ], - "count": 11105, - "endTime": "2015-09-11T19:58:58+00:00", - "exchange": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "exchangeRate": 0.004410567085248279, - "startTime": "2015-11-10T00:06:04+00:00", - "total": 442442.5974313684 - } - ] -} -``` - - - - - -## Get Payment Volume -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getMetric.js "Source") - -指定された期間のペイメントの合計取引量を取得します。_(新規: [v2.0.4][])_ - -APIは、結果を複数の種類の通貨ではなく1つの _表示通貨_ 単位で返します。XRPと他の通貨の取引には、標準レートが使用されます。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/payment_volume -``` - - - -[試してみる>](data-api-v2-tool.html#get-payment-volume) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:--------------------|:---------------------------|:--------------------------| -| `live` | 文字列 | この時間の長さのライブローリングウィンドウを返します。有効な値は`day`、`hour`、`minute`です。_(新規: [v2.3.0][])_ | -| `exchange_currency` | 文字列 - [通貨コード][] | すべての額を正規化し、この通貨を表示通貨として使用します。XRP以外の場合は`exchange_issuer`も必要です。デフォルトはXRPです。 | -| `exchange_issuer` | 文字列 - [アドレス][] | 結果を、このイシュアーが発行した特定の`currency`に正規化します。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -`start`、`end`、`interval`、`limit`、および`marker`パラメーターは[v2.3.5][]で削除されました。 - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:------------------------------------|:----------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返された結果の数。 | -| `rows` | ペイメントの[取引量オブジェクト][]の配列。 | 要求された期間における各間隔のペイメントの取引量。(デフォルトでは、この配列には最新の間隔だけが含まれます。`live`が指定されており`interval`が指定されていない場合は、この配列には指定されたローリングウィンドウが含まれます。) | - -取引量オブジェクトの`components`配列の各オブジェクトは、1つの通貨とイシュアーのペイメントの取引量を表し、以下のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:-------------------|:---------------------------|:---------------------------| -| `currency` | 文字列 - [通貨コード][] | このペイメントの取引量オブジェクトの通貨。 | -| `issuer` | 文字列 - [アドレス][] | (XRPの場合は省略)このペイメントの取引量オブジェクトのイシュアー。 | -| `amount` | 数値 | 当該間隔内におけるこの通貨でのペイメントの合計額(当該通貨単位)。 | -| `count` | 数値 | この通貨でのペイメントの合計件数。 | -| `rate` | 数値 | この通貨と表示通貨間の為替レート。 | -| `converted_amount` | 数値 | この通貨のペイメントの合計額(表示通貨に変換)。_([v2.1.0][]より古いバージョンでは、これは`convertedAmount`でした。)_ | - -#### 例 - -要求: - -``` -GET /v2/network/payment_volume -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 1, - "rows": [ - { - "components": [ - { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "amount": 87279.59029136538, - "count": 331, - "rate": 0.004412045860957953, - "converted_amount": 19782113.1153009 - }, - { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "amount": 0, - "count": 0, - "rate": 0.00451165816091143, - "converted_amount": 0 - }, - { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "amount": 279.03077460240354, - "count": 107, - "rate": 0.000013312520335244644, - "converted_amount": 20960026.169024874 - }, - - ...(additional results trimmed) ... - - { - "currency": "MXN", - "issuer": "rG6FZ31hDHN1K5Dkbma3PSB5uVCuVVRzfn", - "amount": 49263.13280138676, - "count": 19, - "rate": 0.07640584677247926, - "converted_amount": 644756.0609868265 - }, - { - "currency": "XRP", - "amount": 296246369.30089426, - "count": 8691, - "rate": 1, - "converted_amount": 296246369.30089426 - } - ], - "count": 9388, - "endTime": "2015-09-11T19:58:59+00:00", - "exchange": { - "currency": "XRP" - }, - "exchangeRate": 1, - "startTime": "2015-11-10T00:19:04+00:00", - "total": 390754174.7837752 - } - ] -} -``` - - - -## Get External Markets -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/externalMarkets.js "Source") - -指定のローリング間隔におけるレジャー外の取引のリストから、取引量の合計を取得します。 - -APIは、結果を複数の種類の通貨ではなく1つの _表示通貨_ 単位で返します。XRPと他の通貨の取引には、標準レートが使用されます。 - -#### 要求フォーマット #### - - - -*REST* - -``` -GET /v2/network/external_markets -``` - - - -[試してみる>](data-api-v2-tool.html#get-external-markets) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:--------------------|:---------------------------|:--------------------------| -| `period` | 文字列 | 集約期間 - 有効な間隔は`1hour`、`1day`、`3day`、`7day`、`30day`です。デフォルトは`1day`です。 | -| `exchange_currency` | 文字列 - [通貨コード][] | すべての額を正規化し、この通貨を表示通貨として使用します。XRP以外の場合は`exchange_issuer`も必要です。デフォルトはXRPです。 | -| `exchange_issuer` | 文字列 - [アドレス][] | 結果を、このイシュアーが発行した特定の`currency`に正規化します。 | - - -#### 応答フォーマット #### -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:--------------|:-------|:----------------------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `data` | オブジェクト | 指定の期間のデータが含まれています。 | -| `data.date` | 文字列 | この期間が計算された日付。 | -| `data.total` | 数値 | 当該期間に取引されたXRPの合計額。 | -| `data.period` | 文字列 | 照会された期間の名前。 | - -取引量オブジェクトの`components`配列の各オブジェクトは、1つの外部マーケットの取引量を表します。マーケットによってはすべてのフィールドが表示されるわけではありません。 - -| フィールド | 値 | 説明 | -|:-------------------|:-------|:-----------------------------------------------| -| `source` | 文字列 | 特定の外部マーケットのドメイン名。 | -| `base_volume` | 数値 | ベース通貨(XRP)単位での取引量。 | -| `counter_volume` | 数値 | クオート通貨単位での取引量。 | -| `base_currecy` | 文字列 | マーケットペアのベース通貨。 | -| `counter_currency` | 文字列 | マーケットペアのクオート通貨。 | -| `rate` | 数値 | 為替レート。 | - -#### 例 #### - -要求: - -``` -GET /v2/network/external_markets -``` - - -応答: - -``` -200 OK - -{ - "result": "success", - "data": { - "components": [ - { - "base_volume": "52847221.256202064", - "counter_volume": "619.8111371100003", - "source": "poloniex.com", - "base_currency": "XRP", - "counter_currency": "BTC", - "rate": "0.0000117284" - }, - { - "base_volume": "389955.29648717004", - "counter_volume": "3212.07137265", - "source": "poloniex.com", - "base_currency": "XRP", - "counter_currency": "USD", - "rate": "0.00823702" - }, - { - "base_volume": "6025268.09143092", - "counter_volume": "70.57870572291264", - "count": 250, - "source": "kraken.com", - "base_currency": "XRP", - "counter_currency": "BTC", - "rate": "0.0000117138" - }, - { - "base_volume": "4141962.161763998", - "source": "btc38.com", - "base_currency": "XRP", - "counter_currency": "CNY" - }, - { - "base_volume": "303505", - "source": "btc38.com", - "base_currency": "XRP", - "counter_currency": "BTC" - }, - { - "base_volume": "1275008.2922999999", - "source": "jubi.com", - "base_currency": "XRP", - "counter_currency": "CNY" - } - ], - "date": "2016-10-31T20:45:20Z", - "period": "1day", - "total": "64982920.098184146" - } -} -``` - - - -## Get XRP Distribution -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/xrpDistribution.js "Source") - -現存し、流通しているXRPの合計額に関する情報を週単位で取得します。_(新規: [v2.2.0][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/xrp_distribution -``` - - - -[試してみる>](data-api-v2-tool.html#get-xrp-distribution) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、最新間隔の開始時刻です。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは、最新間隔の終了時刻です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:------------------------------|:----------------------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `count` | 整数 | 返された行の数。 | -| `rows` | 流通量オブジェクトの配列 | XRP流通量の週次スナップショット。 | - -各流通量オブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:----------------|:-----------------------|:----------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | このスナップショットの時刻。 | -| `total` | 文字列 | 現存するXRPの合計。 | -| `undistributed` | 文字列 | Ripple(企業)が保有するXRPの総額。 | -| `distributed` | 文字列 | Ripple以外が保有するXRPの総額。 | - -#### 例 - -要求: - -``` -GET /v2/network/xrp_distribution -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 171, - "rows": [ - { - "date": "2016-04-10T00:00:00Z", - "distributed": "34918644255.77274", - "total": "99997725821.25714", - "undistributed": "65079081565.4844" - }, - ... - ] -} -``` - - - -## Get Top Currencies -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/topCurrencies.js "Source") - -XRP Ledgerの上位通貨を、ランクが高いものから順に返します。このランクは、トランザクションの額と件数、および一意の取引相手の数に基づいて決定します。デフォルトでは、現在の日付で終了する30日間ローリングウィンドウの結果が返されます。結果を取得する30日間ローリングウィンドウの最終日の日付を指定できます。_(新規: [v2.1.0][])_ - - -#### 要求フォーマット - - - -*最新* - -``` -GET /v2/network/top_currencies -``` - -*日付指定* - -``` -GET /v2/network/top_currencies/{date} -``` - - - -[試してみる>](data-api-v2-tool.html#get-top-currencies) - -このメソッドでは以下のURLパラメーターを使用します。 - -| フィールド | 値 | 説明 | -|:-------|:-----------------------|:-------------------------------------------| -| `date` | 文字列 - ISO 8601の日付 | _(省略可)_ 照会する過去の日付。省略すると、利用可能な最新の日付が使用されます。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは1000です。1000を超える値は指定できません。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:-------------|:------------------------------|:------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `date` | 文字列 - [タイムスタンプ][] | このデータが測定された時点。 | -| `count` | 整数 | `currencies`フィールドに含まれているオブジェクトの数。 | -| `currencies` | 上位通貨オブジェクトの配列 | このデータサンプルの上位通貨。各メンバーは1つの通貨を通貨コードとイシュアーで表します。 | - -各上位通貨オブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:----------------------|:---------------------------|:------------------------| -| `currency` | 文字列 - [通貨コード][] | このオブジェクトが表す通貨。 | -| `issuer` | 文字列 - [アドレス][] | この通貨を発行するXRP Ledgerアドレス。 | -| `avg_exchange_count` | [文字列 - 数値][] | 1日あたりの平均[取引](#取引オブジェクト)件数。 | -| `avg_exchange_volume` | [文字列 - 数値][] | 1日あたりの平均取引量(XRPに正規化)。 | -| `avg_payment_count` | [文字列 - 数値][] | 1日あたりの平均[ペイメント](#ペイメントオブジェクト)件数。 | -| `avg_payment_volume` | [文字列 - 数値][] | 1日あたりの平均ペイメント取引量(XRPに正規化)。 | -| `issued_value` | [文字列 - 数値][] | このイシュアーが発行したこの通貨の合計額(XRPに正規化)。 | - -#### 例 - -要求: - -``` -GET /v2/network/top_currencies/2016-04-14?limit=2 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "date": "2016-04-14T00:00:00Z", - "count": 2, - "currencies": [ - { - "avg_exchange_count": "8099.967741935484", - "avg_exchange_volume": "3.5952068085531615E7", - "avg_payment_count": "624.28125", - "avg_payment_volume": "3910190.139488101", - "issued_value": "1.5276205395328993E8", - "currency": "CNY", - "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y" - }, - { - "avg_exchange_count": "3003.2258064516127", - "avg_exchange_volume": "3.430482029838605E7", - "avg_payment_count": "257.4375", - "avg_payment_volume": "501442.0789529095", - "issued_value": "2.6289124450524995E8", - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - ] -} -``` - - - -## Get Top Markets -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/topMarkets.js "Source") - -XRP Ledgerの上位マーケットを、ランクが高いものから順に返します。このランクは、取引の数と量、および参加取引相手の数に基づいて決定します。デフォルトでは、現在の日付で終わる30日間ローリングウィンドウにおける上位のマーケットが返されます。結果を取得する30日間ローリングウィンドウの最終日の日付を指定できます。_(新規: [v2.1.0][])_ - -#### 要求フォーマット - - - -*最新* - -``` -GET /v2/network/top_markets -``` - -*日付指定* - -``` -GET /v2/network/top_markets/{date} -``` - - - -[試してみる>](data-api-v2-tool.html#get-top-markets) - -このメソッドでは以下のURLパラメーターを使用します。 - -| フィールド | 値 | 説明 | -|:-------|:-----------------------|:-------------------------------------------| -| `date` | 文字列 - ISO 8601の日付 | _(省略可)_ 照会する過去の日付。省略すると、利用可能な最新の日付が使用されます。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは1000です。1000を超える値は指定できません。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:----------|:----------------------------|:-----------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `date` | 文字列 - [タイムスタンプ][] | このデータの計算対象であるローリングウィンドウの終了時刻。 | -| `count` | 整数 | `markets`フィールドに含まれている結果の数。 | -| `markets` | 上位マーケットオブジェクトの配列 | このデータサンプルの上位マーケット。各メンバーは通貨ペアを表します。 | - -各上位マーケットオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:---------------------|:---------------------------|:-------------------------| -| `base_currency` | 文字列 - [通貨コード][] | このマーケットのベース通貨。 | -| `base_issuer` | 文字列 - [アドレス][] | (`base_currency`がXRPの場合は省略)ベース通貨を発行するXRP Ledgerアドレス。 | -| `counter_currency` | 文字列 - [通貨コード][] | このマーケットのクオート通貨。 | -| `counter_issuer` | 文字列 - [アドレス][] | (`counter_currency`がXRPの場合は省略)クオート通貨を発行するXRP Ledgerアドレス。 | -| `avg_base_volume` | 文字列 | 1日あたりのベース通貨単位での平均取引量。 | -| `avg_counter_volume` | 文字列 | 1日あたりのクオート通貨単位での平均取引量。 | -| `avg_exchange_count` | 文字列 | 1日あたりの平均[取引](#取引オブジェクト)件数。 | -| `avg_volume` | 文字列 | 1日あたりの平均取引量(XRPに正規化)。 | - -#### 例 - -要求: - -``` -GET /v2/network/top_markets/2015-12-31 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "date": "2015-12-31T00:00:00Z", - "count": 58, - "markets": [ - { - "avg_base_volume": "116180.98607935428", - "avg_counter_volume": "1.6657039295476614E7", - "avg_exchange_count": "1521.4603174603174", - "avg_volume": "1.6657039295476614E7", - "base_currency": "USD", - "base_issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "counter_currency": "XRP" - }, - { - "avg_base_volume": "410510.0286920887", - "avg_counter_volume": "9117398.719214212", - "avg_exchange_count": "1902.1587301587301", - "avg_volume": "9117398.719214212", - "base_currency": "CNY", - "base_issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "counter_currency": "XRP" - }, - ... - ] -} -``` - - - -## Get Transaction Costs -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getFees.js "Source") - -レジャー、時間、または日ごとに[トランザクションコスト](transaction-cost.html)の統計情報を返します。このデータは、特定の間隔またはレジャーで支払われたトランザクションコストの最小値、最大値、および合計を示します。_(新規: [v2.2.0][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/fees -``` - - - -[試してみる>](data-api-v2-tool.html#get-transaction-costs) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトでは、利用可能な最も古いデータから開始します。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトでは、利用可能な最も新しいデータから開始します。 | -| `interval` | 文字列 | 収集間隔 - 有効な間隔は`ledger`、`hour`、`day`です。デフォルトは`ledger`です。 | -| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------------|:-----------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `count` | 整数 | `markets`フィールドに含まれている結果の数。 | -| `rows` | 手数料サマリーオブジェクトの配列 | 各間隔のトランザクションコストの統計情報。 | - -各手数料サマリーオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `avg` | 数値 | この間隔内に支払われたトランザクションコストの平均。 | -| `min` | 数値 | この間隔内に支払われたトランザクションコストの最小額。 | -| `max` | 数値 | この間隔内に支払われたトランザクションコストの最大額。 | -| `total` | 数値 | トランザクションコストにより消却されたXRPの合計。 | -| `tx_count` | 数値 | この間隔のトランザクションの数。 | -| `date` | 文字列 - [タイムスタンプ][] | この間隔の開始時刻(時間間隔)とこのレジャーの閉鎖時刻(`ledger`間隔)。 | -| `ledger_index` | 整数 - [レジャーインデックス][] | (`ledger`間隔の場合にのみ含まれます)このオブジェクトが表すレジャー。 | - -#### 例 - -要求: - -``` -GET /v2/network/fees?interval=day&limit=3&descending=true -``` - -応答: - -``` -200 OK -{ - "result": "success", - "marker": "day|20160603000000", - "count": 3, - "rows": [ - { - "avg": 0.011829, - "max": 15, - "min": 0.01, - "total": 6682.15335, - "tx_count": 564918, - "date": "2016-06-06T00:00:00Z" - }, - { - "avg": 0.011822, - "max": 4.963071, - "min": 0.01, - "total": 5350.832025, - "tx_count": 452609, - "date": "2016-06-05T00:00:00Z" - }, - { - "avg": 0.012128, - "max": 15, - "min": 0.01, - "total": 5405.126404, - "tx_count": 445689, - "date": "2016-06-04T00:00:00Z" - } - ] -} -``` - - - - -## Get Fee Stats -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getFeeStats.js "Source") - -`rippled`の[`fee`コマンド](fee.html)から導出されたメトリクスのスナップショットを返します。_(新規: [v2.3.2][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/fee_stats -``` - - - -[試してみる>](data-api-v2-tool.html#get-fee-stats) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトでは、利用可能な最も古いデータから開始します。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトでは、利用可能な最新データで終了します。 | -| `interval` | 文字列 | スナップショットの間隔。有効な間隔は`minute`、`hour`、`day`です。デフォルトの間隔は5秒です。 | -| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------------|:-----------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `count` | 整数 | `markets`フィールドに含まれている結果の数。 | -| `rows` | 手数料サマリーオブジェクトの配列 | 各間隔のトランザクションコストの統計情報。 | - -各**手数料サマリーオブジェクト**のフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:-----------------------|:-----------------------|:---------------------------| -| `date` | 文字列 - [タイムスタンプ][] | スナップショットの取得日時。 | -| `current_ledger_size` | 数値 | 指定時刻での現行レジャーのトランザクション数。 | -| `expected_ledger_size` | 数値 | 指定時刻に次のレジャーで予想されるトランザクションの数。 | -| `current_queue_size` | 数値 | 将来のレジャーに追加されるようキューに入れられているトランザクションの数。 | -| `pct_max_queue_size` | 数値 | 現在のキューサイズ(最大キューサイズに対する割合で表されます)。 | -| `median_fee` | 数値 | 現行レジャーのトランザクションの手数料の中央値。 | -| `minimum_fee` | 数値 | 任意のレジャーに追加する際の最小手数料。 | -| `open_ledger_fee` | 数値 | スナップショットの取得時点でオープンしていたレジャーに追加するコストのしきい値。 | - -#### 例 - -要求: - -``` -GET /v2/network/fee_stats -``` - -応答: - -``` -200 OK -{ - result: "success", - marker: "raw|20160701032100", - count: 200, - rows: [ - { - current_ledger_size: 39, - current_queue_size: 0, - date: "2016-07-01T00:00:00Z", - expected_ledger_size: 59, - median_fee: 0.005, - minimum_fee: 0.00001, - open_ledger_fee: 0.00001, - pct_max_queue_size: 0 - }, - { - current_ledger_size: 33, - current_queue_size: 0, - date: "2016-07-01T00:01:00Z", - expected_ledger_size: 59, - median_fee: 0.00543, - minimum_fee: 0.00001, - open_ledger_fee: 0.00001, - pct_max_queue_size: 0 - }, - ... - ] -} -``` - - - - -## Get Topology -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getTopology.js "Source") - -既知の`rippled`サーバーと、これらのサーバー間のピアツーピア接続を取得します。_(新規: [v2.2.0][])_ - - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/topology -``` - - - -[試してみる>](data-api-v2-tool.html#get-topology) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:----------|:-----------------------|:----------------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | 過去のクエリーの日時。デフォルトでは、利用可能な最新のデータが使用されます。 | -| `verbose` | ブール値 | `true`の場合、各サーバーに関する追加の詳細情報が含まれます(使用可能な場合)。デフォルトは`false`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:-------------|:----------------------------|:--------------------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `date` | 文字列 - [タイムスタンプ][] | この測定の時刻。 | -| `node_count` | 整数 | トポロジー内の`rippled`サーバーの数。 | -| `link_count` | 整数 | トポロジー内のリンクの数。 | -| `nodes` | [サーバーオブジェクト][]の配列 | ピアツーピアネットワーク内の`rippled`サーバーの詳細。 | -| `links` | [リンクオブジェクト][]の配列 | ピアツーピアネットワーク内の`rippled`サーバー間のネットワーク接続。 | - -#### 例 - -要求: - -``` -GET /v2/network/topology -``` - -応答: - -``` -200 OK -{ - "result": "success", - "date": "2016-06-06T23:51:04Z", - "node_count": 115, - "link_count": 1913, - "nodes": [ - { - "node_public_key": "n94fDXS3ta92gRSi7DKngh47S7Rg4z1FuNsahvbiakFEg51dLeVa", - "version": "rippled-0.31.0-rc1", - "uptime": 266431, - "inbound_count": 24, - "last_updated": "2016-06-03T21:50:57Z" - }, - { - "node_public_key": "n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor", - "ip": "104.247.221.178", - "port": 51235, - "version": "rippled-0.31.0", - "uptime": 608382, - "inbound_count": 10, - "outbound_count": 11, - "city": "Atlanta", - "country": "United States", - "country_code": "US", - "isp": "QuickPacket, LLC", - "last_updated": "2016-05-28T06:29:43Z", - "lat": "-84.3846", - "long": "33.8379", - "postal_code": "30305", - "region": "Georgia", - "region_code": "GA", - "timezone": "America/New_York" - }, - - ... - ], - "links": [ - { - "source": "n94Extku8HiQVY8fcgxeot4bY7JqK2pNYfmdnhgf6UbcmgucHFY8", - "target": "n9KcFAX2bCuwF4vGF8gZZcpQQ6nyqm44e5TUygb3zvdZEpiJE5As" - }, - { - "source": "n94Extku8HiQVY8fcgxeot4bY7JqK2pNYfmdnhgf6UbcmgucHFY8", - "target": "n9LGAj7PjvfTmEGQ75JaRKba6GQmVwFCnJTSHgX2HDXzxm6d2JpM" - }, - - ... - ] -} -``` - - - -## Get Topology Nodes -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getNodes.js "Source") - -既知の`rippled`ノードを取得します。(これは[Get Topologyメソッド](#get-topology)で返されるデータのサブセットです。)_(新規: [v2.2.0][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/topology/nodes -``` - - - -[試してみる>](data-api-v2-tool.html#get-topology-nodes) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:----------|:-----------------------|:----------------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | 過去のクエリーの日時。デフォルトは最新データです。 | -| `verbose` | ブール値 | `true`の場合は、各サーバーのすべての詳細が返されます。デフォルトは`false`です。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:----------------------------|:------------------------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `date` | 文字列 - [タイムスタンプ][] | このデータが測定された時点。 | -| `count` | 整数 | 記述される`rippled`サーバーの数。 | -| `nodes` | [サーバーオブジェクト][]の配列 | トポロジー内の`rippled`サーバーの詳細。 | - -#### 例 - -要求: - -``` -GET /v2/network/topology/nodes -``` - -応答: - -``` -200 OK -{ - "result": "success", - "date": "2016-06-08T00:36:53Z", - "count": 116, - "nodes": [ - { - "node_public_key": "n94BuARkPiYLrMuAVZqMQFhTAGpo12dqUPiH3yrzEnhaEcXfLAnV", - "version": "rippled-0.30.1", - "uptime": 122424, - "inbound_count": 10, - "last_updated": "2016-06-06T14:36:52Z" - }, - { - "node_public_key": "n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor", - "ip": "104.247.221.178", - "port": 51235, - "version": "rippled-0.31.2", - "uptime": 38649, - "inbound_count": 10, - "outbound_count": 11, - "city": "Atlanta", - "country": "United States", - "country_code": "US", - "isp": "QuickPacket, LLC", - "last_updated": "2016-06-07T13:53:12Z", - "lat": "-84.3846", - "long": "33.8379", - "postal_code": "30305", - "region": "Georgia", - "region_code": "GA", - "timezone": "America/New_York" - }, - - ... - - ] -} -``` - - - -## Get Topology Node -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getNodes.js "Source") - -1つの`rippled`サーバーに関する情報を、そのバリデータの公開鍵ではなく[ノードの公開鍵](#公開鍵)に基づいて取得します。_(新規: [v2.2.0][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/topology/nodes/{pubkey} -``` - - - -[試してみる>](data-api-v2-tool.html#get-topology-node) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:---------|:--------------------------------|:--------------------------------| -| `pubkey` | 文字列 - Base-58 [公開鍵][] | 検索するサーバーのノードの公開鍵。 | - -このメソッドはクエリーパラメーターをとりません。 - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と、以下の追加フィールドが含まれる **[サーバーオブジェクト][]** を含むJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-------|:---------------------------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | - -#### 例 - -要求: - -``` -GET /v2/network/topology/nodes/n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor -``` - -応答: - -``` -200 OK -{ - "node_public_key": "n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor", - "ip": "104.247.221.178", - "port": 51235, - "version": "rippled-0.31.2", - "uptime": 43342, - "inbound_count": 10, - "outbound_count": 11, - "city": "Atlanta", - "country": "United States", - "country_code": "US", - "isp": "QuickPacket, LLC", - "last_updated": "2016-06-07T13:53:12Z", - "lat": "-84.3846", - "long": "33.8379", - "postal_code": "30305", - "region": "Georgia", - "region_code": "GA", - "timezone": "America/New_York", - "result": "success" -} -``` - - - -## Get Topology Links -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getLinks.js "Source") - -`rippled`サーバー間のピアツーピア接続に関する情報を取得します。(これは[Get Topologyメソッド](#get-topology)で返されるデータのサブセットです。)_(新規: [v2.2.0][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/topology/links -``` - - - -[試してみる>](data-api-v2-tool.html#get-topology-links) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------|:-----------------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | 過去のクエリーの日時。デフォルトは、使用可能な最新データです。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:--------------------------|:--------------------------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `date` | 文字列 - [タイムスタンプ][] | このデータが測定された時点。 | -| `count` | 整数 | 返されたリンクの数。 | -| `links` | [リンクオブジェクト][]の配列 | `rippled`サーバー間のリンク。 | - -#### 例 - -要求: - -``` -GET /v2/network/topology/links -``` - -応答: - -``` -200 OK -{ - result: "success", - date: "2016-03-21T16:38:52Z", - count: 1632, - links: [ - { - source: "n94Extku8HiQVY8fcgxeot4bY7JqK2pNYfmdnhgf6UbcmgucHFY8", - target: "n9JccBLfrDJBLBF2X5N7bUW8251riCwSf9e3VQ3P5fK4gYr5LBu4" - }, - ... - ] -} -``` - - - -## Get Validator -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidators.js "Source") - -[コンセンサスネットワーク](consensus.html)内の1つのバリデータに関する詳細を取得します。_(更新: [v2.4.0][])_ - - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/validators/{pubkey} -``` - - - -[試してみる>](data-api-v2-tool.html#get-validator) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:---------|:--------------------------------|:----------------------| -| `pubkey` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:-------|:---------------------------------------------------------| -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------------------|:--------------------------------|:-----------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | このバリデータのバリデータ公開鍵。 | -| `domain` | 文字列 | (省略される場合があります)このバリデータに関連付けられているDNSドメイン。 | -| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | -| `unl` | ブール値 | Trueの場合、バリデータはレジャーチェーンの推奨UNLの一部です。 | -| `current_index` | 数値 | 最新の検証済みレジャーのレジャーインデックス。 | -| `partial` | ブール値 | Trueの場合、最新の検証は部分的な検証です。 | -| `agreement_1h` | 合意オブジェクト | 直近1時間の合意の状況を含むオブジェクト。 | -| `agreement_24h` | 合意オブジェクト | 直近24時間の合意の状況を含むオブジェクト。 | - -#### 合意オブジェクト - -| フィールド | 値 | 説明 | -|:------------------------|:--------------------------------|:-----------------| -| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | -| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | -| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | -| `incomplete` | ブール値 | Trueの場合は、当該期間全体のデータはカバーされていません。 | - -#### 例 - -要求: - -``` -GET /v2/network/validators/nHBidG3pZK11zQD6kpNDoAhDxH6WLGui6ZxSbUx7LSqLHsgzMPec -``` - -応答: - -``` -200 OK -{ - "validation_public_key": "nHBidG3pZK11zQD6kpNDoAhDxH6WLGui6ZxSbUx7LSqLHsgzMPec", - "domain": "bitso.com", - "chain": "main", - "current_index": 42279525, - "agreement_1h": { - "missed": 0, - "total": 981, - "score": "1.0000", - "incomplete": false - }, - "agreement_24h": { - "missed": 0, - "total": 23519, - "score": "1.0000", - "incomplete": false - }, - "partial": false, - "unl": true, - "result": "success" -} -``` - - - -## Get Validators -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidators.js "Source") - -直近24時間にアクティブであった既知のバリデータのリストを取得します。_(更新: [v2.4.0][])_ - - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/validators -``` - - - -[試してみる>](data-api-v2-tool.html#get-validators) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:-------|:---------------------------------------------------------| -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------------------|:--------------------------------|:-----------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `count` | 整数 | 返されたバリデータの数。 | -| `validators` | [バリデータオブジェクト][]の配列 | 直近24時間にアクティブであったバリデータのリスト。 | - -#### バリデータオブジェクト -[バリデータオブジェクト]: #バリデータオブジェクト - -| フィールド | 値 | 説明 | -|:------------------------|:--------------------------------|:-----------------| -| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | このバリデータのバリデータ公開鍵。 | -| `domain` | 文字列 | (省略される場合があります)このバリデータに関連付けられているDNSドメイン。 | -| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | -| `unl` | ブール値 | Trueの場合、バリデータはレジャーチェーンの推奨UNLの一部です。 | -| `current_index` | 数値 | 最新の検証済みレジャーのレジャーインデックス。 | -| `partial` | ブール値 | Trueの場合、最新の検証は部分的な検証です。 | -| `agreement_1h` | 合意オブジェクト | 直近1時間の合意の状況を含むオブジェクト。 | -| `agreement_24h` | 合意オブジェクト | 直近24時間の合意の状況を含むオブジェクト。 | - -#### 合意オブジェクト - -| フィールド | 値 | 説明 | -|:------------------------|:--------------------------------|:-----------------| -| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | -| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | -| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | -| `incomplete` | ブール値 | Trueの場合は、当該期間全体のデータはカバーされていません。 | - -#### 例 - -要求: - -``` -GET /v2/network/validators/ -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 141, - "validators": [ - { - "validation_public_key": "nHBidG3pZK11zQD6kpNDoAhDxH6WLGui6ZxSbUx7LSqLHsgzMPec", - "domain: "bitso.com", - "chain": "main", - "current_index": 42281151, - "agreement_1h": { - "missed": 0, - "total": 1029, - "score": "1.0000", - "incomplete": false - }, - "agreement_24h": { - "missed": 0, - "total": 23585, - "score": "1.0000", - "incomplete": false - }, - "partial": false, - "unl": true - }, - { - "validation_public_key": "nHUStq4qu3NXaL6T42wbtpR8mare8gWMVYrUzek227c6QeUn6QGN", - "domain": "blockchain.korea.ac.kr", - "chain": "main", - "current_index": 42860792, - "agreement_1h": { - "missed": 0, - "total": 995, - "score": "1.0000", - "incomplete": false - }, - "agreement_24h": { - "missed": 0, - "total": 23478, - "score": "1.0000", - "incomplete": false - }, - "partial": false, - "unl": true - }, - - ... - ] -} -``` - - - -## Get Validator Manifests -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getManifests.js "Source") - -指定されたバリデータにより署名されたマニフェストを取得します。(マニフェストは _サブキー認証_ とも呼ばれ、バリデータが提案と検証の署名に使用する一時的なキーを指します。)_(新規: [v2.3.7][])_ - -**注記:** Data APIは、すべてのマニフェストを網羅する包括的な記録を持っていません。応答には、Data APIに記録されているデータのみが含まれています。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/validators/{pubkey}/manifests -``` - - - -[試してみる>](data-api-v2-tool.html#get-validator-manifests) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:--------------------------------|:----------------------| -| `pubkey` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------|:------------------------------|:-------------------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `count` | 整数 | 返されたマニフェストの数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `manifests` | [マニフェストオブジェクト][]の配列 | 要求されたマニフェスト。 | - -#### マニフェストオブジェクト -[マニフェストオブジェクト]: #マニフェストオブジェクト - -各マニフェストオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:-----------------------|:--------------------------------|:------------------| -| `count` | 数値 | Data APIがこのマニフェストを参照した回数。この数値が小さいほど、マニフェストが新しいものであることを意味します。 | -| `ephemeral_public_key` | 文字列 - Base-58 [公開鍵][] | このマニフェストでエンコードされているこのバリデータの一時公開鍵。 | -| `first_datetime` | 文字列 - [タイムスタンプ][] | Data APIがこのマニフェストを最初に参照した時刻。 | -| `last_datetime` | 文字列 - [タイムスタンプ][] | Data APIがこのマニフェストを最後に参照した時刻。 | -| `master_public_key` | 文字列 - Base-58 [公開鍵][] | このバリデータを識別するマスター公開鍵。 | -| `master_signature` | 文字列 - 16進数 | このマニフェストを承認するバリデータのマスターキーの署名。 | -| `sequence` | 数値 | このマニフェストのシーケンス番号。大きなシーケンス番号のマニフェストは古いマニフェストを置き換え、一時キーをローテーションします。 | -| `signature` | 文字列 - 16進数 | このマニフェストにより承認された一時キーによる署名。 | - -#### 例 - -要求: - -``` -GET /v2/network/validator/nHDEmQKb2nbcewdQ1fqCTGcPTcePhJ2Rh6MRftsCaf6UNRQLv7pB/manifests -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 2, - "manifests": [ - { - "count": 1, - "ephemeral_public_key": "nHUvPMeNsrwdJd7d65eaYGkKx6bPEcxJGudjVDqwCybtEfrSUE8w", - "first_datetime": "2018-09-06T20:20:08.353Z", - "last_datetime": "2018-09-06T20:20:08.353Z", - "master_public_key": "nHDEmQKb2nbcewdQ1fqCTGcPTcePhJ2Rh6MRftsCaf6UNRQLv7pB", - "master_signature": - "D8E78AD2C10ADA5A91D673C2EA66045926D3ED3D4C77DE4350AAA076379F69B8D0EC492A626EA9228964F694EED9EC63394D051001BA432EC57F2B6031204806", - "sequence": "1", - "signature": - "C794C3D1159932FF8EE7360074E7D17CB59F6646B227EF35D439892C00832648C46FD1958714E153AF4BD0540A7B27011B7F58D357B68B87DCBF5CA81874480C" - }, - { - "count": 1, - "ephemeral_public_key": "n9M7mktkbZCnKWa41LFkZsfXemBGdYsFT6fqJBXa4xupV8X8px7W", - "first_datetime": "2018-09-06T20:20:08.357Z", - "last_datetime": "2018-09-06T20:20:08.357Z", - "master_public_key": "nHDEmQKb2nbcewdQ1fqCTGcPTcePhJ2Rh6MRftsCaf6UNRQLv7pB", - "master_signature": - "F7ECCB90F84ED3FC5E0DE1A6B0B7E835A8D2A94C8E985A74932DE30CD2EDCB46936FD14C39A5AA1BB3583CF888C869167979FEE068C6C34B9B63AB922850090E", - "sequence": "2", - "signature": - "3044022055ED7EFF1245DE21D3C28C57D19301291F0D617CA3A6D3D4CFDF8692D9E0E68502200276215BA986BA61834E0AC71E8590706C851B8F55F0B80A44EECE868F71415F" - } - ] -} -``` - - -## Get Single Validator Reports -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidatorReports.js "Source") - -24時間間隔で1つのバリデータの検証投票の状況を取得します。_(更新: [v2.4.0][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/validators/{pubkey}/reports -``` - - - -[試してみる>](data-api-v2-tool.html#get-single-validator-reports) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:---------|:-------|:----------------------| -| `pubkey` | 文字列 | バリデータの公開鍵。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------|:-----------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 過去のクエリーの開始日時。デフォルトでは、開始日は現在の日付の200日前です。 | -| `end` | 文字列 - [タイムスタンプ][] | 過去のクエリーの終了日時。デフォルトでは、使用可能な最新データで終了します。 | -| `descending` | ブール値 | 結果を逆の順序で返します。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------------------------|:-------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `count` | 整数 | 返されたバリデータの日次レポートの数。 | -| `reports` | [シングルバリデータレポートオブジェクト][]の配列。 | 当該日の各バリデータのパフォーマンスに関する日次レポート。 | - -##### シングルバリデータレポートオブジェクト -[シングルバリデータレポートオブジェクト]: #シングルバリデータレポートオブジェクト - -各シングルバリデータレポートオブジェクトは、特定日のバリデータのパフォーマンスを表し、以下のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:---------------------|:--------------------------------|:-----------------------------| -| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | -| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトが表す日付の開始時刻。 | -| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | -| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | -| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | -| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | -| `incomplete` | ブール値 | Trueの場合は、当該期間全体のデータはカバーされていません。 | - -#### 例 - -要求: - -``` -GET /v2/network/validators/n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7/reports -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 198, - "reports": [ - { - "date": "2015-11-20T00:00:00Z", - "total_ledgers": 19601, - "main_net_agreement": "1.0", - "main_net_ledgers": 19601, - "alt_net_agreement": "0.0", - "alt_net_ledgers": 0, - "other_ledgers": 0 - }, - { - "date": "2015-11-21T00:00:00Z", - "total_ledgers": 19876, - "main_net_agreement": "1.0", - "main_net_ledgers": 19876, - "alt_net_agreement": "0.0", - "alt_net_ledgers": 0, - "other_ledgers": 0 - }, - - ... - ] -} -``` - - -## Get Daily Validator Reports -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidatorReports.js "Source") - -24時間ですべての既知のバリデータの検証投票の状況とバリデータ情報を取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/validator_reports -``` - - - -[試してみる>](data-api-v2-tool.html#get-daily-validator-reports) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------|:-----------------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | 照会する日時。デフォルトでは、利用可能な最新のデータが使用されます。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:----------|:----------------------------------------|:-----------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `count` | 整数 | 返されたレポートの数。 | -| `reports` | [日次バリデータレポートオブジェクト][]の配列。 | この期間中にアクティブであった各バリデータのバリデータパフォーマンスの日次サマリー。 | - -#### 日次バリデータレポートオブジェクト -[日次バリデータレポートオブジェクト]: #日次バリデータレポートオブジェクト - -`reports`配列の各メンバーは、当該日のバリデータのパフォーマンスを表し、以下のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:---------------------|:--------------------------------|:-----------------------------| -| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | -| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトが表す日付の開始時刻。 | -| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | -| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | -| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | -| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | -| `incomplete` | ブール値 - 省略可 | Trueの場合は、当該期間全体のデータはカバーされていません。 | - -#### 例 - -要求: - -``` -GET /v2/network/validator_reports -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 27, - "reports": [ - { - "validation_public_key": "n9J2N3FfiUFC4rBX5UBob8JzgDGsYqUou1cwKdsaymS44mZDfnYe", - "date": "2018-10-15T00:00:00Z", - "chain": "main", - "score": "0.6909", - "total": "16127", - "missed": "7216" - } - ] -} -``` - - -## Get rippled Versions -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getVersions.js "Source") - -公式Ripple Yumリポジトリから入手可能な`rippled`の最新バージョンを報告します。_(新規: [v2.3.0][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/network/rippled_versions -``` - - - -[試してみる>](data-api-v2-tool.html#get-rippled-versions) - - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-------------------------|:---------------------------------------| -| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | -| `count` | 整数 | 返された行の数。 | -| `rows` | バージョンオブジェクトの配列 | 各リポジトリの最新`rippled`バージョンの説明。 | - -各バージョンオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:----------|:-----------------------|:----------------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | この`rippled`バージョンのリリース日。 | -| `repo` | 文字列 | この`rippled`が入手可能なYumリポジトリ。`stable`リポジトリに最新の本番環境バージョンがあります。その他のバージョンは開発テスト用です。 | -| `version` | 文字列 | この`rippled`バージョンを示すバージョン文字列。 | - -#### 例 - -要求: - -``` -GET /v2/network/rippled_versions -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 3, - "rows": [ - { - "date": "2016-06-24T00:00:00Z", - "repo": "nightly", - "version": "0.32.0-rc2" - }, - { - "date": "2016-06-24T00:00:00Z", - "repo": "stable", - "version": "0.32.0" - }, - { - "date": "2016-06-24T00:00:00Z", - "repo": "unstable", - "version": "0.32.0-rc1" - } - ] -} -``` - - - -## Get All Gateways -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/gateways.js "Source") - -[既知のゲートウェイ](https://github.com/ripple/rippled-historical-database/blob/v2.0.4/api/gateways/gateways.json)に関する情報を取得します。_(新規: [v2.0.4][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/gateways/ -``` - - - -[試してみる>](data-api-v2-tool.html#get-all-gateways) - -このメソッドはクエリーパラメーターをとりません。 - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**とJSON本文が返されます。 - -上位JSONオブジェクトの各フィールドは[通貨コード][]です。各フィールドの内容は、当該通貨を発行するゲートウェイを表すオブジェクトの配列です。各オブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:-----------|:---------------------|:-----------------------------------------| -| `name` | 文字列 | 人間が読み取れる形式のゲートウェイの名前。 | -| `account` | 文字列 - [アドレス][] | この通貨の[発行アドレス](issuing-and-operational-addresses.html)。 | -| `featured` | ブール値 | このゲートウェイが通貨の「主要」イシュアーとして見なされるかどうか。Rippleは、責任あるビジネスプラクティスや取引量などの評価基準に基づいて主要とするゲートウェイを決定します。 | -| `label` | 文字列 | (省略される場合があります)[通貨コード][]が40文字の16進値である場合にのみ出力されます。これは、このゲートウェイが発行した通貨の人間が読める形式の別名です。 | -| `assets` | 文字列の配列 | このゲートウェイに対して利用可能なグラフィックスファイル名(存在する場合)。(ほとんどの場合、XRP Chartsで使用されるロゴのグラフィックスファイル名となります。) | - -#### 例 - -要求: - -``` -GET /v2/gateways/ -``` - -応答: - -``` -200 OK -{ - "AUD": [ - { - "name": "Bitstamp", - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "featured": false, - "assets": [ - "logo.grayscale.svg", - "logo.svg" - ] - }, - { - "name": "Coinex", - "account": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", - "featured": false, - "assets": [] - } - ], - -...(additional results trimmed) ... - - "0158415500000000C1F76FF6ECB0BAC600000000": [ - { - "name": "GBI", - "account": "rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67", - "featured": false, - "label": "XAU (-0.5pa)", - "assets": [] - } - ], - "KRW": [ - { - "name": "EXRP", - "account": "rPxU6acYni7FcXzPCMeaPSwKcuS2GTtNVN", - "featured": true, - "assets": [] - }, - { - "name": "Pax Moneta", - "account": "rUkMKjQitpgAM5WTGk79xpjT38DEJY283d", - "featured": false, - "assets": [] - } - ] -} -``` - - - -## Get Gateway -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/gateways.js "Source") - - -[Data APIの既知のゲートウェイのリスト](https://github.com/ripple/rippled-historical-database/blob/v2.0.4/api/gateways/gateways.json)から、特定のゲートウェイに関する情報を取得します。_(新規: [v2.0.4][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/gateways/{gateway} -``` - - - -[試してみる>](data-api-v2-tool.html#get-gateway) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `gateway` | 文字列 | ゲートウェイの発行[アドレス][]、[URLエンコード名](https://en.wikipedia.org/wiki/Percent-encoding)、または正規化された名前です。 | - -このメソッドはクエリーパラメーターをとりません。 - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `name` | 文字列 | 人間が読み取れる形式のゲートウェイの名前。 | -| `start_date` | 文字列 - [タイムスタンプ][] | レジャーに記録されているこのゲートウェイの通貨の初回取引のおおよその日付。 | -| `accounts` | 配列 | このゲートウェイが使用する[発行アドレス](issuing-and-operational-addresses.html)のリスト。(ゲートウェイは、異なる通貨に異なる発行アカウントを使用することがあります。) | -| `hotwallets` | [アドレス][]の配列 | このゲートウェイの[運用アドレス](issuing-and-operational-addresses.html)。 | -| `domain` | 文字列 | このゲートウェイのビジネス用ドメイン名。 | -| `normalized` | 文字列 | URLに組み込むことができる`name`フィールドの正規化バージョン。 | -| `assets` | 文字列の配列 | このゲートウェイに対して利用可能なグラフィックスファイル名(存在する場合)。(ほとんどの場合、XRP Chartsで使用されるロゴのグラフィックスファイル名となります。) | - -`accounts`フィールド配列の各オブジェクトには以下のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:-------------|:-------|:-----------------------------------------------------| -| `address` | 文字列 | このゲートウェイが使用する[発行アドレス](issuing-and-operational-addresses.html)。 | -| `currencies` | オブジェクト | このオブジェクトの各フィールドは、このアドレスが発行する通貨に対応した[通貨コード][]です。各値は、その通貨が主要通貨であるかどうかを示す`featured` ブール値を含むオブジェクトです。Rippleは、責任あるビジネスプラクティスや取引量などの評価基準に基づいて主要とする通貨とゲートウェイを決定します。 | - -#### 例 - -要求: - -``` -GET /v2/gateways/Gatehub -``` - -応答: - -``` -200 OK -{ - "name": "Gatehub", - "start_date": "2015-02-15T00:00:00Z", - "accounts": [ - { - "address": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - "currencies": { - "EUR": { - "featured": true - }, - "USD": { - "featured": true - } - } - } - ], - "hotwallets": [ - "rhotcWYdfn6qxhVMbPKGDF3XCKqwXar5J4" - ], - "domain": "gatehub.net", - "normalized": "gatehub", - "assets": [ - "logo.grayscale.svg", - "logo.svg" - ] -} -``` - - - - -## Get Currency Image - -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/gateways.js#L199 "Source") - -各種通貨のベクターアイコンを取得します。_(新規: [v2.0.4][])_ - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/currencies/{currencyimage} -``` - - - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------------|:-------|:--------------------------------------------------| -| `currencyimage` | 文字列 | 通貨のイメージファイル(`xrp.svg`など)。利用可能なイメージのリストについては[ソースコード](https://github.com/ripple/rippled-historical-database/tree/develop/api/gateways/currencyAssets)を参照してください。 | - -#### 応答フォーマット -成功した場合の応答にはHTTPコード **200 OK**が含まれており、**Content-Type**ヘッダーは`image/svg+xml`です。これは、コンテンツが[SVGフォーマット](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics)のファイルを表すXMLであることを示しています。 - -#### 例 - -要求: - -``` -GET /v2/currencies/mxn.svg -``` - -応答 - -``` -200 OK -Content-Type: image/svg+xml - - - - - - - - - -``` - - - -## Get Accounts -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accounts.js "Source") - -XRP Ledgerでの新しいアカウントの作成に関する情報を取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/accounts -``` - - - -[試してみる>](data-api-v2-tool.html#get-accounts) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1,000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `parent` | 文字列 | 指定された親アカウントの子に結果を絞り込みます。`interval`パラメーターとともに指定することはできません。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -`interval`および`reduce`パラメーターは[v2.3.5][]で除去されました。 - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:-----------|:--------|:------------------------------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返されたアカウントの数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `accounts` | 配列 |[アカウント作成オブジェクト](#アカウント作成オブジェクト)の配列。 | - -#### 例 - -要求: - -``` -GET /v1/accounts?parent=rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 3, - "accounts": [ - { - "balance": "20.0", - "account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "executed_time": "2015-02-09T23:31:40+00:00", - "ledger_index": 11620700, - "parent": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "tx_hash": "1D381C0FCA00E8C34A6D4D3A91DAC9F3697B4E66BC49ED3D9B2D6F57D7F15E2E" - }, - { - "balance": "30", - "account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "executed_time": "2015-06-16T21:15:40+00:00", - "ledger_index": 14090928, - "parent": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "tx_hash": "60B614622FC67DFCA8D796D7F6AF0B7AEC5E59BB268EA032F810395407DDF8D5" - }, - { - "balance": "50", - "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "executed_time": "2015-09-23T23:05:20+00:00", - "ledger_index": 16061430, - "parent": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "tx_hash": "FAE331A6D5CB83BCE832E7EBEDBD807EDEFFAF39AB241683EE81A0326A1A6748" - } - ] -} -``` - - -## Get Account -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getAccount.js "Source") - -特定のrippleアカウントの作成に関する情報を取得します。 - -#### 要求フォーマット - - - - -*REST* - -``` -GET /v2/accounts/{address} -``` - - - -[試してみる>](data-api-v2-tool.html#get-account) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:-----------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:----------|:-------------------------------------------------------|:--------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `account` | オブジェクト - [アカウント作成](#アカウント作成オブジェクト) | 要求されたアカウント。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn -``` - -応答: - -``` -200 OK -{ - "result": "success", - "account": { - "address": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "parent": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "initial_balance": "100.0", - "inception": "2014-05-29T17:05:20+00:00", - "ledger_index": 6902264, - "tx_hash": "074415C5DC6DB0029E815EA6FC2629FBC29A2C9D479F5D040AFF94ED58ECC820" - } -} -``` - - - -## Get Account Balances -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountBalances.js "Source") - -特定のXRP Ledgerアカウントが保有または支払い義務のあるすべての残高を取得します。 - - - -*REST* - -``` -GET /v2/accounts/{address}/balances -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-balances) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:-----------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------------|:--------|:--------------------------------------------------| -| `ledger_index` | 整数 | 過去の残高のレジャーのインデックス。 | -| `ledger_hash` | 文字列 | 過去の残高のレジャーハッシュ。 | -| `date` | 文字列 | 過去の残高の日付(UTC)。 | -| `currency` | 文字列 | 指定された通貨に結果を制限します。 | -| `counterparty` | 文字列 | 指定された取引相手/イシュアーに結果を制限します。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。400よりも大きい値は指定できませんが、値`all` を使用すればすべての結果を返せます。(注意: 非常に大量の結果を取得する際にlimit=allを指定すると、要求がタイムアウトになる可能性があります。大規模なイシュアーの場合は、結果が数万件にのぼることがあります。) | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------------|:-----------------------------|:-----------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `ledger_index` | 整数 | 残高クエリーのレジャーインデックス。 | -| `close_time` | 文字列 | レジャーの閉鎖時刻。 | -| `limit` | 文字列 | 制限を超えた場合に返された結果の数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `balances` | [残高オブジェクト][]の配列。 | 要求された残高。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/balances?currency=USD&date=2015-01-01T00:00:00Z&limit=3 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "ledger_index": 10852618, - "close_time": "2015-01-01T00:00:00Z", - "limit": 3, - "balances": [ - { - "currency": "USD", - "counterparty": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "value": "-11.0301" - }, - { - "currency": "USD", - "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "0.0001" - }, - { - "currency": "USD", - "counterparty": "rweYz56rfmQ98cAdRaeTxQS9wVMGnrdsFp", - "value": "0" - } - ] -} -``` - - -## Get Account Orders -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountOrders.js "Source") - -オーダーブックで特定のアカウントが発注したオーダーを取得します。すでに処理されたオーダーは返されません。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/account/{address}/orders -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-orders) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:---------------------|:-----------------------------| -| `address` | 文字列 - [アドレス][] | 照会するXRP Ledgerアドレス。 | - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------------|:-----------------------|:-----------------------------------| -| `ledger_index` | 整数 | このレジャーの時点でのオーダーを取得します。`ledger_hash`または`date`と同時に指定することはできません。 | -| `ledger_hash` | 文字列 | このレジャーの時点でのオーダーを取得します。`ledger_index`または`date`と同時に指定することはできません。 | -| `date` | 文字列 - [タイムスタンプ][] | この時刻でのオーダーを取得します。`ledger_index`または`ledger_hash`と同時に指定することはできません。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。400を超える値は指定できません。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - -`ledger_index`、`ledger_hash`、`date`のいずれも指定されていない場合、APIは利用可能な最新データを使用します。 - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------------|:-----------------------|:-----------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `ledger_index` | 整数 | 使用するレジャーバージョンの`ledger_index`。 | -| `close_time` | 文字列 | 使用するレジャーバージョンの閉鎖時刻。 | -| `limit` | 文字列 | 要求に指定されていた`limit`。 | -| `orders` | オーダーオブジェクトの配列 | 要求されたオーダー。 | - -各オーダーオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:-------------------------------|:---------------------|:---------------------| -| `specification` | オブジェクト | このオーダーの現在の状態の詳細。 | -| `specification.direction` | 文字列 | `buy`または`sell`。 | -| `specification.quantity` | [残高オブジェクト][] | このオーダーで(方向に応じて)売却または購入するベース通貨の最大額。オーダーが部分的に約定するとこの値が減少します。 | -| `specification.totalPrice` | [残高オブジェクト][] | ベース通貨の購入または売却のためにオーダーで支出または獲得できるクオート通貨の最大額。オーダーが部分的に約定するとこの値が減少します。 | -| `properties` | オブジェクト | オーダーの発注方法の詳細。 | -| `properties.maker` | 文字列 - [アドレス][] | オーダーを発注したXRP Ledgerアカウント。 | -| `properties.sequence` | 数値 | このオーダーを発注したトランザクションのシーケンス番号。 | -| `properties.makerExchangeRate` | [文字列 - 数値][] | オーダーを送信したアカウントの側から見た為替レート。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rK5j9n8baXfL4gzUoZsfxBvvsv97P5swaV/orders?limit=2&date=2015-11-11T00:00:00Z -``` - -応答: - -``` -200 OK -{ - "result": "success", - "ledger_index": 17007855, - "close_time": "2015-11-11T00:00:00Z", - "limit": 2, - "orders": [ - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "JPY", - "value": "56798.00687665813", - "counterparty": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN" - }, - "totalPrice": { - "currency": "USD", - "value": "433.792841227449", - "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } - }, - "properties": { - "maker": "rK5j9n8baXfL4gzUoZsfxBvvsv97P5swaV", - "sequence": 7418286, - "makerExchangeRate": "130.9334813270407" - } - }, - { - "specification": { - "direction": "buy", - "quantity": { - "currency": "JPY", - "value": "11557.02705273459", - "counterparty": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN" - }, - "totalPrice": { - "currency": "USD", - "value": "87.570156003591", - "counterparty": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" - } - }, - "properties": { - "maker": "rK5j9n8baXfL4gzUoZsfxBvvsv97P5swaV", - "sequence": 7418322, - "makerExchangeRate": "131.9744942815983" - } - } - ] -} -``` - - - - -## Get Account Transaction History -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountTransactions.js "Source") - -特定のアカウントに影響を及ぼしたトランザクションの履歴を取得します。これには、そのアカウントから送信されたすべてのトランザクション、アカウントが受領したペイメント、アカウントを通じてRipplingされたペイメントが含まれます。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/accounts/{address}/transactions -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-transaction-history) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:---------------------|:-----------------------------| -| `address` | 文字列 - [アドレス][] | 照会するXRP Ledgerアドレス。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------------|:-----------------------|:-----------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、利用可能な最も古い日付です。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは現在の日付です。 | -| `min_sequence` | 文字列 | 照会対象の最小シーケンス番号。 | -| `max_sequence` | 文字列 | 照会対象の最大シーケンス番号。 | -| `type` | 文字列 | 指定された[トランザクションタイプ](transaction-types.html)に結果を制限します。 | -| `result` | 文字列 | 指定された[トランザクションの結果](transaction-results.html)に結果を制限します。 | -| `binary` | ブール値 | 結果をバイナリフォーマットで返します。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは20です。1,000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | - -**注記:** このメソッドはCSVフォーマットを返すことができません。生XRP LdgerトランザクションではJSONの結果だけがサポートされています。 - - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------------|:-----------------------------------------------------|:-----| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | `transactions`フィールドに含まれているオブジェクトの数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `transactions` | [トランザクションオブジェクト](#トランザクションオブジェクト)の配列。 | 要求に一致するすべてのトランザクション。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/transactions?type=Payment&result=tesSUCCESS&limit=1 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 1, - "marker": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn|20140602224750|000006979192|00001", - "transactions": [ - { - "hash": "074415C5DC6DB0029E815EA6FC2629FBC29A2C9D479F5D040AFF94ED58ECC820", - "date": "2014-05-29T17:05:20+00:00", - "ledger_index": 6902264, - "tx": { - "TransactionType": "Payment", - "Flags": 0, - "Sequence": 1, - "LastLedgerSequence": 6902266, - "Amount": "100000000", - "Fee": "12", - "SigningPubKey": "032ECFCC409F02057D8556988B89E17D48ECFC8373965036C6BA294AA2B7972971", - "TxnSignature": "30450221008D8E251DA5EA17A29CC9192717860F3B4047E74DF005127A65D9140CAE870C0902201C8E4548D2D3BA11B3E13CE8A167EBC076920E2B1C38547275CAA75FEC436EB9", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - }, - "meta": { - "TransactionIndex": 1, - "AffectedNodes": [ - { - "CreatedNode": { - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", - "NewFields": { - "Sequence": 1, - "Balance": "100000000", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - } - }, - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "PreviousTxnLgrSeq": 6486567, - "PreviousTxnID": "FF9BFF3C200B475CA7EE54F9A98EAB7E92BBDBD2DBE95AC854405D8A85C9D535", - "LedgerIndex": "43EA78783A089B137D5E87610DF3BD4129F989EDD02EFAF6C265924D3A0EF8CE", - "PreviousFields": { - "Sequence": 1, - "Balance": "1000000000" - }, - "FinalFields": { - "Flags": 0, - "Sequence": 2, - "OwnerCount": 0, - "Balance": "899999988", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" - } - } - } - ], - "TransactionResult": "tesSUCCESS" - } - } - ] -} -``` - - - - -## Get Transaction By Account And Sequence -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountTxSeq.js "Source") - -指定されたアカウントから送信された特定のトランザクションを取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/accounts/{address}/transactions/{sequence} -``` - - - -[試してみる>](data-api-v2-tool.html#get-transaction-by-account-and-sequence) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:-----------|:--------|:-----------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | -| `sequence` | 整数 | トランザクションのシーケンス番号。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `binary` | ブール値 | `true`の場合、トランザクションをバイナリフォーマットで返します。デフォルトは`false`です。 | - - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:--------------|:-------------------------------------------|:----------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `transaction` | [トランザクションオブジェクト](#トランザクションオブジェクト) | 要求されたトランザクション。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/transactions/10?binary=true -``` - -応答: - -``` -200 OK -{ - "result": "success", - "transaction": { - "hash": "4BFFBB86C12659B6C5BB88F0EB859356DE3433EBACBFD9F50F6E70B2C05CCFE0", - "date": "2014-09-15T19:59:10+00:00", - "ledger_index": 8889812, - "tx": "1200052200000000240000000A68400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100AA4AF08726FCF0F28AA4A841C45F975C3BF1545648F6907DCB33F6E3DD7E85D6022037365B80AB1972BF8A4280009A0DBCF16A1D562ED0489B155750E48CC939039981144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", - "meta": "201C00000003F8E5110061250087A5C555CBCA96F4C42E0EBC0E75C5AD84B3403FEDF824A7DAFA45ADCA6ECB66AA143C1B5613F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8E6240000000A62400000000DB5852F8814D3484B9ED2556DCE16A3B928B438BA6EE0FF0989E1E72200010000240000000B2D0000000062400000000DB5852572110000000000000000000000070000000300770A6D64756F31332E636F6D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9E1E1F1031000" - } -} -``` - - - -## Get Account Payments -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountPayments.js "Source") - -指定されたアカウントのペイメントを取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/accounts/{address}/payments -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-payments) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:-----------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:------------------|:---------------------------|:----------------------------| -| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | -| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | -| `type` | 文字列 | ペイメントタイプ - `sent`または`received`。 | -| `currency` | 文字列 - [通貨コード][] | 指定された通貨に結果を絞り込みます。 | -| `issuer` | 文字列 - [アドレス][] | 指定されたイシュアーに結果を絞り込みます。 | -| `source_tag` | 整数 | 指定された送金元タグに結果を絞り込みます。 | -| `destination_tag` | 整数 | 指定された送金先タグに結果を絞り込みます。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1,000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:-----------|:-----------------------------|:---------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | `payments`フィールドに含まれているオブジェクトの数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `payments` | [ペイメントオブジェクト][]の配列 | 要求に一致するすべてのペイメント。最も古いものから順にソートされています。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/payments?currency=USD&limit=1 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 1, - "marker": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn|20140604191650|000007013674|00000", - "payments": [ - { - "amount": "1.0", - "delivered_amount": "1.0", - "destination_balance_changes": [ - { - "counterparty": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "currency": "USD", - "value": "1" - } - ], - "source_balance_changes": [ - { - "counterparty": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "currency": "USD", - "value": "-1" - } - ], - "tx_index": 1, - "currency": "USD", - "destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "executed_time": "2014-06-02T22:47:50Z", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": 6979192, - "source": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "source_currency": "USD", - "tx_hash": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E", - "transaction_cost": "1.0E-5" - } - ] -} -``` - - - - -## Get Account Exchanges -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountExchanges.js "Source") - -指定されたアカウントの取引を経時的に取得します。 - -#### 要求フォーマット - -このメソッドには2種類のバリエーションがあります。 - - - -*REST - すべての取引* - -``` -GET /v2/accounts/{address}/exchanges/ -``` - -*REST - 特定の通貨ペア* - -``` -GET /v2/accounts/{address}/exchanges/{base}/{counter} -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-exchanges-all) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | -| `base` | 文字列 | ペアのベース通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ベース通貨がXRPの場合を除く)。 | -| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ベース通貨がXRPの場合を除く)。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | -| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------|:------------------------------|:-------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返された取引の数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `exchanges` | [取引オブジェクト][]の配列 | 要求された取引。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw/exchanges/KRW+rUkMKjQitpgAM5WTGk79xpjT38DEJY283d/XRP?start=2015-08-08T00:00:00Z&end=2015-08-31T00:00:00Z&limit=2 - -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 2, - "marker": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw|20150810014200|000015162386|00013|00003", - "exchanges": [ - { - "base_amount": 209.3501241148, - "counter_amount": 20.424402, - "rate": 0.097560973925, - "autobridged_currency": "USD", - "autobridged_issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "base_currency": "KRW", - "base_issuer": "rUkMKjQitpgAM5WTGk79xpjT38DEJY283d", - "buyer": "rnAqwsu2BEbCjacoZmsXrpViqd3miZhHbT", - "counter_currency": "XRP", - "executed_time": "2015-08-08T02:57:40", - "ledger_index": 15122851, - "offer_sequence": "1738", - "provider": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", - "seller": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", - "taker": "rnAqwsu2BEbCjacoZmsXrpViqd3miZhHbT", - "tx_hash": "506D109A609A5E0778276CCBB125A4AA7B78428059F069A2CB4F739B861C0C49", - "tx_type": "OfferCreate" - }, - { - "base_amount": 86355.6498758851, - "counter_amount": 8424.941452, - "rate": 0.097560975618, - "base_currency": "KRW", - "base_issuer": "rUkMKjQitpgAM5WTGk79xpjT38DEJY283d", - "buyer": "r9xQi5YT8jqVM3wZhbiV94ZKKvGHaVeSDj", - "client": "rt1.1-26-gbeb68ab", - "counter_currency": "XRP", - "executed_time": "2015-08-08T07:15:00", - "ledger_index": 15126536, - "offer_sequence": "1738", - "provider": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", - "seller": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", - "taker": "r9xQi5YT8jqVM3wZhbiV94ZKKvGHaVeSDj", - "tx_hash": "C897A595DED16ADF5AD52E6FD9CE5DE65C78A93CCAA62A85248DC3015A78F5C4", - "tx_type": "Payment" - } - ] -} -``` - - - - -## Get Account Balance Changes -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountBalanceChanges.js "Source") - -指定されたアカウントの残高変更を経時的に取得します。 - -#### 要求フォーマット - - - -*REST* - -``` -GET /v2/accounts/{address}/balance_changes/ -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-balance-changes) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:-----------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:---------------|:-----------------------|:-----------------------------------| -| `currency` | 文字列 | 指定された通貨に結果を制限します。 | -| `counterparty` | 文字列 | 指定された取引相手/イシュアーに結果を制限します。 | -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。 | -| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`。デフォルトは`json`です。 | - - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:------------|:----------------------------------------|:---------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | 返された残高変更の数。 | -| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | -| `exchanges` | [残高変更記述][]の配列。 | 要求された残高変更。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/balance_changes?descending=true&limit=3 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 3, - "marker": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn|20160122235211|000018425487|00010|00001", - "balance_changes": [ - { - "amount_change": "-0.012", - "final_balance": "75.169663", - "tx_index": 7, - "change_type": "transaction_cost", - "currency": "XRP", - "executed_time": "2016-01-29T22:57:20Z", - "ledger_index": 18555460, - "tx_hash": "2B44EBE00728D04658E597A85EC4F71D20503B31ABBF556764AD8F7A80BA72F6" - }, - { - "amount_change": "-25.0", - "final_balance": "75.181663", - "node_index": 1, - "tx_index": 4, - "change_type": "payment_source", - "currency": "XRP", - "executed_time": "2016-01-26T08:32:20Z", - "ledger_index": 18489336, - "tx_hash": "E5C6DD25B2DCF534056D98A2EFE3B7CFAE4EBC624854DE3FA436F733A56D8BD9" - }, - { - "amount_change": "-0.01", - "final_balance": "100.181663", - "tx_index": 4, - "change_type": "transaction_cost", - "currency": "XRP", - "executed_time": "2016-01-26T08:32:20Z", - "ledger_index": 18489336, - "tx_hash": "E5C6DD25B2DCF534056D98A2EFE3B7CFAE4EBC624854DE3FA436F733A56D8BD9" - } - ] -} -``` - - - - -## Get Account Reports -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountReports.js "Source") - -アカウントのペイメントアクティビティの日次サマリーを取得します。 - - - -*REST - 日付を省略* - -``` -GET /v2/accounts/{address}/reports/ -``` - -*REST - 日付を指定* - -``` -GET /v2/accounts/{address}/reports/{date} -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-reports-by-day) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | -| `date` | 文字列 | _(省略可)_ 1つのレポートの日付(UTC)。省略すると、`start`および`end`クエリーパラメーターが使用されます。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、現在の日付の開始時刻です。`date`が指定されている場合は無視されます。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは、現在の日付の終了時刻です。`date`が指定されている場合は無視されます。 | -| `accounts` | ブール値 | `true`の場合、すべての`sending_counterparties`および`receiving_counterparties`のアドレスのリストが結果に含まれます。それ以外の場合、送金側取引相手と受取側取引相手の数のみが返されます。デフォルトは`false`です。 | -| `payments` | ブール値 | [ペイメントサマリーオブジェクト][]を各間隔の`payments`フィールドに指定します。このオブジェクトには、当該間隔で発生したペイメントが含まれています。 | -| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:----------|:-----------------------------|:----------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | `reports`フィールドに含まれているレポートの数。 | -| `reports` | [レポートオブジェクト][]の配列 | 指定のアカウントと日付範囲のアカウントアクティビティの日次サマリー。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/reports?start=2015-08-28T00:00:00&end=2015-08-28T00:00:00&accounts=true&payments=true&descending=true -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 1, - "reports": [ - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "date": "2015-08-28T00:00:00+00:00", - "high_value_received": 89500.74142547617, - "high_value_sent": 0, - "payments": [ - { - "tx_hash": "F2323EE7494384E77ABB18F31981FEE8C31767BBD27515B55FC3BD6792C4E408", - "amount": 2.7, - "currency": "BTC", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": "received" - }, - { - "tx_hash": "FEAD462738EE430E154FF3122D3EE2DD27DDD8BEFBA080A60FE91B78E8865365", - "amount": 3, - "currency": "BTC", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": "received" - }, - { - "tx_hash": "383B1D1EABB646AB2EFBBF9E8967FE279BFE5EF86A3B6BCD5BDA287210053116", - "amount": 0.14, - "currency": "BTC", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": "received" - } - ], - "payments_received": 3, - "payments_sent": 0, - "receiving_counterparties": [], - "sending_counterparties": [ - "rhi4zZdCeFdfTokzek8D7p9bUWmtEFCZAe", - "rP1hkW1LCiVos6FpzU7itmm9Tk29yqvyk5" - ], - "total_value": 174019.58324753598, - "total_value_received": 174019.58324753598, - "total_value_sent": 0 - } - ] -} -``` - - - -## Get Account Transaction Stats -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountStats.js "Source") - -アカウントのトランザクションアクティビティの日次サマリーを取得します。_(新規: [v2.1.0][])_ - - - -*REST* - -``` -GET /v2/accounts/{address}/stats/transactions -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-transaction-stats) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:-----------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、利用可能な最も古い日付です。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは現在の日付です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------------------|:-----------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | `rows`フィールドに含まれているトランザクション統計情報オブジェクトの数。 | -| `rows` | トランザクション統計情報オブジェクトの配列。 | 指定されたアカウントのアカウントアクティビティの日次サマリー。 | - -各トランザクション状況オブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:--------------------|:-----------------------|:------------------------------| -| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトは、当該日付のアクティビティを表します。 | -| `transaction_count` | 整数 | アカウントが当該日付に送信したトランザクションの合計数。 | -| `result` | オブジェクト | 当該日付でこのアカウントが送信したトランザクションで発生した各結果コードの数を示す[トランザクション結果コード](transaction-results.html)のマップ。 | -| `type` | オブジェクト | アカウントが当該日付に送信した各トランザクションタイプの数を示す[トランザクションタイプ](transaction-formats.html)のマップ。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX/stats/transactions?start=2015-01-01&limit=2 -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 2, - "marker": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX|20150116000000", - "rows": [ - { - "date": "2015-01-14T00:00:00Z", - "transaction_count": 44, - "result": { - "tecUNFUNDED_PAYMENT": 1, - "tesSUCCESS": 43 - }, - "type": { - "Payment": 42, - "TrustSet": 2 - } - }, - { - "date": "2015-01-15T00:00:00Z", - "transaction_count": 116, - "result": { - "tesSUCCESS": 116 - }, - "type": { - "Payment": 116 - } - } - ] -} -``` - - - -## Get Account Value Stats -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountStats.js "Source") - -アカウントのトランザクションアクティビティの日次サマリーを取得します。_(新規: [v2.1.0][])_ - - - -*REST* - -``` -GET /v2/accounts/{address}/stats/value -``` - - - -[試してみる>](data-api-v2-tool.html#get-account-value-stats) - -このメソッドには以下のURLパラメーターを指定する必要があります。 - -| フィールド | 値 | 説明 | -|:----------|:-------|:-----------------------------| -| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | - - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:-----------------------|:-------------------------------------| -| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、最新間隔の開始時刻です。 | -| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは、最新間隔の終了時刻です。 | -| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | -| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | -| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | -| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | - - -#### 応答フォーマット -成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 - -| フィールド | 値 | 説明 | -|:---------|:-----------------------------|:-----------------------------------| -| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | -| `count` | 整数 | `rows`フィールドに含まれている価値統計情報オブジェクトの数。 | -| `rows` | 価値統計情報オブジェクトの配列。 | 指定されたアカウントのアカウント価値の日次サマリー。 | - -各価値統計情報オブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:-----------------------|:-----------------------|:---------------------------| -| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトは、当該日付のアクティビティを表します。 | -| `value` | [文字列 - 数値][] | このアカウントが保有しているすべての通貨の合計額(XRPに正規化)。 | -| `balance_change_count` | 数値 | 当該日付でアカウントの残高が変更された回数。 | - -#### 例 - -要求: - -``` -GET /v2/accounts/rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX/stats/value?limit=2&descending=true -``` - -応答: - -``` -200 OK -{ - "result": "success", - "count": 2, - "marker": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX|20160412000000", - "rows": [ - { - "date": "2016-04-14T00:00:00Z", - "account_value": "7.666658705139822E7", - "balance_change_count": 58 - }, - { - "date": "2016-04-13T00:00:00Z", - "account_value": "1.0022208004947332E8", - "balance_change_count": 184 - } - ] -} -``` - - - - -## Health Check - API -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") - -APIサービスの健全性をチェックします。 - - - -*REST* - -``` -GET /v2/health/api -``` - - - -[試してみる>](data-api-v2-tool.html#api-health-check) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `threshold` | 整数 | データベースがこの期間(秒単位)内に応答しない場合、APIが正常ではないと見なされます。デフォルトは5秒です。 | -| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 - -正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 - -| 値 | 意味 | -|:------|:---------------------------------------------------------------------| -| `0` | APIサービスが稼働しており、HBaseに対する応答時間は要求の`threshold`値未満である。 | -| `1` | APIサービスが稼働しており、HBaseに対する応答時間は要求の`threshold`値を超えている。 | - -要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 - -| フィールド | 値 | 説明 | -|:--------------------------|:-----------------------------|:------------------| -| `score` | 0-1 | 前述のように定義される正常値。 | -| `response_time` | 文字列 - 人間が読める形式の時間 | データベースの実際の応答時間。 | -| `response_time_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大応答時間。 | - -#### 例 - -要求: - -``` -GET /v2/health/api?verbose=true -``` - -応答: - -``` -200 OK -{ - "score": 0, - "response_time": "0.014s", - "response_time_threshold": "5s" -} -``` - - -## Health Check - Ledger Importer -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") - -Ledger Importer Serviceの健全性をチェックします。 - - - -*REST - Importerの健全性* - -``` -GET /v2/health/importer -``` - - - -[試してみる>](data-api-v2-tool.html#importer-health-check) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:-------------|:--------|:----------------------------------------------------| -| `threshold` | 整数 | 最新の検証済みレジャーのインポート後に経過時間がこの時間(秒単位)を超えると、Importerは正常ではないと見なされます。デフォルトは300秒です。 | -| `threshold2` | 整数 | あらゆる種類の最新レジャーのインポート後に経過時間がこの時間(秒単位)を超えると、Importerは正常ではないと見なされます。デフォルトは60秒です。 | -| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 - -正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 - -| 値 | 意味 | -|:------|:---------------------------------------------------------------------| -| `0` | 最後にインポートされたレジャーの経過時間が`threshold2` (デフォルト: 60)秒よりも短く、最新の検証済みレジャーの経過時間が`threshold` 秒よりも短い。 | -| `1` | 最後にインポートされたレジャーの経過時間が`threshold2` (デフォルト: 60)秒よりも短く、最新の検証済みレジャーの経過時間が`threshold` 秒よりも長い。 | -| `2` | 最後にインポートされたレジャーの経過時間が`threshold2` 秒よりも長い。 | - -要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 - -| フィールド | 値 | 説明 | -|:---------------------------|:-----------------------------|:-----------------| -| `score` | 0-2 | 前述のように定義される正常値。 | -| `response_time` | 文字列 | データベースの実際の応答時間。 | -| `ledger_gap` | 文字列 - 人間が読める形式の時間 | 最後に保存されたレジャーの閉鎖時刻と現在の時刻の差。 | -| `ledger_gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大レジャーギャップ。 | -| `valildation_gap` | 文字列 - 人間が読める形式の時間 | 最後にインポートされた検証済みレジャーの閉鎖時刻と現在の時刻の差。 | -| `validation_gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大検証ギャップ。 | - -#### 例 - -要求: - -``` -GET /v2/health/importer?verbose=true -``` - -応答: - -``` -200 OK -{ - "score": 0, - "response_time": "0.081s", - "ledger_gap": "1.891s", - "ledger_gap_threshold": "5.00m", - "validation_gap": "29.894s", - "validation_gap_threshold": "15.00m" -} -``` - - - -## Health Check - Nodes ETL -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") - -Topology Nodes Extract, Transform, Load(ETL)Serviceの健全性をチェックします。 - - - -*REST - Nodes ETLの健全性* - -``` -GET /v2/health/nodes_etl -``` - - - -[試してみる>](data-api-v2-tool.html#nodes-etl-health-check) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `threshold` | 整数 | 最新データインポート後の経過時間がこの時間(秒単位)を超えると、このサービスは正常でないと見なされます。デフォルトは120秒です。 | -| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 - -正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 - -| 値 | 意味 | -|:------|:---------------------------------------------------------------------| -| `0` | 最後のトポロジーデータインポート後の経過時間が`threshold` の秒数(デフォルト: 120)よりも短い。 | -| `1` | 最後のトポロジーデータインポート後の経過時間が`threshold`の秒数よりも長い。 | - - -要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 - -| フィールド | 値 | 説明 | -|:----------------|:-----------------------------|:----------------------------| -| `score` | 0-1 | 前述のように定義される正常値。 | -| `gap` | 文字列 - 人間が読める形式の時間 | データが最後にインポートされた時点と現在の時刻の差。 | -| `gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大ギャップ。 | -| `message` | 文字列 | ゼロ以外のスコアの理由の説明(該当する場合)。 | - -#### 例 - -要求: - -``` -GET /v2/health/nodes_etl?verbose=true -``` - -応答: - -``` -200 OK -{ - "score": 0, - "gap": "1.891s", - "gap_threshold": "2.00m", -} -``` - - - -## Health Check - Validations ETL -[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") - -Validations Extract, Transform, Load(ETL)Serviceの健全性をチェックします。 - - - -*REST - Validations ETLの健全性* - -``` -GET /v2/health/validations_etl -``` - - - -[試してみる>](data-api-v2-tool.html#validations-etl-health-check) - -オプションで、以下のクエリーパラメーターを指定できます。 - -| フィールド | 値 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `threshold` | 整数 | 最新データインポート後の経過時間がこの時間(秒単位)を超えると、このサービスは正常でないと見なされます。デフォルトは120秒です。 | -| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | - -#### 応答フォーマット - -成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 - -正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 - -| 値 | 意味 | -|:------|:---------------------------------------------------------------------| -| `0` | 最後のトポロジーデータインポート後の経過時間が`threshold` の秒数(デフォルト: 120)よりも短い。 | -| `1` | 最後のトポロジーデータインポート後の経過時間が`threshold`の秒数よりも長い。 | - -要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 - -| フィールド | 値 | 説明 | -|:----------------|:-----------------------------|:----------------------------| -| `score` | 0-1 | 前述のように定義される正常値。 | -| `gap` | 文字列 - 人間が読める形式の時間 | データが最後にインポートされた時点と現在の時刻の差。 | -| `gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大ギャップ。 | -| `message` | 文字列 | ゼロ以外のスコアの理由の説明(該当する場合)。 | - -#### 例 - -要求: - -``` -GET /v2/health/nodes_etl?verbose=true -``` - -応答: - -``` -200 OK -{ - "score": 0, - "gap": "1.891s", - "gap_threshold": "2.00m", -} -``` - - - - -# APIの規則 - -## 基本的なデータ型 - -REST APIであるData API v2では[JSON](http://json.org/)のネイティブデータ型を使用してAPIフィールドが表されます(特殊なケースがいくつかあります)。 - -### 数値と精度 -[文字列 - 数値]: #数値と精度 - -{% include '_snippets/string-number-formatting.md' %} - -XRP Ledgerでの**XRP以外の通貨**の額の精度は次のようになります。 - -* 非ゼロの最小絶対値: `1000000000000000e-96` -* 最大値: `9999999999999999e80` -* 最小値: `-9999999999999999e80` -* 10進15桁の精度 - -**XRP**の内部表現は異なり、その精度も異なります。 - -* 最小値: `0` -* 最大値: `100000000000`(`1e11`) -* `0.000001`(`1e-6`)に近い精度。 - -つまりXRPの精度は、64ビット符号なし整数と同等であり、各単位は0.000001 XRPに相当します。 - -### アドレス -[アドレス]: #アドレス - -{% include '_snippets/data_types/address.md' %} - - -### 公開鍵 -[公開鍵]: #公開鍵 - -{% include '_snippets/data_types/public_key.md' %} - - -### ハッシュ -[ハッシュ]: #ハッシュ - -{% include '_snippets/data_types/hash.md' %} - - -### タイムスタンプ -[タイムスタンプ]: #タイムスタンプ - -すべての日付と時刻はISO 8601 Timestamp Formatで記述され、UTCを使用しています。このフォーマットをまとめると次のようになります。 - -`YYYY-MM-DDThh:mm:ssZ` - -* 4桁の年 -* 2桁の月 -* 2桁の日 -* データ部分と時間部分が文字`T`で区切られています。 -* 2桁の時間(24時間制) -* 2桁の分 -* UTCからのゼロオフセットを示す文字`Z` 。 - -([v2.0.4][]の時点では、オフセット`+00:00`は使用されていません。) - -### レジャーインデックス -[レジャーインデックス]: #レジャーインデックス - -{% include '_snippets/data_types/ledger_index.md' %} - -### アカウントシーケンス -[シーケンス番号]: #アカウントシーケンス - -{% include '_snippets/data_types/account_sequence.md' %} - -### 通貨コード -[通貨コード]: #通貨コード - -{% include '_snippets/data_types/currency_code.md' %} - -## ページネーション - -多くのクエリーは、1つのHTTP応答で返すのに適量を上回る大量のデータを返します。Data APIでは、1つの応答(ページ)で返すデータの量を制御し、追加の内容を照会する「制限とマーカー」システムが採用されています。 - -多くの要求の`limit`クエリーパラメーターは、応答に含まれる結果の数を特定の数に限定します。結果の型とデフォルト値はメソッドに応じて異なります。ほとんどのメソッドでは、`limit`のデフォルト値は**200**で、最大で**1000**まで設定できます。この最大値を超える`limit`値を指定しても、APIはこの最大値を使用します。 - -現在の応答に含まれていない追加オブジェクトがクエリーに含まれている場合、JSON応答には、追加の結果を取得できることを示す最上位フィールド`marker`が含まれます。このためには、`marker`フィールドの前の値を`marker`クエリーパラメーターとして指定した複数の要求を追加で実行します。個々の追加要求では、1番目の要求と同じパラメーター(`marker`を除く)を使用します。応答にて`marker`パラメーターが省略されている場合は、照会可能なデータの最後に達したことを示しています。 - -`marker`が含まれている場合は、応答の[`Link`ヘッダー](https://tools.ietf.org/html/rfc5988#section-5)に`rel="next"`が指定されています。これは、次の結果ページの完全なURLです。応答が`json`ではなく`csv`フォーマットである場合は、これを使用して結果をページネーションできます。_(新規: [v2.0.4][])_ - -## トランザクションオブジェクト - -トランザクションには、簡潔な「バイナリ」フォーマットと拡張フォーマットの2種類があります。バイナリフォーマットでは、トランザクションを定義するフィールドが16進文字列としてエンコードされており、拡張フォーマットではトランザクションを定義するフィールドが完全なJSONオブジェクトとして入れ子になっています。 - -### 完全なJSONフォーマット - -| フィールド | 値 | 説明 | -|:---------------|:--------------------------|:--------------------------------| -| `hash` | 文字列 - [ハッシュ][] | このトランザクションに固有の識別用ハッシュ値(16進文字列)。 | -| `date` | 文字列 - [タイムスタンプ][] | トランザクションが検証済みレジャーに追加された時刻。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | このレジャーが含まれているレジャーのシーケンス番号。 | -| `tx` | オブジェクト | このトランザクションオブジェクトのフィールド。[トランザクションのフォーマット](transaction-formats.html)により定義されます。 | -| `meta` | オブジェクト | このトランザクションの結果に関するメタデータ。 | - -### バイナリフォーマット - -| フィールド | 値 | 説明 | -|:---------------|:--------------------------|:--------------------------------| -| `hash` | 文字列 - [ハッシュ][] | このトランザクションに固有の識別用ハッシュ値(16進文字列)。 | -| `date` | 文字列 - [タイムスタンプ][] | トランザクションが検証済みレジャーに追加された時刻。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | このレジャーが含まれているレジャーのシーケンス番号。 | -| `tx` | 文字列 | このトランザクションを表すバイナリデータ(16進文字列)。 | -| `meta` | 文字列 | このトランザクションのメタデータを表すバイナリデータ(16進文字列)。 | - -## レジャーオブジェクト - -「レジャー」とは、共有グローバルレジャーの1バージョンです。各レジャーオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:--------------------|:--------------------------|:---------------------------| -| `ledger_hash` | 文字列 - [ハッシュ][] | このレジャーに固有の識別用ハッシュ値(16進文字列)。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | このレジャーのシーケンス番号。新しいレジャーのレジャーインデックスは、その直前のレジャーに1を加算した値になります。 | -| `parent_hash` | 文字列 - [ハッシュ][] | 前のレジャーの識別用ハッシュ。 | -| `total_coins` | [文字列 - 数値][] | このレジャーの時点で存在していたXRPのdrops数の合計。(1 XRPは1,000,000 dropに相当します。) | -| `close_time_res` | 数値 | レジャー閉鎖時刻はこの秒数で丸められます。 | -| `accounts_hash` | 文字列 - [ハッシュ][] | このレジャーに含まれているアカウント情報のハッシュ(16進数)。 | -| `transactions_hash` | 文字列 - [ハッシュ][] | このレジャーに含まれているトランザクション情報のハッシュ(16進数)。 | -| `close_time` | 数値 | UNIX時間でのこのレジャーの閉鎖時刻。 | -| `close_time_human` | 文字列 - [タイムスタンプ][] | このレジャーが閉鎖された時刻。 | - -**注記:** レジャーの閉鎖時刻はおおよその時刻であり、通常10秒単位で丸められます。2つのレジャーの実際の閉鎖時刻の差が数秒程度の場合、それらの`close_time`の値が同一となることがあります。レジャーのシーケンス番号(`ledger_index`)により、どのレジャーが最初に閉鎖したのかが明確になります。 - -### ジェネシスレジャー - -XRP Ledgerの運用開始当初に起きた事故により、1~32569番目までのレジャーが失われました。このため、現存する一番最初のレジャーは番号32570のレジャーです。Data API v2の目的上、番号32570のレジャーは _ジェネシスレジャー_ と見なされます。 - -## アカウント作成オブジェクト - -アカウント作成オブジェクトは、XRP Ledgerでのアカウント作成アクションを表します。アカウントがレジャー32570(最も古いレジャー)にすでに含まれていたかどうかに応じて、2種類のバリエーションがあります。レジャー32570にすでに含まれていたアカウントは _ジェネシスアカウント_ と呼ばれます。 - -| フィールド | 値 | 説明 | -|:------------------|:-----------------------------|:--------------------------| -| `address` | 文字列 - [アドレス][] | このアカウントの識別用アドレス(base-58)。 | -| `inception` | 文字列 - [タイムスタンプ][] | このアドレスに資金が供給された時点のUTCタイムスタンプ。ジェネシスアカウントの場合、これはレジャー32570のタイムスタンプです。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | アカウントが作成された時点でのレジャーのシーケンス番号。ジェネシスアカウントの場合は32570です。 | -| `parent` | 文字列 - [アドレス][] | (ジェネシスアカウントの場合は省略)このアドレスに資金供給するためにXRPを提供したアドレス。 | -| `tx_hash` | 文字列 - [ハッシュ][] | (ジェネシスアカウントの場合は省略)このアカウントに資金供給したトランザクションの識別用ハッシュ。 | -| `initial_balance` | [文字列 - 数値][] | (ジェネシスアカウントの場合は省略)このアカウントに供給されたXRPの額。 | -| `genesis_balance` | [文字列 - 数値][] | (ジェネシスアカウントのみ)レジャー番号32570の時点でこのアカウントが保有していたXRPの額。 | -| `genesis_index` | 数値 - [シーケンス番号][] | (ジェネシスアカウントのみ)レジャー番号32570の時点でのこのアカウントのトランザクションシーケンス番号。 | - - -## 取引オブジェクト -[取引オブジェクト]: #取引オブジェクト - -取引オブジェクトは、実際の通貨取引を表します。この取引は、OfferCreateトランザクションまたはPaymentトランザクションを実行した結果として、XRP Ledgerで発生します。通貨が実際に取引されるには、OfferCreateトランザクションを使用してレジャーで以前に発注され、約定しなかったオファーが存在している必要があります。 - -1つのトランザクションで複数の取引を実行できます。この場合、どの取引においてもトランザクションの送信者がTakerとなりますが、プロバイダーと通貨ペアのいずれかまたはその両方は取引ごとに異なります。 - -| フィールド | 値 | 説明 | -|:-----------------------|:-----------------------------|:---------------------| -| `base_amount` | 数値 | 取引されたベース通貨の額。 | -| `counter_amount` | 数値 | 取引されたクオート通貨の額。 | -| `rate` | 数値 | ベース通貨1単位で獲得できるクオート通貨の額。 | -| `autobridged_currency` | 文字列 - [通貨コード][] | (省略される場合があります)オファーがオートブリッジングされていた場合(XRPオーダーブックを使用して2つのXRP以外の通貨がブリッジングされていた場合)、この取引を実行したオファーのもう一方の通貨です。 | -| `autobridged_issuer` | 文字列 - [アドレス][] | (省略される場合があります)オファーがオートブリッジングされていた場合(XRPオーダーブックを使用して2つのXRP以外の通貨がブリッジングされていた場合)、この取引を実行したオファーのもう一方のイシュアーです。 | -| `base_currency` | 文字列 - [通貨コード][] | ベース通貨。 | -| `base_issuer` | 文字列 - [アドレス][] | (XRPの場合は省略)ベース通貨を発行したアカウント。 | -| `buyer` | 文字列 - [アドレス][] | ベース通貨を獲得したアカウント。 | -| `client` | 文字列 | (省略される場合があります)トランザクションに、クライアントアプリケーションが送信したメモが含まれている場合、これはメモの内容です。 | -| `counter_currency` | 文字列 - [通貨コード][] | クオート通貨。 | -| `counter_issuer` | 文字列 - [アドレス][] | (XRPの場合は省略)クオート通貨を発行したアカウント。 | -| `executed_time` | 文字列 - [タイムスタンプ][] | 取引が発生した時刻。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | このトランザクションが含まれているレジャーのシーケンス番号。 | -| `offer_sequence` | 数値 - [シーケンス番号][] | このレジャーに含まれている`provider`の既存のオファーのシーケンス番号。 | -| `provider` | 文字列 - [アドレス][] | レジャーに既存のオファーが含まれているアカウント。 | -| `seller` | 文字列 - [アドレス][] | クオート通貨を獲得したアカウント。 | -| `taker` | 文字列 - [アドレス][] | この取引を実行したトランザクションを送信したアカウント。 | -| `tx_hash` | 文字列 - [ハッシュ][] | この取引を実行したトランザクションの識別用ハッシュ。(**注記:** この取引は、1つのトランザクションで実行された複数の取引の1つである場合があります。) | -| `tx_type` | 文字列 | この取引を実行したトランザクションのタイプ(`Payment`または`OfferCreate`)。 | - - -## レポートオブジェクト -[レポートオブジェクト]: #レポートオブジェクト - -レポートオブジェクトは、特定の間隔(通常は1日)における特定アカウントのアクティビティを示します。レポートには次のフィールドがあります。 - -| フィールド | 値 | 説明 | -|:---------------------------|:-------------------------------------|:---------| -| `account` | 文字列 - [アドレス][] | このレポートに関連するアカウントのアドレス。 | -| `date` | 文字列 - [タイムスタンプ][] | このレポートに関連する間隔の開始時刻。 | -| `high_value_received` | [文字列 - 数値][] | 1回のトランザクションで受領した最大額(XRPに正規化、可能な限り近い値)これにはペイメントと取引が含まれます。 | -| `high_value_sent` | [文字列 - 数値][] | 1回のトランザクションで送金した最大額(XRPに正規化、可能な限り近い値)。 | -| `payments` | [ペイメントサマリーオブジェクト][]の配列 | (省略される場合があります)この間隔でアカウントが送金または受領した各ペイメントに関する情報の配列。 | -| `payments_received` | 数値 | このアカウントに送金されたペイメントの件数。(これには、このアカウントが送金先であるペイメントのみが含まれます。アカウントを通じてRipplingされたペイメントや、アカウントのオファーで消費されたペイメントは含まれません。) | -| `payments_sent` | 数値 | このアカウントが送金したペイメントの件数。 | -| `receiving_counterparties` | 配列または数値 | アカウントリストが要求された場合は、このアカウントからのペイメントを受取ったアドレスの配列。それ以外の場合は、このアカウントからペイメントを受取ったさまざまなアカウントの数。 | -| `sending_counterparties` | 配列または数値 | アカウントリストが要求された場合は、このアカウントにペイメントを送信したアドレスの配列。それ以外の場合は、このアカウントにペイメントを送信したさまざまなアカウントの数。 | -| `total_value` | [文字列 - 数値][] | ペイメントで受領および送金された合計額(XRPに正規化、可能な限り近い値)。 | -| `total_value_received` | [文字列 - 数値][] | このアカウントへのすべてのペイメントの合計額(XRPに正規化、可能な限り近い値)。 | -| `total_value_sent` | [文字列 - 数値][] | このアカウントからのすべてのペイメントの合計額(XRPに正規化、可能な限り近い値)。 | - -## ペイメントサマリーオブジェクト -[ペイメントサマリーオブジェクト]: #ペイメントサマリーオブジェクト - -ペイメントサマリーオブジェクトには、ペイメントの送金元または受取人から見た1つのペイメントに関する限られた量の情報が含まれています。 - -| フィールド | 値 | 説明 | -|:-------------------|:---------------------------|:---------------------------| -| `tx_hash` | 文字列 - [ハッシュ][] | このペイメントを発生させたトランザクションの識別用ハッシュ。 | -| `delivered_amount` | [文字列 - 数値][] | 実際に送金先アカウントが受領した送金先`currency`の額。 | -| `currency` | 文字列 - [通貨コード][] | トランザクションの受取人に送金された通貨。 | -| `issuer` | 文字列 - [アドレス][] | 通貨を発行するゲートウェイ。XRPの場合は空のストリング。 | -| `type` | 文字列 | `sent`または`received`のいずれか。これは、パースペクティブアカウントがトランザクションの送金元または受取人のいずれであるかを示します。 | - - -## ペイメントオブジェクト -[ペイメントオブジェクト]: #ペイメントオブジェクト - -Data APIでは、ペイメントオブジェクトはアカウント間で価値が移動したイベントを表します。これはほとんどの場合、`Payment` [トランザクションタイプ](transaction-types.html)のXRP Ledgerトランザクションに対応します。ただし Data APIでは、送金元`Account` と`Destination`アカウントが同一である場合、またはトランザクションが失敗した場合には、トランザクションはペイメントとして見なされません。 - -ペイメントオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:------------------------------|:---------------------------|:----------------| -| `amount` | [文字列 - 数値][] | トランザクションに対し送金指示があった送金先`currency`の額。Partial Paymentsでは、この額は「最大」額です。 | -| `delivered_amount` | [文字列 - 数値][] | 実際に送金先アカウントが受領した送金先`currency`の額。 | -| `destination_balance_changes` | 配列 | [残高変更オブジェクト][]の配列。このオブジェクトは、`destination`アカウントの残高に対して行われたすべての変更を示します。 | -| `source_balance_changes` | 配列 | [残高変更オブジェクト][]の配列。このオブジェクトは、`source`アカウントの残高に対して行われたすべての変更を示します(XRPトランザクションコストを除く)。 | -| `transaction_cost` | [文字列 - 数値][] | トランザクションコストに対して`source`アカウントが支払ったXRPの額。([v2.0.4][]より前のバージョンでは、このパラメーターは`fee`でした。) | -| `destination_tag` | 整数 | (省略される場合があります)このペイメントに指定された[送金先タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)。 | -| `source_tag` | 整数 | (省略される場合があります)このペイメントに指定された[送金元タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)。 | -| `currency` | 文字列 - [通貨コード][] | `destination`アカウントが受領した通貨。 | -| `destination` | 文字列 - [アドレス][] | ペイメントを受領したアカウント。 | -| `executed_time` | 文字列 - [タイムスタンプ][] | このペイメントが含まれているレジャーが閉鎖した時刻。 | -| `ledger_index` | 数値 - [レジャーインデックス][] | このペイメントが含まれているレジャーのシーケンス番号。 | -| `source` | 文字列 - [アドレス][] | ペイメントを送金したアカウント。 | -| `source_currency` | 文字列 - [通貨コード][] | `source`アカウントが支払った通貨。 | -| `tx_hash` | 文字列 - [ハッシュ][] | このペイメントを発生させたトランザクションの識別用ハッシュ。 | - - -## 残高オブジェクトと残高変更オブジェクト -[残高変更オブジェクト]: #残高オブジェクトと残高変更オブジェクト -[残高オブジェクト]: #残高オブジェクトと残高変更オブジェクト - -残高オブジェクトは、特定時点での特定の相手側に対する特定通貨でのXRP Ledgerアカウントの残高です。残高変更オブジェクトは、トランザクションの実行時に発生するこのような残高に対する変更を表します。 - -1つのXRP Ledgerトランザクションで、複数の相手側に対する残高の変更と、XRPの変更が行われることがあります。 - -残高オブジェクトと残高変更オブジェクトのフォーマットは同一であり、これらのオブジェクトには次のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `counterparty` | 文字列 - [アドレス][] | `currency`の取引相手またはイシュアー。XRPの場合これは空の文字列です。 | -| `currency` | 文字列 - [通貨コード][] | この残高が変更された通貨。 | -| `value` | [文字列 - 数値][] | 関連付けられているアカウントが獲得または喪失した`currency`の額。残高変更オブジェクトでは、この値がプラスの場合(獲得した額)とマイナスの場合(喪失した額)があります。残高オブジェクトでは、この値がプラスの場合(このアカウントに対して相手側が支払う義務のある額)とマイナスの場合(相手側に対して支払う義務のある額)があります。 | - - -## 残高変更記述 -[残高変更記述]: #残高変更記述 - -残高変更記述は、トランザクションの実行時に発生する1つの残高変更を記述、分析するオブジェクトです。[残高変更オブジェクト][]と同じイベントを表しますが、残高変更オブジェクトよりも詳細です。 - -残高変更記述のフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:----------------|:---------------------------|:------------------------------| -| `amount_change` | [文字列 - 数値][] | この変更前後での保有通貨額の差。_([v2.0.6][]より前のバージョンでは、このフィールドは`change`でした。)_ | -| `final_balance` | [文字列 - 数値][] | 変更後の残高。 | -| `node_index` | 数値(または`null`) | この残高変更は、残高変更を実行したトランザクションのメタデータセクション内にて、ModifiedNodes配列のこのインデックスの位置にあるエントリーで表されます。**注記:** トランザクションコストがXRP残高に対する他の変更と結合されている場合、トランザクションコストの`node_index`は**null**になります。 | -| `tx_index` | 数値 | この残高変更を実行したトランザクションは、トランザクションが記録されているレジャーのトランザクション配列のこのインデックスにあります。 | -| `change_type` | 文字列 | この残高変更が発生した原因を示すさまざまな[](#変更タイプ)のうちの1つ。 | -| `currency` | 文字列 - [通貨コード][] | この通貨に影響する変更。 | -| `executed_time` | 文字列 - [タイムスタンプ][] | 変更が発生した時刻。(変更を実行したトランザクションが記録されているレジャーの閉鎖時間に基づいています。) | -| `counterparty` | 文字列 - [アドレス][] | (XRPの場合は省略)`currency`はこのアカウントとの間のトラストラインに保有されています。_([v2.0.6][]より前のバージョンでは、このフィールドは`issuer`でした。)_ | -| `ledger_index` | 数値 - [レジャーインデックス][] | この残高変更を実行したトランザクションを含むレジャーのシーケンス番号。 | -| `tx_hash` | 文字列 - [ハッシュ][] | この残高変更を実行したトランザクションの識別用ハッシュ。 | - -### 変更タイプ - -残高変更記述の`change_type`フィールドで有効な値を以下に示します。 - -| 値 | 意味 | -|:----------------------|:-----------------------------------------------------| -| `transaction_cost` | これは、トランザクションの中継時にXRPが消却されたことによる残高変更を表します。_([v2.0.4][]より前では、これは`network fee`でした。)_ | -| `payment_destination` | これは、ペイメントとして通貨を受領したことによる残高変更を表します。 | -| `payment_source` | これは、ペイメントとして通貨を支払ったことによる残高変更を表します。 | -| `exchange` | これは、他の通貨への取引や、別のイシュア―との同一通貨での取引による残高変更を表します。これは、オファーにより発生するだけでなく、ペイメント実行中にも発生する可能性があります。 | - -## 取引量オブジェクト -[取引量オブジェクト]: #取引量オブジェクト - -取引量オブジェクトは、特定の期間にペイメントや取引により移動した資金の合計取引量を表します。 - -| フィールド | 値 | 説明 | -|:----------------|:-----------------------|:----------------------------------| -| `components` | オブジェクトの配列 | この合計の計算に使用されたデータ。ペイメント取引量の場合、各オブジェクトは特定の通貨およびイシュアーでのペイメントを表します。取引量の場合、各オブジェクトは2通貨間のマーケットを表します。 | -| `count` | 数値 | この期間における取引の合計件数。 | -| `end_time` | 文字列 - [タイムスタンプ][] | この間隔の終了時刻。 | -| `exchange` | オブジェクト | `currency`および(XRPの場合を除く) `issuer`フィールドと同様、使用される表示通貨を示します。すべての額は、最初にXRPに交換され、その後要求で指定されている表示通貨に変換されることで正規化されます。 | -| `exchange_rate` | 数値 | XRPから表示通貨への為替レート。 | -| `start_time` | 文字列 - [タイムスタンプ][] | この期間の開始時刻。 | -| `total` | 数値 | 当該期間に記録されたすべての取引の合計取引量。 | - - -## サーバーオブジェクト -[サーバーオブジェクト]: #サーバーオブジェクト -[サーバーオブジェクト]: #サーバーオブジェクト - -「サーバーオブジェクト」は、XRP Ledgerピアツーピアネットワークの1つの`rippled`サーバーを表します。サーバーオブジェクトは[Get Topology](#get-topology)、[Get Toplogy Nodes](#get-topology-nodes)、および[Get Topology Node](#get-topology-node)メソッドで返されます。Data APIは、[ピアクローラー](peer-crawler.html)を使用して、報告されるネットワークトポロジーを約30秒間隔で収集します。 - -サーバーオブジェクトのフィールドを次に示します。一部のフィールドは、要求で応答がverboseであることが指定されている場合にのみ表示されます。 - -| フィールド | 値 | 説明 | -|:-------------------|:--------------------------------|:----------------------| -| `node_public_key` | 文字列 - Base-58 [公開鍵][] | このサーバーがピアツーピア通信に署名するときに使用する公開鍵(検証は含まれません)。 | -| `version` | 文字列 | 最後に照会された時点でのこのサーバーの`rippled`バージョン。 | -| `uptime` | 整数 | このサーバーがネットワークに接続していた秒数。 | -| `ip` | 文字列 | (省略される場合があります)ノードのIPアドレス。 | -| `port` | 整数 | (省略される場合があります)このサーバーが[`rippled`ピアプロトコル](peer-protocol.html)を使用するポート。 | -| `inbound_count` | 整数 | (省略される場合があります)このサーバーへの着信ピアツーピア接続の数。 | -| `inbound_added` | 文字列 | (省略される場合があります)最終測定以降に追加された新規着信ピアツーピア接続の数。 | -| `inbound_dropped` | 文字列 | (省略される場合があります)最終測定以降に削除された着信ピアツーピア接続の数。 | -| `outbound_count` | 整数 | (省略される場合があります)このサーバーへの発信ピアツーピア接続の数。 | -| `outbound_added` | 文字列 | (省略される場合があります)最終測定以降に削除された新規発信ピアツーピア接続の数。 | -| `outbound_dropped` | 文字列 | (省略される場合があります)最終測定以降に削除された発信ピアツーピア接続の数。 | -| `city` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の市町村。 | -| `region` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の地域。 | -| `country` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の国。 | -| `region_code` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の地域のISOコード。 | -| `country_code` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の国のISOコード。 | -| `postal_code` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の郵便番号。 | -| `timezone` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地のISOタイムゾーン。 | -| `lat` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の緯度。 | -| `long` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の経度。 | -| `isp` | 文字列 | (verboseが設定されている場合のみ)このサーバーのパブリックIPアドレスをホストするインターネットサービスプロバイダー。 | -| `org` | 文字列 | (verboseが設定されている場合のみ)このサーバーのパブリックIPアドレスを所有する組織。 | - - -## リンクオブジェクト -[リンクオブジェクト]: #リンクオブジェクト -[リンクオブジェクト]: #リンクオブジェクト - -リンクオブジェクトは、2つの`rippled`サーバー間のピアツーピアネットワーク接続を表します。次のフィールドが含まれています。 - -| フィールド | 値 | 説明 | -|:---------|:--------------------------------|:--------------------------------| -| `source` | 文字列 - Base-58 [公開鍵][] | 発信接続を行う`rippled`のノード公開鍵。 | -| `target` | 文字列 - Base-58 [公開鍵][] | 着信接続を受け取る`rippled`のノード公開鍵。 | - - -## 検証オブジェクト -[検証オブジェクト]: #検証オブジェクト -[検証オブジェクト]: #検証オブジェクト - -検証オブジェクトは、レジャーバージョンを検証済みにするためにバリデータが投じる1票を表します。(レジャーは、同一のレジャーバージョンに対して投票した信頼できるバリデータの数が定数に達した場合に、コンセンサスプロセスによってのみ検証済みになります。) - -**注記:** Data APIは検証投票データを6か月間だけ保持します。 - -検証オブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:------------------------|:--------------------------------|:-----------------| -| `count` | 整数 | (省略される場合があります)この検証を参照した旨を報告した`rippled`サーバーの数。古いデータでは使用できません。 | -| `ledger_hash` | 文字列 - [ハッシュ][] | この検証投票が適用されるレジャーバージョンのハッシュ。 | -| `reporter_public_key` | 文字列 - Base-58 [公開鍵][] | 最初にこの検証を報告した`rippled`サーバーの公開鍵(base-58)。 | -| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | この検証の署名に使用されたバリデータの公開鍵(base-58)。 | -| `signature` | 文字列 | 検証内容についてのバリデータの署名(16進数)。 | -| `first_datetime` | 文字列 - [タイムスタンプ][] | この検証の最初の報告の日時。 | -| `last_datetime` | 文字列 - [タイムスタンプ][] | この検証の最終報告の日時。 | - - - -# Historical Databaseの実行 - -各自のHistorical DatabaseソフトウェアのインスタンスからData API v2を提供し、各自の`rippled`インスタンスからそのData APIにトランザクションを取り込むこともできます。これは、Historical Databaseの運用を無期限にRippleに依存したくない場合や、各自のイントラネットから履歴トランザクションにアクセスしたい場合に有用です。 - -## インストール - -### 依存関係 - -Historical Databaseを使用するには、最初に以下のソフトウェアをインストールする必要があります。 - -* [HBase](http://hbase.apache.org/)(v2には必要です) -* [Node.js](http://nodejs.org/) -* [npm](https://www.npmjs.org/) -* [git](http://git-scm.com/)(省略可)インストールおよび更新用。 - -Historical Databaseバージョン2には[PostgreSQL](http://www.postgresql.org/)の代わりにHBaseが必要です。Postgresのサポートは廃止されました。 - -### インストールプロセス - -Data API v2をインストールするには、以下の手順に従います。 - -1. HBaseをインストールします。本番環境で使用する場合は、分散モードで構成します。 -2. Historical Database Git Repositoryを複製します。 - - git clone https://github.com/ripple/rippled-historical-database.git - - (Zipされているリリースをダウンロードして解凍することもできます。) - -3. npmを使用して追加のモジュールをインストールします。 - - cd rippled-historical-database - npm install - - インストールスクリプトにより必要な構成ファイルが作成されます。`config/api.config.json` and `config/import.config.json` - -4. オプションで、構成ファイルを変更します。`api.config.json`から`postgres`セクションを削除します。 - -レポート、統計情報、および集約された取引データをAPIで利用可能にするには、さらに処理が必要です。この処理ではApache Stormといくつかのカスタムスクリプトが使用されます。詳細は、[Stormの設定](https://github.com/ripple/rippled-historical-database/blob/master/storm/README.md)を参照してください。 - -これでData APIがインストールされました。実行できる各種コンポーネントについては、[サービス](#サービス)を参照してください。 - -### テスト - -依存関係: - -* [Docker Compose](https://docs.docker.com/compose/install/) - -``` -$ docker-compose build -$ docker-compose up -d hbase -$ docker-compose run --rm webapp npm test -``` - -### サービス - -`rippled` Historical Databaseは、個別に実行できるさまざまなプロセスで構成されています。 - -* [Live Ledger Importer](#live-ledger-importer) - 新たに検証されたレジャーについて`rippled`を監視します。 - コマンド: `node import/live` -* [Backfiller](#backfiller) - データベースに`rippled`インスタンスから古いレジャーを取り込みます。 - コマンド: `node import/postgres/backfill` -* API Server - データへの[REST API アクセス](#apiメソッドリファレンス)を提供します。 - コマンド: `npm start`(ソースファイルが変更されるとサーバーが自動的に再起動します) - または`node api/server.js`(1回だけ起動します) - -## データのインポート - -データを`rippled` Historical Databaseから取得するには、最初にこのデータベースにデータを取り込む必要があります。通常は、次の2種類の方法で行われます。 - -* 履歴レジャーを保持する`rippled`サーバーに接続し、履歴レジャーを取得する。(後で`rippled`サーバーを再設定し、Historical Databaseに保持されている履歴よりも古い履歴を保持しないようにできます。) - * 検証される新しいレジャーのみを取得するか、または古いレジャーも取得することができます。 -* あるいは、履歴レジャーデータをすでに保持するデータベースからダンプを読み込むこともできます。(現時点では、一般に利用可能な履歴データのデータベースダンプはありません。)データベースの標準プロセスを使用します。 - -いずれの場合でも、データの整合性を元のソースの整合性と同じ程度にとどめるよう注意してください。公開サーバーからデータを取得する場合は、そのサーバーのオペレーターが信頼できることを前提としています。データベースダンプから読み込む場合は、ダンプのプロバイダーがデータを破損または改ざんしていないことを前提としています。 - -### Live Ledger Importer - -Live Ledger Importerは、WebSocket APIを使用して`rippled`サーバーに接続し、レジャー閉鎖イベントを待機するサービスです。新しいレジャーが閉鎖されるたびに、Importerは最新の検証済みレジャーを要求します。レジャーがスキップされることを防ぐため、このプロセスにはフォールトトレランスが組み込まれていますが、それでもImporterがレジャーをスキップすることがあります。 - -Live Ledger Importerには、すでにインポートされているデータを検証し、レジャー履歴のギャップを確認するために定期的に実行される2番目のプロセスがあります。 - -Live Ledger Importerは、1つ以上のデータストアーを同時にインポートできます。別のストレージ方式を使用するように履歴データベースを設定している場合は、`--type`パラメーターを使用して、使用するデータベースタイプを1つ以上指定できます。 - -使用例: - -``` -// start loading records into HBase: -$ node import/live -``` - -### Backfiller - -Backfillerは時間をさかのぼって`rippled`インスタンスから古いレジャーを取得します。オプションで、開始インデックスと終了インデックス指定すると、シーケンス番号に基づいて一定範囲のレジャーを取得できます。 - -`--startIndex`パラメーターは、取得する最新レジャーを定義します。Backfillerは最初にこのレジャーを取得し、その後さらに古いレジャーの取得を続行します。このパラメーターを省略すると、Backfillerは最新の検証済みレジャーから開始します。 - -`--stopIndex`パラメーターは、取得する最も古いレジャーを定義します。Backfillerはこのレジャーを取得した後に停止します。省略すると、Backfillerは可能な限り古いレジャーの取得を続行します。埋め戻しは最新レジャーから古いレジャーの順に進むため、停止インデックスは開始インデックスよりも小さい値である必要があります。 - -**注意:** Backfillerは、比較的短いトランザクション履歴を埋めるのに適しています。Backfillerを使ってXRP Ledgerトランザクションの全履歴をインポートする操作には、数週間かかる場合があります。全履歴が必要な場合は、古いトランザクションを含むデータベースダンプを取得して直接インポートすることが推奨されます。公開サーバーの場合、Ripple社はオフライン`rippled`の内部SQLiteデータベースを使用して履歴データベースに古いトランザクションを取り込み、インポート完了後にBackfillerを使用して最新状態にしています。 - -使用例: - -``` -// get ledgers #1,000,000 to #2,000,000 (inclusive) and store in HBase -node import/hbase/backfill --startIndex 2000000 --stopIndex 1000000 -``` - - - -{% include '_snippets/rippled-api-links.md' %} +# Ripple Data API v2 + +Ripple Data API v2を使用すると、XRP Ledgerの変更に関する情報(トランザクション履歴や処理済みの分析データなど)にアクセスできます。このような情報は専用データベースに保管されるので、`rippled`サーバーで保持する必要のある履歴レジャーバージョンの数が少なくなります。Data API v2は[XRP Charts](https://xrpcharts.ripple.com/)や[ripple.com](https://www.ripple.com)などのアプリケーションのデータソースとしても機能します。 + +Rippleは可能な限り完全なトランザクションレコードが含まれているData APIのライブインスタンスを以下のアドレスで公開しています。 + +[**https://data.ripple.com**](https://data.rifpple.com) + + +## 詳細情報 +Ripple Data API v2はHistorical Database v1および[Charts API](https://github.com/ripple/ripple-data-api/)を置き換えます。 + +* [APIメソッド](#apiメソッドリファレンス) +* [APIの規則](#apiの規則) +* [設定(ローカルインスタンス)](#historical-databaseの実行) +* [ソースコード(Github)](https://github.com/ripple/rippled-historical-database) +* [リリースノート](https://github.com/ripple/rippled-historical-database/releases) + +[v2.0.4]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.4 +[v2.0.5]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.5 +[v2.0.6]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.6 +[v2.0.7]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.7 +[v2.0.8]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.0.8 +[v2.1.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.1.0 +[v2.2.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.2.0 +[v2.3.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.0 +[v2.3.2]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.2 +[v2.3.5]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.5 +[v2.3.7]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.3.7 +[v2.4.0]: https://github.com/ripple/rippled-historical-database/releases/tag/v2.4.0 + + +# APIメソッドリファレンス + +Data API v2は、以下のメソッドを備えたREST APIです。 + +レジャーコンテンツメソッド: + +* [Get Ledger - `GET /v2/ledgers/{ledger_identifier}`](#get-ledger) +* [Get Transaction - `GET /v2/transactions/{hash}`](#get-transaction) +* [Get Transactions - `GET /v2/transactions/`](#get-transactions) +* [Get Payments - `GET /v2/payments/{currency}`](#get-payments) +* [Get Exchanges - `GET /v2/exchanges/{base}/{counter}`](#get-exchanges) +* [Get Exchange Rates - `GET /v2/exchange_rates/{base}/{counter}`](#get-exchange-rates) +* [Normalize - `GET /v2/normalize`](#normalize) +* [Get Daily Reports - `GET /v2/reports/`](#get-daily-reports) +* [Get Stats - `GET /v2/stats/`](#get-stats) +* [Get Active Accounts - `GET /v2/active_accounts/{base}/{counter}`](#get-active-accounts) +* [Get Exchange Volume - `GET /v2/network/exchange_volume`](#get-exchange-volume) +* [Get Payment Volume - `GET /v2/network/payment_volume`](#get-payment-volume) +* [Get External Markets - `GET /v2/network/external_markets`](#get-external-markets) +* [Get XRP Distribution - `GET /v2/network/xrp_distribution`](#get-xrp-distribution) +* [Get Top Currencies - `GET /v2/network/top_currencies`](#get-top-currencies) +* [Get Top Markets - `GET /v2/network/top_markets`](#get-top-markets) + +アカウントメソッド: + +* [Get Account - `GET /v2/accounts/{address}`](#get-account) +* [Get Accounts - `GET /v2/accounts`](#get-accounts) +* [Get Account Balances - `GET /v2/accounts/{address}/balances`](#get-account-balances) +* [Get Account Orders - `GET /v2/accounts/{address}/orders`](#get-account-orders) +* [Get Account Transaction History - `GET /v2/accounts/{address}/transactions`](#get-account-transaction-history) +* [Get Transaction By Account and Sequence - `GET /v2/accounts/{address}/transactions/{sequence}`](#get-transaction-by-account-and-sequence) +* [Get Account Payments - `GET /v2/accounts/{address}/payments`](#get-account-payments) +* [Get Account Exchanges - `GET /v2/accounts/{address}/exchanges`](#get-account-exchanges) +* [Get Account Balance Changes - `GET /v2/accounts/{address}/balance_changes`](#get-account-balance-changes) +* [Get Account Reports - `GET /v2/accounts/{address}/reports`](#get-account-reports) +* [Get Account Transaction Stats - `GET /v2/accounts/{address}/stats/transactions`](#get-account-transaction-stats) +* [Get Account Value Stats - `GET /v2/accounts/{address}/stats/value`](#get-account-value-stats) + +外部情報メソッド: + +* [Get All Gateways - `GET /v2/gateways`](#get-all-gateways) +* [Get Gateway - `GET /v2/gateways/{gateway}`](#get-gateway) +* [Get Currency Image - `GET /v2/currencies/{currencyimage}`](#get-currency-image) + +検証ネットワークメソッド: + +* [Get Transaction Costs - `GET /v2/network/fees`](#get-transaction-costs) +* [Get Fee Stats - `GET /v2/network/fee_stats`](#get-fee-stats) +* [Get Ledger Validations - `GET /v2/ledger/{hash}/validations`](#get-ledger-validations) +* [Get Ledger Validation - `GET /v2/ledger/{hash}/validations/{pubkey}`](#get-ledger-validation) +* [Get Topology - `GET /v2/network/topology`](#get-topology) +* [Get Topology Nodes - `GET /v2/network/topology/nodes`](#get-topology-nodes) +* [Get Topology Node - `GET /v2/network/topology/nodes/{pubkey}`](#get-topology-node) +* [Get Topology Links - `GET /v2/network/topology/links`](#get-topology-links) +* [Get Validator - `GET /v2/network/validators/{pubkey}`](#get-validator) +* [Get Validators - `GET /v2/network/validators`](#get-validators) +* [Get Validator Manifests - `GET /v2/network/validators/{pubkey}/manifests`](#get-validator-manifests) +* [Get Single Validator Reports - `GET /v2/network/validators/{pubkey}/reports`](#get-single-validator-reports) +* [Get Daily Validator Reports - `GET /v2/network/validator_reports`](#get-daily-validator-reports) +* [Get `rippled` Versions - `GET /v2/network/rippled_versions`](#get-rippled-versions) + +健全性チェック: + +* [API Health Check - `GET /v2/health/api`](#health-check-api) +* [Importer Health Check - `GET /v2/health/importer`](#health-check-ledger-importer) +* [Nodes ETL Health Check - `GET /v2/health/nodes_etl`](#health-check-nodes-etl) +* [Validations ETL Health Check - `GET /v2/health/validations_etl`](#health-check-validations-etl) + + +## Get Ledger +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getLedger.js "Source") + +ハッシュ、インデックス、または日付を指定して特定のレジャーを取得するか、または最新の検証済みレジャーを取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/ledgers/{identifier} +``` + + + +[試してみる>](data-api-v2-tool.html#get-ledger) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:--------------------|:----------------------------------------------------|:--| +| `ledger_identifier` | レジャー[ハッシュ][]、[レジャーインデックス][]、または[タイムスタンプ][] | _(省略可)_ 取得するレジャーのID。16進数のハッシュ全体、整数のシーケンス番号、または日時のいずれかです。日時を指定すると、その指定した日時の時点で最新であった閉鎖済みレジャーが取得されます。省略すると、最新の検証済みレジャーが取得されます。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------------|:--------|:--------------------------------------------------| +| `transactions` | ブール値 | `true`の場合は、このレジャーに含まれるすべてのトランザクションの識別用ハッシュが含まれます。 | +| `binary` | ブール値 | `true`の場合は、このレジャーのすべてのトランザクションが16進フォーマットのバイナリデータとして含まれます。(このフィールドが指定されている場合、`transactions`をオーバーライドします。) | +| `expand` | ブール値 | `true`の場合、このレジャーのすべてのトランザクションが入れ子のJSONオブジェクトとして含まれます。(このフィールドが指定されている場合は、`binary`と`transactions`をオーバーライドします。) | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:---------------------------------|:-------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `ledger` | [レジャーオブジェクト](#レジャーオブジェクト) | 要求されたレジャー。 | + +#### 例 + +要求: + +``` +GET /v2/ledgers/3170DA37CE2B7F045F889594CBC323D88686D2E90E8FFD2BBCD9BAD12E416DB5 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "ledger": { + "ledger_hash": "3170da37ce2b7f045f889594cbc323d88686d2e90e8ffd2bbcd9bad12e416db5", + "ledger_index": 8317037, + "parent_hash": "aff6e04f07f441abc6b4133f8c50c65935b817a85b895f06dba098b3fbc1be90", + "total_coins": 99999980165594400, + "close_time_res": 10, + "accounts_hash": "8ad73e49a34d8b9c31bc13b8a97c56981e45ee70225ef4892e8b198fec5a1f7d", + "transactions_hash": "33e0b9c5fd7766343e67854aed4222f5ed9c9507e0ec0d7ae7d54d0f17adb98e", + "close_time": 1408047740, + "close_time_human": "2014-08-14T20:22:20+00:00" + } +} +``` + + + +## Get Ledger Validations +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getLedger.js "Source") + +特定のレジャーハッシュについて記録されたすべての検証を取得します。このデータセットには、検証済みレジャーチェーン外部のレジャーバージョンが含まれます。_(新規: [v2.2.0][])_ + +**注記:** Data APIは、すべてのバリデーションを網羅する包括的な記録を持っていません。応答には、Data APIに記録されているデータのみが含まれています。一部のレジャーバージョン、特に古いレジャーは、コンセンサスによって検証済みであっても検証が取得できないことがあります。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/ledgers/{ledger_hash}/validations +``` + + + +[試してみる>](data-api-v2-tool.html#get-ledger-validations) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:--------------|:---------|:-----------------------------------------| +| `ledger_hash` | [ハッシュ][] | 検証を取得するレジャーのハッシュ。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:--------------|:--------------------------------|:---------------------------| +| `result` | 文字列 - `success` | 本文が成功した場合の応答を表しています。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | 要求したレジャーバージョンの識別用ハッシュ。 | +| `count` | 整数 | 返された検証の数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `validations` | [検証オブジェクト][]の配列 | このレジャーバージョンのすべての既知の検証投票。 | + + +#### 例 + +要求: + +``` +GET /v2/ledgers/A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7/validations?limit=2 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", + "count": 2, + "marker": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7|n9KDJnMxfjH5Ez8DeWzWoE9ath3PnsmkUy3GAHiVjE7tn7Q7KhQ2|20160608001732", + "validations": [ + { + "count": 27, + "first_datetime": "2016-06-08T00:17:32.352Z", + "last_datetime": "2016-06-08T00:17:32.463Z", + "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", + "reporter_public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", + "signature": "304402204C751D0033070EBC008786F0ECCA8E29195FD7DD8D22498EB6E4E732905FC7090220091F458976904E7AE4633A1EC405175E6A126798E4896DD452853B887B1E6359", + "validation_public_key": "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7" + }, + { + "count": 3, + "first_datetime": "2016-06-08T00:17:32.653Z", + "last_datetime": "2016-06-08T00:17:32.673Z", + "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", + "reporter_public_key": "n9JCK5AML7Ejv3TcJmnvJk5qeYhf7Q9YwScjz5PhtUbtWCKH3NAm", + "signature": "3045022100A48E5AF6EA9D0ACA6FDE18536081A7D2182535579EA580C3D0B0F18C2556C5D30220521615A3D677376069F8F3E608B59F14482DDE4CD2A304DE578B6CCE2F5E8D54", + "validation_public_key": "n9K6YbD1y9dWSAG2tbdFwVCtcuvUeNkBwoy9Z6BmeMra9ZxsMTuo" + } + ] +} +``` + + + +## Get Ledger Validation +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getLedger.js "Source") + +特定のバリデータの特定のレジャーハッシュについて記録された検証投票を取得します。このデータセットには、検証済みレジャーチェーン外部のレジャーバージョンが含まれます。_(新規: [v2.2.0][])_ + +**注記:** Data APIは、すべてのバリデーションを網羅する包括的な記録を持っていません。応答には、Data APIに記録されているデータのみが含まれています。一部のレジャーバージョン、特に古いレジャーは、コンセンサスによって検証済みであっても検証が取得できないことがあります。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/ledgers/{ledger_hash}/validations/{pubkey} +``` + + + +[試してみる>](data-api-v2-tool.html#get-ledger-validation) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:--------------|:--------------------------------|:---------------------------| +| `ledger_hash` | [ハッシュ][] | 検証を取得するレジャーのハッシュ。 | +| `pubkey` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | + +この要求はクエリーパラメーターをとりません。 + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と、以下の追加フィールドを持つ **[検証オブジェクト][]** を含むJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-------|:---------------------------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | + +#### 例 + +要求: + +``` +GET /v2/ledgers/A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7/validations/n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7 +``` + +応答: + +``` +200 OK +{ + "count": 27, + "first_datetime": "2016-06-08T00:17:32.352Z", + "last_datetime": "2016-06-08T00:17:32.463Z", + "ledger_hash": "A10E9E338BA365D2B768814EC8B0A9A2D8322C0040735E20624AF711C5A593E7", + "reporter_public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", + "signature": "304402204C751D0033070EBC008786F0ECCA8E29195FD7DD8D22498EB6E4E732905FC7090220091F458976904E7AE4633A1EC405175E6A126798E4896DD452853B887B1E6359", + "validation_public_key": "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", + "result": "success" +} +``` + + + +## Get Transaction +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getTransactions.js "Source") + +識別用ハッシュに基づいて特定のトランザクションを取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/transactions/{hash} +``` + + + +[試してみる>](data-api-v2-tool.html#get-transaction) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:-------|:------------------|:-----------------------------------------| +| `hash` | 文字列 - [ハッシュ][] | トランザクションの識別用ハッシュ。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `binary` | ブール値 | `true`の場合、バイナリフォーマットのトランザクションデータを16進文字列として返します。それ以外の場合、トランザクションデータを入れ子のJSONとして返します。デフォルトは`false`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:--------------|:-----------------------|:------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `transaction` | [トランザクションオブジェクト][] | 要求されたトランザクション。 | + +[トランザクションオブジェクト]: #トランザクションオブジェクト + +#### 例 + +要求: + +``` +GET /v2/transactions/03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A +``` + +応答(サイズが大きいため一部省略): + +```js +200 OK +{ + "result": "success", + "transaction": { + "ledger_index": 8317037, + "date": "2014-08-14T20:22:20+00:00", + "hash": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", + "tx": { + "TransactionType": "OfferCreate", + "Flags": 131072, + "Sequence": 159244, + "TakerPays": { + "value": "0.001567373", + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "TakerGets": "146348921", + "Fee": "64", + "SigningPubKey": "02279DDA900BC53575FC5DFA217113A5B21C1ACB2BB2AEFDD60EA478A074E9E264", + "TxnSignature": "3045022100D81FFECC36A3DEF0922EB5D16F1AA5AA0804C30A18ED3B512093A75E87C81AD602206B221E22A4E3158785C109E7508624AD3DE5C0E06108D34FA709FCC9575C9441", + "Account": "r2d2iZiCcJmNL6vhUGFjs8U8BuUq6BnmT" + }, + "meta": { + "TransactionIndex": 0, + "AffectedNodes": [ + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "PreviousTxnLgrSeq": 8317036, + "PreviousTxnID": "A56793D47925BED682BFF754806121E3C0281E63C24B62ADF7078EF86CC2AA53", + "LedgerIndex": "2880A9B4FB90A306B576C2D532BFE390AB3904642647DCF739492AA244EF46D1", + "PreviousFields": { + "Balance": "275716601760" + }, + "FinalFields": { + "Flags": 0, + "Sequence": 326323, + "OwnerCount": 27, + "Balance": "275862935331", + "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", + "RegularKey": "rfYqosNivHQFJ6KpArouxoci3QE3huKNYe" + } + } + }, + + ... + ], + "TransactionResult": "tesSUCCESS" + } + } +} +``` + + + + + +## Get Transactions +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getTransactions.js "Source") + +時刻に基づいて複数のトランザクションを取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/transactions/ +``` + + + +[試してみる>](data-api-v2-tool.html#get-transactions) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | +| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `type` | 文字列 | 特定の[トランザクションタイプ](transaction-types.html)にトランザクションを絞り込みます。 | +| `result` | 文字列 | 特定の[トランザクション結果](transaction-results.html)でトランザクションを絞り込みます。 | +| `binary` | ブール値 | `true`の場合、トランザクションをバイナリフォーマットで返します。デフォルトは`false`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは20です。100を超える値は指定できません。 | +| `marker` | 文字列 | 前の応答の[ページネーション](#ページネーション)マーカー。 | + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------------|:---------------------------------|:-------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返されたトランザクションの数。 | +| `marker` | 文字列 | (省略される場合があります)ページネーションマーカー。 | +| `transactions` | [トランザクションオブジェクト][]の配列。 | 要求されたトランザクション。 | + +[トランザクションオブジェクト]: #トランザクションオブジェクト + +#### 例 + +要求: + +``` +GET /v2/transactions/?result=tecPATH_DRY&limit=2&type=Payment +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 2, + "marker": "20130106022000|000000053869|00000", + "transactions": [ + { + "hash": "B8E4335A94438EC8209135A4E861A4C88F988C651B819DDAF2E8C55F9B41E589", + "date": "2013-01-02T20:13:40+00:00", + "ledger_index": 40752, + "ledger_hash": "55A900C2BA9483DC83F8FC065DE7789570662365BDE98EB75C5F4CE4F9B43214", + "tx": { + "TransactionType": "Payment", + "Flags": 0, + "Sequence": 61, + "Amount": { + "value": "96", + "currency": "USD", + "issuer": "rJ6VE6L87yaVmdyxa9jZFXSAdEFSoTGPbE" + }, + "Fee": "10", + "SigningPubKey": "02082622E4DA1DC6EA6B38A48956D816881E000ACF0C5F5B52863B9F698799D474", + "TxnSignature": "304402200A0746192EBC7BC3C1B9D657F42B6345A49D75FE23EF340CB6F0427254C139D00220446BF9169C94AEDC87F56D01DB011866E2A67E2AADDCC45C4D11422550D044CB", + "Account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", + "Destination": "rJ6VE6L87yaVmdyxa9jZFXSAdEFSoTGPbE" + }, + "meta": { + "TransactionIndex": 0, + "AffectedNodes": [ + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "PreviousTxnLgrSeq": 40212, + "PreviousTxnID": "F491DC8B5E51045D4420297293199039D5AE1EA0C6D62CAD9A973E3C89E40CD6", + "LedgerIndex": "9B242A0D59328CE964FFFBFF7D3BBF8B024F9CB1A212923727B42F24ADC93930", + "PreviousFields": { + "Sequence": 61, + "Balance": "8178999999999400" + }, + "FinalFields": { + "Flags": 0, + "Sequence": 62, + "OwnerCount": 6, + "Balance": "8178999999999390", + "Account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY" + } + } + } + ], + "TransactionResult": "tecPATH_DRY" + } + }, + { + "hash": "1E1C14BF5E61682F3DC9D035D9908816497B8E8843E05C0EE98E06DFDDDAE920", + "date": "2013-01-05T08:43:10+00:00", + "ledger_index": 51819, + "ledger_hash": "88ED10E4E31FC7580285CF173B264690B0E8688A3FC9F5F9C62F1A295B96269D", + "tx": { + "TransactionType": "Payment", + "Flags": 0, + "Sequence": 10, + "Amount": { + "value": "2", + "currency": "EUR", + "issuer": "rfitr7nL7MX85LLKJce7E3ATQjSiyUPDfj" + }, + "Fee": "10", + "SigningPubKey": "03FDDCD97668B686100E60653FD1E5210A8310616669AACB3A1FCC6D2C090CCB32", + "TxnSignature": "304402204F9BB7E37C14A3A3762E2A7DADB9A28D1AFFB3797521229B6FB98BA666B5491B02204F69AAEAFAC8FA473E52042FF06035AB3618A54E0B76C9852766D55184E98598", + "Account": "rhdAw3LiEfWWmSrbnZG3udsN7PoWKT56Qo", + "Destination": "rfitr7nL7MX85LLKJce7E3ATQjSiyUPDfj" + }, + "meta": { + "TransactionIndex": 0, + "AffectedNodes": [ + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "PreviousTxnLgrSeq": 51814, + "PreviousTxnID": "5EC1C179996BD87E2EB11FE60A37ADD0FB2229ADC7D13B204FAB04FABED8A38D", + "LedgerIndex": "AC1B67084F84839A3158A4E38618218BF9016047B1EE435AECD4B02226AB2105", + "PreviousFields": { + "Sequence": 10, + "Balance": "10000999910" + }, + "FinalFields": { + "Flags": 0, + "Sequence": 11, + "OwnerCount": 2, + "Balance": "10000999900", + "Account": "rhdAw3LiEfWWmSrbnZG3udsN7PoWKT56Qo" + } + } + } + ], + "TransactionResult": "tecPATH_DRY" + } + } + ] +} +``` + + + +## Get Payments +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getPayments.js "Source") + +Paymentを経時的に取得します。Paymentは、トランザクションの送金元が同時に送金先ではない`Payment`タイプのトランザクションと定義されます。_(新規: [v2.0.4][])_ + +結果は個別のペイメントとして返されるか、または通貨とイシュアーが指定されている場合には特定の間隔でリストに集約されます。 + +#### 要求フォーマット + + + +*REST - 全通貨* + +``` +GET /v2/payments/ +``` + +*REST - 特定の通貨* + +``` +GET /v2/payments/{currency} +``` + + + +[試してみる>](data-api-v2-tool.html#get-payments) + +このメソッドでは以下のURLパラメーターを使用します。 + +| フィールド | 値 | 説明 | +|:-----------|:-------|:-------------------------------------------------------| +| `currency` | 文字列 | _(省略可)_ 通貨コード、`+`、相手側アドレスの順。(あるいは`XRP`のみ(相手側なし)。)省略すると、全通貨のペイメントが返されます。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | +| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +結果を集計するための`interval`パラメーターは、[v2.3.5][]で削除されました。 + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:-----------|:-----------------------------|:---------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返されたペイメントの件数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `payments` | [ペイメントオブジェクト][]の配列 | 要求されたペイメント。 | + + +#### 例 + +要求: + +``` +GET /v2/payments/BTC+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q?limit=2 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 2, + "marker": "20131124004240|000003504935|00002", + "payments": [ + { + "amount": "100.0", + "delivered_amount": "100.0", + "destination_balance_changes": [ + { + "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "currency": "BTC", + "value": "100" + } + ], + "transaction_cost": "1.0E-5", + "source_balance_changes": [ + { + "counterparty": "rwm98fCBS8tV1YB8CGho8zUPW5J7N41th2", + "currency": "BTC", + "value": "-100" + } + ], + "tx_index": 3, + "currency": "BTC", + "destination": "rwm98fCBS8tV1YB8CGho8zUPW5J7N41th2", + "executed_time": "2013-09-27T04:03:00Z", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "ledger_index": 2424349, + "source": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "source_currency": "BTC", + "tx_hash": "EDDE2601C38F886E1183B5E7E1BFD936105C76E3648E3FAD2A6C55E90BABDB47" + }, + { + "amount": "0.2", + "delivered_amount": "0.2", + "destination_balance_changes": [ + { + "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "currency": "BTC", + "value": "0.2" + } + ], + "transaction_cost": "1.5E-5", + "max_amount": "0.202", + "source_balance_changes": [ + { + "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "currency": "BTC", + "value": "-0.2" + } + ], + "tx_index": 1, + "currency": "BTC", + "destination": "rHfcNvcg8pBqBxtSvD9Ma8gF17uxauB31o", + "executed_time": "2013-11-20T23:52:30Z", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "ledger_index": 3445885, + "source": "rwm98fCBS8tV1YB8CGho8zUPW5J7N41th2", + "source_currency": "BTC", + "tx_hash": "F30D6CED4B0C37660F6DD741C9CA49F0BCB2D2648CDB8FC8AD6CFD86A86384E2" + } + ] +} +``` + + + + + +## Get Exchanges +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getExchanges.js "Source") + +特定の通貨ペアの取引を経時的に取得します。結果は取引ごとに個別に返されるか、または特定の間隔でリストにまとめられます。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/exchanges/{base}/{counter} +``` + + + +[試してみる>](data-api-v2-tool.html#get-exchanges) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `base` | 文字列 | ペアのベース通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ただし、ベース通貨がXRPの場合を除く)。 | +| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ただし、クオート通貨がXRPの場合を除く)。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:--------------|:-----------------------|:------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | +| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | +| `interval` | 文字列 | 収集間隔: `1minute`、`5minute`、`15minute`、`30minute`、`1hour`、`2hour`、`4hour`、`1day`、`3day`、`7day`、または`1month`。デフォルトでは結果は収集されません。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。 | +| `reduce` | ブール値 | `true`の場合、個々の結果がすべてまとめられます。デフォルトは`false`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。`reduce`がtrueの場合、指定できる最大値は20,000です。それ以外の場合は、指定できる最大値は1,000です。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `autobridged` | ブール値 | `true`の場合は、オートブリッジングされた取引のみに結果が絞り込まれます。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------|:------------------------------|:-------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返されたトランザクションの数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `exchanges` | [取引オブジェクト][]の配列 | 要求された取引。 | + +#### 例 + +要求: + +``` +GET /v2/exchanges/USD+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP?descending=true&limit=3&result=tesSUCCESS&type=OfferCreate +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 3, + "marker": "USD|rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q|XRP||20151021222220|000016612683|00017|00000", + "exchanges": [ + { + "base_amount": 4.98954834453577, + "counter_amount": 1047.806201, + "node_index": 9, + "rate": 210.00021000021, + "tx_index": 0, + "buyer": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "executed_time": "2015-10-21T23:09:50", + "ledger_index": 16613308, + "offer_sequence": 1010056, + "provider": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "seller": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", + "taker": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", + "tx_hash": "25600A10E5395D45A9D514E1EC3D98C341C5451FD21C48FA9D104C310EC29D6B", + "tx_type": "Payment", + "base_currency": "USD", + "base_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "counter_currency": "XRP" + }, + { + "base_amount": 0.0004716155440678037, + "counter_amount": 0.1, + "node_index": 3, + "rate": 212.03711637126, + "tx_index": 0, + "buyer": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", + "executed_time": "2015-10-21T23:09:50", + "ledger_index": 16613308, + "offer_sequence": 158081, + "provider": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", + "seller": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", + "taker": "rK2o63evRPdRoMT2ZaW72wsHsFzcjnRLLq", + "tx_hash": "25600A10E5395D45A9D514E1EC3D98C341C5451FD21C48FA9D104C310EC29D6B", + "tx_type": "Payment", + "base_currency": "USD", + "base_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "counter_currency": "XRP" + }, + { + "base_amount": 0.0004714169229390923, + "counter_amount": 0.1, + "node_index": 3, + "rate": 212.1264535361624, + "tx_index": 17, + "autobridged_currency": "USD", + "autobridged_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "buyer": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", + "executed_time": "2015-10-21T22:22:20", + "ledger_index": 16612683, + "offer_sequence": 158059, + "provider": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", + "seller": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "taker": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "tx_hash": "F05F670B06D641D7F6FE18E450DDB2C7A4DDF76D580C34C820939DC22AD9F582", + "tx_type": "OfferCreate", + "base_currency": "USD", + "base_issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "counter_currency": "XRP" + } + ] +} +``` + + + +## Get Exchange Rates +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getExchangeRate.js "Source") + +指定された通貨ペアの特定の時点での為替レートを取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/exchange_rates/{base}/{counter} +``` + + + +[試してみる>](data-api-v2-tool.html#get-exchange-rates) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `base` | 文字列 | ペアのベース通貨を、[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します。XRPの場合は`+`とイシュアーを省略します。 | +| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します。XRPの場合は`+`とイシュアーを省略します。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------|:-----------------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | 指定された時点の為替レートを返します。デフォルトは現行時刻です。 | +| `strict` | ブール値 | `false`の場合、10件未満の取引からレートを導出できます。デフォルトは`true`です。 | + + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-------|:---------------------------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `rate` | 数値 | 要求された為替レート。為替レートを判別できなかった場合は`0` です。 | + +すべての為替レートは、ベース通貨とクオート通貨をXRPに変換して算出されます。 + +レートは指定されたカレンダー日の出来高加重平均から導出されます。過去14日間における最新50件の取引の加重平均です。 + +#### 例 + +要求: + +``` +GET /v2/exchange_rates/USD+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/XRP?date=2015-11-13T00:00:00Z +``` + +応答: + +``` +200 OK +{ + "result": "success", + "rate": "224.65709" +} +``` + + + + +## Normalize +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/normalize.js "Source") + +ネットワークの為替レートを使用して、ある通貨とイシュアーからの額を別の通貨とイシュアーの額へ交換します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/normalize +``` + + + +[試してみる>](data-api-v2-tool.html#normalize) + +少なくとも以下のクエリーパラメーターのいくつかを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:--------------------|:---------------------------|:--------------------------| +| `amount` | 数値 | (必須)正規化する通貨の額。 | +| `currency` | 文字列 - [通貨コード][] | 交換前の`amount`の通貨コード。デフォルトはXRPです。 | +| `issuer` | 文字列 - [アドレス][] | 交換前の通貨のイシュアー。(`currency`がXRP以外の場合には必須です。) | +| `exchange_currency` | 文字列 - [通貨コード][] | 交換後の通貨。デフォルトはXRPです。 | +| `exchange_issuer` | 文字列 - [アドレス][] | 交換後の通貨のイシュアー。(`exchange_currency`がXRP以外の場合には必須です。) | +| `date` | 文字列 - [タイムスタンプ][] | この時点の為替レートに基づいて変換します。デフォルトは現行時刻です。 | +| `strict` | ブール値 | `true`の場合は、10件未満の取引から判別された為替レートは使用されません。デフォルトは`true`です。 | + + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------|:-------|:------------------------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `amount` | 数値 | 要求に指定されている交換前の額。 | +| `converted` | 数値 | 交換後の`exchange_currency`の額。為替レートを判別できなかった場合は`0`です。 | +| `rate` | 数値 | 交換の計算に使用された為替レート。為替レートを判別できなかった場合は`0`です。 | + +為替レートはすべて、両方の通貨をXRPに交換することで算出されます。 + +#### 例 + +要求: + +``` +GET /v2/normalize?amount=100¤cy=XRP&exchange_currency=USD&exchange_issuer=rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q +``` + +応答: + +``` +200 OK +{ + "result": "success", + "amount": "100", + "converted": "0.4267798022744489", + "rate": "0.0042677980" +} +``` + + + + +## Get Daily Reports +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/reports.js "Source") + +1日あたりのアカウント別に集計されたペイメントのサマリーを取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/reports/{date} +``` + + + +[試してみる>](data-api-v2-tool.html#get-daily-reports) + +このメソッドでは以下のURLパラメーターを使用します。 + +| フィールド | 値 | 説明 | +|:-------|:-------|:--------------------------------------------------------------| +| `date` | 文字列 | _(省略可)_ クエリー実行日(UTC)。省略すると現在の日付が使用されます。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-----------|:--------|:------------------------------------------------------| +| `accounts` | ブール値 | `true`の場合は、相手側アカウントのリストが含まれます。デフォルトは`false`です。 | +| `payments` | ブール値 | `true`の場合は、個々のペイメントのリストが含まれます。デフォルトは`false`です。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:----------|:-----------------------------|:----------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `date` | 文字列 - [タイムスタンプ][] | このレポートが適用される日付。 | +| `count` | 整数 | 返されたレポートの数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `reports` | [レポートオブジェクト][]の配列 | 要求されたレポート。各レポートは1つのアカウントに関連します。 | + +**注意:** このメソッドでは非常に大量のデータ(1 MB以上)が返されることがあり、クライアントアプリケーションのパフォーマンスを低下させる可能性があります。 + +#### 例 + +要求: + +``` +GET /v2/reports/2015-08-19T00:00:00Z?accounts=true&payments=true +``` + +応答(サイズが大きいため一部省略): + +``` +{ + "result": "success", + "date": "2015-08-19T00:00:00Z", + "count": 2, + "marker": "20150819000000|r2nt4zXDP6Be5FNrLsiuuTEBETbGR9RFw", + "reports": [ + { + "account": "r2LXq2rZWSgQ1thhKiEytzi1smg6oEn8A", + "date": "2015-08-19T00:00:00Z", + "high_value_received": "7000", + "high_value_sent": "3400", + "payments": [ + { + "tx_hash": "A032EFBB219B1102BBD9BCCB91EDC6EAA8185509574FA476A2D3FE6BA79B04EF", + "amount": "1700", + "type": "received" + }, + { + "tx_hash": "8B059360DC83777CDCABA84824C169651AFD6A7AB44E8742A3B8C6BC2AAF7384", + "amount": "40", + "type": "received" + }, + + ...(additional results trimmed)... + + { + "tx_hash": "76041BD6546389B5EC2CDBAA543200CF7B8D300F34F908BA5CA8523B0CA158C8", + "amount": "1400", + "type": "sent" + } + ], + "payments_received": 155, + "payments_sent": 49, + "receiving_counterparties": [ + "rDMFJrKg2jyoNG6WDWJknXDEKZ6ywNFGwD", + "r4XXHxraHLuCiLmLMw96FTPXXywZSnWSyR", + + ...(additional results trimmed)... + + + "rp1C4Ld6uGjurFpempUJ8q5hPSWhak5EQf" + ], + "sending_counterparties": [ + "rwxcJVWZSEgN2DmLZYYjyagHjMx5jQ7BAa", + + ...(additional results trimmed)... + + + "rBK1rLjbWsSU9EuST1cAz9RsiYdJPVGXXA" + ], + "total_value": "210940", + "total_value_received": "100540", + "total_value_sent": "110400" + }, + { + "account": "r2adXWaWFJt9mHeoWN77iHJozDz2FDAPA", + "date": "2015-08-19T00:00:00Z", + "high_value_received": "7400", + "high_value_sent": "15900", + "payments": [ + { + "tx_hash": "9C7EA76D467AE58E6AEFAAC7994D42FB4E7FA72BFA22F90260937386D76BDB64", + "amount": "900", + "type": "sent" + }, + + ...(additional results trimmed)... + + + { + "tx_hash": "EC25427964419394BB5D06343BC74235C33655C1F70523C688F9A201957D65BA", + "amount": "100", + "type": "sent" + } + ], + "payments_received": 43, + "payments_sent": 62, + "receiving_counterparties": [ + "rB4cyZxrBrTmJcWZSBc8YoW2t3bafiKRp", + + ...(additional results trimmed)... + + + "rKybkw3Pu74VfJfrWr7QJbVPJNarnKP2EJ" + ], + "sending_counterparties": [ + "rNRCXw8PQRjvTwMDDLZVvuLHSKqqXUXQHv", + "r7CLMVEuNvK2yXTPLPnkWMqzkkXuopWeL", + + ...(additional results trimmed)... + + + "ranyeoYRhvwiFABzDvxSVyqQKp1bMkFsaX" + ], + "total_value": "117600", + "total_value_received": "54700", + "total_value_sent": "62900" + } + ] +} +``` + + + +## Get Stats +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/stats.js "Source") + +XRP Ledgerでのトランザクションアクティビティの統計情報を、さまざまな時間間隔で取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/stats +``` + + + +[試してみる>](data-api-v2-tool.html#get-stats) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `family` | 文字列 | 指定されている場合は、結果が`type`、`result`、または`metric`のいずれか1つの統計ファミリーに絞り込まれます。デフォルトでは、すべてのファミリーのすべての統計情報が返されます。 | +| `metrics` | 文字列 | 結果を1つ以上のメトリック(カンマ区切りリスト)に絞り込みます。メトリックの`family`を指定する必要があります。デフォルトでは、当該ファミリーのすべてのメトリックが返されます。 | +| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | +| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | +| `interval` | 文字列 | 収集間隔(`hour`、`day`、または`week`)。デフォルトは`day`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +##### ファミリーとメトリクス + +クエリーパラメーター`family`と`metrics`を使用すると、任意の間隔ですべてのトランザクションに適用できるあらゆるメトリクスの特定のサブセットに結果を絞り込むことができます。各メトリクスは以下のように特定のファミリーに関連付けられています。 + +| ファミリー | 含まれるメトリクス | 意味 | +|:---------|:-----------------|:--------| +| `type` | XRP Ledgerのすべての[トランザクションタイプ](transaction-formats.html)(`Payment`、`AccountSet`、`OfferCreate`など)。 | 所定の間隔内に発生した、指定されたタイプのトランザクションの数。 | +| `result` | `tesSUCCESS`、`tecPATH_DRY`などを含む、すべての[トランザクション結果コード](transaction-results.html)(数値コードではなく文字列コード)。 | 所定の間隔内に指定された結果コードを取得したトランザクションの数。 | +| `metric` | Data-API定義の特殊トランザクションメトリクス。 | (場合により異なる) | + +##### 特殊トランザクションメトリクス + +Data APIは各間隔ごとに以下の値を導出します。これらのメトリクスは`metric`ファミリーの一部です。 + +| フィールド | 値 | 説明 | +|:-------------------|:-------|:-----------------------------------------------| +| `accounts_created` | 数値 | この間隔内に資金供給を受けた新しいアカウントの数。 | +| `exchanges_count` | 数値 | この間隔内に発生した通貨取引の数。 | +| `ledger_count` | 数値 | この間隔内に閉鎖されたレジャーの数。 | +| `ledger_interval` | 数値 | この間隔内におけるレジャーの平均閉鎖間隔(秒数)。 | +| `payments_count` | 数値 | この間隔におけるアカウント間決済数。 | +| `tx_per_ledger` | 数値 | この間隔におけるレジャーあたりの平均トランザクション数。 | + +値が0のメトリクスは結果から省略されます。 + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------|:-----------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返されたレポートの数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `stats` | 統計情報オブジェクトの配列 | 要求された統計情報。値が0のメトリクスと、0以外のメトリクスのない間隔は省略されます。 | + +#### 例 + +要求: + +``` +GET /v2/stats/?start=2015-08-30&end=2015-08-31&interval=day&family=metric&metrics=accounts_created,exchanges_count,ledger_count,payments_count +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 2, + "stats": [ + { + "accounts_created": 15, + "exchanges_count": 19368, + "ledger_count": 20307, + "payments_count": 24763, + "date": "2015-08-30T00:00:00Z" + }, + { + "accounts_created": 18, + "exchanges_count": 17192, + "ledger_count": 19971, + "payments_count": 30894, + "date": "2015-08-31T00:00:00Z" + } + ] +} +``` + + + +## Get Active Accounts +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/activeAccounts.js "Source") + +特定の通貨ペアの取引を実際に行っているアカウントに関する情報を取得します。_(新規: [v2.0.4][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/active_accounts/{base}/{counter} +``` + + + +[試してみる>](data-api-v2-tool.html#get-active-accounts) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `base` | 文字列 | ペアのベース通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ベース通貨がXRPの場合を除く)。 | +| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ただし、クオート通貨がXRPの場合を除く)。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:--------------------|:--------|:---------------------------------------------| +| `period` | 文字列 | 選択した期間中の取引アクティビティの結果を取得します。有効期間は`1day`、`3day`、`7day`です。デフォルトは`1day`です。 | +| `date` | 文字列 | この日に始まる期間の結果を取得します。デフォルトは、直近の期間です。 | +| `include_exchanges` | ブール値 | 各アカウントの個々の取引を結果に含めます。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------------|:----------------------------------------|:---------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返されたアカウントの数。 | +| `exchanges_count` | 整数 | 当該期間の取引の合計数。 | +| `accounts` | アクティブなアカウント取引オブジェクトの配列。 | 当該期間のアクティブな取引アカウント。 | + +各**アカウント取引オブジェクト**は、当該期間における1つのアカウントのアクティビティを表し、以下のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:----------------------|:---------------------|:------------------------------| +| `buy` | オブジェクト | ベース通貨を購入する通貨取引のサマリー。 | +| `buy.base_volume` | 数値 | このアカウントが当該期間に購入したベース通貨の額。 | +| `buy.counter_volume` | 数値 | このアカウントが当該期間に売却したクオート通貨の額。 | +| `buy.count` | 数値 | 当該期間にベース通貨を購入した取引の数。 | +| `sell` | オブジェクト | ベース通貨を売却する通貨取引のサマリー。 | +| `sell.base_volume` | 数値 | このアカウントが当該期間に売却したベース通貨の額。 | +| `sell.counter_volume` | 数値 | このアカウントが当該期間に購入したクオート通貨の額。 | +| `sell.count` | 数値 | 当該期間にベース通貨を売却した取引の数。 | +| `account` | 文字列 - [アドレス][] | このオブジェクトが表すアクティビティのアドレス。 | +| `base_volume` | 数値 | このアカウントが当該期間中に売買したベース通貨の総額。 | +| `counter_volume` | 数値 | このアカウントが当該期間中に売買したクオート通貨の総額。 | +| `count` | 数値 | このアカウントが当該期間中に行った取引の合計数。 | + +#### 例 + +要求: + +``` +GET /v2/active_accounts/XRP/USD+rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 12, + "exchanges_count": 11, + "accounts": [ + { + "buy": { + "base_volume": 0, + "counter_volume": 0, + "count": 0 + }, + "sell": { + "base_volume": 13084.822874, + "counter_volume": 54.499328645454604, + "count": 4 + }, + "account": "rGBQhB8EH5DmqMmfKPLchpqr3MR19pv6zN", + "base_volume": 13084.822874, + "counter_volume": 54.499328645454604, + "count": 4 + }, + { + "buy": { + "base_volume": 12597.822874, + "counter_volume": 52.4909286454546, + "count": 1 + }, + "sell": { + "base_volume": 0, + "counter_volume": 0, + "count": 0 + }, + "account": "rQE5Z3FgVnRMbVfS6xiVQFgB4J3X162FVD", + "base_volume": 12597.822874, + "counter_volume": 52.4909286454546, + "count": 1 + }, + + ...(additional results trimmed)... + + { + "buy": { + "base_volume": 1.996007, + "counter_volume": 0.008782427920595, + "count": 1 + }, + "sell": { + "base_volume": 0, + "counter_volume": 0, + "count": 0 + }, + "account": "rD8LigXE7165r3VWhSQ4FwzJy7PNrTMwUq", + "base_volume": 1.996007, + "counter_volume": 0.008782427920595, + "count": 1 + }, + { + "buy": { + "base_volume": 0, + "counter_volume": 0, + "count": 0 + }, + "sell": { + "base_volume": 0.1, + "counter_volume": 0.0004821658905462904, + "count": 1 + }, + "account": "rfh3pFHkCXv3TgzsEJgyCzF1CduZHCLi9o", + "base_volume": 0.1, + "counter_volume": 0.0004821658905462904, + "count": 1 + } + ] +} +``` + + + +## Get Exchange Volume +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getMetric.js "Source") + +指定された期間における取引量の合計を取得します。_(新規: [v2.0.4][])_ + +APIは、結果を複数の種類の通貨ではなく1つの _表示通貨_ 単位で返します。XRPと他の通貨の取引には、標準レートが使用されます。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/exchange_volume +``` + + + +[試してみる>](data-api-v2-tool.html#get-exchange-volume) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:--------------------|:---------------------------|:--------------------------| +| `live` | 文字列 | この時間の長さのライブローリングウィンドウを返します。有効な値は`day`、`hour`、`minute`です。_(新規: [v2.3.0][])_ | +| `exchange_currency` | 文字列 - [通貨コード][] | すべての額を正規化し、この通貨を表示通貨として使用します。XRP以外の場合は`exchange_issuer`も必要です。デフォルトはXRPです。 | +| `exchange_issuer` | 文字列 - [アドレス][] | 結果を、このイシュアーが発行した特定の`currency`に正規化します。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +`start`、`end`、`interval`、`limit`、および`marker`パラメーターは[v2.3.5][]で削除されました。 + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-------------------------------------|:---------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返された結果の数。 | +| `rows` | 取引[取引量オブジェクト][]の配列。 | 要求された期間における各間隔の取引量。(デフォルトでは、この配列には直近の完全な間隔だけが含まれます。`live`が指定されており`interval`が指定されていない場合は、この配列には指定されたローリングウィンドウが含まれます。) | + +取引量オブジェクトの`components`配列内の各オブジェクトは、2種類の通貨間のマーケットにおける取引量を表し、以下のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:-------------------|:-------|:-----------------------------------------------| +| `count` | 数値 | この間隔内にこのマーケットで行われた取引の件数。 | +| `rate` | 数値 | ベース通貨から表示通貨への為替レート。 | +| `amount` | 数値 | このマーケットにおける取引量(ベース通貨単位)。 | +| `base` | オブジェクト | このマーケットにおけるベース通貨の`currency`と`issuer`。XRPの場合は`issuer`はありません。 | +| `counter` | オブジェクト | このマーケットにおけるクオート通貨の`currency`と`issuer`。XRPの場合は`issuer`はありません。 | +| `converted_amount` | 数値 | このマーケットにおける合計取引量(表示通貨に変換)。_([v2.1.0][]より古いバージョンでは、これは`convertedAmount`でした。)_ | + +#### 例 + +要求: + +``` +GET /v2/network/exchange_volume?exchange_currency=USD&exchange_issuer=rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B +``` + + +応答: + +``` +200 OK +{ + "result": "success", + "count": 1, + "rows": [ + { + "components": [ + { + "count": 1711, + "rate": 5.514373809662552e-8, + "amount": 333.7038784107369, + "base": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "counter": { + "currency": "XRP" + }, + "converted_amount": 117720.99268355068 + }, + { + "count": 1977, + "rate": 0.000019601413454357618, + "amount": 74567.72531650064, + "base": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "counter": { + "currency": "XRP" + }, + "converted_amount": 74003.51871932109 + }, + + ...(additional results trimmed) ... + + { + "count": 3, + "rate": 0.022999083584408355, + "amount": 85.40728674708998, + "base": { + "currency": "CNY", + "issuer": "razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA" + }, + "counter": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "converted_amount": 12.72863756671683 + }, + { + "count": 3, + "rate": 1.7749889023209692e-7, + "amount": 570.687912196755, + "base": { + "currency": "JPY", + "issuer": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN" + }, + "counter": { + "currency": "BTC", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + }, + "converted_amount": 4.4137945368632545 + } + ], + "count": 11105, + "endTime": "2015-09-11T19:58:58+00:00", + "exchange": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "exchangeRate": 0.004410567085248279, + "startTime": "2015-11-10T00:06:04+00:00", + "total": 442442.5974313684 + } + ] +} +``` + + + + + +## Get Payment Volume +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getMetric.js "Source") + +指定された期間のペイメントの合計取引量を取得します。_(新規: [v2.0.4][])_ + +APIは、結果を複数の種類の通貨ではなく1つの _表示通貨_ 単位で返します。XRPと他の通貨の取引には、標準レートが使用されます。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/payment_volume +``` + + + +[試してみる>](data-api-v2-tool.html#get-payment-volume) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:--------------------|:---------------------------|:--------------------------| +| `live` | 文字列 | この時間の長さのライブローリングウィンドウを返します。有効な値は`day`、`hour`、`minute`です。_(新規: [v2.3.0][])_ | +| `exchange_currency` | 文字列 - [通貨コード][] | すべての額を正規化し、この通貨を表示通貨として使用します。XRP以外の場合は`exchange_issuer`も必要です。デフォルトはXRPです。 | +| `exchange_issuer` | 文字列 - [アドレス][] | 結果を、このイシュアーが発行した特定の`currency`に正規化します。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +`start`、`end`、`interval`、`limit`、および`marker`パラメーターは[v2.3.5][]で削除されました。 + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:------------------------------------|:----------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返された結果の数。 | +| `rows` | ペイメントの[取引量オブジェクト][]の配列。 | 要求された期間における各間隔のペイメントの取引量。(デフォルトでは、この配列には最新の間隔だけが含まれます。`live`が指定されており`interval`が指定されていない場合は、この配列には指定されたローリングウィンドウが含まれます。) | + +取引量オブジェクトの`components`配列の各オブジェクトは、1つの通貨とイシュアーのペイメントの取引量を表し、以下のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:-------------------|:---------------------------|:---------------------------| +| `currency` | 文字列 - [通貨コード][] | このペイメントの取引量オブジェクトの通貨。 | +| `issuer` | 文字列 - [アドレス][] | (XRPの場合は省略)このペイメントの取引量オブジェクトのイシュアー。 | +| `amount` | 数値 | 当該間隔内におけるこの通貨でのペイメントの合計額(当該通貨単位)。 | +| `count` | 数値 | この通貨でのペイメントの合計件数。 | +| `rate` | 数値 | この通貨と表示通貨間の為替レート。 | +| `converted_amount` | 数値 | この通貨のペイメントの合計額(表示通貨に変換)。_([v2.1.0][]より古いバージョンでは、これは`convertedAmount`でした。)_ | + +#### 例 + +要求: + +``` +GET /v2/network/payment_volume +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 1, + "rows": [ + { + "components": [ + { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "amount": 87279.59029136538, + "count": 331, + "rate": 0.004412045860957953, + "converted_amount": 19782113.1153009 + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "amount": 0, + "count": 0, + "rate": 0.00451165816091143, + "converted_amount": 0 + }, + { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "amount": 279.03077460240354, + "count": 107, + "rate": 0.000013312520335244644, + "converted_amount": 20960026.169024874 + }, + + ...(additional results trimmed) ... + + { + "currency": "MXN", + "issuer": "rG6FZ31hDHN1K5Dkbma3PSB5uVCuVVRzfn", + "amount": 49263.13280138676, + "count": 19, + "rate": 0.07640584677247926, + "converted_amount": 644756.0609868265 + }, + { + "currency": "XRP", + "amount": 296246369.30089426, + "count": 8691, + "rate": 1, + "converted_amount": 296246369.30089426 + } + ], + "count": 9388, + "endTime": "2015-09-11T19:58:59+00:00", + "exchange": { + "currency": "XRP" + }, + "exchangeRate": 1, + "startTime": "2015-11-10T00:19:04+00:00", + "total": 390754174.7837752 + } + ] +} +``` + + + +## Get External Markets +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/externalMarkets.js "Source") + +指定のローリング間隔におけるレジャー外の取引のリストから、取引量の合計を取得します。 + +APIは、結果を複数の種類の通貨ではなく1つの _表示通貨_ 単位で返します。XRPと他の通貨の取引には、標準レートが使用されます。 + +#### 要求フォーマット #### + + + +*REST* + +``` +GET /v2/network/external_markets +``` + + + +[試してみる>](data-api-v2-tool.html#get-external-markets) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:--------------------|:---------------------------|:--------------------------| +| `period` | 文字列 | 集約期間 - 有効な間隔は`1hour`、`1day`、`3day`、`7day`、`30day`です。デフォルトは`1day`です。 | +| `exchange_currency` | 文字列 - [通貨コード][] | すべての額を正規化し、この通貨を表示通貨として使用します。XRP以外の場合は`exchange_issuer`も必要です。デフォルトはXRPです。 | +| `exchange_issuer` | 文字列 - [アドレス][] | 結果を、このイシュアーが発行した特定の`currency`に正規化します。 | + + +#### 応答フォーマット #### +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:--------------|:-------|:----------------------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `data` | オブジェクト | 指定の期間のデータが含まれています。 | +| `data.date` | 文字列 | この期間が計算された日付。 | +| `data.total` | 数値 | 当該期間に取引されたXRPの合計額。 | +| `data.period` | 文字列 | 照会された期間の名前。 | + +取引量オブジェクトの`components`配列の各オブジェクトは、1つの外部マーケットの取引量を表します。マーケットによってはすべてのフィールドが表示されるわけではありません。 + +| フィールド | 値 | 説明 | +|:-------------------|:-------|:-----------------------------------------------| +| `source` | 文字列 | 特定の外部マーケットのドメイン名。 | +| `base_volume` | 数値 | ベース通貨(XRP)単位での取引量。 | +| `counter_volume` | 数値 | クオート通貨単位での取引量。 | +| `base_currecy` | 文字列 | マーケットペアのベース通貨。 | +| `counter_currency` | 文字列 | マーケットペアのクオート通貨。 | +| `rate` | 数値 | 為替レート。 | + +#### 例 #### + +要求: + +``` +GET /v2/network/external_markets +``` + + +応答: + +``` +200 OK + +{ + "result": "success", + "data": { + "components": [ + { + "base_volume": "52847221.256202064", + "counter_volume": "619.8111371100003", + "source": "poloniex.com", + "base_currency": "XRP", + "counter_currency": "BTC", + "rate": "0.0000117284" + }, + { + "base_volume": "389955.29648717004", + "counter_volume": "3212.07137265", + "source": "poloniex.com", + "base_currency": "XRP", + "counter_currency": "USD", + "rate": "0.00823702" + }, + { + "base_volume": "6025268.09143092", + "counter_volume": "70.57870572291264", + "count": 250, + "source": "kraken.com", + "base_currency": "XRP", + "counter_currency": "BTC", + "rate": "0.0000117138" + }, + { + "base_volume": "4141962.161763998", + "source": "btc38.com", + "base_currency": "XRP", + "counter_currency": "CNY" + }, + { + "base_volume": "303505", + "source": "btc38.com", + "base_currency": "XRP", + "counter_currency": "BTC" + }, + { + "base_volume": "1275008.2922999999", + "source": "jubi.com", + "base_currency": "XRP", + "counter_currency": "CNY" + } + ], + "date": "2016-10-31T20:45:20Z", + "period": "1day", + "total": "64982920.098184146" + } +} +``` + + + +## Get XRP Distribution +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/xrpDistribution.js "Source") + +現存し、流通しているXRPの合計額に関する情報を週単位で取得します。_(新規: [v2.2.0][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/xrp_distribution +``` + + + +[試してみる>](data-api-v2-tool.html#get-xrp-distribution) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、最新間隔の開始時刻です。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは、最新間隔の終了時刻です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:------------------------------|:----------------------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `count` | 整数 | 返された行の数。 | +| `rows` | 流通量オブジェクトの配列 | XRP流通量の週次スナップショット。 | + +各流通量オブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:----------------|:-----------------------|:----------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | このスナップショットの時刻。 | +| `total` | 文字列 | 現存するXRPの合計。 | +| `undistributed` | 文字列 | Ripple(企業)が保有するXRPの総額。 | +| `distributed` | 文字列 | Ripple以外が保有するXRPの総額。 | + +#### 例 + +要求: + +``` +GET /v2/network/xrp_distribution +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 171, + "rows": [ + { + "date": "2016-04-10T00:00:00Z", + "distributed": "34918644255.77274", + "total": "99997725821.25714", + "undistributed": "65079081565.4844" + }, + ... + ] +} +``` + + + +## Get Top Currencies +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/topCurrencies.js "Source") + +XRP Ledgerの上位通貨を、ランクが高いものから順に返します。このランクは、トランザクションの額と件数、および一意の取引相手の数に基づいて決定します。デフォルトでは、現在の日付で終了する30日間ローリングウィンドウの結果が返されます。結果を取得する30日間ローリングウィンドウの最終日の日付を指定できます。_(新規: [v2.1.0][])_ + + +#### 要求フォーマット + + + +*最新* + +``` +GET /v2/network/top_currencies +``` + +*日付指定* + +``` +GET /v2/network/top_currencies/{date} +``` + + + +[試してみる>](data-api-v2-tool.html#get-top-currencies) + +このメソッドでは以下のURLパラメーターを使用します。 + +| フィールド | 値 | 説明 | +|:-------|:-----------------------|:-------------------------------------------| +| `date` | 文字列 - ISO 8601の日付 | _(省略可)_ 照会する過去の日付。省略すると、利用可能な最新の日付が使用されます。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは1000です。1000を超える値は指定できません。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:-------------|:------------------------------|:------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `date` | 文字列 - [タイムスタンプ][] | このデータが測定された時点。 | +| `count` | 整数 | `currencies`フィールドに含まれているオブジェクトの数。 | +| `currencies` | 上位通貨オブジェクトの配列 | このデータサンプルの上位通貨。各メンバーは1つの通貨を通貨コードとイシュアーで表します。 | + +各上位通貨オブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:----------------------|:---------------------------|:------------------------| +| `currency` | 文字列 - [通貨コード][] | このオブジェクトが表す通貨。 | +| `issuer` | 文字列 - [アドレス][] | この通貨を発行するXRP Ledgerアドレス。 | +| `avg_exchange_count` | [文字列 - 数値][] | 1日あたりの平均[取引](#取引オブジェクト)件数。 | +| `avg_exchange_volume` | [文字列 - 数値][] | 1日あたりの平均取引量(XRPに正規化)。 | +| `avg_payment_count` | [文字列 - 数値][] | 1日あたりの平均[ペイメント](#ペイメントオブジェクト)件数。 | +| `avg_payment_volume` | [文字列 - 数値][] | 1日あたりの平均ペイメント取引量(XRPに正規化)。 | +| `issued_value` | [文字列 - 数値][] | このイシュアーが発行したこの通貨の合計額(XRPに正規化)。 | + +#### 例 + +要求: + +``` +GET /v2/network/top_currencies/2016-04-14?limit=2 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "date": "2016-04-14T00:00:00Z", + "count": 2, + "currencies": [ + { + "avg_exchange_count": "8099.967741935484", + "avg_exchange_volume": "3.5952068085531615E7", + "avg_payment_count": "624.28125", + "avg_payment_volume": "3910190.139488101", + "issued_value": "1.5276205395328993E8", + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y" + }, + { + "avg_exchange_count": "3003.2258064516127", + "avg_exchange_volume": "3.430482029838605E7", + "avg_payment_count": "257.4375", + "avg_payment_volume": "501442.0789529095", + "issued_value": "2.6289124450524995E8", + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } + ] +} +``` + + + +## Get Top Markets +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/topMarkets.js "Source") + +XRP Ledgerの上位マーケットを、ランクが高いものから順に返します。このランクは、取引の数と量、および参加取引相手の数に基づいて決定します。デフォルトでは、現在の日付で終わる30日間ローリングウィンドウにおける上位のマーケットが返されます。結果を取得する30日間ローリングウィンドウの最終日の日付を指定できます。_(新規: [v2.1.0][])_ + +#### 要求フォーマット + + + +*最新* + +``` +GET /v2/network/top_markets +``` + +*日付指定* + +``` +GET /v2/network/top_markets/{date} +``` + + + +[試してみる>](data-api-v2-tool.html#get-top-markets) + +このメソッドでは以下のURLパラメーターを使用します。 + +| フィールド | 値 | 説明 | +|:-------|:-----------------------|:-------------------------------------------| +| `date` | 文字列 - ISO 8601の日付 | _(省略可)_ 照会する過去の日付。省略すると、利用可能な最新の日付が使用されます。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは1000です。1000を超える値は指定できません。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:----------|:----------------------------|:-----------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `date` | 文字列 - [タイムスタンプ][] | このデータの計算対象であるローリングウィンドウの終了時刻。 | +| `count` | 整数 | `markets`フィールドに含まれている結果の数。 | +| `markets` | 上位マーケットオブジェクトの配列 | このデータサンプルの上位マーケット。各メンバーは通貨ペアを表します。 | + +各上位マーケットオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:---------------------|:---------------------------|:-------------------------| +| `base_currency` | 文字列 - [通貨コード][] | このマーケットのベース通貨。 | +| `base_issuer` | 文字列 - [アドレス][] | (`base_currency`がXRPの場合は省略)ベース通貨を発行するXRP Ledgerアドレス。 | +| `counter_currency` | 文字列 - [通貨コード][] | このマーケットのクオート通貨。 | +| `counter_issuer` | 文字列 - [アドレス][] | (`counter_currency`がXRPの場合は省略)クオート通貨を発行するXRP Ledgerアドレス。 | +| `avg_base_volume` | 文字列 | 1日あたりのベース通貨単位での平均取引量。 | +| `avg_counter_volume` | 文字列 | 1日あたりのクオート通貨単位での平均取引量。 | +| `avg_exchange_count` | 文字列 | 1日あたりの平均[取引](#取引オブジェクト)件数。 | +| `avg_volume` | 文字列 | 1日あたりの平均取引量(XRPに正規化)。 | + +#### 例 + +要求: + +``` +GET /v2/network/top_markets/2015-12-31 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "date": "2015-12-31T00:00:00Z", + "count": 58, + "markets": [ + { + "avg_base_volume": "116180.98607935428", + "avg_counter_volume": "1.6657039295476614E7", + "avg_exchange_count": "1521.4603174603174", + "avg_volume": "1.6657039295476614E7", + "base_currency": "USD", + "base_issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "counter_currency": "XRP" + }, + { + "avg_base_volume": "410510.0286920887", + "avg_counter_volume": "9117398.719214212", + "avg_exchange_count": "1902.1587301587301", + "avg_volume": "9117398.719214212", + "base_currency": "CNY", + "base_issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "counter_currency": "XRP" + }, + ... + ] +} +``` + + + +## Get Transaction Costs +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getFees.js "Source") + +レジャー、時間、または日ごとに[トランザクションコスト](transaction-cost.html)の統計情報を返します。このデータは、特定の間隔またはレジャーで支払われたトランザクションコストの最小値、最大値、および合計を示します。_(新規: [v2.2.0][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/fees +``` + + + +[試してみる>](data-api-v2-tool.html#get-transaction-costs) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトでは、利用可能な最も古いデータから開始します。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトでは、利用可能な最も新しいデータから開始します。 | +| `interval` | 文字列 | 収集間隔 - 有効な間隔は`ledger`、`hour`、`day`です。デフォルトは`ledger`です。 | +| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------------|:-----------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `count` | 整数 | `markets`フィールドに含まれている結果の数。 | +| `rows` | 手数料サマリーオブジェクトの配列 | 各間隔のトランザクションコストの統計情報。 | + +各手数料サマリーオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `avg` | 数値 | この間隔内に支払われたトランザクションコストの平均。 | +| `min` | 数値 | この間隔内に支払われたトランザクションコストの最小額。 | +| `max` | 数値 | この間隔内に支払われたトランザクションコストの最大額。 | +| `total` | 数値 | トランザクションコストにより消却されたXRPの合計。 | +| `tx_count` | 数値 | この間隔のトランザクションの数。 | +| `date` | 文字列 - [タイムスタンプ][] | この間隔の開始時刻(時間間隔)とこのレジャーの閉鎖時刻(`ledger`間隔)。 | +| `ledger_index` | 整数 - [レジャーインデックス][] | (`ledger`間隔の場合にのみ含まれます)このオブジェクトが表すレジャー。 | + +#### 例 + +要求: + +``` +GET /v2/network/fees?interval=day&limit=3&descending=true +``` + +応答: + +``` +200 OK +{ + "result": "success", + "marker": "day|20160603000000", + "count": 3, + "rows": [ + { + "avg": 0.011829, + "max": 15, + "min": 0.01, + "total": 6682.15335, + "tx_count": 564918, + "date": "2016-06-06T00:00:00Z" + }, + { + "avg": 0.011822, + "max": 4.963071, + "min": 0.01, + "total": 5350.832025, + "tx_count": 452609, + "date": "2016-06-05T00:00:00Z" + }, + { + "avg": 0.012128, + "max": 15, + "min": 0.01, + "total": 5405.126404, + "tx_count": 445689, + "date": "2016-06-04T00:00:00Z" + } + ] +} +``` + + + + +## Get Fee Stats +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getFeeStats.js "Source") + +`rippled`の[`fee`コマンド](fee.html)から導出されたメトリクスのスナップショットを返します。_(新規: [v2.3.2][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/fee_stats +``` + + + +[試してみる>](data-api-v2-tool.html#get-fee-stats) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトでは、利用可能な最も古いデータから開始します。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトでは、利用可能な最新データで終了します。 | +| `interval` | 文字列 | スナップショットの間隔。有効な間隔は`minute`、`hour`、`day`です。デフォルトの間隔は5秒です。 | +| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------------|:-----------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `count` | 整数 | `markets`フィールドに含まれている結果の数。 | +| `rows` | 手数料サマリーオブジェクトの配列 | 各間隔のトランザクションコストの統計情報。 | + +各**手数料サマリーオブジェクト**のフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:-----------------------|:-----------------------|:---------------------------| +| `date` | 文字列 - [タイムスタンプ][] | スナップショットの取得日時。 | +| `current_ledger_size` | 数値 | 指定時刻での現行レジャーのトランザクション数。 | +| `expected_ledger_size` | 数値 | 指定時刻に次のレジャーで予想されるトランザクションの数。 | +| `current_queue_size` | 数値 | 将来のレジャーに追加されるようキューに入れられているトランザクションの数。 | +| `pct_max_queue_size` | 数値 | 現在のキューサイズ(最大キューサイズに対する割合で表されます)。 | +| `median_fee` | 数値 | 現行レジャーのトランザクションの手数料の中央値。 | +| `minimum_fee` | 数値 | 任意のレジャーに追加する際の最小手数料。 | +| `open_ledger_fee` | 数値 | スナップショットの取得時点でオープンしていたレジャーに追加するコストのしきい値。 | + +#### 例 + +要求: + +``` +GET /v2/network/fee_stats +``` + +応答: + +``` +200 OK +{ + result: "success", + marker: "raw|20160701032100", + count: 200, + rows: [ + { + current_ledger_size: 39, + current_queue_size: 0, + date: "2016-07-01T00:00:00Z", + expected_ledger_size: 59, + median_fee: 0.005, + minimum_fee: 0.00001, + open_ledger_fee: 0.00001, + pct_max_queue_size: 0 + }, + { + current_ledger_size: 33, + current_queue_size: 0, + date: "2016-07-01T00:01:00Z", + expected_ledger_size: 59, + median_fee: 0.00543, + minimum_fee: 0.00001, + open_ledger_fee: 0.00001, + pct_max_queue_size: 0 + }, + ... + ] +} +``` + + + + +## Get Topology +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getTopology.js "Source") + +既知の`rippled`サーバーと、これらのサーバー間のピアツーピア接続を取得します。_(新規: [v2.2.0][])_ + + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/topology +``` + + + +[試してみる>](data-api-v2-tool.html#get-topology) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:----------|:-----------------------|:----------------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | 過去のクエリーの日時。デフォルトでは、利用可能な最新のデータが使用されます。 | +| `verbose` | ブール値 | `true`の場合、各サーバーに関する追加の詳細情報が含まれます(使用可能な場合)。デフォルトは`false`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:-------------|:----------------------------|:--------------------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `date` | 文字列 - [タイムスタンプ][] | この測定の時刻。 | +| `node_count` | 整数 | トポロジー内の`rippled`サーバーの数。 | +| `link_count` | 整数 | トポロジー内のリンクの数。 | +| `nodes` | [サーバーオブジェクト][]の配列 | ピアツーピアネットワーク内の`rippled`サーバーの詳細。 | +| `links` | [リンクオブジェクト][]の配列 | ピアツーピアネットワーク内の`rippled`サーバー間のネットワーク接続。 | + +#### 例 + +要求: + +``` +GET /v2/network/topology +``` + +応答: + +``` +200 OK +{ + "result": "success", + "date": "2016-06-06T23:51:04Z", + "node_count": 115, + "link_count": 1913, + "nodes": [ + { + "node_public_key": "n94fDXS3ta92gRSi7DKngh47S7Rg4z1FuNsahvbiakFEg51dLeVa", + "version": "rippled-0.31.0-rc1", + "uptime": 266431, + "inbound_count": 24, + "last_updated": "2016-06-03T21:50:57Z" + }, + { + "node_public_key": "n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor", + "ip": "104.247.221.178", + "port": 51235, + "version": "rippled-0.31.0", + "uptime": 608382, + "inbound_count": 10, + "outbound_count": 11, + "city": "Atlanta", + "country": "United States", + "country_code": "US", + "isp": "QuickPacket, LLC", + "last_updated": "2016-05-28T06:29:43Z", + "lat": "-84.3846", + "long": "33.8379", + "postal_code": "30305", + "region": "Georgia", + "region_code": "GA", + "timezone": "America/New_York" + }, + + ... + ], + "links": [ + { + "source": "n94Extku8HiQVY8fcgxeot4bY7JqK2pNYfmdnhgf6UbcmgucHFY8", + "target": "n9KcFAX2bCuwF4vGF8gZZcpQQ6nyqm44e5TUygb3zvdZEpiJE5As" + }, + { + "source": "n94Extku8HiQVY8fcgxeot4bY7JqK2pNYfmdnhgf6UbcmgucHFY8", + "target": "n9LGAj7PjvfTmEGQ75JaRKba6GQmVwFCnJTSHgX2HDXzxm6d2JpM" + }, + + ... + ] +} +``` + + + +## Get Topology Nodes +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getNodes.js "Source") + +既知の`rippled`ノードを取得します。(これは[Get Topologyメソッド](#get-topology)で返されるデータのサブセットです。)_(新規: [v2.2.0][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/topology/nodes +``` + + + +[試してみる>](data-api-v2-tool.html#get-topology-nodes) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:----------|:-----------------------|:----------------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | 過去のクエリーの日時。デフォルトは最新データです。 | +| `verbose` | ブール値 | `true`の場合は、各サーバーのすべての詳細が返されます。デフォルトは`false`です。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:----------------------------|:------------------------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `date` | 文字列 - [タイムスタンプ][] | このデータが測定された時点。 | +| `count` | 整数 | 記述される`rippled`サーバーの数。 | +| `nodes` | [サーバーオブジェクト][]の配列 | トポロジー内の`rippled`サーバーの詳細。 | + +#### 例 + +要求: + +``` +GET /v2/network/topology/nodes +``` + +応答: + +``` +200 OK +{ + "result": "success", + "date": "2016-06-08T00:36:53Z", + "count": 116, + "nodes": [ + { + "node_public_key": "n94BuARkPiYLrMuAVZqMQFhTAGpo12dqUPiH3yrzEnhaEcXfLAnV", + "version": "rippled-0.30.1", + "uptime": 122424, + "inbound_count": 10, + "last_updated": "2016-06-06T14:36:52Z" + }, + { + "node_public_key": "n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor", + "ip": "104.247.221.178", + "port": 51235, + "version": "rippled-0.31.2", + "uptime": 38649, + "inbound_count": 10, + "outbound_count": 11, + "city": "Atlanta", + "country": "United States", + "country_code": "US", + "isp": "QuickPacket, LLC", + "last_updated": "2016-06-07T13:53:12Z", + "lat": "-84.3846", + "long": "33.8379", + "postal_code": "30305", + "region": "Georgia", + "region_code": "GA", + "timezone": "America/New_York" + }, + + ... + + ] +} +``` + + + +## Get Topology Node +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getNodes.js "Source") + +1つの`rippled`サーバーに関する情報を、そのバリデータの公開鍵ではなく[ノードの公開鍵](#公開鍵)に基づいて取得します。_(新規: [v2.2.0][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/topology/nodes/{pubkey} +``` + + + +[試してみる>](data-api-v2-tool.html#get-topology-node) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:---------|:--------------------------------|:--------------------------------| +| `pubkey` | 文字列 - Base-58 [公開鍵][] | 検索するサーバーのノードの公開鍵。 | + +このメソッドはクエリーパラメーターをとりません。 + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と、以下の追加フィールドが含まれる **[サーバーオブジェクト][]** を含むJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-------|:---------------------------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | + +#### 例 + +要求: + +``` +GET /v2/network/topology/nodes/n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor +``` + +応答: + +``` +200 OK +{ + "node_public_key": "n94h5KNspwUGLaGcdHGxruYNmExWHjPkLcMvwsNrivR9czRp6Lor", + "ip": "104.247.221.178", + "port": 51235, + "version": "rippled-0.31.2", + "uptime": 43342, + "inbound_count": 10, + "outbound_count": 11, + "city": "Atlanta", + "country": "United States", + "country_code": "US", + "isp": "QuickPacket, LLC", + "last_updated": "2016-06-07T13:53:12Z", + "lat": "-84.3846", + "long": "33.8379", + "postal_code": "30305", + "region": "Georgia", + "region_code": "GA", + "timezone": "America/New_York", + "result": "success" +} +``` + + + +## Get Topology Links +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getLinks.js "Source") + +`rippled`サーバー間のピアツーピア接続に関する情報を取得します。(これは[Get Topologyメソッド](#get-topology)で返されるデータのサブセットです。)_(新規: [v2.2.0][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/topology/links +``` + + + +[試してみる>](data-api-v2-tool.html#get-topology-links) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------|:-----------------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | 過去のクエリーの日時。デフォルトは、使用可能な最新データです。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:--------------------------|:--------------------------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `date` | 文字列 - [タイムスタンプ][] | このデータが測定された時点。 | +| `count` | 整数 | 返されたリンクの数。 | +| `links` | [リンクオブジェクト][]の配列 | `rippled`サーバー間のリンク。 | + +#### 例 + +要求: + +``` +GET /v2/network/topology/links +``` + +応答: + +``` +200 OK +{ + result: "success", + date: "2016-03-21T16:38:52Z", + count: 1632, + links: [ + { + source: "n94Extku8HiQVY8fcgxeot4bY7JqK2pNYfmdnhgf6UbcmgucHFY8", + target: "n9JccBLfrDJBLBF2X5N7bUW8251riCwSf9e3VQ3P5fK4gYr5LBu4" + }, + ... + ] +} +``` + + + +## Get Validator +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidators.js "Source") + +[コンセンサスネットワーク](consensus.html)内の1つのバリデータに関する詳細を取得します。_(更新: [v2.4.0][])_ + + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/validators/{pubkey} +``` + + + +[試してみる>](data-api-v2-tool.html#get-validator) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:---------|:--------------------------------|:----------------------| +| `pubkey` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:-------|:---------------------------------------------------------| +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------------------|:--------------------------------|:-----------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | このバリデータのバリデータ公開鍵。 | +| `domain` | 文字列 | (省略される場合があります)このバリデータに関連付けられているDNSドメイン。 | +| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | +| `unl` | ブール値 | Trueの場合、バリデータはレジャーチェーンの推奨UNLの一部です。 | +| `current_index` | 数値 | 最新の検証済みレジャーのレジャーインデックス。 | +| `partial` | ブール値 | Trueの場合、最新の検証は部分的な検証です。 | +| `agreement_1h` | 合意オブジェクト | 直近1時間の合意の状況を含むオブジェクト。 | +| `agreement_24h` | 合意オブジェクト | 直近24時間の合意の状況を含むオブジェクト。 | + +#### 合意オブジェクト + +| フィールド | 値 | 説明 | +|:------------------------|:--------------------------------|:-----------------| +| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | +| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | +| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | +| `incomplete` | ブール値 | Trueの場合は、当該期間全体のデータはカバーされていません。 | + +#### 例 + +要求: + +``` +GET /v2/network/validators/nHBidG3pZK11zQD6kpNDoAhDxH6WLGui6ZxSbUx7LSqLHsgzMPec +``` + +応答: + +``` +200 OK +{ + "validation_public_key": "nHBidG3pZK11zQD6kpNDoAhDxH6WLGui6ZxSbUx7LSqLHsgzMPec", + "domain": "bitso.com", + "chain": "main", + "current_index": 42279525, + "agreement_1h": { + "missed": 0, + "total": 981, + "score": "1.0000", + "incomplete": false + }, + "agreement_24h": { + "missed": 0, + "total": 23519, + "score": "1.0000", + "incomplete": false + }, + "partial": false, + "unl": true, + "result": "success" +} +``` + + + +## Get Validators +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidators.js "Source") + +直近24時間にアクティブであった既知のバリデータのリストを取得します。_(更新: [v2.4.0][])_ + + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/validators +``` + + + +[試してみる>](data-api-v2-tool.html#get-validators) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:-------|:---------------------------------------------------------| +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------------------|:--------------------------------|:-----------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `count` | 整数 | 返されたバリデータの数。 | +| `validators` | [バリデータオブジェクト][]の配列 | 直近24時間にアクティブであったバリデータのリスト。 | + +#### バリデータオブジェクト +[バリデータオブジェクト]: #バリデータオブジェクト + +| フィールド | 値 | 説明 | +|:------------------------|:--------------------------------|:-----------------| +| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | このバリデータのバリデータ公開鍵。 | +| `domain` | 文字列 | (省略される場合があります)このバリデータに関連付けられているDNSドメイン。 | +| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | +| `unl` | ブール値 | Trueの場合、バリデータはレジャーチェーンの推奨UNLの一部です。 | +| `current_index` | 数値 | 最新の検証済みレジャーのレジャーインデックス。 | +| `partial` | ブール値 | Trueの場合、最新の検証は部分的な検証です。 | +| `agreement_1h` | 合意オブジェクト | 直近1時間の合意の状況を含むオブジェクト。 | +| `agreement_24h` | 合意オブジェクト | 直近24時間の合意の状況を含むオブジェクト。 | + +#### 合意オブジェクト + +| フィールド | 値 | 説明 | +|:------------------------|:--------------------------------|:-----------------| +| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | +| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | +| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | +| `incomplete` | ブール値 | Trueの場合は、当該期間全体のデータはカバーされていません。 | + +#### 例 + +要求: + +``` +GET /v2/network/validators/ +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 141, + "validators": [ + { + "validation_public_key": "nHBidG3pZK11zQD6kpNDoAhDxH6WLGui6ZxSbUx7LSqLHsgzMPec", + "domain: "bitso.com", + "chain": "main", + "current_index": 42281151, + "agreement_1h": { + "missed": 0, + "total": 1029, + "score": "1.0000", + "incomplete": false + }, + "agreement_24h": { + "missed": 0, + "total": 23585, + "score": "1.0000", + "incomplete": false + }, + "partial": false, + "unl": true + }, + { + "validation_public_key": "nHUStq4qu3NXaL6T42wbtpR8mare8gWMVYrUzek227c6QeUn6QGN", + "domain": "blockchain.korea.ac.kr", + "chain": "main", + "current_index": 42860792, + "agreement_1h": { + "missed": 0, + "total": 995, + "score": "1.0000", + "incomplete": false + }, + "agreement_24h": { + "missed": 0, + "total": 23478, + "score": "1.0000", + "incomplete": false + }, + "partial": false, + "unl": true + }, + + ... + ] +} +``` + + + +## Get Validator Manifests +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getManifests.js "Source") + +指定されたバリデータにより署名されたマニフェストを取得します。(マニフェストは _サブキー認証_ とも呼ばれ、バリデータが提案と検証の署名に使用する一時的なキーを指します。)_(新規: [v2.3.7][])_ + +**注記:** Data APIは、すべてのマニフェストを網羅する包括的な記録を持っていません。応答には、Data APIに記録されているデータのみが含まれています。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/validators/{pubkey}/manifests +``` + + + +[試してみる>](data-api-v2-tool.html#get-validator-manifests) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:--------------------------------|:----------------------| +| `pubkey` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------|:------------------------------|:-------------------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `count` | 整数 | 返されたマニフェストの数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `manifests` | [マニフェストオブジェクト][]の配列 | 要求されたマニフェスト。 | + +#### マニフェストオブジェクト +[マニフェストオブジェクト]: #マニフェストオブジェクト + +各マニフェストオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:-----------------------|:--------------------------------|:------------------| +| `count` | 数値 | Data APIがこのマニフェストを参照した回数。この数値が小さいほど、マニフェストが新しいものであることを意味します。 | +| `ephemeral_public_key` | 文字列 - Base-58 [公開鍵][] | このマニフェストでエンコードされているこのバリデータの一時公開鍵。 | +| `first_datetime` | 文字列 - [タイムスタンプ][] | Data APIがこのマニフェストを最初に参照した時刻。 | +| `last_datetime` | 文字列 - [タイムスタンプ][] | Data APIがこのマニフェストを最後に参照した時刻。 | +| `master_public_key` | 文字列 - Base-58 [公開鍵][] | このバリデータを識別するマスター公開鍵。 | +| `master_signature` | 文字列 - 16進数 | このマニフェストを承認するバリデータのマスターキーの署名。 | +| `sequence` | 数値 | このマニフェストのシーケンス番号。大きなシーケンス番号のマニフェストは古いマニフェストを置き換え、一時キーをローテーションします。 | +| `signature` | 文字列 - 16進数 | このマニフェストにより承認された一時キーによる署名。 | + +#### 例 + +要求: + +``` +GET /v2/network/validator/nHDEmQKb2nbcewdQ1fqCTGcPTcePhJ2Rh6MRftsCaf6UNRQLv7pB/manifests +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 2, + "manifests": [ + { + "count": 1, + "ephemeral_public_key": "nHUvPMeNsrwdJd7d65eaYGkKx6bPEcxJGudjVDqwCybtEfrSUE8w", + "first_datetime": "2018-09-06T20:20:08.353Z", + "last_datetime": "2018-09-06T20:20:08.353Z", + "master_public_key": "nHDEmQKb2nbcewdQ1fqCTGcPTcePhJ2Rh6MRftsCaf6UNRQLv7pB", + "master_signature": + "D8E78AD2C10ADA5A91D673C2EA66045926D3ED3D4C77DE4350AAA076379F69B8D0EC492A626EA9228964F694EED9EC63394D051001BA432EC57F2B6031204806", + "sequence": "1", + "signature": + "C794C3D1159932FF8EE7360074E7D17CB59F6646B227EF35D439892C00832648C46FD1958714E153AF4BD0540A7B27011B7F58D357B68B87DCBF5CA81874480C" + }, + { + "count": 1, + "ephemeral_public_key": "n9M7mktkbZCnKWa41LFkZsfXemBGdYsFT6fqJBXa4xupV8X8px7W", + "first_datetime": "2018-09-06T20:20:08.357Z", + "last_datetime": "2018-09-06T20:20:08.357Z", + "master_public_key": "nHDEmQKb2nbcewdQ1fqCTGcPTcePhJ2Rh6MRftsCaf6UNRQLv7pB", + "master_signature": + "F7ECCB90F84ED3FC5E0DE1A6B0B7E835A8D2A94C8E985A74932DE30CD2EDCB46936FD14C39A5AA1BB3583CF888C869167979FEE068C6C34B9B63AB922850090E", + "sequence": "2", + "signature": + "3044022055ED7EFF1245DE21D3C28C57D19301291F0D617CA3A6D3D4CFDF8692D9E0E68502200276215BA986BA61834E0AC71E8590706C851B8F55F0B80A44EECE868F71415F" + } + ] +} +``` + + +## Get Single Validator Reports +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidatorReports.js "Source") + +24時間間隔で1つのバリデータの検証投票の状況を取得します。_(更新: [v2.4.0][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/validators/{pubkey}/reports +``` + + + +[試してみる>](data-api-v2-tool.html#get-single-validator-reports) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:---------|:-------|:----------------------| +| `pubkey` | 文字列 | バリデータの公開鍵。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------|:-----------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 過去のクエリーの開始日時。デフォルトでは、開始日は現在の日付の200日前です。 | +| `end` | 文字列 - [タイムスタンプ][] | 過去のクエリーの終了日時。デフォルトでは、使用可能な最新データで終了します。 | +| `descending` | ブール値 | 結果を逆の順序で返します。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------------------------|:-------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `count` | 整数 | 返されたバリデータの日次レポートの数。 | +| `reports` | [シングルバリデータレポートオブジェクト][]の配列。 | 当該日の各バリデータのパフォーマンスに関する日次レポート。 | + +##### シングルバリデータレポートオブジェクト +[シングルバリデータレポートオブジェクト]: #シングルバリデータレポートオブジェクト + +各シングルバリデータレポートオブジェクトは、特定日のバリデータのパフォーマンスを表し、以下のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:---------------------|:--------------------------------|:-----------------------------| +| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | +| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトが表す日付の開始時刻。 | +| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | +| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | +| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | +| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | +| `incomplete` | ブール値 | Trueの場合は、当該期間全体のデータはカバーされていません。 | + +#### 例 + +要求: + +``` +GET /v2/network/validators/n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7/reports +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 198, + "reports": [ + { + "date": "2015-11-20T00:00:00Z", + "total_ledgers": 19601, + "main_net_agreement": "1.0", + "main_net_ledgers": 19601, + "alt_net_agreement": "0.0", + "alt_net_ledgers": 0, + "other_ledgers": 0 + }, + { + "date": "2015-11-21T00:00:00Z", + "total_ledgers": 19876, + "main_net_agreement": "1.0", + "main_net_ledgers": 19876, + "alt_net_agreement": "0.0", + "alt_net_ledgers": 0, + "other_ledgers": 0 + }, + + ... + ] +} +``` + + +## Get Daily Validator Reports +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getValidatorReports.js "Source") + +24時間ですべての既知のバリデータの検証投票の状況とバリデータ情報を取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/validator_reports +``` + + + +[試してみる>](data-api-v2-tool.html#get-daily-validator-reports) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------|:-----------------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | 照会する日時。デフォルトでは、利用可能な最新のデータが使用されます。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:----------|:----------------------------------------|:-----------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `count` | 整数 | 返されたレポートの数。 | +| `reports` | [日次バリデータレポートオブジェクト][]の配列。 | この期間中にアクティブであった各バリデータのバリデータパフォーマンスの日次サマリー。 | + +#### 日次バリデータレポートオブジェクト +[日次バリデータレポートオブジェクト]: #日次バリデータレポートオブジェクト + +`reports`配列の各メンバーは、当該日のバリデータのパフォーマンスを表し、以下のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:---------------------|:--------------------------------|:-----------------------------| +| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | バリデータの公開鍵。 | +| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトが表す日付の開始時刻。 | +| `chain` | 文字列 | このバリデータが現在フォローしているレジャーハッシュチェーン。値が`main`の場合はメインネットワークを示し、`altnet`の場合はXRP Test Networkを示します。その他のフォークの名前は`chain.{NUMBER}`で、`{NUMBER}`は各フォークの一意の番号です。 | +| `score` | 文字列 | フォロー対象のレジャーチェーンとの合意のスコア。 | +| `missed` | 整数 | 当該期間内に検証されなかったレジャーの数。 | +| `total` | 整数 | 当該期間内に検証されたレジャーの数。 | +| `incomplete` | ブール値 - 省略可 | Trueの場合は、当該期間全体のデータはカバーされていません。 | + +#### 例 + +要求: + +``` +GET /v2/network/validator_reports +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 27, + "reports": [ + { + "validation_public_key": "n9J2N3FfiUFC4rBX5UBob8JzgDGsYqUou1cwKdsaymS44mZDfnYe", + "date": "2018-10-15T00:00:00Z", + "chain": "main", + "score": "0.6909", + "total": "16127", + "missed": "7216" + } + ] +} +``` + + +## Get rippled Versions +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/network/getVersions.js "Source") + +公式Ripple Yumリポジトリから入手可能な`rippled`の最新バージョンを報告します。_(新規: [v2.3.0][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/network/rippled_versions +``` + + + +[試してみる>](data-api-v2-tool.html#get-rippled-versions) + + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-------------------------|:---------------------------------------| +| `result` | 文字列 | 値が`success`の場合、本文は成功した場合の応答を表しています。 | +| `count` | 整数 | 返された行の数。 | +| `rows` | バージョンオブジェクトの配列 | 各リポジトリの最新`rippled`バージョンの説明。 | + +各バージョンオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:----------|:-----------------------|:----------------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | この`rippled`バージョンのリリース日。 | +| `repo` | 文字列 | この`rippled`が入手可能なYumリポジトリ。`stable`リポジトリに最新の本番環境バージョンがあります。その他のバージョンは開発テスト用です。 | +| `version` | 文字列 | この`rippled`バージョンを示すバージョン文字列。 | + +#### 例 + +要求: + +``` +GET /v2/network/rippled_versions +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 3, + "rows": [ + { + "date": "2016-06-24T00:00:00Z", + "repo": "nightly", + "version": "0.32.0-rc2" + }, + { + "date": "2016-06-24T00:00:00Z", + "repo": "stable", + "version": "0.32.0" + }, + { + "date": "2016-06-24T00:00:00Z", + "repo": "unstable", + "version": "0.32.0-rc1" + } + ] +} +``` + + + +## Get All Gateways +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/gateways.js "Source") + +[既知のゲートウェイ](https://github.com/ripple/rippled-historical-database/blob/v2.0.4/api/gateways/gateways.json)に関する情報を取得します。_(新規: [v2.0.4][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/gateways/ +``` + + + +[試してみる>](data-api-v2-tool.html#get-all-gateways) + +このメソッドはクエリーパラメーターをとりません。 + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**とJSON本文が返されます。 + +上位JSONオブジェクトの各フィールドは[通貨コード][]です。各フィールドの内容は、当該通貨を発行するゲートウェイを表すオブジェクトの配列です。各オブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:-----------|:---------------------|:-----------------------------------------| +| `name` | 文字列 | 人間が読み取れる形式のゲートウェイの名前。 | +| `account` | 文字列 - [アドレス][] | この通貨の[発行アドレス](issuing-and-operational-addresses.html)。 | +| `featured` | ブール値 | このゲートウェイが通貨の「主要」イシュアーとして見なされるかどうか。Rippleは、責任あるビジネスプラクティスや取引量などの評価基準に基づいて主要とするゲートウェイを決定します。 | +| `label` | 文字列 | (省略される場合があります)[通貨コード][]が40文字の16進値である場合にのみ出力されます。これは、このゲートウェイが発行した通貨の人間が読める形式の別名です。 | +| `assets` | 文字列の配列 | このゲートウェイに対して利用可能なグラフィックスファイル名(存在する場合)。(ほとんどの場合、XRP Chartsで使用されるロゴのグラフィックスファイル名となります。) | + +#### 例 + +要求: + +``` +GET /v2/gateways/ +``` + +応答: + +``` +200 OK +{ + "AUD": [ + { + "name": "Bitstamp", + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "featured": false, + "assets": [ + "logo.grayscale.svg", + "logo.svg" + ] + }, + { + "name": "Coinex", + "account": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", + "featured": false, + "assets": [] + } + ], + +...(additional results trimmed) ... + + "0158415500000000C1F76FF6ECB0BAC600000000": [ + { + "name": "GBI", + "account": "rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67", + "featured": false, + "label": "XAU (-0.5pa)", + "assets": [] + } + ], + "KRW": [ + { + "name": "EXRP", + "account": "rPxU6acYni7FcXzPCMeaPSwKcuS2GTtNVN", + "featured": true, + "assets": [] + }, + { + "name": "Pax Moneta", + "account": "rUkMKjQitpgAM5WTGk79xpjT38DEJY283d", + "featured": false, + "assets": [] + } + ] +} +``` + + + +## Get Gateway +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/gateways.js "Source") + + +[Data APIの既知のゲートウェイのリスト](https://github.com/ripple/rippled-historical-database/blob/v2.0.4/api/gateways/gateways.json)から、特定のゲートウェイに関する情報を取得します。_(新規: [v2.0.4][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/gateways/{gateway} +``` + + + +[試してみる>](data-api-v2-tool.html#get-gateway) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `gateway` | 文字列 | ゲートウェイの発行[アドレス][]、[URLエンコード名](https://en.wikipedia.org/wiki/Percent-encoding)、または正規化された名前です。 | + +このメソッドはクエリーパラメーターをとりません。 + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `name` | 文字列 | 人間が読み取れる形式のゲートウェイの名前。 | +| `start_date` | 文字列 - [タイムスタンプ][] | レジャーに記録されているこのゲートウェイの通貨の初回取引のおおよその日付。 | +| `accounts` | 配列 | このゲートウェイが使用する[発行アドレス](issuing-and-operational-addresses.html)のリスト。(ゲートウェイは、異なる通貨に異なる発行アカウントを使用することがあります。) | +| `hotwallets` | [アドレス][]の配列 | このゲートウェイの[運用アドレス](issuing-and-operational-addresses.html)。 | +| `domain` | 文字列 | このゲートウェイのビジネス用ドメイン名。 | +| `normalized` | 文字列 | URLに組み込むことができる`name`フィールドの正規化バージョン。 | +| `assets` | 文字列の配列 | このゲートウェイに対して利用可能なグラフィックスファイル名(存在する場合)。(ほとんどの場合、XRP Chartsで使用されるロゴのグラフィックスファイル名となります。) | + +`accounts`フィールド配列の各オブジェクトには以下のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:-------------|:-------|:-----------------------------------------------------| +| `address` | 文字列 | このゲートウェイが使用する[発行アドレス](issuing-and-operational-addresses.html)。 | +| `currencies` | オブジェクト | このオブジェクトの各フィールドは、このアドレスが発行する通貨に対応した[通貨コード][]です。各値は、その通貨が主要通貨であるかどうかを示す`featured` ブール値を含むオブジェクトです。Rippleは、責任あるビジネスプラクティスや取引量などの評価基準に基づいて主要とする通貨とゲートウェイを決定します。 | + +#### 例 + +要求: + +``` +GET /v2/gateways/Gatehub +``` + +応答: + +``` +200 OK +{ + "name": "Gatehub", + "start_date": "2015-02-15T00:00:00Z", + "accounts": [ + { + "address": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", + "currencies": { + "EUR": { + "featured": true + }, + "USD": { + "featured": true + } + } + } + ], + "hotwallets": [ + "rhotcWYdfn6qxhVMbPKGDF3XCKqwXar5J4" + ], + "domain": "gatehub.net", + "normalized": "gatehub", + "assets": [ + "logo.grayscale.svg", + "logo.svg" + ] +} +``` + + + + +## Get Currency Image + +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/gateways.js#L199 "Source") + +各種通貨のベクターアイコンを取得します。_(新規: [v2.0.4][])_ + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/currencies/{currencyimage} +``` + + + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------------|:-------|:--------------------------------------------------| +| `currencyimage` | 文字列 | 通貨のイメージファイル(`xrp.svg`など)。利用可能なイメージのリストについては[ソースコード](https://github.com/ripple/rippled-historical-database/tree/develop/api/gateways/currencyAssets)を参照してください。 | + +#### 応答フォーマット +成功した場合の応答にはHTTPコード **200 OK**が含まれており、**Content-Type**ヘッダーは`image/svg+xml`です。これは、コンテンツが[SVGフォーマット](https://en.wikipedia.org/wiki/Scalable_Vector_Graphics)のファイルを表すXMLであることを示しています。 + +#### 例 + +要求: + +``` +GET /v2/currencies/mxn.svg +``` + +応答 + +``` +200 OK +Content-Type: image/svg+xml + + + + + + + + + +``` + + + +## Get Accounts +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accounts.js "Source") + +XRP Ledgerでの新しいアカウントの作成に関する情報を取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/accounts +``` + + + +[試してみる>](data-api-v2-tool.html#get-accounts) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1,000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `parent` | 文字列 | 指定された親アカウントの子に結果を絞り込みます。`interval`パラメーターとともに指定することはできません。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +`interval`および`reduce`パラメーターは[v2.3.5][]で除去されました。 + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:-----------|:--------|:------------------------------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返されたアカウントの数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `accounts` | 配列 |[アカウント作成オブジェクト](#アカウント作成オブジェクト)の配列。 | + +#### 例 + +要求: + +``` +GET /v1/accounts?parent=rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 3, + "accounts": [ + { + "balance": "20.0", + "account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "executed_time": "2015-02-09T23:31:40+00:00", + "ledger_index": 11620700, + "parent": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "tx_hash": "1D381C0FCA00E8C34A6D4D3A91DAC9F3697B4E66BC49ED3D9B2D6F57D7F15E2E" + }, + { + "balance": "30", + "account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "executed_time": "2015-06-16T21:15:40+00:00", + "ledger_index": 14090928, + "parent": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "tx_hash": "60B614622FC67DFCA8D796D7F6AF0B7AEC5E59BB268EA032F810395407DDF8D5" + }, + { + "balance": "50", + "account": "rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "executed_time": "2015-09-23T23:05:20+00:00", + "ledger_index": 16061430, + "parent": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "tx_hash": "FAE331A6D5CB83BCE832E7EBEDBD807EDEFFAF39AB241683EE81A0326A1A6748" + } + ] +} +``` + + +## Get Account +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/getAccount.js "Source") + +特定のrippleアカウントの作成に関する情報を取得します。 + +#### 要求フォーマット + + + + +*REST* + +``` +GET /v2/accounts/{address} +``` + + + +[試してみる>](data-api-v2-tool.html#get-account) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:-----------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:----------|:-------------------------------------------------------|:--------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `account` | オブジェクト - [アカウント作成](#アカウント作成オブジェクト) | 要求されたアカウント。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn +``` + +応答: + +``` +200 OK +{ + "result": "success", + "account": { + "address": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "parent": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "initial_balance": "100.0", + "inception": "2014-05-29T17:05:20+00:00", + "ledger_index": 6902264, + "tx_hash": "074415C5DC6DB0029E815EA6FC2629FBC29A2C9D479F5D040AFF94ED58ECC820" + } +} +``` + + + +## Get Account Balances +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountBalances.js "Source") + +特定のXRP Ledgerアカウントが保有または支払い義務のあるすべての残高を取得します。 + + + +*REST* + +``` +GET /v2/accounts/{address}/balances +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-balances) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:-----------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------------|:--------|:--------------------------------------------------| +| `ledger_index` | 整数 | 過去の残高のレジャーのインデックス。 | +| `ledger_hash` | 文字列 | 過去の残高のレジャーハッシュ。 | +| `date` | 文字列 | 過去の残高の日付(UTC)。 | +| `currency` | 文字列 | 指定された通貨に結果を制限します。 | +| `counterparty` | 文字列 | 指定された取引相手/イシュアーに結果を制限します。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。400よりも大きい値は指定できませんが、値`all` を使用すればすべての結果を返せます。(注意: 非常に大量の結果を取得する際にlimit=allを指定すると、要求がタイムアウトになる可能性があります。大規模なイシュアーの場合は、結果が数万件にのぼることがあります。) | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------------|:-----------------------------|:-----------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `ledger_index` | 整数 | 残高クエリーのレジャーインデックス。 | +| `close_time` | 文字列 | レジャーの閉鎖時刻。 | +| `limit` | 文字列 | 制限を超えた場合に返された結果の数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `balances` | [残高オブジェクト][]の配列。 | 要求された残高。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/balances?currency=USD&date=2015-01-01T00:00:00Z&limit=3 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "ledger_index": 10852618, + "close_time": "2015-01-01T00:00:00Z", + "limit": 3, + "balances": [ + { + "currency": "USD", + "counterparty": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "value": "-11.0301" + }, + { + "currency": "USD", + "counterparty": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "0.0001" + }, + { + "currency": "USD", + "counterparty": "rweYz56rfmQ98cAdRaeTxQS9wVMGnrdsFp", + "value": "0" + } + ] +} +``` + + +## Get Account Orders +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountOrders.js "Source") + +オーダーブックで特定のアカウントが発注したオーダーを取得します。すでに処理されたオーダーは返されません。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/account/{address}/orders +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-orders) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:---------------------|:-----------------------------| +| `address` | 文字列 - [アドレス][] | 照会するXRP Ledgerアドレス。 | + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------------|:-----------------------|:-----------------------------------| +| `ledger_index` | 整数 | このレジャーの時点でのオーダーを取得します。`ledger_hash`または`date`と同時に指定することはできません。 | +| `ledger_hash` | 文字列 | このレジャーの時点でのオーダーを取得します。`ledger_index`または`date`と同時に指定することはできません。 | +| `date` | 文字列 - [タイムスタンプ][] | この時刻でのオーダーを取得します。`ledger_index`または`ledger_hash`と同時に指定することはできません。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。400を超える値は指定できません。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + +`ledger_index`、`ledger_hash`、`date`のいずれも指定されていない場合、APIは利用可能な最新データを使用します。 + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------------|:-----------------------|:-----------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `ledger_index` | 整数 | 使用するレジャーバージョンの`ledger_index`。 | +| `close_time` | 文字列 | 使用するレジャーバージョンの閉鎖時刻。 | +| `limit` | 文字列 | 要求に指定されていた`limit`。 | +| `orders` | オーダーオブジェクトの配列 | 要求されたオーダー。 | + +各オーダーオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:-------------------------------|:---------------------|:---------------------| +| `specification` | オブジェクト | このオーダーの現在の状態の詳細。 | +| `specification.direction` | 文字列 | `buy`または`sell`。 | +| `specification.quantity` | [残高オブジェクト][] | このオーダーで(方向に応じて)売却または購入するベース通貨の最大額。オーダーが部分的に約定するとこの値が減少します。 | +| `specification.totalPrice` | [残高オブジェクト][] | ベース通貨の購入または売却のためにオーダーで支出または獲得できるクオート通貨の最大額。オーダーが部分的に約定するとこの値が減少します。 | +| `properties` | オブジェクト | オーダーの発注方法の詳細。 | +| `properties.maker` | 文字列 - [アドレス][] | オーダーを発注したXRP Ledgerアカウント。 | +| `properties.sequence` | 数値 | このオーダーを発注したトランザクションのシーケンス番号。 | +| `properties.makerExchangeRate` | [文字列 - 数値][] | オーダーを送信したアカウントの側から見た為替レート。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rK5j9n8baXfL4gzUoZsfxBvvsv97P5swaV/orders?limit=2&date=2015-11-11T00:00:00Z +``` + +応答: + +``` +200 OK +{ + "result": "success", + "ledger_index": 17007855, + "close_time": "2015-11-11T00:00:00Z", + "limit": 2, + "orders": [ + { + "specification": { + "direction": "buy", + "quantity": { + "currency": "JPY", + "value": "56798.00687665813", + "counterparty": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN" + }, + "totalPrice": { + "currency": "USD", + "value": "433.792841227449", + "counterparty": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } + }, + "properties": { + "maker": "rK5j9n8baXfL4gzUoZsfxBvvsv97P5swaV", + "sequence": 7418286, + "makerExchangeRate": "130.9334813270407" + } + }, + { + "specification": { + "direction": "buy", + "quantity": { + "currency": "JPY", + "value": "11557.02705273459", + "counterparty": "r94s8px6kSw1uZ1MV98dhSRTvc6VMPoPcN" + }, + "totalPrice": { + "currency": "USD", + "value": "87.570156003591", + "counterparty": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" + } + }, + "properties": { + "maker": "rK5j9n8baXfL4gzUoZsfxBvvsv97P5swaV", + "sequence": 7418322, + "makerExchangeRate": "131.9744942815983" + } + } + ] +} +``` + + + + +## Get Account Transaction History +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountTransactions.js "Source") + +特定のアカウントに影響を及ぼしたトランザクションの履歴を取得します。これには、そのアカウントから送信されたすべてのトランザクション、アカウントが受領したペイメント、アカウントを通じてRipplingされたペイメントが含まれます。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/accounts/{address}/transactions +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-transaction-history) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:---------------------|:-----------------------------| +| `address` | 文字列 - [アドレス][] | 照会するXRP Ledgerアドレス。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------------|:-----------------------|:-----------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、利用可能な最も古い日付です。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは現在の日付です。 | +| `min_sequence` | 文字列 | 照会対象の最小シーケンス番号。 | +| `max_sequence` | 文字列 | 照会対象の最大シーケンス番号。 | +| `type` | 文字列 | 指定された[トランザクションタイプ](transaction-types.html)に結果を制限します。 | +| `result` | 文字列 | 指定された[トランザクションの結果](transaction-results.html)に結果を制限します。 | +| `binary` | ブール値 | 結果をバイナリフォーマットで返します。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは20です。1,000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | + +**注記:** このメソッドはCSVフォーマットを返すことができません。生XRP LdgerトランザクションではJSONの結果だけがサポートされています。 + + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------------|:-----------------------------------------------------|:-----| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | `transactions`フィールドに含まれているオブジェクトの数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `transactions` | [トランザクションオブジェクト](#トランザクションオブジェクト)の配列。 | 要求に一致するすべてのトランザクション。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/transactions?type=Payment&result=tesSUCCESS&limit=1 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 1, + "marker": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn|20140602224750|000006979192|00001", + "transactions": [ + { + "hash": "074415C5DC6DB0029E815EA6FC2629FBC29A2C9D479F5D040AFF94ED58ECC820", + "date": "2014-05-29T17:05:20+00:00", + "ledger_index": 6902264, + "tx": { + "TransactionType": "Payment", + "Flags": 0, + "Sequence": 1, + "LastLedgerSequence": 6902266, + "Amount": "100000000", + "Fee": "12", + "SigningPubKey": "032ECFCC409F02057D8556988B89E17D48ECFC8373965036C6BA294AA2B7972971", + "TxnSignature": "30450221008D8E251DA5EA17A29CC9192717860F3B4047E74DF005127A65D9140CAE870C0902201C8E4548D2D3BA11B3E13CE8A167EBC076920E2B1C38547275CAA75FEC436EB9", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + }, + "meta": { + "TransactionIndex": 1, + "AffectedNodes": [ + { + "CreatedNode": { + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8", + "NewFields": { + "Sequence": 1, + "Balance": "100000000", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + } + }, + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "PreviousTxnLgrSeq": 6486567, + "PreviousTxnID": "FF9BFF3C200B475CA7EE54F9A98EAB7E92BBDBD2DBE95AC854405D8A85C9D535", + "LedgerIndex": "43EA78783A089B137D5E87610DF3BD4129F989EDD02EFAF6C265924D3A0EF8CE", + "PreviousFields": { + "Sequence": 1, + "Balance": "1000000000" + }, + "FinalFields": { + "Flags": 0, + "Sequence": 2, + "OwnerCount": 0, + "Balance": "899999988", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" + } + } + } + ], + "TransactionResult": "tesSUCCESS" + } + } + ] +} +``` + + + + +## Get Transaction By Account And Sequence +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountTxSeq.js "Source") + +指定されたアカウントから送信された特定のトランザクションを取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/accounts/{address}/transactions/{sequence} +``` + + + +[試してみる>](data-api-v2-tool.html#get-transaction-by-account-and-sequence) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:-----------|:--------|:-----------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | +| `sequence` | 整数 | トランザクションのシーケンス番号。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `binary` | ブール値 | `true`の場合、トランザクションをバイナリフォーマットで返します。デフォルトは`false`です。 | + + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:--------------|:-------------------------------------------|:----------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `transaction` | [トランザクションオブジェクト](#トランザクションオブジェクト) | 要求されたトランザクション。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/transactions/10?binary=true +``` + +応答: + +``` +200 OK +{ + "result": "success", + "transaction": { + "hash": "4BFFBB86C12659B6C5BB88F0EB859356DE3433EBACBFD9F50F6E70B2C05CCFE0", + "date": "2014-09-15T19:59:10+00:00", + "ledger_index": 8889812, + "tx": "1200052200000000240000000A68400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100AA4AF08726FCF0F28AA4A841C45F975C3BF1545648F6907DCB33F6E3DD7E85D6022037365B80AB1972BF8A4280009A0DBCF16A1D562ED0489B155750E48CC939039981144B4E9C06F24296074F7BC48F92A97916C6DC5EA9", + "meta": "201C00000003F8E5110061250087A5C555CBCA96F4C42E0EBC0E75C5AD84B3403FEDF824A7DAFA45ADCA6ECB66AA143C1B5613F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8E6240000000A62400000000DB5852F8814D3484B9ED2556DCE16A3B928B438BA6EE0FF0989E1E72200010000240000000B2D0000000062400000000DB5852572110000000000000000000000070000000300770A6D64756F31332E636F6D81144B4E9C06F24296074F7BC48F92A97916C6DC5EA9E1E1F1031000" + } +} +``` + + + +## Get Account Payments +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountPayments.js "Source") + +指定されたアカウントのペイメントを取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/accounts/{address}/payments +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-payments) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:-----------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:------------------|:---------------------------|:----------------------------| +| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | +| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | +| `type` | 文字列 | ペイメントタイプ - `sent`または`received`。 | +| `currency` | 文字列 - [通貨コード][] | 指定された通貨に結果を絞り込みます。 | +| `issuer` | 文字列 - [アドレス][] | 指定されたイシュアーに結果を絞り込みます。 | +| `source_tag` | 整数 | 指定された送金元タグに結果を絞り込みます。 | +| `destination_tag` | 整数 | 指定された送金先タグに結果を絞り込みます。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1,000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:-----------|:-----------------------------|:---------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | `payments`フィールドに含まれているオブジェクトの数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `payments` | [ペイメントオブジェクト][]の配列 | 要求に一致するすべてのペイメント。最も古いものから順にソートされています。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/payments?currency=USD&limit=1 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 1, + "marker": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn|20140604191650|000007013674|00000", + "payments": [ + { + "amount": "1.0", + "delivered_amount": "1.0", + "destination_balance_changes": [ + { + "counterparty": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "currency": "USD", + "value": "1" + } + ], + "source_balance_changes": [ + { + "counterparty": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "currency": "USD", + "value": "-1" + } + ], + "tx_index": 1, + "currency": "USD", + "destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "executed_time": "2014-06-02T22:47:50Z", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": 6979192, + "source": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "source_currency": "USD", + "tx_hash": "7BF105CFE4EFE78ADB63FE4E03A851440551FE189FD4B51CAAD9279C9F534F0E", + "transaction_cost": "1.0E-5" + } + ] +} +``` + + + + +## Get Account Exchanges +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountExchanges.js "Source") + +指定されたアカウントの取引を経時的に取得します。 + +#### 要求フォーマット + +このメソッドには2種類のバリエーションがあります。 + + + +*REST - すべての取引* + +``` +GET /v2/accounts/{address}/exchanges/ +``` + +*REST - 特定の通貨ペア* + +``` +GET /v2/accounts/{address}/exchanges/{base}/{counter} +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-exchanges-all) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | +| `base` | 文字列 | ペアのベース通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ベース通貨がXRPの場合を除く)。 | +| `counter` | 文字列 | ペアのクオート通貨。[通貨コード][]、`+`、イシュアーの[アドレス][]の順で指定します(ベース通貨がXRPの場合を除く)。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | この時刻以降の結果に絞り込みます。 | +| `end` | 文字列 - [タイムスタンプ][] | この時刻以前の結果に絞り込みます。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------|:------------------------------|:-------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返された取引の数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `exchanges` | [取引オブジェクト][]の配列 | 要求された取引。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw/exchanges/KRW+rUkMKjQitpgAM5WTGk79xpjT38DEJY283d/XRP?start=2015-08-08T00:00:00Z&end=2015-08-31T00:00:00Z&limit=2 + +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 2, + "marker": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw|20150810014200|000015162386|00013|00003", + "exchanges": [ + { + "base_amount": 209.3501241148, + "counter_amount": 20.424402, + "rate": 0.097560973925, + "autobridged_currency": "USD", + "autobridged_issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "base_currency": "KRW", + "base_issuer": "rUkMKjQitpgAM5WTGk79xpjT38DEJY283d", + "buyer": "rnAqwsu2BEbCjacoZmsXrpViqd3miZhHbT", + "counter_currency": "XRP", + "executed_time": "2015-08-08T02:57:40", + "ledger_index": 15122851, + "offer_sequence": "1738", + "provider": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", + "seller": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", + "taker": "rnAqwsu2BEbCjacoZmsXrpViqd3miZhHbT", + "tx_hash": "506D109A609A5E0778276CCBB125A4AA7B78428059F069A2CB4F739B861C0C49", + "tx_type": "OfferCreate" + }, + { + "base_amount": 86355.6498758851, + "counter_amount": 8424.941452, + "rate": 0.097560975618, + "base_currency": "KRW", + "base_issuer": "rUkMKjQitpgAM5WTGk79xpjT38DEJY283d", + "buyer": "r9xQi5YT8jqVM3wZhbiV94ZKKvGHaVeSDj", + "client": "rt1.1-26-gbeb68ab", + "counter_currency": "XRP", + "executed_time": "2015-08-08T07:15:00", + "ledger_index": 15126536, + "offer_sequence": "1738", + "provider": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", + "seller": "rsyDrDi9Emy6vPU78qdxovmNpmj5Qh4NKw", + "taker": "r9xQi5YT8jqVM3wZhbiV94ZKKvGHaVeSDj", + "tx_hash": "C897A595DED16ADF5AD52E6FD9CE5DE65C78A93CCAA62A85248DC3015A78F5C4", + "tx_type": "Payment" + } + ] +} +``` + + + + +## Get Account Balance Changes +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountBalanceChanges.js "Source") + +指定されたアカウントの残高変更を経時的に取得します。 + +#### 要求フォーマット + + + +*REST* + +``` +GET /v2/accounts/{address}/balance_changes/ +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-balance-changes) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:-----------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:---------------|:-----------------------|:-----------------------------------| +| `currency` | 文字列 | 指定された通貨に結果を制限します。 | +| `counterparty` | 文字列 | 指定された取引相手/イシュアーに結果を制限します。 | +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。 | +| `descending` | ブール値 | `true`の場合、結果が逆時系列で返されます。デフォルトは`false`です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`。デフォルトは`json`です。 | + + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:------------|:----------------------------------------|:---------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | 返された残高変更の数。 | +| `marker` | 文字列 | (省略される場合があります)[ページネーション](#ページネーション)マーカー。 | +| `exchanges` | [残高変更記述][]の配列。 | 要求された残高変更。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn/balance_changes?descending=true&limit=3 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 3, + "marker": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn|20160122235211|000018425487|00010|00001", + "balance_changes": [ + { + "amount_change": "-0.012", + "final_balance": "75.169663", + "tx_index": 7, + "change_type": "transaction_cost", + "currency": "XRP", + "executed_time": "2016-01-29T22:57:20Z", + "ledger_index": 18555460, + "tx_hash": "2B44EBE00728D04658E597A85EC4F71D20503B31ABBF556764AD8F7A80BA72F6" + }, + { + "amount_change": "-25.0", + "final_balance": "75.181663", + "node_index": 1, + "tx_index": 4, + "change_type": "payment_source", + "currency": "XRP", + "executed_time": "2016-01-26T08:32:20Z", + "ledger_index": 18489336, + "tx_hash": "E5C6DD25B2DCF534056D98A2EFE3B7CFAE4EBC624854DE3FA436F733A56D8BD9" + }, + { + "amount_change": "-0.01", + "final_balance": "100.181663", + "tx_index": 4, + "change_type": "transaction_cost", + "currency": "XRP", + "executed_time": "2016-01-26T08:32:20Z", + "ledger_index": 18489336, + "tx_hash": "E5C6DD25B2DCF534056D98A2EFE3B7CFAE4EBC624854DE3FA436F733A56D8BD9" + } + ] +} +``` + + + + +## Get Account Reports +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountReports.js "Source") + +アカウントのペイメントアクティビティの日次サマリーを取得します。 + + + +*REST - 日付を省略* + +``` +GET /v2/accounts/{address}/reports/ +``` + +*REST - 日付を指定* + +``` +GET /v2/accounts/{address}/reports/{date} +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-reports-by-day) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | +| `date` | 文字列 | _(省略可)_ 1つのレポートの日付(UTC)。省略すると、`start`および`end`クエリーパラメーターが使用されます。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、現在の日付の開始時刻です。`date`が指定されている場合は無視されます。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは、現在の日付の終了時刻です。`date`が指定されている場合は無視されます。 | +| `accounts` | ブール値 | `true`の場合、すべての`sending_counterparties`および`receiving_counterparties`のアドレスのリストが結果に含まれます。それ以外の場合、送金側取引相手と受取側取引相手の数のみが返されます。デフォルトは`false`です。 | +| `payments` | ブール値 | [ペイメントサマリーオブジェクト][]を各間隔の`payments`フィールドに指定します。このオブジェクトには、当該間隔で発生したペイメントが含まれています。 | +| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:----------|:-----------------------------|:----------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | `reports`フィールドに含まれているレポートの数。 | +| `reports` | [レポートオブジェクト][]の配列 | 指定のアカウントと日付範囲のアカウントアクティビティの日次サマリー。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q/reports?start=2015-08-28T00:00:00&end=2015-08-28T00:00:00&accounts=true&payments=true&descending=true +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 1, + "reports": [ + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "date": "2015-08-28T00:00:00+00:00", + "high_value_received": 89500.74142547617, + "high_value_sent": 0, + "payments": [ + { + "tx_hash": "F2323EE7494384E77ABB18F31981FEE8C31767BBD27515B55FC3BD6792C4E408", + "amount": 2.7, + "currency": "BTC", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": "received" + }, + { + "tx_hash": "FEAD462738EE430E154FF3122D3EE2DD27DDD8BEFBA080A60FE91B78E8865365", + "amount": 3, + "currency": "BTC", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": "received" + }, + { + "tx_hash": "383B1D1EABB646AB2EFBBF9E8967FE279BFE5EF86A3B6BCD5BDA287210053116", + "amount": 0.14, + "currency": "BTC", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": "received" + } + ], + "payments_received": 3, + "payments_sent": 0, + "receiving_counterparties": [], + "sending_counterparties": [ + "rhi4zZdCeFdfTokzek8D7p9bUWmtEFCZAe", + "rP1hkW1LCiVos6FpzU7itmm9Tk29yqvyk5" + ], + "total_value": 174019.58324753598, + "total_value_received": 174019.58324753598, + "total_value_sent": 0 + } + ] +} +``` + + + +## Get Account Transaction Stats +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountStats.js "Source") + +アカウントのトランザクションアクティビティの日次サマリーを取得します。_(新規: [v2.1.0][])_ + + + +*REST* + +``` +GET /v2/accounts/{address}/stats/transactions +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-transaction-stats) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:-----------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、利用可能な最も古い日付です。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは現在の日付です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------------------|:-----------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | `rows`フィールドに含まれているトランザクション統計情報オブジェクトの数。 | +| `rows` | トランザクション統計情報オブジェクトの配列。 | 指定されたアカウントのアカウントアクティビティの日次サマリー。 | + +各トランザクション状況オブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:--------------------|:-----------------------|:------------------------------| +| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトは、当該日付のアクティビティを表します。 | +| `transaction_count` | 整数 | アカウントが当該日付に送信したトランザクションの合計数。 | +| `result` | オブジェクト | 当該日付でこのアカウントが送信したトランザクションで発生した各結果コードの数を示す[トランザクション結果コード](transaction-results.html)のマップ。 | +| `type` | オブジェクト | アカウントが当該日付に送信した各トランザクションタイプの数を示す[トランザクションタイプ](transaction-formats.html)のマップ。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX/stats/transactions?start=2015-01-01&limit=2 +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 2, + "marker": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX|20150116000000", + "rows": [ + { + "date": "2015-01-14T00:00:00Z", + "transaction_count": 44, + "result": { + "tecUNFUNDED_PAYMENT": 1, + "tesSUCCESS": 43 + }, + "type": { + "Payment": 42, + "TrustSet": 2 + } + }, + { + "date": "2015-01-15T00:00:00Z", + "transaction_count": 116, + "result": { + "tesSUCCESS": 116 + }, + "type": { + "Payment": 116 + } + } + ] +} +``` + + + +## Get Account Value Stats +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/accountStats.js "Source") + +アカウントのトランザクションアクティビティの日次サマリーを取得します。_(新規: [v2.1.0][])_ + + + +*REST* + +``` +GET /v2/accounts/{address}/stats/value +``` + + + +[試してみる>](data-api-v2-tool.html#get-account-value-stats) + +このメソッドには以下のURLパラメーターを指定する必要があります。 + +| フィールド | 値 | 説明 | +|:----------|:-------|:-----------------------------| +| `address` | 文字列 | 照会するXRP Ledgerアドレス。 | + + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:-----------------------|:-------------------------------------| +| `start` | 文字列 - [タイムスタンプ][] | 照会範囲の開始時刻。デフォルトは、最新間隔の開始時刻です。 | +| `end` | 文字列 - [タイムスタンプ][] | 照会範囲の終了時刻。デフォルトは、最新間隔の終了時刻です。 | +| `limit` | 整数 | ページあたりの最大結果件数。デフォルトは200です。1000を超える値は指定できません。 | +| `marker` | 文字列 | 前に返された応答の[ページネーション](#ページネーション)キー。 | +| `descending` | ブール値 | `true`の場合は、結果が最新のものから順にソートされます。デフォルトでは、結果が最も古いものから順にソートされます。 | +| `format` | 文字列 | 返される結果のフォーマットは`csv`または`json`です。デフォルトは`json`です。 | + + +#### 応答フォーマット +成功した場合の応答では、HTTPコード**200 OK**と以下の内容のJSON本文が返されます。 + +| フィールド | 値 | 説明 | +|:---------|:-----------------------------|:-----------------------------------| +| `result` | 文字列 | 値が`success`の場合は、成功した場合の応答であることを示します。 | +| `count` | 整数 | `rows`フィールドに含まれている価値統計情報オブジェクトの数。 | +| `rows` | 価値統計情報オブジェクトの配列。 | 指定されたアカウントのアカウント価値の日次サマリー。 | + +各価値統計情報オブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:-----------------------|:-----------------------|:---------------------------| +| `date` | 文字列 - [タイムスタンプ][] | このオブジェクトは、当該日付のアクティビティを表します。 | +| `value` | [文字列 - 数値][] | このアカウントが保有しているすべての通貨の合計額(XRPに正規化)。 | +| `balance_change_count` | 数値 | 当該日付でアカウントの残高が変更された回数。 | + +#### 例 + +要求: + +``` +GET /v2/accounts/rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX/stats/value?limit=2&descending=true +``` + +応答: + +``` +200 OK +{ + "result": "success", + "count": 2, + "marker": "rGFuMiw48HdbnrUbkRYuitXTmfrDBNTCnX|20160412000000", + "rows": [ + { + "date": "2016-04-14T00:00:00Z", + "account_value": "7.666658705139822E7", + "balance_change_count": 58 + }, + { + "date": "2016-04-13T00:00:00Z", + "account_value": "1.0022208004947332E8", + "balance_change_count": 184 + } + ] +} +``` + + + + +## Health Check - API +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") + +APIサービスの健全性をチェックします。 + + + +*REST* + +``` +GET /v2/health/api +``` + + + +[試してみる>](data-api-v2-tool.html#api-health-check) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:------------|:--------|:-----------------------------------------------------| +| `threshold` | 整数 | データベースがこの期間(秒単位)内に応答しない場合、APIが正常ではないと見なされます。デフォルトは5秒です。 | +| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 + +正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 + +| 値 | 意味 | +|:------|:---------------------------------------------------------------------| +| `0` | APIサービスが稼働しており、HBaseに対する応答時間は要求の`threshold`値未満である。 | +| `1` | APIサービスが稼働しており、HBaseに対する応答時間は要求の`threshold`値を超えている。 | + +要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 + +| フィールド | 値 | 説明 | +|:--------------------------|:-----------------------------|:------------------| +| `score` | 0-1 | 前述のように定義される正常値。 | +| `response_time` | 文字列 - 人間が読める形式の時間 | データベースの実際の応答時間。 | +| `response_time_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大応答時間。 | + +#### 例 + +要求: + +``` +GET /v2/health/api?verbose=true +``` + +応答: + +``` +200 OK +{ + "score": 0, + "response_time": "0.014s", + "response_time_threshold": "5s" +} +``` + + +## Health Check - Ledger Importer +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") + +Ledger Importer Serviceの健全性をチェックします。 + + + +*REST - Importerの健全性* + +``` +GET /v2/health/importer +``` + + + +[試してみる>](data-api-v2-tool.html#importer-health-check) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:-------------|:--------|:----------------------------------------------------| +| `threshold` | 整数 | 最新の検証済みレジャーのインポート後に経過時間がこの時間(秒単位)を超えると、Importerは正常ではないと見なされます。デフォルトは300秒です。 | +| `threshold2` | 整数 | あらゆる種類の最新レジャーのインポート後に経過時間がこの時間(秒単位)を超えると、Importerは正常ではないと見なされます。デフォルトは60秒です。 | +| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 + +正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 + +| 値 | 意味 | +|:------|:---------------------------------------------------------------------| +| `0` | 最後にインポートされたレジャーの経過時間が`threshold2` (デフォルト: 60)秒よりも短く、最新の検証済みレジャーの経過時間が`threshold` 秒よりも短い。 | +| `1` | 最後にインポートされたレジャーの経過時間が`threshold2` (デフォルト: 60)秒よりも短く、最新の検証済みレジャーの経過時間が`threshold` 秒よりも長い。 | +| `2` | 最後にインポートされたレジャーの経過時間が`threshold2` 秒よりも長い。 | + +要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 + +| フィールド | 値 | 説明 | +|:---------------------------|:-----------------------------|:-----------------| +| `score` | 0-2 | 前述のように定義される正常値。 | +| `response_time` | 文字列 | データベースの実際の応答時間。 | +| `ledger_gap` | 文字列 - 人間が読める形式の時間 | 最後に保存されたレジャーの閉鎖時刻と現在の時刻の差。 | +| `ledger_gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大レジャーギャップ。 | +| `valildation_gap` | 文字列 - 人間が読める形式の時間 | 最後にインポートされた検証済みレジャーの閉鎖時刻と現在の時刻の差。 | +| `validation_gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大検証ギャップ。 | + +#### 例 + +要求: + +``` +GET /v2/health/importer?verbose=true +``` + +応答: + +``` +200 OK +{ + "score": 0, + "response_time": "0.081s", + "ledger_gap": "1.891s", + "ledger_gap_threshold": "5.00m", + "validation_gap": "29.894s", + "validation_gap_threshold": "15.00m" +} +``` + + + +## Health Check - Nodes ETL +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") + +Topology Nodes Extract, Transform, Load(ETL)Serviceの健全性をチェックします。 + + + +*REST - Nodes ETLの健全性* + +``` +GET /v2/health/nodes_etl +``` + + + +[試してみる>](data-api-v2-tool.html#nodes-etl-health-check) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:------------|:--------|:-----------------------------------------------------| +| `threshold` | 整数 | 最新データインポート後の経過時間がこの時間(秒単位)を超えると、このサービスは正常でないと見なされます。デフォルトは120秒です。 | +| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 + +正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 + +| 値 | 意味 | +|:------|:---------------------------------------------------------------------| +| `0` | 最後のトポロジーデータインポート後の経過時間が`threshold` の秒数(デフォルト: 120)よりも短い。 | +| `1` | 最後のトポロジーデータインポート後の経過時間が`threshold`の秒数よりも長い。 | + + +要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 + +| フィールド | 値 | 説明 | +|:----------------|:-----------------------------|:----------------------------| +| `score` | 0-1 | 前述のように定義される正常値。 | +| `gap` | 文字列 - 人間が読める形式の時間 | データが最後にインポートされた時点と現在の時刻の差。 | +| `gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大ギャップ。 | +| `message` | 文字列 | ゼロ以外のスコアの理由の説明(該当する場合)。 | + +#### 例 + +要求: + +``` +GET /v2/health/nodes_etl?verbose=true +``` + +応答: + +``` +200 OK +{ + "score": 0, + "gap": "1.891s", + "gap_threshold": "2.00m", +} +``` + + + +## Health Check - Validations ETL +[[ソース]
](https://github.com/ripple/rippled-historical-database/blob/master/api/routes/checkHealth.js "Source") + +Validations Extract, Transform, Load(ETL)Serviceの健全性をチェックします。 + + + +*REST - Validations ETLの健全性* + +``` +GET /v2/health/validations_etl +``` + + + +[試してみる>](data-api-v2-tool.html#validations-etl-health-check) + +オプションで、以下のクエリーパラメーターを指定できます。 + +| フィールド | 値 | 説明 | +|:------------|:--------|:-----------------------------------------------------| +| `threshold` | 整数 | 最新データインポート後の経過時間がこの時間(秒単位)を超えると、このサービスは正常でないと見なされます。デフォルトは120秒です。 | +| `verbose` | ブール値 | `true`の場合は、データポイントが含まれているJSON応答が返されます。デフォルトでは整数値のみが返されます。 | + +#### 応答フォーマット + +成功した場合の応答では、HTTPコード**200 OK**が返されます。デフォルトでは、応答本文には**整数の正常値のみ**が含まれます。 + +正常値`0`は常に、正常な状況を示します。その他の正常値の定義を次に示します。 + +| 値 | 意味 | +|:------|:---------------------------------------------------------------------| +| `0` | 最後のトポロジーデータインポート後の経過時間が`threshold` の秒数(デフォルト: 120)よりも短い。 | +| `1` | 最後のトポロジーデータインポート後の経過時間が`threshold`の秒数よりも長い。 | + +要求のクエリーパラメーターに`verbose=true`が指定されている場合、応答本文は以下のフィールドを含むJSONオブジェクトです。 + +| フィールド | 値 | 説明 | +|:----------------|:-----------------------------|:----------------------------| +| `score` | 0-1 | 前述のように定義される正常値。 | +| `gap` | 文字列 - 人間が読める形式の時間 | データが最後にインポートされた時点と現在の時刻の差。 | +| `gap_threshold` | 文字列 - 人間が読める形式の時間 | 正常と見なされる最大ギャップ。 | +| `message` | 文字列 | ゼロ以外のスコアの理由の説明(該当する場合)。 | + +#### 例 + +要求: + +``` +GET /v2/health/nodes_etl?verbose=true +``` + +応答: + +``` +200 OK +{ + "score": 0, + "gap": "1.891s", + "gap_threshold": "2.00m", +} +``` + + + + +# APIの規則 + +## 基本的なデータ型 + +REST APIであるData API v2では[JSON](http://json.org/)のネイティブデータ型を使用してAPIフィールドが表されます(特殊なケースがいくつかあります)。 + +### 数値と精度 +[文字列 - 数値]: #数値と精度 + +{% include '_snippets/string-number-formatting.md' %} + +XRP Ledgerでの**XRP以外の通貨**の額の精度は次のようになります。 + +* 非ゼロの最小絶対値: `1000000000000000e-96` +* 最大値: `9999999999999999e80` +* 最小値: `-9999999999999999e80` +* 10進15桁の精度 + +**XRP**の内部表現は異なり、その精度も異なります。 + +* 最小値: `0` +* 最大値: `100000000000`(`1e11`) +* `0.000001`(`1e-6`)に近い精度。 + +つまりXRPの精度は、64ビット符号なし整数と同等であり、各単位は0.000001 XRPに相当します。 + +### アドレス +[アドレス]: #アドレス + +{% include '_snippets/data_types/address.md' %} + + +### 公開鍵 +[公開鍵]: #公開鍵 + +{% include '_snippets/data_types/public_key.md' %} + + +### ハッシュ +[ハッシュ]: #ハッシュ + +{% include '_snippets/data_types/hash.md' %} + + +### タイムスタンプ +[タイムスタンプ]: #タイムスタンプ + +すべての日付と時刻はISO 8601 Timestamp Formatで記述され、UTCを使用しています。このフォーマットをまとめると次のようになります。 + +`YYYY-MM-DDThh:mm:ssZ` + +* 4桁の年 +* 2桁の月 +* 2桁の日 +* データ部分と時間部分が文字`T`で区切られています。 +* 2桁の時間(24時間制) +* 2桁の分 +* UTCからのゼロオフセットを示す文字`Z` 。 + +([v2.0.4][]の時点では、オフセット`+00:00`は使用されていません。) + +### レジャーインデックス +[レジャーインデックス]: #レジャーインデックス + +{% include '_snippets/data_types/ledger_index.md' %} + +### アカウントシーケンス +[シーケンス番号]: #アカウントシーケンス + +{% include '_snippets/data_types/account_sequence.md' %} + +### 通貨コード +[通貨コード]: #通貨コード + +{% include '_snippets/data_types/currency_code.md' %} + +## ページネーション + +多くのクエリーは、1つのHTTP応答で返すのに適量を上回る大量のデータを返します。Data APIでは、1つの応答(ページ)で返すデータの量を制御し、追加の内容を照会する「制限とマーカー」システムが採用されています。 + +多くの要求の`limit`クエリーパラメーターは、応答に含まれる結果の数を特定の数に限定します。結果の型とデフォルト値はメソッドに応じて異なります。ほとんどのメソッドでは、`limit`のデフォルト値は**200**で、最大で**1000**まで設定できます。この最大値を超える`limit`値を指定しても、APIはこの最大値を使用します。 + +現在の応答に含まれていない追加オブジェクトがクエリーに含まれている場合、JSON応答には、追加の結果を取得できることを示す最上位フィールド`marker`が含まれます。このためには、`marker`フィールドの前の値を`marker`クエリーパラメーターとして指定した複数の要求を追加で実行します。個々の追加要求では、1番目の要求と同じパラメーター(`marker`を除く)を使用します。応答にて`marker`パラメーターが省略されている場合は、照会可能なデータの最後に達したことを示しています。 + +`marker`が含まれている場合は、応答の[`Link`ヘッダー](https://tools.ietf.org/html/rfc5988#section-5)に`rel="next"`が指定されています。これは、次の結果ページの完全なURLです。応答が`json`ではなく`csv`フォーマットである場合は、これを使用して結果をページネーションできます。_(新規: [v2.0.4][])_ + +## トランザクションオブジェクト + +トランザクションには、簡潔な「バイナリ」フォーマットと拡張フォーマットの2種類があります。バイナリフォーマットでは、トランザクションを定義するフィールドが16進文字列としてエンコードされており、拡張フォーマットではトランザクションを定義するフィールドが完全なJSONオブジェクトとして入れ子になっています。 + +### 完全なJSONフォーマット + +| フィールド | 値 | 説明 | +|:---------------|:--------------------------|:--------------------------------| +| `hash` | 文字列 - [ハッシュ][] | このトランザクションに固有の識別用ハッシュ値(16進文字列)。 | +| `date` | 文字列 - [タイムスタンプ][] | トランザクションが検証済みレジャーに追加された時刻。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | このレジャーが含まれているレジャーのシーケンス番号。 | +| `tx` | オブジェクト | このトランザクションオブジェクトのフィールド。[トランザクションのフォーマット](transaction-formats.html)により定義されます。 | +| `meta` | オブジェクト | このトランザクションの結果に関するメタデータ。 | + +### バイナリフォーマット + +| フィールド | 値 | 説明 | +|:---------------|:--------------------------|:--------------------------------| +| `hash` | 文字列 - [ハッシュ][] | このトランザクションに固有の識別用ハッシュ値(16進文字列)。 | +| `date` | 文字列 - [タイムスタンプ][] | トランザクションが検証済みレジャーに追加された時刻。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | このレジャーが含まれているレジャーのシーケンス番号。 | +| `tx` | 文字列 | このトランザクションを表すバイナリデータ(16進文字列)。 | +| `meta` | 文字列 | このトランザクションのメタデータを表すバイナリデータ(16進文字列)。 | + +## レジャーオブジェクト + +「レジャー」とは、共有グローバルレジャーの1バージョンです。各レジャーオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:--------------------|:--------------------------|:---------------------------| +| `ledger_hash` | 文字列 - [ハッシュ][] | このレジャーに固有の識別用ハッシュ値(16進文字列)。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | このレジャーのシーケンス番号。新しいレジャーのレジャーインデックスは、その直前のレジャーに1を加算した値になります。 | +| `parent_hash` | 文字列 - [ハッシュ][] | 前のレジャーの識別用ハッシュ。 | +| `total_coins` | [文字列 - 数値][] | このレジャーの時点で存在していたXRPのdrops数の合計。(1 XRPは1,000,000 dropに相当します。) | +| `close_time_res` | 数値 | レジャー閉鎖時刻はこの秒数で丸められます。 | +| `accounts_hash` | 文字列 - [ハッシュ][] | このレジャーに含まれているアカウント情報のハッシュ(16進数)。 | +| `transactions_hash` | 文字列 - [ハッシュ][] | このレジャーに含まれているトランザクション情報のハッシュ(16進数)。 | +| `close_time` | 数値 | UNIX時間でのこのレジャーの閉鎖時刻。 | +| `close_time_human` | 文字列 - [タイムスタンプ][] | このレジャーが閉鎖された時刻。 | + +**注記:** レジャーの閉鎖時刻はおおよその時刻であり、通常10秒単位で丸められます。2つのレジャーの実際の閉鎖時刻の差が数秒程度の場合、それらの`close_time`の値が同一となることがあります。レジャーのシーケンス番号(`ledger_index`)により、どのレジャーが最初に閉鎖したのかが明確になります。 + +### ジェネシスレジャー + +XRP Ledgerの運用開始当初に起きた事故により、1~32569番目までのレジャーが失われました。このため、現存する一番最初のレジャーは番号32570のレジャーです。Data API v2の目的上、番号32570のレジャーは _ジェネシスレジャー_ と見なされます。 + +## アカウント作成オブジェクト + +アカウント作成オブジェクトは、XRP Ledgerでのアカウント作成アクションを表します。アカウントがレジャー32570(最も古いレジャー)にすでに含まれていたかどうかに応じて、2種類のバリエーションがあります。レジャー32570にすでに含まれていたアカウントは _ジェネシスアカウント_ と呼ばれます。 + +| フィールド | 値 | 説明 | +|:------------------|:-----------------------------|:--------------------------| +| `address` | 文字列 - [アドレス][] | このアカウントの識別用アドレス(base-58)。 | +| `inception` | 文字列 - [タイムスタンプ][] | このアドレスに資金が供給された時点のUTCタイムスタンプ。ジェネシスアカウントの場合、これはレジャー32570のタイムスタンプです。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | アカウントが作成された時点でのレジャーのシーケンス番号。ジェネシスアカウントの場合は32570です。 | +| `parent` | 文字列 - [アドレス][] | (ジェネシスアカウントの場合は省略)このアドレスに資金供給するためにXRPを提供したアドレス。 | +| `tx_hash` | 文字列 - [ハッシュ][] | (ジェネシスアカウントの場合は省略)このアカウントに資金供給したトランザクションの識別用ハッシュ。 | +| `initial_balance` | [文字列 - 数値][] | (ジェネシスアカウントの場合は省略)このアカウントに供給されたXRPの額。 | +| `genesis_balance` | [文字列 - 数値][] | (ジェネシスアカウントのみ)レジャー番号32570の時点でこのアカウントが保有していたXRPの額。 | +| `genesis_index` | 数値 - [シーケンス番号][] | (ジェネシスアカウントのみ)レジャー番号32570の時点でのこのアカウントのトランザクションシーケンス番号。 | + + +## 取引オブジェクト +[取引オブジェクト]: #取引オブジェクト + +取引オブジェクトは、実際の通貨取引を表します。この取引は、OfferCreateトランザクションまたはPaymentトランザクションを実行した結果として、XRP Ledgerで発生します。通貨が実際に取引されるには、OfferCreateトランザクションを使用してレジャーで以前に発注され、約定しなかったオファーが存在している必要があります。 + +1つのトランザクションで複数の取引を実行できます。この場合、どの取引においてもトランザクションの送信者がTakerとなりますが、プロバイダーと通貨ペアのいずれかまたはその両方は取引ごとに異なります。 + +| フィールド | 値 | 説明 | +|:-----------------------|:-----------------------------|:---------------------| +| `base_amount` | 数値 | 取引されたベース通貨の額。 | +| `counter_amount` | 数値 | 取引されたクオート通貨の額。 | +| `rate` | 数値 | ベース通貨1単位で獲得できるクオート通貨の額。 | +| `autobridged_currency` | 文字列 - [通貨コード][] | (省略される場合があります)オファーがオートブリッジングされていた場合(XRPオーダーブックを使用して2つのXRP以外の通貨がブリッジングされていた場合)、この取引を実行したオファーのもう一方の通貨です。 | +| `autobridged_issuer` | 文字列 - [アドレス][] | (省略される場合があります)オファーがオートブリッジングされていた場合(XRPオーダーブックを使用して2つのXRP以外の通貨がブリッジングされていた場合)、この取引を実行したオファーのもう一方のイシュアーです。 | +| `base_currency` | 文字列 - [通貨コード][] | ベース通貨。 | +| `base_issuer` | 文字列 - [アドレス][] | (XRPの場合は省略)ベース通貨を発行したアカウント。 | +| `buyer` | 文字列 - [アドレス][] | ベース通貨を獲得したアカウント。 | +| `client` | 文字列 | (省略される場合があります)トランザクションに、クライアントアプリケーションが送信したメモが含まれている場合、これはメモの内容です。 | +| `counter_currency` | 文字列 - [通貨コード][] | クオート通貨。 | +| `counter_issuer` | 文字列 - [アドレス][] | (XRPの場合は省略)クオート通貨を発行したアカウント。 | +| `executed_time` | 文字列 - [タイムスタンプ][] | 取引が発生した時刻。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | このトランザクションが含まれているレジャーのシーケンス番号。 | +| `offer_sequence` | 数値 - [シーケンス番号][] | このレジャーに含まれている`provider`の既存のオファーのシーケンス番号。 | +| `provider` | 文字列 - [アドレス][] | レジャーに既存のオファーが含まれているアカウント。 | +| `seller` | 文字列 - [アドレス][] | クオート通貨を獲得したアカウント。 | +| `taker` | 文字列 - [アドレス][] | この取引を実行したトランザクションを送信したアカウント。 | +| `tx_hash` | 文字列 - [ハッシュ][] | この取引を実行したトランザクションの識別用ハッシュ。(**注記:** この取引は、1つのトランザクションで実行された複数の取引の1つである場合があります。) | +| `tx_type` | 文字列 | この取引を実行したトランザクションのタイプ(`Payment`または`OfferCreate`)。 | + + +## レポートオブジェクト +[レポートオブジェクト]: #レポートオブジェクト + +レポートオブジェクトは、特定の間隔(通常は1日)における特定アカウントのアクティビティを示します。レポートには次のフィールドがあります。 + +| フィールド | 値 | 説明 | +|:---------------------------|:-------------------------------------|:---------| +| `account` | 文字列 - [アドレス][] | このレポートに関連するアカウントのアドレス。 | +| `date` | 文字列 - [タイムスタンプ][] | このレポートに関連する間隔の開始時刻。 | +| `high_value_received` | [文字列 - 数値][] | 1回のトランザクションで受領した最大額(XRPに正規化、可能な限り近い値)これにはペイメントと取引が含まれます。 | +| `high_value_sent` | [文字列 - 数値][] | 1回のトランザクションで送金した最大額(XRPに正規化、可能な限り近い値)。 | +| `payments` | [ペイメントサマリーオブジェクト][]の配列 | (省略される場合があります)この間隔でアカウントが送金または受領した各ペイメントに関する情報の配列。 | +| `payments_received` | 数値 | このアカウントに送金されたペイメントの件数。(これには、このアカウントが送金先であるペイメントのみが含まれます。アカウントを通じてRipplingされたペイメントや、アカウントのオファーで消費されたペイメントは含まれません。) | +| `payments_sent` | 数値 | このアカウントが送金したペイメントの件数。 | +| `receiving_counterparties` | 配列または数値 | アカウントリストが要求された場合は、このアカウントからのペイメントを受取ったアドレスの配列。それ以外の場合は、このアカウントからペイメントを受取ったさまざまなアカウントの数。 | +| `sending_counterparties` | 配列または数値 | アカウントリストが要求された場合は、このアカウントにペイメントを送信したアドレスの配列。それ以外の場合は、このアカウントにペイメントを送信したさまざまなアカウントの数。 | +| `total_value` | [文字列 - 数値][] | ペイメントで受領および送金された合計額(XRPに正規化、可能な限り近い値)。 | +| `total_value_received` | [文字列 - 数値][] | このアカウントへのすべてのペイメントの合計額(XRPに正規化、可能な限り近い値)。 | +| `total_value_sent` | [文字列 - 数値][] | このアカウントからのすべてのペイメントの合計額(XRPに正規化、可能な限り近い値)。 | + +## ペイメントサマリーオブジェクト +[ペイメントサマリーオブジェクト]: #ペイメントサマリーオブジェクト + +ペイメントサマリーオブジェクトには、ペイメントの送金元または受取人から見た1つのペイメントに関する限られた量の情報が含まれています。 + +| フィールド | 値 | 説明 | +|:-------------------|:---------------------------|:---------------------------| +| `tx_hash` | 文字列 - [ハッシュ][] | このペイメントを発生させたトランザクションの識別用ハッシュ。 | +| `delivered_amount` | [文字列 - 数値][] | 実際に送金先アカウントが受領した送金先`currency`の額。 | +| `currency` | 文字列 - [通貨コード][] | トランザクションの受取人に送金された通貨。 | +| `issuer` | 文字列 - [アドレス][] | 通貨を発行するゲートウェイ。XRPの場合は空のストリング。 | +| `type` | 文字列 | `sent`または`received`のいずれか。これは、パースペクティブアカウントがトランザクションの送金元または受取人のいずれであるかを示します。 | + + +## ペイメントオブジェクト +[ペイメントオブジェクト]: #ペイメントオブジェクト + +Data APIでは、ペイメントオブジェクトはアカウント間で価値が移動したイベントを表します。これはほとんどの場合、`Payment` [トランザクションタイプ](transaction-types.html)のXRP Ledgerトランザクションに対応します。ただし Data APIでは、送金元`Account` と`Destination`アカウントが同一である場合、またはトランザクションが失敗した場合には、トランザクションはペイメントとして見なされません。 + +ペイメントオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:------------------------------|:---------------------------|:----------------| +| `amount` | [文字列 - 数値][] | トランザクションに対し送金指示があった送金先`currency`の額。Partial Paymentsでは、この額は「最大」額です。 | +| `delivered_amount` | [文字列 - 数値][] | 実際に送金先アカウントが受領した送金先`currency`の額。 | +| `destination_balance_changes` | 配列 | [残高変更オブジェクト][]の配列。このオブジェクトは、`destination`アカウントの残高に対して行われたすべての変更を示します。 | +| `source_balance_changes` | 配列 | [残高変更オブジェクト][]の配列。このオブジェクトは、`source`アカウントの残高に対して行われたすべての変更を示します(XRPトランザクションコストを除く)。 | +| `transaction_cost` | [文字列 - 数値][] | トランザクションコストに対して`source`アカウントが支払ったXRPの額。([v2.0.4][]より前のバージョンでは、このパラメーターは`fee`でした。) | +| `destination_tag` | 整数 | (省略される場合があります)このペイメントに指定された[送金先タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)。 | +| `source_tag` | 整数 | (省略される場合があります)このペイメントに指定された[送金元タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)。 | +| `currency` | 文字列 - [通貨コード][] | `destination`アカウントが受領した通貨。 | +| `destination` | 文字列 - [アドレス][] | ペイメントを受領したアカウント。 | +| `executed_time` | 文字列 - [タイムスタンプ][] | このペイメントが含まれているレジャーが閉鎖した時刻。 | +| `ledger_index` | 数値 - [レジャーインデックス][] | このペイメントが含まれているレジャーのシーケンス番号。 | +| `source` | 文字列 - [アドレス][] | ペイメントを送金したアカウント。 | +| `source_currency` | 文字列 - [通貨コード][] | `source`アカウントが支払った通貨。 | +| `tx_hash` | 文字列 - [ハッシュ][] | このペイメントを発生させたトランザクションの識別用ハッシュ。 | + + +## 残高オブジェクトと残高変更オブジェクト +[残高変更オブジェクト]: #残高オブジェクトと残高変更オブジェクト +[残高オブジェクト]: #残高オブジェクトと残高変更オブジェクト + +残高オブジェクトは、特定時点での特定の相手側に対する特定通貨でのXRP Ledgerアカウントの残高です。残高変更オブジェクトは、トランザクションの実行時に発生するこのような残高に対する変更を表します。 + +1つのXRP Ledgerトランザクションで、複数の相手側に対する残高の変更と、XRPの変更が行われることがあります。 + +残高オブジェクトと残高変更オブジェクトのフォーマットは同一であり、これらのオブジェクトには次のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `counterparty` | 文字列 - [アドレス][] | `currency`の取引相手またはイシュアー。XRPの場合これは空の文字列です。 | +| `currency` | 文字列 - [通貨コード][] | この残高が変更された通貨。 | +| `value` | [文字列 - 数値][] | 関連付けられているアカウントが獲得または喪失した`currency`の額。残高変更オブジェクトでは、この値がプラスの場合(獲得した額)とマイナスの場合(喪失した額)があります。残高オブジェクトでは、この値がプラスの場合(このアカウントに対して相手側が支払う義務のある額)とマイナスの場合(相手側に対して支払う義務のある額)があります。 | + + +## 残高変更記述 +[残高変更記述]: #残高変更記述 + +残高変更記述は、トランザクションの実行時に発生する1つの残高変更を記述、分析するオブジェクトです。[残高変更オブジェクト][]と同じイベントを表しますが、残高変更オブジェクトよりも詳細です。 + +残高変更記述のフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:----------------|:---------------------------|:------------------------------| +| `amount_change` | [文字列 - 数値][] | この変更前後での保有通貨額の差。_([v2.0.6][]より前のバージョンでは、このフィールドは`change`でした。)_ | +| `final_balance` | [文字列 - 数値][] | 変更後の残高。 | +| `node_index` | 数値(または`null`) | この残高変更は、残高変更を実行したトランザクションのメタデータセクション内にて、ModifiedNodes配列のこのインデックスの位置にあるエントリーで表されます。**注記:** トランザクションコストがXRP残高に対する他の変更と結合されている場合、トランザクションコストの`node_index`は**null**になります。 | +| `tx_index` | 数値 | この残高変更を実行したトランザクションは、トランザクションが記録されているレジャーのトランザクション配列のこのインデックスにあります。 | +| `change_type` | 文字列 | この残高変更が発生した原因を示すさまざまな[](#変更タイプ)のうちの1つ。 | +| `currency` | 文字列 - [通貨コード][] | この通貨に影響する変更。 | +| `executed_time` | 文字列 - [タイムスタンプ][] | 変更が発生した時刻。(変更を実行したトランザクションが記録されているレジャーの閉鎖時間に基づいています。) | +| `counterparty` | 文字列 - [アドレス][] | (XRPの場合は省略)`currency`はこのアカウントとの間のトラストラインに保有されています。_([v2.0.6][]より前のバージョンでは、このフィールドは`issuer`でした。)_ | +| `ledger_index` | 数値 - [レジャーインデックス][] | この残高変更を実行したトランザクションを含むレジャーのシーケンス番号。 | +| `tx_hash` | 文字列 - [ハッシュ][] | この残高変更を実行したトランザクションの識別用ハッシュ。 | + +### 変更タイプ + +残高変更記述の`change_type`フィールドで有効な値を以下に示します。 + +| 値 | 意味 | +|:----------------------|:-----------------------------------------------------| +| `transaction_cost` | これは、トランザクションの中継時にXRPが消却されたことによる残高変更を表します。_([v2.0.4][]より前では、これは`network fee`でした。)_ | +| `payment_destination` | これは、ペイメントとして通貨を受領したことによる残高変更を表します。 | +| `payment_source` | これは、ペイメントとして通貨を支払ったことによる残高変更を表します。 | +| `exchange` | これは、他の通貨への取引や、別のイシュア―との同一通貨での取引による残高変更を表します。これは、オファーにより発生するだけでなく、ペイメント実行中にも発生する可能性があります。 | + +## 取引量オブジェクト +[取引量オブジェクト]: #取引量オブジェクト + +取引量オブジェクトは、特定の期間にペイメントや取引により移動した資金の合計取引量を表します。 + +| フィールド | 値 | 説明 | +|:----------------|:-----------------------|:----------------------------------| +| `components` | オブジェクトの配列 | この合計の計算に使用されたデータ。ペイメント取引量の場合、各オブジェクトは特定の通貨およびイシュアーでのペイメントを表します。取引量の場合、各オブジェクトは2通貨間のマーケットを表します。 | +| `count` | 数値 | この期間における取引の合計件数。 | +| `end_time` | 文字列 - [タイムスタンプ][] | この間隔の終了時刻。 | +| `exchange` | オブジェクト | `currency`および(XRPの場合を除く) `issuer`フィールドと同様、使用される表示通貨を示します。すべての額は、最初にXRPに交換され、その後要求で指定されている表示通貨に変換されることで正規化されます。 | +| `exchange_rate` | 数値 | XRPから表示通貨への為替レート。 | +| `start_time` | 文字列 - [タイムスタンプ][] | この期間の開始時刻。 | +| `total` | 数値 | 当該期間に記録されたすべての取引の合計取引量。 | + + +## サーバーオブジェクト +[サーバーオブジェクト]: #サーバーオブジェクト +[サーバーオブジェクト]: #サーバーオブジェクト + +「サーバーオブジェクト」は、XRP Ledgerピアツーピアネットワークの1つの`rippled`サーバーを表します。サーバーオブジェクトは[Get Topology](#get-topology)、[Get Toplogy Nodes](#get-topology-nodes)、および[Get Topology Node](#get-topology-node)メソッドで返されます。Data APIは、[ピアクローラー](peer-crawler.html)を使用して、報告されるネットワークトポロジーを約30秒間隔で収集します。 + +サーバーオブジェクトのフィールドを次に示します。一部のフィールドは、要求で応答がverboseであることが指定されている場合にのみ表示されます。 + +| フィールド | 値 | 説明 | +|:-------------------|:--------------------------------|:----------------------| +| `node_public_key` | 文字列 - Base-58 [公開鍵][] | このサーバーがピアツーピア通信に署名するときに使用する公開鍵(検証は含まれません)。 | +| `version` | 文字列 | 最後に照会された時点でのこのサーバーの`rippled`バージョン。 | +| `uptime` | 整数 | このサーバーがネットワークに接続していた秒数。 | +| `ip` | 文字列 | (省略される場合があります)ノードのIPアドレス。 | +| `port` | 整数 | (省略される場合があります)このサーバーが[`rippled`ピアプロトコル](peer-protocol.html)を使用するポート。 | +| `inbound_count` | 整数 | (省略される場合があります)このサーバーへの着信ピアツーピア接続の数。 | +| `inbound_added` | 文字列 | (省略される場合があります)最終測定以降に追加された新規着信ピアツーピア接続の数。 | +| `inbound_dropped` | 文字列 | (省略される場合があります)最終測定以降に削除された着信ピアツーピア接続の数。 | +| `outbound_count` | 整数 | (省略される場合があります)このサーバーへの発信ピアツーピア接続の数。 | +| `outbound_added` | 文字列 | (省略される場合があります)最終測定以降に削除された新規発信ピアツーピア接続の数。 | +| `outbound_dropped` | 文字列 | (省略される場合があります)最終測定以降に削除された発信ピアツーピア接続の数。 | +| `city` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の市町村。 | +| `region` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の地域。 | +| `country` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の国。 | +| `region_code` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の地域のISOコード。 | +| `country_code` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の国のISOコード。 | +| `postal_code` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の郵便番号。 | +| `timezone` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地のISOタイムゾーン。 | +| `lat` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の緯度。 | +| `long` | 文字列 | (verboseが設定されている場合のみ)IP位置情報に基づくこのサーバーの所在地の経度。 | +| `isp` | 文字列 | (verboseが設定されている場合のみ)このサーバーのパブリックIPアドレスをホストするインターネットサービスプロバイダー。 | +| `org` | 文字列 | (verboseが設定されている場合のみ)このサーバーのパブリックIPアドレスを所有する組織。 | + + +## リンクオブジェクト +[リンクオブジェクト]: #リンクオブジェクト +[リンクオブジェクト]: #リンクオブジェクト + +リンクオブジェクトは、2つの`rippled`サーバー間のピアツーピアネットワーク接続を表します。次のフィールドが含まれています。 + +| フィールド | 値 | 説明 | +|:---------|:--------------------------------|:--------------------------------| +| `source` | 文字列 - Base-58 [公開鍵][] | 発信接続を行う`rippled`のノード公開鍵。 | +| `target` | 文字列 - Base-58 [公開鍵][] | 着信接続を受け取る`rippled`のノード公開鍵。 | + + +## 検証オブジェクト +[検証オブジェクト]: #検証オブジェクト +[検証オブジェクト]: #検証オブジェクト + +検証オブジェクトは、レジャーバージョンを検証済みにするためにバリデータが投じる1票を表します。(レジャーは、同一のレジャーバージョンに対して投票した信頼できるバリデータの数が定数に達した場合に、コンセンサスプロセスによってのみ検証済みになります。) + +**注記:** Data APIは検証投票データを6か月間だけ保持します。 + +検証オブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:------------------------|:--------------------------------|:-----------------| +| `count` | 整数 | (省略される場合があります)この検証を参照した旨を報告した`rippled`サーバーの数。古いデータでは使用できません。 | +| `ledger_hash` | 文字列 - [ハッシュ][] | この検証投票が適用されるレジャーバージョンのハッシュ。 | +| `reporter_public_key` | 文字列 - Base-58 [公開鍵][] | 最初にこの検証を報告した`rippled`サーバーの公開鍵(base-58)。 | +| `validation_public_key` | 文字列 - Base-58 [公開鍵][] | この検証の署名に使用されたバリデータの公開鍵(base-58)。 | +| `signature` | 文字列 | 検証内容についてのバリデータの署名(16進数)。 | +| `first_datetime` | 文字列 - [タイムスタンプ][] | この検証の最初の報告の日時。 | +| `last_datetime` | 文字列 - [タイムスタンプ][] | この検証の最終報告の日時。 | + + + +# Historical Databaseの実行 + +各自のHistorical DatabaseソフトウェアのインスタンスからData API v2を提供し、各自の`rippled`インスタンスからそのData APIにトランザクションを取り込むこともできます。これは、Historical Databaseの運用を無期限にRippleに依存したくない場合や、各自のイントラネットから履歴トランザクションにアクセスしたい場合に有用です。 + +## インストール + +### 依存関係 + +Historical Databaseを使用するには、最初に以下のソフトウェアをインストールする必要があります。 + +* [HBase](http://hbase.apache.org/)(v2には必要です) +* [Node.js](http://nodejs.org/) +* [npm](https://www.npmjs.org/) +* [git](http://git-scm.com/)(省略可)インストールおよび更新用。 + +Historical Databaseバージョン2には[PostgreSQL](http://www.postgresql.org/)の代わりにHBaseが必要です。Postgresのサポートは廃止されました。 + +### インストールプロセス + +Data API v2をインストールするには、以下の手順に従います。 + +1. HBaseをインストールします。本番環境で使用する場合は、分散モードで構成します。 +2. Historical Database Git Repositoryを複製します。 + + git clone https://github.com/ripple/rippled-historical-database.git + + (Zipされているリリースをダウンロードして解凍することもできます。) + +3. npmを使用して追加のモジュールをインストールします。 + + cd rippled-historical-database + npm install + + インストールスクリプトにより必要な構成ファイルが作成されます。`config/api.config.json` and `config/import.config.json` + +4. オプションで、構成ファイルを変更します。`api.config.json`から`postgres`セクションを削除します。 + +レポート、統計情報、および集約された取引データをAPIで利用可能にするには、さらに処理が必要です。この処理ではApache Stormといくつかのカスタムスクリプトが使用されます。詳細は、[Stormの設定](https://github.com/ripple/rippled-historical-database/blob/master/storm/README.md)を参照してください。 + +これでData APIがインストールされました。実行できる各種コンポーネントについては、[サービス](#サービス)を参照してください。 + +### テスト + +依存関係: + +* [Docker Compose](https://docs.docker.com/compose/install/) + +``` +$ docker-compose build +$ docker-compose up -d hbase +$ docker-compose run --rm webapp npm test +``` + +### サービス + +`rippled` Historical Databaseは、個別に実行できるさまざまなプロセスで構成されています。 + +* [Live Ledger Importer](#live-ledger-importer) - 新たに検証されたレジャーについて`rippled`を監視します。 + コマンド: `node import/live` +* [Backfiller](#backfiller) - データベースに`rippled`インスタンスから古いレジャーを取り込みます。 + コマンド: `node import/postgres/backfill` +* API Server - データへの[REST API アクセス](#apiメソッドリファレンス)を提供します。 + コマンド: `npm start`(ソースファイルが変更されるとサーバーが自動的に再起動します) + または`node api/server.js`(1回だけ起動します) + +## データのインポート + +データを`rippled` Historical Databaseから取得するには、最初にこのデータベースにデータを取り込む必要があります。通常は、次の2種類の方法で行われます。 + +* 履歴レジャーを保持する`rippled`サーバーに接続し、履歴レジャーを取得する。(後で`rippled`サーバーを再設定し、Historical Databaseに保持されている履歴よりも古い履歴を保持しないようにできます。) + * 検証される新しいレジャーのみを取得するか、または古いレジャーも取得することができます。 +* あるいは、履歴レジャーデータをすでに保持するデータベースからダンプを読み込むこともできます。(現時点では、一般に利用可能な履歴データのデータベースダンプはありません。)データベースの標準プロセスを使用します。 + +いずれの場合でも、データの整合性を元のソースの整合性と同じ程度にとどめるよう注意してください。公開サーバーからデータを取得する場合は、そのサーバーのオペレーターが信頼できることを前提としています。データベースダンプから読み込む場合は、ダンプのプロバイダーがデータを破損または改ざんしていないことを前提としています。 + +### Live Ledger Importer + +Live Ledger Importerは、WebSocket APIを使用して`rippled`サーバーに接続し、レジャー閉鎖イベントを待機するサービスです。新しいレジャーが閉鎖されるたびに、Importerは最新の検証済みレジャーを要求します。レジャーがスキップされることを防ぐため、このプロセスにはフォールトトレランスが組み込まれていますが、それでもImporterがレジャーをスキップすることがあります。 + +Live Ledger Importerには、すでにインポートされているデータを検証し、レジャー履歴のギャップを確認するために定期的に実行される2番目のプロセスがあります。 + +Live Ledger Importerは、1つ以上のデータストアーを同時にインポートできます。別のストレージ方式を使用するように履歴データベースを設定している場合は、`--type`パラメーターを使用して、使用するデータベースタイプを1つ以上指定できます。 + +使用例: + +``` +// start loading records into HBase: +$ node import/live +``` + +### Backfiller + +Backfillerは時間をさかのぼって`rippled`インスタンスから古いレジャーを取得します。オプションで、開始インデックスと終了インデックス指定すると、シーケンス番号に基づいて一定範囲のレジャーを取得できます。 + +`--startIndex`パラメーターは、取得する最新レジャーを定義します。Backfillerは最初にこのレジャーを取得し、その後さらに古いレジャーの取得を続行します。このパラメーターを省略すると、Backfillerは最新の検証済みレジャーから開始します。 + +`--stopIndex`パラメーターは、取得する最も古いレジャーを定義します。Backfillerはこのレジャーを取得した後に停止します。省略すると、Backfillerは可能な限り古いレジャーの取得を続行します。埋め戻しは最新レジャーから古いレジャーの順に進むため、停止インデックスは開始インデックスよりも小さい値である必要があります。 + +**注意:** Backfillerは、比較的短いトランザクション履歴を埋めるのに適しています。Backfillerを使ってXRP Ledgerトランザクションの全履歴をインポートする操作には、数週間かかる場合があります。全履歴が必要な場合は、古いトランザクションを含むデータベースダンプを取得して直接インポートすることが推奨されます。公開サーバーの場合、Ripple社はオフライン`rippled`の内部SQLiteデータベースを使用して履歴データベースに古いトランザクションを取り込み、インポート完了後にBackfillerを使用して最新状態にしています。 + +使用例: + +``` +// get ledgers #1,000,000 to #2,000,000 (inclusive) and store in HBase +node import/hbase/backfill --startIndex 2000000 --stopIndex 1000000 +``` + + + +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/admin-rippled-methods.ja.md b/content/references/rippled-api/admin-rippled-methods/admin-rippled-methods.ja.md index 993adf0e74..d1e040e335 100644 --- a/content/references/rippled-api/admin-rippled-methods/admin-rippled-methods.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/admin-rippled-methods.ja.md @@ -1,64 +1,64 @@ -# 管理rippledメソッド - -`rippled`サーバーと直接通信する際には管理APIメソッドを使用します。管理メソッドは、信頼できるサーバー運用担当者のみを対象としています。管理メソッドには、サーバーの管理、監視、デバッグのためのコマンドが含まれています。 - -管理コマンドを使用できるのは、管理者として、`rippled.cfg`ファイルに指定されているホストとポートで`rippled`サーバーに接続している場合に限られます。デフォルトでは、コマンドラインクライアントが管理接続を使用します。`rippled`への接続についての詳細は、[rippled API入門](get-started-with-the-rippled-api.html)を参照してください。 - - -## [キー生成メソッド](key-generation-methods.html) - -キーを生成および管理するには、以下のメソッドを使用します。 - -* **[`validation_create`](validation_create.html)** - 新しいrippledバリデータのキーを生成します。 -* **[`wallet_propose`](wallet_propose.html)** - 新規アカウントのキーを生成します。 - - -## [ロギングおよびデータ管理のメソッド](logging-and-data-management-methods.html) - -ログレベルとその他のデータ(レジャーなど)の管理には、以下のメソッドを使用します。 - -* **[`can_delete`](can_delete.html)** - 特定レジャーまでのレジャーのオンライン削除を許可します。 -* **[`download_shard`](download_shard.html)** - レジャー履歴の特定のシャードをダウンロードします。 -* **[`ledger_cleaner`](ledger_cleaner.html)** - レジャークリーナーサービスが破損データを確認するように設定します。 -* **[`ledger_request`](ledger_request.html)** - ピアサーバーに対し特定のレジャーバージョンを照会します。 -* **[`log_level`](log_level.html)** - ログの詳細レベルを取得または変更します。 -* **[`logrotate`](logrotate.html)** - ログファイルを再度開きます。 - - -## [サーバー制御メソッド](server-control-methods.html) - -rippledサーバーの管理には、以下のメソッドを使用します。 - -* **[`connect`](connect.html)** - rippledサーバーを特定のピアに強制的に接続します。 -* **[`ledger_accept`](ledger_accept.html)** - スタンドアロンモードでレジャーを閉鎖し、次のレジャーに進みます。 -* **[`stop`](stop.html)** - rippledサーバーをシャットダウンします。 -* **[`validation_seed`](validation_seed.html)** - 検証に使用するキーを一時的に設定します。 - - -## [ステータスおよびデバッグメソッド](status-and-debugging-methods.html) - -ネットワークとサーバーのステータスを確認するには、以下のメソッドを使用します。 - -* **[`consensus_info`](consensus_info.html)** - 発生したコンセンサスの状態に関する情報を取得します。 -* **[`feature`](feature.html)** - プロトコルAmendmentに関する情報を取得します。 -* **[`fetch_info`](fetch_info.html)** - サーバーとネットワークの同期に関する情報を取得します。 -* **[`get_counts`](get_counts.html)** - サーバー内部とメモリー使用状況に関する統計情報を取得します。 -* **[`peers`](peers.html)** - 接続しているピアサーバーに関する情報を取得します。 -* **[`print`](print.html)** - 内部サブシステムに関する情報を取得します。 -* **[`validators`](validators.html)** - 現在のバリデータに関する情報を取得します。 -* **[`validator_list_sites`](validator_list_sites.html)** - バリデータリストを公開するサイトに関する情報を取得します。 - - -## 廃止予定のメソッド - -以下の管理コマンドは廃止予定であり、今後予告なしに削除される可能性があります。 - -* `ledger_header` - 代わりに[ledgerメソッド][]を使用してください。 -* `unl_add`、`unl_delete`、`unl_list`、`unl_load`、`unl_network`、`unl_reset`、`unl_score` - 代わりに UNL管理用構成ファイルを使用してください。 -* `wallet_seed` - 代わりに[wallet_proposeメソッド][]を使用してください。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# 管理rippledメソッド + +`rippled`サーバーと直接通信する際には管理APIメソッドを使用します。管理メソッドは、信頼できるサーバー運用担当者のみを対象としています。管理メソッドには、サーバーの管理、監視、デバッグのためのコマンドが含まれています。 + +管理コマンドを使用できるのは、管理者として、`rippled.cfg`ファイルに指定されているホストとポートで`rippled`サーバーに接続している場合に限られます。デフォルトでは、コマンドラインクライアントが管理接続を使用します。`rippled`への接続についての詳細は、[rippled API入門](get-started-with-the-rippled-api.html)を参照してください。 + + +## [キー生成メソッド](key-generation-methods.html) + +キーを生成および管理するには、以下のメソッドを使用します。 + +* **[`validation_create`](validation_create.html)** - 新しいrippledバリデータのキーを生成します。 +* **[`wallet_propose`](wallet_propose.html)** - 新規アカウントのキーを生成します。 + + +## [ロギングおよびデータ管理のメソッド](logging-and-data-management-methods.html) + +ログレベルとその他のデータ(レジャーなど)の管理には、以下のメソッドを使用します。 + +* **[`can_delete`](can_delete.html)** - 特定レジャーまでのレジャーのオンライン削除を許可します。 +* **[`download_shard`](download_shard.html)** - レジャー履歴の特定のシャードをダウンロードします。 +* **[`ledger_cleaner`](ledger_cleaner.html)** - レジャークリーナーサービスが破損データを確認するように設定します。 +* **[`ledger_request`](ledger_request.html)** - ピアサーバーに対し特定のレジャーバージョンを照会します。 +* **[`log_level`](log_level.html)** - ログの詳細レベルを取得または変更します。 +* **[`logrotate`](logrotate.html)** - ログファイルを再度開きます。 + + +## [サーバー制御メソッド](server-control-methods.html) + +rippledサーバーの管理には、以下のメソッドを使用します。 + +* **[`connect`](connect.html)** - rippledサーバーを特定のピアに強制的に接続します。 +* **[`ledger_accept`](ledger_accept.html)** - スタンドアロンモードでレジャーを閉鎖し、次のレジャーに進みます。 +* **[`stop`](stop.html)** - rippledサーバーをシャットダウンします。 +* **[`validation_seed`](validation_seed.html)** - 検証に使用するキーを一時的に設定します。 + + +## [ステータスおよびデバッグメソッド](status-and-debugging-methods.html) + +ネットワークとサーバーのステータスを確認するには、以下のメソッドを使用します。 + +* **[`consensus_info`](consensus_info.html)** - 発生したコンセンサスの状態に関する情報を取得します。 +* **[`feature`](feature.html)** - プロトコルAmendmentに関する情報を取得します。 +* **[`fetch_info`](fetch_info.html)** - サーバーとネットワークの同期に関する情報を取得します。 +* **[`get_counts`](get_counts.html)** - サーバー内部とメモリー使用状況に関する統計情報を取得します。 +* **[`peers`](peers.html)** - 接続しているピアサーバーに関する情報を取得します。 +* **[`print`](print.html)** - 内部サブシステムに関する情報を取得します。 +* **[`validators`](validators.html)** - 現在のバリデータに関する情報を取得します。 +* **[`validator_list_sites`](validator_list_sites.html)** - バリデータリストを公開するサイトに関する情報を取得します。 + + +## 廃止予定のメソッド + +以下の管理コマンドは廃止予定であり、今後予告なしに削除される可能性があります。 + +* `ledger_header` - 代わりに[ledgerメソッド][]を使用してください。 +* `unl_add`、`unl_delete`、`unl_list`、`unl_load`、`unl_network`、`unl_reset`、`unl_score` - 代わりに UNL管理用構成ファイルを使用してください。 +* `wallet_seed` - 代わりに[wallet_proposeメソッド][]を使用してください。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/key-generation-methods/validation_create.ja.md b/content/references/rippled-api/admin-rippled-methods/key-generation-methods/validation_create.ja.md index 2395e254a0..2676a0e149 100644 --- a/content/references/rippled-api/admin-rippled-methods/key-generation-methods/validation_create.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/key-generation-methods/validation_create.ja.md @@ -1,110 +1,110 @@ -# validation_create -[[ソース]
](https://github.com/ripple/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/ValidationCreate.cpp "Source") - -`validation_create`コマンドキーを使用して、[`rippled`サーバーがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵](peer-protocol.html#ノードキーペア)を生成します。[wallet_proposeメソッド][]と同様に、このメソッドでは適切なフォーマットで一連のキーが単に生成されるだけです。XRP Ledgerのデータやサーバー構成は変更されません。 - -_`validation_create`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -サーバーを設定することにより、生成されたキーペアを検証の署名(検証キーペア)に使用するか、または通常のピアツーピア通信の署名([ノードキーペア](peer-protocol.html#ノードキーペア))に使用するかを指定できます。 - -**ヒント:** 堅牢なバリデータを設定するには、`validator-keys`ツール(`rippled` RPMに付属)を使用してバリデータトークン(ローテーション可能)とオフラインマスターキーを生成してください。詳細は、[rippledサーバーで検証を有効化](run-rippled-as-a-validator.html#3rippledサーバーで検証を有効化)を参照してください。 - - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 0, - "command": "validation_create", - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" -} -``` - -*JSON-RPC* - -``` -{ - "method": "validation_create", - "params": [ - { - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: validation_create [secret] -rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------|:-------|:---------------------------------------------------------| -| `secret` | 文字列 | _(省略可)_ クレデンシャルを生成するときにこの値をシードとして使用します。同じシークレットを使用すると常に同じクレデンシャルが生成されます。シードは[RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマットまたはXRP Ledgerの[base58][]フォーマットで指定できます。省略すると、ランダムシードが生成されます。 | - -**注記:** バリデータのセキュリティは、シードのエントロピーに応じて異なります。シークレット値が強力なランダム性のソースを使用して生成されている場合を除き、実際の事業目的のためにシークレット値を使用しないでください。新しいクレデンシャルを初めて生成するときには`secret`を省略することが推奨されます。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -{ - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "status" : "success", - "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", - "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", - "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:------------------------|:-------|:------------------------------------------| -| `validation_key` | 文字列 | これらの検証クレデンシャルのシークレットキー([RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマット)。 | -| `validation_public_key` | 文字列 | これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | -| `validation_seed` | 文字列 | これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `badSeed` - 要求に無効なシード値が指定されていました。この場合は通常、シード値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# validation_create +[[ソース]
](https://github.com/ripple/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/ValidationCreate.cpp "Source") + +`validation_create`コマンドキーを使用して、[`rippled`サーバーがネットワークに対して自身の身元を識別させるのに使用できる暗号鍵](peer-protocol.html#ノードキーペア)を生成します。[wallet_proposeメソッド][]と同様に、このメソッドでは適切なフォーマットで一連のキーが単に生成されるだけです。XRP Ledgerのデータやサーバー構成は変更されません。 + +_`validation_create`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +サーバーを設定することにより、生成されたキーペアを検証の署名(検証キーペア)に使用するか、または通常のピアツーピア通信の署名([ノードキーペア](peer-protocol.html#ノードキーペア))に使用するかを指定できます。 + +**ヒント:** 堅牢なバリデータを設定するには、`validator-keys`ツール(`rippled` RPMに付属)を使用してバリデータトークン(ローテーション可能)とオフラインマスターキーを生成してください。詳細は、[rippledサーバーで検証を有効化](run-rippled-as-a-validator.html#3rippledサーバーで検証を有効化)を参照してください。 + + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 0, + "command": "validation_create", + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" +} +``` + +*JSON-RPC* + +``` +{ + "method": "validation_create", + "params": [ + { + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: validation_create [secret] +rippled validation_create "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------|:-------|:---------------------------------------------------------| +| `secret` | 文字列 | _(省略可)_ クレデンシャルを生成するときにこの値をシードとして使用します。同じシークレットを使用すると常に同じクレデンシャルが生成されます。シードは[RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマットまたはXRP Ledgerの[base58][]フォーマットで指定できます。省略すると、ランダムシードが生成されます。 | + +**注記:** バリデータのセキュリティは、シードのエントロピーに応じて異なります。シークレット値が強力なランダム性のソースを使用して生成されている場合を除き、実際の事業目的のためにシークレット値を使用しないでください。新しいクレデンシャルを初めて生成するときには`secret`を省略することが推奨されます。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +{ + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "status" : "success", + "validation_key" : "FAWN JAVA JADE HEAL VARY HER REEL SHAW GAIL ARCH BEN IRMA", + "validation_public_key" : "n9Mxf6qD4J55XeLSCEpqaePW4GjoCR5U1ZeGZGJUCNe3bQa4yQbG", + "validation_seed" : "ssZkdwURFMBXenJPbrpE14b6noJSu" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:------------------------|:-------|:------------------------------------------| +| `validation_key` | 文字列 | これらの検証クレデンシャルのシークレットキー([RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマット)。 | +| `validation_public_key` | 文字列 | これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | +| `validation_seed` | 文字列 | これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット)。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `badSeed` - 要求に無効なシード値が指定されていました。この場合は通常、シード値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/key-generation-methods/wallet_propose.ja.md b/content/references/rippled-api/admin-rippled-methods/key-generation-methods/wallet_propose.ja.md index b9fd080ad9..e39e42b386 100644 --- a/content/references/rippled-api/admin-rippled-methods/key-generation-methods/wallet_propose.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/key-generation-methods/wallet_propose.ja.md @@ -1,196 +1,196 @@ -# wallet_propose -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/WalletPropose.cpp "Source") - -`wallet_propose`メソッドを使用して、キーペアとXRP Ledgerアドレスを生成します。このコマンドは単にキーとアドレス値を生成し、XRP Ledger自体には何ら影響しません。レジャー上で資金供給済みのアドレスになるには、そのアドレスで、[必要準備金](reserves.html)を満たすのに十分なXRPの[Paymentトランザクションを受け取る](accounts.html#アカウントの作成)必要があります。 - -*`wallet_propose`要求は、権限のないユーザーは実行できない[adminメソッド](admin-rippled-methods.html)です。*(このコマンドは、アカウントの機密情報を求めてネットワーク上の伝送情報をスニッフィングする人々から守るためにadminコマンドとされています。adminコマンドは通常、外部ネットワーク上で伝送されることはありません。) - -[更新: rippled 0.31.0][新規: rippled 0.31.0] - -### 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket(キータイプあり)* - -``` -{ - "command": "wallet_propose", - "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "key_type": "secp256k1" -} -``` - -*WebSocket(キータイプなし)* - -``` -{ - "command": "wallet_propose", - "passphrase": "masterpassphrase" -} -``` - -*JSON-RPC(キータイプあり)* - -``` -{ - "method": "wallet_propose", - "params": [ - { - "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "key_type": "secp256k1" - } - ] -} -``` - -*JSON-RPC(キータイプなし)* - -``` -{ - "method": "wallet_propose", - "params": [ - { - "passphrase": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: wallet_propose [passphrase] -rippled wallet_propose masterpassphrase -``` - - - -要求には以下のパラメーターを含めることができます。 - -| `Field` | 型 | 説明 | -|:-------------|:-------|:-----------------------------------------------------| -| `key_type` | 文字列 | このキーペアに使用する楕円曲線アルゴリズム。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。デフォルトは`secp256k1`です。 | -| `passphrase` | 文字列 | _(省略可能)_ このシード値からキーペアとアドレスを生成します。この値は、[16進数][]、XRP Ledgerの[base58][]フォーマット、[RFC-1751][]、または任意の文字列でフォーマットできます。`seed`または`seed_hex`とともに使用することはできません。 | -| `seed` | 文字列 | _(省略可能)_ このシード値からXRP Ledgerの[base58][]エンコードフォーマットでキーペアとアドレスを生成します。`passphrase`または`seed_hex`とともに使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可能)_ このシード値から[16進数][]形式でキーペアとアドレスを生成します。`passphrase`または`seed`とともに使用することはできません。 | - -以下のフィールドのうち**1つ**を指定する必要があります。`passphrase`、`seed`、または`seed_hex`。3つすべてを省略すると、`rippled`によってランダムシードが使用されます。 - -**注記:** [Ed25519](https://ed25519.cr.yp.to/)のサポートは実験的な機能です。このコマンドのコマンドラインバージョンではEd25519キーを生成できません。 - -#### シードの指定 - -ほとんどの場合、強力な乱数ソースから生成されたシード値を使用する必要があります。あるアドレスのシード値を知っている人は、[そのアドレスで署名されたトランザクションを送信する](transaction-basics.html#取引の承認)すべての権限を持っています。一般的に、ランダムシードの生成には、このコマンドにパラメーターを指定しないで実行する方法が適しています。 - -以下の場合には、既知のシードを指定します。 - -* アドレスに関連するシードのみを知っていて、アドレスを再計算する -* `rippled`の機能をテストする - -シードは、以下のどのフォーマットでも指定できます。 - -* XRP Ledgerの[base58][]フォーマットのシークレットキー文字列。例: `snoPBrXtMeMyMHUVTgbuqAfg1SUTb`。 -* [RFC-1751][]フォーマット文字列(secp256k1キーペアのみ)。例: `I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE`。 -* 128ビットの[16進数][]文字列。例: `DEDCE9CE67B451D852FD4E846FCDE31C`。 -* シード値として使用する任意の文字列。例: `masterpassphrase`。 - -[RFC-1751]: https://tools.ietf.org/html/rfc1751 -[16進数]: https://en.wikipedia.org/wiki/Hexadecimal - -### 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "key_type": "secp256k1", - "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", - "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", - "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", - "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020" - } -} -``` - -*JSON-RPC* - -``` -{ - "result": { - "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "key_type": "secp256k1", - "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", - "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", - "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", - "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "status": "success" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "account_id" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "key_type" : "secp256k1", - "master_key" : "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", - "master_seed" : "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", - "master_seed_hex" : "DEDCE9CE67B451D852FD4E846FCDE31C", - "public_key" : "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", - "public_key_hex" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", - "status" : "success" - } -} -``` - - - -応答は[標準フォーマット][]に従い、正常に終了した場合、新しい(可能性がある)アカウントについての重要な各種情報を含みます。以下のフィールドを含みます。 - -| `Field` | 型 | 説明 | -|:------------------|:-------|:------------------------------------------------| -| `master_seed` | 文字列 | これはキーペアの秘密鍵です。このアカウントに関するその他のあらゆる情報が、マスターシードからXRP Ledgerの[base58][]エンコード文字列フォーマットで引き出されます。通常、このフォーマットのキーを使用してトランザクションに署名します。 | -| `master_seed_hex` | 文字列 | 16進数形式のマスターシード。単純で広く支持されている秘密鍵表示法。トランザクションの署名に使用できます。 | -| `master_key` | 文字列 | [RFC 1751](http://tools.ietf.org/html/rfc1751)フォーマットのマスターシード。覚えやすく書き留めやすい秘密鍵。トランザクションの署名に使用できます。 | -| `account_id` | 文字列 | XRP Ledgerの[base58][]フォーマットで作成されたアカウントの[アドレス][]。これは公開鍵ではありませんが、公開鍵を2回ハッシュ化したものです。チェックサムも持っているため、タイプミスした場合はほぼ間違いなく無効なアドレスとみなされ、有効だが異なるアドレスとはみなされません。これはXRP LedgerのアカウントのプライマリIDです。支払いを受けるときにこれを人に伝えたり、トランザクションにおいて、自身や、支払先、委託先識別するのに使用します。[マルチ署名のリスト](multi-signing.html)でもこれを使用して、他の署名者を識別します。 | -| `public_key` | 文字列 | XRP Ledgerの[base58][]エンコード文字列フォーマットで作成された、キーペアの公開鍵。`master_seed`から生成されます。 | -| `public_key_hex` | 文字列 | これは16進数で作成されたキーペアの公開鍵です。`master_seed`から生成されます。トランザクションの署名を検証する場合、`rippled`にはこの公開鍵が必要です。そのため、署名されたトランザクションのフォーマットの`SigningPubKey`フィールドには公開鍵が入力されています。 | -| `warning` | 文字列 | (削除される可能性あり)要求にシード値を指定した場合、このフィールドに安全でない可能性があるという警告が表示されます。[新規: rippled 0.32.0][] | - -このメソッドを使用してキーペアを生成し、アカウントのレギュラーキーペアとして使用することもできます。アカウントにレギュラーキーペアを割り当てて、それを使用してほとんどのトランザクションに署名し、マスターキーペアをできるだけオフラインにしておくことも可能です。 - -レギュラーキーペアとして使用するほかに、マルチ署名のリスト(SignerList)のメンバーとして使用することもできます。 - -マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。 - -マルチ署名の詳細は、[マルチ署名](multi-signing.html)を参照してください。 - - -### 考えられるエラー - -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドが不正に指定されています。 -* `badSeed` - 要求には、空の文字列やXRP Ledgerアドレスに似た文字列などの許可されないシード値が(`passphrase`、`seed`、または`seed_hex`フィールド内に)指定されています。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# wallet_propose +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/WalletPropose.cpp "Source") + +`wallet_propose`メソッドを使用して、キーペアとXRP Ledgerアドレスを生成します。このコマンドは単にキーとアドレス値を生成し、XRP Ledger自体には何ら影響しません。レジャー上で資金供給済みのアドレスになるには、そのアドレスで、[必要準備金](reserves.html)を満たすのに十分なXRPの[Paymentトランザクションを受け取る](accounts.html#アカウントの作成)必要があります。 + +*`wallet_propose`要求は、権限のないユーザーは実行できない[adminメソッド](admin-rippled-methods.html)です。*(このコマンドは、アカウントの機密情報を求めてネットワーク上の伝送情報をスニッフィングする人々から守るためにadminコマンドとされています。adminコマンドは通常、外部ネットワーク上で伝送されることはありません。) + +[更新: rippled 0.31.0][新規: rippled 0.31.0] + +### 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket(キータイプあり)* + +``` +{ + "command": "wallet_propose", + "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "key_type": "secp256k1" +} +``` + +*WebSocket(キータイプなし)* + +``` +{ + "command": "wallet_propose", + "passphrase": "masterpassphrase" +} +``` + +*JSON-RPC(キータイプあり)* + +``` +{ + "method": "wallet_propose", + "params": [ + { + "seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "key_type": "secp256k1" + } + ] +} +``` + +*JSON-RPC(キータイプなし)* + +``` +{ + "method": "wallet_propose", + "params": [ + { + "passphrase": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb" + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: wallet_propose [passphrase] +rippled wallet_propose masterpassphrase +``` + + + +要求には以下のパラメーターを含めることができます。 + +| `Field` | 型 | 説明 | +|:-------------|:-------|:-----------------------------------------------------| +| `key_type` | 文字列 | このキーペアに使用する楕円曲線アルゴリズム。有効な値は`ed25519`と`secp256k1`(すべて小文字)です。デフォルトは`secp256k1`です。 | +| `passphrase` | 文字列 | _(省略可能)_ このシード値からキーペアとアドレスを生成します。この値は、[16進数][]、XRP Ledgerの[base58][]フォーマット、[RFC-1751][]、または任意の文字列でフォーマットできます。`seed`または`seed_hex`とともに使用することはできません。 | +| `seed` | 文字列 | _(省略可能)_ このシード値からXRP Ledgerの[base58][]エンコードフォーマットでキーペアとアドレスを生成します。`passphrase`または`seed_hex`とともに使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可能)_ このシード値から[16進数][]形式でキーペアとアドレスを生成します。`passphrase`または`seed`とともに使用することはできません。 | + +以下のフィールドのうち**1つ**を指定する必要があります。`passphrase`、`seed`、または`seed_hex`。3つすべてを省略すると、`rippled`によってランダムシードが使用されます。 + +**注記:** [Ed25519](https://ed25519.cr.yp.to/)のサポートは実験的な機能です。このコマンドのコマンドラインバージョンではEd25519キーを生成できません。 + +#### シードの指定 + +ほとんどの場合、強力な乱数ソースから生成されたシード値を使用する必要があります。あるアドレスのシード値を知っている人は、[そのアドレスで署名されたトランザクションを送信する](transaction-basics.html#取引の承認)すべての権限を持っています。一般的に、ランダムシードの生成には、このコマンドにパラメーターを指定しないで実行する方法が適しています。 + +以下の場合には、既知のシードを指定します。 + +* アドレスに関連するシードのみを知っていて、アドレスを再計算する +* `rippled`の機能をテストする + +シードは、以下のどのフォーマットでも指定できます。 + +* XRP Ledgerの[base58][]フォーマットのシークレットキー文字列。例: `snoPBrXtMeMyMHUVTgbuqAfg1SUTb`。 +* [RFC-1751][]フォーマット文字列(secp256k1キーペアのみ)。例: `I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE`。 +* 128ビットの[16進数][]文字列。例: `DEDCE9CE67B451D852FD4E846FCDE31C`。 +* シード値として使用する任意の文字列。例: `masterpassphrase`。 + +[RFC-1751]: https://tools.ietf.org/html/rfc1751 +[16進数]: https://en.wikipedia.org/wiki/Hexadecimal + +### 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "key_type": "secp256k1", + "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", + "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", + "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", + "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020" + } +} +``` + +*JSON-RPC* + +``` +{ + "result": { + "account_id": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "key_type": "secp256k1", + "master_key": "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", + "master_seed": "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "master_seed_hex": "DEDCE9CE67B451D852FD4E846FCDE31C", + "public_key": "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", + "public_key_hex": "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "status": "success" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "account_id" : "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "key_type" : "secp256k1", + "master_key" : "I IRE BOND BOW TRIO LAID SEAT GOAL HEN IBIS IBIS DARE", + "master_seed" : "snoPBrXtMeMyMHUVTgbuqAfg1SUTb", + "master_seed_hex" : "DEDCE9CE67B451D852FD4E846FCDE31C", + "public_key" : "aBQG8RQAzjs1eTKFEAQXr2gS4utcDiEC9wmi7pfUPTi27VCahwgw", + "public_key_hex" : "0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020", + "status" : "success" + } +} +``` + + + +応答は[標準フォーマット][]に従い、正常に終了した場合、新しい(可能性がある)アカウントについての重要な各種情報を含みます。以下のフィールドを含みます。 + +| `Field` | 型 | 説明 | +|:------------------|:-------|:------------------------------------------------| +| `master_seed` | 文字列 | これはキーペアの秘密鍵です。このアカウントに関するその他のあらゆる情報が、マスターシードからXRP Ledgerの[base58][]エンコード文字列フォーマットで引き出されます。通常、このフォーマットのキーを使用してトランザクションに署名します。 | +| `master_seed_hex` | 文字列 | 16進数形式のマスターシード。単純で広く支持されている秘密鍵表示法。トランザクションの署名に使用できます。 | +| `master_key` | 文字列 | [RFC 1751](http://tools.ietf.org/html/rfc1751)フォーマットのマスターシード。覚えやすく書き留めやすい秘密鍵。トランザクションの署名に使用できます。 | +| `account_id` | 文字列 | XRP Ledgerの[base58][]フォーマットで作成されたアカウントの[アドレス][]。これは公開鍵ではありませんが、公開鍵を2回ハッシュ化したものです。チェックサムも持っているため、タイプミスした場合はほぼ間違いなく無効なアドレスとみなされ、有効だが異なるアドレスとはみなされません。これはXRP LedgerのアカウントのプライマリIDです。支払いを受けるときにこれを人に伝えたり、トランザクションにおいて、自身や、支払先、委託先識別するのに使用します。[マルチ署名のリスト](multi-signing.html)でもこれを使用して、他の署名者を識別します。 | +| `public_key` | 文字列 | XRP Ledgerの[base58][]エンコード文字列フォーマットで作成された、キーペアの公開鍵。`master_seed`から生成されます。 | +| `public_key_hex` | 文字列 | これは16進数で作成されたキーペアの公開鍵です。`master_seed`から生成されます。トランザクションの署名を検証する場合、`rippled`にはこの公開鍵が必要です。そのため、署名されたトランザクションのフォーマットの`SigningPubKey`フィールドには公開鍵が入力されています。 | +| `warning` | 文字列 | (削除される可能性あり)要求にシード値を指定した場合、このフィールドに安全でない可能性があるという警告が表示されます。[新規: rippled 0.32.0][] | + +このメソッドを使用してキーペアを生成し、アカウントのレギュラーキーペアとして使用することもできます。アカウントにレギュラーキーペアを割り当てて、それを使用してほとんどのトランザクションに署名し、マスターキーペアをできるだけオフラインにしておくことも可能です。 + +レギュラーキーペアとして使用するほかに、マルチ署名のリスト(SignerList)のメンバーとして使用することもできます。 + +マスターキーペアとレギュラーキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。 + +マルチ署名の詳細は、[マルチ署名](multi-signing.html)を参照してください。 + + +### 考えられるエラー + +* いずれかの[汎用エラータイプ][]。 +* `invalidParams` - 1つ以上のフィールドが不正に指定されています。 +* `badSeed` - 要求には、空の文字列やXRP Ledgerアドレスに似た文字列などの許可されないシード値が(`passphrase`、`seed`、または`seed_hex`フィールド内に)指定されています。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/can_delete.ja.md b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/can_delete.ja.md index 6b3d38fa3b..76e8026ccc 100644 --- a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/can_delete.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/can_delete.ja.md @@ -1,78 +1,78 @@ -# can_delete -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/CanDelete.cpp "Source") - -`can_delete`メソッドは`rippled`サーバーに対し最新のレジャーバージョンを通知します。この最新バージョンは[指示による削除が有効なオンライン削除](online-deletion.html#指示による削除)を使用するときに削除できます。指示による削除が有効ではない場合、このメソッドは何も行いません。 - -_`can_delete`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "can_delete", - "can_delete": 11320417 -} -``` - -*JSON-RPC* - -``` -{ - "method": "can_delete", - "params": [ - { - "can_delete": 11320417 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax can_delete [||now|always|never] -rippled can_delete 11320417 -``` - - - -要求には以下のパラメーターを指定できます。 - -| `Field` | 型 | 説明 | -|:-------------|:------------------|:------------------------------------------| -| `can_delete` | 文字列 または整数 | _(省略可)_ 削除可能な最大レジャーバージョンの[レジャーインデックス][]。特殊ケース`never`を指定すると、オンライン削除が無効になります。特殊ケース`always`を指定すると、指示による削除が無効な場合と同様に、自動オンライン削除が有効になります。特殊ケース`now`を指定すると、設定されている`online_delete`値に一致するかまたはこの値を超える次の検証済みレジャーで、オンライン削除が1回実行されます。省略すると、サーバーは変更を行いません(ただし現在の`can_delete`の値で応答します)。 | - -### 応答フォーマット - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-------------|:--------|:----------------------------------------------------| -| `can_delete` | 整数 | オンライン削除ルーチンにより削除できる最大レジャーインデックス。 | - -既存の`can_delete`設定を照会する場合は、パラメーターを指定せずにこのコマンドを実行します。 - -### 考えられるエラー - -- [汎用エラータイプ][]のすべて。 -- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -- `lgrNotFound` 要求の`can_delete`フィールドに指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 -- `notEnabled` - オンライン削除または指示による削除のいずれかがサーバーの設定で有効になっていない場合。 -- `notReady` - サーバーは現在オンライン削除を実行する準備ができていません。これは通常、サーバーが起動したが、検証済みレジャーをまだ取得していないことを意味します。 - -## 参照項目 - -- [オンライン削除](online-deletion.html) -- [指示による削除の設定](configure-advisory-deletion.html) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# can_delete +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/CanDelete.cpp "Source") + +`can_delete`メソッドは`rippled`サーバーに対し最新のレジャーバージョンを通知します。この最新バージョンは[指示による削除が有効なオンライン削除](online-deletion.html#指示による削除)を使用するときに削除できます。指示による削除が有効ではない場合、このメソッドは何も行いません。 + +_`can_delete`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "can_delete", + "can_delete": 11320417 +} +``` + +*JSON-RPC* + +``` +{ + "method": "can_delete", + "params": [ + { + "can_delete": 11320417 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax can_delete [||now|always|never] +rippled can_delete 11320417 +``` + + + +要求には以下のパラメーターを指定できます。 + +| `Field` | 型 | 説明 | +|:-------------|:------------------|:------------------------------------------| +| `can_delete` | 文字列 または整数 | _(省略可)_ 削除可能な最大レジャーバージョンの[レジャーインデックス][]。特殊ケース`never`を指定すると、オンライン削除が無効になります。特殊ケース`always`を指定すると、指示による削除が無効な場合と同様に、自動オンライン削除が有効になります。特殊ケース`now`を指定すると、設定されている`online_delete`値に一致するかまたはこの値を超える次の検証済みレジャーで、オンライン削除が1回実行されます。省略すると、サーバーは変更を行いません(ただし現在の`can_delete`の値で応答します)。 | + +### 応答フォーマット + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-------------|:--------|:----------------------------------------------------| +| `can_delete` | 整数 | オンライン削除ルーチンにより削除できる最大レジャーインデックス。 | + +既存の`can_delete`設定を照会する場合は、パラメーターを指定せずにこのコマンドを実行します。 + +### 考えられるエラー + +- [汎用エラータイプ][]のすべて。 +- `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +- `lgrNotFound` 要求の`can_delete`フィールドに指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 +- `notEnabled` - オンライン削除または指示による削除のいずれかがサーバーの設定で有効になっていない場合。 +- `notReady` - サーバーは現在オンライン削除を実行する準備ができていません。これは通常、サーバーが起動したが、検証済みレジャーをまだ取得していないことを意味します。 + +## 参照項目 + +- [オンライン削除](online-deletion.html) +- [指示による削除の設定](configure-advisory-deletion.html) + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.ja.md b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.ja.md index 3745d5273b..c001fcc239 100644 --- a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.ja.md @@ -1,122 +1,122 @@ -# download_shard -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/DownloadShard.cpp "Source") - -サーバーに対し、外部ソースから特定の[履歴レジャーデータのシャード](history-sharding.html)をダウンロードするように指示します。`rippled`サーバーで[履歴シャードが保管されるように設定する](configure-history-sharding.html)必要があります。[新規: rippled 1.1.0][] - -_`download_shard`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -外部ソースからHTTPSを使用してシャードが[lz4圧縮](https://lz4.github.io/lz4/) [tarアーカイブ](https://en.wikipedia.org/wiki/Tar_(computing)) として提供される必要があります。このアーカイブの内容が、シャードストアーに使用されるデータベースタイプ(NuDBまたはRocksDB)と一致する必要があります。 - -通常、このメソッドを使用してシャードをダウンロードしてインポートすれば、ピアツーピアネットワークからシャードを個別に取得するよりも短い時間で取得できます。また、サーバーから提供される特定範囲のシャードまたはシャードのセットを選択する場合にもこのメソッドを使用できます。 - -### 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -```json -{ - "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"} - ] -} -``` - -*JSON-RPC* - -```json -{ - "method": "download_shard", - "params": [ - { - "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` | ブール値 | _(省略可)_`false`の場合はダウンロードしたデータの検証をスキップします。デフォルトは`true`です。この場合、アーカイブのシャードにシャードのデータオブジェクトがすべて含まれており、シャードが現行の検証済みレジャーのレジャー履歴の一部であるか否かが確認されます。 | - -`shards`配列の各**Shard Descriptorオブジェクト**には以下のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `index` | 数値 | 取得するシャードのインデックス。本番環境のXRP Ledgerでは、最も古いシャードのインデックスは1であり、このシャードにはレジャー32750~32768が含まれています。次のシャードのインデックスは2であり、このシャードにはレジャー32769~49152が含まれています。 | -| `url` | 文字列 | このシャードをダウンロードできるURL。このURLは`https://`で始まり`.tar.lz4`(大文字小文字の区別なし)で終わる必要があります。このダウンロードを提供するWebサーバーは、信頼できる認証局(CA)によって署名された有効なTLS証明書を使用する必要があります。(`rippled`はオペレーティングシステムのCAストアーを使用します。) | - -### 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -```json -{ - "result": { - "message": "downloading shards 1-2,5" - }, - "status": "success", - "type": "response" -} -``` - - -*JSON-RPC* - -```json -200 OK - -{ - "result": { - "message": "downloading shards 1-2,5", - "status": "success" - } -} -``` - - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `message` | 文字列 | この要求に対応して実行されたアクションを説明するメッセージ。 | - -**ヒント:** サーバーで使用可能なシャードを確認するには、シャードストアーとして設定されたロケーションのサブフォルダー(`rippled.cfg`の`[shard_db]`の`path`パラメーター)を調べます。フォルダーには、シャードの番号に対応する名前が付いています。これらのフォルダーの1つに、シャードが未完了であることを示す`control.txt`ファイルが含まれていることがあります。 - -### 考えられるエラー - -- [汎用エラータイプ][]のすべて。 -- `notEnabled` - サーバーでシャードストアーを使用するように設定されていません。 -- `tooBusy` - サーバーはすでに、ピアツーピアネットワークから、または以前の`download_shard`要求の結果として、シャードをダウンロード中です。 -- `invalidParams` - 要求で1つ以上の必須フィールドが省略されていたか、または指定されたフィールドのデータタイプが誤っています。 - - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# download_shard +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/DownloadShard.cpp "Source") + +サーバーに対し、外部ソースから特定の[履歴レジャーデータのシャード](history-sharding.html)をダウンロードするように指示します。`rippled`サーバーで[履歴シャードが保管されるように設定する](configure-history-sharding.html)必要があります。[新規: rippled 1.1.0][] + +_`download_shard`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +外部ソースからHTTPSを使用してシャードが[lz4圧縮](https://lz4.github.io/lz4/) [tarアーカイブ](https://en.wikipedia.org/wiki/Tar_(computing)) として提供される必要があります。このアーカイブの内容が、シャードストアーに使用されるデータベースタイプ(NuDBまたはRocksDB)と一致する必要があります。 + +通常、このメソッドを使用してシャードをダウンロードしてインポートすれば、ピアツーピアネットワークからシャードを個別に取得するよりも短い時間で取得できます。また、サーバーから提供される特定範囲のシャードまたはシャードのセットを選択する場合にもこのメソッドを使用できます。 + +### 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +```json +{ + "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"} + ] +} +``` + +*JSON-RPC* + +```json +{ + "method": "download_shard", + "params": [ + { + "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` | ブール値 | _(省略可)_`false`の場合はダウンロードしたデータの検証をスキップします。デフォルトは`true`です。この場合、アーカイブのシャードにシャードのデータオブジェクトがすべて含まれており、シャードが現行の検証済みレジャーのレジャー履歴の一部であるか否かが確認されます。 | + +`shards`配列の各**Shard Descriptorオブジェクト**には以下のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:--------|:-------|:----------------------------------------------------------| +| `index` | 数値 | 取得するシャードのインデックス。本番環境のXRP Ledgerでは、最も古いシャードのインデックスは1であり、このシャードにはレジャー32750~32768が含まれています。次のシャードのインデックスは2であり、このシャードにはレジャー32769~49152が含まれています。 | +| `url` | 文字列 | このシャードをダウンロードできるURL。このURLは`https://`で始まり`.tar.lz4`(大文字小文字の区別なし)で終わる必要があります。このダウンロードを提供するWebサーバーは、信頼できる認証局(CA)によって署名された有効なTLS証明書を使用する必要があります。(`rippled`はオペレーティングシステムのCAストアーを使用します。) | + +### 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +```json +{ + "result": { + "message": "downloading shards 1-2,5" + }, + "status": "success", + "type": "response" +} +``` + + +*JSON-RPC* + +```json +200 OK + +{ + "result": { + "message": "downloading shards 1-2,5", + "status": "success" + } +} +``` + + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `message` | 文字列 | この要求に対応して実行されたアクションを説明するメッセージ。 | + +**ヒント:** サーバーで使用可能なシャードを確認するには、シャードストアーとして設定されたロケーションのサブフォルダー(`rippled.cfg`の`[shard_db]`の`path`パラメーター)を調べます。フォルダーには、シャードの番号に対応する名前が付いています。これらのフォルダーの1つに、シャードが未完了であることを示す`control.txt`ファイルが含まれていることがあります。 + +### 考えられるエラー + +- [汎用エラータイプ][]のすべて。 +- `notEnabled` - サーバーでシャードストアーを使用するように設定されていません。 +- `tooBusy` - サーバーはすでに、ピアツーピアネットワークから、または以前の`download_shard`要求の結果として、シャードをダウンロード中です。 +- `invalidParams` - 要求で1つ以上の必須フィールドが省略されていたか、または指定されたフィールドのデータタイプが誤っています。 + + + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_cleaner.ja.md b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_cleaner.ja.md index a8c240b17a..2b858932bb 100644 --- a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_cleaner.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_cleaner.ja.md @@ -1,73 +1,73 @@ -# ledger_cleaner -[[ソース]
](https://github.com/ripple/rippled/blob/df54b47cd0957a31837493cd69e4d9aade0b5055/src/ripple/rpc/handlers/LedgerCleaner.cpp "Source") - -`ledger_cleaner`コマンドは[レジャークリーナー](https://github.com/ripple/rippled/blob/f313caaa73b0ac89e793195dcc2a5001786f916f/src/ripple/app/ledger/README.md#the-ledger-cleaner)を制御します。レジャークリーナーは、`rippled`のレジャーデータベースの破損を検出して修復できる非同期メンテナンスプロセスです。 - -_`ledger_cleaner`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "command": "ledger_cleaner", - "max_ledger": 13818756, - "min_ledger": 13818000, - "stop": false -} -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:--------------|:--------------------------------|:---------------------------| -| `ledger` | 数値(レジャーシーケンス番号) | _(省略可)_ 指定されている場合は、このレジャーのみをチェックして訂正します。 | -| `max_ledger` | 数値(レジャーシーケンス番号) | _(省略可)_ シーケンス番号がこの番号以下のレジャーをチェックするようにレジャークリーナーを設定します。 | -| `min_ledger` | 数値(レジャーシーケンス番号) | _(省略可)_ シーケンス番号がこの番号以上のレジャーをチェックするようにレジャークリーナーを設定します。 | -| `full` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのレジャー状態オブジェクトとトランザクションを修正します。デフォルトではfalseです。`ledger`が指定されている場合は、自動的に`true`に設定されます。 | -| `fix_txns` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのトランザクションを修正します。指定されている場合は`full`をオーバーライドします。 | -| `check_nodes` | ブール値 | _(省略可)_ trueの場合は、指定されているレジャーのレジャー状態オブジェクトを修正します。指定されている場合は`full`をオーバーライドします。 | -| `stop` | ブール値 | _(省略可)_ trueの場合は、レジャークリーナーを無効にします。 | - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -200 OK -{ - "result" : { - "message" : "Cleaner configured", - "status" : "success" - } -} - -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:---------------------------------| -| `message` | 文字列 | `Cleaner configured` : 正常終了の場合。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `internal` : いずれかのパラメーターが正しく指定されていない場合。(これはバグです。本来のエラーコードは`invalidParams`です。) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# ledger_cleaner +[[ソース]
](https://github.com/ripple/rippled/blob/df54b47cd0957a31837493cd69e4d9aade0b5055/src/ripple/rpc/handlers/LedgerCleaner.cpp "Source") + +`ledger_cleaner`コマンドは[レジャークリーナー](https://github.com/ripple/rippled/blob/f313caaa73b0ac89e793195dcc2a5001786f916f/src/ripple/app/ledger/README.md#the-ledger-cleaner)を制御します。レジャークリーナーは、`rippled`のレジャーデータベースの破損を検出して修復できる非同期メンテナンスプロセスです。 + +_`ledger_cleaner`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "command": "ledger_cleaner", + "max_ledger": 13818756, + "min_ledger": 13818000, + "stop": false +} +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:--------------|:--------------------------------|:---------------------------| +| `ledger` | 数値(レジャーシーケンス番号) | _(省略可)_ 指定されている場合は、このレジャーのみをチェックして訂正します。 | +| `max_ledger` | 数値(レジャーシーケンス番号) | _(省略可)_ シーケンス番号がこの番号以下のレジャーをチェックするようにレジャークリーナーを設定します。 | +| `min_ledger` | 数値(レジャーシーケンス番号) | _(省略可)_ シーケンス番号がこの番号以上のレジャーをチェックするようにレジャークリーナーを設定します。 | +| `full` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのレジャー状態オブジェクトとトランザクションを修正します。デフォルトではfalseです。`ledger`が指定されている場合は、自動的に`true`に設定されます。 | +| `fix_txns` | ブール値 | _(省略可)_ trueの場合は、指定されたレジャーのトランザクションを修正します。指定されている場合は`full`をオーバーライドします。 | +| `check_nodes` | ブール値 | _(省略可)_ trueの場合は、指定されているレジャーのレジャー状態オブジェクトを修正します。指定されている場合は`full`をオーバーライドします。 | +| `stop` | ブール値 | _(省略可)_ trueの場合は、レジャークリーナーを無効にします。 | + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +200 OK +{ + "result" : { + "message" : "Cleaner configured", + "status" : "success" + } +} + +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:---------------------------------| +| `message` | 文字列 | `Cleaner configured` : 正常終了の場合。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `internal` : いずれかのパラメーターが正しく指定されていない場合。(これはバグです。本来のエラーコードは`invalidParams`です。) + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_request.ja.md b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_request.ja.md index 1b3b73ac26..1bf2f0b812 100644 --- a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_request.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/ledger_request.ja.md @@ -1,183 +1,183 @@ -# ledger_request -[[ソース]
](https://github.com/ripple/rippled/blob/e980e69eca9ea843d200773eb1f43abe3848f1a0/src/ripple/rpc/handlers/LedgerRequest.cpp "Source") - -`ledger_request`コマンドは、サーバーに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。これは、サーバーが直接接続しているピアの1つにそのレジャーが存在している場合にのみ機能します。場合によっては、レジャーを完全に取得するにはこのコマンドを繰り返し実行する必要があります。 - -*`ledger_request`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 102, - "command": "ledger_request", - "ledger_index": 13800000 -} -``` - -*コマンドライン* - -``` -rippled ledger_request 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" - } -} -``` - -*コマンドライン(進行中)* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "hash" : "EB68B5B4F6F06BF59B6D7532BCB98BB98E2F10C2435D895217AA0AA7E910FBD5", - "have_header" : true, - "have_state" : false, - "have_transactions" : false, - "needed_state_hashes" : [ - "C46F7B9E795135447AF24BAF999AB8FC1612A997F6EAAF8B784C226FF0BD8E25", - "E48F528E4FC2A1DC492C6264B27B420E2285B2A3ECF3A253DB480DA5BFB7F858", - "B62CD0B2E1277F78BC279FA037F3F747587299B60D23A551C3F63DD137DC0CF8", - "30014C55701FB8426E496A47B297BEC9E8F5BFA47763CC22DBD9024CC81D39DD", - "7EB59A853913898FCEA7B701637F33B1054BD36C32A0B910B612EFB9CDFF6334", - "07ECAD3066D62583883979A2FADAADC8F7D89FA07375843C8A47452639AB2421", - "97A87E5246AF78463485CB27E08D561E22AAF33D5E2F08FE2FACAE0D05CB5478", - "50A0525E238629B32324C9F59B4ECBEFE3C21DC726DB9AB3B6758BD1838DFF68", - "8C541B1ED47C9282E2A28F0B7F3DDFADF06644CAB71B15A3E67D04C5FAFE9BF4", - "2C6CC536C778D8C0F601E35DA7DD9888C288897E4F603E76357CE2F47E8A7A9F", - "309E78DEC67D5725476A59E114850556CC693FB6D92092997ADE97E3EFF473CC", - "8EFF61B6A636AF6B4314CAC0C08F4FED0759E1F782178A822EDE98275E5E4B10", - "9535645E5D249AC0B6126005B79BB981CBA00286E00154D20A3BCF65743EA3CA", - "69F5D6FCB41D1E6CEA5ADD42CBD194086B45E957D497DF7AEE62ADAD485660CE", - "07E93A95DBB0B8A00925DE0DF6D27E41CACC77EF75055A89815006109D82EAD3", - "7FDF25F660235DCAD649676E3E6729DF920A9B0B4B6A3B090A3C64D7BDE2FB20" - ], - "needed_transaction_hashes" : [ - "BA914854F2F5EDFCBD6E3E0B168E5D4CD0FC92927BEE408C6BD38D4F52505A34", - "AE3A2DB537B01EB33BB3A677242DE52C9AE0A64BD9222EE55E52855276E7EA2A", - "E145F737B255D93769673CBA6DEBA4F6AC7387A309DAACC72EA5B07ECF03C215", - "073A118552AA60E1D3C6BE6F65E4AFA01C582D9C41CCC2887244C19D9BFA7741", - "562DB8580CD3FE19AF5CEA61C2858C10091151B924DBF2AEB7CBB8722E683204", - "437C0D1C2391057079E9539CF028823D29E6437A965284F6E54CEBF1D25C5D56", - "1F069486AF5533883609E5C8DB907E97273D9A782DF26F5E5811F1C42ED63A3D", - "CAA6B7DA68EBA71254C218C81A9EA029A179694BDD0D75A49FB03A7D57BCEE49" - ], - "peers" : 6, - "status" : "success", - "timeouts" : 1 - } -} -``` - -*コマンドライン(成功)* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "ledger" : { - "accepted" : true, - "account_hash" : "84EBB27D9510AD5B9A3A328201921B3FD418D4A349E85D3DC69E33C7B506407F", - "close_time" : 486691300, - "close_time_human" : "2015-Jun-04 00:01:40", - "close_time_resolution" : 10, - "closed" : true, - "hash" : "DCF5D723ECEE1EF56D2B0024CD9BDFF2D8E3DC211BD2B9460165922564ACD863", - "ledger_hash" : "DCF5D723ECEE1EF56D2B0024CD9BDFF2D8E3DC211BD2B9460165922564ACD863", - "ledger_index" : "13840000", - "parent_hash" : "8A3F6FBC62C11DE4538D969F9C7966234635FE6CEB1133DDC37220978F8100A9", - "seqNum" : "13840000", - "totalCoins" : "99999022883526403", - "total_coins" : "99999022883526403", - "transaction_hash" : "3D759EF3AF1AE2F78716A8CCB2460C3030F82687E54206E883703372B9E1770C" - }, - "ledger_index" : 13840000, - "status" : "success" - } -} - -``` - - - -3つの応答フォーマットは次のとおりです。 - -1. `lgrNotFound`エラーが返された場合、応答の`acquiring`フィールドには、ピアツーピアネットワークからのレジャー取得状況を示す[レジャー要求オブジェクト](#レジャー要求オブジェクト)が指定されています。 -2. サーバーが現在データを取得中であると応答に示される場合、その結果の本文として、ピアツーピアネットワークからのレジャー取得状況を示す[レジャー要求オブジェクト](#レジャー要求オブジェクト)が表示されます。 -3. レジャーが完全に利用可能な場合、応答には[レジャーヘッダー](ledger-header.html)が表示されます。 - -### レジャー要求オブジェクト - -サーバーでレジャーの取得操作が進行中であり、まだ完了していない場合は、`rippled`サーバーはレジャー取得状況を示すレジャー要求オブジェクトを返します。このオブジェクトのフィールドを次に示します。 - -| `Field` | 型 | 説明 | -|:----------------------------|:-----------------|:----------------------------| -| `hash` | 文字列 | (省略される場合があります)要求されるレジャーの[ハッシュ][](サーバーがこのハッシュを認識している場合)。 | -| `have_header` | ブール値 | 要求されたレジャーのヘッダーセクションがサーバーにあるかどうか。 | -| `have_state` | ブール値 | (省略される場合があります)要求されたレジャーの[アカウント状態セクション](ledgers.html#ツリーの形式)がサーバーにあるかどうか。 | -| `have_transactions` | ブール値 | (省略される場合があります)要求されたレジャーのトランザクションセクションがサーバーにあるかどうか。 | -| `needed_state_hashes` | 文字列の配列 | (省略される場合があります)サーバーが取得する必要がある[状態ツリー](ledgers.html#ツリーの形式)内のオブジェクトのハッシュ(最大16個)。 | -| `needed_transaction_hashes` | 文字列の配列 | (省略される場合があります)サーバーが取得する必要があるトランザクションツリー内のオブジェクトのハッシュ(最大16個)。 | -| `peers` | 数値 | このレジャーを見つけるためにサーバーが照会するピアの数。 | -| `timeouts` | 数値 | これまでにこのレジャーの取得操作がタイムアウトした回数。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。このエラーは、指定したレジャーインデックスが現在進行中のレジャーのインデックス以上である場合にも発生します。 -* `lgrNotFound` - レジャーがまだ利用可能ではない場合。これは、サーバーがレジャーの取得を開始していますが、要求されたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコード`ledgerNotFound`が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# ledger_request +[[ソース]
](https://github.com/ripple/rippled/blob/e980e69eca9ea843d200773eb1f43abe3848f1a0/src/ripple/rpc/handlers/LedgerRequest.cpp "Source") + +`ledger_request`コマンドは、サーバーに対し接続しているピアから特定のレジャーバージョンを取得するように指示します。これは、サーバーが直接接続しているピアの1つにそのレジャーが存在している場合にのみ機能します。場合によっては、レジャーを完全に取得するにはこのコマンドを繰り返し実行する必要があります。 + +*`ledger_request`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 102, + "command": "ledger_request", + "ledger_index": 13800000 +} +``` + +*コマンドライン* + +``` +rippled ledger_request 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" + } +} +``` + +*コマンドライン(進行中)* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "hash" : "EB68B5B4F6F06BF59B6D7532BCB98BB98E2F10C2435D895217AA0AA7E910FBD5", + "have_header" : true, + "have_state" : false, + "have_transactions" : false, + "needed_state_hashes" : [ + "C46F7B9E795135447AF24BAF999AB8FC1612A997F6EAAF8B784C226FF0BD8E25", + "E48F528E4FC2A1DC492C6264B27B420E2285B2A3ECF3A253DB480DA5BFB7F858", + "B62CD0B2E1277F78BC279FA037F3F747587299B60D23A551C3F63DD137DC0CF8", + "30014C55701FB8426E496A47B297BEC9E8F5BFA47763CC22DBD9024CC81D39DD", + "7EB59A853913898FCEA7B701637F33B1054BD36C32A0B910B612EFB9CDFF6334", + "07ECAD3066D62583883979A2FADAADC8F7D89FA07375843C8A47452639AB2421", + "97A87E5246AF78463485CB27E08D561E22AAF33D5E2F08FE2FACAE0D05CB5478", + "50A0525E238629B32324C9F59B4ECBEFE3C21DC726DB9AB3B6758BD1838DFF68", + "8C541B1ED47C9282E2A28F0B7F3DDFADF06644CAB71B15A3E67D04C5FAFE9BF4", + "2C6CC536C778D8C0F601E35DA7DD9888C288897E4F603E76357CE2F47E8A7A9F", + "309E78DEC67D5725476A59E114850556CC693FB6D92092997ADE97E3EFF473CC", + "8EFF61B6A636AF6B4314CAC0C08F4FED0759E1F782178A822EDE98275E5E4B10", + "9535645E5D249AC0B6126005B79BB981CBA00286E00154D20A3BCF65743EA3CA", + "69F5D6FCB41D1E6CEA5ADD42CBD194086B45E957D497DF7AEE62ADAD485660CE", + "07E93A95DBB0B8A00925DE0DF6D27E41CACC77EF75055A89815006109D82EAD3", + "7FDF25F660235DCAD649676E3E6729DF920A9B0B4B6A3B090A3C64D7BDE2FB20" + ], + "needed_transaction_hashes" : [ + "BA914854F2F5EDFCBD6E3E0B168E5D4CD0FC92927BEE408C6BD38D4F52505A34", + "AE3A2DB537B01EB33BB3A677242DE52C9AE0A64BD9222EE55E52855276E7EA2A", + "E145F737B255D93769673CBA6DEBA4F6AC7387A309DAACC72EA5B07ECF03C215", + "073A118552AA60E1D3C6BE6F65E4AFA01C582D9C41CCC2887244C19D9BFA7741", + "562DB8580CD3FE19AF5CEA61C2858C10091151B924DBF2AEB7CBB8722E683204", + "437C0D1C2391057079E9539CF028823D29E6437A965284F6E54CEBF1D25C5D56", + "1F069486AF5533883609E5C8DB907E97273D9A782DF26F5E5811F1C42ED63A3D", + "CAA6B7DA68EBA71254C218C81A9EA029A179694BDD0D75A49FB03A7D57BCEE49" + ], + "peers" : 6, + "status" : "success", + "timeouts" : 1 + } +} +``` + +*コマンドライン(成功)* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "ledger" : { + "accepted" : true, + "account_hash" : "84EBB27D9510AD5B9A3A328201921B3FD418D4A349E85D3DC69E33C7B506407F", + "close_time" : 486691300, + "close_time_human" : "2015-Jun-04 00:01:40", + "close_time_resolution" : 10, + "closed" : true, + "hash" : "DCF5D723ECEE1EF56D2B0024CD9BDFF2D8E3DC211BD2B9460165922564ACD863", + "ledger_hash" : "DCF5D723ECEE1EF56D2B0024CD9BDFF2D8E3DC211BD2B9460165922564ACD863", + "ledger_index" : "13840000", + "parent_hash" : "8A3F6FBC62C11DE4538D969F9C7966234635FE6CEB1133DDC37220978F8100A9", + "seqNum" : "13840000", + "totalCoins" : "99999022883526403", + "total_coins" : "99999022883526403", + "transaction_hash" : "3D759EF3AF1AE2F78716A8CCB2460C3030F82687E54206E883703372B9E1770C" + }, + "ledger_index" : 13840000, + "status" : "success" + } +} + +``` + + + +3つの応答フォーマットは次のとおりです。 + +1. `lgrNotFound`エラーが返された場合、応答の`acquiring`フィールドには、ピアツーピアネットワークからのレジャー取得状況を示す[レジャー要求オブジェクト](#レジャー要求オブジェクト)が指定されています。 +2. サーバーが現在データを取得中であると応答に示される場合、その結果の本文として、ピアツーピアネットワークからのレジャー取得状況を示す[レジャー要求オブジェクト](#レジャー要求オブジェクト)が表示されます。 +3. レジャーが完全に利用可能な場合、応答には[レジャーヘッダー](ledger-header.html)が表示されます。 + +### レジャー要求オブジェクト + +サーバーでレジャーの取得操作が進行中であり、まだ完了していない場合は、`rippled`サーバーはレジャー取得状況を示すレジャー要求オブジェクトを返します。このオブジェクトのフィールドを次に示します。 + +| `Field` | 型 | 説明 | +|:----------------------------|:-----------------|:----------------------------| +| `hash` | 文字列 | (省略される場合があります)要求されるレジャーの[ハッシュ][](サーバーがこのハッシュを認識している場合)。 | +| `have_header` | ブール値 | 要求されたレジャーのヘッダーセクションがサーバーにあるかどうか。 | +| `have_state` | ブール値 | (省略される場合があります)要求されたレジャーの[アカウント状態セクション](ledgers.html#ツリーの形式)がサーバーにあるかどうか。 | +| `have_transactions` | ブール値 | (省略される場合があります)要求されたレジャーのトランザクションセクションがサーバーにあるかどうか。 | +| `needed_state_hashes` | 文字列の配列 | (省略される場合があります)サーバーが取得する必要がある[状態ツリー](ledgers.html#ツリーの形式)内のオブジェクトのハッシュ(最大16個)。 | +| `needed_transaction_hashes` | 文字列の配列 | (省略される場合があります)サーバーが取得する必要があるトランザクションツリー内のオブジェクトのハッシュ(最大16個)。 | +| `peers` | 数値 | このレジャーを見つけるためにサーバーが照会するピアの数。 | +| `timeouts` | 数値 | これまでにこのレジャーの取得操作がタイムアウトした回数。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。このエラーは、指定したレジャーインデックスが現在進行中のレジャーのインデックス以上である場合にも発生します。 +* `lgrNotFound` - レジャーがまだ利用可能ではない場合。これは、サーバーがレジャーの取得を開始していますが、要求されたレジャーが接続されたどのピアにもない場合には失敗する可能性があることを意味します。(以前はこのエラーにはコード`ledgerNotFound`が使用されていました。)[更新: rippled 0.30.1][新規: rippled 0.30.1] + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/log_level.ja.md b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/log_level.ja.md index 45ba754579..589f20bdc6 100644 --- a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/log_level.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/log_level.ja.md @@ -1,140 +1,140 @@ -# log_level -[[ソース]
](https://github.com/ripple/rippled/blob/155fcdbcd0b4927152892c8c8be01d9cf62bed68/src/ripple/rpc/handlers/LogLevel.cpp "Source") - -`log_level`コマンドは`rippled`サーバーのログ詳細レベルを変更するか、各ログメッセージカテゴリー(_パーティション_)の現在のログレベルを返します。 - -_`log_level`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": "ll1", - "command": "log_level", - "severity": "debug", - "partition": "PathRequest" -} -``` - -*コマンドライン* - -``` -#Syntax: log_level [[partition] severity] -rippled log_level PathRequest debug -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:------------|:-------|:------------------------------------------------------| -| `severity` | 文字列 | _(省略可)_ 設定するログの詳細レベル。以下に、有効な値を詳細レベルの低いものから順に示します。`fatal`、`error`、`warn`、`info`、`debug`、および`trace`。省略すると、すべてのカテゴリーの現在のログ詳細レベルが返されます。 | -| `partition` | 文字列 | _(省略可)_`severity`が指定されていない場合は無視されます。変更するログカテゴリー。省略されている場合、または`base`の値が指定されている場合は、すべてのカテゴリーのログレベルを設定します。 | - -### 応答フォーマット - -成功した場合の応答例: - - - -*コマンドライン(ログレベルの設定)* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "status" : "success" - } -} -``` - -*コマンドライン(ログレベルの確認)* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "levels" : { - "AmendmentTable" : "Error", - "Application" : "Error", - "CancelOffer" : "Error", - "Collector" : "Error", - "CreateOffer" : "Error", - "DeferredCredits" : "Error", - "FeeVote" : "Error", - "InboundLedger" : "Error", - "JobQueue" : "Error", - "Ledger" : "Error", - "LedgerCleaner" : "Error", - "LedgerConsensus" : "Error", - "LedgerEntrySet" : "Error", - "LedgerMaster" : "Error", - "LedgerTiming" : "Error", - "LoadManager" : "Error", - "LoadMonitor" : "Error", - "NetworkOPs" : "Error", - "NodeObject" : "Error", - "OrderBookDB" : "Error", - "Overlay" : "Error", - "PathRequest" : "Debug", - "Payment" : "Error", - "Peer" : "Error", - "PeerFinder" : "Error", - "Protocol" : "Error", - "RPC" : "Error", - "RPCErr" : "Error", - "RPCHandler" : "Error", - "RPCManager" : "Error", - "Resolver" : "Error", - "Resource" : "Error", - "RippleCalc" : "Error", - "SHAMap" : "Error", - "SHAMapStore" : "Error", - "SNTPClient" : "Error", - "STAmount" : "Error", - "SerializedLedger" : "Error", - "Server" : "Error", - "SetAccount" : "Error", - "SetTrust" : "Error", - "TaggedCache" : "Error", - "TransactionAcquire" : "Error", - "TransactionEngine" : "Error", - "UVL" : "Error", - "UniqueNodeList" : "Error", - "Validations" : "Error", - "WALCheckpointer" : "Error", - "WebSocket" : "Trace", - "base" : "Error" - }, - "status" : "success" - } -} -``` - - - -応答は[標準フォーマット][]に従っています。応答フォーマットは、要求に`severity`が指定されているかどうかに応じて異なります。指定されていた場合はログレベルが変更され、成功した場合の結果には追加フィールドが含まれません。 - -それ以外の場合、要求には以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `level` | オブジェクト | 各カテゴリーの現在のログレベル。このカテゴリーリストは、今後のリリースで予告なく変更される場合があります。このコマンドに対する要求で、フィールド名を`partition`の値として使用できます。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# log_level +[[ソース]
](https://github.com/ripple/rippled/blob/155fcdbcd0b4927152892c8c8be01d9cf62bed68/src/ripple/rpc/handlers/LogLevel.cpp "Source") + +`log_level`コマンドは`rippled`サーバーのログ詳細レベルを変更するか、各ログメッセージカテゴリー(_パーティション_)の現在のログレベルを返します。 + +_`log_level`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": "ll1", + "command": "log_level", + "severity": "debug", + "partition": "PathRequest" +} +``` + +*コマンドライン* + +``` +#Syntax: log_level [[partition] severity] +rippled log_level PathRequest debug +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:------------|:-------|:------------------------------------------------------| +| `severity` | 文字列 | _(省略可)_ 設定するログの詳細レベル。以下に、有効な値を詳細レベルの低いものから順に示します。`fatal`、`error`、`warn`、`info`、`debug`、および`trace`。省略すると、すべてのカテゴリーの現在のログ詳細レベルが返されます。 | +| `partition` | 文字列 | _(省略可)_`severity`が指定されていない場合は無視されます。変更するログカテゴリー。省略されている場合、または`base`の値が指定されている場合は、すべてのカテゴリーのログレベルを設定します。 | + +### 応答フォーマット + +成功した場合の応答例: + + + +*コマンドライン(ログレベルの設定)* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "status" : "success" + } +} +``` + +*コマンドライン(ログレベルの確認)* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "levels" : { + "AmendmentTable" : "Error", + "Application" : "Error", + "CancelOffer" : "Error", + "Collector" : "Error", + "CreateOffer" : "Error", + "DeferredCredits" : "Error", + "FeeVote" : "Error", + "InboundLedger" : "Error", + "JobQueue" : "Error", + "Ledger" : "Error", + "LedgerCleaner" : "Error", + "LedgerConsensus" : "Error", + "LedgerEntrySet" : "Error", + "LedgerMaster" : "Error", + "LedgerTiming" : "Error", + "LoadManager" : "Error", + "LoadMonitor" : "Error", + "NetworkOPs" : "Error", + "NodeObject" : "Error", + "OrderBookDB" : "Error", + "Overlay" : "Error", + "PathRequest" : "Debug", + "Payment" : "Error", + "Peer" : "Error", + "PeerFinder" : "Error", + "Protocol" : "Error", + "RPC" : "Error", + "RPCErr" : "Error", + "RPCHandler" : "Error", + "RPCManager" : "Error", + "Resolver" : "Error", + "Resource" : "Error", + "RippleCalc" : "Error", + "SHAMap" : "Error", + "SHAMapStore" : "Error", + "SNTPClient" : "Error", + "STAmount" : "Error", + "SerializedLedger" : "Error", + "Server" : "Error", + "SetAccount" : "Error", + "SetTrust" : "Error", + "TaggedCache" : "Error", + "TransactionAcquire" : "Error", + "TransactionEngine" : "Error", + "UVL" : "Error", + "UniqueNodeList" : "Error", + "Validations" : "Error", + "WALCheckpointer" : "Error", + "WebSocket" : "Trace", + "base" : "Error" + }, + "status" : "success" + } +} +``` + + + +応答は[標準フォーマット][]に従っています。応答フォーマットは、要求に`severity`が指定されているかどうかに応じて異なります。指定されていた場合はログレベルが変更され、成功した場合の結果には追加フィールドが含まれません。 + +それ以外の場合、要求には以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:--------|:-------|:----------------------------------------------------------| +| `level` | オブジェクト | 各カテゴリーの現在のログレベル。このカテゴリーリストは、今後のリリースで予告なく変更される場合があります。このコマンドに対する要求で、フィールド名を`partition`の値として使用できます。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/logrotate.ja.md b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/logrotate.ja.md index 199ceeaa76..5c3317e10c 100644 --- a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/logrotate.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/logrotate.ja.md @@ -1,80 +1,80 @@ -# logrotate -[[ソース]
](https://github.com/ripple/rippled/blob/743bd6c9175c472814448ea889413be79dfd1c07/src/ripple/rpc/handlers/LogRotate.cpp "Source") - -`logrotate`コマンドは、ログファイルを閉じて再度開きます。これは、Linuxファイルシステムでのログローテーションを促進することを目的としています。 - -_`logrotate`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": "lr1", - "command": "logrotate" -} -``` - -*コマンドライン* - -``` -rippled logrotate -``` - - - -要求にはパラメーターが含まれていません。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -200 OK -{ - "result" : { - "message" : "The log file was closed and reopened.", - "status" : "success" - } -} - -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "message" : "The log file was closed and reopened.", - "status" : "success" - } -} - -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `message` | 文字列 | 正常に完了した場合、次のメッセージが含まれています。 `The log file was closed and reopened.` | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# logrotate +[[ソース]
](https://github.com/ripple/rippled/blob/743bd6c9175c472814448ea889413be79dfd1c07/src/ripple/rpc/handlers/LogRotate.cpp "Source") + +`logrotate`コマンドは、ログファイルを閉じて再度開きます。これは、Linuxファイルシステムでのログローテーションを促進することを目的としています。 + +_`logrotate`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": "lr1", + "command": "logrotate" +} +``` + +*コマンドライン* + +``` +rippled logrotate +``` + + + +要求にはパラメーターが含まれていません。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +200 OK +{ + "result" : { + "message" : "The log file was closed and reopened.", + "status" : "success" + } +} + +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "message" : "The log file was closed and reopened.", + "status" : "success" + } +} + +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `message` | 文字列 | 正常に完了した場合、次のメッセージが含まれています。 `The log file was closed and reopened.` | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/server-control-methods/connect.ja.md b/content/references/rippled-api/admin-rippled-methods/server-control-methods/connect.ja.md index 97a14fcb26..a92254f5d7 100644 --- a/content/references/rippled-api/admin-rippled-methods/server-control-methods/connect.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/server-control-methods/connect.ja.md @@ -1,101 +1,101 @@ -# connect -[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/Connect.cpp "Source") - -`connect`コマンドは、`rippled`サーバーを特定のピア`rippled`サーバーに強制的に接続します。 - -*`connect`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "command": "connect", - "ip": "192.170.145.88", - "port": 51235 -} -``` - -*JSON-RPC* - -``` -{ - "method": "connect", - "params": [ - { - "ip": "192.170.145.88", - "port": 51235 - } - ] -} -``` - - -*コマンドライン* - -``` -#Syntax: connect ip [port] -rippled connect 192.170.145.88 51235 -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `ip` | 文字列 | 接続するサーバーのIPアドレス。 | -| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは6561です。 | - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -{ - "result" : { - "message" : "connecting", - "status" : "success" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "message" : "connecting", - "status" : "success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:-------------------------------------------------------| -| `message` | 文字列 | コマンドが成功した場合の値は`connecting`。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* スタンドアロンモードでは接続できません - スタンドアロンモードではネットワーク関連のコマンドが無効にされています。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# connect +[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/Connect.cpp "Source") + +`connect`コマンドは、`rippled`サーバーを特定のピア`rippled`サーバーに強制的に接続します。 + +*`connect`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "command": "connect", + "ip": "192.170.145.88", + "port": 51235 +} +``` + +*JSON-RPC* + +``` +{ + "method": "connect", + "params": [ + { + "ip": "192.170.145.88", + "port": 51235 + } + ] +} +``` + + +*コマンドライン* + +``` +#Syntax: connect ip [port] +rippled connect 192.170.145.88 51235 +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:--------|:-------|:----------------------------------------------------------| +| `ip` | 文字列 | 接続するサーバーのIPアドレス。 | +| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは6561です。 | + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +{ + "result" : { + "message" : "connecting", + "status" : "success" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "message" : "connecting", + "status" : "success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:-------------------------------------------------------| +| `message` | 文字列 | コマンドが成功した場合の値は`connecting`。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* スタンドアロンモードでは接続できません - スタンドアロンモードではネットワーク関連のコマンドが無効にされています。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/server-control-methods/ledger_accept.ja.md b/content/references/rippled-api/admin-rippled-methods/server-control-methods/ledger_accept.ja.md index e5b90adb6d..6e56e97fb9 100644 --- a/content/references/rippled-api/admin-rippled-methods/server-control-methods/ledger_accept.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/server-control-methods/ledger_accept.ja.md @@ -1,64 +1,64 @@ -# ledger_accept -[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/LedgerAccept.cpp "Source") - -`ledger_accept`メソッドは、サーバーが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。このメソッドはテスト専用であり、`rippled`サーバーがスタンドアロンモードで実行されている場合にのみ使用できます。 - -*`ledger_accept`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": "Accept my ledger!", - "command": "ledger_accept" -} -``` - -*コマンドライン* - -``` -#Syntax: ledger_accept -rippled ledger_accept -``` - - - -この要求はパラメーターを受け入れません。 - -### 応答フォーマット - -処理が成功した応答の例: -```js -{ - "id": "Accept my ledger!", - "status": "success", - "type": "response", - "result": { - "ledger_current_index": 6643240 - } -} -``` - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-----------------|:---------------------------------| -| `ledger_current_index` | 符号なし整数 | 新規に作成される「現行」レジャーのシーケンス番号 | - -**注記:** レジャーを閉鎖すると、`rippled`がそのレジャーのトランザクションの正規順序を決定してリプレイします。これにより、以前に現行レジャーに暫定的に適用されていたトランザクションの結果が変化することがあります。 - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `notStandAlone` - `rippled`サーバーが現在スタンドアロンモードで実行されていない場合。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# ledger_accept +[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/LedgerAccept.cpp "Source") + +`ledger_accept`メソッドは、サーバーが現在処理中のレジャーを強制的に終了し、次のレジャー番号に進むようにします。このメソッドはテスト専用であり、`rippled`サーバーがスタンドアロンモードで実行されている場合にのみ使用できます。 + +*`ledger_accept`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": "Accept my ledger!", + "command": "ledger_accept" +} +``` + +*コマンドライン* + +``` +#Syntax: ledger_accept +rippled ledger_accept +``` + + + +この要求はパラメーターを受け入れません。 + +### 応答フォーマット + +処理が成功した応答の例: +```js +{ + "id": "Accept my ledger!", + "status": "success", + "type": "response", + "result": { + "ledger_current_index": 6643240 + } +} +``` + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-----------------|:---------------------------------| +| `ledger_current_index` | 符号なし整数 | 新規に作成される「現行」レジャーのシーケンス番号 | + +**注記:** レジャーを閉鎖すると、`rippled`がそのレジャーのトランザクションの正規順序を決定してリプレイします。これにより、以前に現行レジャーに暫定的に適用されていたトランザクションの結果が変化することがあります。 + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `notStandAlone` - `rippled`サーバーが現在スタンドアロンモードで実行されていない場合。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/server-control-methods/stop.ja.md b/content/references/rippled-api/admin-rippled-methods/server-control-methods/stop.ja.md index 8a206680d6..96e5f6b794 100644 --- a/content/references/rippled-api/admin-rippled-methods/server-control-methods/stop.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/server-control-methods/stop.ja.md @@ -1,88 +1,88 @@ -# stop -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Stop.cpp "Source") - -サーバーのグレースフルシャットダウンを行います。 - -_`stop`要求は、権限のないユーザーは実行できない*[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 0, - "command": "stop" -} -``` - -*JSON-RPC* - -``` -{ - "method": "stop", - "params": [ - {} - ] -} -``` - -*コマンドライン* - -``` -rippled stop -``` - - - -要求にはパラメーターが含まれていません。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -{ - "result" : { - "message" : "ripple server stopping", - "status" : "success" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "message" : "ripple server stopping", - "status" : "success" - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:-------------------------------------| -| `message` | 文字列 | `ripple server stopping` : 正常終了の場合。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# stop +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Stop.cpp "Source") + +サーバーのグレースフルシャットダウンを行います。 + +_`stop`要求は、権限のないユーザーは実行できない*[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 0, + "command": "stop" +} +``` + +*JSON-RPC* + +``` +{ + "method": "stop", + "params": [ + {} + ] +} +``` + +*コマンドライン* + +``` +rippled stop +``` + + + +要求にはパラメーターが含まれていません。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +{ + "result" : { + "message" : "ripple server stopping", + "status" : "success" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "message" : "ripple server stopping", + "status" : "success" + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:-------------------------------------| +| `message` | 文字列 | `ripple server stopping` : 正常終了の場合。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/server-control-methods/validation_seed.ja.md b/content/references/rippled-api/admin-rippled-methods/server-control-methods/validation_seed.ja.md index f5f4cf2485..c20b6df166 100644 --- a/content/references/rippled-api/admin-rippled-methods/server-control-methods/validation_seed.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/server-control-methods/validation_seed.ja.md @@ -1,91 +1,91 @@ -# validation_seed -[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ValidationSeed.cpp "Source") - -`validation_seed`コマンドは、rippledが検証の署名に使用するシークレット値を一時的に設定します。サーバーを再起動すると、この値は構成ファイルに基づいてリセットされます。[rippled 0.29.1 以降では無効](https://github.com/ripple/rippled/releases/tag/0.29.1-rc1 "BADGE_RED") - -*`validation_seed`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": "set_seed_1", - "command": "validation_seed", - "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" -} -``` - -*コマンドライン* - -``` -#Syntax: validation_seed [secret] -rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------|:-------|:---------------------------------------------------------| -| `secret` | 文字列 | _(省略可)_ 指定されている場合は、この値はキーペアの検証のためのシークレット値として使用されます。有効なフォーマットには、XRP Ledgerの[base58][]フォーマット、[RFC-1751](https://tools.ietf.org/html/rfc1751)、またはパスフレーズがあります。省略されている場合は、ネットワークへの検証の提案が無効になります。 | - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -200 OK -{ - "result" : { - "status" : "success", - "validation_key" : "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE", - "validation_public_key" : "n9Jx6RS6zSgqsgnuWJifNA9EqgjTKAywqYNReK5NRd1yLBbfC3ng", - "validation_seed" : "snjJkyBGogTem5dFGbcRaThKq2Rt3" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "status" : "success", - "validation_key" : "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE", - "validation_public_key" : "n9Jx6RS6zSgqsgnuWJifNA9EqgjTKAywqYNReK5NRd1yLBbfC3ng", - "validation_seed" : "snjJkyBGogTem5dFGbcRaThKq2Rt3" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:------------------------|:-------|:------------------------------------------| -| `validation_key` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルのシークレットキー([RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマット)。 | -| `validation_public_key` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット) | -| `validation_seed` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット) | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `badSeed` - 要求に無効なシークレット値が指定されていました。この場合は通常、シークレット値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# validation_seed +[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ValidationSeed.cpp "Source") + +`validation_seed`コマンドは、rippledが検証の署名に使用するシークレット値を一時的に設定します。サーバーを再起動すると、この値は構成ファイルに基づいてリセットされます。[rippled 0.29.1 以降では無効](https://github.com/ripple/rippled/releases/tag/0.29.1-rc1 "BADGE_RED") + +*`validation_seed`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": "set_seed_1", + "command": "validation_seed", + "secret": "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE" +} +``` + +*コマンドライン* + +``` +#Syntax: validation_seed [secret] +rippled validation_seed 'BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE' +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------|:-------|:---------------------------------------------------------| +| `secret` | 文字列 | _(省略可)_ 指定されている場合は、この値はキーペアの検証のためのシークレット値として使用されます。有効なフォーマットには、XRP Ledgerの[base58][]フォーマット、[RFC-1751](https://tools.ietf.org/html/rfc1751)、またはパスフレーズがあります。省略されている場合は、ネットワークへの検証の提案が無効になります。 | + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +200 OK +{ + "result" : { + "status" : "success", + "validation_key" : "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE", + "validation_public_key" : "n9Jx6RS6zSgqsgnuWJifNA9EqgjTKAywqYNReK5NRd1yLBbfC3ng", + "validation_seed" : "snjJkyBGogTem5dFGbcRaThKq2Rt3" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "status" : "success", + "validation_key" : "BAWL MAN JADE MOON DOVE GEM SON NOW HAD ADEN GLOW TIRE", + "validation_public_key" : "n9Jx6RS6zSgqsgnuWJifNA9EqgjTKAywqYNReK5NRd1yLBbfC3ng", + "validation_seed" : "snjJkyBGogTem5dFGbcRaThKq2Rt3" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:------------------------|:-------|:------------------------------------------| +| `validation_key` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルのシークレットキー([RFC-1751](https://tools.ietf.org/html/rfc1751)フォーマット)。 | +| `validation_public_key` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルの公開鍵(XRP Ledgerの[base58][]エンコード文字列フォーマット) | +| `validation_seed` | 文字列 | (提案が無効な場合には省略可)これらの検証クレデンシャルのシークレットキー(XRP Ledgerの[base58][]エンコード文字列フォーマット) | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `badSeed` - 要求に無効なシークレット値が指定されていました。この場合は通常、シークレット値が異なるフォーマットの有効文字列(アカウントアドレス、検証の公開鍵など)である可能性があります。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/consensus_info.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/consensus_info.ja.md index 0482080f05..d381478a16 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/consensus_info.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/consensus_info.ja.md @@ -1,233 +1,233 @@ -# consensus_info -[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ConsensusInfo.cpp "Source") - -`consensus_info`コマンドは、デバッグのためのコンセンサスプロセスに関する情報を返します。 - -_`consensus_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 99, - "command": "consensus_info" -} -``` - -*JSON-RPC* - -``` -{ - "method": "consensus_info", - "params": [ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: consensus_info -rippled consensus_info -``` - - - -この要求にはパラメーターはありません。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -{ - "result" : { - "info" : { - "acquired" : { - "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" : "acquired" - }, - "close_granularity" : 10, - "close_percent" : 50, - "close_resolution" : 10, - "close_times" : { - "486082972" : 1, - "486082973" : 4 - }, - "current_ms" : 1003, - "have_time_consensus" : false, - "ledger_seq" : 13701086, - "our_position" : { - "close_time" : 486082973, - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "peer_positions" : { - "0A2EAF919033A036D363D4E5610A66209DDBE8EE" : { - "close_time" : 486082972, - "peer_id" : "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "1567A8C953A86F8428C7B01641D79BBF2FD508F3" : { - "close_time" : 486082973, - "peer_id" : "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "202397A81F20B44CF44EA99AF761295E5A8397D2" : { - "close_time" : 486082973, - "peer_id" : "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC" : { - "close_time" : 486082973, - "peer_id" : "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "EFC49EB648E557CC50A72D715249B80E071F7705" : { - "close_time" : 486082973, - "peer_id" : "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - } - }, - "previous_mseconds" : 2005, - "previous_proposers" : 5, - "proposers" : 5, - "proposing" : false, - "state" : "consensus", - "synched" : true, - "validating" : false - }, - "status" : "success" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "info" : { - "acquired" : { - "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" : "acquired" - }, - "close_granularity" : 10, - "close_percent" : 50, - "close_resolution" : 10, - "close_times" : { - "486082972" : 1, - "486082973" : 4 - }, - "current_ms" : 1003, - "have_time_consensus" : false, - "ledger_seq" : 13701086, - "our_position" : { - "close_time" : 486082973, - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "peer_positions" : { - "0A2EAF919033A036D363D4E5610A66209DDBE8EE" : { - "close_time" : 486082972, - "peer_id" : "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "1567A8C953A86F8428C7B01641D79BBF2FD508F3" : { - "close_time" : 486082973, - "peer_id" : "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "202397A81F20B44CF44EA99AF761295E5A8397D2" : { - "close_time" : 486082973, - "peer_id" : "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC" : { - "close_time" : 486082973, - "peer_id" : "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - }, - "EFC49EB648E557CC50A72D715249B80E071F7705" : { - "close_time" : 486082973, - "peer_id" : "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", - "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", - "propose_seq" : 0, - "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" - } - }, - "previous_mseconds" : 2005, - "previous_proposers" : 5, - "proposers" : 5, - "proposing" : false, - "state" : "consensus", - "synched" : true, - "validating" : false - }, - "status" : "success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `info` | オブジェクト | コンセンサスのデバッグで役立つ可能性のある情報。この出力は、予告なく変更される可能性があります。 | - -`info`オブジェクトに含まれる可能性のあるフィールドについて以下に簡単に説明します。 - -| `Field` | 型 | 説明 | -|:-----------------|:--------|:------------------------------------------------| -| `ledger_seq` | 数値 | 現在コンセンサスプロセスにあるレジャーのシーケンス番号。 | -| `our_position` | オブジェクト | コンセンサスプロセスにあるレジャーについてサーバーが予期する内容。 | -| `peer_positions` | オブジェクト | コンセンサスプロセスにあるピアと各ピアが提案するレジャーバージョンのマップ。 | -| `proposers` | 数値 | このコンセンサスプロセスに参加している信頼できるバリデータの数。信頼できるバリデータは、このサーバー構成に応じて異なります。 | -| `synched` | ブール値 | このサーバー自体が、自分がネットワークと同期中であるとみなしているかどうか。 | -| `state` | 文字列 | 現在進行中のコンセンサスプロセスの部分: `open`、`consensus`、`finished`、または`accepted`。 | - -`info`の唯一のフィールドが`"consensus": "none"`である最小限の結果となることもありますが、これは正常です。これは、サーバーがコンセンサスラウンドの合間にあることを示します。 - -`consensus_info`コマンドを短い間隔で連続して数回実行すると、このコマンドの結果が大きく変化することがあります。 - - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# consensus_info +[[ソース]
](https://github.com/ripple/rippled/blob/a61ffab3f9010d8accfaa98aa3cacc7d38e74121/src/ripple/rpc/handlers/ConsensusInfo.cpp "Source") + +`consensus_info`コマンドは、デバッグのためのコンセンサスプロセスに関する情報を返します。 + +_`consensus_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 99, + "command": "consensus_info" +} +``` + +*JSON-RPC* + +``` +{ + "method": "consensus_info", + "params": [ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: consensus_info +rippled consensus_info +``` + + + +この要求にはパラメーターはありません。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +{ + "result" : { + "info" : { + "acquired" : { + "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" : "acquired" + }, + "close_granularity" : 10, + "close_percent" : 50, + "close_resolution" : 10, + "close_times" : { + "486082972" : 1, + "486082973" : 4 + }, + "current_ms" : 1003, + "have_time_consensus" : false, + "ledger_seq" : 13701086, + "our_position" : { + "close_time" : 486082973, + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "peer_positions" : { + "0A2EAF919033A036D363D4E5610A66209DDBE8EE" : { + "close_time" : 486082972, + "peer_id" : "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "1567A8C953A86F8428C7B01641D79BBF2FD508F3" : { + "close_time" : 486082973, + "peer_id" : "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "202397A81F20B44CF44EA99AF761295E5A8397D2" : { + "close_time" : 486082973, + "peer_id" : "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC" : { + "close_time" : 486082973, + "peer_id" : "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "EFC49EB648E557CC50A72D715249B80E071F7705" : { + "close_time" : 486082973, + "peer_id" : "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + } + }, + "previous_mseconds" : 2005, + "previous_proposers" : 5, + "proposers" : 5, + "proposing" : false, + "state" : "consensus", + "synched" : true, + "validating" : false + }, + "status" : "success" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "info" : { + "acquired" : { + "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" : "acquired" + }, + "close_granularity" : 10, + "close_percent" : 50, + "close_resolution" : 10, + "close_times" : { + "486082972" : 1, + "486082973" : 4 + }, + "current_ms" : 1003, + "have_time_consensus" : false, + "ledger_seq" : 13701086, + "our_position" : { + "close_time" : 486082973, + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "peer_positions" : { + "0A2EAF919033A036D363D4E5610A66209DDBE8EE" : { + "close_time" : 486082972, + "peer_id" : "n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "1567A8C953A86F8428C7B01641D79BBF2FD508F3" : { + "close_time" : 486082973, + "peer_id" : "n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "202397A81F20B44CF44EA99AF761295E5A8397D2" : { + "close_time" : 486082973, + "peer_id" : "n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "5C29005CF4FB479FC49EEFB4A5B075C86DD963CC" : { + "close_time" : 486082973, + "peer_id" : "n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + }, + "EFC49EB648E557CC50A72D715249B80E071F7705" : { + "close_time" : 486082973, + "peer_id" : "n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7", + "previous_ledger" : "0BB01379B51234BAAF501A71C7AB147F595460B689BB9E8252A0B87B5A483623", + "propose_seq" : 0, + "transaction_hash" : "4BC2CE596CBD1321775320E2067F9C06D3862826212C16EF42ABB6A2B0414306" + } + }, + "previous_mseconds" : 2005, + "previous_proposers" : 5, + "proposers" : 5, + "proposing" : false, + "state" : "consensus", + "synched" : true, + "validating" : false + }, + "status" : "success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:--------|:-------|:----------------------------------------------------------| +| `info` | オブジェクト | コンセンサスのデバッグで役立つ可能性のある情報。この出力は、予告なく変更される可能性があります。 | + +`info`オブジェクトに含まれる可能性のあるフィールドについて以下に簡単に説明します。 + +| `Field` | 型 | 説明 | +|:-----------------|:--------|:------------------------------------------------| +| `ledger_seq` | 数値 | 現在コンセンサスプロセスにあるレジャーのシーケンス番号。 | +| `our_position` | オブジェクト | コンセンサスプロセスにあるレジャーについてサーバーが予期する内容。 | +| `peer_positions` | オブジェクト | コンセンサスプロセスにあるピアと各ピアが提案するレジャーバージョンのマップ。 | +| `proposers` | 数値 | このコンセンサスプロセスに参加している信頼できるバリデータの数。信頼できるバリデータは、このサーバー構成に応じて異なります。 | +| `synched` | ブール値 | このサーバー自体が、自分がネットワークと同期中であるとみなしているかどうか。 | +| `state` | 文字列 | 現在進行中のコンセンサスプロセスの部分: `open`、`consensus`、`finished`、または`accepted`。 | + +`info`の唯一のフィールドが`"consensus": "none"`である最小限の結果となることもありますが、これは正常です。これは、サーバーがコンセンサスラウンドの合間にあることを示します。 + +`consensus_info`コマンドを短い間隔で連続して数回実行すると、このコマンドの結果が大きく変化することがあります。 + + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/feature.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/feature.ja.md index a58bf24431..e751b16235 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/feature.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/feature.ja.md @@ -1,193 +1,193 @@ -# feature -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Feature1.cpp "Source") - -`feature`コマンドは、[Amendment](amendments.html)に関してこのサーバーが認識している情報(Amendmentが有効であるかどうか、サーバーが[Amendmentプロセス](amendments.html#amendmentプロセス)でこれらのAmendmentに賛成票を投じたかどうかなど)を返します。[新規: rippled 0.31.0][] - -`feature`コマンドを使用して、Amendmentへの賛成票または反対票を投じるようにサーバーを一時的に設定できます。この変更は、サーバーの再起動後までは持続しません。Amendment投票で持続する変更を行うには`rippled.cfg`ファイルを使用します。詳細は、[Amendment投票の設定](amendments.html#amendment投票の設定)を参照してください。 - -_`feature`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket - すべてリスト* - -``` -{ - "id": "list_all_features", - "command": "feature" -} -``` - -*WebSocket - 拒否* - -``` -{ - "id": "reject_multi_sign", - "command": "feature", - "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "vetoed": true -} -``` - -*JSON-RPC* - -``` -{ - "method": "feature", - "params": [ - { - "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "vetoed": false - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: feature [ [accept|reject]] -rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 accept -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:----------|:--------|:-------------------------------------------------------| -| `feature` | 文字列 | _(省略可)_ Amendmentの一意のID(16進数)またはAmendmentの短い名前。指定されている場合は、応答が1つのAmendmentに限定されます。それ以外の場合は応答にすべてのAmendmentのリストが表示されます。 | -| `vetoed` | ブール値 | (省略可、`feature`が指定されていない場合は無視されます)trueの場合、サーバーに対し`feature`で指定されたAmendmentに反対票を投じるように指示します。falseの場合、サーバーに対しAmendmentに賛成票を投じるように指示します。 | - -**注記:** サーバーが新しいAmendmentの適用方法を現在認識していない場合でも、`feature`フィールドにAmendment IDを指定すれば、新しいAmendmentに賛成票を投じるようにサーバーを設定できます。たとえば、Amendmentを _確かに_ サポートする新しい`rippled`バージョンに間もなくアップグレードする予定がある場合などにこのように設定できます。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket - すべてリスト* - -``` -{ - "id": "list_all_features", - "status": "success", - "type": "response", - "result": { - "features": { - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE": { - "enabled": false, - "name": "FeeEscalation", - "supported": true, - "vetoed": false - }, - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { - "enabled": false, - "name": "MultiSign", - "supported": true, - "vetoed": false - }, - "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC": { - "enabled": false, - "name": "TrustSetAuth", - "supported": true, - "vetoed": false - }, - "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490": { - "enabled": false, - "name": "Tickets", - "supported": true, - "vetoed": false - }, - "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13": { - "enabled": false, - "name": "SusPay", - "supported": true, - "vetoed": false - } - } - } -} -``` - -*WebSocket - 拒否* - -``` -{ - "id": "reject_multi_sign", - "status": "success", - "type": "response", - "result": { - "features": { - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { - "enabled": false, - "name": "MultiSign", - "supported": true, - "vetoed": true - } - } - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { - "enabled": false, - "name": "MultiSign", - "supported": true, - "vetoed": false - }, - "status": "success" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result": { - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { - "enabled": false, - "name": "MultiSign", - "supported": true, - "vetoed": false - }, - "status": "success" - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に**Amendmentのマップ**がJSONプロジェクトとして含まれています。オブジェクトのキーはAmendment IDです。各キーの値は、そのIDのAmendmentのステータスを記述した _Amendmentオブジェクト_ です。要求に`feature`が指定されいる場合、要求による変更の適用後には、要求されたAmendmentオブジェクトだけがマップに含まれます。各Amendmentオブジェクトのフィールドを次に示します。 - -| `Field` | 型 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `enabled` | ブール値 | 最新レジャーでこのAmendmentが現在有効であるかどうか。 | -| `name` | 文字列 | (省略される場合があります)このAmendmentの人間が読める形式の名前(判明している場合)。 | -| `supported` | ブール値 | サーバーがこのAmendmentの適用方法を認識しているかどうか。このフィールドが`false`(サーバーがこのAmendmentの適用方法を認識していない)に設定されており、`enabled`が`true`(このAmendmentが最新レジャーで有効である)に設定されている場合、このAmendmentによりサーバーが[Amendment blocked](amendments.html#amendment-blocked)になる可能性があります。 | -| `vetoed` | ブール値 | サーバーがこのAmendmentに反対票を投じるように指示されているかどうか。 | - -**注意:** Amendmentの`name`は、Amendmentの内容を厳密に示すものではありません。サーバー間でこの名前が一意であることや整合性があることは保証されません。 - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `badFeature` - 指定されている`feature`のフォーマットが正しくないか、サーバーがその名前のAmendmentを認識していません。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# feature +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Feature1.cpp "Source") + +`feature`コマンドは、[Amendment](amendments.html)に関してこのサーバーが認識している情報(Amendmentが有効であるかどうか、サーバーが[Amendmentプロセス](amendments.html#amendmentプロセス)でこれらのAmendmentに賛成票を投じたかどうかなど)を返します。[新規: rippled 0.31.0][] + +`feature`コマンドを使用して、Amendmentへの賛成票または反対票を投じるようにサーバーを一時的に設定できます。この変更は、サーバーの再起動後までは持続しません。Amendment投票で持続する変更を行うには`rippled.cfg`ファイルを使用します。詳細は、[Amendment投票の設定](amendments.html#amendment投票の設定)を参照してください。 + +_`feature`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket - すべてリスト* + +``` +{ + "id": "list_all_features", + "command": "feature" +} +``` + +*WebSocket - 拒否* + +``` +{ + "id": "reject_multi_sign", + "command": "feature", + "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "vetoed": true +} +``` + +*JSON-RPC* + +``` +{ + "method": "feature", + "params": [ + { + "feature": "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "vetoed": false + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: feature [ [accept|reject]] +rippled feature 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 accept +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:----------|:--------|:-------------------------------------------------------| +| `feature` | 文字列 | _(省略可)_ Amendmentの一意のID(16進数)またはAmendmentの短い名前。指定されている場合は、応答が1つのAmendmentに限定されます。それ以外の場合は応答にすべてのAmendmentのリストが表示されます。 | +| `vetoed` | ブール値 | (省略可、`feature`が指定されていない場合は無視されます)trueの場合、サーバーに対し`feature`で指定されたAmendmentに反対票を投じるように指示します。falseの場合、サーバーに対しAmendmentに賛成票を投じるように指示します。 | + +**注記:** サーバーが新しいAmendmentの適用方法を現在認識していない場合でも、`feature`フィールドにAmendment IDを指定すれば、新しいAmendmentに賛成票を投じるようにサーバーを設定できます。たとえば、Amendmentを _確かに_ サポートする新しい`rippled`バージョンに間もなくアップグレードする予定がある場合などにこのように設定できます。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket - すべてリスト* + +``` +{ + "id": "list_all_features", + "status": "success", + "type": "response", + "result": { + "features": { + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE": { + "enabled": false, + "name": "FeeEscalation", + "supported": true, + "vetoed": false + }, + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { + "enabled": false, + "name": "MultiSign", + "supported": true, + "vetoed": false + }, + "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC": { + "enabled": false, + "name": "TrustSetAuth", + "supported": true, + "vetoed": false + }, + "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490": { + "enabled": false, + "name": "Tickets", + "supported": true, + "vetoed": false + }, + "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13": { + "enabled": false, + "name": "SusPay", + "supported": true, + "vetoed": false + } + } + } +} +``` + +*WebSocket - 拒否* + +``` +{ + "id": "reject_multi_sign", + "status": "success", + "type": "response", + "result": { + "features": { + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { + "enabled": false, + "name": "MultiSign", + "supported": true, + "vetoed": true + } + } + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { + "enabled": false, + "name": "MultiSign", + "supported": true, + "vetoed": false + }, + "status": "success" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result": { + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373": { + "enabled": false, + "name": "MultiSign", + "supported": true, + "vetoed": false + }, + "status": "success" + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に**Amendmentのマップ**がJSONプロジェクトとして含まれています。オブジェクトのキーはAmendment IDです。各キーの値は、そのIDのAmendmentのステータスを記述した _Amendmentオブジェクト_ です。要求に`feature`が指定されいる場合、要求による変更の適用後には、要求されたAmendmentオブジェクトだけがマップに含まれます。各Amendmentオブジェクトのフィールドを次に示します。 + +| `Field` | 型 | 説明 | +|:------------|:--------|:-----------------------------------------------------| +| `enabled` | ブール値 | 最新レジャーでこのAmendmentが現在有効であるかどうか。 | +| `name` | 文字列 | (省略される場合があります)このAmendmentの人間が読める形式の名前(判明している場合)。 | +| `supported` | ブール値 | サーバーがこのAmendmentの適用方法を認識しているかどうか。このフィールドが`false`(サーバーがこのAmendmentの適用方法を認識していない)に設定されており、`enabled`が`true`(このAmendmentが最新レジャーで有効である)に設定されている場合、このAmendmentによりサーバーが[Amendment blocked](amendments.html#amendment-blocked)になる可能性があります。 | +| `vetoed` | ブール値 | サーバーがこのAmendmentに反対票を投じるように指示されているかどうか。 | + +**注意:** Amendmentの`name`は、Amendmentの内容を厳密に示すものではありません。サーバー間でこの名前が一意であることや整合性があることは保証されません。 + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `badFeature` - 指定されている`feature`のフォーマットが正しくないか、サーバーがその名前のAmendmentを認識していません。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/fetch_info.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/fetch_info.ja.md index 611aa284b2..9110ed6f88 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/fetch_info.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/fetch_info.ja.md @@ -1,161 +1,161 @@ -# fetch_info -[[ソース]
](https://github.com/ripple/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/FetchInfo.cpp "Source") - -`fetch_info`コマンドは、このサーバーが現在ネットワークからフェッチしているオブジェクトに関する情報と、その情報を所有しているピアの数を返します。これは現在の取得操作をリセットする場合にも使用できます。 - -_`fetch_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 91, - "command": "fetch_info", - "clear": false -} -``` - -*JSON-RPC* - -``` -{ - "method": "fetch_info", - "params": [ - { - "clear": false - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: fetch_info [clear] -rippled fetch_info -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:--------|:--------|:---------------------------------------------------------| -| `clear` | ブール値 | `true`の場合、現在のフェッチ操作がリセットされます。それ以外の場合、進行中のフェッチ操作のステータスのみが取得されます。 | - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -{ - "result" : { - "info" : { - "348928" : { - "hash" : "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", - "have_header" : true, - "have_state" : false, - "have_transactions" : true, - "needed_state_hashes" : [ - "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", - "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", - "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", - "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", - "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", - "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", - "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", - "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", - "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", - "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", - "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", - "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", - "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", - "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", - "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", - "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" - ], - "peers" : 2, - "timeouts" : 0 - } - }, - "status" : "success" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "info" : { - "348928" : { - "hash" : "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", - "have_header" : true, - "have_state" : false, - "have_transactions" : true, - "needed_state_hashes" : [ - "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", - "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", - "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", - "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", - "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", - "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", - "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", - "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", - "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", - "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", - "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", - "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", - "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", - "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", - "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", - "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" - ], - "peers" : 2, - "timeouts" : 0 - } - }, - "status" : "success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `info` | オブジェクト | フェッチ対象のオブジェクトと、そのフェッチ対象オブジェクトのステータスのマップ。フェッチ対象のレジャーはそのシーケンス番号によって識別されます。フェッチ対象のレジャーとその他のオブジェクトがハッシュによって識別されることもあります。 | - -進行中のフェッチ操作を記述するフィールドは、予告なく変更される可能性があります。以下のフィールドが含まれている可能性があります。 - -| `Field` | 型 | 説明 | -|:----------------------|:------------------------|:---------------------------| -| `hash` | 文字列 | フェッチ対象アイテムのハッシュ。 | -| `have_header` | ブール値 | レジャーの場合、このサーバーがすでにレジャーのヘッダーセクションを取得しているかどうか。 | -| `have_transactions` | ブール値 | レジャーの場合、このサーバーがすでにレジャーのトランザクションセクションを取得しているかどうか。 | -| `needed_state_hashes` | (ハッシュ)文字列の配列 | まだ必要とされる、このアイテムの状態オブジェクトのハッシュ値。必要なハッシュの数が16を超えている場合、応答には最初の16個のハッシュのみが含まれます。 | -| `peers` | 数値 | このアイテムが利用可能であるピアの数。 | -| `timeouts` | 数値 | このアイテムをフェッチしようとしてタイムアウトになった(2.5秒)回数。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# fetch_info +[[ソース]
](https://github.com/ripple/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/FetchInfo.cpp "Source") + +`fetch_info`コマンドは、このサーバーが現在ネットワークからフェッチしているオブジェクトに関する情報と、その情報を所有しているピアの数を返します。これは現在の取得操作をリセットする場合にも使用できます。 + +_`fetch_info`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 91, + "command": "fetch_info", + "clear": false +} +``` + +*JSON-RPC* + +``` +{ + "method": "fetch_info", + "params": [ + { + "clear": false + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: fetch_info [clear] +rippled fetch_info +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:--------|:--------|:---------------------------------------------------------| +| `clear` | ブール値 | `true`の場合、現在のフェッチ操作がリセットされます。それ以外の場合、進行中のフェッチ操作のステータスのみが取得されます。 | + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +{ + "result" : { + "info" : { + "348928" : { + "hash" : "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", + "have_header" : true, + "have_state" : false, + "have_transactions" : true, + "needed_state_hashes" : [ + "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", + "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", + "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", + "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", + "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", + "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", + "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", + "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", + "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", + "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", + "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", + "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", + "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", + "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", + "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", + "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" + ], + "peers" : 2, + "timeouts" : 0 + } + }, + "status" : "success" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "info" : { + "348928" : { + "hash" : "C26D432B06F84861BCACD7942EDC3FE0B2E1DEB966A9E516A0FD275A375C2010", + "have_header" : true, + "have_state" : false, + "have_transactions" : true, + "needed_state_hashes" : [ + "BF8DC6B1E10D1D3565BF0649075D22EBFD34F751AFCC0E53E81D74786BC88922", + "34E37A71CB51A12C73A435250E6A6349F7884C7EEBA6B88FA31F0244E967E88F", + "BFB7D3008A7D61FD6A0538D1C2E70CFB94CE8DC66606319C372F278A48629765", + "41C0C61D701FB1EA586F0EF1FC7A91FEC476D979589DA60507F05C13F7C21975", + "6DDE8840A2C3C7FF05E5FFEE4D06408694C16A8357338FE0C4581DC3D8A00BBA", + "6C69D833B582C849917806FA009518832BB50E900E43716FD7CC1966428DD0CF", + "1EDC020CFC4AF19B625C52E20B66D6AE672821CCC461E8A9C457A3B2955657F7", + "FC0616A66A2B0589CA513F3341D4EA51E782C4601E5072308478E3CC19264640", + "19FC607B5DE1B64681A676EC1ED5507B9555B0E098CD9D898320297DE1A64033", + "5E128D3FC990074E35687387A14AA12D9FD287E5AB57CB9B2FD83DE635DF5CA9", + "DE72820F3981770F2AA8770BC233B80661F1A452819D8529008875FF8DED87A9", + "3ACB84BEE2C45556351FF60FD787D235C9CF5623FB8A35B01446B773598E7CC0", + "0DD3A8DF69874148057F1F2BF305442FF2E89A76A08B4CC8C051E2ED69B874F3", + "4AE9A9C4F12A5BD0355037DA40A0B145420A2168A9FEDE43E643BD13062F8ECE", + "08CBF8CFFEC207F5AC4E4F24BC447011FD8C79D25B344281FBFB4732D7058ED4", + "779B2577C5C4BAED6657421448EA506BBF50F86BE363E0924127C4EA17A58BBE" + ], + "peers" : 2, + "timeouts" : 0 + } + }, + "status" : "success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:--------|:-------|:----------------------------------------------------------| +| `info` | オブジェクト | フェッチ対象のオブジェクトと、そのフェッチ対象オブジェクトのステータスのマップ。フェッチ対象のレジャーはそのシーケンス番号によって識別されます。フェッチ対象のレジャーとその他のオブジェクトがハッシュによって識別されることもあります。 | + +進行中のフェッチ操作を記述するフィールドは、予告なく変更される可能性があります。以下のフィールドが含まれている可能性があります。 + +| `Field` | 型 | 説明 | +|:----------------------|:------------------------|:---------------------------| +| `hash` | 文字列 | フェッチ対象アイテムのハッシュ。 | +| `have_header` | ブール値 | レジャーの場合、このサーバーがすでにレジャーのヘッダーセクションを取得しているかどうか。 | +| `have_transactions` | ブール値 | レジャーの場合、このサーバーがすでにレジャーのトランザクションセクションを取得しているかどうか。 | +| `needed_state_hashes` | (ハッシュ)文字列の配列 | まだ必要とされる、このアイテムの状態オブジェクトのハッシュ値。必要なハッシュの数が16を超えている場合、応答には最初の16個のハッシュのみが含まれます。 | +| `peers` | 数値 | このアイテムが利用可能であるピアの数。 | +| `timeouts` | 数値 | このアイテムをフェッチしようとしてタイムアウトになった(2.5秒)回数。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/get_counts.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/get_counts.ja.md index 0993d30e5d..1d68d7eeb9 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/get_counts.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/get_counts.ja.md @@ -1,153 +1,153 @@ -# get_counts -[[ソース]
](https://github.com/ripple/rippled/blob/c7118a183a660648aa88a3546a6b2c5bce858440/src/ripple/rpc/handlers/GetCounts.cpp "Source") - -`get_counts`コマンドは、サーバーの健全性に関するさまざまな統計情報を提供します。そのほとんどは、現在メモリーに格納されている各種オブジェクトの数です。 - -_`get_counts`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 90, - "command": "get_counts", - "min_count": 100 -} -``` - -*JSON-RPC* - -``` -{ - "method": "get_counts", - "params": [ - { - "min_count": 100 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: get_counts [min_count] -rippled get_counts 100 -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:------------|:--------------------------|:-----------------------------------| -| `min_count` | 数値(符号なし整数) | この値以上の値を含むフィールドのみを返します。 | - -### 応答フォーマット - -処理が成功した応答の例: - - - -*JSON-RPC* - -``` -{ - "result" : { - "AL_hit_rate" : 48.36725616455078, - "HashRouterEntry" : 3048, - "Ledger" : 46, - "NodeObject" : 10417, - "SLE_hit_rate" : 64.62035369873047, - "STArray" : 1299, - "STLedgerEntry" : 646, - "STObject" : 6987, - "STTx" : 4104, - "STValidation" : 610, - "Transaction" : 4069, - "dbKBLedger" : 10733, - "dbKBTotal" : 39069, - "dbKBTransaction" : 26982, - "fullbelow_size" : 0, - "historical_perminute" : 0, - "ledger_hit_rate" : 71.0565185546875, - "node_hit_rate" : 3.808214902877808, - "node_read_bytes" : 393611911, - "node_reads_hit" : 1283098, - "node_reads_total" : 679410, - "node_writes" : 1744285, - "node_written_bytes" : 794368909, - "status" : "success", - "treenode_cache_size" : 6650, - "treenode_track_size" : 598631, - "uptime" : "3 hours, 50 minutes, 27 seconds", - "write_load" : 0 - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "AL_hit_rate" : 48.36725616455078, - "HashRouterEntry" : 3048, - "Ledger" : 46, - "NodeObject" : 10417, - "SLE_hit_rate" : 64.62035369873047, - "STArray" : 1299, - "STLedgerEntry" : 646, - "STObject" : 6987, - "STTx" : 4104, - "STValidation" : 610, - "Transaction" : 4069, - "dbKBLedger" : 10733, - "dbKBTotal" : 39069, - "dbKBTransaction" : 26982, - "fullbelow_size" : 0, - "historical_perminute" : 0, - "ledger_hit_rate" : 71.0565185546875, - "node_hit_rate" : 3.808214902877808, - "node_read_bytes" : 393611911, - "node_reads_hit" : 1283098, - "node_reads_total" : 679410, - "node_writes" : 1744285, - "node_written_bytes" : 794368909, - "status" : "success", - "treenode_cache_size" : 6650, - "treenode_track_size" : 598631, - "uptime" : "3 hours, 50 minutes, 27 seconds", - "write_load" : 0 - } -} -``` - - - -応答は[標準フォーマット][]に従っています。結果に含まれるフィールドのリストは、予告なく変更される可能性がありますが、(特に)以下のいずれかが含まれます。 - -| `Field` | 型 | 説明 | -|:--------------|:-------|:----------------------------------------------------| -| `Transaction` | 数値 | メモリー内の`Transaction`オブジェクトの数 | -| `Ledger` | 数値 | メモリー内のレジャーの数 | -| `uptime` | 文字列 | このサーバーの連続稼働時間。 | - -その他のほとんどのエントリーでは、値はメモリー内に現在保持されている当該タイプのオブジェクトの数を示します。 - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# get_counts +[[ソース]
](https://github.com/ripple/rippled/blob/c7118a183a660648aa88a3546a6b2c5bce858440/src/ripple/rpc/handlers/GetCounts.cpp "Source") + +`get_counts`コマンドは、サーバーの健全性に関するさまざまな統計情報を提供します。そのほとんどは、現在メモリーに格納されている各種オブジェクトの数です。 + +_`get_counts`メソッドは、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。_ + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 90, + "command": "get_counts", + "min_count": 100 +} +``` + +*JSON-RPC* + +``` +{ + "method": "get_counts", + "params": [ + { + "min_count": 100 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: get_counts [min_count] +rippled get_counts 100 +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:------------|:--------------------------|:-----------------------------------| +| `min_count` | 数値(符号なし整数) | この値以上の値を含むフィールドのみを返します。 | + +### 応答フォーマット + +処理が成功した応答の例: + + + +*JSON-RPC* + +``` +{ + "result" : { + "AL_hit_rate" : 48.36725616455078, + "HashRouterEntry" : 3048, + "Ledger" : 46, + "NodeObject" : 10417, + "SLE_hit_rate" : 64.62035369873047, + "STArray" : 1299, + "STLedgerEntry" : 646, + "STObject" : 6987, + "STTx" : 4104, + "STValidation" : 610, + "Transaction" : 4069, + "dbKBLedger" : 10733, + "dbKBTotal" : 39069, + "dbKBTransaction" : 26982, + "fullbelow_size" : 0, + "historical_perminute" : 0, + "ledger_hit_rate" : 71.0565185546875, + "node_hit_rate" : 3.808214902877808, + "node_read_bytes" : 393611911, + "node_reads_hit" : 1283098, + "node_reads_total" : 679410, + "node_writes" : 1744285, + "node_written_bytes" : 794368909, + "status" : "success", + "treenode_cache_size" : 6650, + "treenode_track_size" : 598631, + "uptime" : "3 hours, 50 minutes, 27 seconds", + "write_load" : 0 + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "AL_hit_rate" : 48.36725616455078, + "HashRouterEntry" : 3048, + "Ledger" : 46, + "NodeObject" : 10417, + "SLE_hit_rate" : 64.62035369873047, + "STArray" : 1299, + "STLedgerEntry" : 646, + "STObject" : 6987, + "STTx" : 4104, + "STValidation" : 610, + "Transaction" : 4069, + "dbKBLedger" : 10733, + "dbKBTotal" : 39069, + "dbKBTransaction" : 26982, + "fullbelow_size" : 0, + "historical_perminute" : 0, + "ledger_hit_rate" : 71.0565185546875, + "node_hit_rate" : 3.808214902877808, + "node_read_bytes" : 393611911, + "node_reads_hit" : 1283098, + "node_reads_total" : 679410, + "node_writes" : 1744285, + "node_written_bytes" : 794368909, + "status" : "success", + "treenode_cache_size" : 6650, + "treenode_track_size" : 598631, + "uptime" : "3 hours, 50 minutes, 27 seconds", + "write_load" : 0 + } +} +``` + + + +応答は[標準フォーマット][]に従っています。結果に含まれるフィールドのリストは、予告なく変更される可能性がありますが、(特に)以下のいずれかが含まれます。 + +| `Field` | 型 | 説明 | +|:--------------|:-------|:----------------------------------------------------| +| `Transaction` | 数値 | メモリー内の`Transaction`オブジェクトの数 | +| `Ledger` | 数値 | メモリー内のレジャーの数 | +| `uptime` | 文字列 | このサーバーの連続稼働時間。 | + +その他のほとんどのエントリーでは、値はメモリー内に現在保持されている当該タイプのオブジェクトの数を示します。 + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/peers.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/peers.ja.md index 36590a2878..86b64b4247 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/peers.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/peers.ja.md @@ -1,414 +1,414 @@ -# peers -[[ソース]
](https://github.com/ripple/rippled/blob/52f298f150fc1530d201d3140c80d3eaf781cb5f/src/ripple/rpc/handlers/Peers.cpp "Source") - -`peers`コマンドは、[ピアプロトコル](peer-protocol.html)でこのサーバーに現在接続されているその他のすべての`rippled`サーバーのリスト(各サーバーの接続状況と同期状況を含む)を返します。 - -*`peers`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "peers" -} -``` - -*コマンドライン* - -``` -rippled peers -``` - - - -この要求には追加パラメーターはありません。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "cluster": {}, - "peers": [ - { - "address": "184.172.237.226:51235", - "complete_ledgers": "14534883 - 18828973", - "latency": 117, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 54, - "public_key": "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", - "uptime": 55036, - "version": "rippled-0.30.0-hf1" - }, - { - "address": "54.186.248.91:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 91, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 62, - "public_key": "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", - "uptime": 83814, - "version": "rippled-0.30.1" - }, - { - "address": "54.84.21.230:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 202, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 60, - "public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.233.162:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 36, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 66, - "public_key": "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", - "uptime": 99619, - "version": "rippled-0.30.1" - }, - { - "address": "162.217.98.136:51235", - "complete_ledgers": "32570 - 18828973", - "latency": 118, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 69, - "public_key": "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.233.163:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 51, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 61, - "public_key": "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "54.186.73.52:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 72, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 60, - "public_key": "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.233.165:51235", - "complete_ledgers": "18827949 - 18828973", - "latency": 40, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 63, - "public_key": "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", - "uptime": 99625, - "version": "rippled-0.30.1" - }, - { - "address": "72.251.232.173:51235", - "complete_ledgers": "32570 - 18828973", - "latency": 40, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 71, - "public_key": "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", - "uptime": 99625, - "version": "rippled-0.31.0-b6" - }, - { - "address": "98.167.120.212:51235", - "complete_ledgers": "18828845 - 18828973", - "latency": 99, - "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", - "load": 60, - "public_key": "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", - "uptime": 99625, - "version": "rippled-0.30.1-rc4" - } - ] - } -} -``` - -*JSON-RPC* - -``` -{ - "result" : { - "cluster" : {}, - "peers" : [ - { - "address" : "184.172.237.226:51235", - "complete_ledgers" : "14535005 - 18828957", - "latency" : 114, - "ledger" : "80FCB89BC5B90D2B9C2CE33786738809796F04FB9CB1E5EEE768DD9A9C399FB0", - "load" : 47, - "public_key" : "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", - "uptime" : 54976, - "version" : "rippled-0.30.0-hf1" - }, - { - "address" : "54.186.248.91:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 68, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", - "uptime" : 83754, - "version" : "rippled-0.30.1" - }, - { - "address" : "54.84.21.230:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 135, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 54, - "public_key" : "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", - "uptime" : 99565, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.233.162:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 24, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 61, - "public_key" : "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", - "uptime" : 99560, - "version" : "rippled-0.30.1" - }, - { - "address" : "162.217.98.136:51235", - "complete_ledgers" : "32570 - 18828958", - "latency" : 88, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 55, - "public_key" : "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.233.163:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 24, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "54.186.73.52:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 51, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.233.165:51235", - "complete_ledgers" : "18827934 - 18828958", - "latency" : 25, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 56, - "public_key" : "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", - "uptime" : 99566, - "version" : "rippled-0.30.1" - }, - { - "address" : "72.251.232.173:51235", - "complete_ledgers" : "32570 - 18828958", - "latency" : 24, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 81, - "public_key" : "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", - "uptime" : 99566, - "version" : "rippled-0.31.0-b6" - }, - { - "address" : "98.167.120.212:51235", - "complete_ledgers" : "18828830 - 18828957", - "latency" : 137, - "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", - "load" : 54, - "public_key" : "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", - "uptime" : 99566, - "version" : "rippled-0.30.1-rc4" - } - ], - "status" : "success" - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "cluster" : {}, - "peers" : [ - { - "address" : "72.251.232.173:51235", - "complete_ledgers" : "32570 - 18851276", - "latency" : 22, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 20, - "public_key" : "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", - "uptime" : 26, - "version" : "rippled-0.31.0-b6" - }, - { - "address" : "169.53.155.36:51235", - "complete_ledgers" : "12920801 - 18851275", - "latency" : 127, - "load" : 16, - "public_key" : "n9L42gouyppsmsMXXUdByXnVDUZv1eu6KLZUWUkNHsukzv3pr7po", - "uptime" : 18, - "version" : "rippled-0.30.0-hf1" - }, - { - "address" : "169.53.155.44:51235", - "complete_ledgers" : "12920779 - 18851276", - "latency" : 20, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 49, - "public_key" : "n94BpoEqEf1PxpAv3Bmyy2WoKHyeMpHPH4tcj6P9NW98zdzEyRhi", - "uptime" : 50, - "version" : "rippled-0.30.0-hf1" - }, - { - "address" : "192.170.145.77:51235", - "complete_ledgers" : "32570 - 18851277", - "latency" : 145, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 29, - "public_key" : "n9LwcmtjDAJQz4u8DZCMGQ9GXHuMEV4Cf8KpPL9NgqAV2puxdYc2", - "uptime" : 51, - "version" : "rippled-0.30.1" - }, - { - "address" : "162.217.98.136:51235", - "complete_ledgers" : "32570 - 18851277", - "latency" : 83, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 30, - "public_key" : "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", - "uptime" : 50, - "version" : "rippled-0.30.1" - }, - { - "address" : "184.172.237.241:51235", - "complete_ledgers" : "14153089 - 18851277", - "latency" : 104, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 29, - "public_key" : "n9L3LdCTVYUhCKtQtxiHrQ5ocNXVqZFiEJpF5pX9DXahYLrvi5R7", - "uptime" : 51, - "version" : "rippled-0.30.0-hf1" - }, - { - "address" : "99.110.49.91:51301", - "complete_ledgers" : "32570 - 18851277", - "latency" : 152, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 55, - "public_key" : "n9LGv3xKVqhxq6vcTfmJZhxyhjywsZbvJvpFbZRXzzz5uQ64xTLy", - "uptime" : 51, - "version" : "rippled-0.31.0-b6" - }, - { - "address" : "169.53.155.45:51235", - "complete_ledgers" : "12920779 - 18851277", - "latency" : 15, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 30, - "public_key" : "n9MRiHyMk43YpqATWeT8Zyu4HJq1btb5oNKmnHTkLJKQg9LQQq3v", - "uptime" : 51, - "version" : "rippled-0.30.0-hf1" - }, - { - "address" : "54.186.248.91:51235", - "complete_ledgers" : "18850253 - 18851277", - "latency" : 63, - "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", - "load" : 36, - "public_key" : "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", - "uptime" : 51, - "version" : "rippled-0.30.1" - } - ], - "status" : "success" - } -} - -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドからなるJSONオブジェクトが含まれます。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `cluster` | オブジェクト | [クラスターとして構成されている](clustering.html)場合は、同じクラスター内の他の`rippled`サーバーの概要。[新規: rippled 0.30.1][] | -| `peers` | 配列 | peerオブジェクトからなる配列。 | - -`cluster`オブジェクトの各フィールドは、該当する`rippled`サーバーの識別用キーペアの公開鍵です。(これは、[server_infoメソッド][]で当該サーバーから`pubkey_node`として返される値と同じです。)そのフィールドの内容は、以下のフィールドを持つオブジェクトです。 - -| `Field` | 型 | 説明 | -|:--------|:-------|:----------------------------------------------------------| -| `tag` | 文字列 | 構成ファイルで定義されているこのクラスターメンバーの表示名。 | -| `fee` | 数値 | (省略される場合があります)このクラスターメンバーが[トランザクションコスト](transaction-cost.html)に適用する負荷乗数。 | -| `age` | 数値 | このクラスターメンバーからの最終クラスターレポート以降の経過秒数。 | - -`peers`配列の各メンバーは、以下のフィールドを持つpeerオブジェクトです。 - -| `Field` | 型 | 説明 | -|:-------------------|:--------|:----------------------------------------------| -| `address` | 文字列 | このピアが接続しているIPアドレスとポート。 | -| `cluster` | ブール値 | (省略される場合があります)`true`の場合、現在のサーバーとピアサーバーは同じ`rippled`クラスターに含まれています。 | -| `name` | 文字列 | (省略される場合があります)ピアが同じクラスターに含まれている場合、この名前は構成ファイルで定義されているそのピアサーバーの表示名です。 | -| `complete_ledgers` | 文字列 | ピア`rippled`で利用可能なレジャーバージョンのシーケンス番号を示す範囲式 | -| `inbound` | ブール値 | (省略される場合があります)`true`の場合は、ピアはローカルサーバーに接続しています。 | -| `latency` | 数値 | ピアへのネットワーク遅延(ミリ秒単位) | -| `ledger` | 文字列 | 最後に閉鎖されたピアのレジャーのハッシュ。 | -| `load` | 数値 | ピアサーバーによるローカルサーバーへの負荷の測定値。この数値が大きいほど負荷が高くなります。(負荷の測定単位は正式には定義されていません。) | -| `protocol` | 文字列 | (省略される場合があります)ピアが使用しているプロトコルバージョン(ローカルサーバーのプロトコルバージョンと異なる場合)。 | -| `public_key` | 文字列 | (省略される場合があります)ピアのメッセージの整合性の検証に使用できる公開鍵。これは、検証に使用する公開鍵とは異なりますが、フォーマットは同じです。 | -| `sanity` | 文字列 | (省略される場合があります)このピアが現行サーバーと同じルールとレジャーシーケンスに従っているかどうか。値が`insane`の場合、ピアは並列ネットワークの一部である可能性があります。値が`unknown`の場合、現行サーバーはピアに互換性があるかどうかを把握していません。 | -| `status` | 文字列 | (省略される場合があります)ピアからの最新のステータスメッセージ。`connecting`、`connected`、`monitoring`、`validating`、`shutting`のいずれかです。 | -| `uptime` | 数値 | `rippled`サーバーがこのピアに継続して接続していた秒数。[新規: rippled 0.30.1][] | -| `version` | 文字列 | (省略される場合があります)ピアサーバーの`rippled`バージョン番号 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# peers +[[ソース]
](https://github.com/ripple/rippled/blob/52f298f150fc1530d201d3140c80d3eaf781cb5f/src/ripple/rpc/handlers/Peers.cpp "Source") + +`peers`コマンドは、[ピアプロトコル](peer-protocol.html)でこのサーバーに現在接続されているその他のすべての`rippled`サーバーのリスト(各サーバーの接続状況と同期状況を含む)を返します。 + +*`peers`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "peers" +} +``` + +*コマンドライン* + +``` +rippled peers +``` + + + +この要求には追加パラメーターはありません。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "cluster": {}, + "peers": [ + { + "address": "184.172.237.226:51235", + "complete_ledgers": "14534883 - 18828973", + "latency": 117, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 54, + "public_key": "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", + "uptime": 55036, + "version": "rippled-0.30.0-hf1" + }, + { + "address": "54.186.248.91:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 91, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 62, + "public_key": "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", + "uptime": 83814, + "version": "rippled-0.30.1" + }, + { + "address": "54.84.21.230:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 202, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 60, + "public_key": "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.162:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 36, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 66, + "public_key": "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", + "uptime": 99619, + "version": "rippled-0.30.1" + }, + { + "address": "162.217.98.136:51235", + "complete_ledgers": "32570 - 18828973", + "latency": 118, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 69, + "public_key": "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.163:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 51, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 61, + "public_key": "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "54.186.73.52:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 72, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 60, + "public_key": "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.233.165:51235", + "complete_ledgers": "18827949 - 18828973", + "latency": 40, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 63, + "public_key": "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", + "uptime": 99625, + "version": "rippled-0.30.1" + }, + { + "address": "72.251.232.173:51235", + "complete_ledgers": "32570 - 18828973", + "latency": 40, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 71, + "public_key": "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", + "uptime": 99625, + "version": "rippled-0.31.0-b6" + }, + { + "address": "98.167.120.212:51235", + "complete_ledgers": "18828845 - 18828973", + "latency": 99, + "ledger": "50A2577CE6EB8A92847C443BDA45F5C5F0A22B9C6F4B47DBA0C12BDA75001D01", + "load": 60, + "public_key": "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", + "uptime": 99625, + "version": "rippled-0.30.1-rc4" + } + ] + } +} +``` + +*JSON-RPC* + +``` +{ + "result" : { + "cluster" : {}, + "peers" : [ + { + "address" : "184.172.237.226:51235", + "complete_ledgers" : "14535005 - 18828957", + "latency" : 114, + "ledger" : "80FCB89BC5B90D2B9C2CE33786738809796F04FB9CB1E5EEE768DD9A9C399FB0", + "load" : 47, + "public_key" : "n9KNYm52mgcUQ7R2RA4kyw9Nk1yc6S35PaiuyqjYsy6UjhCXpw12", + "uptime" : 54976, + "version" : "rippled-0.30.0-hf1" + }, + { + "address" : "54.186.248.91:51235", + "complete_ledgers" : "18827934 - 18828958", + "latency" : 68, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 56, + "public_key" : "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", + "uptime" : 83754, + "version" : "rippled-0.30.1" + }, + { + "address" : "54.84.21.230:51235", + "complete_ledgers" : "18827934 - 18828958", + "latency" : 135, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 54, + "public_key" : "n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g", + "uptime" : 99565, + "version" : "rippled-0.30.1" + }, + { + "address" : "72.251.233.162:51235", + "complete_ledgers" : "18827934 - 18828958", + "latency" : 24, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 61, + "public_key" : "n9M8RSk6hrvXZKFQ6CxPbJsjt73xW1xsnjn7G69VAMbE2j4sBQNQ", + "uptime" : 99560, + "version" : "rippled-0.30.1" + }, + { + "address" : "162.217.98.136:51235", + "complete_ledgers" : "32570 - 18828958", + "latency" : 88, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 55, + "public_key" : "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", + "uptime" : 99566, + "version" : "rippled-0.30.1" + }, + { + "address" : "72.251.233.163:51235", + "complete_ledgers" : "18827934 - 18828958", + "latency" : 24, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 56, + "public_key" : "n94ne2Z5dX8qcJNa8cPtAbtn21gEaCoEduS8TwdGAhi1iLfCUMDm", + "uptime" : 99566, + "version" : "rippled-0.30.1" + }, + { + "address" : "54.186.73.52:51235", + "complete_ledgers" : "18827934 - 18828958", + "latency" : 51, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 56, + "public_key" : "n9JySgyBVcQKvyDoeRKg7s2Mm6ZcFHk22vUZb3o1HSosWxcj9xPt", + "uptime" : 99566, + "version" : "rippled-0.30.1" + }, + { + "address" : "72.251.233.165:51235", + "complete_ledgers" : "18827934 - 18828958", + "latency" : 25, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 56, + "public_key" : "n9M77Uc9CSaSFZqt5V7sxPR4kFwbha7hwUFBD5v5kZt2SQjBeoDs", + "uptime" : 99566, + "version" : "rippled-0.30.1" + }, + { + "address" : "72.251.232.173:51235", + "complete_ledgers" : "32570 - 18828958", + "latency" : 24, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 81, + "public_key" : "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", + "uptime" : 99566, + "version" : "rippled-0.31.0-b6" + }, + { + "address" : "98.167.120.212:51235", + "complete_ledgers" : "18828830 - 18828957", + "latency" : 137, + "ledger" : "9447480E351221123B1A454356435A66C188D9794B0197A060637E19F074B421", + "load" : 54, + "public_key" : "n9LDBRoqPYY7RdkNXbX1dqZXVtUKcSqzs2CZPhTH7ymA9X7Xzmpj", + "uptime" : 99566, + "version" : "rippled-0.30.1-rc4" + } + ], + "status" : "success" + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "cluster" : {}, + "peers" : [ + { + "address" : "72.251.232.173:51235", + "complete_ledgers" : "32570 - 18851276", + "latency" : 22, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 20, + "public_key" : "n9JveA1hHDGjZECaYC7KM4JP8NXXzNXAxixbzcLTGnrsFZsA9AD1", + "uptime" : 26, + "version" : "rippled-0.31.0-b6" + }, + { + "address" : "169.53.155.36:51235", + "complete_ledgers" : "12920801 - 18851275", + "latency" : 127, + "load" : 16, + "public_key" : "n9L42gouyppsmsMXXUdByXnVDUZv1eu6KLZUWUkNHsukzv3pr7po", + "uptime" : 18, + "version" : "rippled-0.30.0-hf1" + }, + { + "address" : "169.53.155.44:51235", + "complete_ledgers" : "12920779 - 18851276", + "latency" : 20, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 49, + "public_key" : "n94BpoEqEf1PxpAv3Bmyy2WoKHyeMpHPH4tcj6P9NW98zdzEyRhi", + "uptime" : 50, + "version" : "rippled-0.30.0-hf1" + }, + { + "address" : "192.170.145.77:51235", + "complete_ledgers" : "32570 - 18851277", + "latency" : 145, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 29, + "public_key" : "n9LwcmtjDAJQz4u8DZCMGQ9GXHuMEV4Cf8KpPL9NgqAV2puxdYc2", + "uptime" : 51, + "version" : "rippled-0.30.1" + }, + { + "address" : "162.217.98.136:51235", + "complete_ledgers" : "32570 - 18851277", + "latency" : 83, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 30, + "public_key" : "n944PcXEoZaiEHnwFD92xA4bxsS7jjYb27WcdDQwkHYyk1MWTEsX", + "uptime" : 50, + "version" : "rippled-0.30.1" + }, + { + "address" : "184.172.237.241:51235", + "complete_ledgers" : "14153089 - 18851277", + "latency" : 104, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 29, + "public_key" : "n9L3LdCTVYUhCKtQtxiHrQ5ocNXVqZFiEJpF5pX9DXahYLrvi5R7", + "uptime" : 51, + "version" : "rippled-0.30.0-hf1" + }, + { + "address" : "99.110.49.91:51301", + "complete_ledgers" : "32570 - 18851277", + "latency" : 152, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 55, + "public_key" : "n9LGv3xKVqhxq6vcTfmJZhxyhjywsZbvJvpFbZRXzzz5uQ64xTLy", + "uptime" : 51, + "version" : "rippled-0.31.0-b6" + }, + { + "address" : "169.53.155.45:51235", + "complete_ledgers" : "12920779 - 18851277", + "latency" : 15, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 30, + "public_key" : "n9MRiHyMk43YpqATWeT8Zyu4HJq1btb5oNKmnHTkLJKQg9LQQq3v", + "uptime" : 51, + "version" : "rippled-0.30.0-hf1" + }, + { + "address" : "54.186.248.91:51235", + "complete_ledgers" : "18850253 - 18851277", + "latency" : 63, + "ledger" : "592C723DDBB1C5119F0D8288894060C83C8C2975A061D7C9971427D6798098F5", + "load" : 36, + "public_key" : "n9MT5EjnV912KGuBUqPs4tpdhzMPGcnDBrTuWkD9sWQHJ1kDcUcz", + "uptime" : 51, + "version" : "rippled-0.30.1" + } + ], + "status" : "success" + } +} + +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドからなるJSONオブジェクトが含まれます。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `cluster` | オブジェクト | [クラスターとして構成されている](clustering.html)場合は、同じクラスター内の他の`rippled`サーバーの概要。[新規: rippled 0.30.1][] | +| `peers` | 配列 | peerオブジェクトからなる配列。 | + +`cluster`オブジェクトの各フィールドは、該当する`rippled`サーバーの識別用キーペアの公開鍵です。(これは、[server_infoメソッド][]で当該サーバーから`pubkey_node`として返される値と同じです。)そのフィールドの内容は、以下のフィールドを持つオブジェクトです。 + +| `Field` | 型 | 説明 | +|:--------|:-------|:----------------------------------------------------------| +| `tag` | 文字列 | 構成ファイルで定義されているこのクラスターメンバーの表示名。 | +| `fee` | 数値 | (省略される場合があります)このクラスターメンバーが[トランザクションコスト](transaction-cost.html)に適用する負荷乗数。 | +| `age` | 数値 | このクラスターメンバーからの最終クラスターレポート以降の経過秒数。 | + +`peers`配列の各メンバーは、以下のフィールドを持つpeerオブジェクトです。 + +| `Field` | 型 | 説明 | +|:-------------------|:--------|:----------------------------------------------| +| `address` | 文字列 | このピアが接続しているIPアドレスとポート。 | +| `cluster` | ブール値 | (省略される場合があります)`true`の場合、現在のサーバーとピアサーバーは同じ`rippled`クラスターに含まれています。 | +| `name` | 文字列 | (省略される場合があります)ピアが同じクラスターに含まれている場合、この名前は構成ファイルで定義されているそのピアサーバーの表示名です。 | +| `complete_ledgers` | 文字列 | ピア`rippled`で利用可能なレジャーバージョンのシーケンス番号を示す範囲式 | +| `inbound` | ブール値 | (省略される場合があります)`true`の場合は、ピアはローカルサーバーに接続しています。 | +| `latency` | 数値 | ピアへのネットワーク遅延(ミリ秒単位) | +| `ledger` | 文字列 | 最後に閉鎖されたピアのレジャーのハッシュ。 | +| `load` | 数値 | ピアサーバーによるローカルサーバーへの負荷の測定値。この数値が大きいほど負荷が高くなります。(負荷の測定単位は正式には定義されていません。) | +| `protocol` | 文字列 | (省略される場合があります)ピアが使用しているプロトコルバージョン(ローカルサーバーのプロトコルバージョンと異なる場合)。 | +| `public_key` | 文字列 | (省略される場合があります)ピアのメッセージの整合性の検証に使用できる公開鍵。これは、検証に使用する公開鍵とは異なりますが、フォーマットは同じです。 | +| `sanity` | 文字列 | (省略される場合があります)このピアが現行サーバーと同じルールとレジャーシーケンスに従っているかどうか。値が`insane`の場合、ピアは並列ネットワークの一部である可能性があります。値が`unknown`の場合、現行サーバーはピアに互換性があるかどうかを把握していません。 | +| `status` | 文字列 | (省略される場合があります)ピアからの最新のステータスメッセージ。`connecting`、`connected`、`monitoring`、`validating`、`shutting`のいずれかです。 | +| `uptime` | 数値 | `rippled`サーバーがこのピアに継続して接続していた秒数。[新規: rippled 0.30.1][] | +| `version` | 文字列 | (省略される場合があります)ピアサーバーの`rippled`バージョン番号 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/print.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/print.ja.md index 3975194895..91523a747d 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/print.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/print.ja.md @@ -1,236 +1,236 @@ -# print -[[ソース]
](https://github.com/ripple/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/Print.cpp "Source") - -`print`コマンドは、さまざまな内部サブシステム(ピア、レジャークリーナー、リソースマネージャーなど)の現在の状況を返します。 - -*`print`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": "print_req_1", - "command": "print" -} -``` - -*コマンドライン* - -``` -rippled print -``` - - - -要求にはパラメーターが含まれていません。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "app" : { - "ledgercleaner" : { - "status" : "idle" - }, - "peers" : { - "peerfinder" : { - "bootcache" : { - "entries" : 109 - }, - "config" : { - "auto_connect" : "true", - "features" : "", - "max_peers" : 21, - "out_peers" : 10, - "port" : 51235, - "want_incoming" : "true" - }, - "counts" : { - "accept" : 0, - "close" : 0, - "cluster" : "0", - "connect" : 0, - "fixed" : "0", - "in" : "0/11", - "out" : "10/10", - "total" : "10" - }, - "fixed" : 0, - "livecache" : { - "entries" : [ - { - "address" : "23.239.3.247:51235", - "expires" : "30000000000 nanoseconds", - "hops" : 2 - }, - { - "address" : "192.170.145.88:51235", - "expires" : "30000000000 nanoseconds", - "hops" : 1 - }, - { - "address" : "198.204.238.130:51235", - "expires" : "26000024558 nanoseconds", - "hops" : 1 - }, - { - "address" : "203.127.12.115:51235", - "expires" : "26000024558 nanoseconds", - "hops" : 2 - }, - { - "address" : "212.83.147.67:51235", - "expires" : "26000024558 nanoseconds", - "hops" : 2 - } - ], - "hist" : "0, 10, 74, 10, 0, 0, 0, 0", - "size" : "94" - }, - "peers" : [ - { - "local_address" : "10.1.10.78:48923", - "remote_address" : "52.24.43.83:51235", - "state" : "active" - }, - { - "local_address" : "10.1.10.78:50004", - "remote_address" : "52.26.205.197:51235", - "state" : "active" - }, - { - "local_address" : "10.1.10.78:37019", - "remote_address" : "168.1.60.132:51235", - "state" : "active" - }, - { - "local_address" : "10.1.10.78:38775", - "remote_address" : "192.170.145.88:51235", - "state" : "active" - }, - { - "local_address" : "10.1.10.78:34793", - "remote_address" : "198.204.238.130:51235", - "state" : "active" - } - ] - } - }, - "resource" : { - "admin" : [ - { - "balance" : 0, - "count" : 1, - "name" : "\"127.0.0.1\"" - } - ], - "inactive" : [], - "inbound" : [], - "outbound" : [ - { - "balance" : 23, - "count" : 1, - "name" : "93.190.138.234:51235" - }, - { - "balance" : 35, - "count" : 1, - "name" : "198.204.238.130:51235" - }, - { - "balance" : 31, - "count" : 1, - "name" : "52.26.205.197:51235" - }, - { - "balance" : 32, - "count" : 1, - "name" : "54.186.73.52:51235" - }, - { - "balance" : 15, - "count" : 1, - "name" : "72.251.233.164:51235" - } - ] - }, - "server" : { - "active" : "2", - "hist" : "16", - "history" : [ - { - "bytes_in" : "214", - "bytes_out" : "11688", - "elapsed" : "0 seconds", - "id" : "16", - "requests" : 1, - "when" : "2015-Jun-16 16:33:50" - }, - { - "bytes_in" : "214", - "bytes_out" : "11431", - "elapsed" : "0 seconds", - "id" : "15", - "requests" : 1, - "when" : "2015-Jun-16 16:11:59" - }, - { - "bytes_in" : "227", - "bytes_out" : "337", - "elapsed" : "0 seconds", - "id" : "3", - "requests" : 1, - "when" : "2015-Jun-16 14:57:23" - }, - { - "bytes_in" : "214", - "bytes_out" : "2917", - "elapsed" : "0 seconds", - "id" : "2", - "requests" : 1, - "when" : "2015-Jun-16 12:39:29" - }, - { - "bytes_in" : "220", - "bytes_out" : "1426", - "elapsed" : "0 seconds", - "id" : "1", - "requests" : 1, - "when" : "2015-Jun-16 12:39:13" - } - ] - }, - "validators" : {} - }, - "status" : "success" - } -} - -``` - - - -応答は[標準フォーマット][]に従っています。結果に含まれる追加フィールドは、`rippled`サーバーの内部状態に応じて異なります。このコマンドの実行結果は、予告なく変更されることがあります。 - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# print +[[ソース]
](https://github.com/ripple/rippled/blob/315a8b6b602798a4cff4d8e1911936011e12abdb/src/ripple/rpc/handlers/Print.cpp "Source") + +`print`コマンドは、さまざまな内部サブシステム(ピア、レジャークリーナー、リソースマネージャーなど)の現在の状況を返します。 + +*`print`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": "print_req_1", + "command": "print" +} +``` + +*コマンドライン* + +``` +rippled print +``` + + + +要求にはパラメーターが含まれていません。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "app" : { + "ledgercleaner" : { + "status" : "idle" + }, + "peers" : { + "peerfinder" : { + "bootcache" : { + "entries" : 109 + }, + "config" : { + "auto_connect" : "true", + "features" : "", + "max_peers" : 21, + "out_peers" : 10, + "port" : 51235, + "want_incoming" : "true" + }, + "counts" : { + "accept" : 0, + "close" : 0, + "cluster" : "0", + "connect" : 0, + "fixed" : "0", + "in" : "0/11", + "out" : "10/10", + "total" : "10" + }, + "fixed" : 0, + "livecache" : { + "entries" : [ + { + "address" : "23.239.3.247:51235", + "expires" : "30000000000 nanoseconds", + "hops" : 2 + }, + { + "address" : "192.170.145.88:51235", + "expires" : "30000000000 nanoseconds", + "hops" : 1 + }, + { + "address" : "198.204.238.130:51235", + "expires" : "26000024558 nanoseconds", + "hops" : 1 + }, + { + "address" : "203.127.12.115:51235", + "expires" : "26000024558 nanoseconds", + "hops" : 2 + }, + { + "address" : "212.83.147.67:51235", + "expires" : "26000024558 nanoseconds", + "hops" : 2 + } + ], + "hist" : "0, 10, 74, 10, 0, 0, 0, 0", + "size" : "94" + }, + "peers" : [ + { + "local_address" : "10.1.10.78:48923", + "remote_address" : "52.24.43.83:51235", + "state" : "active" + }, + { + "local_address" : "10.1.10.78:50004", + "remote_address" : "52.26.205.197:51235", + "state" : "active" + }, + { + "local_address" : "10.1.10.78:37019", + "remote_address" : "168.1.60.132:51235", + "state" : "active" + }, + { + "local_address" : "10.1.10.78:38775", + "remote_address" : "192.170.145.88:51235", + "state" : "active" + }, + { + "local_address" : "10.1.10.78:34793", + "remote_address" : "198.204.238.130:51235", + "state" : "active" + } + ] + } + }, + "resource" : { + "admin" : [ + { + "balance" : 0, + "count" : 1, + "name" : "\"127.0.0.1\"" + } + ], + "inactive" : [], + "inbound" : [], + "outbound" : [ + { + "balance" : 23, + "count" : 1, + "name" : "93.190.138.234:51235" + }, + { + "balance" : 35, + "count" : 1, + "name" : "198.204.238.130:51235" + }, + { + "balance" : 31, + "count" : 1, + "name" : "52.26.205.197:51235" + }, + { + "balance" : 32, + "count" : 1, + "name" : "54.186.73.52:51235" + }, + { + "balance" : 15, + "count" : 1, + "name" : "72.251.233.164:51235" + } + ] + }, + "server" : { + "active" : "2", + "hist" : "16", + "history" : [ + { + "bytes_in" : "214", + "bytes_out" : "11688", + "elapsed" : "0 seconds", + "id" : "16", + "requests" : 1, + "when" : "2015-Jun-16 16:33:50" + }, + { + "bytes_in" : "214", + "bytes_out" : "11431", + "elapsed" : "0 seconds", + "id" : "15", + "requests" : 1, + "when" : "2015-Jun-16 16:11:59" + }, + { + "bytes_in" : "227", + "bytes_out" : "337", + "elapsed" : "0 seconds", + "id" : "3", + "requests" : 1, + "when" : "2015-Jun-16 14:57:23" + }, + { + "bytes_in" : "214", + "bytes_out" : "2917", + "elapsed" : "0 seconds", + "id" : "2", + "requests" : 1, + "when" : "2015-Jun-16 12:39:29" + }, + { + "bytes_in" : "220", + "bytes_out" : "1426", + "elapsed" : "0 seconds", + "id" : "1", + "requests" : 1, + "when" : "2015-Jun-16 12:39:13" + } + ] + }, + "validators" : {} + }, + "status" : "success" + } +} + +``` + + + +応答は[標準フォーマット][]に従っています。結果に含まれる追加フィールドは、`rippled`サーバーの内部状態に応じて異なります。このコマンドの実行結果は、予告なく変更されることがあります。 + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validator_list_sites.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validator_list_sites.ja.md index 778c2c59c8..b6cc8972fd 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validator_list_sites.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validator_list_sites.ja.md @@ -1,134 +1,134 @@ -# validator_list_sites -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/ValidatorListSites.cpp "Source") - -`validator_list_sites`コマンドは、バリデータリストを処理するサイトのステータス情報を返します。[新規: rippled 0.80.1][] - -*`validator_list_sites`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 1, - "command": "validator_list_sites" -} -``` - -*JSON-RPC* - -``` -{ - "method": "validator_list_sites", - "params": [ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: validator_list_sites -rippled validator_list_sites -``` - - - -要求にはパラメーターが含まれていません。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":5, - "status":"success", - "type":"response", - "result": { - "validator_sites": [ - { - "last_refresh_status": "accepted", - "last_refresh_time": "2017-Oct-13 21:26:37", - "refresh_interval_min": 5, - "uri": "http://127.0.0.1:51447/validators" - } - ] - } -} -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "status": "success", - "validator_sites": [ - { - "last_refresh_status": "accepted", - "last_refresh_time": "2017-Oct-13 21:26:37", - "refresh_interval_min": 5, - "uri": "http://127.0.0.1:51447/validators" - } - ] - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result": { - "status": "success", - "validator_sites": [ - { - "last_refresh_status": "accepted", - "last_refresh_time": "2017-Oct-13 21:26:37", - "refresh_interval_min": 5, - "uri": "http://127.0.0.1:51447/validators" - } - ] - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:------------------|:------|----------------------------------| -| `validator_sites` | 配列 | バリデータサイトオブジェクトからなる配列。 | - -`validator_sites`フィールドの配列の各メンバーは、次のフィールドを有するオブジェクトです。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-----------------|:--------------------------------| -| `last_refresh_status` | 文字列 | 存在する場合は、サイトの最終更新の[`ListDisposition`](https://github.com/ripple/rippled/blob/master/src/ripple/app/misc/ValidatorList.h)です。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | -| `last_refresh_time` | 文字列 | サイトの最終照会時刻を人間が読み取れる形式で表示します。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | -| `refresh_interval_min` | 符号なし整数 | 更新試行間隔の分数。 | -| `uri` | 文字列 | サイトのURI。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# validator_list_sites +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/ValidatorListSites.cpp "Source") + +`validator_list_sites`コマンドは、バリデータリストを処理するサイトのステータス情報を返します。[新規: rippled 0.80.1][] + +*`validator_list_sites`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 1, + "command": "validator_list_sites" +} +``` + +*JSON-RPC* + +``` +{ + "method": "validator_list_sites", + "params": [ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: validator_list_sites +rippled validator_list_sites +``` + + + +要求にはパラメーターが含まれていません。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":5, + "status":"success", + "type":"response", + "result": { + "validator_sites": [ + { + "last_refresh_status": "accepted", + "last_refresh_time": "2017-Oct-13 21:26:37", + "refresh_interval_min": 5, + "uri": "http://127.0.0.1:51447/validators" + } + ] + } +} +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "status": "success", + "validator_sites": [ + { + "last_refresh_status": "accepted", + "last_refresh_time": "2017-Oct-13 21:26:37", + "refresh_interval_min": 5, + "uri": "http://127.0.0.1:51447/validators" + } + ] + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result": { + "status": "success", + "validator_sites": [ + { + "last_refresh_status": "accepted", + "last_refresh_time": "2017-Oct-13 21:26:37", + "refresh_interval_min": 5, + "uri": "http://127.0.0.1:51447/validators" + } + ] + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:------------------|:------|----------------------------------| +| `validator_sites` | 配列 | バリデータサイトオブジェクトからなる配列。 | + +`validator_sites`フィールドの配列の各メンバーは、次のフィールドを有するオブジェクトです。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-----------------|:--------------------------------| +| `last_refresh_status` | 文字列 | 存在する場合は、サイトの最終更新の[`ListDisposition`](https://github.com/ripple/rippled/blob/master/src/ripple/app/misc/ValidatorList.h)です。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | +| `last_refresh_time` | 文字列 | サイトの最終照会時刻を人間が読み取れる形式で表示します。存在しない場合は、サイトに対するクエリーがまだ成功していません。 | +| `refresh_interval_min` | 符号なし整数 | 更新試行間隔の分数。 | +| `uri` | 文字列 | サイトのURI。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validators.ja.md b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validators.ja.md index 2b804704bf..3de427a57f 100644 --- a/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validators.ja.md +++ b/content/references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validators.ja.md @@ -1,182 +1,182 @@ -# validators -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Validators.cpp "Source") - -`validators`コマンドは、サーバーが使用する公開済みの信頼できるバリデータの最新リストに関する情報を、人間が読み取れる形式で返します。[新規: rippled 0.80.1][] - -*`validators`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 1, - "command": "validators" -} -``` - -*JSON-RPC* - -``` -{ - "method": "validators", - "params": [ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: validators -rippled validators -``` - - - -要求にはパラメーターが含まれていません。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":5, - "status":"success", - "type":"response", - "result":{ - "local_static_keys": [], - "publisher_lists":[ - { - "available":true, - "expiration":"2017-Oct-13 14:56:00", - "list":[ - "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H", - "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1" - ], - "pubkey_publisher":"ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", - "seq":1, - "version":1 - } - ], - "signing_keys":{}, - "status":"success", - "trusted_validator_keys":[ - "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1", - "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H" - ], - "validation_quorum":2, - "validator_list_expires":"2017-Oct-13 14:56:00" - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "local_static_keys": [], - "publisher_lists":[ - { - "available":true, - "expiration":"2017-Oct-13 14:56:00", - "list":[ - "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H", - "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1" - ], - "pubkey_publisher":"ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", - "seq":1, - "version":1 - } - ], - "signing_keys":{}, - "status":"success", - "trusted_validator_keys":[ - "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1", - "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H" - ], - "validation_quorum":2, - "validator_list_expires":"2017-Oct-13 14:56:00" - }, - "status":"success" -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result":{ - "local_static_keys": [], - "publisher_lists":[ - { - "available":true, - "expiration":"2017-Oct-13 14:56:00", - "list":[ - "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H", - "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1" - ], - "pubkey_publisher":"ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", - "seq":1, - "version":1 - } - ], - "signing_keys":{}, - "status":"success", - "trusted_validator_keys":[ - "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1", - "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H" - ], - "validation_quorum":2, - "validator_list_expires":"2017-Oct-13 14:56:00" - }, - "status":"success" -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-------------------------|:-------|:-----------------------------------------| -| `listed_static_keys` | 配列 | 信頼リストに常に追加可能なバリデータの公開鍵の配列。 | -| `publisher_lists` | 配列 | パブリッシャーリストオブジェクトの配列。 | -| `signing_keys` | オブジェクト | バリデータマニフェストを使用している登録済みバリデータのマスター公開鍵から、現在の署名キーへのマッピング。 | -| `trusted_validator_keys` | 配列 | 現在信頼されているバリデータの公開鍵の配列。 | -| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバーがさらに検証を要求する場合があります。 | -| `validator_list_expires` | 文字列 | 人間が読み取れる形式での現在のバリデータリストの有効期限、文字列`unknown`(サーバーが公開済みバリデータリストを読み込む必要がある場合)、または文字列`never`(サーバーが静的なバリデータリストを使用している場合)のいずれか。 | - -`publisher_lists`配列の各メンバーは、以下のフィールドを有するオブジェクトです。 - -| `Field` | 型 | 説明 | -|:-------------------|:-----------------|:-------------------------------------| -| `available` | ブール値 | `false`の場合、`list`内のバリデータキーはこのパブリッシャーによりサポートされていない可能性があります。 | -| `expiration` | 文字列 | この公開済みリストの有効期限を人間が読み取れる形式で示します。 | -| `list` | 配列 | 公開済みバリデータキーからなる配列。 | -| `pubkey_publisher` | 文字列 | リストパブリッシャーのEd25519またはECDSA公開鍵(16進数)。 | -| `seq` | 符号なし整数 | 公開済みリストのシーケンス番号。 | -| `version` | 符号なし整数 | リストフォーマットのバージョン。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# validators +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Validators.cpp "Source") + +`validators`コマンドは、サーバーが使用する公開済みの信頼できるバリデータの最新リストに関する情報を、人間が読み取れる形式で返します。[新規: rippled 0.80.1][] + +*`validators`要求は、権限のないユーザーは実行できない[管理メソッド](admin-rippled-methods.html)です。* + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 1, + "command": "validators" +} +``` + +*JSON-RPC* + +``` +{ + "method": "validators", + "params": [ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: validators +rippled validators +``` + + + +要求にはパラメーターが含まれていません。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":5, + "status":"success", + "type":"response", + "result":{ + "local_static_keys": [], + "publisher_lists":[ + { + "available":true, + "expiration":"2017-Oct-13 14:56:00", + "list":[ + "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H", + "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1" + ], + "pubkey_publisher":"ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", + "seq":1, + "version":1 + } + ], + "signing_keys":{}, + "status":"success", + "trusted_validator_keys":[ + "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1", + "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H" + ], + "validation_quorum":2, + "validator_list_expires":"2017-Oct-13 14:56:00" + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "local_static_keys": [], + "publisher_lists":[ + { + "available":true, + "expiration":"2017-Oct-13 14:56:00", + "list":[ + "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H", + "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1" + ], + "pubkey_publisher":"ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", + "seq":1, + "version":1 + } + ], + "signing_keys":{}, + "status":"success", + "trusted_validator_keys":[ + "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1", + "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H" + ], + "validation_quorum":2, + "validator_list_expires":"2017-Oct-13 14:56:00" + }, + "status":"success" +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result":{ + "local_static_keys": [], + "publisher_lists":[ + { + "available":true, + "expiration":"2017-Oct-13 14:56:00", + "list":[ + "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H", + "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1" + ], + "pubkey_publisher":"ED58ED4AA543B524F16771F6E1367BAA220D99DCF22CD8CF7A11309E9EAB1B647B", + "seq":1, + "version":1 + } + ], + "signing_keys":{}, + "status":"success", + "trusted_validator_keys":[ + "n94D73ZKSUaTDCnUqYW5ugJ9fHPNxda9GQVoWA6BGtcKuuhozrD1", + "n9Ltz6ZxPRWTkqwBbpvgbaXPgm6GYCxCJRqFgNXhWVUebgezo28H" + ], + "validation_quorum":2, + "validator_list_expires":"2017-Oct-13 14:56:00" + }, + "status":"success" +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-------------------------|:-------|:-----------------------------------------| +| `listed_static_keys` | 配列 | 信頼リストに常に追加可能なバリデータの公開鍵の配列。 | +| `publisher_lists` | 配列 | パブリッシャーリストオブジェクトの配列。 | +| `signing_keys` | オブジェクト | バリデータマニフェストを使用している登録済みバリデータのマスター公開鍵から、現在の署名キーへのマッピング。 | +| `trusted_validator_keys` | 配列 | 現在信頼されているバリデータの公開鍵の配列。 | +| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバーがさらに検証を要求する場合があります。 | +| `validator_list_expires` | 文字列 | 人間が読み取れる形式での現在のバリデータリストの有効期限、文字列`unknown`(サーバーが公開済みバリデータリストを読み込む必要がある場合)、または文字列`never`(サーバーが静的なバリデータリストを使用している場合)のいずれか。 | + +`publisher_lists`配列の各メンバーは、以下のフィールドを有するオブジェクトです。 + +| `Field` | 型 | 説明 | +|:-------------------|:-----------------|:-------------------------------------| +| `available` | ブール値 | `false`の場合、`list`内のバリデータキーはこのパブリッシャーによりサポートされていない可能性があります。 | +| `expiration` | 文字列 | この公開済みリストの有効期限を人間が読み取れる形式で示します。 | +| `list` | 配列 | 公開済みバリデータキーからなる配列。 | +| `pubkey_publisher` | 文字列 | リストパブリッシャーのEd25519またはECDSA公開鍵(16進数)。 | +| `seq` | 符号なし整数 | 公開済みリストのシーケンス番号。 | +| `version` | 符号なし整数 | リストフォーマットのバージョン。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/api-conventions/api-conventions.ja.md b/content/references/rippled-api/api-conventions/api-conventions.ja.md index d4635259a5..36d3fbe54f 100644 --- a/content/references/rippled-api/api-conventions/api-conventions.ja.md +++ b/content/references/rippled-api/api-conventions/api-conventions.ja.md @@ -1,5 +1,5 @@ -# APIの規則 - -このセクションでは、JSON-RPCおよびWebSocketインターフェイスを含む`rippled` APIのデータ型とフォーマットについて説明します。 - +# APIの規則 + +このセクションでは、JSON-RPCおよびWebSocketインターフェイスを含む`rippled` APIのデータ型とフォーマットについて説明します。 + これらのデータ型の一部は、[Data API](data-api.html)を含む、より高度なAPIにも使用されます。 \ No newline at end of file diff --git a/content/references/rippled-api/api-conventions/base58-encodings.ja.md b/content/references/rippled-api/api-conventions/base58-encodings.ja.md index 29d5e38f07..d3ebf17fc3 100644 --- a/content/references/rippled-api/api-conventions/base58-encodings.ja.md +++ b/content/references/rippled-api/api-conventions/base58-encodings.ja.md @@ -1,31 +1,31 @@ -# base58エンコード - -`rippled` APIでは、チェックサムを含む[base58](https://en.wikipedia.org/wiki/Base58)エンコード(「Base58Check」とも呼ばれます)を使用して[アカウントアドレス](accounts.html#アドレス)や暗号鍵に関連するその他のタイプの値が表現されることがよくあります。このエンコードは、Bitcoinのアドレスに使用されているエンコードと同じですが、XRP Ledgerでは以下のディクショナリが使用される点が異なります。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。 - -XRP Ledgerにより、さまざまなタイプの値をエンコードする前に、データタイプを区別する固有の8ビット数値が値の前に付加されます。XRP Ledgerのbase58ディクショナリの文字配列と組み合わされた、さまざまなタイプのエンコード値のbase58表現は、タイプごとに固有の文字で始まります。 - -以下の表に、XRP Ledgerで使用されるすべてのエンコードを示します。 - -| データタイプ | 開始文字 | タイププレフィクス | コンテンツのサイズ¹ | 最大文字数 | -|:-----------------------------|:------------|:---------------|:--------------|:--| -| [アカウント][]アドレス | r | `0x00` | 20バイト | 35 | -| アカウントの公開鍵 | a | `0x23` | 33バイト | 53 | -| シード値(シークレットキー) | s | `0x21` | 16バイト | 29 | -| 検証の公開鍵 | n | `0x1C` | 33バイト | 53 | - -¹ コンテンツのサイズでは1バイトのタイププレフィクスは除外されます。 - -[アカウント]: accounts.html - -## 関連項目 - -- [アドレスのエンコード](accounts.html#アドレスのエンコード) - アドレスのエンコードについての詳細な情報 -- [暗号鍵](cryptographic-keys.html) - XRP Ledgerの暗号鍵のタイプとその使用法 -- [wallet_proposeリファレンス][wallet_propose method] - アカウントキーを生成するためのAPIメソッド -- [validation_createリファレンス][validation_create method] - バリデータキーを生成するためのAPIメソッド - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# base58エンコード + +`rippled` APIでは、チェックサムを含む[base58](https://en.wikipedia.org/wiki/Base58)エンコード(「Base58Check」とも呼ばれます)を使用して[アカウントアドレス](accounts.html#アドレス)や暗号鍵に関連するその他のタイプの値が表現されることがよくあります。このエンコードは、Bitcoinのアドレスに使用されているエンコードと同じですが、XRP Ledgerでは以下のディクショナリが使用される点が異なります。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。 + +XRP Ledgerにより、さまざまなタイプの値をエンコードする前に、データタイプを区別する固有の8ビット数値が値の前に付加されます。XRP Ledgerのbase58ディクショナリの文字配列と組み合わされた、さまざまなタイプのエンコード値のbase58表現は、タイプごとに固有の文字で始まります。 + +以下の表に、XRP Ledgerで使用されるすべてのエンコードを示します。 + +| データタイプ | 開始文字 | タイププレフィクス | コンテンツのサイズ¹ | 最大文字数 | +|:-----------------------------|:------------|:---------------|:--------------|:--| +| [アカウント][]アドレス | r | `0x00` | 20バイト | 35 | +| アカウントの公開鍵 | a | `0x23` | 33バイト | 53 | +| シード値(シークレットキー) | s | `0x21` | 16バイト | 29 | +| 検証の公開鍵 | n | `0x1C` | 33バイト | 53 | + +¹ コンテンツのサイズでは1バイトのタイププレフィクスは除外されます。 + +[アカウント]: accounts.html + +## 関連項目 + +- [アドレスのエンコード](accounts.html#アドレスのエンコード) - アドレスのエンコードについての詳細な情報 +- [暗号鍵](cryptographic-keys.html) - XRP Ledgerの暗号鍵のタイプとその使用法 +- [wallet_proposeリファレンス][wallet_propose method] - アカウントキーを生成するためのAPIメソッド +- [validation_createリファレンス][validation_create method] - バリデータキーを生成するためのAPIメソッド + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/api-conventions/basic-data-types.ja.md b/content/references/rippled-api/api-conventions/basic-data-types.ja.md index 997ad1730e..c7bab7b9d0 100644 --- a/content/references/rippled-api/api-conventions/basic-data-types.ja.md +++ b/content/references/rippled-api/api-conventions/basic-data-types.ja.md @@ -1,165 +1,165 @@ -# 基本的なデータ型 - -さまざまなタイプのオブジェクトがそれぞれ異なる方法で一意に識別されます。 - -[アカウント](accounts.html)は[アドレス][]で識別されます。例えば、`"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"`など。アドレスは常に「r」で始まります。`rippled`メソッドの多くは、16進数表記に対応しています。 - -[トランザクション](transaction-formats.html)は、トランザクションのバイナリフォーマットの[ハッシュ][]で識別されます。また、トランザクションは送信アカウントと[シーケンス番号][]でも識別できます。 - -閉鎖された各[レジャー](ledger-data-formats.html)は、[レジャーインデックス][]と[ハッシュ][]値を保有します。[レジャーを指定する][]場合、いずれか1つを使用できます。 - -## アドレス -[アドレス]: #アドレス - -{% include '_snippets/data_types/address.md' %} - - - -## ハッシュ -[ハッシュ]: #ハッシュ - -{% include '_snippets/data_types/hash.md' %} - - -### ハッシュプレフィクス -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/HashPrefix.h "Source") - -多くの場合、XRP Ledgerではオブジェクトのバイナリデータに4バイトのプレフィクスを付けてからハッシュを計算するため、異なるタイプのオブジェクトが同じバイナリフォーマットである場合でも、異なるハッシュが設定されます。既存の4バイトコードは、ASCIIでエンコードされた英字3文字の後に0バイトが続く構成となっています。 - -ある種のハッシュは、APIの要求と応答に使用されます。またある種のデータに署名するときの最初のステップで計算されるだけのものや、より高度なハッシュを計算するためのものもあります。XRP Ledgerで使用されるすべての4バイトのハッシュプレフィクスは以下の表の通りです。 - -| オブジェクトタイプ | APIフィールド | ハッシュプレフィクス(16進数) | ハッシュプレフィクス(テキスト) | -|:--------------------------------------|:-------------------------------------|:------------------|:--| -| コンセンサスの提案 | なし | `0x50525000` | `PRP\0` | -| レジャーバージョン | `ledger_hash` | `0x4C575200` | `LWR\0` | -| レジャー状態データ | `account_state` ([レジャーヘッダー][]内) | `0x4D4C4E00` | `MLN\0` | -| レジャーデータ内部ノード | なし | `0x4D494E00` | `MIN\0` | -| レジャーデータ内部ノード([SHAMapv2][]) | なし | `0x494E5200` | `INR\0` | -| Payment Channelのクレーム | なし | `0x434C4D00` | `CLM\0` | -| 署名済みのトランザクション | トランザクションの`hash` | `0x54584E00` | `TXN\0` | -| メタデータを持つトランザクション | なし | `0x534E4400` | `SND\0` | -| 未署名のトランザクション(シングル署名) | なし | `0x53545800` | `STX\0` | -| 未署名のトランザクション(マルチ署名) | なし | `0x534D5400` | `SMT\0` | -| 検証の投票 | なし | `0x56414C00` | `VAL\0` | -| バリデータサブキー認証(「バリデータマニフェスト」) | なし | `0x4D414E00` | `MAN\0` | - -[レジャーヘッダー]: ledger-header.html -[SHAMapv2]: known-amendments.html#shamapv2 - -[レジャーオブジェクトID](ledger-object-ids.html)も似た方法で計算されますが、ここで説明したプレフィクスの代わりに「スペースキー」という2バイトのプレフィクスを使用します。 - - -## アカウントシーケンス -[シーケンス番号]: #アカウントシーケンス - -{% include '_snippets/data_types/account_sequence.md' %} - - - -## レジャーインデックス -[レジャーインデックス]: #レジャーインデックス - -{% include '_snippets/data_types/ledger_index.md' %} - - - -### レジャーの指定 - -APIメソッドの多くは、レジャーのインスタンスを指定する必要があります。その場合、共有されたレジャーの特定バージョンで最新と見なされるデータで指定する必要があります。レジャーバージョンを受け入れるコマンドは、すべて同様に機能します。使用するレジャーを指定するには、以下の3つの方法があります。 - -1. `ledger_index`パラメーターにレジャーの[レジャーインデックス][]を指定します。閉鎖された各レジャーには識別用のシーケンス番号が付いていて、その前に検証されたレジャーより1つ大きい番号になります。(ジェネシスレジャーのシーケンス番号は0です。) -2. `ledger_hash`パラメーターにレジャーの[ハッシュ][]値を指定します。 -3. `ledger_index`パラメーターに以下のいずれかのショートカットを指定します。 - * `validated`: ネットワーク全体で検証された最新のレジャー - * `closed`: 変更できないように閉鎖され、検証を提案されている最新のレジャー - * `current`: サーバーで現在処理中のレジャーバージョン - -上記3つのフォーマットすべてを受け入れる、廃止予定の`ledger`パラメーターもあります。このパラメーターは使用*しないでください*。今後予告なしに廃止される可能性があります。 - -レジャーを指定しない場合、デフォルトで`current`(処理中)レジャーが選択されます。レジャーを指定するフィールドを複数指定した場合、廃止予定の`ledger`フィールドが最初に使用され(存在する場合)、`ledger_hash`に戻ります。`ledger_index`フィールドは、他の2つのフィールドがいずれも存在しない場合を除いて無視されます。 - -**注記:** レジャーを指定する際に上記のデフォルトの動作に頼らないでください。変更される場合があります。可能であれば、常に要求にてレジャーバージョンを指定してください。 - - -## 通貨 - -XRP Ledgerには2種類の通貨があります。XRPとその他のあらゆる通貨です。この2つには多くの相違点があります。 - -| `XRP` | 発行済み通貨 | -|:----------------------------------------------------------------|:-----------| -| 発行者なし | 必ずXRP Ledgerアカウントが発行 | -| 文字列として指定 | オブジェクトとして指定 | -| [アカウント](accountroot.html)内で追跡 | [トラストライン](ripplestate.html)内で追跡 | -| 作成は一切不可、消却のみ可能 | 自由に発行または清算可能 | -| 最大値: `100000000000`(`1e11`) | 最大値: `9999999999999999e80` | -| [「drop」](#xrp)(0.000001 XRP)に近い精度 | 10進15桁の精度で非ゼロの最少絶対値は `1000000000000000e-96` | - -**注意:** XRP Ledgerでは、通常の浮動小数点数とは異なる精度の小数点計算を使用するため、通貨額は常に文字列として表されます。 - -### 通貨額の指定 - -一部のAPIメソッドでは、通貨額を指定する必要があります。取扱通貨がネットワーク固有のXRP通貨であるかその他の通貨単位(_イシュアンス_)であるかによって、指定方法が大きく異なります。 - -#### XRP -[XRPのdrop数]: #xrp -[XRP、drop単位]: #xrp - -XRPの額は文字列で表します。(XRPの精度は64ビット整数と同等ですが、JSON 整数は32ビットに制限されるため、JSON整数で表す場合はXRPがオーバーフローする恐れがあります。)XRPは正式には「drop」で指定します。これは0.000001(百万分の1)のXRPと等価です。したがって、JSON文書で1.0 XRPを表示するには、次のように書きます。 - -``` -"1000000" -``` - -**XRPをオブジェクトに指定しないでください。** - -単体テストでは、XRPの値(dropではありません)を小数点を使用して指定できます。例えば、「1.23」は1.23 XRPを意味します。それ以外のすべての場合では、XRPは常にdrop単位で指定し、小数点は使用しません。例えば、「1230000」は1.23 XRPを意味します。 - -#### 非XRP - -XRP以外の通貨(法定通貨としてのドル、貴金属、暗号資産、その他のカスタム通貨を含む)を指定する場合、通貨指定オブジェクトを使用して指定する必要があります。以下は、3つのフィールドを持つJSONオブジェクトです。 - -| `Field` | 型 | 説明 | -|:-----------|:---------------------------|:-----------------------------------| -| `currency` | 文字列 - [通貨コード][] | 通貨を発行するための任意コード。`XRP`は使用できません。 | -| `value` | 文字列 | 通貨の金額を表す引用符付き10進数表記。これには科学的記数法が含まれ、例えば`1.23e11`は123,000,000,000を意味します。`e`と`E`のどちらも使用できます。 | -| `issuer` | 文字列 | 通貨を発行する組織の一意のアカウントアドレス。つまり、通貨を清算できる個人または企業です。 | - -**注意:** これらのフィールド名は大文字小文字の区別があります。 - -例えば、アカウント`r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59`によって発行された$153.75 USドルは、以下のように指定します。 - -``` -{ - "currency": "USD", - "value": "153.75", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" -} -``` - -単体テストでは、非XRP通貨の金額値をスラッシュで区切られた文字列で指定できます。例えば、`"amount/currency/issuer"`のフォーマットになります。その他すべての場合では、前述のJSONオブジェクトのフォーマットを使用する必要があります。 - -#### 金額なしでの通貨の指定 - -XRP以外の通貨を金額なしで指定する場合は(主に、通貨取引オファーのオーダーブックを定義する場合など)、上記のように指定しますが、`value`フィールドは省略します。 - -XRPを金額なしで指定する場合は(主に、オーダーブックを定義する場合など)、JSONオブジェクトとして指定しますが、使用するフィールドは`currency`フィールド _のみ_ です。XRPの場合は`issuer`フィールドを指定してはいけません。 - -最後に、支払いの受取人アカウントが複数のイシュアー(通貨発行者)を信頼している場合は、受取人が受け入れているイシュアーがどのように組み合わされても支払いが行われるように指定できます。これを行うには、受取人アカウントのアドレスをJSONオブジェクトに`issuer`値として指定します。 - -### 通貨コード -[通貨コード]: #通貨コードs - -{% include '_snippets/data_types/currency_code.md' %} - - - -## 時間の指定 - -`rippled`サーバーとそのAPIでは、時間を符号なし整数で表します。この数値は、「Rippleエポック」である2000年1月1日(00:00 UTC)から経過した秒数を表しています。これは[UNIXエポック](http://en.wikipedia.org/wiki/Unix_time)と同様に機能しますが、RippleエポックはUNIXエポックより946684800秒遅れています。 - -Rippleエポック時間を32ビット変数でUNIXエポック時間に変換しないでください。整数のオーバーフローが発生する恐れがあります。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# 基本的なデータ型 + +さまざまなタイプのオブジェクトがそれぞれ異なる方法で一意に識別されます。 + +[アカウント](accounts.html)は[アドレス][]で識別されます。例えば、`"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"`など。アドレスは常に「r」で始まります。`rippled`メソッドの多くは、16進数表記に対応しています。 + +[トランザクション](transaction-formats.html)は、トランザクションのバイナリフォーマットの[ハッシュ][]で識別されます。また、トランザクションは送信アカウントと[シーケンス番号][]でも識別できます。 + +閉鎖された各[レジャー](ledger-data-formats.html)は、[レジャーインデックス][]と[ハッシュ][]値を保有します。[レジャーを指定する][]場合、いずれか1つを使用できます。 + +## アドレス +[アドレス]: #アドレス + +{% include '_snippets/data_types/address.md' %} + + + +## ハッシュ +[ハッシュ]: #ハッシュ + +{% include '_snippets/data_types/hash.md' %} + + +### ハッシュプレフィクス +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/HashPrefix.h "Source") + +多くの場合、XRP Ledgerではオブジェクトのバイナリデータに4バイトのプレフィクスを付けてからハッシュを計算するため、異なるタイプのオブジェクトが同じバイナリフォーマットである場合でも、異なるハッシュが設定されます。既存の4バイトコードは、ASCIIでエンコードされた英字3文字の後に0バイトが続く構成となっています。 + +ある種のハッシュは、APIの要求と応答に使用されます。またある種のデータに署名するときの最初のステップで計算されるだけのものや、より高度なハッシュを計算するためのものもあります。XRP Ledgerで使用されるすべての4バイトのハッシュプレフィクスは以下の表の通りです。 + +| オブジェクトタイプ | APIフィールド | ハッシュプレフィクス(16進数) | ハッシュプレフィクス(テキスト) | +|:--------------------------------------|:-------------------------------------|:------------------|:--| +| コンセンサスの提案 | なし | `0x50525000` | `PRP\0` | +| レジャーバージョン | `ledger_hash` | `0x4C575200` | `LWR\0` | +| レジャー状態データ | `account_state` ([レジャーヘッダー][]内) | `0x4D4C4E00` | `MLN\0` | +| レジャーデータ内部ノード | なし | `0x4D494E00` | `MIN\0` | +| レジャーデータ内部ノード([SHAMapv2][]) | なし | `0x494E5200` | `INR\0` | +| Payment Channelのクレーム | なし | `0x434C4D00` | `CLM\0` | +| 署名済みのトランザクション | トランザクションの`hash` | `0x54584E00` | `TXN\0` | +| メタデータを持つトランザクション | なし | `0x534E4400` | `SND\0` | +| 未署名のトランザクション(シングル署名) | なし | `0x53545800` | `STX\0` | +| 未署名のトランザクション(マルチ署名) | なし | `0x534D5400` | `SMT\0` | +| 検証の投票 | なし | `0x56414C00` | `VAL\0` | +| バリデータサブキー認証(「バリデータマニフェスト」) | なし | `0x4D414E00` | `MAN\0` | + +[レジャーヘッダー]: ledger-header.html +[SHAMapv2]: known-amendments.html#shamapv2 + +[レジャーオブジェクトID](ledger-object-ids.html)も似た方法で計算されますが、ここで説明したプレフィクスの代わりに「スペースキー」という2バイトのプレフィクスを使用します。 + + +## アカウントシーケンス +[シーケンス番号]: #アカウントシーケンス + +{% include '_snippets/data_types/account_sequence.md' %} + + + +## レジャーインデックス +[レジャーインデックス]: #レジャーインデックス + +{% include '_snippets/data_types/ledger_index.md' %} + + + +### レジャーの指定 + +APIメソッドの多くは、レジャーのインスタンスを指定する必要があります。その場合、共有されたレジャーの特定バージョンで最新と見なされるデータで指定する必要があります。レジャーバージョンを受け入れるコマンドは、すべて同様に機能します。使用するレジャーを指定するには、以下の3つの方法があります。 + +1. `ledger_index`パラメーターにレジャーの[レジャーインデックス][]を指定します。閉鎖された各レジャーには識別用のシーケンス番号が付いていて、その前に検証されたレジャーより1つ大きい番号になります。(ジェネシスレジャーのシーケンス番号は0です。) +2. `ledger_hash`パラメーターにレジャーの[ハッシュ][]値を指定します。 +3. `ledger_index`パラメーターに以下のいずれかのショートカットを指定します。 + * `validated`: ネットワーク全体で検証された最新のレジャー + * `closed`: 変更できないように閉鎖され、検証を提案されている最新のレジャー + * `current`: サーバーで現在処理中のレジャーバージョン + +上記3つのフォーマットすべてを受け入れる、廃止予定の`ledger`パラメーターもあります。このパラメーターは使用*しないでください*。今後予告なしに廃止される可能性があります。 + +レジャーを指定しない場合、デフォルトで`current`(処理中)レジャーが選択されます。レジャーを指定するフィールドを複数指定した場合、廃止予定の`ledger`フィールドが最初に使用され(存在する場合)、`ledger_hash`に戻ります。`ledger_index`フィールドは、他の2つのフィールドがいずれも存在しない場合を除いて無視されます。 + +**注記:** レジャーを指定する際に上記のデフォルトの動作に頼らないでください。変更される場合があります。可能であれば、常に要求にてレジャーバージョンを指定してください。 + + +## 通貨 + +XRP Ledgerには2種類の通貨があります。XRPとその他のあらゆる通貨です。この2つには多くの相違点があります。 + +| `XRP` | 発行済み通貨 | +|:----------------------------------------------------------------|:-----------| +| 発行者なし | 必ずXRP Ledgerアカウントが発行 | +| 文字列として指定 | オブジェクトとして指定 | +| [アカウント](accountroot.html)内で追跡 | [トラストライン](ripplestate.html)内で追跡 | +| 作成は一切不可、消却のみ可能 | 自由に発行または清算可能 | +| 最大値: `100000000000`(`1e11`) | 最大値: `9999999999999999e80` | +| [「drop」](#xrp)(0.000001 XRP)に近い精度 | 10進15桁の精度で非ゼロの最少絶対値は `1000000000000000e-96` | + +**注意:** XRP Ledgerでは、通常の浮動小数点数とは異なる精度の小数点計算を使用するため、通貨額は常に文字列として表されます。 + +### 通貨額の指定 + +一部のAPIメソッドでは、通貨額を指定する必要があります。取扱通貨がネットワーク固有のXRP通貨であるかその他の通貨単位(_イシュアンス_)であるかによって、指定方法が大きく異なります。 + +#### XRP +[XRPのdrop数]: #xrp +[XRP、drop単位]: #xrp + +XRPの額は文字列で表します。(XRPの精度は64ビット整数と同等ですが、JSON 整数は32ビットに制限されるため、JSON整数で表す場合はXRPがオーバーフローする恐れがあります。)XRPは正式には「drop」で指定します。これは0.000001(百万分の1)のXRPと等価です。したがって、JSON文書で1.0 XRPを表示するには、次のように書きます。 + +``` +"1000000" +``` + +**XRPをオブジェクトに指定しないでください。** + +単体テストでは、XRPの値(dropではありません)を小数点を使用して指定できます。例えば、「1.23」は1.23 XRPを意味します。それ以外のすべての場合では、XRPは常にdrop単位で指定し、小数点は使用しません。例えば、「1230000」は1.23 XRPを意味します。 + +#### 非XRP + +XRP以外の通貨(法定通貨としてのドル、貴金属、暗号資産、その他のカスタム通貨を含む)を指定する場合、通貨指定オブジェクトを使用して指定する必要があります。以下は、3つのフィールドを持つJSONオブジェクトです。 + +| `Field` | 型 | 説明 | +|:-----------|:---------------------------|:-----------------------------------| +| `currency` | 文字列 - [通貨コード][] | 通貨を発行するための任意コード。`XRP`は使用できません。 | +| `value` | 文字列 | 通貨の金額を表す引用符付き10進数表記。これには科学的記数法が含まれ、例えば`1.23e11`は123,000,000,000を意味します。`e`と`E`のどちらも使用できます。 | +| `issuer` | 文字列 | 通貨を発行する組織の一意のアカウントアドレス。つまり、通貨を清算できる個人または企業です。 | + +**注意:** これらのフィールド名は大文字小文字の区別があります。 + +例えば、アカウント`r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59`によって発行された$153.75 USドルは、以下のように指定します。 + +``` +{ + "currency": "USD", + "value": "153.75", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" +} +``` + +単体テストでは、非XRP通貨の金額値をスラッシュで区切られた文字列で指定できます。例えば、`"amount/currency/issuer"`のフォーマットになります。その他すべての場合では、前述のJSONオブジェクトのフォーマットを使用する必要があります。 + +#### 金額なしでの通貨の指定 + +XRP以外の通貨を金額なしで指定する場合は(主に、通貨取引オファーのオーダーブックを定義する場合など)、上記のように指定しますが、`value`フィールドは省略します。 + +XRPを金額なしで指定する場合は(主に、オーダーブックを定義する場合など)、JSONオブジェクトとして指定しますが、使用するフィールドは`currency`フィールド _のみ_ です。XRPの場合は`issuer`フィールドを指定してはいけません。 + +最後に、支払いの受取人アカウントが複数のイシュアー(通貨発行者)を信頼している場合は、受取人が受け入れているイシュアーがどのように組み合わされても支払いが行われるように指定できます。これを行うには、受取人アカウントのアドレスをJSONオブジェクトに`issuer`値として指定します。 + +### 通貨コード +[通貨コード]: #通貨コードs + +{% include '_snippets/data_types/currency_code.md' %} + + + +## 時間の指定 + +`rippled`サーバーとそのAPIでは、時間を符号なし整数で表します。この数値は、「Rippleエポック」である2000年1月1日(00:00 UTC)から経過した秒数を表しています。これは[UNIXエポック](http://en.wikipedia.org/wiki/Unix_time)と同様に機能しますが、RippleエポックはUNIXエポックより946684800秒遅れています。 + +Rippleエポック時間を32ビット変数でUNIXエポック時間に変換しないでください。整数のオーバーフローが発生する恐れがあります。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/api-conventions/currency-formats.ja.md b/content/references/rippled-api/api-conventions/currency-formats.ja.md index efb3980ef7..8869dd6879 100644 --- a/content/references/rippled-api/api-conventions/currency-formats.ja.md +++ b/content/references/rippled-api/api-conventions/currency-formats.ja.md @@ -1,66 +1,66 @@ -# 通貨フォーマット - -XRP Ledgerには2種類の通貨([XRP](xrp.html)と[発行済み通貨](issued-currencies.html))があります。XRP Ledgerでは、これらの通貨のフォーマットは異なりますが、いずれの通貨も高精度です。 - -## 文字列フォーマット - -{% include '_snippets/string-number-formatting.md' %} - - -## XRPの精度 - -XRPの精度は、64ビット符号なし整数と同等であり、各単位は0.000001 XRPと同等です。プロパティは次の通りです。 - -* 最小値: `0` -* 最大値: `100000000000`(1011)XRP - - `"100000000000000000"`(1017) dropのXRP -* `0.000001`(10-6)XRPに近い精度 - - `"1"` dropのXRP - -## 発行済み通貨の精度 - -XRP Ledgerの発行済み通貨は、以下の精度のカスタムフォーマットで表現されます。 - -* 非ゼロの最小絶対値: `1000000000000000e-96` -* 最大値: `9999999999999999e80` -* 最小値: `-9999999999999999e80` -* 10進15桁の精度 - -## 発行済み通貨の計算 -[[ソース]
](https://github.com/ripple/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/STAmount.cpp "Source") - -![発行済み通貨額フォーマットの図](img/currency-number-format.png) - -`rippled`内部では発行済み通貨の数値はカスタムの数値フォーマットで表現されます。このフォーマットではさまざまな資産(一般的にごく小さな単位または極めて大きな単位で測定される資産を含む)を保管できます。このフォーマットでは、有効数字と10のべき乗の指数を科学的記数法と同様の方法で使用します。このフォーマットは、指定された範囲内のプラスまたはマイナスの有効桁数と指数に対応しています。非整数値の一般的な浮動小数点表記とは異なり、このフォーマットでは整数を用いて計算します。このため、常に15桁の精度が維持されます。乗算と除算には、最下位の有効数字の丸め過ぎを補う調整機能があります。 - -「任意精度」の数値フォーマットとは異なり、カスタムフォーマットは64ビットの固定サイズで格納できます。このようにシリアル化される場合、このフォーマットは「非XRP」ビット、符号ビット、有効桁数、指数で構成されます。これらは次の順で表示されます。 - -1. 発行済み通貨額の1番目のビット(最上位ビット)は、XRPの額ではないことを示す`1`です。(XRPの額である場合、最上位ビットは常に`0`に設定され、このフォーマットからXRPの額が区別されます。) -2. 符号ビットは、金額のプラスマイナスを示します。標準的な[2の補数で表される](https://en.wikipedia.org/wiki/Two%27s_complement)整数とは異なり、`1` はXRP Ledgerフォーマットでは**プラス**を示し`0`はマイナスを示します。 -3. 次の8ビットは、指数を符号なし整数で表しています。指数は、小数点以下桁数(有効桁数に乗算する10のべき乗)を-96以上+80以下の範囲で示します。ただしシリアル化では、この指数に97を加算して符号なし整数としてシリアル化できるようにします。したがってシリアル化された値が`1`の場合は指数`-96`、シリアル化された値が`177`の場合は指数80を示します。 -4. 残りの54ビットは、有効数字を符号なし整数で表します。シリアル化では、値0の特殊なケースを除き、この値は1015(`1000000000000000`)以上1016-1(`9999999999999999`)以下の範囲で正規化されます。値0の特殊なケースがあります。この場合符号ビット、指数、および仮数はすべてゼロであるため、64ビット値は`0x8000000000000000000000000000000000000000`としてシリアル化されます。 - - -## 通貨コード - -XRP LedgerのXRP以外の通貨には160ビットの通貨コードがあります。[`rippled`API](rippled-api.html)では、標準マッピングを使用して3文字のASCII文字列(大文字と小文字の区別あり)が160ビットの通貨コードにマッピングされます。通貨コード`XRP`は発行済み通貨には使用できません。同一コードの通貨は接続トラストラインを通じて[ripple](rippling.html)できます。通貨コードには、XRP Ledgerに組み込まれるその他の動作はありません。 - -### 標準通貨コード - -標準通貨マッピングによりビットが次のように割り当てられます。 - -![標準通貨コードのフォーマット](img/currency-code-format.png) - -1. 最初の8ビットは`0x00`でなければなりません。 -2. 次の88ビットは予約済みであり、すべて`0`です。 -3. 次の24ビットは3つのASCII文字を表します。 - [ISO 4217](http://www.xe.com/iso4217.php)コードまたはよく利用されている疑似ISO 4217コード(BTCなど)の使用が推奨されます。ただし、すべての大文字と小文字、桁数、および記号`?`、`!`、`@`、`#`、`$`、`%`、`^`、`&`、`*`、`<`、`>`、`(`、`)`、`{`、`}`、`[`、`]`、および|の組み合わせを使用できます。通貨コード`XRP`(すべて大文字)はXRP用に予約されており、発行済み通貨には使用できません。 -4. 次の40ビットは予約済みであり、すべて`0`です。 - -通常、XRP額の指定時には通貨コードは使用しません。フィールドにXRPの通貨コードが指定されている稀なケースでは、通貨コードのバイナリ形式はすべてゼロになります。 - -### 非標準通貨コード - -通貨コードとして160ビット(40文字)16進文字列(例: `015841551A748AD2C1F76FF6ECB0CCCD00000000`)を使用して、その他のタイプの通貨を発行することもできます。異なる通貨コードタイプとして扱われないようにするには、先頭8ビットが`0x00`であってはなりません。 - -**廃止予定:** 一部の旧バージョンの[ripple-lib](https://github.com/ripple/ripple-lib)では通貨コードタイプとして「有利子」または「マイナス利子」がサポートされていました。これらの通貨の先頭8ビットは`0x01`です。マイナス利子/有利子通貨はサポートされなくなりましたが、レジャーデータにこのような通貨が現れることがあります。詳しくは、[マイナス利子](demurrage.html)を参照してください。 +# 通貨フォーマット + +XRP Ledgerには2種類の通貨([XRP](xrp.html)と[発行済み通貨](issued-currencies.html))があります。XRP Ledgerでは、これらの通貨のフォーマットは異なりますが、いずれの通貨も高精度です。 + +## 文字列フォーマット + +{% include '_snippets/string-number-formatting.md' %} + + +## XRPの精度 + +XRPの精度は、64ビット符号なし整数と同等であり、各単位は0.000001 XRPと同等です。プロパティは次の通りです。 + +* 最小値: `0` +* 最大値: `100000000000`(1011)XRP + - `"100000000000000000"`(1017) dropのXRP +* `0.000001`(10-6)XRPに近い精度 + - `"1"` dropのXRP + +## 発行済み通貨の精度 + +XRP Ledgerの発行済み通貨は、以下の精度のカスタムフォーマットで表現されます。 + +* 非ゼロの最小絶対値: `1000000000000000e-96` +* 最大値: `9999999999999999e80` +* 最小値: `-9999999999999999e80` +* 10進15桁の精度 + +## 発行済み通貨の計算 +[[ソース]
](https://github.com/ripple/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/STAmount.cpp "Source") + +![発行済み通貨額フォーマットの図](img/currency-number-format.png) + +`rippled`内部では発行済み通貨の数値はカスタムの数値フォーマットで表現されます。このフォーマットではさまざまな資産(一般的にごく小さな単位または極めて大きな単位で測定される資産を含む)を保管できます。このフォーマットでは、有効数字と10のべき乗の指数を科学的記数法と同様の方法で使用します。このフォーマットは、指定された範囲内のプラスまたはマイナスの有効桁数と指数に対応しています。非整数値の一般的な浮動小数点表記とは異なり、このフォーマットでは整数を用いて計算します。このため、常に15桁の精度が維持されます。乗算と除算には、最下位の有効数字の丸め過ぎを補う調整機能があります。 + +「任意精度」の数値フォーマットとは異なり、カスタムフォーマットは64ビットの固定サイズで格納できます。このようにシリアル化される場合、このフォーマットは「非XRP」ビット、符号ビット、有効桁数、指数で構成されます。これらは次の順で表示されます。 + +1. 発行済み通貨額の1番目のビット(最上位ビット)は、XRPの額ではないことを示す`1`です。(XRPの額である場合、最上位ビットは常に`0`に設定され、このフォーマットからXRPの額が区別されます。) +2. 符号ビットは、金額のプラスマイナスを示します。標準的な[2の補数で表される](https://en.wikipedia.org/wiki/Two%27s_complement)整数とは異なり、`1` はXRP Ledgerフォーマットでは**プラス**を示し`0`はマイナスを示します。 +3. 次の8ビットは、指数を符号なし整数で表しています。指数は、小数点以下桁数(有効桁数に乗算する10のべき乗)を-96以上+80以下の範囲で示します。ただしシリアル化では、この指数に97を加算して符号なし整数としてシリアル化できるようにします。したがってシリアル化された値が`1`の場合は指数`-96`、シリアル化された値が`177`の場合は指数80を示します。 +4. 残りの54ビットは、有効数字を符号なし整数で表します。シリアル化では、値0の特殊なケースを除き、この値は1015(`1000000000000000`)以上1016-1(`9999999999999999`)以下の範囲で正規化されます。値0の特殊なケースがあります。この場合符号ビット、指数、および仮数はすべてゼロであるため、64ビット値は`0x8000000000000000000000000000000000000000`としてシリアル化されます。 + + +## 通貨コード + +XRP LedgerのXRP以外の通貨には160ビットの通貨コードがあります。[`rippled`API](rippled-api.html)では、標準マッピングを使用して3文字のASCII文字列(大文字と小文字の区別あり)が160ビットの通貨コードにマッピングされます。通貨コード`XRP`は発行済み通貨には使用できません。同一コードの通貨は接続トラストラインを通じて[ripple](rippling.html)できます。通貨コードには、XRP Ledgerに組み込まれるその他の動作はありません。 + +### 標準通貨コード + +標準通貨マッピングによりビットが次のように割り当てられます。 + +![標準通貨コードのフォーマット](img/currency-code-format.png) + +1. 最初の8ビットは`0x00`でなければなりません。 +2. 次の88ビットは予約済みであり、すべて`0`です。 +3. 次の24ビットは3つのASCII文字を表します。 + [ISO 4217](http://www.xe.com/iso4217.php)コードまたはよく利用されている疑似ISO 4217コード(BTCなど)の使用が推奨されます。ただし、すべての大文字と小文字、桁数、および記号`?`、`!`、`@`、`#`、`$`、`%`、`^`、`&`、`*`、`<`、`>`、`(`、`)`、`{`、`}`、`[`、`]`、および|の組み合わせを使用できます。通貨コード`XRP`(すべて大文字)はXRP用に予約されており、発行済み通貨には使用できません。 +4. 次の40ビットは予約済みであり、すべて`0`です。 + +通常、XRP額の指定時には通貨コードは使用しません。フィールドにXRPの通貨コードが指定されている稀なケースでは、通貨コードのバイナリ形式はすべてゼロになります。 + +### 非標準通貨コード + +通貨コードとして160ビット(40文字)16進文字列(例: `015841551A748AD2C1F76FF6ECB0CCCD00000000`)を使用して、その他のタイプの通貨を発行することもできます。異なる通貨コードタイプとして扱われないようにするには、先頭8ビットが`0x00`であってはなりません。 + +**廃止予定:** 一部の旧バージョンの[ripple-lib](https://github.com/ripple/ripple-lib)では通貨コードタイプとして「有利子」または「マイナス利子」がサポートされていました。これらの通貨の先頭8ビットは`0x01`です。マイナス利子/有利子通貨はサポートされなくなりましたが、レジャーデータにこのような通貨が現れることがあります。詳しくは、[マイナス利子](demurrage.html)を参照してください。 diff --git a/content/references/rippled-api/api-conventions/error-formatting.ja.md b/content/references/rippled-api/api-conventions/error-formatting.ja.md index 7ca5539cca..e01bfedeff 100644 --- a/content/references/rippled-api/api-conventions/error-formatting.ja.md +++ b/content/references/rippled-api/api-conventions/error-formatting.ja.md @@ -1,111 +1,111 @@ -# エラーのフォーマット - -エラーが発生する可能性のある状況をすべて挙げることは不可能です。トランスポートレイヤーで発生する場合(ネットワーク接続が失われる場合など)には、使用しているクライアントとトランスポートに応じてその結果は異なります。ただし、`rippled`サーバーが要求を正常に受信した場合、サーバーは標準のエラー形式での応答を試みます。 - -**注意:** 要求の結果がエラーになった場合、応答の一部として要求全体がコピーされます。このため、エラーのデバッグに取り組むことができます。ただし、これには要求で渡した機密情報がすべて含まれます。エラーメッセージを共有するときには、アカウントの重要な機密情報を他のユーザーに誤って公開することがないように、十分に注意してください。 - - -エラーの例: - - - -*WebSocket* - -``` -{ - "id": 3, - "status": "error", - "type": "response", - "error": "ledgerIndexMalformed", - "request": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "command": "account_info", - "id": 3, - "ledger_index": "-", - "strict": true - } -} -``` - -*JSON-RPC* - -``` -HTTP Status: 200 OK -{ - "result": { - "error": "ledgerIndexMalformed", - "request": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "command": "account_info", - "ledger_index": "-", - "strict": true - }, - "status": "error" - } -} -``` - -*コマンドライン* - -``` -{ - "result": { - "error": "ledgerIndexMalformed", - "request": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "command": "account_info", - "ledger_index": "-", - "strict": true - }, - "status": "error" - } -} -``` - - - - -## WebSocketフォーマット - -| `Field` | 型 | 説明 | -|:----------|:---------|:------------------------------------------------------| -| `id` | (場合により異なる) | この応答の要求元となったWeb Socket要求に指定されていたID | -| `status` | 文字列 | `"error"` : 要求が原因でエラーが発生した場合 | -| `type` | 文字列 | 通常は`"response"`。これは、コマンドに対し正常に応答したことを示します。 | -| `error` | 文字列 | 発生したエラータイプの一意のコード。 | -| `request` | オブジェクト | このエラーが発生した要求のコピー(JSONフォーマット)。**注意:** 要求にアカウントの機密情報が含まれている場合、ここにコピーされます。 | - - -## JSON-RPCフォーマット - -一部のJSON-RPC要求は、HTTPレイヤーでエラーコードで応答します。この場合、応答は応答本文にプレーンテキストで記述されます。たとえば`method`パラメーターでコマンドを指定し忘れた場合、応答は次のようになります。 - -``` -HTTP Status: 400 Bad Request -Null method -``` - -HTTPステータスコード200 OKが返されるその他のエラーの場合、応答はJSONフォーマットで、以下のフィールドが使用されます。 - -| `Field` | 型 | 説明 | -|:-----------------|:-------|:-------------------------------------------------| -| `result` | オブジェクト | クエリーに対する応答が含まれているオブジェクト | -| `result.error` | 文字列 | 発生したエラータイプの一意のコード。 | -| `result.status` | 文字列 | `"error"` : 要求が原因でエラーが発生した場合 | -| `result.request` | オブジェクト | このエラーが発生した要求のコピー(JSONフォーマット)。**注意:** 要求にアカウントの機密情報が含まれている場合、ここにコピーされます。**注記:** 発行される要求にかかわらず、要求はWebSocketフォーマットに再設定されます。 | - - -## 汎用エラー - -すべてのメソッドは、以下のいずれかの値の`error`コードを返す可能性があります。 - -* `unknownCmd` - 要求に、`rippled`サーバーが認識する[コマンド](rippled-api.html)が含まれていません。 -* `jsonInvalid` -(WebSocketのみ)要求は適切なJSONオブジェクトではありません。 - * この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 -* `missingCommand` -(WebSocketのみ)要求に`command`フィールドが指定されていませんでした。 - * この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 -* `tooBusy` -サーバーの負荷が高すぎるため、現在このコマンドを実行できません。管理者として接続している場合は、通常このエラーが返されることはありません。 -* `noNetwork` - サーバーとXRP Ledgerピアツーピアネットワークのその他の部分との接続で問題が発生しています(サーバーがスタンドアロンモードで実行されていません)。 -* `noCurrent` - 高い負荷、ネットワークの問題、バリデータ障害、誤った構成、またはその他の問題が原因で、サーバーが現行のレジャーを認識できません。 -* `noClosed` - サーバーに閉鎖済みレジャーがありません。通常、このエラーは起動が完了していないことが原因で発生します。 -* `wsTextRequired` -(WebSocketのみ)要求の[opcode](https://tools.ietf.org/html/rfc6455#section-5.2)がテキストではありません。 +# エラーのフォーマット + +エラーが発生する可能性のある状況をすべて挙げることは不可能です。トランスポートレイヤーで発生する場合(ネットワーク接続が失われる場合など)には、使用しているクライアントとトランスポートに応じてその結果は異なります。ただし、`rippled`サーバーが要求を正常に受信した場合、サーバーは標準のエラー形式での応答を試みます。 + +**注意:** 要求の結果がエラーになった場合、応答の一部として要求全体がコピーされます。このため、エラーのデバッグに取り組むことができます。ただし、これには要求で渡した機密情報がすべて含まれます。エラーメッセージを共有するときには、アカウントの重要な機密情報を他のユーザーに誤って公開することがないように、十分に注意してください。 + + +エラーの例: + + + +*WebSocket* + +``` +{ + "id": 3, + "status": "error", + "type": "response", + "error": "ledgerIndexMalformed", + "request": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "command": "account_info", + "id": 3, + "ledger_index": "-", + "strict": true + } +} +``` + +*JSON-RPC* + +``` +HTTP Status: 200 OK +{ + "result": { + "error": "ledgerIndexMalformed", + "request": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "command": "account_info", + "ledger_index": "-", + "strict": true + }, + "status": "error" + } +} +``` + +*コマンドライン* + +``` +{ + "result": { + "error": "ledgerIndexMalformed", + "request": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "command": "account_info", + "ledger_index": "-", + "strict": true + }, + "status": "error" + } +} +``` + + + + +## WebSocketフォーマット + +| `Field` | 型 | 説明 | +|:----------|:---------|:------------------------------------------------------| +| `id` | (場合により異なる) | この応答の要求元となったWeb Socket要求に指定されていたID | +| `status` | 文字列 | `"error"` : 要求が原因でエラーが発生した場合 | +| `type` | 文字列 | 通常は`"response"`。これは、コマンドに対し正常に応答したことを示します。 | +| `error` | 文字列 | 発生したエラータイプの一意のコード。 | +| `request` | オブジェクト | このエラーが発生した要求のコピー(JSONフォーマット)。**注意:** 要求にアカウントの機密情報が含まれている場合、ここにコピーされます。 | + + +## JSON-RPCフォーマット + +一部のJSON-RPC要求は、HTTPレイヤーでエラーコードで応答します。この場合、応答は応答本文にプレーンテキストで記述されます。たとえば`method`パラメーターでコマンドを指定し忘れた場合、応答は次のようになります。 + +``` +HTTP Status: 400 Bad Request +Null method +``` + +HTTPステータスコード200 OKが返されるその他のエラーの場合、応答はJSONフォーマットで、以下のフィールドが使用されます。 + +| `Field` | 型 | 説明 | +|:-----------------|:-------|:-------------------------------------------------| +| `result` | オブジェクト | クエリーに対する応答が含まれているオブジェクト | +| `result.error` | 文字列 | 発生したエラータイプの一意のコード。 | +| `result.status` | 文字列 | `"error"` : 要求が原因でエラーが発生した場合 | +| `result.request` | オブジェクト | このエラーが発生した要求のコピー(JSONフォーマット)。**注意:** 要求にアカウントの機密情報が含まれている場合、ここにコピーされます。**注記:** 発行される要求にかかわらず、要求はWebSocketフォーマットに再設定されます。 | + + +## 汎用エラー + +すべてのメソッドは、以下のいずれかの値の`error`コードを返す可能性があります。 + +* `unknownCmd` - 要求に、`rippled`サーバーが認識する[コマンド](rippled-api.html)が含まれていません。 +* `jsonInvalid` -(WebSocketのみ)要求は適切なJSONオブジェクトではありません。 + * この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 +* `missingCommand` -(WebSocketのみ)要求に`command`フィールドが指定されていませんでした。 + * この場合JSON-RPCは、代わりに400 Bad Request HTTPエラーを返します。 +* `tooBusy` -サーバーの負荷が高すぎるため、現在このコマンドを実行できません。管理者として接続している場合は、通常このエラーが返されることはありません。 +* `noNetwork` - サーバーとXRP Ledgerピアツーピアネットワークのその他の部分との接続で問題が発生しています(サーバーがスタンドアロンモードで実行されていません)。 +* `noCurrent` - 高い負荷、ネットワークの問題、バリデータ障害、誤った構成、またはその他の問題が原因で、サーバーが現行のレジャーを認識できません。 +* `noClosed` - サーバーに閉鎖済みレジャーがありません。通常、このエラーは起動が完了していないことが原因で発生します。 +* `wsTextRequired` -(WebSocketのみ)要求の[opcode](https://tools.ietf.org/html/rfc6455#section-5.2)がテキストではありません。 diff --git a/content/references/rippled-api/api-conventions/markers-and-pagination.ja.md b/content/references/rippled-api/api-conventions/markers-and-pagination.ja.md index 09dae8e9ab..c2215d8846 100644 --- a/content/references/rippled-api/api-conventions/markers-and-pagination.ja.md +++ b/content/references/rippled-api/api-conventions/markers-and-pagination.ja.md @@ -1,5 +1,5 @@ -# マーカーとページネーション - -一部のメソッドから返されるデータは、1つの応答に実質的に収まらないことがあります。結果全体が収まらない場合、応答には`marker`フィールドが含まれます。このフィールドを使用することで、複数回の呼出しを通じてデータのページをさらに取得できます。各要求で直前の応答の`marker`値を渡して、終わったところから再開します。応答に`marker`が含まれていなければ、データセットの終わりに達しています。 - +# マーカーとページネーション + +一部のメソッドから返されるデータは、1つの応答に実質的に収まらないことがあります。結果全体が収まらない場合、応答には`marker`フィールドが含まれます。このフィールドを使用することで、複数回の呼出しを通じてデータのページをさらに取得できます。各要求で直前の応答の`marker`値を渡して、終わったところから再開します。応答に`marker`が含まれていなければ、データセットの終わりに達しています。 + `marker`フィールドのフォーマットは意図的に未定義になっています。各サーバーで`marker`をそれぞれに合わせて定義できるので、このフィールドの形式は文字列、ネストオブジェクトなどさまざまです。異なるサーバー、または同じサーバーの異なるメソッドでは、異なる`marker`定義を使用できます。各`marker`は一時的であり、10分以上経過すると予期されているとおりに機能しなくなることがあります。 \ No newline at end of file diff --git a/content/references/rippled-api/api-conventions/modifying-the-ledger.ja.md b/content/references/rippled-api/api-conventions/modifying-the-ledger.ja.md index 6921a84af0..d4c3a6c60c 100644 --- a/content/references/rippled-api/api-conventions/modifying-the-ledger.ja.md +++ b/content/references/rippled-api/api-conventions/modifying-the-ledger.ja.md @@ -1,15 +1,15 @@ -# レジャーの変更 - -XRP Ledgerに対する変更はすべて、トランザクションの結果として行われます。XRP Ledgerの内容を変更できるAPIメソッドは、トランザクションを送信するコマンドだけです。Ledgerの内容が変更されても、その変更が永続的に適用されるのは、トランザクションが[コンセンサスプロセス](consensus.html)により承認されている場合に限られます。その他のほとんどのパブリックメソッドでは、異なる方法でXRP Ledgerに表示されるデータを閲覧し、サーバーの状態に関する情報を要求します。 - -トランザクション送信コマンド: - -- [submitメソッド][] -- [submit_multisignedメソッド][] - -送信可能なさまざまなトランザクションについての詳細は、[トランザクションフォーマット](transaction-formats.html)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# レジャーの変更 + +XRP Ledgerに対する変更はすべて、トランザクションの結果として行われます。XRP Ledgerの内容を変更できるAPIメソッドは、トランザクションを送信するコマンドだけです。Ledgerの内容が変更されても、その変更が永続的に適用されるのは、トランザクションが[コンセンサスプロセス](consensus.html)により承認されている場合に限られます。その他のほとんどのパブリックメソッドでは、異なる方法でXRP Ledgerに表示されるデータを閲覧し、サーバーの状態に関する情報を要求します。 + +トランザクション送信コマンド: + +- [submitメソッド][] +- [submit_multisignedメソッド][] + +送信可能なさまざまなトランザクションについての詳細は、[トランザクションフォーマット](transaction-formats.html)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/api-conventions/request-formatting.ja.md b/content/references/rippled-api/api-conventions/request-formatting.ja.md index 12b23f0554..6a07cbabaf 100644 --- a/content/references/rippled-api/api-conventions/request-formatting.ja.md +++ b/content/references/rippled-api/api-conventions/request-formatting.ja.md @@ -1,70 +1,70 @@ -# 要求フォーマット - -## WebSocketフォーマット - -`rippled`サーバーへのWebSocketを開いた後、以下の属性を使用して、コマンドを[JSON](https://en.wikipedia.org/wiki/JSON)オブジェクトとして送信できます。 - -* コマンド名を最上位の`"command"`フィールドに指定します。 -* このコマンドのすべての関連パラメーターも最上位に指定します。 -* オプションで、任意の値を指定した`"id"`フィールドを指定します。この要求への応答では、同一の`"id"`フィールドを使用します。そうすることで、応答が順不同で到達した場合も、どの要求によってどの応答を得られたのかがわかります。 - -応答はJSONオブジェクトとして返されます。 - -## JSON-RPCフォーマット - -JSON-RPC要求を実行するには、`rippled`サーバーがJSON-RPC接続をリッスンしているポートおよびIPで、HTTP **POST**要求をルートパス(`/`)に送信します。HTTP/1.0またはHTTP/1.1を使用できます。HTTPSを使用する場合は、TLS v1.2を使用してください。セキュリティ上の理由から、`rippled`ではSSL v3以前を _サポートしていません_ 。 - -常に`Content-Type`ヘッダー(値`application/json`)を指定してください。 - -複数の要求を実行する予定の場合は、要求間で接続を閉じてから開く操作を行わずに済むように、[Keep-Alives](http://tools.ietf.org/html/rfc7230#section-6.3)を使用してください。 - -以下の属性を指定した要求本文を[JSON](https://en.wikipedia.org/wiki/JSON)オブジェクトとして送信します。 - -* コマンドを最上位の`"method"` フィールドに指定します。 -* 最上位の`"params"`フィールドを指定します。このフィールドの内容は、コマンドのすべてのパラメーターが指定された1つの入れ子JSONオブジェクトのみを保持している**1要素配列**です。 - -応答もJSONオブジェクトです。 - -## コマンドライン形式 - -コマンドラインでは、通常の(ダッシュが先頭に付いた)コマンドラインオプションの後にコマンドを指定し、その後に一連の限定的なパラメーターをスペースで区切って指定します。スペースやその他の特殊文字が含まれている可能性のあるパラメーター値は、一重引用符で囲みます。 - -### 要求の例 - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "account_info", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "strict": true, - "ledger_index": "validated" -} -``` - -*JSON-RPC* - -``` -POST http://s1.ripple.com:51234/ -{ - "method": "account_info", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "strict": true, - "ledger_index": "validated" - } - ] -} -``` - -*コマンドライン* - -``` -rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated true -``` - - +# 要求フォーマット + +## WebSocketフォーマット + +`rippled`サーバーへのWebSocketを開いた後、以下の属性を使用して、コマンドを[JSON](https://en.wikipedia.org/wiki/JSON)オブジェクトとして送信できます。 + +* コマンド名を最上位の`"command"`フィールドに指定します。 +* このコマンドのすべての関連パラメーターも最上位に指定します。 +* オプションで、任意の値を指定した`"id"`フィールドを指定します。この要求への応答では、同一の`"id"`フィールドを使用します。そうすることで、応答が順不同で到達した場合も、どの要求によってどの応答を得られたのかがわかります。 + +応答はJSONオブジェクトとして返されます。 + +## JSON-RPCフォーマット + +JSON-RPC要求を実行するには、`rippled`サーバーがJSON-RPC接続をリッスンしているポートおよびIPで、HTTP **POST**要求をルートパス(`/`)に送信します。HTTP/1.0またはHTTP/1.1を使用できます。HTTPSを使用する場合は、TLS v1.2を使用してください。セキュリティ上の理由から、`rippled`ではSSL v3以前を _サポートしていません_ 。 + +常に`Content-Type`ヘッダー(値`application/json`)を指定してください。 + +複数の要求を実行する予定の場合は、要求間で接続を閉じてから開く操作を行わずに済むように、[Keep-Alives](http://tools.ietf.org/html/rfc7230#section-6.3)を使用してください。 + +以下の属性を指定した要求本文を[JSON](https://en.wikipedia.org/wiki/JSON)オブジェクトとして送信します。 + +* コマンドを最上位の`"method"` フィールドに指定します。 +* 最上位の`"params"`フィールドを指定します。このフィールドの内容は、コマンドのすべてのパラメーターが指定された1つの入れ子JSONオブジェクトのみを保持している**1要素配列**です。 + +応答もJSONオブジェクトです。 + +## コマンドライン形式 + +コマンドラインでは、通常の(ダッシュが先頭に付いた)コマンドラインオプションの後にコマンドを指定し、その後に一連の限定的なパラメーターをスペースで区切って指定します。スペースやその他の特殊文字が含まれている可能性のあるパラメーター値は、一重引用符で囲みます。 + +### 要求の例 + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "account_info", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "strict": true, + "ledger_index": "validated" +} +``` + +*JSON-RPC* + +``` +POST http://s1.ripple.com:51234/ +{ + "method": "account_info", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "strict": true, + "ledger_index": "validated" + } + ] +} +``` + +*コマンドライン* + +``` +rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated true +``` + + diff --git a/content/references/rippled-api/api-conventions/response-formatting.ja.md b/content/references/rippled-api/api-conventions/response-formatting.ja.md index 43650f5a65..074514abd6 100644 --- a/content/references/rippled-api/api-conventions/response-formatting.ja.md +++ b/content/references/rippled-api/api-conventions/response-formatting.ja.md @@ -1,88 +1,88 @@ -# 応答フォーマット - -`rippled` APIからの応答のフォーマットは、メソッドが呼び出されたインターフェイス(WebSocket、JSON-RPC、コマンドライン)に応じて多少異なります。コマンドラインインターフェイスがJSON-RPCを呼び出すため、コマンドラインインターフェイスとJSON-RPCインターフェイスは同じフォーマットを使用します。 - -成功した場合の応答に含まれるフィールドは、以下の通りです。 - -| `Field` | 型 | 説明 | -|:----------------|:---------|:------------------------------------------------| -| `id` | (場合により異なる) | (WebSocketのみ)この応答の要求元となった要求で指定されているID。 | -| `status` | 文字列 | (WebSocketのみ)値が`success`である場合、要求がサーバーによって正常に受信され、理解されたことを示します。 | -| `result.status` | 文字列 | (JSON-RPCおよびコマンドライン)値が`success`である場合、要求がサーバーによって正常に受信され、理解されたことを示します。 | -| `type` | 文字列 | (WebSocketのみ)値が`response`の場合、コマンドに対する正常な応答であることを示します。[非同期の通知](subscribe.html)では、`ledgerClosed`や`transaction`など異なる値が使用されます。 | -| `result` | オブジェクト | クエリーの結果。内容はコマンドによって異なります。 | - - -## 成功した場合の応答の例 - - - -*WebSocket* - -``` -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "account_data": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "27389517749", - "Flags": 0, - "LedgerEntryType": "AccountRoot", - "OwnerCount": 18, - "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", - "PreviousTxnLgrSeq": 6592159, - "Sequence": 1400, - "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" - }, - "ledger_index": 6760970 - } -} -``` - -*JSON-RPC* - -``` -HTTP Status: 200 OK -{ - "result": { - "account_data": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "27389517749", - "Flags": 0, - "LedgerEntryType": "AccountRoot", - "OwnerCount": 18, - "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", - "PreviousTxnLgrSeq": 6592159, - "Sequence": 1400, - "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" - }, - "ledger_index": 6761012, - "status": "success" - } -} -``` -*コマンドライン* - -``` -{ - "result": { - "account_data": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "27389517749", - "Flags": 0, - "LedgerEntryType": "AccountRoot", - "OwnerCount": 18, - "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", - "PreviousTxnLgrSeq": 6592159, - "Sequence": 1400, - "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" - }, - "ledger_index": 6761012, - "status": "success" - } -} -``` - +# 応答フォーマット + +`rippled` APIからの応答のフォーマットは、メソッドが呼び出されたインターフェイス(WebSocket、JSON-RPC、コマンドライン)に応じて多少異なります。コマンドラインインターフェイスがJSON-RPCを呼び出すため、コマンドラインインターフェイスとJSON-RPCインターフェイスは同じフォーマットを使用します。 + +成功した場合の応答に含まれるフィールドは、以下の通りです。 + +| `Field` | 型 | 説明 | +|:----------------|:---------|:------------------------------------------------| +| `id` | (場合により異なる) | (WebSocketのみ)この応答の要求元となった要求で指定されているID。 | +| `status` | 文字列 | (WebSocketのみ)値が`success`である場合、要求がサーバーによって正常に受信され、理解されたことを示します。 | +| `result.status` | 文字列 | (JSON-RPCおよびコマンドライン)値が`success`である場合、要求がサーバーによって正常に受信され、理解されたことを示します。 | +| `type` | 文字列 | (WebSocketのみ)値が`response`の場合、コマンドに対する正常な応答であることを示します。[非同期の通知](subscribe.html)では、`ledgerClosed`や`transaction`など異なる値が使用されます。 | +| `result` | オブジェクト | クエリーの結果。内容はコマンドによって異なります。 | + + +## 成功した場合の応答の例 + + + +*WebSocket* + +``` +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "account_data": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "27389517749", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 18, + "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", + "PreviousTxnLgrSeq": 6592159, + "Sequence": 1400, + "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" + }, + "ledger_index": 6760970 + } +} +``` + +*JSON-RPC* + +``` +HTTP Status: 200 OK +{ + "result": { + "account_data": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "27389517749", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 18, + "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", + "PreviousTxnLgrSeq": 6592159, + "Sequence": 1400, + "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" + }, + "ledger_index": 6761012, + "status": "success" + } +} +``` +*コマンドライン* + +``` +{ + "result": { + "account_data": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "27389517749", + "Flags": 0, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 18, + "PreviousTxnID": "B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", + "PreviousTxnLgrSeq": 6592159, + "Sequence": 1400, + "index": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" + }, + "ledger_index": 6761012, + "status": "success" + } +} +``` + \ No newline at end of file diff --git a/content/references/rippled-api/api-conventions/rippled-server-states.ja.md b/content/references/rippled-api/api-conventions/rippled-server-states.ja.md index d342d05dbf..eececab023 100644 --- a/content/references/rippled-api/api-conventions/rippled-server-states.ja.md +++ b/content/references/rippled-api/api-conventions/rippled-server-states.ja.md @@ -1,20 +1,20 @@ -# rippledサーバーの状態 - -`rippled`サーバーの設定、稼働時間、その他の要素により、サーバーがグローバルなXRP Ledgerピアツーピアネットワークに参加する度合いは異なります。これは、[server_infoメソッド][]と[server_stateメソッド][]への応答内の`server_state`フィールドに示されます。応答は昇順のやり取りに従い、後の値は前の値より優先されます。これらの応答の定義を以下に示します(優先順位の高い順)。 - -| `Value` | 説明 | -|:---------------|:------------------------------------------------------------| -| `disconnected` | サーバーはXRP Ledgerピアツーピアネットワークにまったく接続されていません。オフラインモードで稼働しているか、何らかの理由でネットワークにアクセスできない可能性があります。 | -| `connected` | サーバーはネットワークに接続されていると考えられます。 | -| `syncing` | サーバーは現在、レジャーバージョンの状態に追いついていません。(通常、サーバーが始動後に最新状態になるまで数分かかります。) | -| `tracking` | サーバーはネットワークに接続しています。 | -| `full` | サーバーはネットワークに完全に組み込まれ、検証にも参加できますが、参加していません(検証者として設定されていないことが原因と考えられます)。 | -| `validating` | サーバーは現在、レジャーの検証に参加しています。 | -| `proposing` | サーバーはレジャーの検証に参加しており、現在、自身のバージョンを提案中です。 | - -**注記:** `full`、`validating`、`proposing`の区別は、グローバルネットワークの他者との同期の状況に基づいていますが、通常サーバーの上記の状態は一般的なオペレーションの中で変動します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# rippledサーバーの状態 + +`rippled`サーバーの設定、稼働時間、その他の要素により、サーバーがグローバルなXRP Ledgerピアツーピアネットワークに参加する度合いは異なります。これは、[server_infoメソッド][]と[server_stateメソッド][]への応答内の`server_state`フィールドに示されます。応答は昇順のやり取りに従い、後の値は前の値より優先されます。これらの応答の定義を以下に示します(優先順位の高い順)。 + +| `Value` | 説明 | +|:---------------|:------------------------------------------------------------| +| `disconnected` | サーバーはXRP Ledgerピアツーピアネットワークにまったく接続されていません。オフラインモードで稼働しているか、何らかの理由でネットワークにアクセスできない可能性があります。 | +| `connected` | サーバーはネットワークに接続されていると考えられます。 | +| `syncing` | サーバーは現在、レジャーバージョンの状態に追いついていません。(通常、サーバーが始動後に最新状態になるまで数分かかります。) | +| `tracking` | サーバーはネットワークに接続しています。 | +| `full` | サーバーはネットワークに完全に組み込まれ、検証にも参加できますが、参加していません(検証者として設定されていないことが原因と考えられます)。 | +| `validating` | サーバーは現在、レジャーの検証に参加しています。 | +| `proposing` | サーバーはレジャーの検証に参加しており、現在、自身のバージョンを提案中です。 | + +**注記:** `full`、`validating`、`proposing`の区別は、グローバルネットワークの他者との同期の状況に基づいていますが、通常サーバーの上記の状態は一般的なオペレーションの中で変動します。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/api-conventions/serialization.ja.md b/content/references/rippled-api/api-conventions/serialization.ja.md index 48653485c9..f7f79faaef 100644 --- a/content/references/rippled-api/api-conventions/serialization.ja.md +++ b/content/references/rippled-api/api-conventions/serialization.ja.md @@ -1,315 +1,315 @@ -# シリアル化フォーマット -[[ソース]
](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source") - -このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、また他の用途にも使用されます。通常、[rippled API](rippled-api.html)はJSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。 - -トランザクションをJSONまたはその他の表現から正規バイナリフォーマットへシリアル化するプロセスのステップを、以下にまとめます。 - -1. すべての必須フィールドが指定されていること(必須の[「自動入力可能」フィールド](transaction-common-fields.html#自動入力可能なフィールド)を含む)を確認します。 - - [トランザクションフォーマットリファレンス](transaction-formats.html)に、XRP Ledgerトランザクションの必須フィールドと省略可能なフィールドが定義されています。 - - **注記:**`SigningPubKey`もこのステップで指定する必要があります。署名の際に、署名用に指定されたシークレットキーからこのキーを生成できます。 - -2. 各フィールドのデータを[「内部」バイナリフォーマット](#内部フォーマット)に変換します。 - -3. フィールドを[正規順序](#フィールドの正規順序)でソートします。 - -4. 各フィールドの前に[フィールドID](#フィールドid)を付加します。 - -5. フィールド(プレフィクスを含む)をソート順に連結します。 - -その結果、ECDSA(secp256k1楕円曲線を使用)やEd25519などの既知の署名アルゴリズムを使用して署名できるバイナリブロブが1つ作成されます。XRP Ledgerのために、適切なプレフィクス(シングル署名の場合は`0x53545800`、マルチ署名の場合は`0x534D5400`)を使用してデータを[ハッシュ化][Hash]する必要があります。署名後に、指定されている`TxnSignature`フィールドを使用してトランザクションを再度シリアル化する必要があります。 - -**注記:** XRP Ledgerでは、[レジャーオブジェクト](ledger-object-types.html)や処理済みのトランザクションなど他のタイプのデータを表す場合にも同じシリアル化フォーマットが使用されます。ただし、署名されるトランザクションに追加するのに適切なフィールドは限られています。(たとえば署名自体が指定されている`TxnSignature`フィールドは、署名するバイナリブロブに含まれていてはなりません。)このように、「署名」フィールドとされてオブジェクトに署名するときにオブジェクトに含まれるフィールドもあれば、「非署名」とされてオブジェクトに含まれないフィールドもあります。 - -### 例 - -署名済みトランザクションと未署名のトランザクションはいずれも、JSONフォーマットとバイナリフォーマットの両方で表すことができます。同じ署名済みトランザクションのJSONフォーマットとバイナリフォーマットの例を以下に示します。 - -**JSON:** - -```json -{% include '_code-samples/tx-serialization/test-cases/tx1.json' %} -``` - -**バイナリ(16進数として表現):** - -```text -{% include '_code-samples/tx-serialization/test-cases/tx1-binary.txt' %} -``` - -## サンプルコード - -ここで説明するシリアル化プロセスは複数の場所にさまざまなプログラミング言語で実装されています。 - -- C++: [`rippled` コードベース](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp) -- JavaScript: [`ripple-binary-codec`](https://github.com/ripple/ripple-binary-codec/) パッケージ -- Python 3: [このリポジトリのコードサンプルセクション]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/tx-serialization/serialize.py) - -これらのすべての実装には、一般利用が可能なオープンソースライセンスが提供されているので、学習のためにドキュメントと合わせて使用するだけでなく、必要に応じてコードをインポート、使用、または変更することができます。 - - - -## 内部フォーマット - -各フィールドには「内部」バイナリフォーマットがあります。このフォーマットは、`rippled`ソースコードで署名時に(およびその他のほとんどの場合に)そのフィールドを表示するのに使用されます。すべてのフィールドの内部フォーマットは、[`SField.cpp`](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/SField.cpp)のソースコードに定義されています。(このフィールドには、トランザクションフィールド以外のフィールドも含まれています。)[トランザクションフォーマットリファレンス](transaction-formats.html)にも、すべてのトランザクションフィールドの内部フォーマットが記載されています。 - -たとえば`Flags` [共通トランザクションフィールド](transaction-common-fields.html)はUInt32(32ビット符号なし整数)になります。 - -### 定義ファイル - -以下のJSONファイルには、XRP Ledgerデータをそのバイナリフォーマットにシリアル化し、バイナリからシリアル化解除するのに必要な重要な定数が定義されています。 - -**** - -この定義ファイルの最上位フィールドの定義を以下の表に示します。 - -| フィールド | 内容 | -|:----------------------|:-----------------------------------------------------| -| `TYPES` | フィールドIDの作成と正規順序でのフィールドのソートのためのデータタイプからその[「タイプコード」](#タイプコード)へのマップ。1未満のコードは実際のデータには含まれません。10000を超えるコードは、他のオブジェクト内部ではシリアル化できない「トランザクション」などの特殊な「上位」オブジェクトタイプを表します。各タイプのシリアル化方法についての詳細は、[タイプリスト](#タイプリスト)を参照してください。 | -| `LEDGER_ENTRY_TYPES` | [レジャーオブジェクト](ledger-object-types.html)から対応するデータタイプへのマップ。これはレジャー状態データと、処理されたトランザクションの[メタデータ](transaction-metadata.html)の「affected nodes」セクションに含まれます。 | -| `FIELDS` | トランザクション、レジャーオブジェクト、あるいはその他のデータに含まれる可能性があるすべてのフィールドを表すタプルからなるソート済み配列。各タプルの1番目のメンバーはフィールドの文字列名であり、2番目のメンバーはそのフィールドのプロパティーが含まれているオブジェクトです。(これらのフィールドの定義については、以下の「フィールドプロパティー」の表を参照してください。) | -| `TRANSACTION_RESULTS` | [トランザクション結果コード](transaction-results.html)から対応する数値へのマップ。レジャーに含まれない結果タイプにはマイナスの値が含まれています。`tesSUCCESS`に数値0が含まれています。[`tec`クラスコード](tec-codes.html)は、レジャーに含まれている失敗を示しています。 | -| `TRANSACTION_TYPES` | [トランザクションのタイプ](transaction-types.html)から対応する数値へのマップ。 | - -署名と送信のためにトランザクションをシリアル化するという目的から、`FIELDS`、`TYPES`、および`TRANSACTION_TYPES`フィールドが必要です。 - -`FIELDS`配列のフィールド定義オブジェクトには以下のフィールドが含まれています。 - -| フィールド | 型 | 内容 | -|:-----------------|:--------|:------------------------------------------------| -| `nth` | 数値 | このフィールドの[フィールドコード](#フィールドコード)。このコードは、[フィールドID](#フィールドid)の作成時と、同一データタイプの他のフィールドとのソート時に使用されます。 | -| `isVLEncoded` | ブール値 | `true`の場合、このフィールドには[長さプレフィクスが付加されています](#長さプレフィクスを付加する)。 | -| `isSerialized` | ブール値 | `true`の場合、このフィールドはシリアル化バイナリデータにエンコードされる必要があります。このフィールドが`false`の場合、一般にフィールドは保管されず、オンデマンドで再作成されます。 | -| `isSigningField` | ブール値 | `true`の場合、署名のためにトランザクションを準備する際にこのフィールドをシリアル化する必要があります。`false`の場合、このフィールドは署名対象データから省略する必要があります。(これはトランザクションに含まれていない可能性があります。) | -| `type` | 文字列 | このフィールドの内部データタイプ。これは、このフィールドの[タイプコード](#タイプコード)を示す`TYPES`マップのキーにマップします。 | - -### フィールドID - -[[ソース - エンコード]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L117-L148 "Source") -[[ソース - デコード]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L484-L509 "Source") - -フィールドのタイプコードとフィールドコードを結合すると、フィールドの一意のIDになります。このIDは、最終的なシリアル化ブロブでこのフィールドの前に付加されます。フィールドIDのサイズは、タイプコードとその結合対象のフィールドコードに応じて1~3バイトとなります。以下の表を参照してください。 - -| | タイプコード < 16 | タイプコード >= 16 | -|:-----------------|:------------------------------------------------------------------------------|:--| -| **フィールドコード < 16** | ![1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。](img/field-id-common-type-common-field.png) | ![2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。](img/field-id-uncommon-type-common-field.png) | -| **フィールドコード >= 16** | ![2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。](img/field-id-common-type-uncommon-field.png) | ![3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。](img/field-id-uncommon-type-uncommon-field.png) | - -デコードの際には、**1番目のバイト**のどのビットがゼロであるかによって、フィールドIDのバイト数を把握できます。これは、上記の表の例に対応しています。 - -| | 上位4ビットがゼロ以外である | 上位4ビットがゼロである | -|:-----------------|:------------------------------------------------------------------------------|:--| -| **下位4ビットがゼロ以外である** | 1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。 | 2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。 | -| **下位4ビットがゼロである** | 2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。 | 3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。 | - -**注意:** フィールドIDは、フィールドのソートに使用される2つの要素で構成されますが、シリアル化されたフィールドID自体に基づいてソートを実行しないでください。これは、フィールドIDのバイト構造によってソート順序が変わるためです。 - -### 長さプレフィクスを付加する - -一部の可変長フィールドの前には、長さインディケーターが付加されています。`Blob`フィールド(任意のバイナリデータを含む)がこれに該当します。長さプレフィクスが付加されているタイプのリストについては、[タイプリスト](#タイプリスト)の表を参照してください。 - -**注記:** 一部のタイプの可変長フィールドには、長さプレフィクスが付加されません。このようなタイプでは、他の方法で内容の終わりが示されます。 - -長さプレフィクスはフィールドの長さを示す1~3バイトで構成され、タイププレフィクスと内容の間に挿入されます。 - -- フィールドに0~192バイトのデータが含まれている場合、1番目のバイトは内容の長さを示し、長さバイトの直後にそのバイト数のデータが続きます。 - -- フィールドに193~12480バイトのデータが含まれている場合、最初の2バイトは以下の式で算出されるフィールドの長さを示します。 - - 193 + ((byte1 - 193) * 256) + byte2 - -- フィールドに12481~918744バイトのデータが含まれている場合、最初の3バイトは以下の式で算出されるフィールドの長さを示します。 - - 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 - -- 長さプレフィクスが付加されているフィールドに格納できる最大データは918744バイトです。 - -デコード時に、1番目の長さバイトの値から、追加の長さバイト(0、1、または2)が存在するかどうかを把握できます。 - -- 1番目の長さバイトの値が192以下の場合、これは唯一の長さバイトであり、フィールドの内容の長さはこのバイトが示すバイト数です。 -- 1番目の長さバイトの値が193~240の場合、2つの長さバイトがあります。 -- 1番目の長さバイトの値が241~254の場合、3つの長さバイトがあります。 - - -## フィールドの正規順序 - -トランザクションのすべてのフィールドは、まずフィールドのタイプ(特に各タイプに割り当てられている数値の「タイプコード」)に基づいて特定の順序でソートされ、次にフィールド自体(「フィールドコード」)に基づいてソートされます。(たとえば、姓がフィールドのタイプ、名前がフィールド自体とすると、姓で最初にソートし、次に名でソートすることになります。) - -### タイプコード - -各フィールドタイプには任意のタイプコードが含まれており、番号が小さいコードから最初にソートされます。これらのコードは[`SField.h`](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/SField.h#L57-L74)で定義されています。 - -たとえば [UInt32のタイプコードが2である](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L59)ので、すべてのUInt32フィールドは、すべての[Amountフィールド(タイプコード6)](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L63)よりも前に位置します。 - -[定義ファイル](#定義ファイル)には、`TYPES`マップの各タイプのタイプコードがリストされています。 - -### フィールドコード - -各フィールドにはフィールドコードが含まれています。フィールドコードは、同じタイプのフィールドをソートするときに使用され、番号が小さいコードが最初になるようにソートされます。これらのフィールドは[`SField.cpp`](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L72-L266)で定義されています。 - -たとえば[Paymentトランザクション][]の`Account`フィールドの[ソートコードが1である](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L219)場合、このフィールドは`Destination`フィールド([ソートコードが3である](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L221)フィールド)よりも前に位置します。 - -フィールドコードは異なるフィールドタイプのフィールドで再利用されますが、同じタイプのフィールドに同じフィールドコードが含まれることはありません。タイプコードとフィールドコードを組み合わせると、フィールドの一意の[フィールドID](#フィールドid)になります。 - - - -## タイプリスト - -トランザクションの指示には、以下のタイプのフィールドを指定できます。 - -| タイプ名 | タイプコード | ビット長 | [長さプレフィクスが付加されるか]? | 説明 | -|:--------------|:----------|:-----------|:-------------------|----------------| -| [AccountID][] | 8 | 160 | はい | [アカウント](accounts.html)の一意のID。 | -| [Amount][] | 6 | 64または384 | いいえ | XRPまたは発行済み通貨の額。フィールドの長さは、XRPの場合は64ビット、発行済み通貨の場合は384ビット(64+160+160)です。 | -| [Blob][] | 7 | 可変 | はい | 任意のバイナリデータ。このようなフィールドの中で重要なフィールドとして、`TxnSignature`(トランザクションを承認する署名)があります。 | -| [Hash128][] | 4 | 128 | いいえ | 128ビットの任意のバイナリ値。該当する唯一のフィールドは`EmailHash`です。これは、[Gravatar](https://www.gravatar.com/)を取得する目的でアカウント所有者のメールのMD-5ハッシュを保管するフィールドです。 | -| [Hash160][] | 17 | 160 | いいえ | 160ビットの任意のバイナリ値。これにより通貨コードまたはイシュアーが定義されます。 | -| [Hash256][] | 5 | 256 | いいえ | 256ビットの任意のバイナリ値。これは通常、トランザクション、レジャーバージョン、またはレジャーデータオブジェクトの「SHA-512Half」ハッシュを表します。 | -| [PathSet][] | 18 | 可変 | いいえ | [複数通貨間ペイメント](cross-currency-payments.html)の有効な[ペイメントパス](paths.html)のセット。 | -| [STArray][] | 15 | 可変 | いいえ | 可変数のメンバーからなる配列。フィールドによってタイプが異なる場合があります。この例として、[memos](transaction-common-fields.html#memosフィールド)や[マルチ署名](multi-signing.html)で使用される署名者のリストがあります。 | -| [STObject][] | 14 | 可変 | いいえ | 1つ以上のネストされたフィールドを含むオブジェクト。 | -| [UInt8][] | 16 | 8 | いいえ | 8ビットの符号なし整数。 | -| [UInt16][] | 1 | 16 | いいえ | 16ビットの符号なし整数。`TransactionType`は、このタイプの特殊なフィールドで、特定の文字列から整数値へのマッピングを含みます。 | -| [UInt32][] | 2 | 32 | いいえ | 32ビットの符号なし整数。このタイプの例として、すべてのトランザクションの`Flags`フィールドと`Sequence`フィールドがあります。 | - -[長さプレフィクスを付加する]: #長さプレフィクスを付加する - -上記のフィールドタイプの他に、[レジャーオブジェクト](ledger-object-types.html)や[トランザクションメタデータ](transaction-metadata.html)などのコンテキストでは以下のタイプが含まれることがあります。 - -| タイプ名 | タイプコード | [長さプレフィクスを付加する]? | 説明 | -|:------------|:----------|:-------------------|:------------------------------| -| Transaction | 10001 | いいえ | [トランザクション](transaction-formats.html)全体を含む「上位」タイプ。 | -| LedgerEntry | 10002 | いいえ | [レジャーオブジェクト](ledger-object-types.html)全体を含む「上位」タイプ。 | -| Validation | 10003 | いいえ | ピアツーピア通信で[コンセンサスプロセス](consensus.html)の検証投票を表すために使用される「上位」タイプ。 | -| Metadata | 10004 | いいえ | [1つのトランザクションのメタデータ](transaction-metadata.html)を含む「上位」タイプ。 | -| [UInt64][] | 3 | いいえ | 64ビットの符号なし整数。このタイプはトランザクションの指示には含まれませんが、さまざまなレジャーオブジェクトでこのタイプのフィールドが使用されます。 | -| Vector256 | 19 | はい | このタイプはトランザクションの指示には含まれませんが、[Amendmentsレジャーオブジェクト](amendments-object.html)の`Amendments`フィールドでは、現在有効な[Amendment](amendments.html)を示すためにこのタイプが使用されます。 | - - -### AccountIDフィールド -[AccountID]: #accountidフィールド - -このタイプのフィールドには、XRP Ledger[アカウント](accounts.html)の160ビットのIDが含まれています。JSONではこれらのフィールドは[base58][] XRP Ledger「アドレス」および追加のチェックサムデータとして表示されます。このため、スペルミスが有効なアドレスとなることがありません。(このエンコードは「Base58Check」とも呼ばれ、誤ったアドレスへの送金を防止します。)これらのフィールドのバイナリフォーマットにはチェックサムデータは含まれておらず、また[アドレスのbase58エンコード](accounts.html#アドレスのエンコード)で使用される`0x00`「タイププレフィクス」も含まれていません。(ただし、バイナリフォーマットは主に署名済みトランザクションに使用されるため、署名済みトランザクションを転記する際にスペルミスなどのエラーが発生すると署名が無効となり、送金できなくなります。) - -スタンドアロンフィールドとして表示されるAccountID(`Account`や`Destination`など)の長さは固定長の160ビットですが、[長さプレフィクスが付加](#長さプレフィクスを付加する)されます。その結果、これらのフィールドの長さインディケーターは常に`0x14`バイトになります。特殊フィールドの子として示されるAccountID([Amount `issuer`][Amount]、[PathSet `account`][PathSet]など)では長さプレフィクスは付加 _されません_ 。 - - -### Amountフィールド -[Amount]: #amountフィールド - -「Amount」タイプは、通貨(XRPまたは発行済み通貨)の額を表す特殊なフィールドタイプです。このタイプは2つのサブタイプで構成されます。 - -- **XRP** - - XRPは64ビット符号なし整数(ビッグエンディアンオーダー)としてシリアル化されます。ただし、XRPであることを示すため最上位ビットが常に0であり、プラスの値であることを示す最上位から2番目のビットは1となります。XRPの最大額(1017 drop)には57ビットが必要であるため、XRPのシリアル化フォーマットを計算するには、標準の64ビット符号なし整数をとり、`0x4000000000000000`のビットOR演算を行います。 - -- **発行済み通貨** - - 発行済み通貨は以下の3つのセグメントで構成され、セグメントの順序は以下のとおりです。 - - 1. [内部通貨フォーマット](currency-formats.html#発行済み通貨の計算)の額を示す64ビット。1番目のビットは、これがXRPではないことを示す`1`です。 - 2. [通貨コード](currency-formats.html#通貨コードs)を示す160ビット。標準APIでは、[標準通貨コードフォーマット](currency-formats.html#標準通貨コード)を使用して「USD」などの3文字のコードが160ビットのコードに変換されますが、160ビットのカスタムコードも使用できます。 - 3. イシュアーのアカウントIDを示す160ビット。(関連項目: [アカウントアドレスエンコード](accounts.html#アドレスのエンコード)) - -1番目のビットに基づいて2つのサブタイプのいずれに該当するかを確認できます。`0`の場合はXRP、`1`の場合は発行済み通貨です。 - -以下の図に、XRPの額と発行済み通貨の額のシリアル化フォーマットを示します。 - -![「非XRP」ビット、符号ビット、および62ビットの精度で構成されるXRPの額。「非XRP」ビット、符号ビット、指数(8ビット)、仮数(54ビット)、通貨コード(160ビット)、イシュアー(160ビット)で構成される発行済み通貨の額。](img/serialization-amount.png) - - -### 配列フィールド -[STArray]: #配列フィールド - -一部のトランザクションフィールド([SignerListSetトランザクション][]の`SignerEntries`や[`Memos`](transaction-common-fields.html#memosフィールド)など)はオブジェクトの配列です(「STArray」タイプと呼ばれます)。 - -配列には、さまざまな[オブジェクトフィールド](#オブジェクトフィールド)がそのネイティブバイナリフォーマットで特定の順序で含まれています。JSONでは、各配列メンバーが1つのフィールド(メンバーオブジェクトフィールドの名前)を含むJSON「ラッパー」オブジェクトです。そのフィールドの値は(「内部」)オブジェクト自体です。 - -バイナリフォーマットでは、配列の各メンバーにはフィールドIDプレフィクス(ラッパーオブジェクトの単一キーに基づく)と内容([オブジェクトとしてシリアル化された](#オブジェクトフィールド)内部オブジェクトからなる)が含まれています。配列の終わりをマークするため、アイテムにフィールドID `0xf1`(配列のタイプコードとフィールドコード1)を付加し、内容は指定しません。 - -以下の例は、配列のシリアル化フォーマットを示します(`SignerEntries`フィールド)。 - -![配列フィールドID、各配列要素のフィールドIDと内容、および「配列の終わり」を示すフィールドID](img/serialization-array.png) - - -### ブロブフィールド -[Blob]: #ブロブフィールド - -ブロブタイプは、任意のデータを持つ[長さプレフィクスが付加されている](#長さプレフィクスを付加する)フィールドです。このタイプを使用する2種類の一般的なフィールドとして、`SigningPubKey`と`TxnSignature`があります。これらのフィールドにはそれぞれ、トランザクションの実行を承認する公開鍵と署名が含まれています。 - -両方のフィールドにはこれ以上の内容構造がないため、フィールドIDと長さプレフィクスの後に可変長エンコードで示される正確なバイト数で構成されます。 - - -### ハッシュフィールド -[Hash128]: #ハッシュフィールド -[Hash160]: #ハッシュフィールド -[Hash256]: #ハッシュフィールド - -XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256があります。これらのフィールドには特定のビット数のバイナリデータが含まれており、それらのデータはハッシュ演算の結果を表す場合とそうでない場合があります。 - -これらのフィールドは、長さインディケーターを使用せずに、ビッグエンディアンバイトオーダーで特定数のビットとしてシリアル化されます。 - - -### オブジェクトフィールド -[STObject]: #オブジェクトフィールド - -トランザクションフィールドの一部([SignerListSetトランザクション][]の`SignerEntry`や`Memos`配列の`Memo`など)はオブジェクトです(「STObject」タイプと呼ばれます)。オブジェクトのシリアル化は配列のシリアル化に似ていますが、唯一異なる点としてオブジェクトフィールド内では**オブジェクトのメンバーを正規順序に従って配置する必要がある**点があげられます。配列フィールドではすでに順序が明示的に設定されています。 - -オブジェクトフィールドの[正規フィールド順序](#フィールドの正規順序)は、すべての最上位フィールドの正規フィールド順序と同じですが、オブジェクトのメンバーはオブジェクト内でソートする必要があります。最終メンバーの後には、「オブジェクトの終わり」を示すフィールドID(`0xe1`)があり、このフィールドには内容がありません。 - -以下の例は、オブジェクトのシリアル化フォーマットを示します(`Memos`配列内の1つの`Memo`オブジェクト)。 - -![オブジェクトフィールドID、各オブジェクトメンバーのオブジェクトIDと内容(正規順序)、および「オブジェクトの終わり」を示すフィールドID](img/serialization-object.png) - - -### PathSetフィールド -[PathSet]: #pathsetフィールド - -複数通貨間[Paymentトランザクション][]の`Paths`フィールドは、JSONで配列からなる配列として表される「PathSet」です。使用されるパスについての詳細は、[パス](paths.html)を参照してください。 - -PathSetは、**1~6**の個別パスとして順序どおりにシリアル化されます[[ソース]](https://github.com/ripple/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L35-L36 "Source")。それぞれの完全なパスの後には、パスの後に続く内容を示すバイトが配置されます。 - -- `0xff` は別のパスが続くことを示します。 -- `0x00` はPathSetの終わりを示します。 - -各パスには**1~8**のパスステップがこの順序で含まれています[[ソース]](https://github.com/ripple/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L38-L39 "Source")。各ステップは**タイプ**を示すバイトで始まり、その後にパスステップを記述する1つ以上のフィールドが続きます。タイプは、ビット単位のフラグを使用してそのパスステップに含まれるフィールドを示します。(たとえば値が`0x30`の場合、通貨とイシュアーの両方が変更されます。)複数のフィールドが含まれている場合、フィールドは常に特定の順序で配置されます。 - -以下の表に、有効なフィールドと、タイプバイトでフィールドを示すために設定されるビット単位のフラグを示します。 - -| タイプフラグ | 含まれるフィールド | フィールドタイプ | ビットサイズ | 順序 | -|:----------|:--------------|:------------------|:---------|:------| -| `0x01` | `account` | [AccountID][] | 160ビット | 1番目 | -| `0x10` | `currency` | [通貨コード][] | 160ビット | 2番目 | -| `0x20` | `issuer` | [AccountID][] | 160ビット | 3番目 | - -[通貨コード]: currency-formats.html#標準通貨コード - -いくつかの組み合わせは無効です。詳細は、[パスの仕様](paths.html#パスの仕様)を参照してください。 - -`account`フィールドと`issuer`フィールドのAccountIDには、長さプレフィクスは付加 _されていません_ 。`currency`がXRPの場合、通貨コードは160ビットのゼロとして表されます。 - -各ステップの直後にはパス上の次のステップが続きます。前述したように、パスの最終ステップの後には`0xff`(別のパスが続く場合)または`0x00`(これが最終パスの終わりの場合)が続きます。 - -以下の例は、PathSetのシリアル化フォーマットを示します。 - -![PathSetは複数のパスからなり、各パスの後に継続または終了を示すバイトが続きます。各パスは複数のパスステップからなり、各パスステップはタイプバイトと、タイプバイトに基づく1つ以上の160ビットフィールドで構成されます。](img/serialization-pathset.png) - - -### UIntフィールド -[UInt8]: #uintフィールド -[UInt16]: #uintフィールド -[UInt32]: #uintフィールド -[UInt64]: #uintフィールド - -XRP Ledgerには符号なし整数タイプUInt8、UInt16、UInt32、UInt64があります。これらのタイプはすべて、指定されたビット数の標準ビッグエンディアンバイナリー符号なし整数です。 - -JSONオブジェクトにこれらのフィールドが含まれている場合、ほとんどはデフォルトでJSONの数値として表されます。例外として、UInt64は文字列として表されます。これは、一部のJSONデコーダーがこれらの整数を64ビットの「倍精度」浮動小数点数として表現しようとするためです。64ビットの「倍精度」浮動小数点数では、すべてのUInt64値を完全な精度で表現することができません。 - -もう1つの特殊なケースとして`TransactionType`フィールドがあります。JSONではこのフィールドは便宜上、トランザクションタイプの名前の文字列として表現されますが、バイナリではこのフィールドはUInt16です。[定義ファイル](#定義ファイル)内の`TRANSACTION_TYPES`オブジェクトにより、これらの文字列が特定の数値にマップされます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# シリアル化フォーマット +[[ソース]
](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source") + +このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、また他の用途にも使用されます。通常、[rippled API](rippled-api.html)はJSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。 + +トランザクションをJSONまたはその他の表現から正規バイナリフォーマットへシリアル化するプロセスのステップを、以下にまとめます。 + +1. すべての必須フィールドが指定されていること(必須の[「自動入力可能」フィールド](transaction-common-fields.html#自動入力可能なフィールド)を含む)を確認します。 + + [トランザクションフォーマットリファレンス](transaction-formats.html)に、XRP Ledgerトランザクションの必須フィールドと省略可能なフィールドが定義されています。 + + **注記:**`SigningPubKey`もこのステップで指定する必要があります。署名の際に、署名用に指定されたシークレットキーからこのキーを生成できます。 + +2. 各フィールドのデータを[「内部」バイナリフォーマット](#内部フォーマット)に変換します。 + +3. フィールドを[正規順序](#フィールドの正規順序)でソートします。 + +4. 各フィールドの前に[フィールドID](#フィールドid)を付加します。 + +5. フィールド(プレフィクスを含む)をソート順に連結します。 + +その結果、ECDSA(secp256k1楕円曲線を使用)やEd25519などの既知の署名アルゴリズムを使用して署名できるバイナリブロブが1つ作成されます。XRP Ledgerのために、適切なプレフィクス(シングル署名の場合は`0x53545800`、マルチ署名の場合は`0x534D5400`)を使用してデータを[ハッシュ化][Hash]する必要があります。署名後に、指定されている`TxnSignature`フィールドを使用してトランザクションを再度シリアル化する必要があります。 + +**注記:** XRP Ledgerでは、[レジャーオブジェクト](ledger-object-types.html)や処理済みのトランザクションなど他のタイプのデータを表す場合にも同じシリアル化フォーマットが使用されます。ただし、署名されるトランザクションに追加するのに適切なフィールドは限られています。(たとえば署名自体が指定されている`TxnSignature`フィールドは、署名するバイナリブロブに含まれていてはなりません。)このように、「署名」フィールドとされてオブジェクトに署名するときにオブジェクトに含まれるフィールドもあれば、「非署名」とされてオブジェクトに含まれないフィールドもあります。 + +### 例 + +署名済みトランザクションと未署名のトランザクションはいずれも、JSONフォーマットとバイナリフォーマットの両方で表すことができます。同じ署名済みトランザクションのJSONフォーマットとバイナリフォーマットの例を以下に示します。 + +**JSON:** + +```json +{% include '_code-samples/tx-serialization/test-cases/tx1.json' %} +``` + +**バイナリ(16進数として表現):** + +```text +{% include '_code-samples/tx-serialization/test-cases/tx1-binary.txt' %} +``` + +## サンプルコード + +ここで説明するシリアル化プロセスは複数の場所にさまざまなプログラミング言語で実装されています。 + +- C++: [`rippled` コードベース](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp) +- JavaScript: [`ripple-binary-codec`](https://github.com/ripple/ripple-binary-codec/) パッケージ +- Python 3: [このリポジトリのコードサンプルセクション]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/tx-serialization/serialize.py) + +これらのすべての実装には、一般利用が可能なオープンソースライセンスが提供されているので、学習のためにドキュメントと合わせて使用するだけでなく、必要に応じてコードをインポート、使用、または変更することができます。 + + + +## 内部フォーマット + +各フィールドには「内部」バイナリフォーマットがあります。このフォーマットは、`rippled`ソースコードで署名時に(およびその他のほとんどの場合に)そのフィールドを表示するのに使用されます。すべてのフィールドの内部フォーマットは、[`SField.cpp`](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/SField.cpp)のソースコードに定義されています。(このフィールドには、トランザクションフィールド以外のフィールドも含まれています。)[トランザクションフォーマットリファレンス](transaction-formats.html)にも、すべてのトランザクションフィールドの内部フォーマットが記載されています。 + +たとえば`Flags` [共通トランザクションフィールド](transaction-common-fields.html)はUInt32(32ビット符号なし整数)になります。 + +### 定義ファイル + +以下のJSONファイルには、XRP Ledgerデータをそのバイナリフォーマットにシリアル化し、バイナリからシリアル化解除するのに必要な重要な定数が定義されています。 + +**** + +この定義ファイルの最上位フィールドの定義を以下の表に示します。 + +| フィールド | 内容 | +|:----------------------|:-----------------------------------------------------| +| `TYPES` | フィールドIDの作成と正規順序でのフィールドのソートのためのデータタイプからその[「タイプコード」](#タイプコード)へのマップ。1未満のコードは実際のデータには含まれません。10000を超えるコードは、他のオブジェクト内部ではシリアル化できない「トランザクション」などの特殊な「上位」オブジェクトタイプを表します。各タイプのシリアル化方法についての詳細は、[タイプリスト](#タイプリスト)を参照してください。 | +| `LEDGER_ENTRY_TYPES` | [レジャーオブジェクト](ledger-object-types.html)から対応するデータタイプへのマップ。これはレジャー状態データと、処理されたトランザクションの[メタデータ](transaction-metadata.html)の「affected nodes」セクションに含まれます。 | +| `FIELDS` | トランザクション、レジャーオブジェクト、あるいはその他のデータに含まれる可能性があるすべてのフィールドを表すタプルからなるソート済み配列。各タプルの1番目のメンバーはフィールドの文字列名であり、2番目のメンバーはそのフィールドのプロパティーが含まれているオブジェクトです。(これらのフィールドの定義については、以下の「フィールドプロパティー」の表を参照してください。) | +| `TRANSACTION_RESULTS` | [トランザクション結果コード](transaction-results.html)から対応する数値へのマップ。レジャーに含まれない結果タイプにはマイナスの値が含まれています。`tesSUCCESS`に数値0が含まれています。[`tec`クラスコード](tec-codes.html)は、レジャーに含まれている失敗を示しています。 | +| `TRANSACTION_TYPES` | [トランザクションのタイプ](transaction-types.html)から対応する数値へのマップ。 | + +署名と送信のためにトランザクションをシリアル化するという目的から、`FIELDS`、`TYPES`、および`TRANSACTION_TYPES`フィールドが必要です。 + +`FIELDS`配列のフィールド定義オブジェクトには以下のフィールドが含まれています。 + +| フィールド | 型 | 内容 | +|:-----------------|:--------|:------------------------------------------------| +| `nth` | 数値 | このフィールドの[フィールドコード](#フィールドコード)。このコードは、[フィールドID](#フィールドid)の作成時と、同一データタイプの他のフィールドとのソート時に使用されます。 | +| `isVLEncoded` | ブール値 | `true`の場合、このフィールドには[長さプレフィクスが付加されています](#長さプレフィクスを付加する)。 | +| `isSerialized` | ブール値 | `true`の場合、このフィールドはシリアル化バイナリデータにエンコードされる必要があります。このフィールドが`false`の場合、一般にフィールドは保管されず、オンデマンドで再作成されます。 | +| `isSigningField` | ブール値 | `true`の場合、署名のためにトランザクションを準備する際にこのフィールドをシリアル化する必要があります。`false`の場合、このフィールドは署名対象データから省略する必要があります。(これはトランザクションに含まれていない可能性があります。) | +| `type` | 文字列 | このフィールドの内部データタイプ。これは、このフィールドの[タイプコード](#タイプコード)を示す`TYPES`マップのキーにマップします。 | + +### フィールドID + +[[ソース - エンコード]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L117-L148 "Source") +[[ソース - デコード]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L484-L509 "Source") + +フィールドのタイプコードとフィールドコードを結合すると、フィールドの一意のIDになります。このIDは、最終的なシリアル化ブロブでこのフィールドの前に付加されます。フィールドIDのサイズは、タイプコードとその結合対象のフィールドコードに応じて1~3バイトとなります。以下の表を参照してください。 + +| | タイプコード < 16 | タイプコード >= 16 | +|:-----------------|:------------------------------------------------------------------------------|:--| +| **フィールドコード < 16** | ![1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。](img/field-id-common-type-common-field.png) | ![2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。](img/field-id-uncommon-type-common-field.png) | +| **フィールドコード >= 16** | ![2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。](img/field-id-common-type-uncommon-field.png) | ![3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。](img/field-id-uncommon-type-uncommon-field.png) | + +デコードの際には、**1番目のバイト**のどのビットがゼロであるかによって、フィールドIDのバイト数を把握できます。これは、上記の表の例に対応しています。 + +| | 上位4ビットがゼロ以外である | 上位4ビットがゼロである | +|:-----------------|:------------------------------------------------------------------------------|:--| +| **下位4ビットがゼロ以外である** | 1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。 | 2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。 | +| **下位4ビットがゼロである** | 2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。 | 3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。 | + +**注意:** フィールドIDは、フィールドのソートに使用される2つの要素で構成されますが、シリアル化されたフィールドID自体に基づいてソートを実行しないでください。これは、フィールドIDのバイト構造によってソート順序が変わるためです。 + +### 長さプレフィクスを付加する + +一部の可変長フィールドの前には、長さインディケーターが付加されています。`Blob`フィールド(任意のバイナリデータを含む)がこれに該当します。長さプレフィクスが付加されているタイプのリストについては、[タイプリスト](#タイプリスト)の表を参照してください。 + +**注記:** 一部のタイプの可変長フィールドには、長さプレフィクスが付加されません。このようなタイプでは、他の方法で内容の終わりが示されます。 + +長さプレフィクスはフィールドの長さを示す1~3バイトで構成され、タイププレフィクスと内容の間に挿入されます。 + +- フィールドに0~192バイトのデータが含まれている場合、1番目のバイトは内容の長さを示し、長さバイトの直後にそのバイト数のデータが続きます。 + +- フィールドに193~12480バイトのデータが含まれている場合、最初の2バイトは以下の式で算出されるフィールドの長さを示します。 + + 193 + ((byte1 - 193) * 256) + byte2 + +- フィールドに12481~918744バイトのデータが含まれている場合、最初の3バイトは以下の式で算出されるフィールドの長さを示します。 + + 12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3 + +- 長さプレフィクスが付加されているフィールドに格納できる最大データは918744バイトです。 + +デコード時に、1番目の長さバイトの値から、追加の長さバイト(0、1、または2)が存在するかどうかを把握できます。 + +- 1番目の長さバイトの値が192以下の場合、これは唯一の長さバイトであり、フィールドの内容の長さはこのバイトが示すバイト数です。 +- 1番目の長さバイトの値が193~240の場合、2つの長さバイトがあります。 +- 1番目の長さバイトの値が241~254の場合、3つの長さバイトがあります。 + + +## フィールドの正規順序 + +トランザクションのすべてのフィールドは、まずフィールドのタイプ(特に各タイプに割り当てられている数値の「タイプコード」)に基づいて特定の順序でソートされ、次にフィールド自体(「フィールドコード」)に基づいてソートされます。(たとえば、姓がフィールドのタイプ、名前がフィールド自体とすると、姓で最初にソートし、次に名でソートすることになります。) + +### タイプコード + +各フィールドタイプには任意のタイプコードが含まれており、番号が小さいコードから最初にソートされます。これらのコードは[`SField.h`](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/SField.h#L57-L74)で定義されています。 + +たとえば [UInt32のタイプコードが2である](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L59)ので、すべてのUInt32フィールドは、すべての[Amountフィールド(タイプコード6)](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L63)よりも前に位置します。 + +[定義ファイル](#定義ファイル)には、`TYPES`マップの各タイプのタイプコードがリストされています。 + +### フィールドコード + +各フィールドにはフィールドコードが含まれています。フィールドコードは、同じタイプのフィールドをソートするときに使用され、番号が小さいコードが最初になるようにソートされます。これらのフィールドは[`SField.cpp`](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L72-L266)で定義されています。 + +たとえば[Paymentトランザクション][]の`Account`フィールドの[ソートコードが1である](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L219)場合、このフィールドは`Destination`フィールド([ソートコードが3である](https://github.com/ripple/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L221)フィールド)よりも前に位置します。 + +フィールドコードは異なるフィールドタイプのフィールドで再利用されますが、同じタイプのフィールドに同じフィールドコードが含まれることはありません。タイプコードとフィールドコードを組み合わせると、フィールドの一意の[フィールドID](#フィールドid)になります。 + + + +## タイプリスト + +トランザクションの指示には、以下のタイプのフィールドを指定できます。 + +| タイプ名 | タイプコード | ビット長 | [長さプレフィクスが付加されるか]? | 説明 | +|:--------------|:----------|:-----------|:-------------------|----------------| +| [AccountID][] | 8 | 160 | はい | [アカウント](accounts.html)の一意のID。 | +| [Amount][] | 6 | 64または384 | いいえ | XRPまたは発行済み通貨の額。フィールドの長さは、XRPの場合は64ビット、発行済み通貨の場合は384ビット(64+160+160)です。 | +| [Blob][] | 7 | 可変 | はい | 任意のバイナリデータ。このようなフィールドの中で重要なフィールドとして、`TxnSignature`(トランザクションを承認する署名)があります。 | +| [Hash128][] | 4 | 128 | いいえ | 128ビットの任意のバイナリ値。該当する唯一のフィールドは`EmailHash`です。これは、[Gravatar](https://www.gravatar.com/)を取得する目的でアカウント所有者のメールのMD-5ハッシュを保管するフィールドです。 | +| [Hash160][] | 17 | 160 | いいえ | 160ビットの任意のバイナリ値。これにより通貨コードまたはイシュアーが定義されます。 | +| [Hash256][] | 5 | 256 | いいえ | 256ビットの任意のバイナリ値。これは通常、トランザクション、レジャーバージョン、またはレジャーデータオブジェクトの「SHA-512Half」ハッシュを表します。 | +| [PathSet][] | 18 | 可変 | いいえ | [複数通貨間ペイメント](cross-currency-payments.html)の有効な[ペイメントパス](paths.html)のセット。 | +| [STArray][] | 15 | 可変 | いいえ | 可変数のメンバーからなる配列。フィールドによってタイプが異なる場合があります。この例として、[memos](transaction-common-fields.html#memosフィールド)や[マルチ署名](multi-signing.html)で使用される署名者のリストがあります。 | +| [STObject][] | 14 | 可変 | いいえ | 1つ以上のネストされたフィールドを含むオブジェクト。 | +| [UInt8][] | 16 | 8 | いいえ | 8ビットの符号なし整数。 | +| [UInt16][] | 1 | 16 | いいえ | 16ビットの符号なし整数。`TransactionType`は、このタイプの特殊なフィールドで、特定の文字列から整数値へのマッピングを含みます。 | +| [UInt32][] | 2 | 32 | いいえ | 32ビットの符号なし整数。このタイプの例として、すべてのトランザクションの`Flags`フィールドと`Sequence`フィールドがあります。 | + +[長さプレフィクスを付加する]: #長さプレフィクスを付加する + +上記のフィールドタイプの他に、[レジャーオブジェクト](ledger-object-types.html)や[トランザクションメタデータ](transaction-metadata.html)などのコンテキストでは以下のタイプが含まれることがあります。 + +| タイプ名 | タイプコード | [長さプレフィクスを付加する]? | 説明 | +|:------------|:----------|:-------------------|:------------------------------| +| Transaction | 10001 | いいえ | [トランザクション](transaction-formats.html)全体を含む「上位」タイプ。 | +| LedgerEntry | 10002 | いいえ | [レジャーオブジェクト](ledger-object-types.html)全体を含む「上位」タイプ。 | +| Validation | 10003 | いいえ | ピアツーピア通信で[コンセンサスプロセス](consensus.html)の検証投票を表すために使用される「上位」タイプ。 | +| Metadata | 10004 | いいえ | [1つのトランザクションのメタデータ](transaction-metadata.html)を含む「上位」タイプ。 | +| [UInt64][] | 3 | いいえ | 64ビットの符号なし整数。このタイプはトランザクションの指示には含まれませんが、さまざまなレジャーオブジェクトでこのタイプのフィールドが使用されます。 | +| Vector256 | 19 | はい | このタイプはトランザクションの指示には含まれませんが、[Amendmentsレジャーオブジェクト](amendments-object.html)の`Amendments`フィールドでは、現在有効な[Amendment](amendments.html)を示すためにこのタイプが使用されます。 | + + +### AccountIDフィールド +[AccountID]: #accountidフィールド + +このタイプのフィールドには、XRP Ledger[アカウント](accounts.html)の160ビットのIDが含まれています。JSONではこれらのフィールドは[base58][] XRP Ledger「アドレス」および追加のチェックサムデータとして表示されます。このため、スペルミスが有効なアドレスとなることがありません。(このエンコードは「Base58Check」とも呼ばれ、誤ったアドレスへの送金を防止します。)これらのフィールドのバイナリフォーマットにはチェックサムデータは含まれておらず、また[アドレスのbase58エンコード](accounts.html#アドレスのエンコード)で使用される`0x00`「タイププレフィクス」も含まれていません。(ただし、バイナリフォーマットは主に署名済みトランザクションに使用されるため、署名済みトランザクションを転記する際にスペルミスなどのエラーが発生すると署名が無効となり、送金できなくなります。) + +スタンドアロンフィールドとして表示されるAccountID(`Account`や`Destination`など)の長さは固定長の160ビットですが、[長さプレフィクスが付加](#長さプレフィクスを付加する)されます。その結果、これらのフィールドの長さインディケーターは常に`0x14`バイトになります。特殊フィールドの子として示されるAccountID([Amount `issuer`][Amount]、[PathSet `account`][PathSet]など)では長さプレフィクスは付加 _されません_ 。 + + +### Amountフィールド +[Amount]: #amountフィールド + +「Amount」タイプは、通貨(XRPまたは発行済み通貨)の額を表す特殊なフィールドタイプです。このタイプは2つのサブタイプで構成されます。 + +- **XRP** + + XRPは64ビット符号なし整数(ビッグエンディアンオーダー)としてシリアル化されます。ただし、XRPであることを示すため最上位ビットが常に0であり、プラスの値であることを示す最上位から2番目のビットは1となります。XRPの最大額(1017 drop)には57ビットが必要であるため、XRPのシリアル化フォーマットを計算するには、標準の64ビット符号なし整数をとり、`0x4000000000000000`のビットOR演算を行います。 + +- **発行済み通貨** + + 発行済み通貨は以下の3つのセグメントで構成され、セグメントの順序は以下のとおりです。 + + 1. [内部通貨フォーマット](currency-formats.html#発行済み通貨の計算)の額を示す64ビット。1番目のビットは、これがXRPではないことを示す`1`です。 + 2. [通貨コード](currency-formats.html#通貨コードs)を示す160ビット。標準APIでは、[標準通貨コードフォーマット](currency-formats.html#標準通貨コード)を使用して「USD」などの3文字のコードが160ビットのコードに変換されますが、160ビットのカスタムコードも使用できます。 + 3. イシュアーのアカウントIDを示す160ビット。(関連項目: [アカウントアドレスエンコード](accounts.html#アドレスのエンコード)) + +1番目のビットに基づいて2つのサブタイプのいずれに該当するかを確認できます。`0`の場合はXRP、`1`の場合は発行済み通貨です。 + +以下の図に、XRPの額と発行済み通貨の額のシリアル化フォーマットを示します。 + +![「非XRP」ビット、符号ビット、および62ビットの精度で構成されるXRPの額。「非XRP」ビット、符号ビット、指数(8ビット)、仮数(54ビット)、通貨コード(160ビット)、イシュアー(160ビット)で構成される発行済み通貨の額。](img/serialization-amount.png) + + +### 配列フィールド +[STArray]: #配列フィールド + +一部のトランザクションフィールド([SignerListSetトランザクション][]の`SignerEntries`や[`Memos`](transaction-common-fields.html#memosフィールド)など)はオブジェクトの配列です(「STArray」タイプと呼ばれます)。 + +配列には、さまざまな[オブジェクトフィールド](#オブジェクトフィールド)がそのネイティブバイナリフォーマットで特定の順序で含まれています。JSONでは、各配列メンバーが1つのフィールド(メンバーオブジェクトフィールドの名前)を含むJSON「ラッパー」オブジェクトです。そのフィールドの値は(「内部」)オブジェクト自体です。 + +バイナリフォーマットでは、配列の各メンバーにはフィールドIDプレフィクス(ラッパーオブジェクトの単一キーに基づく)と内容([オブジェクトとしてシリアル化された](#オブジェクトフィールド)内部オブジェクトからなる)が含まれています。配列の終わりをマークするため、アイテムにフィールドID `0xf1`(配列のタイプコードとフィールドコード1)を付加し、内容は指定しません。 + +以下の例は、配列のシリアル化フォーマットを示します(`SignerEntries`フィールド)。 + +![配列フィールドID、各配列要素のフィールドIDと内容、および「配列の終わり」を示すフィールドID](img/serialization-array.png) + + +### ブロブフィールド +[Blob]: #ブロブフィールド + +ブロブタイプは、任意のデータを持つ[長さプレフィクスが付加されている](#長さプレフィクスを付加する)フィールドです。このタイプを使用する2種類の一般的なフィールドとして、`SigningPubKey`と`TxnSignature`があります。これらのフィールドにはそれぞれ、トランザクションの実行を承認する公開鍵と署名が含まれています。 + +両方のフィールドにはこれ以上の内容構造がないため、フィールドIDと長さプレフィクスの後に可変長エンコードで示される正確なバイト数で構成されます。 + + +### ハッシュフィールド +[Hash128]: #ハッシュフィールド +[Hash160]: #ハッシュフィールド +[Hash256]: #ハッシュフィールド + +XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256があります。これらのフィールドには特定のビット数のバイナリデータが含まれており、それらのデータはハッシュ演算の結果を表す場合とそうでない場合があります。 + +これらのフィールドは、長さインディケーターを使用せずに、ビッグエンディアンバイトオーダーで特定数のビットとしてシリアル化されます。 + + +### オブジェクトフィールド +[STObject]: #オブジェクトフィールド + +トランザクションフィールドの一部([SignerListSetトランザクション][]の`SignerEntry`や`Memos`配列の`Memo`など)はオブジェクトです(「STObject」タイプと呼ばれます)。オブジェクトのシリアル化は配列のシリアル化に似ていますが、唯一異なる点としてオブジェクトフィールド内では**オブジェクトのメンバーを正規順序に従って配置する必要がある**点があげられます。配列フィールドではすでに順序が明示的に設定されています。 + +オブジェクトフィールドの[正規フィールド順序](#フィールドの正規順序)は、すべての最上位フィールドの正規フィールド順序と同じですが、オブジェクトのメンバーはオブジェクト内でソートする必要があります。最終メンバーの後には、「オブジェクトの終わり」を示すフィールドID(`0xe1`)があり、このフィールドには内容がありません。 + +以下の例は、オブジェクトのシリアル化フォーマットを示します(`Memos`配列内の1つの`Memo`オブジェクト)。 + +![オブジェクトフィールドID、各オブジェクトメンバーのオブジェクトIDと内容(正規順序)、および「オブジェクトの終わり」を示すフィールドID](img/serialization-object.png) + + +### PathSetフィールド +[PathSet]: #pathsetフィールド + +複数通貨間[Paymentトランザクション][]の`Paths`フィールドは、JSONで配列からなる配列として表される「PathSet」です。使用されるパスについての詳細は、[パス](paths.html)を参照してください。 + +PathSetは、**1~6**の個別パスとして順序どおりにシリアル化されます[[ソース]](https://github.com/ripple/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L35-L36 "Source")。それぞれの完全なパスの後には、パスの後に続く内容を示すバイトが配置されます。 + +- `0xff` は別のパスが続くことを示します。 +- `0x00` はPathSetの終わりを示します。 + +各パスには**1~8**のパスステップがこの順序で含まれています[[ソース]](https://github.com/ripple/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L38-L39 "Source")。各ステップは**タイプ**を示すバイトで始まり、その後にパスステップを記述する1つ以上のフィールドが続きます。タイプは、ビット単位のフラグを使用してそのパスステップに含まれるフィールドを示します。(たとえば値が`0x30`の場合、通貨とイシュアーの両方が変更されます。)複数のフィールドが含まれている場合、フィールドは常に特定の順序で配置されます。 + +以下の表に、有効なフィールドと、タイプバイトでフィールドを示すために設定されるビット単位のフラグを示します。 + +| タイプフラグ | 含まれるフィールド | フィールドタイプ | ビットサイズ | 順序 | +|:----------|:--------------|:------------------|:---------|:------| +| `0x01` | `account` | [AccountID][] | 160ビット | 1番目 | +| `0x10` | `currency` | [通貨コード][] | 160ビット | 2番目 | +| `0x20` | `issuer` | [AccountID][] | 160ビット | 3番目 | + +[通貨コード]: currency-formats.html#標準通貨コード + +いくつかの組み合わせは無効です。詳細は、[パスの仕様](paths.html#パスの仕様)を参照してください。 + +`account`フィールドと`issuer`フィールドのAccountIDには、長さプレフィクスは付加 _されていません_ 。`currency`がXRPの場合、通貨コードは160ビットのゼロとして表されます。 + +各ステップの直後にはパス上の次のステップが続きます。前述したように、パスの最終ステップの後には`0xff`(別のパスが続く場合)または`0x00`(これが最終パスの終わりの場合)が続きます。 + +以下の例は、PathSetのシリアル化フォーマットを示します。 + +![PathSetは複数のパスからなり、各パスの後に継続または終了を示すバイトが続きます。各パスは複数のパスステップからなり、各パスステップはタイプバイトと、タイプバイトに基づく1つ以上の160ビットフィールドで構成されます。](img/serialization-pathset.png) + + +### UIntフィールド +[UInt8]: #uintフィールド +[UInt16]: #uintフィールド +[UInt32]: #uintフィールド +[UInt64]: #uintフィールド + +XRP Ledgerには符号なし整数タイプUInt8、UInt16、UInt32、UInt64があります。これらのタイプはすべて、指定されたビット数の標準ビッグエンディアンバイナリー符号なし整数です。 + +JSONオブジェクトにこれらのフィールドが含まれている場合、ほとんどはデフォルトでJSONの数値として表されます。例外として、UInt64は文字列として表されます。これは、一部のJSONデコーダーがこれらの整数を64ビットの「倍精度」浮動小数点数として表現しようとするためです。64ビットの「倍精度」浮動小数点数では、すべてのUInt64値を完全な精度で表現することができません。 + +もう1つの特殊なケースとして`TransactionType`フィールドがあります。JSONではこのフィールドは便宜上、トランザクションタイプの名前の文字列として表現されますが、バイナリではこのフィールドはUInt16です。[定義ファイル](#定義ファイル)内の`TRANSACTION_TYPES`オブジェクトにより、これらの文字列が特定の数値にマップされます。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/commandline-usage.ja.md b/content/references/rippled-api/commandline-usage.ja.md index 159b61f14a..5d3295083f 100644 --- a/content/references/rippled-api/commandline-usage.ja.md +++ b/content/references/rippled-api/commandline-usage.ja.md @@ -1,167 +1,167 @@ -# rippledコマンドライン使用リファレンス - -`rippled`実行可能ファイルは、通常はXRP Ledgerを処理するデーモンとして実行されますが、他のモードでも実行できます。このページでは、コマンドラインから実行する場合に`rippled`に渡すことができるすべてのオプションを説明します。 - -## 使用できるモード - -- **デーモンモード** - デフォルトです。XRP Ledgerに接続して、トランザクションを処理し、レジャーデータベースを構築します。 -- **スタンドアロンモード** - `-a`または`--standalone`オプションを使用します。他のサーバーには接続できない以外は、デーモンモードと同様です。このモードは、トランザクション処理やその他の機能のテストに使用できます。 -- **クライアントモード** - APIメソッドの名前を指定して、別の`rippled`サーバーにJSON-RPCクライアントとして接続し、その後終了します。実行可能ファイルがすでに別のプロセスで実行中である場合に、このモードを使用してサーバーのステータスとレジャーデータを確認できます。 -- **その他の使用法** - 以下の各コマンドを実行すると、`rippled`実行可能ファイルが何らかの情報を出力し、その後終了します。 - - **ヘルプ** - 使用法の説明を出力するには、`-h`または`--help`を使用します。 - - **単体テスト** - 単体テストを実行し、結果の概要を出力するには、`-u`または`--unittest`を使用します。rippledが正しくコンパイルされていることを確認する場合に便利です。 - - **バージョンステートメント** - `rippled`のバージョン番号を出力し、その後終了するには、`--version`を使用します。 - -## 汎用オプション - -ほとんどのモードに適用されるオプションは、以下の通りです。 - -| オプション | 説明 | -|:----------------|:-----------------------------------------------------------| -| `--conf {FILE}` | デフォルトのロケーションで構成ファイルを検索する代わりに、構成ファイルとして`{FILE}`を使用します。指定されていない場合、`rippled`は最初にローカル作業ディレクトリで`rippled.cfg`ファイルがあるかどうかを調べます。Linuxでは、このファイルが見つからない場合`rippled`は次に`$XDG_CONFIG_HOME/ripple/ripple.cfg`を確認します。(一般的に`$XDG_CONFIG_HOME`の場所は`$HOME/.config`です。) | - -### 詳細レベルのオプション - -次の汎用オプションは、標準出力とログファイルに書き込まれる情報の量を制御します。 - -| オプション | 短縮形 | 説明 | -|:------------|:--------------|:-----------------------------------------------| -| `--debug` | | **廃止予定** トレースレベルのデバッグを有効にします(`--verbose`のエイリアス)。代わりに[log_levelメソッド][]を使用してください。 | -| `--silent` | | 起動中にログを標準出力と標準エラー出力に書き込みません。冗長なログを削減するために`rippled`をsystemdユニットとして開始する場合に推奨されます。 | -| `--verbose` | `-v` | **廃止予定** トレースレベルデバッグを有効にします。代わりに[log_levelメソッド][]を使用してください。 | - - - -## デーモンモードのオプション - -```bash -rippled [OPTIONS] -``` - -デーモンモードは、`rippled`のデフォルトの運用モードです。[汎用オプション](#汎用オプション)の他に、以下のいずれかのオプションを指定できます。 - -| オプション | 説明 | -|:--------------------|:-------------------------------------------------------| -| `--fg` | デーモンをフォアグラウンドでシングルプロセスとして実行します。このオプションを指定しない場合、`rippled`は1番目のプロセスがモニターとして実行されている間に、デーモンの2番目のプロセスをフォークします。 | -| `--import` | 完全に起動する前に、別の`rippled`サーバーのレジャーストアーからレジャーデータをインポートしてください。構成ファイルに有効な`[import_db]`スタンザが指定されている必要があります。 | -| `--net` | **廃止予定** デバッグのためのオプションです。ネットワークからレジャーを取得できるようになるまで、ローカルレジャーを作成しません。 | -| `--nodetoshard` | 完全に起動する前に、すべての完全な[履歴シャード](history-sharding.html)をレジャーストアーからシャードストアーにコピーしてください(シャードストアーに設定されている最大ディスク容量まで)。CPUとI/Oを大量に使用します。注意: このコマンドは、データを(移動するのではなく)コピーするため、シャードストアーとレジャーストアーの両方にデータを保存するのに十分なディスク容量が必要です。 | -| `--quorum {QUORUM}` | これは[テストネットワーク](parallel-networks.html)のブートストラップ用のオプションです。検証のための最小定数をオーバーライドするには、`{QUORUM}`の信頼できるバリデータの同意を必要とします。デフォルトでは、検証のための定数は、信頼できるバリデータの実際の数に基づき、安全な数に自動的に設定されます。一部のバリデータがオンラインではない場合、このオプションにより、標準定数よりも少ない数のバリデータで続行できるようになります。**警告:** 定数を手動で設定すると、設定した値が小さすぎるためにサーバーがネットワークの他の部分から分岐することを防ぐことができない可能性があります。このオプションは、コンセンサスを十分に理解し、標準以外の設定を使用する必要がある場合にのみ使用してください。 | -| `--validateShards` | シャードストアーのデータが有効であり、ネットワーク履歴と整合性があることを確認してください。シャードストアーの詳細は、[履歴シャーディング](history-sharding.html)を参照してください。 | - -## スタンドアロンモードのオプション - -```bash -rippled --standalone [OPTIONS] -rippled -a [OPTIONS] -``` -スタンドアロンモードで実行します。このモードでは、`rippled`はネットワークに接続しないか、またはコンセンサスを実行しません。(それ以外の場合、`rippled`はデーモンモードで実行されます。) - -### 初期レジャーオプション - -以下のオプションにより、起動時に最初に読み込むレジャーが判断されます。これらはのオプションは、履歴レジャーのリプレイまたはテストネットワークのブートストラップのためのものです。 - -| オプション | 説明 | -|:----------------------|:-----------------------------------------------------| -| `--ledger {LEDGER}` | `{LEDGER}`(レジャーハッシュまたはレジャーインデックス)により初期レジャーと識別されているレジャーバージョンを読み込みます。指定されたレジャーバージョンは、サーバーのレジャーストアーに格納される必要があります。 | -| `--ledgerfile {FILE}` | 指定された`{FILE}`からレジャーバージョンを読み込みます(このファイルには完全なレジャーがJSONフォーマットで格納されている必要があります)。このようなファイルの例については、付属の[`ledger-file.json`]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/rippled-cli/ledger-file.json)を参照してください。 | -| `--load` | **廃止予定** デバッグのためのオプションです。ディスク上のレジャーストアーから初期レジャーを読み込むだけです。 | -| `--replay` | デバッグのためのオプションです。`--ledger`と組み合わせて使用し、レジャーの閉鎖をリプレイします。サーバーのレジャーストアーには、当該レジャーとその直前のバージョンのレジャーがすでに格納されている必要があります。サーバーでは、前のレジャーをベースとして使用して、指定されたレジャーのすべてのトランザクションが処理されます。その結果、指定されたレジャーが再作成されます。デバッガーを使用して、特定のトランザクションの処理ロジックを分析するためのブレークポイントを追加できます。 | -| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバーに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](amendments.html)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | -| `--valid` | **廃止予定** デバッグのためのオプションです。ネットワークとの完全同期の前であっても、初期レジャーを有効なネットワークレジャーと見なします。 | - -## クライアントモードのオプション - -```bash -rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} -``` - -クライアントモードでは、`rippled`実行可能ファイルが別の`rippled`サービスのクライアントとして動作します。(サービスは別のプロセスでローカルに実行されている同じ実行可能ファイルである場合や、別のサーバー上の`rippled`サーバーである場合があります。) - -クライアントモードで実行するには、いずれかの[`rippled` API](rippled-api.html)メソッドの[コマンドライン構文](request-formatting.html#コマンドライン形式)を指定します。 - -クライアントモードは、個別のコマンド構文の他に、[汎用オプション](#汎用オプション)と以下のオプションに対応します。 - -| オプション | 説明 | -|:------------------------|:---------------------------------------------------| -| `--rpc` | サーバーをクライアントモードで実行することを明示的に指定します。必須ではありません。 | -| `--rpc_ip {IP_ADDRESS}` | 指定されたIPアドレスの`rippled`サーバーに接続します。オプションでポート番号も指定します。 | -| `--rpc_port {PORT}` | **廃止予定** 指定されたポートで`rippled`サーバーに接続します。代わりに、`--rpc_ip`を使用してIPアドレスとともにポートを指定します。 | - -**ヒント:** 一部の引数では、マイナスの値を指定できます。APIコマンドの引数がオプションとして解釈されないようにするには、コマンド名の前に`--`引数を渡します。 - -使用例(使用可能な最も古いレジャーバージョンから最新のレジャーバージョンまでのアカウントトランザクション履歴を取得): - -```bash -rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 -``` - - -## 単体テスト - -```bash -rippled --unittest [OPTIONS] -rippled -u [OPTIONS] -``` - -単体テストでは、`rippled`ソースコードに組み込まれているテストを実行し、実行可能ファイルが予期されているとおりに動作することを確認します。単体テストの実行が完了すると、結果の概要が表示され、終了します。単体テストでは、組み込みのデータ型やトランザクション処理ルーチンなどの機能がカバーされます。 - -単体テストから失敗が報告される場合、一般的に次のいずれかの状況が発生しています。 - -- `rippled`のコンパイル時に問題が発生し、意図したとおりに機能していない -- `rippled`のソースコードにバグがある -- 単体テストにバグがあるか、単体テストが新しい動作に対応して更新されていない - -単体テストの実行時には、[汎用オプション](#汎用オプション)と以下のいずれかのオプションを指定できます。 - -| オプション | 短縮形 | 説明 | -|:-----------------------------------|:--------------|:------------------------| -| `--unittest-ipv6` | | 単体テストの実行時に[IPv6](https://en.wikipedia.org/wiki/IPv6)を使用してローカルサーバーに接続します。このオプションが指定されていない場合、単体テストではIPv4が代わりに使用されます。[新規: rippled 1.1.0][] | -| `--unittest-jobs {NUMBER_OF_JOBS}` | | 指定された数のプロセスを使用して単体テストを実行します。これにより、マルチコアシステムの単体テストをより短時間で終了できます。`{NUMBER_OF_JOBS}`には、使用するプロセスの数を示すプラスの整数値を指定します。 | -| `--unittest-log` | | `--quiet`が指定されている場合でも、単体テストにてログへの書き込みができるようにします。(それ以外の影響はありません。) | -| `--quiet` | `-q` | 単体テストの実行時に出力される診断メッセージの数が減少します。 | - - -### 特定の単体テスト - -```bash -rippled --unittest={TEST_OR_PACKAGE_NAME} -``` - -デフォルトでは、`rippled`は「手動」に分類されている単体テスト以外のすべての単体テストを実行します。テストの名前を指定してテストを個別に実行するか、またはパッケージ名を指定してテストのサブセットを実行することができます。 - -テストはパッケージの階層にまとめられます。パッケージは`.`文字で区切られ、テストケース名で終わります。 - -#### 単体テストの出力 - -```bash -rippled --unittest=print -``` - -`print`は、使用可能なテストとそのパッケージのリストを出力する特殊な単体テストです。 - -#### 手動単体テスト - -完了に時間を要する一部の単体テストは、「手動」に分類されています。このようなテストについては、`print`単体テストの出力に`|M|`と表示されます。すべての単体テストまたは単体テストのパッケージを実行するときには、手動テストはデフォルトで実行されません。手動テストを個別に実行するには、テスト名を指定します。例: - -```bash -$ ./rippled --unittest=ripple.tx.OversizeMeta -ripple.tx.OversizeMeta -Longest suite times: - 60.9s ripple.tx.OversizeMeta -60.9s, 1 suite, 1 case, 9016 tests total, 0 failures -``` - -#### 単体テストの引数の指定 - -特定の手動単体テストでは引数を指定できます。以下のオプションを使用して引数を指定します。 - -| オプション | 説明 | -|:------------------------|:---------------------------------------------------| -| `--unittest-arg {ARG}` | 実行される単体テストに引数`{ARG}`を指定します。引数を受け入れる単体テストはそれぞれ、固有の引数形式を定義しています。 | - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# rippledコマンドライン使用リファレンス + +`rippled`実行可能ファイルは、通常はXRP Ledgerを処理するデーモンとして実行されますが、他のモードでも実行できます。このページでは、コマンドラインから実行する場合に`rippled`に渡すことができるすべてのオプションを説明します。 + +## 使用できるモード + +- **デーモンモード** - デフォルトです。XRP Ledgerに接続して、トランザクションを処理し、レジャーデータベースを構築します。 +- **スタンドアロンモード** - `-a`または`--standalone`オプションを使用します。他のサーバーには接続できない以外は、デーモンモードと同様です。このモードは、トランザクション処理やその他の機能のテストに使用できます。 +- **クライアントモード** - APIメソッドの名前を指定して、別の`rippled`サーバーにJSON-RPCクライアントとして接続し、その後終了します。実行可能ファイルがすでに別のプロセスで実行中である場合に、このモードを使用してサーバーのステータスとレジャーデータを確認できます。 +- **その他の使用法** - 以下の各コマンドを実行すると、`rippled`実行可能ファイルが何らかの情報を出力し、その後終了します。 + - **ヘルプ** - 使用法の説明を出力するには、`-h`または`--help`を使用します。 + - **単体テスト** - 単体テストを実行し、結果の概要を出力するには、`-u`または`--unittest`を使用します。rippledが正しくコンパイルされていることを確認する場合に便利です。 + - **バージョンステートメント** - `rippled`のバージョン番号を出力し、その後終了するには、`--version`を使用します。 + +## 汎用オプション + +ほとんどのモードに適用されるオプションは、以下の通りです。 + +| オプション | 説明 | +|:----------------|:-----------------------------------------------------------| +| `--conf {FILE}` | デフォルトのロケーションで構成ファイルを検索する代わりに、構成ファイルとして`{FILE}`を使用します。指定されていない場合、`rippled`は最初にローカル作業ディレクトリで`rippled.cfg`ファイルがあるかどうかを調べます。Linuxでは、このファイルが見つからない場合`rippled`は次に`$XDG_CONFIG_HOME/ripple/ripple.cfg`を確認します。(一般的に`$XDG_CONFIG_HOME`の場所は`$HOME/.config`です。) | + +### 詳細レベルのオプション + +次の汎用オプションは、標準出力とログファイルに書き込まれる情報の量を制御します。 + +| オプション | 短縮形 | 説明 | +|:------------|:--------------|:-----------------------------------------------| +| `--debug` | | **廃止予定** トレースレベルのデバッグを有効にします(`--verbose`のエイリアス)。代わりに[log_levelメソッド][]を使用してください。 | +| `--silent` | | 起動中にログを標準出力と標準エラー出力に書き込みません。冗長なログを削減するために`rippled`をsystemdユニットとして開始する場合に推奨されます。 | +| `--verbose` | `-v` | **廃止予定** トレースレベルデバッグを有効にします。代わりに[log_levelメソッド][]を使用してください。 | + + + +## デーモンモードのオプション + +```bash +rippled [OPTIONS] +``` + +デーモンモードは、`rippled`のデフォルトの運用モードです。[汎用オプション](#汎用オプション)の他に、以下のいずれかのオプションを指定できます。 + +| オプション | 説明 | +|:--------------------|:-------------------------------------------------------| +| `--fg` | デーモンをフォアグラウンドでシングルプロセスとして実行します。このオプションを指定しない場合、`rippled`は1番目のプロセスがモニターとして実行されている間に、デーモンの2番目のプロセスをフォークします。 | +| `--import` | 完全に起動する前に、別の`rippled`サーバーのレジャーストアーからレジャーデータをインポートしてください。構成ファイルに有効な`[import_db]`スタンザが指定されている必要があります。 | +| `--net` | **廃止予定** デバッグのためのオプションです。ネットワークからレジャーを取得できるようになるまで、ローカルレジャーを作成しません。 | +| `--nodetoshard` | 完全に起動する前に、すべての完全な[履歴シャード](history-sharding.html)をレジャーストアーからシャードストアーにコピーしてください(シャードストアーに設定されている最大ディスク容量まで)。CPUとI/Oを大量に使用します。注意: このコマンドは、データを(移動するのではなく)コピーするため、シャードストアーとレジャーストアーの両方にデータを保存するのに十分なディスク容量が必要です。 | +| `--quorum {QUORUM}` | これは[テストネットワーク](parallel-networks.html)のブートストラップ用のオプションです。検証のための最小定数をオーバーライドするには、`{QUORUM}`の信頼できるバリデータの同意を必要とします。デフォルトでは、検証のための定数は、信頼できるバリデータの実際の数に基づき、安全な数に自動的に設定されます。一部のバリデータがオンラインではない場合、このオプションにより、標準定数よりも少ない数のバリデータで続行できるようになります。**警告:** 定数を手動で設定すると、設定した値が小さすぎるためにサーバーがネットワークの他の部分から分岐することを防ぐことができない可能性があります。このオプションは、コンセンサスを十分に理解し、標準以外の設定を使用する必要がある場合にのみ使用してください。 | +| `--validateShards` | シャードストアーのデータが有効であり、ネットワーク履歴と整合性があることを確認してください。シャードストアーの詳細は、[履歴シャーディング](history-sharding.html)を参照してください。 | + +## スタンドアロンモードのオプション + +```bash +rippled --standalone [OPTIONS] +rippled -a [OPTIONS] +``` +スタンドアロンモードで実行します。このモードでは、`rippled`はネットワークに接続しないか、またはコンセンサスを実行しません。(それ以外の場合、`rippled`はデーモンモードで実行されます。) + +### 初期レジャーオプション + +以下のオプションにより、起動時に最初に読み込むレジャーが判断されます。これらはのオプションは、履歴レジャーのリプレイまたはテストネットワークのブートストラップのためのものです。 + +| オプション | 説明 | +|:----------------------|:-----------------------------------------------------| +| `--ledger {LEDGER}` | `{LEDGER}`(レジャーハッシュまたはレジャーインデックス)により初期レジャーと識別されているレジャーバージョンを読み込みます。指定されたレジャーバージョンは、サーバーのレジャーストアーに格納される必要があります。 | +| `--ledgerfile {FILE}` | 指定された`{FILE}`からレジャーバージョンを読み込みます(このファイルには完全なレジャーがJSONフォーマットで格納されている必要があります)。このようなファイルの例については、付属の[`ledger-file.json`]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/rippled-cli/ledger-file.json)を参照してください。 | +| `--load` | **廃止予定** デバッグのためのオプションです。ディスク上のレジャーストアーから初期レジャーを読み込むだけです。 | +| `--replay` | デバッグのためのオプションです。`--ledger`と組み合わせて使用し、レジャーの閉鎖をリプレイします。サーバーのレジャーストアーには、当該レジャーとその直前のバージョンのレジャーがすでに格納されている必要があります。サーバーでは、前のレジャーをベースとして使用して、指定されたレジャーのすべてのトランザクションが処理されます。その結果、指定されたレジャーが再作成されます。デバッガーを使用して、特定のトランザクションの処理ロジックを分析するためのブレークポイントを追加できます。 | +| `--start` | デバッグのためのオプションです。既知のすべてのAmendment(反対票を投じるようにサーバーに設定されているAmendmentを除く)が適用されている新しいジェネシスレジャーを使用して開始します。したがってこれらのAmendmentの機能は、2週間の[Amendmentプロセス](amendments.html)期間ではなく、2番目のレジャーの開始時から使用可能になります。 | +| `--valid` | **廃止予定** デバッグのためのオプションです。ネットワークとの完全同期の前であっても、初期レジャーを有効なネットワークレジャーと見なします。 | + +## クライアントモードのオプション + +```bash +rippled [OPTIONS] -- {COMMAND} {COMMAND_PARAMETERS} +``` + +クライアントモードでは、`rippled`実行可能ファイルが別の`rippled`サービスのクライアントとして動作します。(サービスは別のプロセスでローカルに実行されている同じ実行可能ファイルである場合や、別のサーバー上の`rippled`サーバーである場合があります。) + +クライアントモードで実行するには、いずれかの[`rippled` API](rippled-api.html)メソッドの[コマンドライン構文](request-formatting.html#コマンドライン形式)を指定します。 + +クライアントモードは、個別のコマンド構文の他に、[汎用オプション](#汎用オプション)と以下のオプションに対応します。 + +| オプション | 説明 | +|:------------------------|:---------------------------------------------------| +| `--rpc` | サーバーをクライアントモードで実行することを明示的に指定します。必須ではありません。 | +| `--rpc_ip {IP_ADDRESS}` | 指定されたIPアドレスの`rippled`サーバーに接続します。オプションでポート番号も指定します。 | +| `--rpc_port {PORT}` | **廃止予定** 指定されたポートで`rippled`サーバーに接続します。代わりに、`--rpc_ip`を使用してIPアドレスとともにポートを指定します。 | + +**ヒント:** 一部の引数では、マイナスの値を指定できます。APIコマンドの引数がオプションとして解釈されないようにするには、コマンド名の前に`--`引数を渡します。 + +使用例(使用可能な最も古いレジャーバージョンから最新のレジャーバージョンまでのアカウントトランザクション履歴を取得): + +```bash +rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 +``` + + +## 単体テスト + +```bash +rippled --unittest [OPTIONS] +rippled -u [OPTIONS] +``` + +単体テストでは、`rippled`ソースコードに組み込まれているテストを実行し、実行可能ファイルが予期されているとおりに動作することを確認します。単体テストの実行が完了すると、結果の概要が表示され、終了します。単体テストでは、組み込みのデータ型やトランザクション処理ルーチンなどの機能がカバーされます。 + +単体テストから失敗が報告される場合、一般的に次のいずれかの状況が発生しています。 + +- `rippled`のコンパイル時に問題が発生し、意図したとおりに機能していない +- `rippled`のソースコードにバグがある +- 単体テストにバグがあるか、単体テストが新しい動作に対応して更新されていない + +単体テストの実行時には、[汎用オプション](#汎用オプション)と以下のいずれかのオプションを指定できます。 + +| オプション | 短縮形 | 説明 | +|:-----------------------------------|:--------------|:------------------------| +| `--unittest-ipv6` | | 単体テストの実行時に[IPv6](https://en.wikipedia.org/wiki/IPv6)を使用してローカルサーバーに接続します。このオプションが指定されていない場合、単体テストではIPv4が代わりに使用されます。[新規: rippled 1.1.0][] | +| `--unittest-jobs {NUMBER_OF_JOBS}` | | 指定された数のプロセスを使用して単体テストを実行します。これにより、マルチコアシステムの単体テストをより短時間で終了できます。`{NUMBER_OF_JOBS}`には、使用するプロセスの数を示すプラスの整数値を指定します。 | +| `--unittest-log` | | `--quiet`が指定されている場合でも、単体テストにてログへの書き込みができるようにします。(それ以外の影響はありません。) | +| `--quiet` | `-q` | 単体テストの実行時に出力される診断メッセージの数が減少します。 | + + +### 特定の単体テスト + +```bash +rippled --unittest={TEST_OR_PACKAGE_NAME} +``` + +デフォルトでは、`rippled`は「手動」に分類されている単体テスト以外のすべての単体テストを実行します。テストの名前を指定してテストを個別に実行するか、またはパッケージ名を指定してテストのサブセットを実行することができます。 + +テストはパッケージの階層にまとめられます。パッケージは`.`文字で区切られ、テストケース名で終わります。 + +#### 単体テストの出力 + +```bash +rippled --unittest=print +``` + +`print`は、使用可能なテストとそのパッケージのリストを出力する特殊な単体テストです。 + +#### 手動単体テスト + +完了に時間を要する一部の単体テストは、「手動」に分類されています。このようなテストについては、`print`単体テストの出力に`|M|`と表示されます。すべての単体テストまたは単体テストのパッケージを実行するときには、手動テストはデフォルトで実行されません。手動テストを個別に実行するには、テスト名を指定します。例: + +```bash +$ ./rippled --unittest=ripple.tx.OversizeMeta +ripple.tx.OversizeMeta +Longest suite times: + 60.9s ripple.tx.OversizeMeta +60.9s, 1 suite, 1 case, 9016 tests total, 0 failures +``` + +#### 単体テストの引数の指定 + +特定の手動単体テストでは引数を指定できます。以下のオプションを使用して引数を指定します。 + +| オプション | 説明 | +|:------------------------|:---------------------------------------------------| +| `--unittest-arg {ARG}` | 実行される単体テストに引数`{ARG}`を指定します。引数を受け入れる単体テストはそれぞれ、固有の引数形式を定義しています。 | + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-header.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-header.ja.md index 90f244bb94..59fd274429 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-header.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-header.ja.md @@ -1,40 +1,40 @@ -# レジャーヘッダー -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/ledger/ReadView.h#L71 "Source") - -すべてのレジャーバージョンには、その内容を記述する一意のヘッダーが含まれています。[ledgerメソッド][]を使用してレジャーのヘッダー情報を検索できます。レジャーヘッダーの内容を以下に示します。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------------------------|:----------|:------------------|:------------| -| [`ledger_index`][レジャーインデックス] | 文字列 | UInt32 | このレジャーのシーケンス番号。APIメソッドの中には、この番号を引用符で囲んだ整数として表示するメソッドと、ネイティブJSON数値として表示するメソッドがあります。 | -| `ledger_hash` | 文字列 | Hash256 | このレジャーバージョンの[SHA-512Half][]。これは、このレジャーとそのすべての内容の一意のIDとして機能します。 | -| `account_hash` | 文字列 | Hash256 | このレジャーの状態ツリー情報の[SHA-512Half][]。 | -| `close_time` | 数値 | UInt32 | このレジャーが閉鎖されたおおよその時刻。Rippleエポック(2000-01-01 00:00:00)以降の経過秒数として示されます。この値は`close_time_resolution`に基づいて丸められるので、これ以降のレジャーに同じ値が含まれることがあります。 | -| `closed` | ブール値 | bool | trueの場合、このレジャーバージョンはこれ以上新しいトランザクションを受け入れません。(ただし、このレジャーバージョンが未検証の場合は、一連の異なるトランザクションが記録されている別のレジャーバージョンに置き換えられることがあります。) | -| `parent_hash` | 文字列 | Hash256 | このレジャーを作成するために使用された直前のレジャーの`ledger_hash`値。直前のレジャーインデックスの異なるバージョンが存在している場合、これはレジャーの生成元を示します。 | -| `total_coins` | 文字列 | UInt64 | レジャーのアカウントが保有する[XRPのdrop数][XRP、drop単位]の合計。トランザクション手数料により消却されたXRPは除外されます。一部のアカウントは、そのキーを知っている人がいない「ブラックホール」アカウントであるため、流通している実際のXRPの量はこれよりも少なくなります。 | -| `transaction_hash` | 文字列 | Hash256 | このレジャーに記録されているトランザクションの[SHA-512Half][]。 | -| `close_time_resolution` | 数値 | Uint8 | `close_time`を丸めるときの最大秒数を示す範囲 \[2,120\] 内の整数。 | -| [`closeFlags`](#closeフラグ) | (省略) | UInt8 | このレジャーの閉鎖に関連するフラグのビットマップ。 | - - -## レジャーインデックス -{% include '_snippets/data_types/ledger_index.md' %} - - - -## closeフラグ - -レジャーでは1つのフラグだけがcloseFlagsとして設定されています(**sLCF_NoConsensusTime**(値`1`))。このフラグが有効な場合、バリデータによってレジャーの閉鎖時刻が異なります。ただし、作成しているレジャーは同一のものであるため、バリデータは閉鎖時刻について「合意をしないことに合意する」とした上でコンセンサスを宣言しました。この場合、コンセンサスレジャーバージョンの`close_time`の値は直前のバージョンの1秒後です。(この場合、正式な閉鎖時刻がありませんが、実際の閉鎖時刻はおそらく指定されている`close_time`の3~6秒後です。) - -`closeFlags`フィールドはレジャーのJSON表現には含まれていませんが、レジャーのバイナリ表現には含まれており、レジャーのハッシュを判別するフィールドの1つです。 - - -## 関連項目 - -レジャーの基本的な説明については、[レジャー](ledgers.html)を参照してください。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# レジャーヘッダー +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/ledger/ReadView.h#L71 "Source") + +すべてのレジャーバージョンには、その内容を記述する一意のヘッダーが含まれています。[ledgerメソッド][]を使用してレジャーのヘッダー情報を検索できます。レジャーヘッダーの内容を以下に示します。 + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-------------------------------|:----------|:------------------|:------------| +| [`ledger_index`][レジャーインデックス] | 文字列 | UInt32 | このレジャーのシーケンス番号。APIメソッドの中には、この番号を引用符で囲んだ整数として表示するメソッドと、ネイティブJSON数値として表示するメソッドがあります。 | +| `ledger_hash` | 文字列 | Hash256 | このレジャーバージョンの[SHA-512ハーフ][]。これは、このレジャーとそのすべての内容の一意のIDとして機能します。 | +| `account_hash` | 文字列 | Hash256 | このレジャーの状態ツリー情報の[SHA-512ハーフ][]。 | +| `close_time` | 数値 | UInt32 | このレジャーが閉鎖されたおおよその時刻。Rippleエポック(2000-01-01 00:00:00)以降の経過秒数として示されます。この値は`close_time_resolution`に基づいて丸められるので、これ以降のレジャーに同じ値が含まれることがあります。 | +| `closed` | ブール値 | bool | trueの場合、このレジャーバージョンはこれ以上新しいトランザクションを受け入れません。(ただし、このレジャーバージョンが未検証の場合は、一連の異なるトランザクションが記録されている別のレジャーバージョンに置き換えられることがあります。) | +| `parent_hash` | 文字列 | Hash256 | このレジャーを作成するために使用された直前のレジャーの`ledger_hash`値。直前のレジャーインデックスの異なるバージョンが存在している場合、これはレジャーの生成元を示します。 | +| `total_coins` | 文字列 | UInt64 | レジャーのアカウントが保有する[XRPのdrop数][XRP、drop単位]の合計。トランザクション手数料により消却されたXRPは除外されます。一部のアカウントは、そのキーを知っている人がいない「ブラックホール」アカウントであるため、流通している実際のXRPの量はこれよりも少なくなります。 | +| `transaction_hash` | 文字列 | Hash256 | このレジャーに記録されているトランザクションの[SHA-512ハーフ][]。 | +| `close_time_resolution` | 数値 | Uint8 | `close_time`を丸めるときの最大秒数を示す範囲 \[2,120\] 内の整数。 | +| [`closeFlags`](#closeフラグ) | (省略) | UInt8 | このレジャーの閉鎖に関連するフラグのビットマップ。 | + + +## レジャーインデックス +{% include '_snippets/data_types/ledger_index.md' %} + + + +## closeフラグ + +レジャーでは1つのフラグだけがcloseFlagsとして設定されています(**sLCF_NoConsensusTime**(値`1`))。このフラグが有効な場合、バリデータによってレジャーの閉鎖時刻が異なります。ただし、作成しているレジャーは同一のものであるため、バリデータは閉鎖時刻について「合意をしないことに合意する」とした上でコンセンサスを宣言しました。この場合、コンセンサスレジャーバージョンの`close_time`の値は直前のバージョンの1秒後です。(この場合、正式な閉鎖時刻がありませんが、実際の閉鎖時刻はおそらく指定されている`close_time`の3~6秒後です。) + +`closeFlags`フィールドはレジャーのJSON表現には含まれていませんが、レジャーのバイナリ表現には含まれており、レジャーのハッシュを判別するフィールドの1つです。 + + +## 関連項目 + +レジャーの基本的な説明については、[レジャー](ledgers.html)を参照してください。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-ids.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-ids.ja.md index 84ae109a28..e6742cc08b 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-ids.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-ids.ja.md @@ -1,18 +1,18 @@ -# レジャーオブジェクトID - - -レジャーの状態ツリーのすべてのオブジェクトには一意のIDがあります。このフィールドは、オブジェクトの内容と同じレベルでJSONの`index`フィールドとして返されます。IDは、オブジェクトの重要な内容をハッシュし、[名前空間ID](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/LedgerFormats.h#L99)を使用して生成されます。[レジャーオブジェクトタイプ](ledger-object-types.html)により、使用する名前空間IDとハッシュに含める内容が決定します。これにより、すべてのIDが一意になります。ハッシュを計算するため、`rippled`はSHA-512を使用し、その結果を最初の256バイトで切り捨てます。**SHA-512Half**と呼ばれるこのアルゴリズム出力は、SHA-256と同等のセキュリティで、64ビットプロセッサーでは実行にかかる時間が短くなります。 - -![図: rippledによる、SHA-512Halfを使用したレジャーオブジェクトIDの生成。スペースキーは、異なるオブジェクトタイプIDの競合を防止します。](img/ledger-indexes.png) - - -## 関連項目 - -- XRP Ledgerでは、ハッシュがどのように生成、使用されているかについての詳細は、[ハッシュ](basic-data-types.html#ハッシュ)を参照してください。 -- レジャーの基本的な説明については、[レジャー](ledgers.html)を参照してください。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# レジャーオブジェクトID + + +レジャーの状態ツリーのすべてのオブジェクトには一意のIDがあります。このフィールドは、オブジェクトの内容と同じレベルでJSONの`index`フィールドとして返されます。IDは、オブジェクトの重要な内容をハッシュし、[名前空間ID](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/LedgerFormats.h#L99)を使用して生成されます。[レジャーオブジェクトタイプ](ledger-object-types.html)により、使用する名前空間IDとハッシュに含める内容が決定します。これにより、すべてのIDが一意になります。ハッシュを計算するため、`rippled`はSHA-512を使用し、その結果を最初の256バイトで切り捨てます。**SHA-512Half**と呼ばれるこのアルゴリズム出力は、SHA-256と同等のセキュリティで、64ビットプロセッサーでは実行にかかる時間が短くなります。 + +![図: rippledによる、SHA-512Halfを使用したレジャーオブジェクトIDの生成。スペースキーは、異なるオブジェクトタイプIDの競合を防止します。](img/ledger-indexes.png) + + +## 関連項目 + +- XRP Ledgerでは、ハッシュがどのように生成、使用されているかについての詳細は、[ハッシュ](basic-data-types.html#ハッシュ)を参照してください。 +- レジャーの基本的な説明については、[レジャー](ledgers.html)を参照してください。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/accountroot.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/accountroot.ja.md index 1e22d5c91f..8b54ea7e27 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/accountroot.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/accountroot.ja.md @@ -1,79 +1,79 @@ -# AccountRoot -[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L27 "Source") - -`AccountRoot`オブジェクトタイプは、1つの[アカウント](accounts.html)、そのアカウントの設定、XRP残高を記述します。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", - "Balance": "148446663", - "Domain": "6D64756F31332E636F6D", - "EmailHash": "98B4375E1D753E5B91627516F6D70977", - "Flags": 8388608, - "LedgerEntryType": "AccountRoot", - "MessageKey": "0000000000000000000000070000000300", - "OwnerCount": 3, - "PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", - "PreviousTxnLgrSeq": 14091160, - "Sequence": 336, - "TransferRate": 1004999999, - "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8" -} -``` - -## {{currentpage.name}}フィールド - -`AccountRoot`オブジェクトのフィールドは次のとおりです。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------------------------|:----------|:------------------|:-------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0061`が文字列`AccountRoot`にマッピングされている場合は、これがAccountRootオブジェクトであることを示します。 | -| `Account` | 文字列 | AccountID | このアカウントの識別用アドレス(rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnなど)。 | -| `Balance` | 文字列 | Amount | アカウントの現在の[drop単位のXRP残高][XRP、drop単位]で、文字列で表現されます。 | -| [`Flags`](#accountrootフラグ) | 数値 | UInt32 | このアカウントに対して有効になっているブールフラグのビットマップ。 | -| `OwnerCount` | 数値 | UInt32 | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | -| `Sequence` | 数値 | UInt32 | このアカウントの次に有効なトランザクションのシーケンス番号。(各アカウントはSequence = 1で開始し、トランザクションが作られるたびにこの値が増加します。) | -| `AccountTxnID` | 文字列 | Hash256 | _(省略可)_ このアカウントが最後に送信したトランザクションの識別用ハッシュ。 | -| `Domain` | 文字列 | VariableLength | _(省略可)_ このアカウントに関連付けられているドメイン。JSONではこれはドメインのASCII表現の16進数値です。 | -| `EmailHash` | 文字列 | Hash128 | _(省略可)_ メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内で[Gravatar](https://en.gravatar.com/)などのアバターを検索できます。 | -| `MessageKey` | 文字列 | VariableLength | _(省略可)_ 暗号化メッセージをこのアカウントに送信するときに使用できる公開鍵。JSONでは16進数値を使用します。33バイト以下です。 | -| `RegularKey` | 文字列 | AccountID | _(省略可)_ このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できるキーペアのアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 | -| `TickSize` | 数値 | UInt8 | _(省略可)_ このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。_([TickSize Amendment][]が必要です。)_ | -| `TransferRate` | 数値 | UInt32 | _(省略可)_ このアカウントが発行した通貨を他のユーザーが相互に送金する際に、これらのユーザーに請求する[送金手数料](https://ripple.com/knowledge_center/transfer-fees/)。 | -| `WalletLocator` | 文字列 | Hash256 | _(省略可)_ **廃止予定**。使用しないでください。 | -| `WalletSize` | 数値 | UInt32 | _(省略可)_ **廃止予定**。使用しないでください。 | - -## AccountRootフラグ - -このアカウントに対して有効化または無効化できる各種オプションがあります。これらのオプションを変更するには、[AccountSetトランザクション][]を使用します。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 _lsf_ で始まる名前が付いています。 - -AccountRootオブジェクトには以下のフラグ値を指定できます。 - -| フラグ名 | 16進数値 | 10進数値 | 説明 | 対応する[AccountSetのフラグ](accountset.html#accountsetのフラグ) | -|-----------|-----------|---------------|-------------|-------------------------------| -| lsfDefaultRipple | 0x00800000 | 8388608 | このアドレスのトラストラインでデフォルトで[rippling](rippling.html)を有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 | asfDefaultRipple | -| lsfDepositAuth | 0x01000000 | 16777216 | このアカウントは、アカウントが送信するトランザクションと、[事前承認された](depositauth.html#事前承認)アカウントからの資金だけを受領します。([DepositAuth](depositauth.html)が有効になっています。) | asfDepositAuth | -| lsfDisableMaster | 0x00100000 | 1048576 | このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 | asfDisableMaster | -| lsfDisallowXRP | 0x00080000 | 524288 | クライアントアプリケーションはこのアカウントにXRPを送金しないでください。`rippled`により強制されるものではありません。 | asfDisallowXRP | -| lsfGlobalFreeze | 0x00400000 | 4194304 | このアドレスが発行するすべての資産が凍結されます。 | asfGlobalFreeze | -| lsfNoFreeze | 0x00200000 | 2097152 | このアドレスは、このアドレスに接続しているトラストラインを凍結できません。一度有効にすると、無効にできません。 | asfNoFreeze | -| lsfPasswordSpent | 0x00010000 | 65536 | このアカウントは無料のSetRegularKeyトランザクションを使用しています。 | (なし) | -| lsfRequireAuth | 0x00040000 | 262144 | このアカウントは、他のユーザーがこのアカウントのイシュアンスを保有することを個別に承認する必要があります。 | asfRequireAuth | -| lsfRequireDestTag | 0x00020000 | 131072 | 受信ペイメントには宛先タグの指定が必要です。 | asfRequireDest | - -## AccountRoot IDのフォーマット - -AccountRootオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* Accountスペースキー(`0x0061`) -* アカウントのAccountID - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# AccountRoot +[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L27 "Source") + +`AccountRoot`オブジェクトタイプは、1つの[アカウント](accounts.html)、そのアカウントの設定、XRP残高を記述します。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", + "Balance": "148446663", + "Domain": "6D64756F31332E636F6D", + "EmailHash": "98B4375E1D753E5B91627516F6D70977", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "MessageKey": "0000000000000000000000070000000300", + "OwnerCount": 3, + "PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D", + "PreviousTxnLgrSeq": 14091160, + "Sequence": 336, + "TransferRate": 1004999999, + "index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8" +} +``` + +## {{currentpage.name}}フィールド + +`AccountRoot`オブジェクトのフィールドは次のとおりです。 + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:------------------------------|:----------|:------------------|:-------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0061`が文字列`AccountRoot`にマッピングされている場合は、これがAccountRootオブジェクトであることを示します。 | +| `Account` | 文字列 | AccountID | このアカウントの識別用アドレス(rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpnなど)。 | +| `Balance` | 文字列 | Amount | アカウントの現在の[drop単位のXRP残高][XRP、drop単位]で、文字列で表現されます。 | +| [`Flags`](#accountrootフラグ) | 数値 | UInt32 | このアカウントに対して有効になっているブールフラグのビットマップ。 | +| `OwnerCount` | 数値 | UInt32 | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | +| `Sequence` | 数値 | UInt32 | このアカウントの次に有効なトランザクションのシーケンス番号。(各アカウントはSequence = 1で開始し、トランザクションが作られるたびにこの値が増加します。) | +| `AccountTxnID` | 文字列 | Hash256 | _(省略可)_ このアカウントが最後に送信したトランザクションの識別用ハッシュ。 | +| `Domain` | 文字列 | VariableLength | _(省略可)_ このアカウントに関連付けられているドメイン。JSONではこれはドメインのASCII表現の16進数値です。 | +| `EmailHash` | 文字列 | Hash128 | _(省略可)_ メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内で[Gravatar](https://en.gravatar.com/)などのアバターを検索できます。 | +| `MessageKey` | 文字列 | VariableLength | _(省略可)_ 暗号化メッセージをこのアカウントに送信するときに使用できる公開鍵。JSONでは16進数値を使用します。33バイト以下です。 | +| `RegularKey` | 文字列 | AccountID | _(省略可)_ このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できるキーペアのアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 | +| `TickSize` | 数値 | UInt8 | _(省略可)_ このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。_([TickSize Amendment][]が必要です。)_ | +| `TransferRate` | 数値 | UInt32 | _(省略可)_ このアカウントが発行した通貨を他のユーザーが相互に送金する際に、これらのユーザーに請求する[送金手数料](https://ripple.com/knowledge_center/transfer-fees/)。 | +| `WalletLocator` | 文字列 | Hash256 | _(省略可)_ **廃止予定**。使用しないでください。 | +| `WalletSize` | 数値 | UInt32 | _(省略可)_ **廃止予定**。使用しないでください。 | + +## AccountRootフラグ + +このアカウントに対して有効化または無効化できる各種オプションがあります。これらのオプションを変更するには、[AccountSetトランザクション][]を使用します。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 _lsf_ で始まる名前が付いています。 + +AccountRootオブジェクトには以下のフラグ値を指定できます。 + +| フラグ名 | 16進数値 | 10進数値 | 説明 | 対応する[AccountSetのフラグ](accountset.html#accountsetのフラグ) | +|-----------|-----------|---------------|-------------|-------------------------------| +| lsfDefaultRipple | 0x00800000 | 8388608 | このアドレスのトラストラインでデフォルトで[rippling](rippling.html)を有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 | asfDefaultRipple | +| lsfDepositAuth | 0x01000000 | 16777216 | このアカウントは、アカウントが送信するトランザクションと、[事前承認された](depositauth.html#事前承認)アカウントからの資金だけを受領します。([DepositAuth](depositauth.html)が有効になっています。) | asfDepositAuth | +| lsfDisableMaster | 0x00100000 | 1048576 | このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 | asfDisableMaster | +| lsfDisallowXRP | 0x00080000 | 524288 | クライアントアプリケーションはこのアカウントにXRPを送金しないでください。`rippled`により強制されるものではありません。 | asfDisallowXRP | +| lsfGlobalFreeze | 0x00400000 | 4194304 | このアドレスが発行するすべての資産が凍結されます。 | asfGlobalFreeze | +| lsfNoFreeze | 0x00200000 | 2097152 | このアドレスは、このアドレスに接続しているトラストラインを凍結できません。一度有効にすると、無効にできません。 | asfNoFreeze | +| lsfPasswordSpent | 0x00010000 | 65536 | このアカウントは無料のSetRegularKeyトランザクションを使用しています。 | (なし) | +| lsfRequireAuth | 0x00040000 | 262144 | このアカウントは、他のユーザーがこのアカウントのイシュアンスを保有することを個別に承認する必要があります。 | asfRequireAuth | +| lsfRequireDestTag | 0x00020000 | 131072 | 受信ペイメントには宛先タグの指定が必要です。 | asfRequireDest | + +## AccountRoot IDのフォーマット + +AccountRootオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* Accountスペースキー(`0x0061`) +* アカウントのAccountID + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/amendments.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/amendments.ja.md index f82ea08e85..660934d649 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/amendments.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/amendments.ja.md @@ -1,63 +1,63 @@ -# Amendments -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L110-L113 "Source") - -`Amendments`オブジェクトタイプには、現在アクティブな[Amendment](amendments.html)のリストが含まれています。各レジャーバージョンには**最大で1つの** `Amendments`オブジェクトが含まれています。 - -## {{currentpage.name}}のJSONの例 - -```json -{ - "Majorities": [ - { - "Majority": { - "Amendment": "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146", - "CloseTime": 535589001 - } - } - ], - "Amendments": [ - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", - "740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11" - ], - "Flags": 0, - "LedgerEntryType": "Amendments", - "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4" -} -``` - -## {{currentpage.name}}のフィールド - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|-----------|-------------------|-------------| -| `Amendments` | 配列 | STI_VECTOR256 | _(省略可)_ 現在有効なすべてのAmendmentの256ビット[Amendment ID](amendments.html#amendmentについて)からなる配列。省略されている場合は、有効なAmendmentがありません。 | -| `Majorities` | 配列 | STI_ARRAY | _(省略可)_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 | -| `Flags` | 数値 | UInt32 | ブール値フラグのビットマップ。Amendmentオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`です。 | -| `LedgerEntryType` | 文字列 | UInt16 | 値が `0x0066`(文字列`Amendments`にマッピング)の場合は、このオブジェクトがXRP Ledgerに対するAmendmentのステータスを記述していることを示します。 | - -`Majorities`フィールドにメンバーが含まれている場合、各メンバーは`Majority`フィールドのみが含まれているオブジェクトです。このフィールドの内容は、以下のフィールドからなるネストオブジェクトです。 - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|-----------|-------------------|-------------| -| `Amendment` | 文字列 | Hash256 | 保留中のAmendmentのAmendment ID。 | -| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](ledger-header.html)。 | - -[Amendmentプロセス](amendments.html#amendmentプロセス)では、80%以上のバリデータが新しいAmendmentを支持してバリデータのコンセンサスが得られると、`tfGotMajority`フラグを指定した[EnableAmendment][]疑似トランザクションを使用してこの新しいAmendmentが`Majorities`フィールドに追加されます。保留中のAmendmentの支持が80%を下回ると、`tfLostMajority`フラグが指定された[EnableAmendment][]疑似トランザクションによりそのAmendmentが`Majorities`配列から削除されます。Amendmentが`Majorities`フィールドに含まれている状態が2週間以上継続している場合、フラグが指定されていない[EnableAmendment][]疑似トランザクションによってそのAmendmentは`Majorities`から削除され、`Amendments`フィールドに恒久的に追加されます。 - -**注記:** 実際には、レジャー内のすべてのトランザクションは、その直前のレジャーバージョンで有効になっているAmendmentに基づいて処理されます。Amendmentが有効になったレジャーバージョンにトランザクションを適用する場合、このルールでは中間レジャーは変更されません。レジャーの閉鎖後、適用された新しいAmendmentにより定義される新しいルールが次のレジャーで使用されます。 - -## Amendment IDのフォーマット - -`Amendments`オブジェクトIDは、`Amendments`スペースキー(`0x0066`)のハッシュのみです。つまり、レジャーの`Amendments`オブジェクトのIDは常に次の値になります: - -``` -7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4 -``` - -(`Amendments`レジャーオブジェクトタイプのIDと、個々のAmendmentのAmendment IDを混同しないでください。) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Amendments +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L110-L113 "Source") + +`Amendments`オブジェクトタイプには、現在アクティブな[Amendment](amendments.html)のリストが含まれています。各レジャーバージョンには**最大で1つの** `Amendments`オブジェクトが含まれています。 + +## {{currentpage.name}}のJSONの例 + +```json +{ + "Majorities": [ + { + "Majority": { + "Amendment": "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146", + "CloseTime": 535589001 + } + } + ], + "Amendments": [ + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", + "740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11" + ], + "Flags": 0, + "LedgerEntryType": "Amendments", + "index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4" +} +``` + +## {{currentpage.name}}のフィールド + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|-------------------|-----------|-------------------|-------------| +| `Amendments` | 配列 | STI_VECTOR256 | _(省略可)_ 現在有効なすべてのAmendmentの256ビット[Amendment ID](amendments.html#amendmentについて)からなる配列。省略されている場合は、有効なAmendmentがありません。 | +| `Majorities` | 配列 | STI_ARRAY | _(省略可)_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 | +| `Flags` | 数値 | UInt32 | ブール値フラグのビットマップ。Amendmentオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`です。 | +| `LedgerEntryType` | 文字列 | UInt16 | 値が `0x0066`(文字列`Amendments`にマッピング)の場合は、このオブジェクトがXRP Ledgerに対するAmendmentのステータスを記述していることを示します。 | + +`Majorities`フィールドにメンバーが含まれている場合、各メンバーは`Majority`フィールドのみが含まれているオブジェクトです。このフィールドの内容は、以下のフィールドからなるネストオブジェクトです。 + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|-------------------|-----------|-------------------|-------------| +| `Amendment` | 文字列 | Hash256 | 保留中のAmendmentのAmendment ID。 | +| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](ledger-header.html)。 | + +[Amendmentプロセス](amendments.html#amendmentプロセス)では、80%以上のバリデータが新しいAmendmentを支持してバリデータのコンセンサスが得られると、`tfGotMajority`フラグを指定した[EnableAmendment][]疑似トランザクションを使用してこの新しいAmendmentが`Majorities`フィールドに追加されます。保留中のAmendmentの支持が80%を下回ると、`tfLostMajority`フラグが指定された[EnableAmendment][]疑似トランザクションによりそのAmendmentが`Majorities`配列から削除されます。Amendmentが`Majorities`フィールドに含まれている状態が2週間以上継続している場合、フラグが指定されていない[EnableAmendment][]疑似トランザクションによってそのAmendmentは`Majorities`から削除され、`Amendments`フィールドに恒久的に追加されます。 + +**注記:** 実際には、レジャー内のすべてのトランザクションは、その直前のレジャーバージョンで有効になっているAmendmentに基づいて処理されます。Amendmentが有効になったレジャーバージョンにトランザクションを適用する場合、このルールでは中間レジャーは変更されません。レジャーの閉鎖後、適用された新しいAmendmentにより定義される新しいルールが次のレジャーで使用されます。 + +## Amendment IDのフォーマット + +`Amendments`オブジェクトIDは、`Amendments`スペースキー(`0x0066`)のハッシュのみです。つまり、レジャーの`Amendments`オブジェクトのIDは常に次の値になります: + +``` +7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4 +``` + +(`Amendments`レジャーオブジェクトタイプのIDと、個々のAmendmentのAmendment IDを混同しないでください。) + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/check.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/check.ja.md index ac0af3a884..87ba19e4cc 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/check.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/check.ja.md @@ -1,63 +1,63 @@ -# Check -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170 "Source") - -_([Checks Amendment][]が必要です :not_enabled:)_ - -`Check`オブジェクトはCheckを表します。Checkは紙の個人小切手に似ており、送金先はCheckを換金して送金元からの資金を獲得できます。(予定されている支払いは送金元によりすでに承認されていますが、換金されるまでは資金の移動は発生しません。[Escrow](escrow.html)とは異なり、Checkの資金は預託されず、資金不足が原因でCheckの換金が失敗することがあります。) - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "DestinationNode": "0000000000000000", - "DestinationTag": 1, - "Expiration": 570113521, - "Flags": 0, - "InvoiceID": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", - "LedgerEntryType": "Check", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", - "PreviousTxnLgrSeq": 6, - "SendMax": "100000000", - "Sequence": 2, - "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" -} -``` - -## {{currentpage.name}}フィールド - -`Check`オブジェクトのフィールドは次のとおりです。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------------|:-----------------|:------------------|:----------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0043`が文字列`Check`にマッピングされている場合は、このオブジェクトがCheckオブジェクトであることを示します。 | -| `Account` | 文字列 | Account | Checkの送金元。Checkを換金するとこのアドレスの残高から引き落とされます。 | -| `Destination` | 文字列 | Account | Checkの指定受取人。このアドレスだけが[CheckCashトランザクション][]を使用してCheckを換金できます。 | -| `Flags` | 数値 | UInt32 | ブール値フラグのビットマップ。Checkにはフラグが定義されていないため、この値は常に`0`です。 | -| `OwnerNode` | 文字列 | UInt64 | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーのインデックス][Ledger Index]。 | -| `SendMax` | 文字列またはオブジェクト | Amount | このCheckで送金元から引き落とすことができる最大通貨額。Checkの換金が成功すると、送金先に同じ通貨で最大この額までの資金が入金されます。 | -| `Sequence` | 数値 | UInt32 | このCheckを作成した[CheckCreateトランザクション][]のシーケンス番号。 | -| `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 送金先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このCheckの送金先(送金先アドレスのホスティングされている受取人など)を詳しく指定するための任意のタグ。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ 経過後にこのCheckが有効期限切れとみなされる時刻を示します。詳細は[時間の指定][]を参照してください。 | -| `InvoiceID` | 文字列 | Hash256 | _(省略可)_ このCheckの具体的な理由または識別子として送金元が指定する任意の256ビットハッシュ。 | -| `SourceTag` | 数値 | UInt32 | _(省略可)_ このCheckの送金元(送金元アドレスのホスティングされている返金時の受取人など)を詳しく指定するための任意のタグ。 | - - -## Check IDのフォーマット -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200 "Source") - -`Check`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* Checkスペースキー(`0x0043`) -* `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。 -* `Check`オブジェクトを作成した[CheckCreateトランザクション][]のシーケンス番号。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Check +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170 "Source") + +_([Checks Amendment][]が必要です :not_enabled:)_ + +`Check`オブジェクトはCheckを表します。Checkは紙の個人小切手に似ており、送金先はCheckを換金して送金元からの資金を獲得できます。(予定されている支払いは送金元によりすでに承認されていますが、換金されるまでは資金の移動は発生しません。[Escrow](escrow.html)とは異なり、Checkの資金は預託されず、資金不足が原因でCheckの換金が失敗することがあります。) + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "DestinationNode": "0000000000000000", + "DestinationTag": 1, + "Expiration": 570113521, + "Flags": 0, + "InvoiceID": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", + "LedgerEntryType": "Check", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", + "PreviousTxnLgrSeq": 6, + "SendMax": "100000000", + "Sequence": 2, + "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0" +} +``` + +## {{currentpage.name}}フィールド + +`Check`オブジェクトのフィールドは次のとおりです。 + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:--------------------|:-----------------|:------------------|:----------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0043`が文字列`Check`にマッピングされている場合は、このオブジェクトがCheckオブジェクトであることを示します。 | +| `Account` | 文字列 | Account | Checkの送金元。Checkを換金するとこのアドレスの残高から引き落とされます。 | +| `Destination` | 文字列 | Account | Checkの指定受取人。このアドレスだけが[CheckCashトランザクション][]を使用してCheckを換金できます。 | +| `Flags` | 数値 | UInt32 | ブール値フラグのビットマップ。Checkにはフラグが定義されていないため、この値は常に`0`です。 | +| `OwnerNode` | 文字列 | UInt64 | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーのインデックス][Ledger Index]。 | +| `SendMax` | 文字列またはオブジェクト | Amount | このCheckで送金元から引き落とすことができる最大通貨額。Checkの換金が成功すると、送金先に同じ通貨で最大この額までの資金が入金されます。 | +| `Sequence` | 数値 | UInt32 | このCheckを作成した[CheckCreateトランザクション][]のシーケンス番号。 | +| `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 送金先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このCheckの送金先(送金先アドレスのホスティングされている受取人など)を詳しく指定するための任意のタグ。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ 経過後にこのCheckが有効期限切れとみなされる時刻を示します。詳細は[時間の指定][]を参照してください。 | +| `InvoiceID` | 文字列 | Hash256 | _(省略可)_ このCheckの具体的な理由または識別子として送金元が指定する任意の256ビットハッシュ。 | +| `SourceTag` | 数値 | UInt32 | _(省略可)_ このCheckの送金元(送金元アドレスのホスティングされている返金時の受取人など)を詳しく指定するための任意のタグ。 | + + +## Check IDのフォーマット +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200 "Source") + +`Check`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* Checkスペースキー(`0x0043`) +* `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。 +* `Check`オブジェクトを作成した[CheckCreateトランザクション][]のシーケンス番号。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/depositpreauth.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/depositpreauth.ja.md index 26b5fd784e..8c31f001c0 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/depositpreauth.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/depositpreauth.ja.md @@ -1,49 +1,49 @@ -# DepositPreauth -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L172-L178 "Source") - -`DepositPreauth`オブジェクトはアカウント間の事前承認を追跡します。[DepositPreauthトランザクション][]によりこれらのオブジェクトが作成されます。 - -これは、事前承認を付与したアカウントに[Deposit Authorization](depositauth.html)が不要な場合は、トランザクションの処理に影響しません。その場合、事前承認されたアカウントから、事前承認を付与したアカウントに対して、支払やその他のトランザクションを直接送信できます。事前認証は一方向であり、反対方向の支払には影響しません。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "LedgerEntryType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Flags" : 0, - "OwnerNode" : "0000000000000000", - "PreviousTxnID" : "3E8964D5A86B3CD6B9ECB33310D4E073D64C865A5B866200AD2B7E29F8326702", - "PreviousTxnLgrSeq" : 7, - "index" : "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C" -} -``` - -## {{currentpage.name}}フィールド - -`DepositPreauth`オブジェクトのフィールドは次のとおりです。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------------|:-----------------|:------------------|:----------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0070`が文字列`DepositPreauth`にマッピングされている場合は、これがDepositPreauthオブジェクトであることを示します。 | -| `Account` | 文字列 | Account | 事前承認を付与したアカウント。(事前認証支払の宛先。) | -| `Authorize` | 文字列 | Account | 事前承認を受けたアカウント。(事前認証支払の送金元。) | -| `Flags` | 数値 | UInt32 | ブールフラグのビットマップ。DepositPreauthオブジェクトにはフラグが定義されていないため、この値は常に`0`です。 | -| `OwnerNode` | 文字列 | UInt64 | 送金元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | - - -## DepositPreauth IDのフォーマット - -`DepositPreauth`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* DepositPreauthスペースキー(`0x0070`) -* このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザー)のAccountID。 -* 事前承認されたアカウント(このオブジェクトを作成した[DepositPreauthトランザクション][]の`Authorized`フィールド、つまり事前承認を受けたユーザー)のAccountID。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# DepositPreauth +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L172-L178 "Source") + +`DepositPreauth`オブジェクトはアカウント間の事前承認を追跡します。[DepositPreauthトランザクション][]によりこれらのオブジェクトが作成されます。 + +これは、事前承認を付与したアカウントに[Deposit Authorization](depositauth.html)が不要な場合は、トランザクションの処理に影響しません。その場合、事前承認されたアカウントから、事前承認を付与したアカウントに対して、支払やその他のトランザクションを直接送信できます。事前認証は一方向であり、反対方向の支払には影響しません。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "LedgerEntryType" : "DepositPreauth", + "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Flags" : 0, + "OwnerNode" : "0000000000000000", + "PreviousTxnID" : "3E8964D5A86B3CD6B9ECB33310D4E073D64C865A5B866200AD2B7E29F8326702", + "PreviousTxnLgrSeq" : 7, + "index" : "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C" +} +``` + +## {{currentpage.name}}フィールド + +`DepositPreauth`オブジェクトのフィールドは次のとおりです。 + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:--------------------|:-----------------|:------------------|:----------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0070`が文字列`DepositPreauth`にマッピングされている場合は、これがDepositPreauthオブジェクトであることを示します。 | +| `Account` | 文字列 | Account | 事前承認を付与したアカウント。(事前認証支払の宛先。) | +| `Authorize` | 文字列 | Account | 事前承認を受けたアカウント。(事前認証支払の送金元。) | +| `Flags` | 数値 | UInt32 | ブールフラグのビットマップ。DepositPreauthオブジェクトにはフラグが定義されていないため、この値は常に`0`です。 | +| `OwnerNode` | 文字列 | UInt64 | 送金元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | + + +## DepositPreauth IDのフォーマット + +`DepositPreauth`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* DepositPreauthスペースキー(`0x0070`) +* このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザー)のAccountID。 +* 事前承認されたアカウント(このオブジェクトを作成した[DepositPreauthトランザクション][]の`Authorized`フィールド、つまり事前承認を受けたユーザー)のAccountID。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/directorynode.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/directorynode.ja.md index 89c4105957..d2144459d8 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/directorynode.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/directorynode.ja.md @@ -1,101 +1,101 @@ -# DirectoryNode -[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L44 "Source") - -`DirectoryNode`オブジェクトタイプは、レジャーの状態ツリー内の他オブジェクトへのリンクのリストを提供します。概念上の1つの _ディレクトリー_ は、1つ以上の各DirectoryNodeオブジェクトが含まれる二重リンクリストの形式になっています。各DirectoryNodeオブジェクトには、他オブジェクトの[ID](ledgers.html#ツリーの形式)が最大32個まで含まれています。1番目のオブジェクトはディレクトリーのルートと呼ばれ、ルートオブジェクト以外のオブジェクトはすべて必要に応じて自由に追加または削除できます。 - -2種類のディレクトリーがあります。 - -* **所有者ディレクトリー**は、アカウントが所有するその他のオブジェクト(`RippleState`オブジェクトや`Offer`オブジェクトなど)をリストします。 -* **オファーディレクトリー**は、分散型取引所で利用可能なオファーをリストします。1つのオファーディレクトリーには、同一イシュアンスに同一為替レートが設定されているすべてのオファーが含まれます。 - -## {{currentpage.name}}のJSONの例 - - - -*オファーディレクトリー* - -```json -{ - "ExchangeRate": "4F069BA8FF484000", - "Flags": 0, - "Indexes": [ - "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD" - ], - "LedgerEntryType": "DirectoryNode", - "RootIndex": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000004A50590000000000", - "TakerPaysIssuer": "5BBC0F22F61D9224A110650CFE21CC0C4BE13098", - "index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000" -} -``` - -*所有者ディレクトリー* - -```json -{ - "Flags": 0, - "Indexes": [ - "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD", - "E83BBB58949A8303DF07172B16FB8EFBA66B9191F3836EC27A4568ED5997BAC5" - ], - "LedgerEntryType": "DirectoryNode", - "Owner": "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ", - "RootIndex": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94", - "index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94" -} -``` - - - -## {{currentpage.name}}のフィールド - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|-----------|---------------|-------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0064`(文字列`DirectoryNode`にマッピング)の場合は、このオブジェクトがディレクトリーの一部であることを示します。 | -| `Flags` | 数値 | UInt32 | このディレクトリーに対して有効になっているブール値フラグのビットマップ。現在、プロトコルではDirectoryNodeオブジェクトのフラグは定義されていません。 | -| `RootIndex` | 文字列 | Hash256 | このディレクトリーのルートオブジェクトのID。 | -| `Indexes` | 配列 | Vector256 | このディレクトリーの内容: 他のオブジェクトのIDの配列。 | -| `IndexNext` | 数値 | UInt64 | (省略可)このディレクトリーに複数のページが含まれている場合、このIDはチェーン内の次のオブジェクトにリンクし、末尾でラップアラウンドします。 | -| `IndexPrevious` | 数値 | UInt64 | (省略可)このディレクトリーに複数のページが含まれている場合、このIDはチェーン内の前のオブジェクトにリンクし、先頭でラップアラウンドします。 | -| `Owner` | 文字列 | AccountID | (所有者ディレクトリーのみ)このディレクトリー内のオブジェクトを所有するアカウントのアドレス。 | -| `ExchangeRate` | 数値 | UInt64 | (オファーディレクトリーのみ)**廃止予定**。使用しないでください。 | -| `TakerPaysCurrency` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerPaysの額の通貨コード。 | -| `TakerPaysIssuer` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerPaysの額のイシュアー。 | -| `TakerGetsCurrency` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerGetsの額の通貨コード。 | -| `TakerGetsIssuer` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerGetsの額のイシュアー。 | - -## ディレクトリー IDのフォーマット - -DirectoryNodeのIDを作成するときには、DirectoryNodeが以下のどのページを表しているかに応じて3種類の方式があります。 - -* 所有者ディレクトリーの1番目のページ(ルートとも呼ばれます) -* オファーディレクトリーの1番目のページ -* いずれかのディレクトリーの以降のページ - -**所有者ディレクトリーの1番目のページ**のIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* 所有者ディレクトリーのスペースキー(`0x004F`) -* `Owner`フィールドのAccountID。 - -**オファーディレクトリーの1番目のページ**には特殊なIDがあります。このIDの上位192ビットはオーダーブックを定義し、それ以降の64ビットはこのディレクトリー内のオファーの為替レートを定義します。(IDはビッグエンディアンであるため、最初に位置する上位ビットにブックが含まれ、後に位置する下位ビットにクオリティが含まれます。)これにより、最適なオファーから最低のオファーへの順にオーダーブックを反復できます。具体的には、先頭192ビットとは、以下の値がこの順序で連結されている[SHA-512Half][]の先頭192ビットです。 - -* ブックディレクトリーのスペースキー(`0x0042`) -* `TakerPaysCurrency`の160ビットの通貨コード -* `TakerGetsCurrency`の160ビットの通貨コード -* `TakerPaysIssuer`のAccountID -* `TakerGetsIssuer`のAccountID - -オファーディレクトリーのIDの下位64ビットは、そのディレクトリー内のオファーのTakerPaysの額をTakerGetsの額で割った結果を、XRP Ledgerの内部金額フォーマットの64ビット数値で表したものです。 - -**DirectoryNodeがディレクトリーの1番目のページではない場合**(所有者ディレクトリー、オファーディレクトリーのいずれの場合でも)、DirectoryNodeのIDは、以下の値をこの順序で連結した[SHA-512Half][]です。 - -* DirectoryNodeスペースキー(`0x0064`) -* ルートDirectoryNodeのID -* このオブジェクトのページ番号(ルートDirectoryNodeは0であるため、この値は1以上の整数値です。) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# DirectoryNode +[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L44 "Source") + +`DirectoryNode`オブジェクトタイプは、レジャーの状態ツリー内の他オブジェクトへのリンクのリストを提供します。概念上の1つの _ディレクトリー_ は、1つ以上の各DirectoryNodeオブジェクトが含まれる二重リンクリストの形式になっています。各DirectoryNodeオブジェクトには、他オブジェクトの[ID](ledgers.html#ツリーの形式)が最大32個まで含まれています。1番目のオブジェクトはディレクトリーのルートと呼ばれ、ルートオブジェクト以外のオブジェクトはすべて必要に応じて自由に追加または削除できます。 + +2種類のディレクトリーがあります。 + +* **所有者ディレクトリー**は、アカウントが所有するその他のオブジェクト(`RippleState`オブジェクトや`Offer`オブジェクトなど)をリストします。 +* **オファーディレクトリー**は、分散型取引所で利用可能なオファーをリストします。1つのオファーディレクトリーには、同一イシュアンスに同一為替レートが設定されているすべてのオファーが含まれます。 + +## {{currentpage.name}}のJSONの例 + + + +*オファーディレクトリー* + +```json +{ + "ExchangeRate": "4F069BA8FF484000", + "Flags": 0, + "Indexes": [ + "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD" + ], + "LedgerEntryType": "DirectoryNode", + "RootIndex": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004A50590000000000", + "TakerPaysIssuer": "5BBC0F22F61D9224A110650CFE21CC0C4BE13098", + "index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000" +} +``` + +*所有者ディレクトリー* + +```json +{ + "Flags": 0, + "Indexes": [ + "AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD", + "E83BBB58949A8303DF07172B16FB8EFBA66B9191F3836EC27A4568ED5997BAC5" + ], + "LedgerEntryType": "DirectoryNode", + "Owner": "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ", + "RootIndex": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94", + "index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94" +} +``` + + + +## {{currentpage.name}}のフィールド + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|-------------------|-----------|---------------|-------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0064`(文字列`DirectoryNode`にマッピング)の場合は、このオブジェクトがディレクトリーの一部であることを示します。 | +| `Flags` | 数値 | UInt32 | このディレクトリーに対して有効になっているブール値フラグのビットマップ。現在、プロトコルではDirectoryNodeオブジェクトのフラグは定義されていません。 | +| `RootIndex` | 文字列 | Hash256 | このディレクトリーのルートオブジェクトのID。 | +| `Indexes` | 配列 | Vector256 | このディレクトリーの内容: 他のオブジェクトのIDの配列。 | +| `IndexNext` | 数値 | UInt64 | (省略可)このディレクトリーに複数のページが含まれている場合、このIDはチェーン内の次のオブジェクトにリンクし、末尾でラップアラウンドします。 | +| `IndexPrevious` | 数値 | UInt64 | (省略可)このディレクトリーに複数のページが含まれている場合、このIDはチェーン内の前のオブジェクトにリンクし、先頭でラップアラウンドします。 | +| `Owner` | 文字列 | AccountID | (所有者ディレクトリーのみ)このディレクトリー内のオブジェクトを所有するアカウントのアドレス。 | +| `ExchangeRate` | 数値 | UInt64 | (オファーディレクトリーのみ)**廃止予定**。使用しないでください。 | +| `TakerPaysCurrency` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerPaysの額の通貨コード。 | +| `TakerPaysIssuer` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerPaysの額のイシュアー。 | +| `TakerGetsCurrency` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerGetsの額の通貨コード。 | +| `TakerGetsIssuer` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerGetsの額のイシュアー。 | + +## ディレクトリー IDのフォーマット + +DirectoryNodeのIDを作成するときには、DirectoryNodeが以下のどのページを表しているかに応じて3種類の方式があります。 + +* 所有者ディレクトリーの1番目のページ(ルートとも呼ばれます) +* オファーディレクトリーの1番目のページ +* いずれかのディレクトリーの以降のページ + +**所有者ディレクトリーの1番目のページ**のIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* 所有者ディレクトリーのスペースキー(`0x004F`) +* `Owner`フィールドのAccountID。 + +**オファーディレクトリーの1番目のページ**には特殊なIDがあります。このIDの上位192ビットはオーダーブックを定義し、それ以降の64ビットはこのディレクトリー内のオファーの為替レートを定義します。(IDはビッグエンディアンであるため、最初に位置する上位ビットにブックが含まれ、後に位置する下位ビットにクオリティが含まれます。)これにより、最適なオファーから最低のオファーへの順にオーダーブックを反復できます。具体的には、先頭192ビットとは、以下の値がこの順序で連結されている[SHA-512ハーフ][]の先頭192ビットです。 + +* ブックディレクトリーのスペースキー(`0x0042`) +* `TakerPaysCurrency`の160ビットの通貨コード +* `TakerGetsCurrency`の160ビットの通貨コード +* `TakerPaysIssuer`のAccountID +* `TakerGetsIssuer`のAccountID + +オファーディレクトリーのIDの下位64ビットは、そのディレクトリー内のオファーのTakerPaysの額をTakerGetsの額で割った結果を、XRP Ledgerの内部金額フォーマットの64ビット数値で表したものです。 + +**DirectoryNodeがディレクトリーの1番目のページではない場合**(所有者ディレクトリー、オファーディレクトリーのいずれの場合でも)、DirectoryNodeのIDは、以下の値をこの順序で連結した[SHA-512ハーフ][]です。 + +* DirectoryNodeスペースキー(`0x0064`) +* ルートDirectoryNodeのID +* このオブジェクトのページ番号(ルートDirectoryNodeは0であるため、この値は1以上の整数値です。) + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/escrow.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/escrow.ja.md index 71d310d7b7..7af8e8d817 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/escrow.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/escrow.ja.md @@ -1,68 +1,68 @@ -# Escrow -[[ソース]
](https://github.com/ripple/rippled/blob/c6b6d82a754fe449cc533e18659df483c10a5c98/src/ripple/protocol/impl/LedgerFormats.cpp#L90-L101 "Source") - -_([Escrow Amendment][]が必要です。)_ - -`Escrow`オブジェクトタイプは、実行または取り消しを待機している保留中のXRP支払を表します。[EscrowCreateトランザクション][]はレジャーに`Escrow`オブジェクトを作成します。[EscrowFinish][]トランザクションまたは[EscrowCancel][]トランザクションが正常に完了すると、オブジェクトが削除されます。``Escrow``オブジェクトに [_Crypto-condition_](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02)が指定されている場合、支払が成功するのは、EscrowFinishトランザクションに指定された対応する _フルフィルメント_ がその条件を満たす場合だけです。(サポートされている唯一のCrypto-conditionタイプは[PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)です。)`Escrow`オブジェクトに`FinishAfter`時刻が指定されている場合、保留中の支払はその時刻の経過後にのみ実行されます。 - -`Escrow`オブジェクトには次の2つのアドレスが関連付けられています。 - -- `Escrow`オブジェクトの作成時にXRPを供給する所有者。保留中の支払が取り消されると、XRPは所有者に返金されます。 -- 保留中の支払が成功するとXRPが支払われる宛先。宛先は所有者と同じにできます。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": "10000", - "CancelAfter": 545440232, - "Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120", - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "DestinationTag": 23480, - "FinishAfter": 545354132, - "Flags": 0, - "LedgerEntryType": "Escrow", - "OwnerNode": "0000000000000000", - "DestinationNode": "0000000000000000", - "PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7", - "PreviousTxnLgrSeq": 28991004, - "SourceTag": 11747, - "index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC" -} -``` - -## {{currentpage.name}}フィールド - -`Escrow`オブジェクトのフィールドは次のとおりです。 - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|-----------|---------------|-------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0075`が文字列`Escrow`にマッピングされている場合は、このオブジェクトが`Escrow`オブジェクトであることを示します。 | -| `Account` | 文字列 | AccountID | この保留中の支払の所有者(送金元)のアドレス。これはXRPを供給し、保留中の支払が取り消された場合にXRPが返金されるアカウントです。 | -| `Destination` | 文字列 | AccountID | 保留中の支払が成功するとXRPが支払われる宛先アドレス。 | -| `Amount` | 文字列 | Amount | 保留中の支払から送金されるXRPの額(drop単位)。 | -| `Condition` | 文字列 | VariableLength | _(省略可)_ [PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)(16進数)。指定されている場合、[EscrowFinishトランザクション][]にこの条件を満たすフルフィルメントが含まれている必要があります。 | -| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このフィールドがあり、 _かつ_ 指定されている時刻を経過している場合にのみ、保留中の支払を取り消すことができます。具体的には、これは[Rippleエポック以降の経過秒数][]として指定され、前の検証済みレジャーの閉鎖時刻よりも早い場合に「経過した」ことになります。 | -| `FinishAfter` | 数値 | UInt32 | _(省略可)_ [Rippleエポック以降の経過秒数][]で示される時刻が経過した後、保留中の支払を完了できます。この時刻より前の[EscrowFinishトランザクション][]はすべて失敗します。(特にこれは、前の検証済みレジャーの閉鎖時刻と比較されます。) | -| `Flags` | 数値 | UInt32 | ブールフラグのビットマップ。Escrowタイプにはフラグが定義されていないため、この値は常に`0`です。 | -| `SourceTag` | 数値 | UInt32 | _(省略可)_ この保留中の支払の支払元(所有者のアドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ この保留中の支払の宛先(宛先アドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | -| `OwnerNode` | 文字列 | UInt64 | 所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fix1523 Amendment][]を有効にする前に作成されたEscrowでは省略されています。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | - - -## Escrow IDのフォーマット - -`Escrow`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* Escrowスペースキー(`0x0075`) -* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。 -* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]のシーケンス番号。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Escrow +[[ソース]
](https://github.com/ripple/rippled/blob/c6b6d82a754fe449cc533e18659df483c10a5c98/src/ripple/protocol/impl/LedgerFormats.cpp#L90-L101 "Source") + +_([Escrow Amendment][]が必要です。)_ + +`Escrow`オブジェクトタイプは、実行または取り消しを待機している保留中のXRP支払を表します。[EscrowCreateトランザクション][]はレジャーに`Escrow`オブジェクトを作成します。[EscrowFinish][]トランザクションまたは[EscrowCancel][]トランザクションが正常に完了すると、オブジェクトが削除されます。``Escrow``オブジェクトに [_Crypto-condition_](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02)が指定されている場合、支払が成功するのは、EscrowFinishトランザクションに指定された対応する _フルフィルメント_ がその条件を満たす場合だけです。(サポートされている唯一のCrypto-conditionタイプは[PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)です。)`Escrow`オブジェクトに`FinishAfter`時刻が指定されている場合、保留中の支払はその時刻の経過後にのみ実行されます。 + +`Escrow`オブジェクトには次の2つのアドレスが関連付けられています。 + +- `Escrow`オブジェクトの作成時にXRPを供給する所有者。保留中の支払が取り消されると、XRPは所有者に返金されます。 +- 保留中の支払が成功するとXRPが支払われる宛先。宛先は所有者と同じにできます。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "10000", + "CancelAfter": 545440232, + "Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120", + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "DestinationTag": 23480, + "FinishAfter": 545354132, + "Flags": 0, + "LedgerEntryType": "Escrow", + "OwnerNode": "0000000000000000", + "DestinationNode": "0000000000000000", + "PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7", + "PreviousTxnLgrSeq": 28991004, + "SourceTag": 11747, + "index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC" +} +``` + +## {{currentpage.name}}フィールド + +`Escrow`オブジェクトのフィールドは次のとおりです。 + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|-------------------|-----------|---------------|-------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0075`が文字列`Escrow`にマッピングされている場合は、このオブジェクトが`Escrow`オブジェクトであることを示します。 | +| `Account` | 文字列 | AccountID | この保留中の支払の所有者(送金元)のアドレス。これはXRPを供給し、保留中の支払が取り消された場合にXRPが返金されるアカウントです。 | +| `Destination` | 文字列 | AccountID | 保留中の支払が成功するとXRPが支払われる宛先アドレス。 | +| `Amount` | 文字列 | Amount | 保留中の支払から送金されるXRPの額(drop単位)。 | +| `Condition` | 文字列 | VariableLength | _(省略可)_ [PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)(16進数)。指定されている場合、[EscrowFinishトランザクション][]にこの条件を満たすフルフィルメントが含まれている必要があります。 | +| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このフィールドがあり、 _かつ_ 指定されている時刻を経過している場合にのみ、保留中の支払を取り消すことができます。具体的には、これは[Rippleエポック以降の経過秒数][]として指定され、前の検証済みレジャーの閉鎖時刻よりも早い場合に「経過した」ことになります。 | +| `FinishAfter` | 数値 | UInt32 | _(省略可)_ [Rippleエポック以降の経過秒数][]で示される時刻が経過した後、保留中の支払を完了できます。この時刻より前の[EscrowFinishトランザクション][]はすべて失敗します。(特にこれは、前の検証済みレジャーの閉鎖時刻と比較されます。) | +| `Flags` | 数値 | UInt32 | ブールフラグのビットマップ。Escrowタイプにはフラグが定義されていないため、この値は常に`0`です。 | +| `SourceTag` | 数値 | UInt32 | _(省略可)_ この保留中の支払の支払元(所有者のアドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ この保留中の支払の宛先(宛先アドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 | +| `OwnerNode` | 文字列 | UInt64 | 所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fix1523 Amendment][]を有効にする前に作成されたEscrowでは省略されています。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | + + +## Escrow IDのフォーマット + +`Escrow`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* Escrowスペースキー(`0x0075`) +* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。 +* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]のシーケンス番号。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/feesettings.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/feesettings.ja.md index ba77ec7a91..208cfa721d 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/feesettings.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/feesettings.ja.md @@ -1,49 +1,49 @@ -# FeeSettings -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120 "Source") - -`FeeSettings`オブジェク -トタイプには、現在の基本[トランザクションコスト](transaction-cost.html)と、[手数料投票](fee-voting.html)により決定する[準備金の額](reserves.html)が含まれています。各レジャーバージョンには**最大で1つの** `FeeSettings`オブジェクトが含まれています。 - -## {{currentpage.name}} JSONの例 - -`FeeSettings`オブジェクトの例。 - -```json -{ - "BaseFee": "000000000000000A", - "Flags": 0, - "LedgerEntryType": "FeeSettings", - "ReferenceFeeUnits": 10, - "ReserveBase": 20000000, - "ReserveIncrement": 5000000, - "index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" -} -``` - -## {{currentpage.name}}フィールド - -`FeeSettings`オブジェクトのフィールドは次のとおりです。 - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|:--------------------|:----------|:------------------|:-----------------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0073`が文字列`FeeSettings`にマッピングされている場合は、このオブジェクトにレジャーの手数料設定が含まれていることを示します。 | -| `BaseFee` | 文字列 | UInt64 | 「リファレンストランザクション」の[トランザクションコスト](transaction-cost.html)(XRPのdrop数、16進数) | -| `ReferenceFeeUnits` | 数値 | UInt32 | 「手数料単位」に変換された`BaseFee` | -| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 | -| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 | -| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | - -**警告:** このレジャーオブジェクトのJSONフォーマットは一般的ではありません。`BaseFee`、`ReserveBase`、および`ReserveIncrement`はXRPのdrop数を示しますが、通常の[XRP指定][Currency Amount]フォーマットでは***ありません*** 。 - -## FeeSettings IDのフォーマット - -`FeeSettings`オブジェクトIDは、`FeeSettings`スペースキー(`0x0065`)のハッシュのみです。つまり、レジャーの`FeeSettings`オブジェクトのIDは常に次の値になります。 - -``` -4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651 -``` - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# FeeSettings +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120 "Source") + +`FeeSettings`オブジェク +トタイプには、現在の基本[トランザクションコスト](transaction-cost.html)と、[手数料投票](fee-voting.html)により決定する[準備金の額](reserves.html)が含まれています。各レジャーバージョンには**最大で1つの** `FeeSettings`オブジェクトが含まれています。 + +## {{currentpage.name}} JSONの例 + +`FeeSettings`オブジェクトの例。 + +```json +{ + "BaseFee": "000000000000000A", + "Flags": 0, + "LedgerEntryType": "FeeSettings", + "ReferenceFeeUnits": 10, + "ReserveBase": 20000000, + "ReserveIncrement": 5000000, + "index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651" +} +``` + +## {{currentpage.name}}フィールド + +`FeeSettings`オブジェクトのフィールドは次のとおりです。 + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|:--------------------|:----------|:------------------|:-----------------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0073`が文字列`FeeSettings`にマッピングされている場合は、このオブジェクトにレジャーの手数料設定が含まれていることを示します。 | +| `BaseFee` | 文字列 | UInt64 | 「リファレンストランザクション」の[トランザクションコスト](transaction-cost.html)(XRPのdrop数、16進数) | +| `ReferenceFeeUnits` | 数値 | UInt32 | 「手数料単位」に変換された`BaseFee` | +| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 | +| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 | +| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | + +**警告:** このレジャーオブジェクトのJSONフォーマットは一般的ではありません。`BaseFee`、`ReserveBase`、および`ReserveIncrement`はXRPのdrop数を示しますが、通常の[XRP指定][Currency Amount]フォーマットでは***ありません*** 。 + +## FeeSettings IDのフォーマット + +`FeeSettings`オブジェクトIDは、`FeeSettings`スペースキー(`0x0065`)のハッシュのみです。つまり、レジャーの`FeeSettings`オブジェクトのIDは常に次の値になります。 + +``` +4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651 +``` + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/ledgerhashes.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/ledgerhashes.ja.md index e4fa15231f..a08ce9918e 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/ledgerhashes.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/ledgerhashes.ja.md @@ -1,76 +1,76 @@ -# LedgerHashes -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L104-L108 "Source") - -(レジャーバージョンを一意に示す[「ledger hash」文字列データ型][Hash]と混同しないでください。このセクションでは、`LedgerHashes`レジャーオブジェクトタイプについて説明します。) - -`LedgerHashes`オブジェクトタイプには、このレジャーバージョン以前のレジャーの履歴がハッシュの形式で含まれています。このレジャータイプのオブジェクトは、レジャーの閉鎖処理の過程で自動的に変更されます。(このときに限り、レジャーの「状態」ツリーはトランザクションまたは疑似トランザクションなしで変更されます。)`LedgerHashes`オブジェクトの目的は、現行レジャーバージョンのみを指定して過去のレジャーのハッシュを検索できるようにすることです。過去のレジャーバージョンを最大で1回検索できます。 - -2種類の`LedgerHashes`オブジェクトがあります。2種類のオブジェクトのフィールドは同一です。各レジャーバージョンの内容は以下のとおりです。 - -- 「最近の履歴」の`LedgerHashes`オブジェクト(1つのみ) -- 現在のレジャーインデックス(レジャー履歴の長さ)に基づく正確な数の「過去の履歴」の`LedgerHashes`オブジェクト。具体的には、XRP Ledgerでは65536個のレジャーバージョンごとに新しい「過去の履歴」オブジェクトが1つ追加されます。 - -**注記:** 例外として、新しいジェネシスレジャーにはレジャー履歴がないため、`LedgerHashes`オブジェクトが含まれていません。 - -`LedgerHashes`オブジェクトの例(一部省略しています): - -```json -{ - "LedgerEntryType": "LedgerHashes", - "Flags": 0, - "FirstLedgerSequence": 2, - "LastLedgerSequence": 33872029, - "Hashes": [ - "D638208ADBD04CBB10DE7B645D3AB4BA31489379411A3A347151702B6401AA78", - "254D690864E418DDD9BCAC93F41B1F53B1AE693FC5FE667CE40205C322D1BE3B", - "A2B31D28905E2DEF926362822BC412B12ABF6942B73B72A32D46ED2ABB7ACCFA", - "AB4014846DF818A4B43D6B1686D0DE0644FE711577C5AB6F0B2A21CCEE280140", - "3383784E82A8BA45F4DD5EF4EE90A1B2D3B4571317DBAC37B859836ADDE644C1", - ... (up to 256 ledger hashes) ... - ], - "index": "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B" -} -``` - -`LedgerHashes`オブジェクトのフィールドは次のとおりです。 - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|-----------|-------------------|-------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0068`が文字列`LedgerHashes`にマッピングされている場合は、このオブジェクトがレジャーハッシュのリストであることを示します。 | -| `FirstLedgerSequence` | 数値 | UInt32 | **廃止予定** 使用しないでください。(本番環境のXRP Ledgerの「最近のハッシュ」オブジェクトでは、このフィールドの値は`2`です。これは、以前の`rippled`ソフトウェアによるものです。この値は「最近のハッシュ」オブジェクトの更新に伴い持ち越されます。このフィールドは新しい「過去の履歴」オブジェクトには含まれていません。また、新しいバージョンの`rippled`で導入された[並列ネットワーク](parallel-networks.html)の「最近のハッシュ」オブジェクトにも含まれていません。) | -| `LastLedgerSequence` | 数値 | UInt32 | このオブジェクトの`Hashes`配列の最後の要素の[レジャーインデックス][]。 | -| `Hashes` | 文字列の配列 | STI_VECTOR256 | 最大256個のレジャーハッシュからなる配列。その内容は、これが`LedgerHashes`オブジェクトのどのサブタイプであるかに応じて異なります。 | -| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | - -## 最近の履歴のLedgerHashes - -ジェネシスレジャー以降、各レジャーには「最近の履歴」サブタイプの`LedgerHashes`オブジェクトが1つだけ存在します。このオブジェクトでは、最近の256個のレジャーバージョン(または、レジャー履歴に記録されたレジャーの数が256未満の場合は256未満)を識別するハッシュが`Hashes`配列に含まれています。新しいレジャーを閉鎖するたびに、閉鎖処理の過程の一部で「最近の履歴」オブジェクトが、このレジャーバージョンの生成元である前のレジャーバージョン(このレジャーバージョンの _親レジャー_ )のハッシュで更新されます。ハッシュ数が256を超えると、最も古いハッシュが削除されます。 - -特定のレジャーの「最近の履歴」`LedgerHashes`オブジェクトを使用して、その特定のレジャーバージョンより古い256個のレジャーバージョンから、任意のレジャーインデックスのハッシュを取得できます。 - -## 過去の履歴のLedgerHashes - -「過去の履歴」の`LedgerHashes`のエントリーには、レジャー履歴全体の256個ごとのレジャーバージョン(フラッグレジャー)のハッシュがまとめて含まれています。フラッグレジャーの子が閉鎖すると、最も新しい「過去の履歴」`LedgerHashes`オブジェクトの`Hashes`配列にフラッグレジャーのハッシュが追加されます。65536個のレジャーごとに、`rippled`は新しい`LedgerHashes`オブジェクトを作成します。これにより、各「過去の履歴」オブジェクトには256個のフラッグレジャーのハッシュが含まれます。 - -**注記:** 最も古い「過去の履歴」`LedgerHashes`オブジェクトのエントリー数は255です。これは、ジェネシスレジャーのレジャーインデックスが0ではなく1であるためです。 - -「過去の履歴」`LedgerHashes`オブジェクトは[スキップリスト](https://en.wikipedia.org/wiki/Skip_list)として機能するので、任意の履歴フラッグレジャーのハッシュをそのインデックスから取得できます。さらに、フラッグレジャーの「最近の履歴」オブジェクトを使用してその他のレジャーのハッシュを取得できます。 - -## LedgerHashes IDのフォーマット -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L26-L42) - -`LedgerHashes`オブジェクトIDには2種類のフォーマットがあります。これは、オブジェクトのサブタイプが「最近の履歴」と「過去の履歴」のいずれであるかに応じて決まります。 - -**「最近の履歴」** `LedgerHashes`オブジェクトのIDは、`LedgerHashes`スペースキー(`0x0073`)の[SHA-512Half][]です。つまり「最近の履歴」のIDは常に`B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B`です。 - -**「過去の履歴」**`LedgerHashes`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -- `LedgerHashes`スペースキー(`0x0073`) -- オブジェクトの`Hashes`配列のフラッグレジャーの32ビット[レジャーインデックス][]を65536で割った値。 - - **ヒント:** 65536で割ることで最上位16ビットが維持されます。これは、「過去の履歴」オブジェクトに含まれているすべてのフラッグレジャーでのみ同一です。この点を踏まえて、フラッグレジャーのハッシュが含まれている`LedgerHashes`オブジェクトを検索できます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# LedgerHashes +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L104-L108 "Source") + +(レジャーバージョンを一意に示す[「ledger hash」文字列データ型][Hash]と混同しないでください。このセクションでは、`LedgerHashes`レジャーオブジェクトタイプについて説明します。) + +`LedgerHashes`オブジェクトタイプには、このレジャーバージョン以前のレジャーの履歴がハッシュの形式で含まれています。このレジャータイプのオブジェクトは、レジャーの閉鎖処理の過程で自動的に変更されます。(このときに限り、レジャーの「状態」ツリーはトランザクションまたは疑似トランザクションなしで変更されます。)`LedgerHashes`オブジェクトの目的は、現行レジャーバージョンのみを指定して過去のレジャーのハッシュを検索できるようにすることです。過去のレジャーバージョンを最大で1回検索できます。 + +2種類の`LedgerHashes`オブジェクトがあります。2種類のオブジェクトのフィールドは同一です。各レジャーバージョンの内容は以下のとおりです。 + +- 「最近の履歴」の`LedgerHashes`オブジェクト(1つのみ) +- 現在のレジャーインデックス(レジャー履歴の長さ)に基づく正確な数の「過去の履歴」の`LedgerHashes`オブジェクト。具体的には、XRP Ledgerでは65536個のレジャーバージョンごとに新しい「過去の履歴」オブジェクトが1つ追加されます。 + +**注記:** 例外として、新しいジェネシスレジャーにはレジャー履歴がないため、`LedgerHashes`オブジェクトが含まれていません。 + +`LedgerHashes`オブジェクトの例(一部省略しています): + +```json +{ + "LedgerEntryType": "LedgerHashes", + "Flags": 0, + "FirstLedgerSequence": 2, + "LastLedgerSequence": 33872029, + "Hashes": [ + "D638208ADBD04CBB10DE7B645D3AB4BA31489379411A3A347151702B6401AA78", + "254D690864E418DDD9BCAC93F41B1F53B1AE693FC5FE667CE40205C322D1BE3B", + "A2B31D28905E2DEF926362822BC412B12ABF6942B73B72A32D46ED2ABB7ACCFA", + "AB4014846DF818A4B43D6B1686D0DE0644FE711577C5AB6F0B2A21CCEE280140", + "3383784E82A8BA45F4DD5EF4EE90A1B2D3B4571317DBAC37B859836ADDE644C1", + ... (up to 256 ledger hashes) ... + ], + "index": "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B" +} +``` + +`LedgerHashes`オブジェクトのフィールドは次のとおりです。 + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|-------------------|-----------|-------------------|-------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0068`が文字列`LedgerHashes`にマッピングされている場合は、このオブジェクトがレジャーハッシュのリストであることを示します。 | +| `FirstLedgerSequence` | 数値 | UInt32 | **廃止予定** 使用しないでください。(本番環境のXRP Ledgerの「最近のハッシュ」オブジェクトでは、このフィールドの値は`2`です。これは、以前の`rippled`ソフトウェアによるものです。この値は「最近のハッシュ」オブジェクトの更新に伴い持ち越されます。このフィールドは新しい「過去の履歴」オブジェクトには含まれていません。また、新しいバージョンの`rippled`で導入された[並列ネットワーク](parallel-networks.html)の「最近のハッシュ」オブジェクトにも含まれていません。) | +| `LastLedgerSequence` | 数値 | UInt32 | このオブジェクトの`Hashes`配列の最後の要素の[レジャーインデックス][]。 | +| `Hashes` | 文字列の配列 | STI_VECTOR256 | 最大256個のレジャーハッシュからなる配列。その内容は、これが`LedgerHashes`オブジェクトのどのサブタイプであるかに応じて異なります。 | +| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 | + +## 最近の履歴のLedgerHashes + +ジェネシスレジャー以降、各レジャーには「最近の履歴」サブタイプの`LedgerHashes`オブジェクトが1つだけ存在します。このオブジェクトでは、最近の256個のレジャーバージョン(または、レジャー履歴に記録されたレジャーの数が256未満の場合は256未満)を識別するハッシュが`Hashes`配列に含まれています。新しいレジャーを閉鎖するたびに、閉鎖処理の過程の一部で「最近の履歴」オブジェクトが、このレジャーバージョンの生成元である前のレジャーバージョン(このレジャーバージョンの _親レジャー_ )のハッシュで更新されます。ハッシュ数が256を超えると、最も古いハッシュが削除されます。 + +特定のレジャーの「最近の履歴」`LedgerHashes`オブジェクトを使用して、その特定のレジャーバージョンより古い256個のレジャーバージョンから、任意のレジャーインデックスのハッシュを取得できます。 + +## 過去の履歴のLedgerHashes + +「過去の履歴」の`LedgerHashes`のエントリーには、レジャー履歴全体の256個ごとのレジャーバージョン(フラッグレジャー)のハッシュがまとめて含まれています。フラッグレジャーの子が閉鎖すると、最も新しい「過去の履歴」`LedgerHashes`オブジェクトの`Hashes`配列にフラッグレジャーのハッシュが追加されます。65536個のレジャーごとに、`rippled`は新しい`LedgerHashes`オブジェクトを作成します。これにより、各「過去の履歴」オブジェクトには256個のフラッグレジャーのハッシュが含まれます。 + +**注記:** 最も古い「過去の履歴」`LedgerHashes`オブジェクトのエントリー数は255です。これは、ジェネシスレジャーのレジャーインデックスが0ではなく1であるためです。 + +「過去の履歴」`LedgerHashes`オブジェクトは[スキップリスト](https://en.wikipedia.org/wiki/Skip_list)として機能するので、任意の履歴フラッグレジャーのハッシュをそのインデックスから取得できます。さらに、フラッグレジャーの「最近の履歴」オブジェクトを使用してその他のレジャーのハッシュを取得できます。 + +## LedgerHashes IDのフォーマット +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L26-L42) + +`LedgerHashes`オブジェクトIDには2種類のフォーマットがあります。これは、オブジェクトのサブタイプが「最近の履歴」と「過去の履歴」のいずれであるかに応じて決まります。 + +**「最近の履歴」** `LedgerHashes`オブジェクトのIDは、`LedgerHashes`スペースキー(`0x0073`)の[SHA-512ハーフ][]です。つまり「最近の履歴」のIDは常に`B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B`です。 + +**「過去の履歴」**`LedgerHashes`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +- `LedgerHashes`スペースキー(`0x0073`) +- オブジェクトの`Hashes`配列のフラッグレジャーの32ビット[レジャーインデックス][]を65536で割った値。 + + **ヒント:** 65536で割ることで最上位16ビットが維持されます。これは、「過去の履歴」オブジェクトに含まれているすべてのフラッグレジャーでのみ同一です。この点を踏まえて、フラッグレジャーのハッシュが含まれている`LedgerHashes`オブジェクトを検索できます。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/offer.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/offer.ja.md index 48625635b6..d41062b3d5 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/offer.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/offer.ja.md @@ -1,74 +1,74 @@ -# Offer -[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L57 "Source") - -`Offer`オブジェクトタイプは、XRP Ledgerの分散型取引所での(従来は _オーダー_ と呼ばれていた)通貨取引オファーを記述します。[OfferCreateトランザクション][]は、レジャーにすでに含まれている他のオファーを消費することでは完全にオファーを実行できない場合に、レジャーに`Offer`オブジェクトを作成します。 - -オファーがレジャーに存在している間に、ネットワークの他のアクティビティによってオファーが資金化されないことがあります。ただし`rippled`ではトランザクション処理において資金化されないオファーはすべて自動的に取り除かれます(レジャー状態を変更できるのはトランザクションだけであることから、これはトランザクション処理で _のみ_ 行われます)。 - -詳細は、[オファー](offers.html)を参照してください。 - -## {{currentpage.name}}のJSONの例 - -```json -{ - "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", - "BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", - "PreviousTxnLgrSeq": 14524914, - "Sequence": 866, - "TakerGets": { - "currency": "XAG", - "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", - "value": "37" - }, - "TakerPays": "79550000000", - "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" -} -``` - -## {{currentpage.name}}のフィールド - -`Offer`オブジェクトのフィールドを次に示します。 - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|-------------------|-----------|---------------|-------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x006F`(文字列`Offer`にマッピング)の場合は、このオブジェクトが通貨取引オーダーを記述することを示します。 | -| `Flags` | 数値 | UInt32 | このオファーに対して有効になっているブール値フラグのビットマップ。 | -| `Account` | 文字列 | AccountID | このオファーを所有するアカウントのアドレス。 | -| `Sequence` | 数値 | UInt32 | `Offer`オブジェクトを作成した[OfferCreate][]トランザクションの`Sequence` 値。`Account`とこのフィールドの組み合わせによってこのオファーが識別されます。 | -| `TakerPays` | 文字列またはオブジェクト | Amount | オファー作成者が要求する残額と通貨の種類。 | -| `TakerGets` | 文字列またはオブジェクト | Amount | オファー作成者が提供する残額と通貨の種類。 | -| `BookDirectory` | 文字列 | UInt256 | このオファーにリンクしている[オファーディレクトリー](directorynode.html)のID。 | -| `BookNode` | 文字列 | UInt64 | オファーディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオファーには、オファーを含む所有者ディレクトリーへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | -| `Expiration` | 数値 | UInt32 | (省略可)このオファーが資金化されなかったとみなされる時刻を示します。詳細は、[時間の指定][]を参照してください。 | - -## Offerフラグ - -[OfferCreateトランザクション][]でOfferオブジェクトを作成するときに有効化または無効化できる各種オプションがあります。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 _lsf_ で始まる名前が付いています。 - -`Offer` オブジェクトには以下のフラグ値を指定できます。 - -| フラグ名 | 16進値 | 10進値 | 説明 | 対応する[OfferCreateフラグ](offercreate.html#offercreateフラグ) | -|-----------|-----------|---------------|-------------|------------------------| -| lsfPassive | 0x00010000 | 65536 | オブジェクトはパッシブオファーとして配置されました。レジャー内のオブジェクトには影響しません。 | tfPassive | -| lsfSell | 0x00020000 | 131072 | オブジェクトはセルオファーとして配置されました。レジャー内のオブジェクトへの影響はありません。これは、要求したレートよりも良いレートを得た場合にのみtfSellが関連するためです。この状況はオブジェクトがレジャーに記録された後では発生することはありません。 | tfSell | - -## オファーIDのフォーマット - -`Offer`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* Offerスペースキー(`0x006F`) -* オファーを行うアカウントのAccountID -* オファーを作成した[OfferCreateトランザクション][]のシーケンス番号。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Offer +[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L57 "Source") + +`Offer`オブジェクトタイプは、XRP Ledgerの分散型取引所での(従来は _オーダー_ と呼ばれていた)通貨取引オファーを記述します。[OfferCreateトランザクション][]は、レジャーにすでに含まれている他のオファーを消費することでは完全にオファーを実行できない場合に、レジャーに`Offer`オブジェクトを作成します。 + +オファーがレジャーに存在している間に、ネットワークの他のアクティビティによってオファーが資金化されないことがあります。ただし`rippled`ではトランザクション処理において資金化されないオファーはすべて自動的に取り除かれます(レジャー状態を変更できるのはトランザクションだけであることから、これはトランザクション処理で _のみ_ 行われます)。 + +詳細は、[オファー](offers.html)を参照してください。 + +## {{currentpage.name}}のJSONの例 + +```json +{ + "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", + "BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", + "PreviousTxnLgrSeq": 14524914, + "Sequence": 866, + "TakerGets": { + "currency": "XAG", + "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", + "value": "37" + }, + "TakerPays": "79550000000", + "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" +} +``` + +## {{currentpage.name}}のフィールド + +`Offer`オブジェクトのフィールドを次に示します。 + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|-------------------|-----------|---------------|-------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x006F`(文字列`Offer`にマッピング)の場合は、このオブジェクトが通貨取引オーダーを記述することを示します。 | +| `Flags` | 数値 | UInt32 | このオファーに対して有効になっているブール値フラグのビットマップ。 | +| `Account` | 文字列 | AccountID | このオファーを所有するアカウントのアドレス。 | +| `Sequence` | 数値 | UInt32 | `Offer`オブジェクトを作成した[OfferCreate][]トランザクションの`Sequence` 値。`Account`とこのフィールドの組み合わせによってこのオファーが識別されます。 | +| `TakerPays` | 文字列またはオブジェクト | Amount | オファー作成者が要求する残額と通貨の種類。 | +| `TakerGets` | 文字列またはオブジェクト | Amount | オファー作成者が提供する残額と通貨の種類。 | +| `BookDirectory` | 文字列 | UInt256 | このオファーにリンクしている[オファーディレクトリー](directorynode.html)のID。 | +| `BookNode` | 文字列 | UInt64 | オファーディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオファーには、オファーを含む所有者ディレクトリーへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | +| `Expiration` | 数値 | UInt32 | (省略可)このオファーが資金化されなかったとみなされる時刻を示します。詳細は、[時間の指定][]を参照してください。 | + +## Offerフラグ + +[OfferCreateトランザクション][]でOfferオブジェクトを作成するときに有効化または無効化できる各種オプションがあります。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 _lsf_ で始まる名前が付いています。 + +`Offer` オブジェクトには以下のフラグ値を指定できます。 + +| フラグ名 | 16進値 | 10進値 | 説明 | 対応する[OfferCreateフラグ](offercreate.html#offercreateフラグ) | +|-----------|-----------|---------------|-------------|------------------------| +| lsfPassive | 0x00010000 | 65536 | オブジェクトはパッシブオファーとして配置されました。レジャー内のオブジェクトには影響しません。 | tfPassive | +| lsfSell | 0x00020000 | 131072 | オブジェクトはセルオファーとして配置されました。レジャー内のオブジェクトへの影響はありません。これは、要求したレートよりも良いレートを得た場合にのみtfSellが関連するためです。この状況はオブジェクトがレジャーに記録された後では発生することはありません。 | tfSell | + +## オファーIDのフォーマット + +`Offer`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* Offerスペースキー(`0x006F`) +* オファーを行うアカウントのAccountID +* オファーを作成した[OfferCreateトランザクション][]のシーケンス番号。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/paychannel.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/paychannel.ja.md index 3e6506f5d5..df1c076eff 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/paychannel.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/paychannel.ja.md @@ -1,101 +1,101 @@ -# PayChannel -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L141-L155 "Source") - -_([PayChan Amendment][]が必要です。)_ - -`PayChannel`オブジェクトタイプは、Payment Channelを表します。Payment Channelにより、レジャー外で少額のXRPを迅速に支払うことができます。このような支払は、コンセンサスレジャーにより後日調整できます。Payment Channelは、このChannelが閉鎖されるまでは、特定の宛先アドレスに対してのみ支払可能なXRPの残高を保有します。Channelの閉鎖時に、未使用のXRPはChannelの所有者(Channelを作成し、資金を供給した支払元アドレス)に返金されます。 - -[PaymentChannelCreateトランザクション][]タイプは、`PayChannel`オブジェクトを作成します。[PaymentChannelFundトランザクション][]タイプと[PaymentChannelClaimトランザクション][]タイプは、既存の`PayChannel`オブジェクトを変更します。 - -有効期限切れになったPayment Channelは、まずレジャーに残ります。これは、レジャーの内容を変更できるのは新しいトランザクションだけであるためです。有効期限の経過後にトランザクションがPayment Channelにアクセスすると、トランザクション処理によりそのPayment Channelは自動的に閉鎖されます。有効期限切れのChannelを閉鎖して未使用のXRPを所有者に返金するには、一部のアドレスがそのChannelにアクセスする新しいPaymentChannelClaimトランザクションまたはPaymentChannelFundトランザクションを送信する必要があります。 - -Payment Channelの使用例については、[Payment Channelのチュートリアル](use-payment-channels.html)を参照してください。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", - "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": "4325800", - "Balance": "2323423", - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", - "SettleDelay": 3600, - "Expiration": 536027313, - "CancelAfter": 536891313, - "SourceTag": 0, - "DestinationTag": 1002341, - "Flags": 0, - "LedgerEntryType": "PayChannel", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", - "PreviousTxnLgrSeq": 14524914, - "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" -} -``` - -## {{currentpage.name}}フィールド - -`PayChannel`オブジェクトのフィールドは次のとおりです。 - -| 名前 | JSONの型 | [内部の型][] | 説明 | -|:--------------------|:----------|:------------------|:-----------------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0078`が文字列`PayChannel`にマッピングされている場合は、このオブジェクトがPayment Channelオブジェクトであることを示します。 | -| `Account` | 文字列 | AccountID | このPayment Channelを所有する支払元アドレス。これは、Channelを作成したトランザクションの送信側アドレスから取得されます。 | -| `Destination` | 文字列 | AccountID | このPayment Channelの宛先アドレス。Payment Channelが開いている場合、このアドレスは、このChannelからXRPを受領できる唯一のアドレスです。これは、Channelを作成したトランザクションの`Destination`フィールドから取得されます。 | -| `Amount` | 文字列 | Amount | このChannelに割り当てられている [XRP、drop単位][]の合計です。これには宛先アドレスに支払われたXRPも含まれます。最初にChannelを作成したトランザクションにより設定され、支払元アドレスがPaymentChannelFundトランザクションを送信する場合に増加できます。 | -| `Balance` | 文字列 | Amount | このChannelがすでに支払った[XRP、drop単位][]の合計。この値と`Amount`フィールドの差異は、PaymentChannelClaimトランザクションの宛先アドレスに対して支払うことができるXRPの量を示します。Channelが閉鎖すると、残りの差額は支払元アドレスに返されます。 | -| `PublicKey` | 文字列 | PubKey | このChannelに対するクレームの署名に使用できるキーペアの公開鍵(16進数)。有効なsecp256k1公開鍵またはEd25519公開鍵を指定できます。Channelを作成したトランザクションによって設定されます。Channelに対するクレームに使用される公開鍵と一致している必要があります。Channelの支払元アドレスは、署名付きクレームなしでこのChannelから宛先にXRPを送金することもできます。 | -| `SettleDelay` | 数値 | UInt32 | ChannelにXRPがまだある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する秒数。値が小さい場合、支払元アドレスがChannelの閉鎖を要求した後で、宛先アドレスが未処理のクレームを精算できる時間が短くなります。32ビットの符号なし整数に収まる値(0~2^32-1)であれば任意の値を指定できます。これは、Channelを作成するトランザクションにより設定されます。 | -| `OwnerNode` | 文字列 | UInt64 | 支払元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | -| `Flags` | 数値 | UInt32 | このPayment Channelに対して有効になっているブールフラグのビットマップ。現在、プロトコルでは`PayChannel` オブジェクトのフラグは定義されていません。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ このPayment Channelの変更可能な有効期限([Rippleエポックからの経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)を参照してください。 | -| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このPayment Channelの不変の有効期限([Rippleエポックからの経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。これは、Channelを作成するトランザクションによりオプションで設定され、変更できません。 | -| `SourceTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの支払元(所有者のアドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | - - -## Channel有効期限の設定 - -Payment Channelの`Expiration`フィールドは、`CancelAfter`フィールドが表す不変の有効期限とは対照的な変更可能な有効期限です。Channelの有効期限は常に、前のレジャーの[`close_time`フィールド](ledger-header.html)を基準にしているものとみなされます。`PayChannel`オブジェクトの作成時には、`Expiration`フィールドが省略されます。`PayChannel`オブジェクトの`Expiration`フィールドはさまざまな方法で更新できます。要約すると、Channelが最初の閉鎖試行操作の後、`SettleDelay`秒以上常に開いたままであれば、Channelの支払元アドレスはChannelの`Expiration`を自由に設定できます。 - -### 支払元アドレス - -支払元アドレスは、PaymentChannelFundトランザクションタイプを使用して直接`Expiration`を設定できます。新しい値は、以下の早い方の値よりも前であってはなりません。 - -- 現在の`Expiration`値(設定されている場合) -- 前のレジャーの閉鎖時刻にChannelの`SettleDelay`を加算した値 - -つまり、有効期限がすでに設定されている場合、支払元アドレスは常に`Expiration`を遅らせることができます。支払元は、設定する新しい値が`SettleDelay`の秒数以上の値である限り、`Expiration`を早い値にするか、または`Expiration`がまだ設定されていない場合にこれを設定することができます。支払元アドレスが無効な`Expiration`の日付を設定しようとすると、トランザクションはエラーコード`temBAD_EXPIRATION`で失敗します。 - -支払元アドレスはPaymentChannelClaimトランザクションタイプの`tfClose`フラグを使用して`Expiration`を設定することもできます。このフラグが有効な場合、レジャーは自動的に`Expiration`を以下のいずれかの早い方の値に設定します。 - -- 現在の`Expiration`値(設定されている場合) -- 前のレジャーの閉鎖時刻にChannelの`SettleDelay`を加算した値 - -支払元アドレスはPaymentChannelClaimトランザクションタイプの`tfRenew`フラグを使用して`Expiration`を削除できます。 - -### 宛先アドレス - -宛先アドレスは `Expiration`フィールドを設定できません。ただし、宛先アドレスはPaymentChannelClaimの`tfClose`フラグを使用してChannelを即時に閉鎖できます。 - -### その他のアドレス - -その他のアドレスが`Expiration`フィールドを設定しようとすると、トランザクションはエラーコード`tecNO_PERMISSION`で失敗します。ただし、Channelがすでに有効期限切れになっている場合、このトランザクションでChannelが閉鎖し、その結果は`tesSUCCESS`になります。 - - -## PayChannel IDのフォーマット - -`PayChannel`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* PayChannelスペースキー(`0x0078`) -* 支払元アカウントのAccountID -* 宛先アカウントのAccountID -* Channelを作成したトランザクションのシーケンス番号 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# PayChannel +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L141-L155 "Source") + +_([PayChan Amendment][]が必要です。)_ + +`PayChannel`オブジェクトタイプは、Payment Channelを表します。Payment Channelにより、レジャー外で少額のXRPを迅速に支払うことができます。このような支払は、コンセンサスレジャーにより後日調整できます。Payment Channelは、このChannelが閉鎖されるまでは、特定の宛先アドレスに対してのみ支払可能なXRPの残高を保有します。Channelの閉鎖時に、未使用のXRPはChannelの所有者(Channelを作成し、資金を供給した支払元アドレス)に返金されます。 + +[PaymentChannelCreateトランザクション][]タイプは、`PayChannel`オブジェクトを作成します。[PaymentChannelFundトランザクション][]タイプと[PaymentChannelClaimトランザクション][]タイプは、既存の`PayChannel`オブジェクトを変更します。 + +有効期限切れになったPayment Channelは、まずレジャーに残ります。これは、レジャーの内容を変更できるのは新しいトランザクションだけであるためです。有効期限の経過後にトランザクションがPayment Channelにアクセスすると、トランザクション処理によりそのPayment Channelは自動的に閉鎖されます。有効期限切れのChannelを閉鎖して未使用のXRPを所有者に返金するには、一部のアドレスがそのChannelにアクセスする新しいPaymentChannelClaimトランザクションまたはPaymentChannelFundトランザクションを送信する必要があります。 + +Payment Channelの使用例については、[Payment Channelのチュートリアル](use-payment-channels.html)を参照してください。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt", + "Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": "4325800", + "Balance": "2323423", + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", + "SettleDelay": 3600, + "Expiration": 536027313, + "CancelAfter": 536891313, + "SourceTag": 0, + "DestinationTag": 1002341, + "Flags": 0, + "LedgerEntryType": "PayChannel", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF", + "PreviousTxnLgrSeq": 14524914, + "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797" +} +``` + +## {{currentpage.name}}フィールド + +`PayChannel`オブジェクトのフィールドは次のとおりです。 + +| 名前 | JSONの型 | [内部の型][] | 説明 | +|:--------------------|:----------|:------------------|:-----------------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0078`が文字列`PayChannel`にマッピングされている場合は、このオブジェクトがPayment Channelオブジェクトであることを示します。 | +| `Account` | 文字列 | AccountID | このPayment Channelを所有する支払元アドレス。これは、Channelを作成したトランザクションの送信側アドレスから取得されます。 | +| `Destination` | 文字列 | AccountID | このPayment Channelの宛先アドレス。Payment Channelが開いている場合、このアドレスは、このChannelからXRPを受領できる唯一のアドレスです。これは、Channelを作成したトランザクションの`Destination`フィールドから取得されます。 | +| `Amount` | 文字列 | Amount | このChannelに割り当てられている [XRP、drop単位][]の合計です。これには宛先アドレスに支払われたXRPも含まれます。最初にChannelを作成したトランザクションにより設定され、支払元アドレスがPaymentChannelFundトランザクションを送信する場合に増加できます。 | +| `Balance` | 文字列 | Amount | このChannelがすでに支払った[XRP、drop単位][]の合計。この値と`Amount`フィールドの差異は、PaymentChannelClaimトランザクションの宛先アドレスに対して支払うことができるXRPの量を示します。Channelが閉鎖すると、残りの差額は支払元アドレスに返されます。 | +| `PublicKey` | 文字列 | PubKey | このChannelに対するクレームの署名に使用できるキーペアの公開鍵(16進数)。有効なsecp256k1公開鍵またはEd25519公開鍵を指定できます。Channelを作成したトランザクションによって設定されます。Channelに対するクレームに使用される公開鍵と一致している必要があります。Channelの支払元アドレスは、署名付きクレームなしでこのChannelから宛先にXRPを送金することもできます。 | +| `SettleDelay` | 数値 | UInt32 | ChannelにXRPがまだある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する秒数。値が小さい場合、支払元アドレスがChannelの閉鎖を要求した後で、宛先アドレスが未処理のクレームを精算できる時間が短くなります。32ビットの符号なし整数に収まる値(0~2^32-1)であれば任意の値を指定できます。これは、Channelを作成するトランザクションにより設定されます。 | +| `OwnerNode` | 文字列 | UInt64 | 支払元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | +| `Flags` | 数値 | UInt32 | このPayment Channelに対して有効になっているブールフラグのビットマップ。現在、プロトコルでは`PayChannel` オブジェクトのフラグは定義されていません。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ このPayment Channelの変更可能な有効期限([Rippleエポックからの経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)を参照してください。 | +| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このPayment Channelの不変の有効期限([Rippleエポックからの経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。これは、Channelを作成するトランザクションによりオプションで設定され、変更できません。 | +| `SourceTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの支払元(所有者のアドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | + + +## Channel有効期限の設定 + +Payment Channelの`Expiration`フィールドは、`CancelAfter`フィールドが表す不変の有効期限とは対照的な変更可能な有効期限です。Channelの有効期限は常に、前のレジャーの[`close_time`フィールド](ledger-header.html)を基準にしているものとみなされます。`PayChannel`オブジェクトの作成時には、`Expiration`フィールドが省略されます。`PayChannel`オブジェクトの`Expiration`フィールドはさまざまな方法で更新できます。要約すると、Channelが最初の閉鎖試行操作の後、`SettleDelay`秒以上常に開いたままであれば、Channelの支払元アドレスはChannelの`Expiration`を自由に設定できます。 + +### 支払元アドレス + +支払元アドレスは、PaymentChannelFundトランザクションタイプを使用して直接`Expiration`を設定できます。新しい値は、以下の早い方の値よりも前であってはなりません。 + +- 現在の`Expiration`値(設定されている場合) +- 前のレジャーの閉鎖時刻にChannelの`SettleDelay`を加算した値 + +つまり、有効期限がすでに設定されている場合、支払元アドレスは常に`Expiration`を遅らせることができます。支払元は、設定する新しい値が`SettleDelay`の秒数以上の値である限り、`Expiration`を早い値にするか、または`Expiration`がまだ設定されていない場合にこれを設定することができます。支払元アドレスが無効な`Expiration`の日付を設定しようとすると、トランザクションはエラーコード`temBAD_EXPIRATION`で失敗します。 + +支払元アドレスはPaymentChannelClaimトランザクションタイプの`tfClose`フラグを使用して`Expiration`を設定することもできます。このフラグが有効な場合、レジャーは自動的に`Expiration`を以下のいずれかの早い方の値に設定します。 + +- 現在の`Expiration`値(設定されている場合) +- 前のレジャーの閉鎖時刻にChannelの`SettleDelay`を加算した値 + +支払元アドレスはPaymentChannelClaimトランザクションタイプの`tfRenew`フラグを使用して`Expiration`を削除できます。 + +### 宛先アドレス + +宛先アドレスは `Expiration`フィールドを設定できません。ただし、宛先アドレスはPaymentChannelClaimの`tfClose`フラグを使用してChannelを即時に閉鎖できます。 + +### その他のアドレス + +その他のアドレスが`Expiration`フィールドを設定しようとすると、トランザクションはエラーコード`tecNO_PERMISSION`で失敗します。ただし、Channelがすでに有効期限切れになっている場合、このトランザクションでChannelが閉鎖し、その結果は`tesSUCCESS`になります。 + + +## PayChannel IDのフォーマット + +`PayChannel`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* PayChannelスペースキー(`0x0078`) +* 支払元アカウントのAccountID +* 宛先アカウントのAccountID +* Channelを作成したトランザクションのシーケンス番号 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/ripplestate.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/ripplestate.ja.md index a14c26b9ee..9bf9951e9b 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/ripplestate.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/ripplestate.ja.md @@ -1,109 +1,109 @@ -# RippleState -[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L70 "Source") - -`RippleState`オブジェクトタイプは、1つの通貨で2つのアカウントを接続します。概念的には`RippleState`オブジェクトは、アカウント間の2つの _トラストライン_ を表し、各アカウント側から1つずつ確立されます。各アカウントの`RippleState`オブジェクト設定は、各アカウント側で変更できますが、残高については単一の値を両アカウント間で共有します。完全にデフォルト状態のトラストラインは、存在しないトラストラインと同様に見なされます。このため`rippled` は、プロパティがすべてデフォルトである`RippleState`オブジェクトを削除します。 - -XRP Ledgerではどのアカウントにも権限がないため、`RippleState`オブジェクトはアカウントアドレスを数値順にソートし、正規の形式になるようにします。数値順の低いアドレスは「低位アカウント」と見なされ、数値順の高いアドレスは「高位アカウント」と見なされます。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-10" - }, - "Flags": 393216, - "HighLimit": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "110" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "value": "0" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879", - "PreviousTxnLgrSeq": 14090896, - "index": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B" -} -``` - -## {{currentpage.name}}フィールド - -`RippleState`オブジェクトのフィールドは次のとおりです。 - -| 名前 | JSONの型 | 内部の型 | 説明 | -|-----------------|-----------|---------------|-------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0072`が文字列`RippleState`にマッピングされている場合は、このオブジェクトがRippleStateオブジェクトであることを示します。 | -| `Flags` | 数値 | UInt32 | このオブジェクトに対して有効になっているブールオプションのビットマップ。 | -| `Balance` | オブジェクト | Amount | 低位アカウントからみたトラストラインの残高。残高がマイナスの場合、低位アカウントから高位アカウントに対して通貨が発行されています。この場合のイシュアーは常に中立値[ACCOUNT_ONE](accounts.html#特別なアドレス)に設定されます。 | -| `LowLimit` | オブジェクト | Amount | 低位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した低位アカウントのアドレスです。 | -| `HighLimit` | オブジェクト | Amount | 高位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した高位アカウントのアドレスです。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | -| `LowNode` | 文字列 | UInt64 | (一部の履歴レジャーでは省略されます)低位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `HighNode` | 文字列 | UInt64 | (一部の履歴レジャーでは省略されます)高位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `LowQualityIn` | 数値 | UInt32 | (省略可)暗黙の比率(LowQualityIn:1,000,000,000)で整数として低位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | -| `LowQualityOut` | 数値 | UInt32 | (省略可)暗黙の比率(LowQualityOut:1,000,000,000)で整数として低位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | -| `HighQualityIn` | 数値 | UInt32 | (省略可)暗黙の比率(HighQualityIn:1,000,000,000)で整数として高位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | -| `HighQualityOut` | 数値 | UInt32 | (省略可)暗黙の比率(HighQualityOut:1,000,000,000)で整数として高位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | - -## RippleStateのフラグ - -トラストラインに対して有効化または無効化できる各種オプションがあります。これらのオプションを変更するには、[TrustSetトランザクション][]を使用します。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 _lsf_ で始まる名前が付いています。 - -RippleStateオブジェクトには以下のフラグ値を指定できます。 - -| フラグ名 | 16進数値 | 10進数値 | 説明 | 対応する[TrustSetフラグ](trustset.html#trustsetのフラグ) | -|-----------|-----------|---------------|-------------|------------------------| -| lsfLowReserve | 0x00010000 | 65536 | このRippleStateオブジェクトは[低位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) | -| lsfHighReserve | 0x00020000 |131072 | このRippleStateオブジェクトは[高位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) | -| lsfLowAuth | 0x00040000 | 262144 | 低位アカウントにより、高位アカウントが低位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth | -| lsfHighAuth | 0x00080000 | 524288 | 高位アカウントにより、低位アカウントが高位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth | -| lsfLowNoRipple | 0x00100000 | 1048576 | 低位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple | -| lsfHighNoRipple | 0x00200000 | 2097152 | 高位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple | -| lsfLowFreeze | 0x00400000 | 4194304 | 低位アカウントがトラストラインを凍結しており、高位アカウントから資産を移動できません。 | tfSetFreeze | -| lsfHighFreeze | 0x00800000 | 8388608 | 高位アカウントがトラストラインを凍結しており、低位アカウントから資産を移動できません。 | tfSetFreeze | - -## 所有者の準備金への資金供給 - -アカウントがトラストラインをデフォルト以外の状態に変更した場合、そのトラストラインはアカウントの[所有者準備金](reserves.html#所有者準備金)に反映されます。RippleStateオブジェクトの`lsfLowReserve`フラグと`lsfHighReserve`フラグは、いずれのアカウントが所有者準備金に責任があるかを示します。`rippled`サーバーは、トラストラインの変更時にこれらのフラグを自動的に設定します。 - -トラストラインのデフォルト以外の状態に反映される値は以下の通りです。 - -| 高位アカウントに責任がある場合の条件 | 低位アカウントに責任がある場合の条件 | -|-----------------------|----------------------| -| `Balance` がマイナスである(高位アカウントが通貨を保有している) | `Balance` がプラスである(低位アカウントが通貨を保有している) | -| `HighLimit` が `0` ではない | `LowLimit` が `0` ではない | -| `LowQualityIn` が`0`でも `1000000000` でもない | `HighQualityIn` が`0`でも `1000000000` でもない | -| `LowQualityOut` が`0`でも `1000000000` でもない | `HighQualityOut` が`0`でも `1000000000` でもない | -| **lsfHighNoRipple**フラグがデフォルト状態ではない | **lsfLowNoRipple**フラグがデフォルト状態ではない | -| **lsfHighFreeze**フラグが有効である | **lsfLowFreeze**フラグが有効である | - -**lsfLowAuth**フラグと**lsfHighAuth**フラグは無効にできないため、デフォルト状態に不利に作用することはありません。 - -2つのNoRippleフラグのデフォルト状態は、対応するAccountRootオブジェクトの[lsfDefaultRippleフラグ](accountroot.html#accountrootフラグ)の状態によって異なります。DefaultRippleが無効の場合(デフォルト)、アカウントのすべてのトラストラインのlsfNoRippleフラグはデフォルトで _有効_ となります。アカウントがDefaultRippleを有効にすると、アカウントのトラストラインのlsfNoRippleフラグはデフォルトで _無効_ となります(Ripplingが有効になります)。 - -**注記:** `rippled`バージョン0.27.3(2015年3月10日)にてDefaultRippleフラグが導入される前は、すべてのトラストラインはデフォルトで両方のNoRippleフラグが無効になっていました(Ripplingは有効)。 - -`rippled`は遅延評価を使用して所有者準備金を計算しています。つまり、アカウントがDefaultRippleフラグを変更してそのすべてのトラストラインのデフォルト状態を変更しても、変更後しばらくの間はアカウントの準備金が同じ状態で維持されます。アカウントがトラストラインを変更すると、`rippled`は個々のトラストラインがデフォルト状態にあるか否かや、所有者準備金への資金供給の必要性を再評価します。 - -## RippleState IDのフォーマット - -RippleStateオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512Half][]です。 - -* RippleStateスペースキー(`0x0072`) -* 低位アカウントのAccountID -* 高位アカウントのAccountID -* トラストラインの160ビットの通貨コード - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# RippleState +[[ソース]
](https://github.com/ripple/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L70 "Source") + +`RippleState`オブジェクトタイプは、1つの通貨で2つのアカウントを接続します。概念的には`RippleState`オブジェクトは、アカウント間の2つの _トラストライン_ を表し、各アカウント側から1つずつ確立されます。各アカウントの`RippleState`オブジェクト設定は、各アカウント側で変更できますが、残高については単一の値を両アカウント間で共有します。完全にデフォルト状態のトラストラインは、存在しないトラストラインと同様に見なされます。このため`rippled` は、プロパティがすべてデフォルトである`RippleState`オブジェクトを削除します。 + +XRP Ledgerではどのアカウントにも権限がないため、`RippleState`オブジェクトはアカウントアドレスを数値順にソートし、正規の形式になるようにします。数値順の低いアドレスは「低位アカウント」と見なされ、数値順の高いアドレスは「高位アカウント」と見なされます。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-10" + }, + "Flags": 393216, + "HighLimit": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "110" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879", + "PreviousTxnLgrSeq": 14090896, + "index": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B" +} +``` + +## {{currentpage.name}}フィールド + +`RippleState`オブジェクトのフィールドは次のとおりです。 + +| 名前 | JSONの型 | 内部の型 | 説明 | +|-----------------|-----------|---------------|-------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0072`が文字列`RippleState`にマッピングされている場合は、このオブジェクトがRippleStateオブジェクトであることを示します。 | +| `Flags` | 数値 | UInt32 | このオブジェクトに対して有効になっているブールオプションのビットマップ。 | +| `Balance` | オブジェクト | Amount | 低位アカウントからみたトラストラインの残高。残高がマイナスの場合、低位アカウントから高位アカウントに対して通貨が発行されています。この場合のイシュアーは常に中立値[ACCOUNT_ONE](accounts.html#特別なアドレス)に設定されます。 | +| `LowLimit` | オブジェクト | Amount | 低位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した低位アカウントのアドレスです。 | +| `HighLimit` | オブジェクト | Amount | 高位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した高位アカウントのアドレスです。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | +| `LowNode` | 文字列 | UInt64 | (一部の履歴レジャーでは省略されます)低位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `HighNode` | 文字列 | UInt64 | (一部の履歴レジャーでは省略されます)高位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `LowQualityIn` | 数値 | UInt32 | (省略可)暗黙の比率(LowQualityIn:1,000,000,000)で整数として低位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | +| `LowQualityOut` | 数値 | UInt32 | (省略可)暗黙の比率(LowQualityOut:1,000,000,000)で整数として低位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | +| `HighQualityIn` | 数値 | UInt32 | (省略可)暗黙の比率(HighQualityIn:1,000,000,000)で整数として高位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 | +| `HighQualityOut` | 数値 | UInt32 | (省略可)暗黙の比率(HighQualityOut:1,000,000,000)で整数として高位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 | + +## RippleStateのフラグ + +トラストラインに対して有効化または無効化できる各種オプションがあります。これらのオプションを変更するには、[TrustSetトランザクション][]を使用します。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 _lsf_ で始まる名前が付いています。 + +RippleStateオブジェクトには以下のフラグ値を指定できます。 + +| フラグ名 | 16進数値 | 10進数値 | 説明 | 対応する[TrustSetフラグ](trustset.html#trustsetのフラグ) | +|-----------|-----------|---------------|-------------|------------------------| +| lsfLowReserve | 0x00010000 | 65536 | このRippleStateオブジェクトは[低位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) | +| lsfHighReserve | 0x00020000 |131072 | このRippleStateオブジェクトは[高位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) | +| lsfLowAuth | 0x00040000 | 262144 | 低位アカウントにより、高位アカウントが低位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth | +| lsfHighAuth | 0x00080000 | 524288 | 高位アカウントにより、低位アカウントが高位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth | +| lsfLowNoRipple | 0x00100000 | 1048576 | 低位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple | +| lsfHighNoRipple | 0x00200000 | 2097152 | 高位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple | +| lsfLowFreeze | 0x00400000 | 4194304 | 低位アカウントがトラストラインを凍結しており、高位アカウントから資産を移動できません。 | tfSetFreeze | +| lsfHighFreeze | 0x00800000 | 8388608 | 高位アカウントがトラストラインを凍結しており、低位アカウントから資産を移動できません。 | tfSetFreeze | + +## 所有者の準備金への資金供給 + +アカウントがトラストラインをデフォルト以外の状態に変更した場合、そのトラストラインはアカウントの[所有者準備金](reserves.html#所有者準備金)に反映されます。RippleStateオブジェクトの`lsfLowReserve`フラグと`lsfHighReserve`フラグは、いずれのアカウントが所有者準備金に責任があるかを示します。`rippled`サーバーは、トラストラインの変更時にこれらのフラグを自動的に設定します。 + +トラストラインのデフォルト以外の状態に反映される値は以下の通りです。 + +| 高位アカウントに責任がある場合の条件 | 低位アカウントに責任がある場合の条件 | +|-----------------------|----------------------| +| `Balance` がマイナスである(高位アカウントが通貨を保有している) | `Balance` がプラスである(低位アカウントが通貨を保有している) | +| `HighLimit` が `0` ではない | `LowLimit` が `0` ではない | +| `LowQualityIn` が`0`でも `1000000000` でもない | `HighQualityIn` が`0`でも `1000000000` でもない | +| `LowQualityOut` が`0`でも `1000000000` でもない | `HighQualityOut` が`0`でも `1000000000` でもない | +| **lsfHighNoRipple**フラグがデフォルト状態ではない | **lsfLowNoRipple**フラグがデフォルト状態ではない | +| **lsfHighFreeze**フラグが有効である | **lsfLowFreeze**フラグが有効である | + +**lsfLowAuth**フラグと**lsfHighAuth**フラグは無効にできないため、デフォルト状態に不利に作用することはありません。 + +2つのNoRippleフラグのデフォルト状態は、対応するAccountRootオブジェクトの[lsfDefaultRippleフラグ](accountroot.html#accountrootフラグ)の状態によって異なります。DefaultRippleが無効の場合(デフォルト)、アカウントのすべてのトラストラインのlsfNoRippleフラグはデフォルトで _有効_ となります。アカウントがDefaultRippleを有効にすると、アカウントのトラストラインのlsfNoRippleフラグはデフォルトで _無効_ となります(Ripplingが有効になります)。 + +**注記:** `rippled`バージョン0.27.3(2015年3月10日)にてDefaultRippleフラグが導入される前は、すべてのトラストラインはデフォルトで両方のNoRippleフラグが無効になっていました(Ripplingは有効)。 + +`rippled`は遅延評価を使用して所有者準備金を計算しています。つまり、アカウントがDefaultRippleフラグを変更してそのすべてのトラストラインのデフォルト状態を変更しても、変更後しばらくの間はアカウントの準備金が同じ状態で維持されます。アカウントがトラストラインを変更すると、`rippled`は個々のトラストラインがデフォルト状態にあるか否かや、所有者準備金への資金供給の必要性を再評価します。 + +## RippleState IDのフォーマット + +RippleStateオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。 + +* RippleStateスペースキー(`0x0072`) +* 低位アカウントのAccountID +* 高位アカウントのAccountID +* トラストラインの160ビットの通貨コード + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/ledger-data-formats/ledger-object-types/signerlist.ja.md b/content/references/rippled-api/ledger-data-formats/ledger-object-types/signerlist.ja.md index e831fff548..9725467b4d 100644 --- a/content/references/rippled-api/ledger-data-formats/ledger-object-types/signerlist.ja.md +++ b/content/references/rippled-api/ledger-data-formats/ledger-object-types/signerlist.ja.md @@ -1,103 +1,103 @@ -# SignerList -[[ソース]
](https://github.com/ripple/rippled/blob/6d2e3da30696bd10e3bb11a5ff6d45d2c4dae90f/src/ripple/protocol/impl/LedgerFormats.cpp#L127 "Source") - -_([MultiSign Amendment][]が必要です。)_ - -`SignerList`オブジェクトタイプは、個別アカウントの代わりにグループとしてトランザクション署名をすることが承認されている署名者のリストです。[SignerListSetトランザクション][]を使用して、SignerListを作成、置き換え、または削除できます。 - - -## {{currentpage.name}}のJSONの例 - -```json -{ - "Flags": 0, - "LedgerEntryType": "SignerList", - "OwnerNode": "0000000000000000", - "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", - "PreviousTxnLgrSeq": 16061435, - "SignerEntries": [ - { - "SignerEntry": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight": 2 - } - }, - { - "SignerEntry": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight": 1 - } - }, - { - "SignerEntry": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight": 1 - } - } - ], - "SignerListID": 0, - "SignerQuorum": 3, - "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" -} -``` - -## {{currentpage.name}}のフィールド - -`SignerList`オブジェクトのフィールドを次に示します。 - -| 名前 | JSONの型 | 内部の型 | 説明 | -|:--------------------|:----------|:--------------|:---------------------------| -| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0053`(文字列`SignerList`にマッピング)の場合は、これがSignerListオブジェクトであることを示します。 | -| `Flags` | 数値 | UInt32 | このSignerListに対して有効になっているブール値フラグのビットマップ。詳細は、[SignerListのフラグ](#signerlistフラグ)を参照してください。 | -| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | -| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | -| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | -| `SignerEntries` | 配列 | 配列 | この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。 | -| `SignerListID` | 数値 | UInt32 | この署名者リストのID。現時点では常に`0`に設定されます。今後の[Amendment](amendments.html)によってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。 | -| `SignerQuorum` | 数値 | UInt32 | 署名者の重みのターゲット数。署名者がこのSignerListの所有者に代わって有効な署名を生成するには、重みの合計がこの数値以上である有効な署名を提出する必要があります。 | - -`SignerEntries`は、secp256k1キーまたはed25519キーを使用する資金供給のあるアドレスと資金供給のないアドレスの自由な組み合わせです。 - -### SignerEntryオブジェクト - -`SignerEntries`フィールドの各メンバーは、リストの署名者を記述するオブジェクトです。SignerEntryのフィールドは次のとおりです。 - -| 名前 | JSONの型 | 内部の型 | 説明 | -|:---------------|:----------|:--------------|:--------------------------------| -| `Account` | 文字列 | AccountID | 署名がマルチ署名に提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。 | -| `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチ署名は、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 | - -マルチ署名済みトランザクションを処理する際に、サーバーはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.html)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチ署名を別のマルチ署名の一部として使用することはできません。 - -## {{currentpage.name}}のフラグ - -_([MultiSignReserve Amendment][]が必要です:not_enabled:.)_ - -SignerListオブジェクトには以下のフラグ値を指定できます。 - -| フラグ名 | 16進値 | 10進値 | 説明 | -|:-----------------|:-----------|:--------------|:-------------------------------| -| lsfOneOwnerCount | 0x00010000 | 65536 | このフラグが有効な場合、SignerListは[所有者準備金](reserves.html#所有者準備金)の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。[MultiSignReserve Amendment][]が有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。 | - -## SignerListと準備金 - -SignerListは、所有者の[必要準備金](reserves.html)の対象となります。 - -[MultiSignReserve Amendment][]:not_enabled:が有効ではない場合、SignerList自体が2つのオブジェクトとしてカウントされ、リストの各メンバーが1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金の合計は、1つのトラストライン([RippleState](ripplestate.html))またはレジャーの[Offer](offer.html)オブジェクトで必要な準備金の3~10倍になります。 - -[MultiSignReserve Amendment][]:not_enabled:が有効となれば、SignerListはそのメンバーの数に関わらず、1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金は、メンバーの数に関わらず5 XRPになります。 - -MultiSignReserve Amendmentよりも前に作成されたSignerListの必要準備金は変わりません。新しい準備金を利用するには、[SignerListSetトランザクション][]を送信してSignerListを更新してください。 - -## SignerList IDのフォーマット - -SignerListオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512Halfです。 - -* RippleStateスペースキー(`0x0053`) -* SignerListの所有者のAccountID -* SignerListID(現時点では常に`0`) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# SignerList +[[ソース]
](https://github.com/ripple/rippled/blob/6d2e3da30696bd10e3bb11a5ff6d45d2c4dae90f/src/ripple/protocol/impl/LedgerFormats.cpp#L127 "Source") + +_([MultiSign Amendment][]が必要です。)_ + +`SignerList`オブジェクトタイプは、個別アカウントの代わりにグループとしてトランザクション署名をすることが承認されている署名者のリストです。[SignerListSetトランザクション][]を使用して、SignerListを作成、置き換え、または削除できます。 + + +## {{currentpage.name}}のJSONの例 + +```json +{ + "Flags": 0, + "LedgerEntryType": "SignerList", + "OwnerNode": "0000000000000000", + "PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4", + "PreviousTxnLgrSeq": 16061435, + "SignerEntries": [ + { + "SignerEntry": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight": 2 + } + }, + { + "SignerEntry": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight": 1 + } + }, + { + "SignerEntry": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight": 1 + } + } + ], + "SignerListID": 0, + "SignerQuorum": 3, + "index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7" +} +``` + +## {{currentpage.name}}のフィールド + +`SignerList`オブジェクトのフィールドを次に示します。 + +| 名前 | JSONの型 | 内部の型 | 説明 | +|:--------------------|:----------|:--------------|:---------------------------| +| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0053`(文字列`SignerList`にマッピング)の場合は、これがSignerListオブジェクトであることを示します。 | +| `Flags` | 数値 | UInt32 | このSignerListに対して有効になっているブール値フラグのビットマップ。詳細は、[SignerListのフラグ](#signerlistフラグ)を参照してください。 | +| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 | +| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーのインデックス][Ledger Index]。 | +| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 | +| `SignerEntries` | 配列 | 配列 | この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。 | +| `SignerListID` | 数値 | UInt32 | この署名者リストのID。現時点では常に`0`に設定されます。今後の[Amendment](amendments.html)によってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。 | +| `SignerQuorum` | 数値 | UInt32 | 署名者の重みのターゲット数。署名者がこのSignerListの所有者に代わって有効な署名を生成するには、重みの合計がこの数値以上である有効な署名を提出する必要があります。 | + +`SignerEntries`は、secp256k1キーまたはed25519キーを使用する資金供給のあるアドレスと資金供給のないアドレスの自由な組み合わせです。 + +### SignerEntryオブジェクト + +`SignerEntries`フィールドの各メンバーは、リストの署名者を記述するオブジェクトです。SignerEntryのフィールドは次のとおりです。 + +| 名前 | JSONの型 | 内部の型 | 説明 | +|:---------------|:----------|:--------------|:--------------------------------| +| `Account` | 文字列 | AccountID | 署名がマルチ署名に提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。 | +| `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチ署名は、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 | + +マルチ署名済みトランザクションを処理する際に、サーバーはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.html)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチ署名を別のマルチ署名の一部として使用することはできません。 + +## {{currentpage.name}}のフラグ + +_([MultiSignReserve Amendment][]が必要です:not_enabled:.)_ + +SignerListオブジェクトには以下のフラグ値を指定できます。 + +| フラグ名 | 16進値 | 10進値 | 説明 | +|:-----------------|:-----------|:--------------|:-------------------------------| +| lsfOneOwnerCount | 0x00010000 | 65536 | このフラグが有効な場合、SignerListは[所有者準備金](reserves.html#所有者準備金)の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。[MultiSignReserve Amendment][]が有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。 | + +## SignerListと準備金 + +SignerListは、所有者の[必要準備金](reserves.html)の対象となります。 + +[MultiSignReserve Amendment][]:not_enabled:が有効ではない場合、SignerList自体が2つのオブジェクトとしてカウントされ、リストの各メンバーが1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金の合計は、1つのトラストライン([RippleState](ripplestate.html))またはレジャーの[Offer](offer.html)オブジェクトで必要な準備金の3~10倍になります。 + +[MultiSignReserve Amendment][]:not_enabled:が有効となれば、SignerListはそのメンバーの数に関わらず、1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金は、メンバーの数に関わらず5 XRPになります。 + +MultiSignReserve Amendmentよりも前に作成されたSignerListの必要準備金は変わりません。新しい準備金を利用するには、[SignerListSetトランザクション][]を送信してSignerListを更新してください。 + +## SignerList IDのフォーマット + +SignerListオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512Halfです。 + +* RippleStateスペースキー(`0x0053`) +* SignerListの所有者のAccountID +* SignerListID(現時点では常に`0`) + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_channels.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_channels.ja.md index c545906d3f..0d8af8fd59 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/account_channels.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_channels.ja.md @@ -1,188 +1,188 @@ -# account_channels -[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/AccountChannels.cpp "Source") - -_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ - -`account_channels`メソッドは、アカウントのPayment Channelに関する情報を返します。指定されたアカウントがChannelの送金元であり、送金先ではないChannelのみが含まれます。(Channelの「送金元」と「所有者」は同一です。)取得された情報はすべて、特定バージョンのレジャーに関連付けられています。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -```json -{ - "id": 1, - "command": "account_channels", - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" -} -``` - -*JSON-RPC* - -```json -{ - "method": "account_channels", - "params": [{ - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "ledger_index": "validated" - }] -} -``` - -*コマンドライン* - -```bash -#Syntax: account_channels [] [] -rippled account_channels rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated -``` - - - -要求には以下のパラメーターが含まれます。 - -| フィールド | 型 | 説明 | -|:----------------------|:-------------------------------------------|:--------| -| `account` | 文字列 | アカウントの一意のID。通常はアカウントの[アドレス][]です。要求は、このアカウントがChannelの所有者/送金元であるChannelを返します。 | -| `destination_account` | 文字列 | _(省略可)_ アカウントの一意のID。通常はアカウントの[アドレス][]です。指定されている場合、フィルタリングによりこのアカウントを送金先とするPayment Channelに絞り込まれます。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `limit` | 整数 | _(省略可)_ 取得するトランザクション数を制限します。サーバーはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | -| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -```json -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "channels": [ - { - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "amount": "100000000", - "balance": "1000000", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_tag": 20170428, - "expiration": 547073182, - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "settle_delay": 86400 - } - ], - "ledger_hash": "F168208EECDAA57DDAC32780CDD8330FA3E89F0E84D27A9052AA2F88681EBD08", - "ledger_index": 37230642, - "validated": true - } -} -``` - -*JSON-RPC* - -```json -200 OK - -{ - "result": { - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "channels": [{ - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "amount": "100000000", - "balance": "0", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_tag": 20170428, - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "settle_delay": 86400 - }], - "ledger_hash": "B9D3D80EDF4083A06B2D51202E0BFB63C46FC0985E015D06767C21A62853BF6D", - "ledger_index": 37230600, - "status": "success", - "validated": true - } -} -``` - -*コマンドライン* - -```json -200 OK - -{ - "result": { - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "channels": [{ - "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", - "amount": "100000000", - "balance": "0", - "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "destination_tag": 20170428, - "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", - "settle_delay": 86400 - }], - "ledger_hash": "B9D3D80EDF4083A06B2D51202E0BFB63C46FC0985E015D06767C21A62853BF6D", - "ledger_index": 37230600, - "status": "success", - "validated": true - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| フィールド | 型 | 説明 | -|:-----------|:-------------------------------------------|:-------------------| -| `account` | 文字列 | Payment Channelの送金元/所有者のアドレス。これは要求の`account`フィールドに対応しています。 | -| `channels` | channelオブジェクトの配列 | この`account`が所有するPayment Channel。 | -| `ledger_hash` | 文字列 | この応答の生成に使用されたレジャーバージョンの識別用[ハッシュ][]。[新規: rippled 0.90.0][] | -| `ledger_index` | 数値 | この応答の生成に使用されたレジャーバージョンの[レジャーインデックス][]。[新規: rippled 0.90.0][] | -| `validated` | ブール値 | _(省略される場合があります)_`true`の場合、この応答の情報は検証済みレジャーバージョンから取り込まれます。trueでない場合、情報は変更されることがあります。[新規: rippled 0.90.0][] | -| `limit` | 数値 | _(省略される場合があります)_ この要求から実際に返されるchannelオブジェクトの数の制限。 | -| `marker` | [マーカー][] | _(省略される場合があります)_ ページネーションのサーバー定義の値。この値を次のコールに渡して、このコールで終わった箇所から結果の取得を再開します。この後に追加のページがない場合は省略されます。 | - -各Channelオブジェクトのフィールドは次のとおりです。 - -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `account` | 文字列 | Channelの所有者([アドレス][]として)。 | -| `amount` | 文字列 | このChannelに割り当てられる[XRP、drop単位][]の合計額。 | -| `balance` | 文字列 | 使用されているレジャーバージョンにおいて、このChannelから支払われた[XRP、drop単位][]の合計額。(Channelに残っているXRPの額を計算するには、`balance`を`amount`から差し引きます。) | -| `channel_id` | 文字列 | このChannelの一意のID(64文字の16進数文字列)。レジャーの状態データの[channelオブジェクトのID](paychannel.html#paychannel-idのフォーマット)でもあります。 | -| `destination_account` | 文字列 | Channelの送金先アカウント([アドレス][]として)。このアカウントだけが、Channelがオープンしている間にXRPを受領できます。 | -| `public_key` | 文字列 | _(省略される場合があります)_ XRP Ledgerの[base58][]フォーマットのPayment Channelの公開鍵。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | -| `public_key_hex` | 文字列 | _(省略される場合があります)_ Payment Channel作成時にChannelの公開鍵を指定している場合はその公開鍵(16進数フォーマット)。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | -| `settle_delay` | 符号なし整数 | Payment Channelの所有者がChannel閉鎖を依頼した後に、そのChannelが開いている必要がある秒数。 | -| `expiration` | 符号なし整数 | _(省略される場合があります)_ このChannelに設定された有効期限([Rippleエポック以降の経過秒数][])。この有効期限の日付は変更可能です。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | -| `cancel_after` | 符号なし整数 | _(省略される場合があります)_ このChannelの変更不可能な有効期限がChannel作成時に指定されている場合はその有効期限([Rippleエポック以降の経過秒数][])。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | -| `source_tag` | 符号なし整数 | _(省略される場合があります)_ このPayment Channelを通じた支払いの[送金元タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金元アカウントでのPayment Channelの送金人またはその他の目的を示します。通常、このChannelからの支払いを差し戻す場合、返金の`DestinationTag`にこの値を指定する必要があります。 | -| `destination_tag` | 符号なし整数 | _(省略される場合があります)_ このChannelを通じた支払いの[送金先タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金先アカウントでのPayment Channelの受取人またはその他の目的を示します。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - 要求の`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# account_channels +[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/AccountChannels.cpp "Source") + +_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ + +`account_channels`メソッドは、アカウントのPayment Channelに関する情報を返します。指定されたアカウントがChannelの送金元であり、送金先ではないChannelのみが含まれます。(Channelの「送金元」と「所有者」は同一です。)取得された情報はすべて、特定バージョンのレジャーに関連付けられています。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +```json +{ + "id": 1, + "command": "account_channels", + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" +} +``` + +*JSON-RPC* + +```json +{ + "method": "account_channels", + "params": [{ + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "ledger_index": "validated" + }] +} +``` + +*コマンドライン* + +```bash +#Syntax: account_channels [] [] +rippled account_channels rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn validated +``` + + + +要求には以下のパラメーターが含まれます。 + +| フィールド | 型 | 説明 | +|:----------------------|:-------------------------------------------|:--------| +| `account` | 文字列 | アカウントの一意のID。通常はアカウントの[アドレス][]です。要求は、このアカウントがChannelの所有者/送金元であるChannelを返します。 | +| `destination_account` | 文字列 | _(省略可)_ アカウントの一意のID。通常はアカウントの[アドレス][]です。指定されている場合、フィルタリングによりこのアカウントを送金先とするPayment Channelに絞り込まれます。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | +| `limit` | 整数 | _(省略可)_ 取得するトランザクション数を制限します。サーバーはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | +| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +```json +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "channels": [ + { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "amount": "100000000", + "balance": "1000000", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_tag": 20170428, + "expiration": 547073182, + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "settle_delay": 86400 + } + ], + "ledger_hash": "F168208EECDAA57DDAC32780CDD8330FA3E89F0E84D27A9052AA2F88681EBD08", + "ledger_index": 37230642, + "validated": true + } +} +``` + +*JSON-RPC* + +```json +200 OK + +{ + "result": { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "channels": [{ + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "amount": "100000000", + "balance": "0", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_tag": 20170428, + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "settle_delay": 86400 + }], + "ledger_hash": "B9D3D80EDF4083A06B2D51202E0BFB63C46FC0985E015D06767C21A62853BF6D", + "ledger_index": 37230600, + "status": "success", + "validated": true + } +} +``` + +*コマンドライン* + +```json +200 OK + +{ + "result": { + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "channels": [{ + "account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH", + "amount": "100000000", + "balance": "0", + "channel_id": "5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "destination_tag": 20170428, + "public_key": "aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "public_key_hex": "023693F15967AE357D0327974AD46FE3C127113B1110D6044FD41E723689F81CC6", + "settle_delay": 86400 + }], + "ledger_hash": "B9D3D80EDF4083A06B2D51202E0BFB63C46FC0985E015D06767C21A62853BF6D", + "ledger_index": 37230600, + "status": "success", + "validated": true + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| フィールド | 型 | 説明 | +|:-----------|:-------------------------------------------|:-------------------| +| `account` | 文字列 | Payment Channelの送金元/所有者のアドレス。これは要求の`account`フィールドに対応しています。 | +| `channels` | channelオブジェクトの配列 | この`account`が所有するPayment Channel。 | +| `ledger_hash` | 文字列 | この応答の生成に使用されたレジャーバージョンの識別用[ハッシュ][]。[新規: rippled 0.90.0][] | +| `ledger_index` | 数値 | この応答の生成に使用されたレジャーバージョンの[レジャーインデックス][]。[新規: rippled 0.90.0][] | +| `validated` | ブール値 | _(省略される場合があります)_`true`の場合、この応答の情報は検証済みレジャーバージョンから取り込まれます。trueでない場合、情報は変更されることがあります。[新規: rippled 0.90.0][] | +| `limit` | 数値 | _(省略される場合があります)_ この要求から実際に返されるchannelオブジェクトの数の制限。 | +| `marker` | [マーカー][] | _(省略される場合があります)_ ページネーションのサーバー定義の値。この値を次のコールに渡して、このコールで終わった箇所から結果の取得を再開します。この後に追加のページがない場合は省略されます。 | + +各Channelオブジェクトのフィールドは次のとおりです。 + +| フィールド | 型 | 説明 | +|-------|------|-------------| +| `account` | 文字列 | Channelの所有者([アドレス][]として)。 | +| `amount` | 文字列 | このChannelに割り当てられる[XRP、drop単位][]の合計額。 | +| `balance` | 文字列 | 使用されているレジャーバージョンにおいて、このChannelから支払われた[XRP、drop単位][]の合計額。(Channelに残っているXRPの額を計算するには、`balance`を`amount`から差し引きます。) | +| `channel_id` | 文字列 | このChannelの一意のID(64文字の16進数文字列)。レジャーの状態データの[channelオブジェクトのID](paychannel.html#paychannel-idのフォーマット)でもあります。 | +| `destination_account` | 文字列 | Channelの送金先アカウント([アドレス][]として)。このアカウントだけが、Channelがオープンしている間にXRPを受領できます。 | +| `public_key` | 文字列 | _(省略される場合があります)_ XRP Ledgerの[base58][]フォーマットのPayment Channelの公開鍵。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | +| `public_key_hex` | 文字列 | _(省略される場合があります)_ Payment Channel作成時にChannelの公開鍵を指定している場合はその公開鍵(16進数フォーマット)。このChannelに対する署名付きクレームは、一致するキーペアを使用して清算する必要があります。 | +| `settle_delay` | 符号なし整数 | Payment Channelの所有者がChannel閉鎖を依頼した後に、そのChannelが開いている必要がある秒数。 | +| `expiration` | 符号なし整数 | _(省略される場合があります)_ このChannelに設定された有効期限([Rippleエポック以降の経過秒数][])。この有効期限の日付は変更可能です。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | +| `cancel_after` | 符号なし整数 | _(省略される場合があります)_ このChannelの変更不可能な有効期限がChannel作成時に指定されている場合はその有効期限([Rippleエポック以降の経過秒数][])。これが最新の検証済みレジャーの閉鎖時刻よりも前の場合、Channelは有効期限切れです。 | +| `source_tag` | 符号なし整数 | _(省略される場合があります)_ このPayment Channelを通じた支払いの[送金元タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金元アカウントでのPayment Channelの送金人またはその他の目的を示します。通常、このChannelからの支払いを差し戻す場合、返金の`DestinationTag`にこの値を指定する必要があります。 | +| `destination_tag` | 符号なし整数 | _(省略される場合があります)_ このChannelを通じた支払いの[送金先タグ](become-an-xrp-ledger-gateway.html#source-and-destination-tags)として使用される32ビット符号なし整数(Channel作成時に指定されている場合)。送金先アカウントでのPayment Channelの受取人またはその他の目的を示します。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actNotFound` - 要求の`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_currencies.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_currencies.ja.md index 9adaf00a21..deaa80cd39 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/account_currencies.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_currencies.ja.md @@ -1,151 +1,151 @@ -# account_currencies -[[ソース]
](https://github.com/ripple/rippled/blob/df966a9ac6dd986585ecccb206aff24452e41a30/src/ripple/rpc/handlers/AccountCurrencies.cpp "Source") - -`account_currencies`コマンドは、アカウントのトラストラインに基づいてそのアカウントが送金または受領できる通貨のリストを返します。(このリストは完全に確認されたリストではありませんが、ユーザーインターフェイスへの入力に使用できます。) - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "command": "account_currencies", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "strict": true, - "ledger_index": "validated" -} -``` - -*JSON-RPC* - -``` -{ - "method": "account_currencies", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "account_index": 0, - "ledger_index": "validated", - "strict": true - } - ] -} -``` - - - -[試してみる>](websocket-api-tool.html#account_currencies) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントの[アドレス][]です。 | -| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | - -以下のフィールドは廃止予定であるため、指定しないでください。`account_index`. - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "result": { - "ledger_index": 11775844, - "receive_currencies": [ - "BTC", - "CNY", - "DYM", - "EUR", - "JOE", - "MXN", - "USD", - "015841551A748AD2C1F76FF6ECB0CCCD00000000" - ], - "send_currencies": [ - "ASP", - "BTC", - "CHF", - "CNY", - "DYM", - "EUR", - "JOE", - "JPY", - "MXN", - "USD" - ], - "validated": true - }, - "status": "success", - "type": "response" -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "ledger_index": 11775823, - "receive_currencies": [ - "BTC", - "CNY", - "DYM", - "EUR", - "JOE", - "MXN", - "USD", - "015841551A748AD2C1F76FF6ECB0CCCD00000000" - ], - "send_currencies": [ - "ASP", - "BTC", - "CHF", - "CNY", - "DYM", - "EUR", - "JOE", - "JPY", - "MXN", - "USD" - ], - "status": "success", - "validated": true - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:---------------------|:---------------------------|:-------------------------| -| `ledger_hash` | 文字列 - [Hash][] | (省略される場合があります)このデータの取得に使用するレジャーバージョンの識別用ハッシュ(16進数)。 | -| `ledger_index` | 整数 - [レジャーインデックス][] | このデータの取得に使用するレジャーバージョンのシーケンス番号。 | -| `receive_currencies` | 文字列の配列 | このアカウントが受領できる通貨の[通貨コード][]の配列。 | -| `send_currencies` | 文字列の配列 | このアカウントが送金できる通貨の[通貨コード][]の配列。 | -| `validated` | ブール値 | `true`の場合、このデータは検証済みレジャーから取得されます。 | - -**注記:** アカウントが送金または受領できる通貨は、アカウントのトラストラインのチェックに基づいて定義されます。アカウントに通貨のトラストラインがあり、残高を増額できる余裕がある場合、その通貨を受領できます。トラストラインの残高を減らせる場合、アカウントはその通貨を送金できます。このメソッドでは、トラストラインが[凍結](freezes.html)または承認されているかどうかは確認 _されません_ 。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - 要求の`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - - -{% include '_snippets/rippled-api-links.md' %} +# account_currencies +[[ソース]
](https://github.com/ripple/rippled/blob/df966a9ac6dd986585ecccb206aff24452e41a30/src/ripple/rpc/handlers/AccountCurrencies.cpp "Source") + +`account_currencies`コマンドは、アカウントのトラストラインに基づいてそのアカウントが送金または受領できる通貨のリストを返します。(このリストは完全に確認されたリストではありませんが、ユーザーインターフェイスへの入力に使用できます。) + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "command": "account_currencies", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "strict": true, + "ledger_index": "validated" +} +``` + +*JSON-RPC* + +``` +{ + "method": "account_currencies", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "account_index": 0, + "ledger_index": "validated", + "strict": true + } + ] +} +``` + + + +[試してみる>](websocket-api-tool.html#account_currencies) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントの[アドレス][]です。 | +| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | + +以下のフィールドは廃止予定であるため、指定しないでください。`account_index`. + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "result": { + "ledger_index": 11775844, + "receive_currencies": [ + "BTC", + "CNY", + "DYM", + "EUR", + "JOE", + "MXN", + "USD", + "015841551A748AD2C1F76FF6ECB0CCCD00000000" + ], + "send_currencies": [ + "ASP", + "BTC", + "CHF", + "CNY", + "DYM", + "EUR", + "JOE", + "JPY", + "MXN", + "USD" + ], + "validated": true + }, + "status": "success", + "type": "response" +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "ledger_index": 11775823, + "receive_currencies": [ + "BTC", + "CNY", + "DYM", + "EUR", + "JOE", + "MXN", + "USD", + "015841551A748AD2C1F76FF6ECB0CCCD00000000" + ], + "send_currencies": [ + "ASP", + "BTC", + "CHF", + "CNY", + "DYM", + "EUR", + "JOE", + "JPY", + "MXN", + "USD" + ], + "status": "success", + "validated": true + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:---------------------|:---------------------------|:-------------------------| +| `ledger_hash` | 文字列 - [Hash][] | (省略される場合があります)このデータの取得に使用するレジャーバージョンの識別用ハッシュ(16進数)。 | +| `ledger_index` | 整数 - [レジャーインデックス][] | このデータの取得に使用するレジャーバージョンのシーケンス番号。 | +| `receive_currencies` | 文字列の配列 | このアカウントが受領できる通貨の[通貨コード][]の配列。 | +| `send_currencies` | 文字列の配列 | このアカウントが送金できる通貨の[通貨コード][]の配列。 | +| `validated` | ブール値 | `true`の場合、このデータは検証済みレジャーから取得されます。 | + +**注記:** アカウントが送金または受領できる通貨は、アカウントのトラストラインのチェックに基づいて定義されます。アカウントに通貨のトラストラインがあり、残高を増額できる余裕がある場合、その通貨を受領できます。トラストラインの残高を減らせる場合、アカウントはその通貨を送金できます。このメソッドでは、トラストラインが[凍結](freezes.html)または承認されているかどうかは確認 _されません_ 。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actNotFound` - 要求の`account`フィールドに指定されているアドレスが、レジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 + + +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_info.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_info.ja.md index 1eea9ed73c..24d74c9e0a 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/account_info.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_info.ja.md @@ -1,212 +1,212 @@ -# account_info -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountInfo.cpp "Source") - -`account_info`コマンドは、アカウントとそのアクティビティおよびXRP残高についての情報を取得します。取得されたすべての情報は、特定バージョンのレジャーに関連付けられています。 - -## 要求フォーマット - -account_info要求の例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "account_info", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "strict": true, - "ledger_index": "current", - "queue": true -} -``` - -*JSON-RPC* - -``` -{ - "method": "account_info", - "params": [ - { - "account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "strict": true, - "ledger_index": "current", - "queue": true - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: account_info account [ledger_index|ledger_hash] [strict] -rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 true -``` - - - -[試してみる>](websocket-api-tool.html#account_info) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | アカウントの一意のIDであり、最もよく使用されるのはアカウントの[アドレス][]です。 | -| `strict` | ブール値 | (省略可能、デフォルトはFalse)Trueに設定すると、`account`フィールドに指定できる項目は公開鍵またはXRP Ledgerアドレスのみになります。 | -| `ledger_hash` | 文字列 | _(省略可能)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください。) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可能)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | -| `queue` | ブール値 | _(省略可能)_ `true`にして[FeeEscalation Amendment][]を有効にすると、このアカウントに関連するキューに入れられたトランザクションについてのステータスも返されます。これを使用できるのは、現在開いているレジャーのデータを問い合わせる場合のみです。[新規: rippled 0.33.0][] | -| `signer_lists` | ブール値 | _(省略可能)_`true`にして[MultiSign Amendment][]を有効にすると、このアカウントに関連するすべての[SignerListオブジェクト](signerlist.html)も返されます。[新規: rippled 0.31.0][] | - -次のフィールドは廃止予定のため、指定しないでください。`ident`、`ledger`。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 5, - "status": "success", - "type": "response", - "result": { - "account_data": { - "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "Balance": "999999999960", - "Flags": 8388608, - "LedgerEntryType": "AccountRoot", - "OwnerCount": 0, - "PreviousTxnID": "4294BEBE5B569A18C0A2702387C9B1E7146DC3A5850C1E87204951C6FDAA4C42", - "PreviousTxnLgrSeq": 3, - "Sequence": 6, - "index": "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" - }, - "ledger_current_index": 4, - "queue_data": { - "auth_change_queued": true, - "highest_sequence": 10, - "lowest_sequence": 6, - "max_spend_drops_total": "500", - "transactions": [ - { - "auth_change": false, - "fee": "100", - "fee_level": "2560", - "max_spend_drops": "100", - "seq": 6 - }, - ...(trimmed for length) ... - { - "LastLedgerSequence": 10, - "auth_change": true, - "fee": "100", - "fee_level": "2560", - "max_spend_drops": "100", - "seq": 10 - } - ], - "txn_count": 5 - }, - "validated": false - } -} -``` - -*JSON-RPC* - -``` -{ - "result": { - "account_data": { - "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", - "Balance": "999999999960", - "Flags": 8388608, - "LedgerEntryType": "AccountRoot", - "OwnerCount": 0, - "PreviousTxnID": "4294BEBE5B569A18C0A2702387C9B1E7146DC3A5850C1E87204951C6FDAA4C42", - "PreviousTxnLgrSeq": 3, - "Sequence": 6, - "index": "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" - }, - "ledger_current_index": 4, - "queue_data": { - "auth_change_queued": true, - "highest_sequence": 10, - "lowest_sequence": 6, - "max_spend_drops_total": "500", - "transactions": [ - { - "auth_change": false, - "fee": "100", - "fee_level": "2560", - "max_spend_drops": "100", - "seq": 6 - }, - ...(trimmed for length) ... - { - "LastLedgerSequence": 10, - "auth_change": true, - "fee": "100", - "fee_level": "2560", - "max_spend_drops": "100", - "seq": 10 - } - ], - "txn_count": 5 - }, - "status": "success", - "validated": false - } -} -``` - - - -応答は[標準フォーマット][]に従い、要求されたアカウントとそのデータ、アカウントの適用先レジャーが結果として表示されます。以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:-----------------------|:--------|:------------------------------------------| -| `account_data` | オブジェクト | このアカウントの情報を含む[AccountRootレジャーオブジェクト](accountroot.html)がレジャーに保管されているとおりに表示されます。 | -| `signer_lists` | 配列 | (要求に`signer_lists`が指定されていて、少なくとも1つのSignerListがアカウントに関連する場合を除いて省略されます。)[マルチ署名](multi-signing.html)用にアカウントに関連付けられた[SignerListレジャーオブジェクト](signerlist.html)の配列。アカウントが所有できるSignerListは最大1つであるため、この配列のメンバーは存在するとすれば、1メンバーのみです。[新規: rippled 0.31.0][] | -| `ledger_current_index` | 整数 | (`ledger_index`が代わりに指定されている場合は省略されます。)この情報を取得したときに使用されていた最新のレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | -| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略されます。)この情報を取得したときに使用されていたレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | -| `queue_data` | オブジェクト | (`queue`が`true`と指定され、現在開いているレジャーを問い合わせている場合を除いて省略されます。)このアカウントによって送信された[キューに入れられたトランザクション](transaction-cost.html#キューに入れられたトランザクション)についての情報。この情報にはローカル`rippled`サーバーの状態が示されますが、コンセンサスネットワーク内の他のサーバーとは異なる場合があります。示される値はキューイングメカニズムによって「大まかに」計算されるため、一部のフィールドは省略される場合があります。 | -| `validated` | ブール値 | このデータが検証済みのレジャーバージョンのものである場合はTrueです。省略されているかFalseが設定されている場合、このデータは最終のものではありません。[新規: rippled 0.26.0][] | - -`queue_data`パラメーターが存在する場合、以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:------------------------|:--------|:-----------------------------------------| -| `txn_count` | 整数 | このアドレスからキューに入れられたトランザクションの数。 | -| `auth_change_queued` | ブール値 | (省略される場合があります)キュー内のトランザクションがこのアドレスの[トランザクションの承認方法](transaction-basics.html#取引の承認)を変更するかどうかを示します。`true`の場合、トランザクションが実行されているかキューから除外されるまで、このアドレスはトランザクションをこれ以上キューに入れることができません。 | -| `lowest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も低い[シーケンス番号][]。 | -| `highest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も高い[シーケンス番号][]。 | -| `max_spend_drops_total` | 文字列 | (省略される場合があります)キュー内のすべてのトランザクションが利用可能なXRPを最大限消費する場合に、このアドレスから差し引くことができる[XRPのdrop数][]を示す整数の金額。 | -| `transactions` | 配列 | (省略される場合があります)このアドレスからキューに入れられた各トランザクションについての情報。 | - -`transactions`配列内の各オブジェクト(存在する場合)には、以下のフィールドのいずれかまたはすべてが含まれます。 - -| `Field` | 型 | 説明 | -|:------------------|:--------|:-----------------------------------------------| -| `auth_change` | ブール値 | このトランザクションがこのアドレスの[トランザクション承認の方法](transaction-basics.html#取引の承認)を変更するかどうかを示します。 | -| `fee` | 文字列 | このトランザクションの[トランザクションコスト](transaction-cost.html)([XRPのdrop数][])。 | -| `fee_level` | 文字列 | このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | -| `max_spend_drops` | 文字列 | このトランザクションで送信または消却できる[XRP(drop)][]の最高額。 | -| `seq` | 整数 | このトランザクションの[シーケンス番号][]。 | - -## 考えられるエラー - -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。例えば、要求で`queue`を`true`と指定したが、現在開いているレジャーではない`ledger_index`を指定した場合です。 -* `actNotFound` - 要求の`account`フィールドに指定したアドレスが、レジャー内のアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - -[手数料レベル]: transaction-cost.html#手数料レベル -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# account_info +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountInfo.cpp "Source") + +`account_info`コマンドは、アカウントとそのアクティビティおよびXRP残高についての情報を取得します。取得されたすべての情報は、特定バージョンのレジャーに関連付けられています。 + +## 要求フォーマット + +account_info要求の例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "account_info", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "strict": true, + "ledger_index": "current", + "queue": true +} +``` + +*JSON-RPC* + +``` +{ + "method": "account_info", + "params": [ + { + "account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "strict": true, + "ledger_index": "current", + "queue": true + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: account_info account [ledger_index|ledger_hash] [strict] +rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 true +``` + + + +[試してみる>](websocket-api-tool.html#account_info) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `account` | 文字列 | アカウントの一意のIDであり、最もよく使用されるのはアカウントの[アドレス][]です。 | +| `strict` | ブール値 | (省略可能、デフォルトはFalse)Trueに設定すると、`account`フィールドに指定できる項目は公開鍵またはXRP Ledgerアドレスのみになります。 | +| `ledger_hash` | 文字列 | _(省略可能)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください。) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可能)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | +| `queue` | ブール値 | _(省略可能)_ `true`にして[FeeEscalation Amendment][]を有効にすると、このアカウントに関連するキューに入れられたトランザクションについてのステータスも返されます。これを使用できるのは、現在開いているレジャーのデータを問い合わせる場合のみです。[新規: rippled 0.33.0][] | +| `signer_lists` | ブール値 | _(省略可能)_`true`にして[MultiSign Amendment][]を有効にすると、このアカウントに関連するすべての[SignerListオブジェクト](signerlist.html)も返されます。[新規: rippled 0.31.0][] | + +次のフィールドは廃止予定のため、指定しないでください。`ident`、`ledger`。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 5, + "status": "success", + "type": "response", + "result": { + "account_data": { + "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "Balance": "999999999960", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 0, + "PreviousTxnID": "4294BEBE5B569A18C0A2702387C9B1E7146DC3A5850C1E87204951C6FDAA4C42", + "PreviousTxnLgrSeq": 3, + "Sequence": 6, + "index": "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" + }, + "ledger_current_index": 4, + "queue_data": { + "auth_change_queued": true, + "highest_sequence": 10, + "lowest_sequence": 6, + "max_spend_drops_total": "500", + "transactions": [ + { + "auth_change": false, + "fee": "100", + "fee_level": "2560", + "max_spend_drops": "100", + "seq": 6 + }, + ...(trimmed for length) ... + { + "LastLedgerSequence": 10, + "auth_change": true, + "fee": "100", + "fee_level": "2560", + "max_spend_drops": "100", + "seq": 10 + } + ], + "txn_count": 5 + }, + "validated": false + } +} +``` + +*JSON-RPC* + +``` +{ + "result": { + "account_data": { + "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "Balance": "999999999960", + "Flags": 8388608, + "LedgerEntryType": "AccountRoot", + "OwnerCount": 0, + "PreviousTxnID": "4294BEBE5B569A18C0A2702387C9B1E7146DC3A5850C1E87204951C6FDAA4C42", + "PreviousTxnLgrSeq": 3, + "Sequence": 6, + "index": "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F" + }, + "ledger_current_index": 4, + "queue_data": { + "auth_change_queued": true, + "highest_sequence": 10, + "lowest_sequence": 6, + "max_spend_drops_total": "500", + "transactions": [ + { + "auth_change": false, + "fee": "100", + "fee_level": "2560", + "max_spend_drops": "100", + "seq": 6 + }, + ...(trimmed for length) ... + { + "LastLedgerSequence": 10, + "auth_change": true, + "fee": "100", + "fee_level": "2560", + "max_spend_drops": "100", + "seq": 10 + } + ], + "txn_count": 5 + }, + "status": "success", + "validated": false + } +} +``` + + + +応答は[標準フォーマット][]に従い、要求されたアカウントとそのデータ、アカウントの適用先レジャーが結果として表示されます。以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:-----------------------|:--------|:------------------------------------------| +| `account_data` | オブジェクト | このアカウントの情報を含む[AccountRootレジャーオブジェクト](accountroot.html)がレジャーに保管されているとおりに表示されます。 | +| `signer_lists` | 配列 | (要求に`signer_lists`が指定されていて、少なくとも1つのSignerListがアカウントに関連する場合を除いて省略されます。)[マルチ署名](multi-signing.html)用にアカウントに関連付けられた[SignerListレジャーオブジェクト](signerlist.html)の配列。アカウントが所有できるSignerListは最大1つであるため、この配列のメンバーは存在するとすれば、1メンバーのみです。[新規: rippled 0.31.0][] | +| `ledger_current_index` | 整数 | (`ledger_index`が代わりに指定されている場合は省略されます。)この情報を取得したときに使用されていた最新のレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | +| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略されます。)この情報を取得したときに使用されていたレジャーのシーケンス番号。この情報には、これより新しいレジャーの変更は一切含まれません。 | +| `queue_data` | オブジェクト | (`queue`が`true`と指定され、現在開いているレジャーを問い合わせている場合を除いて省略されます。)このアカウントによって送信された[キューに入れられたトランザクション](transaction-cost.html#キューに入れられたトランザクション)についての情報。この情報にはローカル`rippled`サーバーの状態が示されますが、コンセンサスネットワーク内の他のサーバーとは異なる場合があります。示される値はキューイングメカニズムによって「大まかに」計算されるため、一部のフィールドは省略される場合があります。 | +| `validated` | ブール値 | このデータが検証済みのレジャーバージョンのものである場合はTrueです。省略されているかFalseが設定されている場合、このデータは最終のものではありません。[新規: rippled 0.26.0][] | + +`queue_data`パラメーターが存在する場合、以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:------------------------|:--------|:-----------------------------------------| +| `txn_count` | 整数 | このアドレスからキューに入れられたトランザクションの数。 | +| `auth_change_queued` | ブール値 | (省略される場合があります)キュー内のトランザクションがこのアドレスの[トランザクションの承認方法](transaction-basics.html#取引の承認)を変更するかどうかを示します。`true`の場合、トランザクションが実行されているかキューから除外されるまで、このアドレスはトランザクションをこれ以上キューに入れることができません。 | +| `lowest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も低い[シーケンス番号][]。 | +| `highest_sequence` | 整数 | (省略される場合があります)このアドレスによってキューに入れられたトランザクションのうち最も高い[シーケンス番号][]。 | +| `max_spend_drops_total` | 文字列 | (省略される場合があります)キュー内のすべてのトランザクションが利用可能なXRPを最大限消費する場合に、このアドレスから差し引くことができる[XRPのdrop数][]を示す整数の金額。 | +| `transactions` | 配列 | (省略される場合があります)このアドレスからキューに入れられた各トランザクションについての情報。 | + +`transactions`配列内の各オブジェクト(存在する場合)には、以下のフィールドのいずれかまたはすべてが含まれます。 + +| `Field` | 型 | 説明 | +|:------------------|:--------|:-----------------------------------------------| +| `auth_change` | ブール値 | このトランザクションがこのアドレスの[トランザクション承認の方法](transaction-basics.html#取引の承認)を変更するかどうかを示します。 | +| `fee` | 文字列 | このトランザクションの[トランザクションコスト](transaction-cost.html)([XRPのdrop数][])。 | +| `fee_level` | 文字列 | このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | +| `max_spend_drops` | 文字列 | このトランザクションで送信または消却できる[XRP(drop)][]の最高額。 | +| `seq` | 整数 | このトランザクションの[シーケンス番号][]。 | + +## 考えられるエラー + +* いずれかの[汎用エラータイプ][]。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。例えば、要求で`queue`を`true`と指定したが、現在開いているレジャーではない`ledger_index`を指定した場合です。 +* `actNotFound` - 要求の`account`フィールドに指定したアドレスが、レジャー内のアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 + +[手数料レベル]: transaction-cost.html#手数料レベル +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_lines.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_lines.ja.md index 8b04967f21..cddf59ed7e 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/account_lines.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_lines.ja.md @@ -1,188 +1,188 @@ -# account_lines -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountLines.cpp "Source") - -`account_lines`メソッドは、アカウントのトラストラインに関する情報(XRP以外のあらゆる通貨の残高と資産など)を返します。取得された情報はすべて、特定バージョンのレジャーに関連付けられています。 - -## 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 1, - "command": "account_lines", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" -} -``` - -*JSON-RPC* - -``` -{ - "method": "account_lines", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" - } - ] -} -``` - - - -[試してみる>](websocket-api-tool.html#account_lines) - -要求には以下のパラメーターを指定できます。 - -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:---------------| -| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントの[アドレス][]です。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `peer` | 文字列 | _(省略可)_ 2番目のアカウントの[アドレス][]。指定されている場合は、2つのアカウントを結ぶトラストラインだけが出力されます。 | -| `limit` | 整数 | (省略可、デフォルト値は可変)取得するトランザクションの数を制限します。サーバーはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。[新規: rippled 0.26.4][] | -| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。[新規: rippled 0.26.4][] | - -以下のパラメーターは廃止予定であり、今後予告なしに削除される可能性があります。`ledger`および`peer_index`。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 1, - "status": "success", - "type": "response", - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "lines": [ - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "ASP", - "limit": "0", - "limit_peer": "10", - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "XAU", - "limit": "0", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "balance": "3.497605752725159", - "currency": "USD", - "limit": "5", - "limit_peer": "0", - "no_ripple": true, - "quality_in": 0, - "quality_out": 0 - } - ] - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "lines": [ - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "ASP", - "limit": "0", - "limit_peer": "10", - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "balance": "0", - "currency": "XAU", - "limit": "0", - "limit_peer": "0", - "no_ripple": true, - "no_ripple_peer": true, - "quality_in": 0, - "quality_out": 0 - }, - { - "account": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", - "balance": "0", - "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "limit": "10.01037626125837", - "limit_peer": "0", - "no_ripple": true, - "quality_in": 0, - "quality_out": 0 - } - ], - "status": "success" - } -} -``` - - - -この応答は[標準のフォーマット][]に従っており、正常に完了した場合には、アカウントのアドレスとトラストラインオブジェクトの配列が含まれています。具体的には、結果オブジェクトには以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-------------------------------------------|:-------| -| `account` | 文字列 | この要求に対応するアカウントの一意の[アドレス][]。トラストラインのための「パースペクティブアカウント」です。 | -| `lines` | 配列 | トラストラインオブジェクトからなる配列。以下で説明します。トラストラインの数が多い場合は、一度に`limit`の数までのトラストラインが返されます。 | -| `ledger_current_index` | 整数 | (`ledger_hash`または`ledger_index`が指定されている場合は省略)このデータの取得時に使用したレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | -| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略)要求に指定され、このデータの取得時に使用されたレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | -| `ledger_hash` | 文字列 | (省略される場合があります)要求に指定され、このデータの取得時に使用されたレジャーバージョンの16進数ハッシュ。[新規: rippled 0.26.4-sp1][] | -| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。[新規: rippled 0.26.4][] | - -各トラストラインオブジェクトには以下のフィールドの組み合わせが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------|:-----------------|:---------------------------------------| -| `account` | 文字列 | このトラストラインの相手側の一意の[アドレス][]。 | -| `balance` | 文字列 | 現在このラインに対して保留されている残高(数値)の表示。残高がプラスの場合はパースペクティブアカウントがその額を保有しており、マイナスの場合はパースペクティブアカウントがその額を借用しています。 | -| `currency` | 文字列 | このトラストラインが保有できる通貨を示す[通貨コード][]。 | -| `limit` | 文字列 | このアカウントがピアアカウントからの借用を希望する特定の通貨の上限額。 | -| `limit_peer` | 文字列 | 相手側アカウントがパースペクティブアカウントからの借用を希望する特定の通貨の上限額。 | -| `quality_in` | 符号なし整数 | このアカウントが、このトラストラインの入金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | -| `quality_out` | 符号なし整数 | このアカウントが、このトラストラインの出金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | -| `no_ripple` | ブール値 | (省略される場合があります)このアカウントでこのラインに対し[NoRippleフラグ](rippling.html)が有効な場合は、`true`。省略されている場合は、`false`と同じです。 | -| `no_ripple_peer` | ブール値 | (省略される場合があります)ピアアカウントでこのラインに対し[NoRippleフラグ](rippling.html)が有効な場合は`true`。省略されている場合は、`false`と同じです。 | -| `authorized` | ブール値 | (省略される場合があります)このアカウントが[このトラストラインを承認した](authorized-trust-lines.html)場合は、`true`。省略されている場合は、`false`と同じです。 | -| `peer_authorized`| ブール値 | (省略される場合があります)ピアアカウントが[このトラストラインを承認した](authorized-trust-lines.html)場合は`true`。省略されている場合は、`false`と同じです。 | -| `freeze` | ブール値 | (省略される場合があります)このアカウントがこのトラストラインを[凍結](freezes.html)した場合は`true`。省略されている場合は、`false`と同じです。 | -| `freeze_peer` | ブール値 | (省略される場合があります)ピアアカウントがこのトラストラインを[凍結](freezes.html)した場合は、`true`。省略されている場合は、`false`と同じです。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -* `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# account_lines +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountLines.cpp "Source") + +`account_lines`メソッドは、アカウントのトラストラインに関する情報(XRP以外のあらゆる通貨の残高と資産など)を返します。取得された情報はすべて、特定バージョンのレジャーに関連付けられています。 + +## 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 1, + "command": "account_lines", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" +} +``` + +*JSON-RPC* + +``` +{ + "method": "account_lines", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" + } + ] +} +``` + + + +[試してみる>](websocket-api-tool.html#account_lines) + +要求には以下のパラメーターを指定できます。 + +| `Field` | 型 | 説明 | +|:---------------|:-------------------------------------------|:---------------| +| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントの[アドレス][]です。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | +| `peer` | 文字列 | _(省略可)_ 2番目のアカウントの[アドレス][]。指定されている場合は、2つのアカウントを結ぶトラストラインだけが出力されます。 | +| `limit` | 整数 | (省略可、デフォルト値は可変)取得するトランザクションの数を制限します。サーバーはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。[新規: rippled 0.26.4][] | +| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。[新規: rippled 0.26.4][] | + +以下のパラメーターは廃止予定であり、今後予告なしに削除される可能性があります。`ledger`および`peer_index`。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 1, + "status": "success", + "type": "response", + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "lines": [ + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "ASP", + "limit": "0", + "limit_peer": "10", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "XAU", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "balance": "3.497605752725159", + "currency": "USD", + "limit": "5", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + } + ] + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "lines": [ + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "ASP", + "limit": "0", + "limit_peer": "10", + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "balance": "0", + "currency": "XAU", + "limit": "0", + "limit_peer": "0", + "no_ripple": true, + "no_ripple_peer": true, + "quality_in": 0, + "quality_out": 0 + }, + { + "account": "rs9M85karFkCRjvc6KMWn8Coigm9cbcgcx", + "balance": "0", + "currency": "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "limit": "10.01037626125837", + "limit_peer": "0", + "no_ripple": true, + "quality_in": 0, + "quality_out": 0 + } + ], + "status": "success" + } +} +``` + + + +この応答は[標準のフォーマット][]に従っており、正常に完了した場合には、アカウントのアドレスとトラストラインオブジェクトの配列が含まれています。具体的には、結果オブジェクトには以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-------------------------------------------|:-------| +| `account` | 文字列 | この要求に対応するアカウントの一意の[アドレス][]。トラストラインのための「パースペクティブアカウント」です。 | +| `lines` | 配列 | トラストラインオブジェクトからなる配列。以下で説明します。トラストラインの数が多い場合は、一度に`limit`の数までのトラストラインが返されます。 | +| `ledger_current_index` | 整数 | (`ledger_hash`または`ledger_index`が指定されている場合は省略)このデータの取得時に使用したレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | +| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略)要求に指定され、このデータの取得時に使用されたレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | +| `ledger_hash` | 文字列 | (省略される場合があります)要求に指定され、このデータの取得時に使用されたレジャーバージョンの16進数ハッシュ。[新規: rippled 0.26.4-sp1][] | +| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。[新規: rippled 0.26.4][] | + +各トラストラインオブジェクトには以下のフィールドの組み合わせが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------|:-----------------|:---------------------------------------| +| `account` | 文字列 | このトラストラインの相手側の一意の[アドレス][]。 | +| `balance` | 文字列 | 現在このラインに対して保留されている残高(数値)の表示。残高がプラスの場合はパースペクティブアカウントがその額を保有しており、マイナスの場合はパースペクティブアカウントがその額を借用しています。 | +| `currency` | 文字列 | このトラストラインが保有できる通貨を示す[通貨コード][]。 | +| `limit` | 文字列 | このアカウントがピアアカウントからの借用を希望する特定の通貨の上限額。 | +| `limit_peer` | 文字列 | 相手側アカウントがパースペクティブアカウントからの借用を希望する特定の通貨の上限額。 | +| `quality_in` | 符号なし整数 | このアカウントが、このトラストラインの入金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | +| `quality_out` | 符号なし整数 | このアカウントが、このトラストラインの出金時残高を評価する際のレート(この数値対10億単位の比率)。(たとえば5億の場合は0.5:1の比率を表します。)特殊なケースとして、0は1:1の比率として扱われます。 | +| `no_ripple` | ブール値 | (省略される場合があります)このアカウントでこのラインに対し[NoRippleフラグ](rippling.html)が有効な場合は、`true`。省略されている場合は、`false`と同じです。 | +| `no_ripple_peer` | ブール値 | (省略される場合があります)ピアアカウントでこのラインに対し[NoRippleフラグ](rippling.html)が有効な場合は`true`。省略されている場合は、`false`と同じです。 | +| `authorized` | ブール値 | (省略される場合があります)このアカウントが[このトラストラインを承認した](authorized-trust-lines.html)場合は、`true`。省略されている場合は、`false`と同じです。 | +| `peer_authorized`| ブール値 | (省略される場合があります)ピアアカウントが[このトラストラインを承認した](authorized-trust-lines.html)場合は`true`。省略されている場合は、`false`と同じです。 | +| `freeze` | ブール値 | (省略される場合があります)このアカウントがこのトラストラインを[凍結](freezes.html)した場合は`true`。省略されている場合は、`false`と同じです。 | +| `freeze_peer` | ブール値 | (省略される場合があります)ピアアカウントがこのトラストラインを[凍結](freezes.html)した場合は、`true`。省略されている場合は、`false`と同じです。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.ja.md index 118f20e102..b87e84c3e0 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.ja.md @@ -1,623 +1,623 @@ -# account_objects -[[ソース]
](https://github.com/ripple/rippled/blob/399c43cae6e90a428e9ce6a988123972b0f03c99/src/ripple/rpc/handlers/AccountObjects.cpp "Source") - -`account_objects`コマンドは、アカウントが所有するすべてのオブジェクトの生[レジャーフォーマット][]を返します。アカウントのトラストラインと残高の概要については、[account_linesメソッド][]を参照してください。 - -[レジャーフォーマット]: ledger-data-formats.html - -アカウントの`account_objects`応答に含まれる可能性のあるオブジェクトのタイプには以下のものがあります。 - -- 現在処理中、資金化されていない、または有効期限切れで削除されていないオーダーの[Offerオブジェクト](offer.html)。(詳細は、[オファーのライフサイクル](offers.html#オファーのライフサイクル)を参照してください。) -- このアカウント側がデフォルト状態にないトラストラインの[RippleStateオブジェクト](ripplestate.html)。 -- アカウントの[SignerList](signerlist.html)(アカウントで[マルチ署名](multi-signing.html)が有効な場合)。 -- 実行されていないかまたは取り消されていない保留中の支払いの[Escrowオブジェクト](escrow.html)。 -- オープンPayment Channelの[PayChannelオブジェクト](paychannel.html)。 -- 保留中のCheckの[Checkオブジェクト](check.html)。 -- Deposit Preauthorizationの[DepositPreauthオブジェクト](depositpreauth-object.html)。[新規: rippled 1.1.0][] - - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 1, - "command": "account_objects", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "validated", - "type": "state", - "limit": 10 -} -``` - -*JSON-RPC* - -``` -{ - "method": "account_objects", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "validated", - "limit": 10, - "type": "state" - } - ] -} -``` - - -*コマンドライン* - -``` -#Syntax: account_objects [] -rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:---------------| -| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントのアドレスです。 | -| `type` | 文字列 | _(省略可)_ 指定されている場合、結果をフィルタリングしてこのタイプのレジャーオブジェクトのみが含まれるようにします。有効なタイプは`check`、`deposit_preauth`、`escrow`、`offer`、`payment_channel`、`signer_list`、および`state`(トラストライン)です。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `limit` | 符号なし整数 | _(省略可)_ 結果に含めることができるオブジェクトの最大数。非管理者接続では10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | -| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 8, - "status": "success", - "type": "response", - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "account_objects": [ - { - "Balance": { - "currency": "ASP", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 65536, - "HighLimit": { - "currency": "ASP", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "ASP", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "10" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", - "PreviousTxnLgrSeq": 1438879, - "index": "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" - }, - { - "Balance": { - "currency": "XAU", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 3342336, - "HighLimit": { - "currency": "XAU", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "XAU", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "0" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", - "PreviousTxnLgrSeq": 5982530, - "index": "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" - }, - { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 1114112, - "HighLimit": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "5" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "6FE8C824364FB1195BCFEDCB368DFEE3980F7F78D3BF4DC4174BB4C86CF8C5CE", - "PreviousTxnLgrSeq": 10555014, - "index": "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" - }, - { - "Balance": { - "currency": "MXN", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "481.992867407479" - }, - "Flags": 65536, - "HighLimit": { - "currency": "MXN", - "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "MXN", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "1000" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", - "PreviousTxnLgrSeq": 3316170, - "index": "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" - }, - { - "Balance": { - "currency": "EUR", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0.793598266778297" - }, - "Flags": 1114112, - "HighLimit": { - "currency": "EUR", - "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "EUR", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "1" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", - "PreviousTxnLgrSeq": 5447146, - "index": "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" - }, - { - "Balance": { - "currency": "CNY", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 2228224, - "HighLimit": { - "currency": "CNY", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "CNY", - "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "value": "0" - }, - "LowNode": "0000000000000008", - "PreviousTxnID": "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", - "PreviousTxnLgrSeq": 5949673, - "index": "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" - }, - { - "Balance": { - "currency": "DYM", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "1.336889190631542" - }, - "Flags": 65536, - "HighLimit": { - "currency": "DYM", - "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "DYM", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", - "PreviousTxnLgrSeq": 8818732, - "index": "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" - }, - { - "Balance": { - "currency": "CHF", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-0.3488146605801446" - }, - "Flags": 131072, - "HighLimit": { - "currency": "CHF", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "CHF", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "000000000000008C", - "PreviousTxnID": "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", - "PreviousTxnLgrSeq": 2687590, - "index": "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" - }, - { - "Balance": { - "currency": "BTC", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 131072, - "HighLimit": { - "currency": "BTC", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "0000000000000043", - "PreviousTxnID": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", - "PreviousTxnLgrSeq": 8317037, - "index": "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" - }, - { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-16.00534471983042" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "5000" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "000000000000004A", - "PreviousTxnID": "CFFF5CFE623C9543308C6529782B6A6532207D819795AAFE85555DB8BF390FE7", - "PreviousTxnLgrSeq": 14365854, - "index": "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" - } - ], - "ledger_hash": "053DF17D2289D1C4971C22F235BC1FCA7D4B3AE966F842E5819D0749E0B8ECD3", - "ledger_index": 14378733, - "limit": 10, - "marker": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93,94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5", - "validated": true - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "account_objects": [ - { - "Balance": { - "currency": "ASP", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 65536, - "HighLimit": { - "currency": "ASP", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "ASP", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "10" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", - "PreviousTxnLgrSeq": 1438879, - "index": "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" - }, - { - "Balance": { - "currency": "XAU", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 3342336, - "HighLimit": { - "currency": "XAU", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "XAU", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "0" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", - "PreviousTxnLgrSeq": 5982530, - "index": "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" - }, - { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 1114112, - "HighLimit": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "5" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "6FE8C824364FB1195BCFEDCB368DFEE3980F7F78D3BF4DC4174BB4C86CF8C5CE", - "PreviousTxnLgrSeq": 10555014, - "index": "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" - }, - { - "Balance": { - "currency": "MXN", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "481.992867407479" - }, - "Flags": 65536, - "HighLimit": { - "currency": "MXN", - "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "MXN", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "1000" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", - "PreviousTxnLgrSeq": 3316170, - "index": "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" - }, - { - "Balance": { - "currency": "EUR", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0.793598266778297" - }, - "Flags": 1114112, - "HighLimit": { - "currency": "EUR", - "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "EUR", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "1" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", - "PreviousTxnLgrSeq": 5447146, - "index": "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" - }, - { - "Balance": { - "currency": "CNY", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 2228224, - "HighLimit": { - "currency": "CNY", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "CNY", - "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "value": "0" - }, - "LowNode": "0000000000000008", - "PreviousTxnID": "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", - "PreviousTxnLgrSeq": 5949673, - "index": "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" - }, - { - "Balance": { - "currency": "DYM", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "1.336889190631542" - }, - "Flags": 65536, - "HighLimit": { - "currency": "DYM", - "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "DYM", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "LowNode": "0000000000000000", - "PreviousTxnID": "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", - "PreviousTxnLgrSeq": 8818732, - "index": "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" - }, - { - "Balance": { - "currency": "CHF", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-0.3488146605801446" - }, - "Flags": 131072, - "HighLimit": { - "currency": "CHF", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "0" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "CHF", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "000000000000008C", - "PreviousTxnID": "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", - "PreviousTxnLgrSeq": 2687590, - "index": "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" - }, - { - "Balance": { - "currency": "BTC", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 131072, - "HighLimit": { - "currency": "BTC", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "3" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "0000000000000043", - "PreviousTxnID": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", - "PreviousTxnLgrSeq": 8317037, - "index": "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" - }, - { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-16.00534471983042" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "5000" - }, - "HighNode": "0000000000000000", - "LedgerEntryType": "RippleState", - "LowLimit": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0" - }, - "LowNode": "000000000000004A", - "PreviousTxnID": "CFFF5CFE623C9543308C6529782B6A6532207D819795AAFE85555DB8BF390FE7", - "PreviousTxnLgrSeq": 14365854, - "index": "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" - } - ], - "ledger_hash": "4C99E5F63C0D0B1C2283B4F5DCE2239F80CE92E8B1A6AED1E110C198FC96E659", - "ledger_index": 14380380, - "limit": 10, - "marker": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93,94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5", - "status": "success", - "validated": true - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-------------------------------------------|:-------| -| `account` | 文字列 | この要求に対応するアカウントの一意の[アドレス][]。 | -| `account_objects` | 配列 | このアカウントが所有するオブジェクトの配列。生[レジャーフォーマット][]の各オブジェクト。 | -| `ledger_hash` | 文字列 | (省略される場合があります)この応答の生成に使用されたレジャーの識別用ハッシュ。 | -| `ledger_index` | 数値 | (省略される場合があります)この応答の生成に使用されたレジャーバージョンのシーケンス番号。 | -| `ledger_current_index` | 数値 | (省略される場合があります)この応答の生成に使用された現在処理中のレジャーバージョンのシーケンス番号。 | -| `limit` | 数値 | (省略される場合があります)この要求で使用されていた制限(制限の使用がある場合)。 | -| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。 | -| `validated` | ブール値 | このフィールドが含まれていて`true`に設定されている場合、この応答内の情報は検証済みのレジャーバージョンから取得されています。trueでない場合、情報は変更されることがあります。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# account_objects +[[ソース]
](https://github.com/ripple/rippled/blob/399c43cae6e90a428e9ce6a988123972b0f03c99/src/ripple/rpc/handlers/AccountObjects.cpp "Source") + +`account_objects`コマンドは、アカウントが所有するすべてのオブジェクトの生[レジャーフォーマット][]を返します。アカウントのトラストラインと残高の概要については、[account_linesメソッド][]を参照してください。 + +[レジャーフォーマット]: ledger-data-formats.html + +アカウントの`account_objects`応答に含まれる可能性のあるオブジェクトのタイプには以下のものがあります。 + +- 現在処理中、資金化されていない、または有効期限切れで削除されていないオーダーの[Offerオブジェクト](offer.html)。(詳細は、[オファーのライフサイクル](offers.html#オファーのライフサイクル)を参照してください。) +- このアカウント側がデフォルト状態にないトラストラインの[RippleStateオブジェクト](ripplestate.html)。 +- アカウントの[SignerList](signerlist.html)(アカウントで[マルチ署名](multi-signing.html)が有効な場合)。 +- 実行されていないかまたは取り消されていない保留中の支払いの[Escrowオブジェクト](escrow.html)。 +- オープンPayment Channelの[PayChannelオブジェクト](paychannel.html)。 +- 保留中のCheckの[Checkオブジェクト](check.html)。 +- Deposit Preauthorizationの[DepositPreauthオブジェクト](depositpreauth-object.html)。[新規: rippled 1.1.0][] + + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 1, + "command": "account_objects", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "validated", + "type": "state", + "limit": 10 +} +``` + +*JSON-RPC* + +``` +{ + "method": "account_objects", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "validated", + "limit": 10, + "type": "state" + } + ] +} +``` + + +*コマンドライン* + +``` +#Syntax: account_objects [] +rippled account_objects r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:-------------------------------------------|:---------------| +| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントのアドレスです。 | +| `type` | 文字列 | _(省略可)_ 指定されている場合、結果をフィルタリングしてこのタイプのレジャーオブジェクトのみが含まれるようにします。有効なタイプは`check`、`deposit_preauth`、`escrow`、`offer`、`payment_channel`、`signer_list`、および`state`(トラストライン)です。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | +| `limit` | 符号なし整数 | _(省略可)_ 結果に含めることができるオブジェクトの最大数。非管理者接続では10以上400以下の範囲で値を指定する必要があります。デフォルトでは200です。 | +| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 8, + "status": "success", + "type": "response", + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "account_objects": [ + { + "Balance": { + "currency": "ASP", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 65536, + "HighLimit": { + "currency": "ASP", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "ASP", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "10" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", + "PreviousTxnLgrSeq": 1438879, + "index": "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" + }, + { + "Balance": { + "currency": "XAU", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 3342336, + "HighLimit": { + "currency": "XAU", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "XAU", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", + "PreviousTxnLgrSeq": 5982530, + "index": "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6FE8C824364FB1195BCFEDCB368DFEE3980F7F78D3BF4DC4174BB4C86CF8C5CE", + "PreviousTxnLgrSeq": 10555014, + "index": "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" + }, + { + "Balance": { + "currency": "MXN", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "481.992867407479" + }, + "Flags": 65536, + "HighLimit": { + "currency": "MXN", + "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "MXN", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", + "PreviousTxnLgrSeq": 3316170, + "index": "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" + }, + { + "Balance": { + "currency": "EUR", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0.793598266778297" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "EUR", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "EUR", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", + "PreviousTxnLgrSeq": 5447146, + "index": "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" + }, + { + "Balance": { + "currency": "CNY", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "CNY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CNY", + "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "value": "0" + }, + "LowNode": "0000000000000008", + "PreviousTxnID": "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", + "PreviousTxnLgrSeq": 5949673, + "index": "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" + }, + { + "Balance": { + "currency": "DYM", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "1.336889190631542" + }, + "Flags": 65536, + "HighLimit": { + "currency": "DYM", + "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "DYM", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", + "PreviousTxnLgrSeq": 8818732, + "index": "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" + }, + { + "Balance": { + "currency": "CHF", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.3488146605801446" + }, + "Flags": 131072, + "HighLimit": { + "currency": "CHF", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CHF", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000008C", + "PreviousTxnID": "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", + "PreviousTxnLgrSeq": 2687590, + "index": "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" + }, + { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "0000000000000043", + "PreviousTxnID": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", + "PreviousTxnLgrSeq": 8317037, + "index": "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-16.00534471983042" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000004A", + "PreviousTxnID": "CFFF5CFE623C9543308C6529782B6A6532207D819795AAFE85555DB8BF390FE7", + "PreviousTxnLgrSeq": 14365854, + "index": "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" + } + ], + "ledger_hash": "053DF17D2289D1C4971C22F235BC1FCA7D4B3AE966F842E5819D0749E0B8ECD3", + "ledger_index": 14378733, + "limit": 10, + "marker": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93,94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5", + "validated": true + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "account_objects": [ + { + "Balance": { + "currency": "ASP", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 65536, + "HighLimit": { + "currency": "ASP", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "ASP", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "10" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "BF7555B0F018E3C5E2A3FF9437A1A5092F32903BE246202F988181B9CED0D862", + "PreviousTxnLgrSeq": 1438879, + "index": "2243B0B630EA6F7330B654EFA53E27A7609D9484E535AB11B7F946DF3D247CE9" + }, + { + "Balance": { + "currency": "XAU", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 3342336, + "HighLimit": { + "currency": "XAU", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "XAU", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "79B26D7D34B950AC2C2F91A299A6888FABB376DD76CFF79D56E805BF439F6942", + "PreviousTxnLgrSeq": 5982530, + "index": "9ED4406351B7A511A012A9B5E7FE4059FA2F7650621379C0013492C315E25B97" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6FE8C824364FB1195BCFEDCB368DFEE3980F7F78D3BF4DC4174BB4C86CF8C5CE", + "PreviousTxnLgrSeq": 10555014, + "index": "2DECFAC23B77D5AEA6116C15F5C6D4669EBAEE9E7EE050A40FE2B1E47B6A9419" + }, + { + "Balance": { + "currency": "MXN", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "481.992867407479" + }, + "Flags": 65536, + "HighLimit": { + "currency": "MXN", + "issuer": "rHpXfibHgSb64n8kK9QWDpdbfqSpYbM9a4", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "MXN", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1000" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "A467BACE5F183CDE1F075F72435FE86BAD8626ED1048EDEFF7562A4CC76FD1C5", + "PreviousTxnLgrSeq": 3316170, + "index": "EC8B9B6B364AF6CB6393A423FDD2DDBA96375EC772E6B50A3581E53BFBDFDD9A" + }, + { + "Balance": { + "currency": "EUR", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0.793598266778297" + }, + "Flags": 1114112, + "HighLimit": { + "currency": "EUR", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "EUR", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "E9345D44433EA368CFE1E00D84809C8E695C87FED18859248E13662D46A0EC46", + "PreviousTxnLgrSeq": 5447146, + "index": "4513749B30F4AF8DA11F077C448128D6486BF12854B760E4E5808714588AA915" + }, + { + "Balance": { + "currency": "CNY", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 2228224, + "HighLimit": { + "currency": "CNY", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CNY", + "issuer": "rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "value": "0" + }, + "LowNode": "0000000000000008", + "PreviousTxnID": "2FDDC81F4394695B01A47913BEC4281AC9A283CC8F903C14ADEA970F60E57FCF", + "PreviousTxnLgrSeq": 5949673, + "index": "578C327DA8944BDE2E10C9BA36AFA2F43E06C8D1E8819FB225D266CBBCFDE5CE" + }, + { + "Balance": { + "currency": "DYM", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "1.336889190631542" + }, + "Flags": 65536, + "HighLimit": { + "currency": "DYM", + "issuer": "rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "DYM", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "LowNode": "0000000000000000", + "PreviousTxnID": "6DA2BD02DFB83FA4DAFC2651860B60071156171E9C021D9E0372A61A477FFBB1", + "PreviousTxnLgrSeq": 8818732, + "index": "5A2A5FF12E71AEE57564E624117BBA68DEF78CD564EF6259F92A011693E027C7" + }, + { + "Balance": { + "currency": "CHF", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-0.3488146605801446" + }, + "Flags": 131072, + "HighLimit": { + "currency": "CHF", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "0" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "CHF", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000008C", + "PreviousTxnID": "722394372525A13D1EAAB005642F50F05A93CF63F7F472E0F91CDD6D38EB5869", + "PreviousTxnLgrSeq": 2687590, + "index": "F2DBAD20072527F6AD02CE7F5A450DBC72BE2ABB91741A8A3ADD30D5AD7A99FB" + }, + { + "Balance": { + "currency": "BTC", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "BTC", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "3" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "0000000000000043", + "PreviousTxnID": "03EDF724397D2DEE70E49D512AECD619E9EA536BE6CFD48ED167AE2596055C9A", + "PreviousTxnLgrSeq": 8317037, + "index": "767C12AF647CDF5FEB9019B37018748A79C50EDAF87E8D4C7F39F78AA7CA9765" + }, + { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-16.00534471983042" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "5000" + }, + "HighNode": "0000000000000000", + "LedgerEntryType": "RippleState", + "LowLimit": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0" + }, + "LowNode": "000000000000004A", + "PreviousTxnID": "CFFF5CFE623C9543308C6529782B6A6532207D819795AAFE85555DB8BF390FE7", + "PreviousTxnLgrSeq": 14365854, + "index": "826CF5BFD28F3934B518D0BDF3231259CBD3FD0946E3C3CA0C97D2C75D2D1A09" + } + ], + "ledger_hash": "4C99E5F63C0D0B1C2283B4F5DCE2239F80CE92E8B1A6AED1E110C198FC96E659", + "ledger_index": 14380380, + "limit": 10, + "marker": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93,94A9F05FEF9A153229E2E997E64919FD75AAE2028C8153E8EBDB4440BD3ECBB5", + "status": "success", + "validated": true + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-------------------------------------------|:-------| +| `account` | 文字列 | この要求に対応するアカウントの一意の[アドレス][]。 | +| `account_objects` | 配列 | このアカウントが所有するオブジェクトの配列。生[レジャーフォーマット][]の各オブジェクト。 | +| `ledger_hash` | 文字列 | (省略される場合があります)この応答の生成に使用されたレジャーの識別用ハッシュ。 | +| `ledger_index` | 数値 | (省略される場合があります)この応答の生成に使用されたレジャーバージョンのシーケンス番号。 | +| `ledger_current_index` | 数値 | (省略される場合があります)この応答の生成に使用された現在処理中のレジャーバージョンのシーケンス番号。 | +| `limit` | 数値 | (省略される場合があります)この要求で使用されていた制限(制限の使用がある場合)。 | +| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に追加のページがない場合は省略されます。 | +| `validated` | ブール値 | このフィールドが含まれていて`true`に設定されている場合、この応答内の情報は検証済みのレジャーバージョンから取得されています。trueでない場合、情報は変更されることがあります。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_offers.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_offers.ja.md index 172826c1f7..c2da19118a 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/account_offers.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_offers.ja.md @@ -1,189 +1,189 @@ -# account_offers -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountOffers.cpp "Source") - -`account_offers`メソッドは、特定のアカウントから出されたオファーのうち、特定のレジャーバージョンで未処理であったオファーのリストを取得します。 - -## 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "account_offers", - "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" -} -``` - -*JSON-RPC* - -``` -{ - "method": "account_offers", - "params": [ - { - "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: account_offers account [ledger_index] -rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current -``` - - - -[試してみる>](websocket-api-tool.html#account_offers) - -要求には以下のパラメーターを指定できます。 - -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:---------------| -| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントの[アドレス][]です。 | -| `ledger` | 符号なし整数または文字列 | (廃止予定、省略可)使用するレジャーバージョンの一意のID(レジャーのシーケンス番号、ハッシュ、「validated」などのショートカットなど)。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンを識別する20バイトの16進文字列。 | -| `ledger_index` | [レジャーインデックス][] | (省略可、デフォルトでは`current`)使用するレジャーのシーケンス番号、またはレジャーを動的に選択するための「current」、「closed」、「validated」のいずれか。([レジャーの指定][]を参照してください) | -| `limit` | 整数 | (省略可、デフォルト値は可変)取得するトランザクションの数を制限します。サーバーはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。[新規: rippled 0.26.4][] | -| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。[新規: rippled 0.26.4][] | - -以下のパラメーターは廃止予定であり、今後予告なしに削除される可能性があります。`ledger`。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 9, - "status": "success", - "type": "response", - "result": { - "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "ledger_current_index": 18539550, - "offers": [ - { - "flags": 0, - "quality": "0.00000000574666765650638", - "seq": 6577664, - "taker_gets": "33687728098", - "taker_pays": { - "currency": "EUR", - "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - "value": "193.5921774819578" - } - }, - { - "flags": 0, - "quality": "7989247009094510e-27", - "seq": 6572128, - "taker_gets": "2361918758", - "taker_pays": { - "currency": "XAU", - "issuer": "rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67", - "value": "0.01886995237307572" - } - }, - ... trimmed for length ... - ], - "validated": false - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", - "ledger_current_index": 18539596, - "offers": [{ - "flags": 0, - "quality": "0.000000007599140009999998", - "seq": 6578020, - "taker_gets": "29740867287", - "taker_pays": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "226.0050145327418" - } - }, { - "flags": 0, - "quality": "7989247009094510e-27", - "seq": 6572128, - "taker_gets": "2361918758", - "taker_pays": { - "currency": "XAU", - "issuer": "rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67", - "value": "0.01886995237307572" - } - }, { - "flags": 0, - "quality": "0.00000004059594001318974", - "seq": 6576905, - "taker_gets": "3892952574", - "taker_pays": { - "currency": "CNY", - "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", - "value": "158.0380691682966" - } - }, - - ... - - ], - "status": "success", - "validated": false - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-------------------------------------------|:-------| -| `account` | 文字列 | オファーを出したアカウントを識別する一意の[アドレス][] | -| `offers` | 配列 | オブジェクトの配列。各オブジェクトは、このアカウントが出したオファーの中で、レジャーバージョンが要求された時点で未処理のオファーを表します。オファーの数が多い場合は、一度に`limit`の数までのオファーが返されます。 | -| `ledger_current_index` | 整数 | (`ledger_hash`または`ledger_index`が指定されている場合は省略)このデータの取得時に使用したレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | -| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略)要求に指定され、このデータの取得時に使用されたレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | -| `ledger_hash` | 文字列 | _(省略される場合があります)_ 要求に指定され、このデータの取得時に使用されたレジャーバージョンの16進数ハッシュ。[新規: rippled 0.26.4-sp1][] | -| `marker` | [マーカー][] | _(省略される場合があります)_ 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。[新規: rippled 0.26.4][] | - - -各Offerオブジェクトのフィールドを次に示します。 - -| `Field` | 型 | 説明 | -|:-------------|:-----------------|:-------------------------------------------| -| `flags` | 符号なし整数 | このオファーエントリに対してビットフラグとして設定されているオプション。 | -| `seq` | 符号なし整数 | このエントリを作成したトランザクションのシーケンス番号。(トランザクションの[シーケンス番号](basic-data-types.html#アカウントシーケンス)はアカウントに関連付けられています。) | -| `taker_gets` | 文字列またはオブジェクト | オファーを受け入れるアカウントが受領する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][Currency Amount]を参照してください。) | -| `taker_pays` | 文字列またはオブジェクト | オファーを受け入れるアカウントが提供する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][Currency Amount]を参照してください。) | -| `quality` | 文字列 | オファーの為替レート。元の`taker_pays`を元の`taker_gets`で割った比率です。オファーの実行時には、最も好ましい(最も低い)クオリティのオファーが最初に消費されます。同じクオリティのオファーは古いものから新しいものの順で実行されます。[新規: rippled 0.29.0][] | -| `expiration` | 符号なし整数 | (省略される場合があります)この時刻の経過後は、資金化されなかったオファーとみなされます([Rippleエポック以降の経過秒数][])。関連項目: [オファーの有効期限](offers.html#オファーの有効期限)。[新規: rippled 0.30.1][] | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -* `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# account_offers +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountOffers.cpp "Source") + +`account_offers`メソッドは、特定のアカウントから出されたオファーのうち、特定のレジャーバージョンで未処理であったオファーのリストを取得します。 + +## 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "account_offers", + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" +} +``` + +*JSON-RPC* + +``` +{ + "method": "account_offers", + "params": [ + { + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM" + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: account_offers account [ledger_index] +rippled account_offers r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 current +``` + + + +[試してみる>](websocket-api-tool.html#account_offers) + +要求には以下のパラメーターを指定できます。 + +| `Field` | 型 | 説明 | +|:---------------|:-------------------------------------------|:---------------| +| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントの[アドレス][]です。 | +| `ledger` | 符号なし整数または文字列 | (廃止予定、省略可)使用するレジャーバージョンの一意のID(レジャーのシーケンス番号、ハッシュ、「validated」などのショートカットなど)。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンを識別する20バイトの16進文字列。 | +| `ledger_index` | [レジャーインデックス][] | (省略可、デフォルトでは`current`)使用するレジャーのシーケンス番号、またはレジャーを動的に選択するための「current」、「closed」、「validated」のいずれか。([レジャーの指定][]を参照してください) | +| `limit` | 整数 | (省略可、デフォルト値は可変)取得するトランザクションの数を制限します。サーバーはこの値に従う必要はありません。10以上400以下の範囲で値を指定する必要があります。[新規: rippled 0.26.4][] | +| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。[新規: rippled 0.26.4][] | + +以下のパラメーターは廃止予定であり、今後予告なしに削除される可能性があります。`ledger`。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 9, + "status": "success", + "type": "response", + "result": { + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "ledger_current_index": 18539550, + "offers": [ + { + "flags": 0, + "quality": "0.00000000574666765650638", + "seq": 6577664, + "taker_gets": "33687728098", + "taker_pays": { + "currency": "EUR", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", + "value": "193.5921774819578" + } + }, + { + "flags": 0, + "quality": "7989247009094510e-27", + "seq": 6572128, + "taker_gets": "2361918758", + "taker_pays": { + "currency": "XAU", + "issuer": "rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67", + "value": "0.01886995237307572" + } + }, + ... trimmed for length ... + ], + "validated": false + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "account": "rpP2JgiMyTF5jR5hLG3xHCPi1knBb1v9cM", + "ledger_current_index": 18539596, + "offers": [{ + "flags": 0, + "quality": "0.000000007599140009999998", + "seq": 6578020, + "taker_gets": "29740867287", + "taker_pays": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "226.0050145327418" + } + }, { + "flags": 0, + "quality": "7989247009094510e-27", + "seq": 6572128, + "taker_gets": "2361918758", + "taker_pays": { + "currency": "XAU", + "issuer": "rrh7rf1gV2pXAoqA8oYbpHd8TKv5ZQeo67", + "value": "0.01886995237307572" + } + }, { + "flags": 0, + "quality": "0.00000004059594001318974", + "seq": 6576905, + "taker_gets": "3892952574", + "taker_pays": { + "currency": "CNY", + "issuer": "rKiCet8SdvWxPXnAgYarFUXMh1zCPz432Y", + "value": "158.0380691682966" + } + }, + + ... + + ], + "status": "success", + "validated": false + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-------------------------------------------|:-------| +| `account` | 文字列 | オファーを出したアカウントを識別する一意の[アドレス][] | +| `offers` | 配列 | オブジェクトの配列。各オブジェクトは、このアカウントが出したオファーの中で、レジャーバージョンが要求された時点で未処理のオファーを表します。オファーの数が多い場合は、一度に`limit`の数までのオファーが返されます。 | +| `ledger_current_index` | 整数 | (`ledger_hash`または`ledger_index`が指定されている場合は省略)このデータの取得時に使用したレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | +| `ledger_index` | 整数 | (`ledger_current_index`が代わりに指定されている場合は省略)要求に指定され、このデータの取得時に使用されたレジャーバージョンのシーケンス番号。[新規: rippled 0.26.4-sp1][] | +| `ledger_hash` | 文字列 | _(省略される場合があります)_ 要求に指定され、このデータの取得時に使用されたレジャーバージョンの16進数ハッシュ。[新規: rippled 0.26.4-sp1][] | +| `marker` | [マーカー][] | _(省略される場合があります)_ 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。[新規: rippled 0.26.4][] | + + +各Offerオブジェクトのフィールドを次に示します。 + +| `Field` | 型 | 説明 | +|:-------------|:-----------------|:-------------------------------------------| +| `flags` | 符号なし整数 | このオファーエントリに対してビットフラグとして設定されているオプション。 | +| `seq` | 符号なし整数 | このエントリを作成したトランザクションのシーケンス番号。(トランザクションの[シーケンス番号](basic-data-types.html#アカウントシーケンス)はアカウントに関連付けられています。) | +| `taker_gets` | 文字列またはオブジェクト | オファーを受け入れるアカウントが受領する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]を参照してください。) | +| `taker_pays` | 文字列またはオブジェクト | オファーを受け入れるアカウントが提供する額。XRPまたは通貨指定オブジェクトの額を表す文字列として示されます。([通貨額の指定][通貨額]を参照してください。) | +| `quality` | 文字列 | オファーの為替レート。元の`taker_pays`を元の`taker_gets`で割った比率です。オファーの実行時には、最も好ましい(最も低い)クオリティのオファーが最初に消費されます。同じクオリティのオファーは古いものから新しいものの順で実行されます。[新規: rippled 0.29.0][] | +| `expiration` | 符号なし整数 | (省略される場合があります)この時刻の経過後は、資金化されなかったオファーとみなされます([Rippleエポック以降の経過秒数][])。関連項目: [オファーの有効期限](offers.html#オファーの有効期限)。[新規: rippled 0.30.1][] | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `actMalformed` - 指定されている`marker`フィールドが受け入れられない場合。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_tx.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_tx.ja.md index 12db96cb1c..18dad0973d 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/account_tx.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_tx.ja.md @@ -1,595 +1,595 @@ -# account_tx -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountTx.cpp "Source") - -`account_tx`メソッドは、指定したアカウントに関連するトランザクションのリストを取得します。 - -## 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "account_tx", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index_min": -1, - "ledger_index_max": -1, - "binary": false, - "limit": 2, - "forward": false -} -``` - -*JSON-RPC* - -``` -{ - "method": "account_tx", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "binary": false, - "forward": false, - "ledger_index_max": -1, - "ledger_index_min": -1, - "limit": 2 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax account_tx account ledger_index_min ledger_index_max [offset] [limit] [binary] [count] [forward] -rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 -``` - - - -[試してみる>](websocket-api-tool.html#account_tx) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:-------------------|:-------------------------------------------|:-----------| -| `account` | 文字列 | アカウントの一意のIDであり、最もよく使用されるのはアカウントのアドレスです。 | -| `ledger_index_min` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最古のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最古のバージョンを使用するよう、サーバーに指示します。 | -| `ledger_index_max` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最新のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最新のバージョンを使用するよう、サーバーに指示します。 | -| `ledger_hash` | 文字列 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]を参照してください。) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]を参照してください。) | -| `binary` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、JSONの代わりに16進文字列でトランザクションが返されます。 | -| `forward` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、最も古いレジャーを先頭としてインデックスが付けられた値が返されます。そうしない場合、最新のレジャーを先頭として結果にインデックスが付けられます。(結果を示した各ページの中身は順序よく整理されていない場合がありますが、ページ全体としては順序付けされています。) | -| `limit` | 整数 | _(省略可能)_ デフォルトは変化します。取得するトランザクションの数を制限します。サーバーがこの値を守る必要はありません。 | -| `marker` | [マーカー][] | 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。サーバーが使用できるレジャーの範囲に変更があっても、この値は変わりません。 | - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountTxSwitch.cpp "Source")
- -次の各フィールドは省略可能とされていますが、要求内で**1つ以上は使用する必要があります**: `ledger_index`、`ledger_hash`、`ledger_index_min`、または`ledger_index_max`。 - -**注記:** WebSocketとJSON-RPCについては、廃止予定の`account_tx`メソッドにの従来版もあります。このため、*次のすべてのフィールドの使用を控える*ことをお勧めします: `offset``count`、`descending`、`ledger_max`、`ledger_min`。これらの廃止予定のフィールドを使用した場合、メソッドでページネーションはサポートされません。 - -### 照会されたデータの繰り返し - -他のページネーションメソッドと同様に、`marker`フィールドを使用すると複数ページのデータが返されます。 - -複数の要求の合間に、`"ledger_index_min": -1`と`"ledger_index_max": -1`が変更されて、以前とは異なるレジャーバージョンを参照する場合があります。`marker`フィールドを使用すると、要求からのレジャー範囲に変更がある場合でも、マーカーが示すポイントが要求で指定されたレジャーの範囲外でない限り、安全にページネーションできます。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index_max": 6542489, - "ledger_index_min": 32570, - "limit": 2, - "transactions": [ - { - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "9999999980", - "Flags": 0, - "OwnerCount": 2, - "Sequence": 3 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", - "PreviousFields": { - "Balance": "9999999990", - "OwnerCount": 1, - "Sequence": 2 - }, - "PreviousTxnID": "389720F6FD8A144F171708F9ECB334D704CBCFEFBCDA152D931AC34FB5F9E32B", - "PreviousTxnLgrSeq": 95405 - } - }, - { - "CreatedNode": { - "LedgerEntryType": "RippleState", - "LedgerIndex": "718C6D58DD3BBAAAEBFE48B8FBE3C32C9F6F2EBC395233BA95D0057078EE07DB", - "NewFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "100" - }, - "LowLimit": { - "currency": "USD", - "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "value": "0" - } - } - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "Owner": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "RootIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "Balance": "78991384535796", - "Flags": 0, - "OwnerCount": 3, - "Sequence": 188 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "B33FDD5CF3445E1A7F2BE9B06336BEBD73A5E3EE885D3EF93F7E3E2992E46F1A", - "PreviousTxnID": "E9E1988A0F061679E5D14DE77DB0163CE0BBDC00F29E396FFD1DA0366E7D8904", - "PreviousTxnLgrSeq": 195455 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "ExchangeRate": "4E11C37937E08000", - "Flags": 0, - "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000004254430000000000", - "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" - } - } - ], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" - }, - "tx": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": "10", - "Flags": 0, - "LimitAmount": { - "currency": "USD", - "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "value": "100" - }, - "Sequence": 2, - "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", - "TransactionType": "TrustSet", - "TxnSignature": "304402200EF81EC32E0DFA9BE376B20AFCA11765ED9FEA04CA8B77C7178DAA699F7F5AFF02202DA484DBD66521AC317D84F7717EC4614E2F5DB743E313E8B48440499CC0DBA4", - "date": 413620090, - "hash": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", - "inLedger": 195480, - "ledger_index": 195480 - }, - "validated": true - }, - { - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "9999999970", - "Flags": 0, - "OwnerCount": 3, - "Sequence": 4 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", - "PreviousFields": { - "Balance": "9999999980", - "OwnerCount": 2, - "Sequence": 3 - }, - "PreviousTxnID": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", - "PreviousTxnLgrSeq": 195480 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "Owner": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "RootIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" - } - }, - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", - "PreviousTxnID": "0222B59280D165D40C464EA75AAD08A4D152C46A38C0625DEECF6EE87FC5B9E1", - "PreviousTxnLgrSeq": 343555 - } - }, - { - "CreatedNode": { - "LedgerEntryType": "RippleState", - "LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", - "NewFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "100" - }, - "LowLimit": { - "currency": "USD", - "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value": "0" - } - } - } - }, - { - "ModifiedNode": { - "FinalFields": { - "ExchangeRate": "4E11C37937E08000", - "Flags": 0, - "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000004254430000000000", - "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" - } - } - ], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" - }, - "tx": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": "10", - "Flags": 0, - "LimitAmount": { - "currency": "USD", - "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value": "100" - }, - "Sequence": 3, - "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", - "TransactionType": "TrustSet", - "TxnSignature": "3044022058A89552068D1A274EE72BA71363E33E54E6608BC28A84DEC6EE530FC2B5C979022029F4D1EA1237A1F717C5F5EC526E6CFB6DF54C30BADD25EDDE7D2FDBC8F17E34", - "date": 416347560, - "hash": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", - "inLedger": 343570, - "ledger_index": 343570 - }, - "validated": true - } - ], - "validated": true - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index_max": 8696227, - "ledger_index_min": 32570, - "limit": 2, - "status": "success", - "transactions": [ - { - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "9999999980", - "Flags": 0, - "OwnerCount": 2, - "Sequence": 3 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", - "PreviousFields": { - "Balance": "9999999990", - "OwnerCount": 1, - "Sequence": 2 - }, - "PreviousTxnID": "389720F6FD8A144F171708F9ECB334D704CBCFEFBCDA152D931AC34FB5F9E32B", - "PreviousTxnLgrSeq": 95405 - } - }, - { - "CreatedNode": { - "LedgerEntryType": "RippleState", - "LedgerIndex": "718C6D58DD3BBAAAEBFE48B8FBE3C32C9F6F2EBC395233BA95D0057078EE07DB", - "NewFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "100" - }, - "LowLimit": { - "currency": "USD", - "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "value": "0" - } - } - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "Owner": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "RootIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "Balance": "78991384535796", - "Flags": 0, - "OwnerCount": 3, - "Sequence": 188 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "B33FDD5CF3445E1A7F2BE9B06336BEBD73A5E3EE885D3EF93F7E3E2992E46F1A", - "PreviousTxnID": "E9E1988A0F061679E5D14DE77DB0163CE0BBDC00F29E396FFD1DA0366E7D8904", - "PreviousTxnLgrSeq": 195455 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "ExchangeRate": "4E11C37937E08000", - "Flags": 0, - "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000004254430000000000", - "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" - } - } - ], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" - }, - "tx": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": "10", - "Flags": 0, - "LimitAmount": { - "currency": "USD", - "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "value": "100" - }, - "Sequence": 2, - "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", - "TransactionType": "TrustSet", - "TxnSignature": "304402200EF81EC32E0DFA9BE376B20AFCA11765ED9FEA04CA8B77C7178DAA699F7F5AFF02202DA484DBD66521AC317D84F7717EC4614E2F5DB743E313E8B48440499CC0DBA4", - "date": 413620090, - "hash": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", - "inLedger": 195480, - "ledger_index": 195480 - }, - "validated": true - }, - { - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance": "9999999970", - "Flags": 0, - "OwnerCount": 3, - "Sequence": 4 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", - "PreviousFields": { - "Balance": "9999999980", - "OwnerCount": 2, - "Sequence": 3 - }, - "PreviousTxnID": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", - "PreviousTxnLgrSeq": 195480 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "Owner": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "RootIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" - } - }, - { - "ModifiedNode": { - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", - "PreviousTxnID": "0222B59280D165D40C464EA75AAD08A4D152C46A38C0625DEECF6EE87FC5B9E1", - "PreviousTxnLgrSeq": 343555 - } - }, - { - "CreatedNode": { - "LedgerEntryType": "RippleState", - "LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", - "NewFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "100" - }, - "LowLimit": { - "currency": "USD", - "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value": "0" - } - } - } - }, - { - "ModifiedNode": { - "FinalFields": { - "ExchangeRate": "4E11C37937E08000", - "Flags": 0, - "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000004254430000000000", - "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" - } - } - ], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" - }, - "tx": { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": "10", - "Flags": 0, - "LimitAmount": { - "currency": "USD", - "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value": "100" - }, - "Sequence": 3, - "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", - "TransactionType": "TrustSet", - "TxnSignature": "3044022058A89552068D1A274EE72BA71363E33E54E6608BC28A84DEC6EE530FC2B5C979022029F4D1EA1237A1F717C5F5EC526E6CFB6DF54C30BADD25EDDE7D2FDBC8F17E34", - "date": 416347560, - "hash": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", - "inLedger": 343570, - "ledger_index": 343570 - }, - "validated": true - } - ], - "validated": true - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:-------------------|:-------------------------------------------|:-----------| -| `account` | 文字列 | 関連するアカウントを識別する一意の[アドレス][]。 | -| `ledger_index_min` | 整数 | トランザクションで実際に検索された最古のレジャーのシーケンス番号。 | -| `ledger_index_max` | 整数 | トランザクションで実際に検索された最新のレジャーのシーケンス番号。 | -| `limit` | 整数 | 要求で使用される`limit`値。(サーバーによって強制される実際の制限値とは異なる場合があります。) | -| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わったところから再開されます。 | -| `transactions` | 配列 | 以降で説明する、要求の基準を満たすトランザクションの配列。 | -| `validated` | ブール値 | このフィールドが含まれていて`true`に設定されている場合、この応答内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | - -**注記:** サーバーから返される`ledger_index_min`および`ledger_index_max`の値が要求で指定したものとは異なる場合があります。例えば、サーバーに手元の指定したバージョンがない場合など。 - -各トランザクションのオブジェクトには以下のフィールドが含まれます。含まれるフィールドは、JSONまたは16進文字列(`"binary":true`)フォーマットのどちらで要求されたかによって異なります。 - -| `Field` | 型 | 説明 | -|:---------------|:---------------------------------|:-------------------------| -| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンのシーケンス番号。 | -| `meta` | オブジェクト(JSON)または文字列(バイナリ) | `binary`がTrueの場合、これは16進文字列のトランザクションメタデータです。そうでない場合、トランザクションメタデータはJSONフォーマットになります。 | -| `tx` | オブジェクト | (JSONモードのみ)トランザクションを定義するJSONオブジェクト。 | -| `tx_blob` | 文字列 | (バイナリモードのみ)トランザクションを表す一意のハッシュ化された文字列。 | -| `validated` | ブール値 | トランザクションが検証済みのレジャーに含まれるかどうか。検証済みのレジャーに含まれていないトランザクションはすべて、変更される場合があります。 | - -## 考えられるエラー - -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actMalformed` - 要求の`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 -* `actBitcoin` - `account`フィールドに指定された[アドレス][]が、XRP LedgerアドレスではなくBitcoinアドレスのようなフォーマットになっています。 -* `lgrIdxsInvalid` - `ledger_index_min`または`ledger_index_max`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# account_tx +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountTx.cpp "Source") + +`account_tx`メソッドは、指定したアカウントに関連するトランザクションのリストを取得します。 + +## 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "account_tx", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index_min": -1, + "ledger_index_max": -1, + "binary": false, + "limit": 2, + "forward": false +} +``` + +*JSON-RPC* + +``` +{ + "method": "account_tx", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "binary": false, + "forward": false, + "ledger_index_max": -1, + "ledger_index_min": -1, + "limit": 2 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax account_tx account ledger_index_min ledger_index_max [offset] [limit] [binary] [count] [forward] +rippled -- account_tx r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 -1 -1 2 5 1 0 1 +``` + + + +[試してみる>](websocket-api-tool.html#account_tx) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:-------------------|:-------------------------------------------|:-----------| +| `account` | 文字列 | アカウントの一意のIDであり、最もよく使用されるのはアカウントのアドレスです。 | +| `ledger_index_min` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最古のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最古のバージョンを使用するよう、サーバーに指示します。 | +| `ledger_index_max` | 整数 | _(省略可能)_ 含めるトランザクションのレジャーのうち最新のものを指定するのに使用します。`-1`の値は、使用可能な検証済みレジャーのうち最新のバージョンを使用するよう、サーバーに指示します。 | +| `ledger_hash` | 文字列 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]を参照してください。) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可能)_ 単一のレジャーからのみトランザクションを検索するのに使用します。([レジャーの指定][]を参照してください。) | +| `binary` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、JSONの代わりに16進文字列でトランザクションが返されます。 | +| `forward` | ブール値 | _(省略可能)_ デフォルトは`false`です。`true`に設定すると、最も古いレジャーを先頭としてインデックスが付けられた値が返されます。そうしない場合、最新のレジャーを先頭として結果にインデックスが付けられます。(結果を示した各ページの中身は順序よく整理されていない場合がありますが、ページ全体としては順序付けされています。) | +| `limit` | 整数 | _(省略可能)_ デフォルトは変化します。取得するトランザクションの数を制限します。サーバーがこの値を守る必要はありません。 | +| `marker` | [マーカー][] | 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。サーバーが使用できるレジャーの範囲に変更があっても、この値は変わりません。 | + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/AccountTxSwitch.cpp "Source")
+ +次の各フィールドは省略可能とされていますが、要求内で**1つ以上は使用する必要があります**: `ledger_index`、`ledger_hash`、`ledger_index_min`、または`ledger_index_max`。 + +**注記:** WebSocketとJSON-RPCについては、廃止予定の`account_tx`メソッドにの従来版もあります。このため、*次のすべてのフィールドの使用を控える*ことをお勧めします: `offset``count`、`descending`、`ledger_max`、`ledger_min`。これらの廃止予定のフィールドを使用した場合、メソッドでページネーションはサポートされません。 + +### 照会されたデータの繰り返し + +他のページネーションメソッドと同様に、`marker`フィールドを使用すると複数ページのデータが返されます。 + +複数の要求の合間に、`"ledger_index_min": -1`と`"ledger_index_max": -1`が変更されて、以前とは異なるレジャーバージョンを参照する場合があります。`marker`フィールドを使用すると、要求からのレジャー範囲に変更がある場合でも、マーカーが示すポイントが要求で指定されたレジャーの範囲外でない限り、安全にページネーションできます。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index_max": 6542489, + "ledger_index_min": 32570, + "limit": 2, + "transactions": [ + { + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "9999999980", + "Flags": 0, + "OwnerCount": 2, + "Sequence": 3 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", + "PreviousFields": { + "Balance": "9999999990", + "OwnerCount": 1, + "Sequence": 2 + }, + "PreviousTxnID": "389720F6FD8A144F171708F9ECB334D704CBCFEFBCDA152D931AC34FB5F9E32B", + "PreviousTxnLgrSeq": 95405 + } + }, + { + "CreatedNode": { + "LedgerEntryType": "RippleState", + "LedgerIndex": "718C6D58DD3BBAAAEBFE48B8FBE3C32C9F6F2EBC395233BA95D0057078EE07DB", + "NewFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "100" + }, + "LowLimit": { + "currency": "USD", + "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "value": "0" + } + } + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "RootIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "Balance": "78991384535796", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 188 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "B33FDD5CF3445E1A7F2BE9B06336BEBD73A5E3EE885D3EF93F7E3E2992E46F1A", + "PreviousTxnID": "E9E1988A0F061679E5D14DE77DB0163CE0BBDC00F29E396FFD1DA0366E7D8904", + "PreviousTxnLgrSeq": 195455 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "ExchangeRate": "4E11C37937E08000", + "Flags": 0, + "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004254430000000000", + "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "tx": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": "10", + "Flags": 0, + "LimitAmount": { + "currency": "USD", + "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "value": "100" + }, + "Sequence": 2, + "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", + "TransactionType": "TrustSet", + "TxnSignature": "304402200EF81EC32E0DFA9BE376B20AFCA11765ED9FEA04CA8B77C7178DAA699F7F5AFF02202DA484DBD66521AC317D84F7717EC4614E2F5DB743E313E8B48440499CC0DBA4", + "date": 413620090, + "hash": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", + "inLedger": 195480, + "ledger_index": 195480 + }, + "validated": true + }, + { + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "9999999970", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 4 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", + "PreviousFields": { + "Balance": "9999999980", + "OwnerCount": 2, + "Sequence": 3 + }, + "PreviousTxnID": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", + "PreviousTxnLgrSeq": 195480 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "RootIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" + } + }, + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", + "PreviousTxnID": "0222B59280D165D40C464EA75AAD08A4D152C46A38C0625DEECF6EE87FC5B9E1", + "PreviousTxnLgrSeq": 343555 + } + }, + { + "CreatedNode": { + "LedgerEntryType": "RippleState", + "LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", + "NewFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "100" + }, + "LowLimit": { + "currency": "USD", + "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value": "0" + } + } + } + }, + { + "ModifiedNode": { + "FinalFields": { + "ExchangeRate": "4E11C37937E08000", + "Flags": 0, + "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004254430000000000", + "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "tx": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": "10", + "Flags": 0, + "LimitAmount": { + "currency": "USD", + "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value": "100" + }, + "Sequence": 3, + "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", + "TransactionType": "TrustSet", + "TxnSignature": "3044022058A89552068D1A274EE72BA71363E33E54E6608BC28A84DEC6EE530FC2B5C979022029F4D1EA1237A1F717C5F5EC526E6CFB6DF54C30BADD25EDDE7D2FDBC8F17E34", + "date": 416347560, + "hash": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", + "inLedger": 343570, + "ledger_index": 343570 + }, + "validated": true + } + ], + "validated": true + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index_max": 8696227, + "ledger_index_min": 32570, + "limit": 2, + "status": "success", + "transactions": [ + { + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "9999999980", + "Flags": 0, + "OwnerCount": 2, + "Sequence": 3 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", + "PreviousFields": { + "Balance": "9999999990", + "OwnerCount": 1, + "Sequence": 2 + }, + "PreviousTxnID": "389720F6FD8A144F171708F9ECB334D704CBCFEFBCDA152D931AC34FB5F9E32B", + "PreviousTxnLgrSeq": 95405 + } + }, + { + "CreatedNode": { + "LedgerEntryType": "RippleState", + "LedgerIndex": "718C6D58DD3BBAAAEBFE48B8FBE3C32C9F6F2EBC395233BA95D0057078EE07DB", + "NewFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "100" + }, + "LowLimit": { + "currency": "USD", + "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "value": "0" + } + } + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "RootIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "77F65EFF930ED7E93C6CC839C421E394D6B1B6A47CEA8A140D63EC9C712F46F5" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "Balance": "78991384535796", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 188 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "B33FDD5CF3445E1A7F2BE9B06336BEBD73A5E3EE885D3EF93F7E3E2992E46F1A", + "PreviousTxnID": "E9E1988A0F061679E5D14DE77DB0163CE0BBDC00F29E396FFD1DA0366E7D8904", + "PreviousTxnLgrSeq": 195455 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "ExchangeRate": "4E11C37937E08000", + "Flags": 0, + "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004254430000000000", + "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "tx": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": "10", + "Flags": 0, + "LimitAmount": { + "currency": "USD", + "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "value": "100" + }, + "Sequence": 2, + "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", + "TransactionType": "TrustSet", + "TxnSignature": "304402200EF81EC32E0DFA9BE376B20AFCA11765ED9FEA04CA8B77C7178DAA699F7F5AFF02202DA484DBD66521AC317D84F7717EC4614E2F5DB743E313E8B48440499CC0DBA4", + "date": 413620090, + "hash": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", + "inLedger": 195480, + "ledger_index": 195480 + }, + "validated": true + }, + { + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance": "9999999970", + "Flags": 0, + "OwnerCount": 3, + "Sequence": 4 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", + "PreviousFields": { + "Balance": "9999999980", + "OwnerCount": 2, + "Sequence": 3 + }, + "PreviousTxnID": "002AA492496A1543DBD3680BF8CF21B6D6A078CE4A01D2C1A4B63778033792CE", + "PreviousTxnLgrSeq": 195480 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "Owner": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "RootIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "A39F044D860C5B5846AA7E0FAAD44DC8897F0A62B2F628AA073B21B3EC146010" + } + }, + { + "ModifiedNode": { + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", + "PreviousTxnID": "0222B59280D165D40C464EA75AAD08A4D152C46A38C0625DEECF6EE87FC5B9E1", + "PreviousTxnLgrSeq": 343555 + } + }, + { + "CreatedNode": { + "LedgerEntryType": "RippleState", + "LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", + "NewFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "100" + }, + "LowLimit": { + "currency": "USD", + "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value": "0" + } + } + } + }, + { + "ModifiedNode": { + "FinalFields": { + "ExchangeRate": "4E11C37937E08000", + "Flags": 0, + "RootIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004254430000000000", + "TakerPaysIssuer": "5E7B112523F68D2F5E879DB4EAC51C6698A69304" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "F60ADF645E78B69857D2E4AEC8B7742FEABC8431BD8611D099B428C3E816DF93" + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "tx": { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": "10", + "Flags": 0, + "LimitAmount": { + "currency": "USD", + "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value": "100" + }, + "Sequence": 3, + "SigningPubKey": "02BC8C02199949B15C005B997E7C8594574E9B02BA2D0628902E0532989976CF9D", + "TransactionType": "TrustSet", + "TxnSignature": "3044022058A89552068D1A274EE72BA71363E33E54E6608BC28A84DEC6EE530FC2B5C979022029F4D1EA1237A1F717C5F5EC526E6CFB6DF54C30BADD25EDDE7D2FDBC8F17E34", + "date": 416347560, + "hash": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", + "inLedger": 343570, + "ledger_index": 343570 + }, + "validated": true + } + ], + "validated": true + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:-------------------|:-------------------------------------------|:-----------| +| `account` | 文字列 | 関連するアカウントを識別する一意の[アドレス][]。 | +| `ledger_index_min` | 整数 | トランザクションで実際に検索された最古のレジャーのシーケンス番号。 | +| `ledger_index_max` | 整数 | トランザクションで実際に検索された最新のレジャーのシーケンス番号。 | +| `limit` | 整数 | 要求で使用される`limit`値。(サーバーによって強制される実際の制限値とは異なる場合があります。) | +| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わったところから再開されます。 | +| `transactions` | 配列 | 以降で説明する、要求の基準を満たすトランザクションの配列。 | +| `validated` | ブール値 | このフィールドが含まれていて`true`に設定されている場合、この応答内の情報は検証済みのレジャーバージョンから取得されています。そうでない場合、情報は変更されることがあります。 | + +**注記:** サーバーから返される`ledger_index_min`および`ledger_index_max`の値が要求で指定したものとは異なる場合があります。例えば、サーバーに手元の指定したバージョンがない場合など。 + +各トランザクションのオブジェクトには以下のフィールドが含まれます。含まれるフィールドは、JSONまたは16進文字列(`"binary":true`)フォーマットのどちらで要求されたかによって異なります。 + +| `Field` | 型 | 説明 | +|:---------------|:---------------------------------|:-------------------------| +| `ledger_index` | 整数 | このトランザクションを含むレジャーバージョンのシーケンス番号。 | +| `meta` | オブジェクト(JSON)または文字列(バイナリ) | `binary`がTrueの場合、これは16進文字列のトランザクションメタデータです。そうでない場合、トランザクションメタデータはJSONフォーマットになります。 | +| `tx` | オブジェクト | (JSONモードのみ)トランザクションを定義するJSONオブジェクト。 | +| `tx_blob` | 文字列 | (バイナリモードのみ)トランザクションを表す一意のハッシュ化された文字列。 | +| `validated` | ブール値 | トランザクションが検証済みのレジャーに含まれるかどうか。検証済みのレジャーに含まれていないトランザクションはすべて、変更される場合があります。 | + +## 考えられるエラー + +* いずれかの[汎用エラータイプ][]。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actMalformed` - 要求の`account`フィールドに指定した[アドレス][]が、正しいフォーマットではありません。 +* `actBitcoin` - `account`フィールドに指定された[アドレス][]が、XRP LedgerアドレスではなくBitcoinアドレスのようなフォーマットになっています。 +* `lgrIdxsInvalid` - `ledger_index_min`または`ledger_index_max`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/gateway_balances.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/gateway_balances.ja.md index 4a43600eb1..fcf7b1e96e 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/gateway_balances.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/gateway_balances.ja.md @@ -1,222 +1,222 @@ -# gateway_balances -[[ソース]
](https://github.com/ripple/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/GatewayBalances.cpp "Source") - -`gateway_balances`コマンドは、特定のアカウントから発行された残高の合計を計算します。オプションで、[運用アドレス](issuing-and-operational-addresses.html)が保有する額を除外できます。[新規: rippled 0.28.2][] - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": "example_gateway_balances_1", - "command": "gateway_balances", - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "strict": true, - "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ","ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], - "ledger_index": "validated" -} -``` - -*JSON-RPC* - -``` -{ - "method": "gateway_balances", - "params": [ - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "hotwallet": [ - "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", - "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt" - ], - "ledger_index": "validated", - "strict": true - } - ] -} -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | チェックする[アドレス][]。[発行アドレス](issuing-and-operational-addresses.html)である必要があります。 | -| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | -| `hotwallet` | 文字列または配列 | _(省略可)_ 発行済み残高から除外する[運用アドレス](issuing-and-operational-addresses.html)、またはそのようなアドレスの配列。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーバージョンのシーケンス番号、またはレジャーを自動的に選択するショートカット文字列。([レジャーの指定][]を参照してください) | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 3, - "status": "success", - "type": "response", - "result": { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "assets": { - "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH": [ - { - "currency": "BTC", - "value": "5444166510000000e-26" - } - ], - "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8": [ - { - "currency": "EUR", - "value": "4000000000000000e-27" - } - ], - "rPU6VbckqCLW4kb51CWqZdxvYyQrQVsnSj": [ - { - "currency": "BTC", - "value": "1029900000000000e-26" - } - ], - "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ": [ - { - "currency": "BTC", - "value": "4000000000000000e-30" - } - ], - "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6": [ - { - "currency": "BTC", - "value": "8700000000000000e-30" - } - ] - }, - "balances": { - "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ": [ - { - "currency": "EUR", - "value": "29826.1965999999" - } - ], - "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt": [ - { - "currency": "USD", - "value": "13857.70416" - } - ] - }, - "ledger_hash": "61DDBF304AF6E8101576BF161D447CA8E4F0170DDFBEAFFD993DC9383D443388", - "ledger_index": 14483195, - "obligations": { - "BTC": "5908.324927635318", - "EUR": "992471.7419793958", - "GBP": "4991.38706013193", - "USD": "1997134.20229482" - }, - "validated": true - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "assets": { - "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH": [ - { - "currency": "BTC", - "value": "5444166510000000e-26" - } - ], - "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8": [ - { - "currency": "EUR", - "value": "4000000000000000e-27" - } - ], - "rPU6VbckqCLW4kb51CWqZdxvYyQrQVsnSj": [ - { - "currency": "BTC", - "value": "1029900000000000e-26" - } - ], - "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ": [ - { - "currency": "BTC", - "value": "4000000000000000e-30" - } - ], - "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6": [ - { - "currency": "BTC", - "value": "8700000000000000e-30" - } - ] - }, - "balances": { - "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ": [ - { - "currency": "EUR", - "value": "29826.1965999999" - } - ], - "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt": [ - { - "currency": "USD", - "value": "13857.70416" - } - ] - }, - "ledger_hash": "980FECF48CA4BFDEC896692C31A50D484BDFE865EC101B00259C413AA3DBD672", - "ledger_index": 14483212, - "obligations": { - "BTC": "5908.324927635318", - "EUR": "992471.7419793958", - "GBP": "4991.38706013193", - "USD": "1997134.20229482" - }, - "status": "success", - "validated": true - } -} -``` - - - -**注記:** このメソッドのコマンドライン構文はありません。コマンドラインからアクセスするには[jsonメソッド][]を使用してください。 - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-------|:-------------------------------------------| -| `account` | 文字列 | 残高を発行したアカウントを識別する一意の[アドレス][]。 | -| `obligations` | オブジェクト | (空の場合は省略)除外されていないアドレスに発行された額の合計。発行された価値の合計に対する通貨のマップとして示されます。 | -| `balances` | オブジェクト | (空の場合は省略)要求から`hotwallet`アドレスに発行された額。キーはアドレスであり、値はアドレスが保有する通貨額の配列です。 | -| `assets` | オブジェクト | (空の場合は省略)他から発行された保有額の合計。推奨される構成では、[発行アドレス](issuing-and-operational-addresses.html)の保有額はありません。 | -| `ledger_hash` | 文字列 | (省略される場合があります)この応答の生成に使用されたレジャーの識別用ハッシュ。 | -| `ledger_index` | 数値 | (省略される場合があります)この応答の生成に使用されたレジャーバージョンのシーケンス番号。 | -| `ledger_current_index` | 数値 | (省略される場合があります)この応答の生成に使用された現在処理中のレジャーバージョンのシーケンス番号。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `invalidHotWallet` - `hotwallet`フィールドに指定されている1つ以上のアドレスが、要求に指定されているアカウントが発行した通貨を保有しているアカウントの[アドレス][]ではありません。 -* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# gateway_balances +[[ソース]
](https://github.com/ripple/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/GatewayBalances.cpp "Source") + +`gateway_balances`コマンドは、特定のアカウントから発行された残高の合計を計算します。オプションで、[運用アドレス](issuing-and-operational-addresses.html)が保有する額を除外できます。[新規: rippled 0.28.2][] + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": "example_gateway_balances_1", + "command": "gateway_balances", + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "strict": true, + "hotwallet": ["rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ","ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt"], + "ledger_index": "validated" +} +``` + +*JSON-RPC* + +``` +{ + "method": "gateway_balances", + "params": [ + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "hotwallet": [ + "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ", + "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt" + ], + "ledger_index": "validated", + "strict": true + } + ] +} +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `account` | 文字列 | チェックする[アドレス][]。[発行アドレス](issuing-and-operational-addresses.html)である必要があります。 | +| `strict` | ブール値 | _(省略可)_ trueの場合は、アカウントパラメーターにアドレスまたは公開鍵だけを受け入れます。デフォルトではfalseです。 | +| `hotwallet` | 文字列または配列 | _(省略可)_ 発行済み残高から除外する[運用アドレス](issuing-and-operational-addresses.html)、またはそのようなアドレスの配列。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーバージョンのシーケンス番号、またはレジャーを自動的に選択するショートカット文字列。([レジャーの指定][]を参照してください) | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 3, + "status": "success", + "type": "response", + "result": { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "assets": { + "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH": [ + { + "currency": "BTC", + "value": "5444166510000000e-26" + } + ], + "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8": [ + { + "currency": "EUR", + "value": "4000000000000000e-27" + } + ], + "rPU6VbckqCLW4kb51CWqZdxvYyQrQVsnSj": [ + { + "currency": "BTC", + "value": "1029900000000000e-26" + } + ], + "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ": [ + { + "currency": "BTC", + "value": "4000000000000000e-30" + } + ], + "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6": [ + { + "currency": "BTC", + "value": "8700000000000000e-30" + } + ] + }, + "balances": { + "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ": [ + { + "currency": "EUR", + "value": "29826.1965999999" + } + ], + "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt": [ + { + "currency": "USD", + "value": "13857.70416" + } + ] + }, + "ledger_hash": "61DDBF304AF6E8101576BF161D447CA8E4F0170DDFBEAFFD993DC9383D443388", + "ledger_index": 14483195, + "obligations": { + "BTC": "5908.324927635318", + "EUR": "992471.7419793958", + "GBP": "4991.38706013193", + "USD": "1997134.20229482" + }, + "validated": true + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "assets": { + "r9F6wk8HkXrgYWoJ7fsv4VrUBVoqDVtzkH": [ + { + "currency": "BTC", + "value": "5444166510000000e-26" + } + ], + "rPFLkxQk6xUGdGYEykqe7PR25Gr7mLHDc8": [ + { + "currency": "EUR", + "value": "4000000000000000e-27" + } + ], + "rPU6VbckqCLW4kb51CWqZdxvYyQrQVsnSj": [ + { + "currency": "BTC", + "value": "1029900000000000e-26" + } + ], + "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ": [ + { + "currency": "BTC", + "value": "4000000000000000e-30" + } + ], + "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6": [ + { + "currency": "BTC", + "value": "8700000000000000e-30" + } + ] + }, + "balances": { + "rKm4uWpg9tfwbVSeATv4KxDe6mpE9yPkgJ": [ + { + "currency": "EUR", + "value": "29826.1965999999" + } + ], + "ra7JkEzrgeKHdzKgo4EUUVBnxggY4z37kt": [ + { + "currency": "USD", + "value": "13857.70416" + } + ] + }, + "ledger_hash": "980FECF48CA4BFDEC896692C31A50D484BDFE865EC101B00259C413AA3DBD672", + "ledger_index": 14483212, + "obligations": { + "BTC": "5908.324927635318", + "EUR": "992471.7419793958", + "GBP": "4991.38706013193", + "USD": "1997134.20229482" + }, + "status": "success", + "validated": true + } +} +``` + + + +**注記:** このメソッドのコマンドライン構文はありません。コマンドラインからアクセスするには[jsonメソッド][]を使用してください。 + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-------|:-------------------------------------------| +| `account` | 文字列 | 残高を発行したアカウントを識別する一意の[アドレス][]。 | +| `obligations` | オブジェクト | (空の場合は省略)除外されていないアドレスに発行された額の合計。発行された価値の合計に対する通貨のマップとして示されます。 | +| `balances` | オブジェクト | (空の場合は省略)要求から`hotwallet`アドレスに発行された額。キーはアドレスであり、値はアドレスが保有する通貨額の配列です。 | +| `assets` | オブジェクト | (空の場合は省略)他から発行された保有額の合計。推奨される構成では、[発行アドレス](issuing-and-operational-addresses.html)の保有額はありません。 | +| `ledger_hash` | 文字列 | (省略される場合があります)この応答の生成に使用されたレジャーの識別用ハッシュ。 | +| `ledger_index` | 数値 | (省略される場合があります)この応答の生成に使用されたレジャーバージョンのシーケンス番号。 | +| `ledger_current_index` | 数値 | (省略される場合があります)この応答の生成に使用された現在処理中のレジャーバージョンのシーケンス番号。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `invalidHotWallet` - `hotwallet`フィールドに指定されている1つ以上のアドレスが、要求に指定されているアカウントが発行した通貨を保有しているアカウントの[アドレス][]ではありません。 +* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/noripple_check.ja.md b/content/references/rippled-api/public-rippled-methods/account-methods/noripple_check.ja.md index 4f823ca469..00a6a96c93 100644 --- a/content/references/rippled-api/public-rippled-methods/account-methods/noripple_check.ja.md +++ b/content/references/rippled-api/public-rippled-methods/account-methods/noripple_check.ja.md @@ -1,185 +1,185 @@ -# noripple_check -[[ソース]
](https://github.com/ripple/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/NoRippleCheck.cpp "Source") - -`noripple_check`コマンドを使用すると、[アカウントのDefaultRippleフィールドとそのトラストラインのNoRippleフラグ](rippling.html)の状態を、推奨される設定と比較して迅速にチェックできます。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 0, - "command": "noripple_check", - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "role": "gateway", - "ledger_index": "current", - "limit": 2, - "transactions": true -} -``` - -*JSON-RPC* - -``` -{ - "method": "noripple_check", - "params": [ - { - "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index": "current", - "limit": 2, - "role": "gateway", - "transactions": true - } - ] -} -``` - - - -**注記:** このメソッドのコマンドライン構文はありません。コマンドラインからアクセスするには[jsonメソッド][]を使用してください。 - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントのアドレスです。 | -| `role` | 文字列 | アドレスが`gateway`と`user`のいずれを指しているか。推奨事項はアカウントの役割に応じて異なります。イシュアーのDefaultRippleを有効にし、すべてのトラストラインでNoRippleを無効にする必要があります。ユーザーのDefaultRippleを無効にし、すべてのトラストラインでNoRippleを有効にする必要があります。 | -| `transactions` | ブール値 | _(省略可)_ `true`の場合、提案される[トランザクション](transaction-formats.html)(JSONオブジェクト)の配列を指定します。問題を修正するために、これらのトランザクションに署名して送信することができます。デフォルトではfalseです。 | -| `limit` | 符号なし整数 | _(省略可)_ 結果に含めることができるトラストライン問題の最大数。デフォルトでは300です。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]を参照してください。) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 0, - "status": "success", - "type": "response", - "result": { - "ledger_current_index": 14342939, - "problems": [ - "You should immediately set your default ripple flag", - "You should clear the no ripple flag on your XAU line to r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "You should clear the no ripple flag on your USD line to rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" - ], - "transactions": [ - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Sequence": 1406, - "SetFlag": 8, - "TransactionType": "AccountSet" - }, - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Flags": 262144, - "LimitAmount": { - "currency": "XAU", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "0" - }, - "Sequence": 1407, - "TransactionType": "TrustSet" - }, - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "5" - }, - "Sequence": 1408, - "TransactionType": "TrustSet" - } - ], - "validated": false - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "ledger_current_index": 14380381, - "problems": [ - "You should immediately set your default ripple flag", - "You should clear the no ripple flag on your XAU line to r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "You should clear the no ripple flag on your USD line to rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" - ], - "status": "success", - "transactions": [ - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Sequence": 1406, - "SetFlag": 8, - "TransactionType": "AccountSet" - }, - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Flags": 262144, - "LimitAmount": { - "currency": "XAU", - "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", - "value": "0" - }, - "Sequence": 1407, - "TransactionType": "TrustSet" - }, - { - "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": 10000, - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "5" - }, - "Sequence": 1408, - "TransactionType": "TrustSet" - } - ], - "validated": false - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-------|:-------------------------------------------| -| `ledger_current_index` | 数値 | これらの結果の計算に使用するレジャーのシーケンス番号。 | -| `problems` | 配列 | 人間が読み取ることができる形式の問題の記述が含まれている文字列の配列。アカウントのDefaultRipple設定が推奨に従っていない場合は、最大1つのエントリーが含まれます。加えて、NoRipple設定が推奨に従っていないトラストラインのエントリー(最大で`limit`に指定されている数)も含まれます。 | -| `transactions` | 配列 | (省略される場合があります)要求で`transactions`が`true`に指定されている場合、これはJSONオブジェクトの配列です。各JSONオブジェクトは、JSON形式の[トランザクション](transaction-formats.html)で、記述されている問題の1つを修正します。この配列の長さは`problems`配列と同じであり、各エントリーは、その配列の同じインデックスで記述されている問題の修正を目的としています。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# noripple_check +[[ソース]
](https://github.com/ripple/rippled/blob/9111ad1a9dc37d49d085aa317712625e635197c0/src/ripple/rpc/handlers/NoRippleCheck.cpp "Source") + +`noripple_check`コマンドを使用すると、[アカウントのDefaultRippleフィールドとそのトラストラインのNoRippleフラグ](rippling.html)の状態を、推奨される設定と比較して迅速にチェックできます。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 0, + "command": "noripple_check", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "role": "gateway", + "ledger_index": "current", + "limit": 2, + "transactions": true +} +``` + +*JSON-RPC* + +``` +{ + "method": "noripple_check", + "params": [ + { + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index": "current", + "limit": 2, + "role": "gateway", + "transactions": true + } + ] +} +``` + + + +**注記:** このメソッドのコマンドライン構文はありません。コマンドラインからアクセスするには[jsonメソッド][]を使用してください。 + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `account` | 文字列 | アカウントの一意のIDであり、通常はアカウントのアドレスです。 | +| `role` | 文字列 | アドレスが`gateway`と`user`のいずれを指しているか。推奨事項はアカウントの役割に応じて異なります。イシュアーのDefaultRippleを有効にし、すべてのトラストラインでNoRippleを無効にする必要があります。ユーザーのDefaultRippleを無効にし、すべてのトラストラインでNoRippleを有効にする必要があります。 | +| `transactions` | ブール値 | _(省略可)_ `true`の場合、提案される[トランザクション](transaction-formats.html)(JSONオブジェクト)の配列を指定します。問題を修正するために、これらのトランザクションに署名して送信することができます。デフォルトではfalseです。 | +| `limit` | 符号なし整数 | _(省略可)_ 結果に含めることができるトラストライン問題の最大数。デフォルトでは300です。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]を参照してください。) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 0, + "status": "success", + "type": "response", + "result": { + "ledger_current_index": 14342939, + "problems": [ + "You should immediately set your default ripple flag", + "You should clear the no ripple flag on your XAU line to r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "You should clear the no ripple flag on your USD line to rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + ], + "transactions": [ + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Sequence": 1406, + "SetFlag": 8, + "TransactionType": "AccountSet" + }, + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Flags": 262144, + "LimitAmount": { + "currency": "XAU", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "Sequence": 1407, + "TransactionType": "TrustSet" + }, + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "5" + }, + "Sequence": 1408, + "TransactionType": "TrustSet" + } + ], + "validated": false + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "ledger_current_index": 14380381, + "problems": [ + "You should immediately set your default ripple flag", + "You should clear the no ripple flag on your XAU line to r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "You should clear the no ripple flag on your USD line to rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q" + ], + "status": "success", + "transactions": [ + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Sequence": 1406, + "SetFlag": 8, + "TransactionType": "AccountSet" + }, + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Flags": 262144, + "LimitAmount": { + "currency": "XAU", + "issuer": "r3vi7mWxru9rJCxETCyA1CHvzL96eZWx5z", + "value": "0" + }, + "Sequence": 1407, + "TransactionType": "TrustSet" + }, + { + "Account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": 10000, + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "5" + }, + "Sequence": 1408, + "TransactionType": "TrustSet" + } + ], + "validated": false + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-------|:-------------------------------------------| +| `ledger_current_index` | 数値 | これらの結果の計算に使用するレジャーのシーケンス番号。 | +| `problems` | 配列 | 人間が読み取ることができる形式の問題の記述が含まれている文字列の配列。アカウントのDefaultRipple設定が推奨に従っていない場合は、最大1つのエントリーが含まれます。加えて、NoRipple設定が推奨に従っていないトラストラインのエントリー(最大で`limit`に指定されている数)も含まれます。 | +| `transactions` | 配列 | (省略される場合があります)要求で`transactions`が`true`に指定されている場合、これはJSONオブジェクトの配列です。各JSONオブジェクトは、JSON形式の[トランザクション](transaction-formats.html)で、記述されている問題の1つを修正します。この配列の長さは`problems`配列と同じであり、各エントリーは、その配列の同じインデックスで記述されている問題の修正を目的としています。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actNotFound` - 要求の`account`フィールドに指定されている[アドレス][]が、レジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.ja.md b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.ja.md index cd3869b74c..8b61e0ead0 100644 --- a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.ja.md +++ b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.ja.md @@ -1,204 +1,204 @@ -# ledger -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerHandler.cpp "Source") - -公開レジャーに関する情報を取得します。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":14, - "command":"ledger", - "ledger_index":"validated", - "full": false, - "accounts": false, - "transactions": false, - "expand": false, - "owner_funds": false -} -``` - -*JSON-RPC* - -``` -{ - "method":"ledger", - "params":[ - { - "ledger_index":"validated", - "accounts": false, - "full": false, - "transactions": false, - "expand": false, - "owner_funds": false - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: ledger ledger_index|ledger_hash [full|tx] -# "full" is equivalent to "full": true -# "tx" is equivalent to "transactions": true -rippled ledger current -``` - - - -[試してみる >](websocket-api-tool.html#ledger) - -要求には以下のパラメーターを含めることができます。 - -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `full` | ブール値 | _(省略可)_ **管理者が必要。** `true`の場合、レジャー全体に関するすべての情報が返されます。レジャーバージョンを指定しない場合は無視されます。デフォルトでは`false`です。(これは`transactions`、`accounts`、および`expand`を有効にする操作と同等です。) **注意:** 数百メガバイトのオーダーについて、非常に大量のデータが返されます。 | -| `accounts` | ブール値 | _(省略可)_ **管理者が必要。** `true`の場合、レジャーのアカウントに関する情報が返されます。レジャーバージョンを指定しない場合は無視されます。デフォルトでは`false`です。**注意:** 非常に大量のデータが返されます。 | -| `transactions` | ブール値 | _(省略可)_ `true`の場合、指定されたレジャーバージョンのトランザクションに関する情報が返されます。デフォルトでは`false`です。レジャーバージョンを指定しない場合は無視されます。 | -| `expand` | ブール値 | _(省略可)_ ハッシュのみではなく、トランザクション/アカウントの完全な情報がJSONフォーマットで提供されます。デフォルトでは`false`です。トランザクション、アカウント、またはその両方を要求しない場合は無視されます。 | -| `owner_funds` | ブール値 | _(省略可)_ `true`の場合、応答のOfferCreateトランザクションのメタデータに`owner_funds`フィールドが含まれます。デフォルトでは`false`です。トランザクションが含まれておらず、`expand`がtrueではない場合には無視されます。 | -| `binary` | ブール値 | _(省略可)_ `true`で、かつ`transactions`と`expand`が両方とも`true`の場合、JSONフォーマットではなくバイナリフォーマット(16進文字列)でトランザクション情報が返されます。[新規: rippled 0.28.0][] | -| `queue` | ブール値 | _(省略可)_ `true`で、かつコマンドが`current`レジャーを要求している場合、[キューに入れらているトランザクション](transaction-cost.html#キューに入れられたトランザクション)の配列が結果に含まれます。 - -`ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":4, - "status":"success", - "type":"response", - "result":{ - "ledger":{ - "accepted": true, - "account_hash":"FD2709F6C07284C3EE85EDE32AC452D9013A89D9B9E781D67D9784457E86A9BB", - "close_flags":0, - "close_time":508541181, - "close_time_human":"2016-Feb-11 21:26:21", - "close_time_resolution":10, - "closed": true, - "hash":"F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E", - "ledger_hash":"F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E", - "ledger_index":"18851530", - "parent_close_time":508541180, - "parent_hash":"8300B70AA5A865961DED7DAC5B88047028762D5946ECA887D09D32DE442E2305", - "seqNum":"18851530", - "totalCoins":"99998102799411646", - "total_coins":"99998102799411646", - "transaction_hash":"E0DB0471A1D198611E1C050ADA4AE74EEB38CEC26E0550663E0FCB1364212A3B" - }, - "ledger_hash":"F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E", - "ledger_index":18851530, - "validated": true - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "ledger":{ - "accepted": true, - "account_hash":"B089E7CD4F5167249951611AAEC863D4BF84FF098500E9CB50561F1A89EED825", - "close_flags":0, - "close_time":508541222, - "close_time_human":"2016-Feb-11 21:27:02", - "close_time_resolution":10, - "closed": true, - "hash":"85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157", - "ledger_hash":"85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157", - "ledger_index":"18851543", - "parent_close_time":508541221, - "parent_hash":"C382DB117F2D5AAECFBFB43EA509F8E56D6E1D1297CE00C0D02A3EE695ABB78F", - "seqNum":"18851543", - "totalCoins":"99998102795090646", - "total_coins":"99998102795090646", - "transaction_hash":"BEC71A3CAD11BFC4E4013CD109F220E0850E9A3808B15FAA6DAE4D898970EFAF" - }, - "ledger_hash":"85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157", - "ledger_index":18851543, - "status":"success", - "validated": true - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果にレジャーに関する情報を表す次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-------------------------------|:--------|:----------------------------------| -| `ledger` | オブジェクト | このレジャーの完全なヘッダーデータ。 | -| `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウント状態情報のハッシュ(16進数) | -| `ledger.accountState` | 配列 | (要求されていない場合は省略)このレジャーのすべての[アカウント状態情報](ledger-data-formats.html)。 | -| `ledger.close_flags` | 整数 | このレジャーの閉鎖に関連するフラグのビットマップ。現在、レジャーでは1つのフラグだけが`close_flags`として定義されています(**sLCF_NoConsensusTime**(値1))。このフラグが有効な場合、レジャーの正確な閉鎖時刻についてバリデータの間で意見が対立しましたが、作成しているレジャーは同一のものであるため、バリデータは閉鎖時刻について「合意をしないことに合意する」とした上でコンセンサスを宣言しました。この場合、コンセンサスレジャーの`close_time`の値は直前のバージョンの閉鎖時刻の1秒後です。(この場合、正式な閉鎖時刻がありませんが、実際の閉鎖時刻はおそらく指定されている`close_time`の3~6秒後です。) | -| `ledger.close_time` | 整数 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | -| `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻 | -| `ledger.close_time_resolution` | 整数 | レジャー閉鎖時刻はこの秒数の範囲内で丸めらます。 | -| `ledger.closed` | ブール値 | このレジャーが閉鎖されているかどうか。 | -| `ledger.ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `ledger.ledger_index` | 文字列 | このレジャーの[レジャーインデックス][]。整数を引用符で囲んだ形式で示されます。 | -| `ledger.parent_close_time` | 整数 | 前のレジャーが閉鎖された時刻。 | -| `ledger.parent_hash` | 文字列 | このレジャーの直前のレジャーの一意の識別用ハッシュ。 | -| `ledger.total_coins` | 文字列 | ネットワークのXRPの合計(drop数)。整数を引用符で囲んだ形式で示されます。(トランザクションコストによりXRPが消却されると、この値は減少します。) | -| `ledger.transaction_hash` | 文字列 | このレジャーに記録されているトランザクション情報のハッシュ(16進数) | -| `ledger.transactions` | 配列 | (要求されていない場合は省略)このレジャーバージョンで適用されたトランザクション。デフォルトでは、メンバーはトランザクションの識別用[ハッシュ][]文字列です。要求で`expand`がtrueとして指定されている場合は、メンバーはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現です。フォーマットは、要求で`binary`がtrueとして指定されていたかどうかに応じて決まります。 | -| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `ledger_index` | 数値 | このレジャーの[レジャーインデックス][]。 | -| `queue_data` | 配列 | (`queue`パラメーターで要求されている場合を除いて省略)キューに入れられたトランザクションをキューと同じ順序で記述するオブジェクトの配列。要求で`expand`がtrueに指定されている場合は、メンバーにはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現が含まれています。フォーマットは、要求で`binary`がtrueとして指定されていたかどうかによって決まります。[FeeEscalation Amendment][]が必要です。[新規: rippled 0.70.0][] | - -以下のフィールドは廃止予定であり、今後予告なしに削除される可能性があります。`accepted`、`hash`(代わりに`ledger_hash`を使用)、`seqNum`(代わりに`ledger_index`を使用)、`totalCoins`(代わりに`total_coins`を使用)。 - -`queue_data`配列の各メンバーは、キュー内の1つのトランザクションを表します。このオブジェクトの一部フィールドは、まだ計算されていないために省略されることがあります。このオブジェクトのフィールドを次に示します。 - -| フィールド | 値 | 説明 | -|:--------------------|:-----------------|:------------------------------------| -| `account` | 文字列 | このキューに入れられたトランザクションの送信者の[アドレス][]。 | -| `tx` | 文字列またはオブジェクト | デフォルトでは、これはトランザクションの[識別用ハッシュ](basic-data-types.html#ハッシュ)を含む文字列です。トランザクションがバイナリフォーマットで展開されている場合、これは`tx_blob`が唯一のフィールドであるオブジェクトであり、バイナリー形式のトランザクションが10進文字列として含まれています。トランザクションがJSONフォーマットで展開されている場合、これは`hash`フィールドにトランザクションの識別用ハッシュが指定されている[トランザクションオブジェクト](transaction-formats.html)を含むオブジェクトです。 | -| `retries_remaining` | 数値 | このトランザクションの再試行可能回数。この回数を超えるとトランザクションが除外されます。 | -| `preflight_result` | 文字列 | 初期トランザクションチェックの一時的な結果。これは常に`tesSUCCESS`です。 | -| `last_result` | 文字列 | _(省略される場合があります)_[再試行可能な (`ter`) の結果](ter-codes.html)を取得した後でこのトランザクションがキューに残っている場合、これは取得した正確な`ter`結果コードです。 | -| `auth_change` | ブール値 | _(省略される場合があります)_ このトランザクションがこのアドレスの[トランザクション承認方法](transaction-basics.html#取引の承認)を変更するかどうかを示します。 | -| `fee` | 文字列 | _(省略される場合があります)_ このトランザクションの[トランザクションコスト](transaction-cost.html)([XRPのdrop数][])。 | -| `fee_level` | 文字列 | _(省略される場合があります)_ このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | -| `max_spend_drops` | 文字列 | _(省略される場合があります)_ このトランザクションで送信または消却できる[XRP、drop単位][]の最高額。 | - -要求に`"owner_funds": true`が指定されておりトランザクションが展開されている場合、応答には、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](offers.html#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](subscribe.html#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 - -| `Field` | 値 | 説明 | -|:--------------|:-------|:----------------------------------------------------| -| `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[凍結](freezes.html)されているかどうかはチェックされません。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -* `noPermission` - `full`または`accounts`をtrueとして指定したが、管理者としてサーバーに接続していない場合(通常、管理者はローカルポートで接続する必要があります)。 - - - -[手数料レベル]: transaction-cost.html#手数料レベル - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# ledger +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerHandler.cpp "Source") + +公開レジャーに関する情報を取得します。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":14, + "command":"ledger", + "ledger_index":"validated", + "full": false, + "accounts": false, + "transactions": false, + "expand": false, + "owner_funds": false +} +``` + +*JSON-RPC* + +``` +{ + "method":"ledger", + "params":[ + { + "ledger_index":"validated", + "accounts": false, + "full": false, + "transactions": false, + "expand": false, + "owner_funds": false + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: ledger ledger_index|ledger_hash [full|tx] +# "full" is equivalent to "full": true +# "tx" is equivalent to "transactions": true +rippled ledger current +``` + + + +[試してみる >](websocket-api-tool.html#ledger) + +要求には以下のパラメーターを含めることができます。 + +| `Field` | 型 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | +| `full` | ブール値 | _(省略可)_ **管理者が必要。** `true`の場合、レジャー全体に関するすべての情報が返されます。レジャーバージョンを指定しない場合は無視されます。デフォルトでは`false`です。(これは`transactions`、`accounts`、および`expand`を有効にする操作と同等です。) **注意:** 数百メガバイトのオーダーについて、非常に大量のデータが返されます。 | +| `accounts` | ブール値 | _(省略可)_ **管理者が必要。** `true`の場合、レジャーのアカウントに関する情報が返されます。レジャーバージョンを指定しない場合は無視されます。デフォルトでは`false`です。**注意:** 非常に大量のデータが返されます。 | +| `transactions` | ブール値 | _(省略可)_ `true`の場合、指定されたレジャーバージョンのトランザクションに関する情報が返されます。デフォルトでは`false`です。レジャーバージョンを指定しない場合は無視されます。 | +| `expand` | ブール値 | _(省略可)_ ハッシュのみではなく、トランザクション/アカウントの完全な情報がJSONフォーマットで提供されます。デフォルトでは`false`です。トランザクション、アカウント、またはその両方を要求しない場合は無視されます。 | +| `owner_funds` | ブール値 | _(省略可)_ `true`の場合、応答のOfferCreateトランザクションのメタデータに`owner_funds`フィールドが含まれます。デフォルトでは`false`です。トランザクションが含まれておらず、`expand`がtrueではない場合には無視されます。 | +| `binary` | ブール値 | _(省略可)_ `true`で、かつ`transactions`と`expand`が両方とも`true`の場合、JSONフォーマットではなくバイナリフォーマット(16進文字列)でトランザクション情報が返されます。[新規: rippled 0.28.0][] | +| `queue` | ブール値 | _(省略可)_ `true`で、かつコマンドが`current`レジャーを要求している場合、[キューに入れらているトランザクション](transaction-cost.html#キューに入れられたトランザクション)の配列が結果に含まれます。 + +`ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":4, + "status":"success", + "type":"response", + "result":{ + "ledger":{ + "accepted": true, + "account_hash":"FD2709F6C07284C3EE85EDE32AC452D9013A89D9B9E781D67D9784457E86A9BB", + "close_flags":0, + "close_time":508541181, + "close_time_human":"2016-Feb-11 21:26:21", + "close_time_resolution":10, + "closed": true, + "hash":"F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E", + "ledger_hash":"F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E", + "ledger_index":"18851530", + "parent_close_time":508541180, + "parent_hash":"8300B70AA5A865961DED7DAC5B88047028762D5946ECA887D09D32DE442E2305", + "seqNum":"18851530", + "totalCoins":"99998102799411646", + "total_coins":"99998102799411646", + "transaction_hash":"E0DB0471A1D198611E1C050ADA4AE74EEB38CEC26E0550663E0FCB1364212A3B" + }, + "ledger_hash":"F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E", + "ledger_index":18851530, + "validated": true + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "ledger":{ + "accepted": true, + "account_hash":"B089E7CD4F5167249951611AAEC863D4BF84FF098500E9CB50561F1A89EED825", + "close_flags":0, + "close_time":508541222, + "close_time_human":"2016-Feb-11 21:27:02", + "close_time_resolution":10, + "closed": true, + "hash":"85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157", + "ledger_hash":"85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157", + "ledger_index":"18851543", + "parent_close_time":508541221, + "parent_hash":"C382DB117F2D5AAECFBFB43EA509F8E56D6E1D1297CE00C0D02A3EE695ABB78F", + "seqNum":"18851543", + "totalCoins":"99998102795090646", + "total_coins":"99998102795090646", + "transaction_hash":"BEC71A3CAD11BFC4E4013CD109F220E0850E9A3808B15FAA6DAE4D898970EFAF" + }, + "ledger_hash":"85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157", + "ledger_index":18851543, + "status":"success", + "validated": true + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果にレジャーに関する情報を表す次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-------------------------------|:--------|:----------------------------------| +| `ledger` | オブジェクト | このレジャーの完全なヘッダーデータ。 | +| `ledger.account_hash` | 文字列 | このレジャーのすべてのアカウント状態情報のハッシュ(16進数) | +| `ledger.accountState` | 配列 | (要求されていない場合は省略)このレジャーのすべての[アカウント状態情報](ledger-data-formats.html)。 | +| `ledger.close_flags` | 整数 | このレジャーの閉鎖に関連するフラグのビットマップ。現在、レジャーでは1つのフラグだけが`close_flags`として定義されています(**sLCF_NoConsensusTime**(値1))。このフラグが有効な場合、レジャーの正確な閉鎖時刻についてバリデータの間で意見が対立しましたが、作成しているレジャーは同一のものであるため、バリデータは閉鎖時刻について「合意をしないことに合意する」とした上でコンセンサスを宣言しました。この場合、コンセンサスレジャーの`close_time`の値は直前のバージョンの閉鎖時刻の1秒後です。(この場合、正式な閉鎖時刻がありませんが、実際の閉鎖時刻はおそらく指定されている`close_time`の3~6秒後です。) | +| `ledger.close_time` | 整数 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | +| `ledger.close_time_human` | 文字列 | 人間が読めるフォーマットでのこのレジャーが閉鎖された時刻 | +| `ledger.close_time_resolution` | 整数 | レジャー閉鎖時刻はこの秒数の範囲内で丸めらます。 | +| `ledger.closed` | ブール値 | このレジャーが閉鎖されているかどうか。 | +| `ledger.ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `ledger.ledger_index` | 文字列 | このレジャーの[レジャーインデックス][]。整数を引用符で囲んだ形式で示されます。 | +| `ledger.parent_close_time` | 整数 | 前のレジャーが閉鎖された時刻。 | +| `ledger.parent_hash` | 文字列 | このレジャーの直前のレジャーの一意の識別用ハッシュ。 | +| `ledger.total_coins` | 文字列 | ネットワークのXRPの合計(drop数)。整数を引用符で囲んだ形式で示されます。(トランザクションコストによりXRPが消却されると、この値は減少します。) | +| `ledger.transaction_hash` | 文字列 | このレジャーに記録されているトランザクション情報のハッシュ(16進数) | +| `ledger.transactions` | 配列 | (要求されていない場合は省略)このレジャーバージョンで適用されたトランザクション。デフォルトでは、メンバーはトランザクションの識別用[ハッシュ][]文字列です。要求で`expand`がtrueとして指定されている場合は、メンバーはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現です。フォーマットは、要求で`binary`がtrueとして指定されていたかどうかに応じて決まります。 | +| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `ledger_index` | 数値 | このレジャーの[レジャーインデックス][]。 | +| `queue_data` | 配列 | (`queue`パラメーターで要求されている場合を除いて省略)キューに入れられたトランザクションをキューと同じ順序で記述するオブジェクトの配列。要求で`expand`がtrueに指定されている場合は、メンバーにはJSONフォーマットまたはバイナリフォーマットでのトランザクションの完全な表現が含まれています。フォーマットは、要求で`binary`がtrueとして指定されていたかどうかによって決まります。[FeeEscalation Amendment][]が必要です。[新規: rippled 0.70.0][] | + +以下のフィールドは廃止予定であり、今後予告なしに削除される可能性があります。`accepted`、`hash`(代わりに`ledger_hash`を使用)、`seqNum`(代わりに`ledger_index`を使用)、`totalCoins`(代わりに`total_coins`を使用)。 + +`queue_data`配列の各メンバーは、キュー内の1つのトランザクションを表します。このオブジェクトの一部フィールドは、まだ計算されていないために省略されることがあります。このオブジェクトのフィールドを次に示します。 + +| フィールド | 値 | 説明 | +|:--------------------|:-----------------|:------------------------------------| +| `account` | 文字列 | このキューに入れられたトランザクションの送信者の[アドレス][]。 | +| `tx` | 文字列またはオブジェクト | デフォルトでは、これはトランザクションの[識別用ハッシュ](basic-data-types.html#ハッシュ)を含む文字列です。トランザクションがバイナリフォーマットで展開されている場合、これは`tx_blob`が唯一のフィールドであるオブジェクトであり、バイナリー形式のトランザクションが10進文字列として含まれています。トランザクションがJSONフォーマットで展開されている場合、これは`hash`フィールドにトランザクションの識別用ハッシュが指定されている[トランザクションオブジェクト](transaction-formats.html)を含むオブジェクトです。 | +| `retries_remaining` | 数値 | このトランザクションの再試行可能回数。この回数を超えるとトランザクションが除外されます。 | +| `preflight_result` | 文字列 | 初期トランザクションチェックの一時的な結果。これは常に`tesSUCCESS`です。 | +| `last_result` | 文字列 | _(省略される場合があります)_[再試行可能な (`ter`) の結果](ter-codes.html)を取得した後でこのトランザクションがキューに残っている場合、これは取得した正確な`ter`結果コードです。 | +| `auth_change` | ブール値 | _(省略される場合があります)_ このトランザクションがこのアドレスの[トランザクション承認方法](transaction-basics.html#取引の承認)を変更するかどうかを示します。 | +| `fee` | 文字列 | _(省略される場合があります)_ このトランザクションの[トランザクションコスト](transaction-cost.html)([XRPのdrop数][])。 | +| `fee_level` | 文字列 | _(省略される場合があります)_ このタイプのトランザクションの最少コストと比較した、このトランザクションのトランザクションコスト([手数料レベル][])。 | +| `max_spend_drops` | 文字列 | _(省略される場合があります)_ このトランザクションで送信または消却できる[XRP、drop単位][]の最高額。 | + +要求に`"owner_funds": true`が指定されておりトランザクションが展開されている場合、応答には、各[OfferCreateトランザクション][]の`metaData`オブジェクトの`owner_funds`フィールドが含まれています。このフィールドの目的は、新しい検証済みレジャーごとに[オファーの資金化ステータス](offers.html#オファーのライフサイクル)を容易に追跡できるようにすることです。このフィールドの定義は、[オーダーブックサブスクリプションストリーム](subscribe.html#オーダーブックストリーム)でのこのフィールドのバージョンとはわずかに異なります。 + +| `Field` | 値 | 説明 | +|:--------------|:-------|:----------------------------------------------------| +| `owner_funds` | 文字列 | このレジャーのすべてのトランザクションの実行後に、このOfferCreateトランザクションを送信する`Account`が保有する`TakerGets`通貨の額。この通貨額が[凍結](freezes.html)されているかどうかはチェックされません。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `noPermission` - `full`または`accounts`をtrueとして指定したが、管理者としてサーバーに接続していない場合(通常、管理者はローカルポートで接続する必要があります)。 + + + +[手数料レベル]: transaction-cost.html#手数料レベル + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_closed.ja.md b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_closed.ja.md index b34b935d36..da4f1338b9 100644 --- a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_closed.ja.md +++ b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_closed.ja.md @@ -1,91 +1,91 @@ -# ledger_closed -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerClosed.cpp "Source") - -`ledger_closed`メソッドは、最新の閉鎖済みレジャーの一意のIDを返します。(このレジャーは必ずしも検証済みで変更不可能ではありません。) - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":2, - "command":"ledger_closed" -} -``` - -*JSON-RPC* - -``` -{ - "method":"ledger_closed", - "params":[ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: ledger_closed -rippled ledger_closed -``` - - - -[試してみる >](websocket-api-tool.html#ledger_closed) - -このメソッドはパラメーターを受け入れません。 - -## 応答フォーマット -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":1, - "status":"success", - "type":"response", - "result":{ - "ledger_hash":"17ACB57A0F73B5160713E81FE72B2AC9F6064541004E272BD09F257D57C30C02", - "ledger_index":6643099 - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "ledger_hash":"8B5A0C5F6B198254A6E411AF55C29EE40AA86251D2E78DD0BB17647047FA9C24", - "ledger_index":8696231, - "status":"success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `ledger_hash` | 文字列 | レジャーの一意のハッシュを示す20バイトの16進文字列。 | -| `ledger_index` | 符号なし整数 | このレジャーのシーケンス番号 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled_versions.md' %} +# ledger_closed +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerClosed.cpp "Source") + +`ledger_closed`メソッドは、最新の閉鎖済みレジャーの一意のIDを返します。(このレジャーは必ずしも検証済みで変更不可能ではありません。) + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":2, + "command":"ledger_closed" +} +``` + +*JSON-RPC* + +``` +{ + "method":"ledger_closed", + "params":[ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: ledger_closed +rippled ledger_closed +``` + + + +[試してみる >](websocket-api-tool.html#ledger_closed) + +このメソッドはパラメーターを受け入れません。 + +## 応答フォーマット +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":1, + "status":"success", + "type":"response", + "result":{ + "ledger_hash":"17ACB57A0F73B5160713E81FE72B2AC9F6064541004E272BD09F257D57C30C02", + "ledger_index":6643099 + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "ledger_hash":"8B5A0C5F6B198254A6E411AF55C29EE40AA86251D2E78DD0BB17647047FA9C24", + "ledger_index":8696231, + "status":"success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:-----------------|:-----------------------------------------| +| `ledger_hash` | 文字列 | レジャーの一意のハッシュを示す20バイトの16進文字列。 | +| `ledger_index` | 符号なし整数 | このレジャーのシーケンス番号 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled_versions.md' %} {% include '_snippets/rippled-api-links.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_current.ja.md b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_current.ja.md index d9564a0836..8aa992db99 100644 --- a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_current.ja.md +++ b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_current.ja.md @@ -1,92 +1,92 @@ -# ledger_current -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerCurrent.cpp "Source") - -`ledger_current`メソッドは、現在進行中のレジャーの一意のIDを返します。このコマンドで返されるレジャーは確定されたものではないため、このコマンドは主にテストに有用です。 - -## 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":2, - "command":"ledger_current" -} -``` - -*JSON-RPC* - -``` -{ - "method":"ledger_current", - "params":[ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: ledger_current -rippled ledger_current -``` - - - -[試してみる >](websocket-api-tool.html#ledger_current) - -この要求にはパラメーターは含まれていません。 - - -## 応答フォーマット -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":2, - "status":"success", - "type":"response", - "result":{ - "ledger_current_index":6643240 - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "ledger_current_index":8696233, - "status":"success" - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-----------------|:-------------------------------| -| `ledger_current_index` | 符号なし整数 | このレジャーのシーケンス番号 | - -現行レジャーのハッシュは、レジャーの内容とともに常に変化するため、`ledger_hash`フィールドはありません。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled_versions.md' %} +# ledger_current +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerCurrent.cpp "Source") + +`ledger_current`メソッドは、現在進行中のレジャーの一意のIDを返します。このコマンドで返されるレジャーは確定されたものではないため、このコマンドは主にテストに有用です。 + +## 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":2, + "command":"ledger_current" +} +``` + +*JSON-RPC* + +``` +{ + "method":"ledger_current", + "params":[ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: ledger_current +rippled ledger_current +``` + + + +[試してみる >](websocket-api-tool.html#ledger_current) + +この要求にはパラメーターは含まれていません。 + + +## 応答フォーマット +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":2, + "status":"success", + "type":"response", + "result":{ + "ledger_current_index":6643240 + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "ledger_current_index":8696233, + "status":"success" + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-----------------|:-------------------------------| +| `ledger_current_index` | 符号なし整数 | このレジャーのシーケンス番号 | + +現行レジャーのハッシュは、レジャーの内容とともに常に変化するため、`ledger_hash`フィールドはありません。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled_versions.md' %} {% include '_snippets/rippled-api-links.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_data.ja.md b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_data.ja.md index 7c23765e68..c322b366cd 100644 --- a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_data.ja.md +++ b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_data.ja.md @@ -1,261 +1,261 @@ -# ledger_data -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerData.cpp "Source") - -`ledger_data`メソッドは指定されたレジャーの内容を取得します。1つのレジャーバージョンの内容全体を取得するため、複数のコールを繰り返し実行できます。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":2, - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "command":"ledger_data", - "limit":5, - "binary": true -} -``` - -*JSON-RPC* - -``` -{ - "method":"ledger_data", - "params":[ - { - "binary": true, - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "limit":5 - } - ] -} -``` - - - -**注記:**`ledger_data`のコマンドライン構文はありません。代わりに[jsonメソッド][]を使用してコマンドラインからこのメソッドにアクセスできます。 - -要求には以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:---------------| -| `id` | (任意) | (WebSocketのみ)応答が遅延して順不同になる場合にこの要求を他の要求と区別するためのID。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `binary` | ブール値 | (省略可、デフォルトではfalseです)trueに設定すると、レジャーオブジェクトがJSONではなくハッシュされた16進文字列として返されます。 | -| `limit` | 整数 | (省略可、デフォルト値は可変)取得するレジャーオブジェクトの数を制限します。サーバーはこの値に従う必要はありません。 | -| `marker` | [マーカー][] | 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。 | - -`ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket (binary:true)* - -``` -{ - "id":2, - "result":{ - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "ledger_index":"6885842", - "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", - "state":[ - { - "data":"11006122000000002400000001250062FEA42D0000000055C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA0466240000000354540208114C909F42250CFE8F12A7A1A0DFBD3CBD20F32CD79", - "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" - }, - { - "data":"11006F22000000002400000003250035788533000000000000000034000000000000000055555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F501071633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C6800064D4838D7EA4C68000000000000000000000000000425443000000000035DD7DF146893456296BF4061FBE68735D28F3286540000000000F42408114A4B8F5F7B644AEDC3447F9459C132EEB016A133B", - "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" - }, - { - "data":"11006F2200020000240000000A250067395C33000000000000000034000000000000000055A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C5010DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C00064D554C88B43EFA00000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D165400000B59B9F780081148366FB9ACD2A0FD822E31112D2EB6F98C317C2C1", - "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" - }, - { - "data":"1100612200000000240000000125003E742F2D0000000055286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21624000000306DC42008114225BAB89C4A4B94624BB069D6DB3C819F934991C", - "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" - }, - { - "data":"110072220002000025000B65783700000000000000003800000000000000005587591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D03756280000000000000000000000000000000000000004254430000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000042544300000000000A20B3C85F482532A9578DBB3950B85CA06594D167D4C38D7EA4C680000000000000000000000000004254430000000000C795FDF8A637BCAAEDAD1C434033506236C82A2D", - "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" - } - ] - }, - "status":"success", - "type":"response" -} -``` - -*WebSocket (binary:false)* - -``` -{ - "id":2, - "result":{ - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "ledger_index":"6885842", - "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", - "state":[ - { - "Account":"rKKzk9ghA2iuy3imqMXUHJqdRPMtNDGf4c", - "Balance":"893730848", - "Flags":0, - "LedgerEntryType":"AccountRoot", - "OwnerCount":0, - "PreviousTxnID":"C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA046", - "PreviousTxnLgrSeq":6487716, - "Sequence":1, - "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" - }, - { - "Account":"rGryPmNWFognBgMtr9k4quqPbbEcCrhNmD", - "BookDirectory":"71633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C68000", - "BookNode":"0000000000000000", - "Flags":0, - "LedgerEntryType":"Offer", - "OwnerNode":"0000000000000000", - "PreviousTxnID":"555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F", - "PreviousTxnLgrSeq":3504261, - "Sequence":3, - "TakerGets":"1000000", - "TakerPays":{ - "currency":"BTC", - "issuer":"rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", - "value":"1" - }, - "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" - }, - { - "Account":"rUy8tW38MW9ma7kSjRgB2GHtTkQAFRyrN8", - "BookDirectory":"DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C000", - "BookNode":"0000000000000000", - "Flags":131072, - "LedgerEntryType":"Offer", - "OwnerNode":"0000000000000000", - "PreviousTxnID":"A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C", - "PreviousTxnLgrSeq":6764892, - "Sequence":10, - "TakerGets":"780000000000", - "TakerPays":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"5850" - }, - "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" - }, - { - "Account":"rh3C81VfNDhhWPQWCU8ZGgknvdgNUvRtM9", - "Balance":"13000000000", - "Flags":0, - "LedgerEntryType":"AccountRoot", - "OwnerCount":0, - "PreviousTxnID":"286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21", - "PreviousTxnLgrSeq":4092975, - "Sequence":1, - "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" - }, - { - "Balance":{ - "currency":"BTC", - "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", - "value":"0" - }, - "Flags":131072, - "HighLimit":{ - "currency":"BTC", - "issuer":"rKUK9omZqVEnraCipKNFb5q4tuNTeqEDZS", - "value":"10" - }, - "HighNode":"0000000000000000", - "LedgerEntryType":"RippleState", - "LowLimit":{ - "currency":"BTC", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0" - }, - "LowNode":"0000000000000000", - "PreviousTxnID":"87591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D0375", - "PreviousTxnLgrSeq":746872, - "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" - } - ] - }, - "status":"success", - "type":"response" -} -``` - -*JSON-RPC (binary:true)* - -``` -200 OK -{ - "result":{ - "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", - "ledger_index":"6885842", - "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", - "state":[ - { - "data":"11006122000000002400000001250062FEA42D0000000055C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA0466240000000354540208114C909F42250CFE8F12A7A1A0DFBD3CBD20F32CD79", - "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" - }, - { - "data":"11006F22000000002400000003250035788533000000000000000034000000000000000055555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F501071633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C6800064D4838D7EA4C68000000000000000000000000000425443000000000035DD7DF146893456296BF4061FBE68735D28F3286540000000000F42408114A4B8F5F7B644AEDC3447F9459C132EEB016A133B", - "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" - }, - { - "data":"11006F2200020000240000000A250067395C33000000000000000034000000000000000055A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C5010DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C00064D554C88B43EFA00000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D165400000B59B9F780081148366FB9ACD2A0FD822E31112D2EB6F98C317C2C1", - "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" - }, - { - "data":"1100612200000000240000000125003E742F2D0000000055286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21624000000306DC42008114225BAB89C4A4B94624BB069D6DB3C819F934991C", - "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" - }, - { - "data":"110072220002000025000B65783700000000000000003800000000000000005587591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D03756280000000000000000000000000000000000000004254430000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000042544300000000000A20B3C85F482532A9578DBB3950B85CA06594D167D4C38D7EA4C680000000000000000000000000004254430000000000C795FDF8A637BCAAEDAD1C434033506236C82A2D", - "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" - } - ], - "status":"success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:---------------| -| `ledger_index` | 符号なし整数 | このレジャーのシーケンス番号 | -| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | -| `state` | 配列 | ツリーのデータが含まれているJSONオブジェクトの配列。以下のように定義されています。 | -| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | - -`state`配列の各オブジェクトのフォーマットは、要求で`binary`がtrueに設定されているかどうかによって異なります。各`state`オブジェクトには以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:--------------------|:----------|:-------------------------------------------| -| `data` | 文字列 | (`"binary":true`の場合にのみ含まれる)要求されたデータの16進表現。 | -| `LedgerEntryType` | 文字列 | (`"binary":false`の場合にのみ含まれる)このオブジェクトが表すレジャーオブジェクトの型を示す文字列。詳細なリストについては[レジャーデータフォーマット](ledger-data-formats.html)を参照してください。 | -| (追加のフィールド) | (各種) | (`"binary":false`の場合にのみ含まれる)このオブジェクトを記述する追加フィールド。オブジェクトのLedgerEntryTypeに応じて異なります。 | -| `index` | 文字列 | このレジャーエントリの一意のID(16進数) | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# ledger_data +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerData.cpp "Source") + +`ledger_data`メソッドは指定されたレジャーの内容を取得します。1つのレジャーバージョンの内容全体を取得するため、複数のコールを繰り返し実行できます。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":2, + "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "command":"ledger_data", + "limit":5, + "binary": true +} +``` + +*JSON-RPC* + +``` +{ + "method":"ledger_data", + "params":[ + { + "binary": true, + "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "limit":5 + } + ] +} +``` + + + +**注記:**`ledger_data`のコマンドライン構文はありません。代わりに[jsonメソッド][]を使用してコマンドラインからこのメソッドにアクセスできます。 + +要求には以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:-------------------------------------------|:---------------| +| `id` | (任意) | (WebSocketのみ)応答が遅延して順不同になる場合にこの要求を他の要求と区別するためのID。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | +| `binary` | ブール値 | (省略可、デフォルトではfalseです)trueに設定すると、レジャーオブジェクトがJSONではなくハッシュされた16進文字列として返されます。 | +| `limit` | 整数 | (省略可、デフォルト値は可変)取得するレジャーオブジェクトの数を制限します。サーバーはこの値に従う必要はありません。 | +| `marker` | [マーカー][] | 以前にページネーションされた応答の値。その応答を停止した箇所からデータの取得を再開します。 | + +`ledger`フィールドは廃止予定であり、今後予告なしに削除される可能性があります。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket (binary:true)* + +``` +{ + "id":2, + "result":{ + "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "ledger_index":"6885842", + "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", + "state":[ + { + "data":"11006122000000002400000001250062FEA42D0000000055C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA0466240000000354540208114C909F42250CFE8F12A7A1A0DFBD3CBD20F32CD79", + "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" + }, + { + "data":"11006F22000000002400000003250035788533000000000000000034000000000000000055555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F501071633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C6800064D4838D7EA4C68000000000000000000000000000425443000000000035DD7DF146893456296BF4061FBE68735D28F3286540000000000F42408114A4B8F5F7B644AEDC3447F9459C132EEB016A133B", + "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" + }, + { + "data":"11006F2200020000240000000A250067395C33000000000000000034000000000000000055A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C5010DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C00064D554C88B43EFA00000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D165400000B59B9F780081148366FB9ACD2A0FD822E31112D2EB6F98C317C2C1", + "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" + }, + { + "data":"1100612200000000240000000125003E742F2D0000000055286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21624000000306DC42008114225BAB89C4A4B94624BB069D6DB3C819F934991C", + "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" + }, + { + "data":"110072220002000025000B65783700000000000000003800000000000000005587591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D03756280000000000000000000000000000000000000004254430000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000042544300000000000A20B3C85F482532A9578DBB3950B85CA06594D167D4C38D7EA4C680000000000000000000000000004254430000000000C795FDF8A637BCAAEDAD1C434033506236C82A2D", + "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" + } + ] + }, + "status":"success", + "type":"response" +} +``` + +*WebSocket (binary:false)* + +``` +{ + "id":2, + "result":{ + "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "ledger_index":"6885842", + "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", + "state":[ + { + "Account":"rKKzk9ghA2iuy3imqMXUHJqdRPMtNDGf4c", + "Balance":"893730848", + "Flags":0, + "LedgerEntryType":"AccountRoot", + "OwnerCount":0, + "PreviousTxnID":"C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA046", + "PreviousTxnLgrSeq":6487716, + "Sequence":1, + "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" + }, + { + "Account":"rGryPmNWFognBgMtr9k4quqPbbEcCrhNmD", + "BookDirectory":"71633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C68000", + "BookNode":"0000000000000000", + "Flags":0, + "LedgerEntryType":"Offer", + "OwnerNode":"0000000000000000", + "PreviousTxnID":"555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F", + "PreviousTxnLgrSeq":3504261, + "Sequence":3, + "TakerGets":"1000000", + "TakerPays":{ + "currency":"BTC", + "issuer":"rnuF96W4SZoCJmbHYBFoJZpR8eCaxNvekK", + "value":"1" + }, + "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" + }, + { + "Account":"rUy8tW38MW9ma7kSjRgB2GHtTkQAFRyrN8", + "BookDirectory":"DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C000", + "BookNode":"0000000000000000", + "Flags":131072, + "LedgerEntryType":"Offer", + "OwnerNode":"0000000000000000", + "PreviousTxnID":"A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C", + "PreviousTxnLgrSeq":6764892, + "Sequence":10, + "TakerGets":"780000000000", + "TakerPays":{ + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value":"5850" + }, + "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" + }, + { + "Account":"rh3C81VfNDhhWPQWCU8ZGgknvdgNUvRtM9", + "Balance":"13000000000", + "Flags":0, + "LedgerEntryType":"AccountRoot", + "OwnerCount":0, + "PreviousTxnID":"286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21", + "PreviousTxnLgrSeq":4092975, + "Sequence":1, + "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" + }, + { + "Balance":{ + "currency":"BTC", + "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", + "value":"0" + }, + "Flags":131072, + "HighLimit":{ + "currency":"BTC", + "issuer":"rKUK9omZqVEnraCipKNFb5q4tuNTeqEDZS", + "value":"10" + }, + "HighNode":"0000000000000000", + "LedgerEntryType":"RippleState", + "LowLimit":{ + "currency":"BTC", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value":"0" + }, + "LowNode":"0000000000000000", + "PreviousTxnID":"87591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D0375", + "PreviousTxnLgrSeq":746872, + "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" + } + ] + }, + "status":"success", + "type":"response" +} +``` + +*JSON-RPC (binary:true)* + +``` +200 OK +{ + "result":{ + "ledger_hash":"842B57C1CC0613299A686D3E9F310EC0422C84D3911E5056389AA7E5808A93C8", + "ledger_index":"6885842", + "marker":"0002A590029B53BE7857EFF9985F770EC792CE483720EB5E963C4D6A607D43DF", + "state":[ + { + "data":"11006122000000002400000001250062FEA42D0000000055C204A65CF2542946289A3358C67D991B5E135FABFA89F271DBA7A150C08CA0466240000000354540208114C909F42250CFE8F12A7A1A0DFBD3CBD20F32CD79", + "index":"00001A2969BE1FC85F1D7A55282FA2E6D95C71D2E4B9C0FDD3D9994F3C00FF8F" + }, + { + "data":"11006F22000000002400000003250035788533000000000000000034000000000000000055555B93628BF3EC318892BB7C7CDCB6732FF53D12B6EEC4FAF60DD1AEE1C6101F501071633D7DE1B6AEB32F87F1A73258B13FC8CC32942D53A66D4F038D7EA4C6800064D4838D7EA4C68000000000000000000000000000425443000000000035DD7DF146893456296BF4061FBE68735D28F3286540000000000F42408114A4B8F5F7B644AEDC3447F9459C132EEB016A133B", + "index":"000037C6659BB98F8D09F2F4CFEB27DE8EFEAFE54DD9E1C13AECDF5794B0C0F5" + }, + { + "data":"11006F2200020000240000000A250067395C33000000000000000034000000000000000055A160BC41A45B6BB118DF23D77E4FF23C723431B917F50DCB41319ECC2821F34C5010DFA3B6DDAB58C7E8E5D944E736DA4B7046C30E4F460FD9DE4C1AA535D3D0C00064D554C88B43EFA00000000000000000000000000055534400000000000A20B3C85F482532A9578DBB3950B85CA06594D165400000B59B9F780081148366FB9ACD2A0FD822E31112D2EB6F98C317C2C1", + "index":"0000A8791F78CC9B39200E12A9BDAACCF40A72A512FA815525CFC9BA772990F7" + }, + { + "data":"1100612200000000240000000125003E742F2D0000000055286498B513710CFEB2D723A554C7557983D1952DF4DEE342C40DCB43067C9A21624000000306DC42008114225BAB89C4A4B94624BB069D6DB3C819F934991C", + "index":"0000B717320558E2DE1A3B9FDB24E9A695BF05D1A44E4A4683212BB1DD0FBA23" + }, + { + "data":"110072220002000025000B65783700000000000000003800000000000000005587591A63051645F37B85D1FBA55EE69B1C96BFF16904F5C99F03FB93D42D03756280000000000000000000000000000000000000004254430000000000000000000000000000000000000000000000000166800000000000000000000000000000000000000042544300000000000A20B3C85F482532A9578DBB3950B85CA06594D167D4C38D7EA4C680000000000000000000000000004254430000000000C795FDF8A637BCAAEDAD1C434033506236C82A2D", + "index":"000103996A3BAD918657F86E12A67D693E8FC8A814DA4B958A244B5F14D93E58" + } + ], + "status":"success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:-------------------------------------------|:---------------| +| `ledger_index` | 符号なし整数 | このレジャーのシーケンス番号 | +| `ledger_hash` | 文字列 | レジャー全体の一意の識別用ハッシュ。 | +| `state` | 配列 | ツリーのデータが含まれているJSONオブジェクトの配列。以下のように定義されています。 | +| `marker` | [マーカー][] | 応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。 | + +`state`配列の各オブジェクトのフォーマットは、要求で`binary`がtrueに設定されているかどうかによって異なります。各`state`オブジェクトには以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:--------------------|:----------|:-------------------------------------------| +| `data` | 文字列 | (`"binary":true`の場合にのみ含まれる)要求されたデータの16進表現。 | +| `LedgerEntryType` | 文字列 | (`"binary":false`の場合にのみ含まれる)このオブジェクトが表すレジャーオブジェクトの型を示す文字列。詳細なリストについては[レジャーデータフォーマット](ledger-data-formats.html)を参照してください。 | +| (追加のフィールド) | (各種) | (`"binary":false`の場合にのみ含まれる)このオブジェクトを記述する追加フィールド。オブジェクトのLedgerEntryTypeに応じて異なります。 | +| `index` | 文字列 | このレジャーエントリの一意のID(16進数) | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.ja.md b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.ja.md index af10c0c613..4e06fd8d5e 100644 --- a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.ja.md +++ b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.ja.md @@ -1,171 +1,171 @@ -# ledger_entry -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerEntry.cpp "Source") - -`ledger_entry`メソッドは、XRP Ledgerの1つのレジャーオブジェクトを生フォーマットで返します。取得可能な各種オブジェクトについては、[レジャーフォーマット][]を参照してください。 - -**注記:** このメソッドのコマンドラインバージョンはありません。代わりに[jsonメソッド][]を使用してコマンドラインからこのメソッドにアクセスできます。 - -## 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":3, - "command":"ledger_entry", - "type":"account_root", - "account_root":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index":"validated" -} -``` - -*JSON-RPC* - -``` -{ - "method":"ledger_entry", - "params":[ - { - "account_root":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "ledger_index":"validated", - "type":"account_root" - } - ] -} -``` - - - -[試してみる >](websocket-api-tool.html#ledger_entry) - -このメソッドでは各種データを取得できます。取得するアイテムのタイプを選択するには、当該のパラメーターを渡します。具体的には、以下のフィールドのいずれか1つを指定します。 - -1. `index` - 一意のIDを指定して任意のタイプのレジャーオブジェクトを取得します。 -2. `account_root` - [AccountRootオブジェクト](accountroot.html)を取得します。これは[account_infoメソッド][]とほぼ同等です。 -3. `directory` - 他のレジャーオブジェクトのリストが含まれている[DirectoryNode](directorynode.html)を取得します。 -4. `offer` - 通貨取引オファーを定義する[Offerオブジェクト](offer.html)を取得します。 -5. `ripple_state` - 2つのアカウント間の(XRP以外の)通貨の残高を追跡する[RippleStateオブジェクト](ripplestate.html)を取得します。 -6. `check` - 受取人が現金化できる支払いである[Checkオブジェクト](check.html)を取得します。[新規: rippled 1.0.0][] -7. `escrow` - 特定の時刻または条件に一致するまでXRPを保有する[Escrowオブジェクト](escrow-object.html)を取得します。[新規: rippled 1.0.0][] -8. `payment_channel` - 非同期支払いのためにXRPを保有する[PayChannelオブジェクト](paychannel.html)を取得します。[新規: rippled 1.0.0][] -9. `deposit_preauth` - [Deposit Authorization](depositauth.html)を必要とするアカウントへの支払いの事前承認を追跡する[DepositPreauthオブジェクト](depositpreauth-object.html)を取得します。[新規: rippled 1.1.0][] - -上記のアイテムを複数指定すると、サーバーはそのうちの1つのみを取得します。どのアイテムが取得されるかは未定義です。 - -このメソッドで認識されるすべてのパラメーターのリストを次に示します。 - -| `Field` | 型 | 説明 | -|:------------------------|:---------------------------|:----------------------| -| `index` | 文字列 | _(省略可)_ レジャーから取得する1つのオブジェクトの[オブジェクトID](ledger-object-ids.html)を指定します。 | -| `account_root` | 文字列 - [アドレス][] | _(省略可)_ 取得する[AccountRootオブジェクト](accountroot.html)を指定します。 | -| `check` | 文字列 | _(省略可)_ レジャーから取得する[Checkオブジェクト](check.html)の[オブジェクトID](ledger-object-ids.html)を指定します。 | -| `deposit_preauth` | オブジェクトまたは文字列 | _(省略可)_ 取得する[DepositPreAuthオブジェクト](depositpreauth-object.html)を指定します。文字列の場合はDepositPreAuthオブジェクトの[オブジェクトID](ledger-object-ids.html)(16進数)である必要があります。オブジェクトの場合は`owner`および`authorized`サブフィールドが必要です。 | -| `deposit_preauth.owner` | 文字列 - [アドレス][] | _(`deposit_preauth`がオブジェクトとして指定されている場合に必須)_ 事前承認を提供したアカウント。 | -| `deposit_preauth.authorized` | 文字列 - [アドレス][] | _(`deposit_preauth`がオブジェクトとして指定されている場合に必須)_ 事前承認を受けたアカウント。 | -| `directory` | オブジェクトまたは文字列 | _(省略可)_ 取得する[DirectoryNode](directorynode.html)を指定します。文字列の場合はディレクトリーの[オブジェクトID](ledger-object-ids.html)(16進数)である必要があります。オブジェクトの場合はサブフィールドとして`dir_root`または`owner`のいずれかが必要です。また必要に応じて`sub_index`サブフィールドを指定できます。 | -| `directory.sub_index` | 符号なし整数 | _(省略可)_ 指定されている場合は、[DirectoryNode](directorynode.html)の後のページにジャンプします。 | -| `directory.dir_root` | 文字列 | _(`directory`がオブジェクトとして指定されており、`directory.owner`が指定されていない場合に必須)_ 取得するディレクトリーを識別する一意のインデックス(16進数)。 | -| `directory.owner` | 文字列 | _(`directory`がオブジェクトとして指定されており、`directory.dir_root`が指定されていない場合に必須)_ このディレクトリーに関連付けられているアカウントの一意のアドレス。 | -| `escrow` | オブジェクトまたは文字列 | _(省略可)_ 取得する[Escrowオブジェクト](escrow-object.html)を指定します。文字列の場合はEscrowの[オブジェクトID](ledger-object-ids.html)(16進数)である必要があります。オブジェクトの場合は`owner`および`seq`サブフィールドが必要です。 | -| `escrow.owner` | 文字列 - [アドレス][] | _(`escrow`がオブジェクトとして指定されている場合に必須)_ Escrowオブジェクトの所有者(送金元)。 | -| `escrow.seq` | 符号なし整数 | _(`escrow`がオブジェクトとして指定されている場合に必須)_ Escrowオブジェクトを作成したトランザクションのシーケンス番号。 | -| `offer` | オブジェクトまたは文字列 | _(省略可)_ 取得する[Offer オブジェクト](offer.html)を指定します。文字列の場合はOfferの[一意のインデックス](ledgers.html#ツリーの形式)として解釈されます。オブジェクトの場合は、オファーを一意に識別するためサブフィールド`account`と`seq`が必要です。 | -| `offer.account` | 文字列 - [アドレス][] | _(`offer`が指定されている場合に必須)_ オファーを出したアカウント。 | -| `offer.seq` | 符号なし整数 | _(`offer`が指定されている場合に必須)_ Offerオブジェクトを作成したトランザクションのシーケンス番号。 | -| `payment_channel` | 文字列 | _(省略可)_ 取得する[PayChannel オブジェクト](paychannel.html)の[オブジェクトID](ledger-object-ids.html)を指定します。 | -| `ripple_state` | オブジェクト | _(省略可)_ 取得するRippleState(トラストライン)オブジェクトを指定するオブジェクト。取得するRippleStateエントリを一意に指定するため、`accounts`および`currency`サブフィールドが必要です。 | -| `ripple_state.accounts` | 配列 | _(`ripple_state`が指定されている場合に必須)_ アカウントの[アドレス][]からなる長さ2の配列。この[RippleStateオブジェクト](ripplestate.html)によりリンクされる2つのアカウントを定義します。 | -| `ripple_state.currency` | 文字列 | _(`ripple_state`が指定されている場合に必須)_ 取得する[RippleStateオブジェクト](ripplestate.html)の[通貨コード][]。 | -| `binary` | ブール値 | _(省略可)_ trueの場合、要求したレジャーオブジェクトの内容が16進文字列として返されます。それ以外の場合はデータがJSONフォーマットで返されます。デフォルトは`false`です。[更新: rippled 1.2.0][新規: rippled 1.2.0] | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | - -`generator`パラメーターと`ledger`パラメーターは廃止予定であり、今後予告なしに削除される可能性があります。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -```{ - "id":3, - "result":{ - "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", - "ledger_index":6889347, - "node":{ - "Account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance":"27389517749", - "Flags":0, - "LedgerEntryType":"AccountRoot", - "OwnerCount":18, - "PreviousTxnID":"B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", - "PreviousTxnLgrSeq":6592159, - "Sequence":1400, - "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" - } - }, - "status":"success", - "type":"response" -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", - "ledger_index":8696234, - "node":{ - "Account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Balance":"13176802787", - "Flags":0, - "LedgerEntryType":"AccountRoot", - "OwnerCount":17, - "PreviousTxnID":"E5D0235A236F7CD162C1AB87A0325056AE61CFC63D92D1494AB5D826AAD0CDCA", - "PreviousTxnLgrSeq":8554742, - "Sequence":1406, - "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" - }, - "status":"success", - "validated": true - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `index` | 文字列 | このledger_entryの一意の識別用キー | -| `ledger_index` | 符号なし整数 | このデータの取得元レジャーの一意のシーケンス番号 | -| `node` | オブジェクト | (`"binary": true`が指定されている場合は省略)[レジャーフォーマット][]に基づく、このレジャーオブジェクトのデータが含まれているオブジェクト。 | -| `node_binary` | 文字列 | (`"binary":true`が指定されていない場合は省略)レジャーオブジェクトのバイナリデータ(16進数)。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `deprecatedFeature` - 削除されたフィールド(`generator`など)が要求に指定されていました。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -* `malformedAddress` - 要求の[アドレス][]フィールドが誤って指定されています。 -* `malformedCurrency` - 要求の[通貨コード][]フィールドが誤って指定されています。 -* `malformedOwner` - 要求の`escrow.owner`サブフィールドが誤って指定されています。 -* `malformedRequest` - 要求にフィールドが無効な組み合わせで指定されているか、1つ以上のフィールドの型が誤っています。 -* `unknownOption` - 要求に指定されたフィールドが、予期される要求フォーマットのいずれにも一致していません。 - - - -[レジャーフォーマット]: ledger-data-formats.html -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# ledger_entry +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/LedgerEntry.cpp "Source") + +`ledger_entry`メソッドは、XRP Ledgerの1つのレジャーオブジェクトを生フォーマットで返します。取得可能な各種オブジェクトについては、[レジャーフォーマット][]を参照してください。 + +**注記:** このメソッドのコマンドラインバージョンはありません。代わりに[jsonメソッド][]を使用してコマンドラインからこのメソッドにアクセスできます。 + +## 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":3, + "command":"ledger_entry", + "type":"account_root", + "account_root":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index":"validated" +} +``` + +*JSON-RPC* + +``` +{ + "method":"ledger_entry", + "params":[ + { + "account_root":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "ledger_index":"validated", + "type":"account_root" + } + ] +} +``` + + + +[試してみる >](websocket-api-tool.html#ledger_entry) + +このメソッドでは各種データを取得できます。取得するアイテムのタイプを選択するには、当該のパラメーターを渡します。具体的には、以下のフィールドのいずれか1つを指定します。 + +1. `index` - 一意のIDを指定して任意のタイプのレジャーオブジェクトを取得します。 +2. `account_root` - [AccountRootオブジェクト](accountroot.html)を取得します。これは[account_infoメソッド][]とほぼ同等です。 +3. `directory` - 他のレジャーオブジェクトのリストが含まれている[DirectoryNode](directorynode.html)を取得します。 +4. `offer` - 通貨取引オファーを定義する[Offerオブジェクト](offer.html)を取得します。 +5. `ripple_state` - 2つのアカウント間の(XRP以外の)通貨の残高を追跡する[RippleStateオブジェクト](ripplestate.html)を取得します。 +6. `check` - 受取人が現金化できる支払いである[Checkオブジェクト](check.html)を取得します。[新規: rippled 1.0.0][] +7. `escrow` - 特定の時刻または条件に一致するまでXRPを保有する[Escrowオブジェクト](escrow-object.html)を取得します。[新規: rippled 1.0.0][] +8. `payment_channel` - 非同期支払いのためにXRPを保有する[PayChannelオブジェクト](paychannel.html)を取得します。[新規: rippled 1.0.0][] +9. `deposit_preauth` - [Deposit Authorization](depositauth.html)を必要とするアカウントへの支払いの事前承認を追跡する[DepositPreauthオブジェクト](depositpreauth-object.html)を取得します。[新規: rippled 1.1.0][] + +上記のアイテムを複数指定すると、サーバーはそのうちの1つのみを取得します。どのアイテムが取得されるかは未定義です。 + +このメソッドで認識されるすべてのパラメーターのリストを次に示します。 + +| `Field` | 型 | 説明 | +|:------------------------|:---------------------------|:----------------------| +| `index` | 文字列 | _(省略可)_ レジャーから取得する1つのオブジェクトの[オブジェクトID](ledger-object-ids.html)を指定します。 | +| `account_root` | 文字列 - [アドレス][] | _(省略可)_ 取得する[AccountRootオブジェクト](accountroot.html)を指定します。 | +| `check` | 文字列 | _(省略可)_ レジャーから取得する[Checkオブジェクト](check.html)の[オブジェクトID](ledger-object-ids.html)を指定します。 | +| `deposit_preauth` | オブジェクトまたは文字列 | _(省略可)_ 取得する[DepositPreAuthオブジェクト](depositpreauth-object.html)を指定します。文字列の場合はDepositPreAuthオブジェクトの[オブジェクトID](ledger-object-ids.html)(16進数)である必要があります。オブジェクトの場合は`owner`および`authorized`サブフィールドが必要です。 | +| `deposit_preauth.owner` | 文字列 - [アドレス][] | _(`deposit_preauth`がオブジェクトとして指定されている場合に必須)_ 事前承認を提供したアカウント。 | +| `deposit_preauth.authorized` | 文字列 - [アドレス][] | _(`deposit_preauth`がオブジェクトとして指定されている場合に必須)_ 事前承認を受けたアカウント。 | +| `directory` | オブジェクトまたは文字列 | _(省略可)_ 取得する[DirectoryNode](directorynode.html)を指定します。文字列の場合はディレクトリーの[オブジェクトID](ledger-object-ids.html)(16進数)である必要があります。オブジェクトの場合はサブフィールドとして`dir_root`または`owner`のいずれかが必要です。また必要に応じて`sub_index`サブフィールドを指定できます。 | +| `directory.sub_index` | 符号なし整数 | _(省略可)_ 指定されている場合は、[DirectoryNode](directorynode.html)の後のページにジャンプします。 | +| `directory.dir_root` | 文字列 | _(`directory`がオブジェクトとして指定されており、`directory.owner`が指定されていない場合に必須)_ 取得するディレクトリーを識別する一意のインデックス(16進数)。 | +| `directory.owner` | 文字列 | _(`directory`がオブジェクトとして指定されており、`directory.dir_root`が指定されていない場合に必須)_ このディレクトリーに関連付けられているアカウントの一意のアドレス。 | +| `escrow` | オブジェクトまたは文字列 | _(省略可)_ 取得する[Escrowオブジェクト](escrow-object.html)を指定します。文字列の場合はEscrowの[オブジェクトID](ledger-object-ids.html)(16進数)である必要があります。オブジェクトの場合は`owner`および`seq`サブフィールドが必要です。 | +| `escrow.owner` | 文字列 - [アドレス][] | _(`escrow`がオブジェクトとして指定されている場合に必須)_ Escrowオブジェクトの所有者(送金元)。 | +| `escrow.seq` | 符号なし整数 | _(`escrow`がオブジェクトとして指定されている場合に必須)_ Escrowオブジェクトを作成したトランザクションのシーケンス番号。 | +| `offer` | オブジェクトまたは文字列 | _(省略可)_ 取得する[Offer オブジェクト](offer.html)を指定します。文字列の場合はOfferの[一意のインデックス](ledgers.html#ツリーの形式)として解釈されます。オブジェクトの場合は、オファーを一意に識別するためサブフィールド`account`と`seq`が必要です。 | +| `offer.account` | 文字列 - [アドレス][] | _(`offer`が指定されている場合に必須)_ オファーを出したアカウント。 | +| `offer.seq` | 符号なし整数 | _(`offer`が指定されている場合に必須)_ Offerオブジェクトを作成したトランザクションのシーケンス番号。 | +| `payment_channel` | 文字列 | _(省略可)_ 取得する[PayChannel オブジェクト](paychannel.html)の[オブジェクトID](ledger-object-ids.html)を指定します。 | +| `ripple_state` | オブジェクト | _(省略可)_ 取得するRippleState(トラストライン)オブジェクトを指定するオブジェクト。取得するRippleStateエントリを一意に指定するため、`accounts`および`currency`サブフィールドが必要です。 | +| `ripple_state.accounts` | 配列 | _(`ripple_state`が指定されている場合に必須)_ アカウントの[アドレス][]からなる長さ2の配列。この[RippleStateオブジェクト](ripplestate.html)によりリンクされる2つのアカウントを定義します。 | +| `ripple_state.currency` | 文字列 | _(`ripple_state`が指定されている場合に必須)_ 取得する[RippleStateオブジェクト](ripplestate.html)の[通貨コード][]。 | +| `binary` | ブール値 | _(省略可)_ trueの場合、要求したレジャーオブジェクトの内容が16進文字列として返されます。それ以外の場合はデータがJSONフォーマットで返されます。デフォルトは`false`です。[更新: rippled 1.2.0][新規: rippled 1.2.0] | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | + +`generator`パラメーターと`ledger`パラメーターは廃止予定であり、今後予告なしに削除される可能性があります。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +```{ + "id":3, + "result":{ + "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", + "ledger_index":6889347, + "node":{ + "Account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance":"27389517749", + "Flags":0, + "LedgerEntryType":"AccountRoot", + "OwnerCount":18, + "PreviousTxnID":"B6B410172C0B65575D89E464AF5B99937CC568822929ABF87DA75CBD11911932", + "PreviousTxnLgrSeq":6592159, + "Sequence":1400, + "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" + } + }, + "status":"success", + "type":"response" +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05", + "ledger_index":8696234, + "node":{ + "Account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Balance":"13176802787", + "Flags":0, + "LedgerEntryType":"AccountRoot", + "OwnerCount":17, + "PreviousTxnID":"E5D0235A236F7CD162C1AB87A0325056AE61CFC63D92D1494AB5D826AAD0CDCA", + "PreviousTxnLgrSeq":8554742, + "Sequence":1406, + "index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05" + }, + "status":"success", + "validated": true + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:-----------------|:-----------------------------------------| +| `index` | 文字列 | このledger_entryの一意の識別用キー | +| `ledger_index` | 符号なし整数 | このデータの取得元レジャーの一意のシーケンス番号 | +| `node` | オブジェクト | (`"binary": true`が指定されている場合は省略)[レジャーフォーマット][]に基づく、このレジャーオブジェクトのデータが含まれているオブジェクト。 | +| `node_binary` | 文字列 | (`"binary":true`が指定されていない場合は省略)レジャーオブジェクトのバイナリデータ(16進数)。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `deprecatedFeature` - 削除されたフィールド(`generator`など)が要求に指定されていました。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `malformedAddress` - 要求の[アドレス][]フィールドが誤って指定されています。 +* `malformedCurrency` - 要求の[通貨コード][]フィールドが誤って指定されています。 +* `malformedOwner` - 要求の`escrow.owner`サブフィールドが誤って指定されています。 +* `malformedRequest` - 要求にフィールドが無効な組み合わせで指定されているか、1つ以上のフィールドの型が誤っています。 +* `unknownOption` - 要求に指定されたフィールドが、予期される要求フォーマットのいずれにも一致していません。 + + + +[レジャーフォーマット]: ledger-data-formats.html +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/book_offers.ja.md b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/book_offers.ja.md index 48d5c40994..c12002cb96 100644 --- a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/book_offers.ja.md +++ b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/book_offers.ja.md @@ -1,190 +1,190 @@ -# book_offers -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/BookOffers.cpp "Source") - -`book_offers`メソッドは、[オーダーブック](http://www.investopedia.com/terms/o/order-book.asp)と呼ばれる、2つの通貨間のオファーのリストを取得します。結果が非常に大きい場合、結果の一部がマーカー付きで返されます。これにより、その後の要求は前回の要求で終わった箇所から再開できます。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 4, - "command": "book_offers", - "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "taker_gets": { - "currency": "XRP" - }, - "taker_pays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - }, - "limit": 10 -} -``` - -*JSON-RPC* - -``` -{ - "method": "book_offers", - "params": [ - { - "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "taker_gets": { - "currency": "XRP" - }, - "taker_pays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - }, - "limit": 10 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: book_offers taker_pays taker_gets [taker [ledger [limit] ] ] -rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' -``` - - - -[試してみる>](websocket-api-tool.html#book_offers) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:-------------------------------------------|:-------------------------------| -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]を参照してください。) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | -| `limit` | 符号なし整数 | _(省略可)_ 指定されている場合、サーバーはこの制限を超える数のオファーを結果に含めません。資金供給のないオファーはサーバーにより省略されるため、返される結果の総数はこの制限よりも少ないことがあります。 | -| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答で終わった箇所からデータの取得を再開します。 | -| `taker` | 文字列 | _(省略可)_ パースペクティブとして使用するアカウントの[アドレス][]。このアカウントが発行した[資金供給のないオファー](offers.html#オファーのライフサイクル)は常に応答に含まれます。(これを使用して、キャンセルしたい各自のオーダーを検索できます。) | -| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][Currency Amount]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | -| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を、[通貨額][Currency Amount]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 11, - "status": "success", - "type": "response", - "result": { - "ledger_current_index": 7035305, - "offers": [ - { - "Account": "rM3X3QSr8icjTGpaF52dozhbT2BZSXJQYM", - "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D55055E4C405218EB", - "BookNode": "0000000000000000", - "Flags": 0, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000AE0", - "PreviousTxnID": "6956221794397C25A53647182E5C78A439766D600724074C99D78982E37599F1", - "PreviousTxnLgrSeq": 7022646, - "Sequence": 264542, - "TakerGets": { - "currency": "EUR", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "17.90363633316433" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "27.05340557506234" - }, - "index": "96A9104BF3137131FF8310B9174F3B37170E2144C813CA2A1695DF2C5677E811", - "quality": "1.511056473200875" - }, - { - "Account": "rhsxKNyN99q6vyYCTHNTC1TqWCeHr7PNgp", - "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D5505DCAA8FE12000", - "BookNode": "0000000000000000", - "Flags": 131072, - "LedgerEntryType": "Offer", - "OwnerNode": "0000000000000001", - "PreviousTxnID": "8AD748CD489F7FF34FCD4FB73F77F1901E27A6EFA52CCBB0CCDAAB934E5E754D", - "PreviousTxnLgrSeq": 7007546, - "Sequence": 265, - "TakerGets": { - "currency": "EUR", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "2.542743233917848" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "4.19552633596446" - }, - "index": "7001797678E886E22D6DE11AF90DF1E08F4ADC21D763FAFB36AF66894D695235", - "quality": "1.65" - } - ] - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "ledger_current_index": 8696243, - "offers": [], - "status": "success", - "validated": false - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------------|:-------------------------------------------|:------------------------------------------| -| `ledger_current_index` | 整数 | (レジャーバージョンが指定されている場合は省略)このデータの取得時に使用したレジャーバージョンのシーケンス番号。 | -| `ledger_index` | 整数 | (ledger\_current\_indexが代わりに指定されている場合は省略)要求で指定される、このデータの取得時に使用されたレジャーバージョンのシーケンス番号。 | -| `ledger_hash` | 文字列 | (省略される場合があります)要求で指定される、このデータの取得時に使用されたレジャーバージョンの16進数ハッシュ。 | -| `marker` | [マーカー][] | (省略される場合があります)応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。 | -| `offers` | 配列 | Offerオブジェクトの配列。各オブジェクトには[Offer オブジェクト](offer.html)のフィールドが含まれています。 | - -`offers`配列の要素には、Offerの標準フィールドの他に以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:--------------------|:---------------------------------|:--------------------| -| `owner_funds` | 文字列 | オファーの発行元が保有する取引可能なTakerGets通貨の金額。(XRPはdrop単位で表されます。その他のすべての通貨は10進数値として表されます。)1人のトレーダーの複数のオファーが同一のブックに含まれている場合、このフィールドは最高順位のオファーにのみ含まれます。 | -| `taker_gets_funded` | 文字列(XRP)またはオブジェクト(XRP以外) | (部分的に資金供給されているオファーのみに含まれます)オファーの資金供給ステータスが指定されている場合に、受取人が受領できる最大通貨額。 | -| `taker_pays_funded` | 文字列(XRP)またはオブジェクト(XRP以外) | (部分的に資金供給されているオファーのみに含まれます)オファーの資金供給ステータスが指定されている場合に、受取人が支払う最大通貨額。 | -| `quality` | 文字列 | 為替レート(`taker_pays`を`taker_gets`で割った比率)。公正を期すため、同じクオリティのオファーは先入れ先出しで自動的に受諾されます。(つまり、複数の人々が通貨を同じレートで取引するオファーを出した場合、最も古いオファーが最初に受諾されます。) | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 -* `srcCurMalformed` - 要求の`taker_pays`フィールドのフォーマットが適切ではありません。 -* `dstAmtMalformed` - 要求の`taker_gets`フィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - 要求の`taker_pays`フィールドの`issuer`フィールドが無効です。 -* `dstIsrMalformed` - 要求の`taker_gets`フィールドの`issuer`フィールドが無効です。 -* `badMarket` - 必要なオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# book_offers +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/BookOffers.cpp "Source") + +`book_offers`メソッドは、[オーダーブック](http://www.investopedia.com/terms/o/order-book.asp)と呼ばれる、2つの通貨間のオファーのリストを取得します。結果が非常に大きい場合、結果の一部がマーカー付きで返されます。これにより、その後の要求は前回の要求で終わった箇所から再開できます。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 4, + "command": "book_offers", + "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "taker_gets": { + "currency": "XRP" + }, + "taker_pays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + }, + "limit": 10 +} +``` + +*JSON-RPC* + +``` +{ + "method": "book_offers", + "params": [ + { + "taker": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "taker_gets": { + "currency": "XRP" + }, + "taker_pays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + }, + "limit": 10 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: book_offers taker_pays taker_gets [taker [ledger [limit] ] ] +rippled book_offers 'USD/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' 'EUR/rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B' +``` + + + +[試してみる>](websocket-api-tool.html#book_offers) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:-------------------------------------------|:-------------------------------| +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]を参照してください。) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | +| `limit` | 符号なし整数 | _(省略可)_ 指定されている場合、サーバーはこの制限を超える数のオファーを結果に含めません。資金供給のないオファーはサーバーにより省略されるため、返される結果の総数はこの制限よりも少ないことがあります。 | +| `marker` | [マーカー][] | _(省略可)_ 以前にページネーションされた応答の値。その応答で終わった箇所からデータの取得を再開します。 | +| `taker` | 文字列 | _(省略可)_ パースペクティブとして使用するアカウントの[アドレス][]。このアカウントが発行した[資金供給のないオファー](offers.html#オファーのライフサイクル)は常に応答に含まれます。(これを使用して、キャンセルしたい各自のオーダーを検索できます。) | +| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][Currency Amount]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | +| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を、[通貨額][Currency Amount]と同様に、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 11, + "status": "success", + "type": "response", + "result": { + "ledger_current_index": 7035305, + "offers": [ + { + "Account": "rM3X3QSr8icjTGpaF52dozhbT2BZSXJQYM", + "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D55055E4C405218EB", + "BookNode": "0000000000000000", + "Flags": 0, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000AE0", + "PreviousTxnID": "6956221794397C25A53647182E5C78A439766D600724074C99D78982E37599F1", + "PreviousTxnLgrSeq": 7022646, + "Sequence": 264542, + "TakerGets": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "17.90363633316433" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "27.05340557506234" + }, + "index": "96A9104BF3137131FF8310B9174F3B37170E2144C813CA2A1695DF2C5677E811", + "quality": "1.511056473200875" + }, + { + "Account": "rhsxKNyN99q6vyYCTHNTC1TqWCeHr7PNgp", + "BookDirectory": "7E5F614417C2D0A7CEFEB73C4AA773ED5B078DE2B5771F6D5505DCAA8FE12000", + "BookNode": "0000000000000000", + "Flags": 131072, + "LedgerEntryType": "Offer", + "OwnerNode": "0000000000000001", + "PreviousTxnID": "8AD748CD489F7FF34FCD4FB73F77F1901E27A6EFA52CCBB0CCDAAB934E5E754D", + "PreviousTxnLgrSeq": 7007546, + "Sequence": 265, + "TakerGets": { + "currency": "EUR", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "2.542743233917848" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "4.19552633596446" + }, + "index": "7001797678E886E22D6DE11AF90DF1E08F4ADC21D763FAFB36AF66894D695235", + "quality": "1.65" + } + ] + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "ledger_current_index": 8696243, + "offers": [], + "status": "success", + "validated": false + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------------|:-------------------------------------------|:------------------------------------------| +| `ledger_current_index` | 整数 | (レジャーバージョンが指定されている場合は省略)このデータの取得時に使用したレジャーバージョンのシーケンス番号。 | +| `ledger_index` | 整数 | (ledger\_current\_indexが代わりに指定されている場合は省略)要求で指定される、このデータの取得時に使用されたレジャーバージョンのシーケンス番号。 | +| `ledger_hash` | 文字列 | (省略される場合があります)要求で指定される、このデータの取得時に使用されたレジャーバージョンの16進数ハッシュ。 | +| `marker` | [マーカー][] | (省略される場合があります)応答がページネーションされていることを示す、サーバーが定義した値。この値を次のコールに渡して、このコールで終わった箇所から再開します。この後に情報ページがない場合は省略されます。 | +| `offers` | 配列 | Offerオブジェクトの配列。各オブジェクトには[Offer オブジェクト](offer.html)のフィールドが含まれています。 | + +`offers`配列の要素には、Offerの標準フィールドの他に以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:--------------------|:---------------------------------|:--------------------| +| `owner_funds` | 文字列 | オファーの発行元が保有する取引可能なTakerGets通貨の金額。(XRPはdrop単位で表されます。その他のすべての通貨は10進数値として表されます。)1人のトレーダーの複数のオファーが同一のブックに含まれている場合、このフィールドは最高順位のオファーにのみ含まれます。 | +| `taker_gets_funded` | 文字列(XRP)またはオブジェクト(XRP以外) | (部分的に資金供給されているオファーのみに含まれます)オファーの資金供給ステータスが指定されている場合に、受取人が受領できる最大通貨額。 | +| `taker_pays_funded` | 文字列(XRP)またはオブジェクト(XRP以外) | (部分的に資金供給されているオファーのみに含まれます)オファーの資金供給ステータスが指定されている場合に、受取人が支払う最大通貨額。 | +| `quality` | 文字列 | 為替レート(`taker_pays`を`taker_gets`で割った比率)。公正を期すため、同じクオリティのオファーは先入れ先出しで自動的に受諾されます。(つまり、複数の人々が通貨を同じレートで取引するオファーを出した場合、最も古いオファーが最初に受諾されます。) | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 +* `srcCurMalformed` - 要求の`taker_pays`フィールドのフォーマットが適切ではありません。 +* `dstAmtMalformed` - 要求の`taker_gets`フィールドのフォーマットが適切ではありません。 +* `srcIsrMalformed` - 要求の`taker_pays`フィールドの`issuer`フィールドが無効です。 +* `dstIsrMalformed` - 要求の`taker_gets`フィールドの`issuer`フィールドが無効です。 +* `badMarket` - 必要なオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/deposit_authorized.ja.md b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/deposit_authorized.ja.md index 50fd91be4c..314a0f40ab 100644 --- a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/deposit_authorized.ja.md +++ b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/deposit_authorized.ja.md @@ -1,143 +1,143 @@ -# deposit_authorized -[[ソース]
](https://github.com/ripple/rippled/blob/817d2339b8632cb2f97d3edd6f7af33aa7631744/src/ripple/rpc/handlers/DepositAuthorized.cpp "Source") - -`deposit_authorized`コマンドは、あるアカウントに別のアカウントへ支払を直接送金する権限があるかどうかを示します。アカウントへの送金に承認を義務付ける方法については、[Deposit Authorization](depositauth.html)を参照してください。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -```json -{ - "id": 1, - "command": "deposit_authorized", - "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "ledger_index": "validated" -} -``` - -*JSON-RPC* - -```json -{ - "method": "deposit_authorized", - "params": [ - { - "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "ledger_index": "validated" - } - ] -} -``` - -*コマンドライン* - -```bash -#Syntax: deposit_authorized [] -rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8 validated -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:----------------------|:---------------------------|:------------------------| -| `source_account` | 文字列 - [アドレス][] | 発生し得る支払の送金元。 | -| `destination_account` | 文字列 - [アドレス][] | 発生し得る支払の送金先。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]を参照してください。) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | - - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -```json -{ - "id": 1, - "result": { - "deposit_authorized": true, - "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "ledger_hash": "BD03A10653ED9D77DCA859B7A735BF0580088A8F287FA2C5403E0A19C58EF322", - "ledger_index": 8, - "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "validated": true - }, - "status": "success", - "type": "response" -} -``` - -*JSON-RPC* - -```json -{ - "result": { - "deposit_authorized": true, - "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "ledger_hash": "BD03A10653ED9D77DCA859B7A735BF0580088A8F287FA2C5403E0A19C58EF322", - "ledger_index": 8, - "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "status": "success", - "validated": true - } -} -``` - -*コマンドライン* - -```json -Loading: "/etc/rippled.cfg" -2018-Jul-30 20:07:38.771658157 HTTPClient:NFO Connecting to 127.0.0.1:5005 - -{ - "result" : { - "deposit_authorized" : true, - "destination_account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "ledger_hash" : "BD03A10653ED9D77DCA859B7A735BF0580088A8F287FA2C5403E0A19C58EF322", - "ledger_index" : 8, - "source_account" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "status" : "success", - "validated" : true - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:-----------------------|:---------------------|:-----------------------------| -| `deposit_authorized` | ブール値 | 指定の支払元アカウントから支払先アカウントへの直接送金が承認されているかどうか。`true`の場合、支払先アカウントで[Deposit Authorization](depositauth.html)を必要としていないか、または支払元アカウントが事前承認されています。 | -| `destination_account` | 文字列 - [アドレス][] | 要求に指定されている宛先アカウント。 | -| `ledger_hash` | 文字列 | _(省略される場合があります)_ この応答の生成に使用されたレジャーの識別用ハッシュ。 | -| `ledger_index` | 数値 | _(省略される場合があります)_ この応答の生成に使用されたレジャーバージョンのシーケンス番号。 | -| `ledger_current_index` | 数値 | _(省略される場合があります)_ この応答の生成に使用された現在処理中のレジャーバージョンのシーケンス番号。 | -| `source_account` | 文字列 - [アドレス][] | 要求に指定されている支払元アカウント。 | -| `validated` | ブール値 | _(省略される場合があります)_ `true`の場合、検証済みレジャーバージョンからの情報が取り込まれます。 | - -**注記:** `deposit_authorized`ステータスが`true`でも、指定の支払元から指定の支払先への送金が可能であるとは保証されません。たとえば、支払先アカウントに指定通貨の[トラストライン](trust-lines-and-issuing.html)がない場合や、送金に十分な流動性がない場合があります。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `actMalformed` - 要求の`source_account`フィールドまたは`destination_account`フィールドに指定されている[アドレス][]のフォーマットが適切ではありません。(入力ミスが含まれていたり、長さが正しくない場合は、チェックサムは失敗します。) -* `dstActNotFound` - 要求の`destination_account`フィールドがレジャーのアカウントに対応していません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 -* `srcActNotFound` - 要求の`source_account`フィールドがレジャーのアカウントに対応していません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# deposit_authorized +[[ソース]
](https://github.com/ripple/rippled/blob/817d2339b8632cb2f97d3edd6f7af33aa7631744/src/ripple/rpc/handlers/DepositAuthorized.cpp "Source") + +`deposit_authorized`コマンドは、あるアカウントに別のアカウントへ支払を直接送金する権限があるかどうかを示します。アカウントへの送金に承認を義務付ける方法については、[Deposit Authorization](depositauth.html)を参照してください。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +```json +{ + "id": 1, + "command": "deposit_authorized", + "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "ledger_index": "validated" +} +``` + +*JSON-RPC* + +```json +{ + "method": "deposit_authorized", + "params": [ + { + "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "ledger_index": "validated" + } + ] +} +``` + +*コマンドライン* + +```bash +#Syntax: deposit_authorized [] +rippled deposit_authorized rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8 validated +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:----------------------|:---------------------------|:------------------------| +| `source_account` | 文字列 - [アドレス][] | 発生し得る支払の送金元。 | +| `destination_account` | 文字列 - [アドレス][] | 発生し得る支払の送金先。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進数文字列。([レジャーの指定][]を参照してください。) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください。) | + + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +```json +{ + "id": 1, + "result": { + "deposit_authorized": true, + "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "ledger_hash": "BD03A10653ED9D77DCA859B7A735BF0580088A8F287FA2C5403E0A19C58EF322", + "ledger_index": 8, + "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "validated": true + }, + "status": "success", + "type": "response" +} +``` + +*JSON-RPC* + +```json +{ + "result": { + "deposit_authorized": true, + "destination_account": "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "ledger_hash": "BD03A10653ED9D77DCA859B7A735BF0580088A8F287FA2C5403E0A19C58EF322", + "ledger_index": 8, + "source_account": "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "status": "success", + "validated": true + } +} +``` + +*コマンドライン* + +```json +Loading: "/etc/rippled.cfg" +2018-Jul-30 20:07:38.771658157 HTTPClient:NFO Connecting to 127.0.0.1:5005 + +{ + "result" : { + "deposit_authorized" : true, + "destination_account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "ledger_hash" : "BD03A10653ED9D77DCA859B7A735BF0580088A8F287FA2C5403E0A19C58EF322", + "ledger_index" : 8, + "source_account" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "status" : "success", + "validated" : true + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:-----------------------|:---------------------|:-----------------------------| +| `deposit_authorized` | ブール値 | 指定の支払元アカウントから支払先アカウントへの直接送金が承認されているかどうか。`true`の場合、支払先アカウントで[Deposit Authorization](depositauth.html)を必要としていないか、または支払元アカウントが事前承認されています。 | +| `destination_account` | 文字列 - [アドレス][] | 要求に指定されている宛先アカウント。 | +| `ledger_hash` | 文字列 | _(省略される場合があります)_ この応答の生成に使用されたレジャーの識別用ハッシュ。 | +| `ledger_index` | 数値 | _(省略される場合があります)_ この応答の生成に使用されたレジャーバージョンのシーケンス番号。 | +| `ledger_current_index` | 数値 | _(省略される場合があります)_ この応答の生成に使用された現在処理中のレジャーバージョンのシーケンス番号。 | +| `source_account` | 文字列 - [アドレス][] | 要求に指定されている支払元アカウント。 | +| `validated` | ブール値 | _(省略される場合があります)_ `true`の場合、検証済みレジャーバージョンからの情報が取り込まれます。 | + +**注記:** `deposit_authorized`ステータスが`true`でも、指定の支払元から指定の支払先への送金が可能であるとは保証されません。たとえば、支払先アカウントに指定通貨の[トラストライン](trust-lines-and-issuing.html)がない場合や、送金に十分な流動性がない場合があります。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `actMalformed` - 要求の`source_account`フィールドまたは`destination_account`フィールドに指定されている[アドレス][]のフォーマットが適切ではありません。(入力ミスが含まれていたり、長さが正しくない場合は、チェックサムは失敗します。) +* `dstActNotFound` - 要求の`destination_account`フィールドがレジャーのアカウントに対応していません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`に指定されているレジャーが存在しないか、存在しているがサーバーにはありません。 +* `srcActNotFound` - 要求の`source_account`フィールドがレジャーのアカウントに対応していません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/path_find.ja.md b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/path_find.ja.md index d3ee4b0ce5..e3e322c7ce 100644 --- a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/path_find.ja.md +++ b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/path_find.ja.md @@ -1,583 +1,583 @@ -# path_find -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp "Source") - -*WebSocket APIのみ。*`path_find`メソッドは、トランザクションが実行される可能性のある[パス](paths.html)を探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。JSON-RPCでサポートされているシンプルなバージョンについては、[ripple_path_findメソッド][]を参照してください。完全にXRPで行われる支払いの場合、XRPはどのアカウントにも直接送金できるためパスを探索する必要はありません。 - -path_findコマンドには3種類のモード(サブコマンド)があります。使用するモードを`subcommand`パラメーターに指定します。 - -* `create` - Pathfinding情報の送信を開始します -* `close` - Pathfinding情報の送信を停止します -* `status` - 現在処理中のPathfinding要求に関する情報を取得します - -`rippled`サーバーは支払いを行うにあたり最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。サーバーの負荷が原因で、Pathfindingで最良のパスを検出できないことがあります。また、信頼できないサーバーからのPathfindingの結果には注意する必要があります。オペレーターの収益となるように、最良ではないパスを返すようにサーバーが改ざんされる可能性があります。Pathfindingについて信頼できる独自サーバーがない場合は、1つのサーバーから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバーからのPathfindingの結果を比較してください。(**注記:** サーバーから最良ではない結果が返されても、必ずしも悪意のある振る舞いの証拠とはなりません。サーバーの負荷が高い場合の症状である可能性もあります。) - -## path_find create -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L50-L56 "Source") - -`path_find`の`create`サブコマンドは、指定された特定アカウントから支払トランザクションを実行できるパスを探索する継続的な要求を作成し、別のアカウントが何らかの通貨で希望する額を受領できるようにします。初期応答には2つのアドレス間で提案されるパスが含まれています。このパスにより、希望する額を受領できます。その後サーバーは、`"type": "path_find"`で有効なパスの更新を含む追加メッセージを送信します。更新の頻度はサーバーにより決定されますが、新しいレジャーバージョンがある場合には通常、数秒間に1回です。 - -クライアントは一度に1つのPathfinding要求のみ実行できます。同じ接続ですでに他のPathfinding要求が実行されている場合、古い要求が自動的にクローズされ、新しい要求に置き換えられます。 - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":8, - "command":"path_find", - "subcommand":"create", - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "value":"0.001", - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } -} -``` - - - -[試してみる >](websocket-api-tool.html#path_find) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:----------------------|:-----------------|:----------------------------------| -| `subcommand` | 文字列 | `"create"`を使用してcreateサブコマンドを送信します。 | -| `source_account` | 文字列 | 探索するパスの送金元アカウントの一意のアドレス。(つまり、支払いを送金するアカウントです。) | -| `destination_account` | 文字列 | 探索するパスの送金先アカウントの一意のアドレス。(つまり、支払いを受領するアカウントです。) | -| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:**[新規: rippled 0.30.0][]`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスが要求されます。ただし`send_max`が指定されている場合は、指定額を上回る額が支払われることはありません。 | -| `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションに使用する[通貨額][]。`source_currencies`と同時に指定することはできません。[新規: rippled 0.30.0][] | -| `paths` | 配列 | _(省略可)_ チェックする[ペイメントパス](paths.html)を表すオブジェクトの配列。すでに判明している特定パスの変更内容を常に把握する場合や、特定パスに沿った支払いにかかる総コストを確認する場合にこのフィールドを使用できます。 | - -サーバーは`source_currencies`および`bridges`フィールドも認識しますが、これらのフィールドを使用した場合の結果は保証されません。これらのフィールドは将来のために予約されているものと考えてください。 - -### 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":1, - "status":"success", - "type":"response", - "result":{ - "alternatives":[ - { - "paths_computed":[ - [ - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":"251686" - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"BTC", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.000001541291269274307" - } - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"CHF", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.0009211546262510451" - } - }, - { - "paths_computed":[ - [ - { - "account":"razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"CNY", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.006293562" - } - }, - { - "paths_computed":[ - [ - { - "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"DYM", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.0007157142857142858" - } - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"EUR", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.0007409623616236163" - } - }, - { - "paths_computed":[ - [ - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - }, - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":{ - "currency":"JPY", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"0.103412412" - } - } - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0.001" - }, - "id":1, - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "full_reply": false - } -} -``` - - - -この初期応答は[標準フォーマット](response-formatting.html)に従っており、正常に完了した場合は次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:----------------------|:-----------------|:----------------------------------| -| `alternatives` | 配列 | 以下に説明する、提案される[パス](paths.html)のオブジェクトの配列。空の場合、送金元アカウントと送金先アカウントを結ぶパスが見つかりませんでした。 | -| `destination_account` | 文字列 | トランザクションを受信するアカウントの一意のアドレス。 | -| `destination_amount` | 文字列またはオブジェクト | 送金先がトランザクションで受領する[通貨額][]。 | -| `id` | (各種) | (WebSocketのみ)WebSocket要求に指定されているIDが再びこのレベルで含まれます。 | -| `source_account` | 文字列 | トランザクションを送信するアカウントの一意のアドレス。 | -| `full_reply` | ブール値 | `false`の場合、これは不完全な検索の結果です。これ以降の応答に、より適切なパスが含まれている可能性があります。`true`の場合、これは検出された最良のパスです。(理論上、これよりも優れたパスが存在している可能性がありますが`rippled`では検出されません。)Pathfinding要求をクローズするまで、`rippled`は引き続き、新しいレジャーが閉鎖されるたびに更新を送信します。[新規: rippled 0.29.0][] | - -`alternatives`配列の各要素は、1つの送金元通貨(開始アカウントが保有)から送金先アカウントへのパスと通貨を表すオブジェクトです。このオブジェクトのフィールドを次に示します。 - -| `Field` | 型 | 説明 | -|:-----------------|:-----------------|:---------------------------------------| -| `paths_computed` | 配列 | [ペイメントパス](paths.html)を定義するオブジェクトの配列。 | -| `source_amount` | 文字列またはオブジェクト | 送金先が必要な額を受領するために、送金元がこのパスで送金する必要がある[通貨額][]。 | - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が_ある_Pathfindingメソッドについては、[ripple_path_findメソッド][]を参照してください。) - -### 非同期フォローアップ - -サーバーからは初期応答の他に、時間の経過にともなう[ペイメントパス](paths.html)のステータスを更新するため類似したフォーマットでさらにメッセージが送信されます。これらのメッセージには、元のWebSocket要求の`id`が含まれているので、どの要求からメッセージが送信されたかを確認できます。また、最上位レベルの`"type": "path_find"`フィールドは、追加応答であることを示します。その他のフィールドは、初期応答と同じ方法で定義されます。 - -フォローアップに`"full_reply": true`が含まれている場合、これは現行レジャーの時点でrippledが検出できる最良のパスです。 - -path_find create要求からの非同期フォローアップの例を次に示します。 - - - -*WebSocket* - -``` -{ - "id":1, - "type":"path_find", - "alternatives":[ - /* paths omitted from this example; same format as the initial response */ - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0.001" - }, - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" -} -``` - - - -## path_find close -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L58-L67 "Source") - -`path_find`の`close`サブコマンドは、サーバーに対して現在実行中のPathfinding要求に関する情報の送信を停止するように指示します。 - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":57, - "command":"path_find", - "subcommand":"close" -} -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:-------------|:-------|:-------------------------------------------| -| `subcommand` | 文字列 | closeサブコマンドを送信するため`"close"`を使用します。 | - -### 応答フォーマット - -Pathfinding要求が正常にクローズされた場合、応答は[`path_find create`](#path_find-create)に対する初期応答と同じフォーマットであり、されに以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `closed` | ブール値 | 値が`true`の場合、これは`path_find close`コマンドに対する応答です。 | - -未処理のPathfinding要求がない場合はエラーが返されます。 - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - フィールドの指定が正しくないか、必須フィールドが指定されていません。 -* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)でこのメソッドを使用しようとしました。(JSON-RPCと互換性が_ある_Pathfindingメソッドについては、[ripple_path_findメソッド][]を参照してください。) -* `noPathRequest` - Pathfinding要求をクローズしようとしましたが、実行中の要求がありませんでした。 - -## path_find status -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L69-L77 "Source") - -`path_find`の`status`サブコマンドは、現在実行中のクライアントのPathfinding要求の即時更新を要求します。 - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":58, - "command":"path_find", - "subcommand":"status" -} -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:-------------|:-------|:---------------------------------------------| -| `subcommand` | 文字列 | `"status"`を使用して、statusサブコマンドを送信します。 | - -### 応答フォーマット - -Pathfinding要求が実行中の場合、応答は[`path_find create`](#path_find-create)に対する初期応答と同じフォーマットであるのに加えて、以下のフィールドがあります。 - -| `Field` | 型 | 説明 | -|:---------|:--------|:--------------------------------------------------------| -| `status` | ブール値 | 値が`true`の場合、これは`path_find status`コマンドに対する応答です。 | - -未処理のPathfinding要求がない場合はエラーが返されます。 - -### 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が_ある_Pathfindingメソッドについては、[ripple_path_findメソッド][]を参照してください。) -* `noPathRequest` - Pathfinding要求のステータスを確認しようとしましたが、処理中の要求がありませんでした。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# path_find +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp "Source") + +*WebSocket APIのみ。*`path_find`メソッドは、トランザクションが実行される可能性のある[パス](paths.html)を探索し、時間の経過とともにパスが変化する場合に更新を定期的に送信します。JSON-RPCでサポートされているシンプルなバージョンについては、[ripple_path_findメソッド][]を参照してください。完全にXRPで行われる支払いの場合、XRPはどのアカウントにも直接送金できるためパスを探索する必要はありません。 + +path_findコマンドには3種類のモード(サブコマンド)があります。使用するモードを`subcommand`パラメーターに指定します。 + +* `create` - Pathfinding情報の送信を開始します +* `close` - Pathfinding情報の送信を停止します +* `status` - 現在処理中のPathfinding要求に関する情報を取得します + +`rippled`サーバーは支払いを行うにあたり最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。サーバーの負荷が原因で、Pathfindingで最良のパスを検出できないことがあります。また、信頼できないサーバーからのPathfindingの結果には注意する必要があります。オペレーターの収益となるように、最良ではないパスを返すようにサーバーが改ざんされる可能性があります。Pathfindingについて信頼できる独自サーバーがない場合は、1つのサーバーから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバーからのPathfindingの結果を比較してください。(**注記:** サーバーから最良ではない結果が返されても、必ずしも悪意のある振る舞いの証拠とはなりません。サーバーの負荷が高い場合の症状である可能性もあります。) + +## path_find create +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L50-L56 "Source") + +`path_find`の`create`サブコマンドは、指定された特定アカウントから支払トランザクションを実行できるパスを探索する継続的な要求を作成し、別のアカウントが何らかの通貨で希望する額を受領できるようにします。初期応答には2つのアドレス間で提案されるパスが含まれています。このパスにより、希望する額を受領できます。その後サーバーは、`"type": "path_find"`で有効なパスの更新を含む追加メッセージを送信します。更新の頻度はサーバーにより決定されますが、新しいレジャーバージョンがある場合には通常、数秒間に1回です。 + +クライアントは一度に1つのPathfinding要求のみ実行できます。同じ接続ですでに他のPathfinding要求が実行されている場合、古い要求が自動的にクローズされ、新しい要求に置き換えられます。 + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":8, + "command":"path_find", + "subcommand":"create", + "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount":{ + "value":"0.001", + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } +} +``` + + + +[試してみる >](websocket-api-tool.html#path_find) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:----------------------|:-----------------|:----------------------------------| +| `subcommand` | 文字列 | `"create"`を使用してcreateサブコマンドを送信します。 | +| `source_account` | 文字列 | 探索するパスの送金元アカウントの一意のアドレス。(つまり、支払いを送金するアカウントです。) | +| `destination_account` | 文字列 | 探索するパスの送金先アカウントの一意のアドレス。(つまり、支払いを受領するアカウントです。) | +| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:**[新規: rippled 0.30.0][]`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスが要求されます。ただし`send_max`が指定されている場合は、指定額を上回る額が支払われることはありません。 | +| `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションに使用する[通貨額][]。`source_currencies`と同時に指定することはできません。[新規: rippled 0.30.0][] | +| `paths` | 配列 | _(省略可)_ チェックする[ペイメントパス](paths.html)を表すオブジェクトの配列。すでに判明している特定パスの変更内容を常に把握する場合や、特定パスに沿った支払いにかかる総コストを確認する場合にこのフィールドを使用できます。 | + +サーバーは`source_currencies`および`bridges`フィールドも認識しますが、これらのフィールドを使用した場合の結果は保証されません。これらのフィールドは将来のために予約されているものと考えてください。 + +### 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":1, + "status":"success", + "type":"response", + "result":{ + "alternatives":[ + { + "paths_computed":[ + [ + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"r9vbV3EHvXWjSkeQ6CAcYVPGeq7TuiXY2X", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":"251686" + }, + { + "paths_computed":[ + [ + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":{ + "currency":"BTC", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"0.000001541291269274307" + } + }, + { + "paths_computed":[ + [ + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":{ + "currency":"CHF", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"0.0009211546262510451" + } + }, + { + "paths_computed":[ + [ + { + "account":"razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "account":"razqQKzJRdB4UxFPWf5NEpEG3WMkmwgcXA", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":{ + "currency":"CNY", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"0.006293562" + } + }, + { + "paths_computed":[ + [ + { + "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "account":"rGwUWgN5BEg3QGNY3RX2HfYowjUTZdid3E", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":{ + "currency":"DYM", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"0.0007157142857142858" + } + }, + { + "paths_computed":[ + [ + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":{ + "currency":"EUR", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"0.0007409623616236163" + } + }, + { + "paths_computed":[ + [ + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + }, + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":{ + "currency":"JPY", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"0.103412412" + } + } + ], + "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount":{ + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value":"0.001" + }, + "id":1, + "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "full_reply": false + } +} +``` + + + +この初期応答は[標準フォーマット](response-formatting.html)に従っており、正常に完了した場合は次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:----------------------|:-----------------|:----------------------------------| +| `alternatives` | 配列 | 以下に説明する、提案される[パス](paths.html)のオブジェクトの配列。空の場合、送金元アカウントと送金先アカウントを結ぶパスが見つかりませんでした。 | +| `destination_account` | 文字列 | トランザクションを受信するアカウントの一意のアドレス。 | +| `destination_amount` | 文字列またはオブジェクト | 送金先がトランザクションで受領する[通貨額][]。 | +| `id` | (各種) | (WebSocketのみ)WebSocket要求に指定されているIDが再びこのレベルで含まれます。 | +| `source_account` | 文字列 | トランザクションを送信するアカウントの一意のアドレス。 | +| `full_reply` | ブール値 | `false`の場合、これは不完全な検索の結果です。これ以降の応答に、より適切なパスが含まれている可能性があります。`true`の場合、これは検出された最良のパスです。(理論上、これよりも優れたパスが存在している可能性がありますが`rippled`では検出されません。)Pathfinding要求をクローズするまで、`rippled`は引き続き、新しいレジャーが閉鎖されるたびに更新を送信します。[新規: rippled 0.29.0][] | + +`alternatives`配列の各要素は、1つの送金元通貨(開始アカウントが保有)から送金先アカウントへのパスと通貨を表すオブジェクトです。このオブジェクトのフィールドを次に示します。 + +| `Field` | 型 | 説明 | +|:-----------------|:-----------------|:---------------------------------------| +| `paths_computed` | 配列 | [ペイメントパス](paths.html)を定義するオブジェクトの配列。 | +| `source_amount` | 文字列またはオブジェクト | 送金先が必要な額を受領するために、送金元がこのパスで送金する必要がある[通貨額][]。 | + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が_ある_Pathfindingメソッドについては、[ripple_path_findメソッド][]を参照してください。) + +### 非同期フォローアップ + +サーバーからは初期応答の他に、時間の経過にともなう[ペイメントパス](paths.html)のステータスを更新するため類似したフォーマットでさらにメッセージが送信されます。これらのメッセージには、元のWebSocket要求の`id`が含まれているので、どの要求からメッセージが送信されたかを確認できます。また、最上位レベルの`"type": "path_find"`フィールドは、追加応答であることを示します。その他のフィールドは、初期応答と同じ方法で定義されます。 + +フォローアップに`"full_reply": true`が含まれている場合、これは現行レジャーの時点でrippledが検出できる最良のパスです。 + +path_find create要求からの非同期フォローアップの例を次に示します。 + + + +*WebSocket* + +``` +{ + "id":1, + "type":"path_find", + "alternatives":[ + /* paths omitted from this example; same format as the initial response */ + ], + "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount":{ + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value":"0.001" + }, + "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59" +} +``` + + + +## path_find close +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L58-L67 "Source") + +`path_find`の`close`サブコマンドは、サーバーに対して現在実行中のPathfinding要求に関する情報の送信を停止するように指示します。 + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":57, + "command":"path_find", + "subcommand":"close" +} +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:-------------|:-------|:-------------------------------------------| +| `subcommand` | 文字列 | closeサブコマンドを送信するため`"close"`を使用します。 | + +### 応答フォーマット + +Pathfinding要求が正常にクローズされた場合、応答は[`path_find create`](#path_find-create)に対する初期応答と同じフォーマットであり、されに以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `closed` | ブール値 | 値が`true`の場合、これは`path_find close`コマンドに対する応答です。 | + +未処理のPathfinding要求がない場合はエラーが返されます。 + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - フィールドの指定が正しくないか、必須フィールドが指定されていません。 +* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)でこのメソッドを使用しようとしました。(JSON-RPCと互換性が_ある_Pathfindingメソッドについては、[ripple_path_findメソッド][]を参照してください。) +* `noPathRequest` - Pathfinding要求をクローズしようとしましたが、実行中の要求がありませんでした。 + +## path_find status +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/PathFind.cpp#L69-L77 "Source") + +`path_find`の`status`サブコマンドは、現在実行中のクライアントのPathfinding要求の即時更新を要求します。 + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":58, + "command":"path_find", + "subcommand":"status" +} +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:-------------|:-------|:---------------------------------------------| +| `subcommand` | 文字列 | `"status"`を使用して、statusサブコマンドを送信します。 | + +### 応答フォーマット + +Pathfinding要求が実行中の場合、応答は[`path_find create`](#path_find-create)に対する初期応答と同じフォーマットであるのに加えて、以下のフィールドがあります。 + +| `Field` | 型 | 説明 | +|:---------|:--------|:--------------------------------------------------------| +| `status` | ブール値 | 値が`true`の場合、これは`path_find status`コマンドに対する応答です。 | + +未処理のPathfinding要求がない場合はエラーが返されます。 + +### 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `noEvents` - 非同期コールバックをサポートしていないプロトコル(JSON-RPCなど)を使用しています。(JSON-RPCと互換性が_ある_Pathfindingメソッドについては、[ripple_path_findメソッド][]を参照してください。) +* `noPathRequest` - Pathfinding要求のステータスを確認しようとしましたが、処理中の要求がありませんでした。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/ripple_path_find.ja.md b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/ripple_path_find.ja.md index 8689838727..f0e61e6871 100644 --- a/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/ripple_path_find.ja.md +++ b/content/references/rippled-api/public-rippled-methods/path-and-order-book-methods/ripple_path_find.ja.md @@ -1,345 +1,345 @@ -# ripple_path_find -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/RipplePathFind.cpp "Source") - -`ripple_path_find`メソッドは、[path_findメソッド][]のシンプルなバージョンであり、すぐに利用できる[ペイメントパス](paths.html)を含む1つの応答を返します。WebSocket APIとJSON-RPC APIの両方で使用できます。ただし、結果は時間の経過とともに古くなる傾向にあります。最新の状態を維持するために複数のコールを実行する代わりに、可能な場合には[path_findメソッド][]を使用して、継続的な更新をサブスクライブします。 - -`rippled`サーバーは支払いを行うため最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。 - -**注意:** 信頼できないサーバーからのPathfindingの結果には注意してください。オペレーターの収益となるように、最良ではないパスを返すようにサーバーが改ざんされる可能性があります。サーバーの負荷が非常に高い場合にも不適切な結果が返される可能性があります。Pathfindingについて信頼できる独自サーバーがない場合は、1つのサーバーから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバーからのPathfindingの結果を比較してください。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":8, - "command":"ripple_path_find", - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "source_currencies":[ - { - "currency":"XRP" - }, - { - "currency":"USD" - } - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "value":"0.001", - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" - } -} -``` - -*JSON-RPC* - -``` -{ - "method":"ripple_path_find", - "params":[ - { - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_amount":{ - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value":"0.001" - }, - "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "source_currencies":[ - { - "currency":"XRP" - }, - { - "currency":"USD" - } - ] - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax ripple_path_find json ledger_index|ledger_hash -rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "source_currencies":[ { "currency":"XRP" }, { "currency":"USD" } ], "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "destination_amount":{ "value":"0.001", "currency":"USD", "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" } }' -``` - - - -[試してみる >](websocket-api-tool.html#ripple_path_find) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:----------------------|:---------------------------|:------------------------| -| `source_account` | 文字列 | トランザクションで資金を送金するアカウントの一意のアドレス。 | -| `destination_account` | 文字列 | トランザクションで資金を受領するアカウントの一意のアドレス。 | -| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:** [新規: rippled 0.30.0][]`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスが要求されます。ただし`send_max`が指定されている場合は、指定されている額を上回る額が支払われることはありません。 | -| `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションで使用する[通貨額][]。`source_currencies`と同時に使用することはできません。[新規: rippled 0.30.0][] | -| `source_currencies` | 配列 | _(省略可)_ 送信元アカウントが使用する通貨の配列。この配列の各エントリーは、必須の`currency`フィールドとオプションの`issuer`フィールドを有するJSONオブジェクトです([通貨額][Currency Amount]の指定方法と同様)。指定できる送金元通貨は**18**種類以下です。デフォルトでは、あらゆる送金元通貨を使用し、最大で**88**の異なる通貨/イシュアーペアに使用できます。 | -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":8, - "status":"success", - "type":"response", - "result":{ - "alternatives":[ - { - "paths_canonical":[], - "paths_computed":[ - [ - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rLpq4LgabRfm1xEX5dpWfJovYBH6g7z99q", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rPuBoajMjFoDjweJBrtZEBwUMkyruxpwwV", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":"256987" - } - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_currencies":[ - "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "JOE", - "DYM", - "EUR", - "CNY", - "MXN", - "BTC", - "USD", - "XRP" - ] - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "alternatives":[ - { - "paths_canonical":[], - "paths_computed":[ - [ - { - "currency":"USD", - "issuer":"rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rfDeu7TPUmyvUrffexjMjq3mMcSQHZSYyA", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"raspZSGNiTKi5jmvFxUYCuYXPv1V8WhL5g", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ], - [ - { - "currency":"USD", - "issuer":"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT", - "type":48, - "type_hex":"0000000000000030" - }, - { - "account":"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT", - "type":1, - "type_hex":"0000000000000001" - }, - { - "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type":1, - "type_hex":"0000000000000001" - } - ] - ], - "source_amount":"207414" - } - ], - "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "destination_currencies":[ - "USD", - "JOE", - "BTC", - "DYM", - "CNY", - "EUR", - "015841551A748AD2C1F76FF6ECB0CCCD00000000", - "MXN", - "XRP" - ], - "status":"success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:-------------------------|:-------|:-----------------------------------------| -| `alternatives` | 配列 | 使用可能なパスを持つオブジェクトの配列。以下に説明します。空の場合、送金元アカウントと送金先アカウントを結ぶパスがありません。 | -| `destination_account` | 文字列 | 支払トランザクションを受信するアカウントの一意のアドレス。 | -| `destination_currencies` | 配列 | 送金先が受領する通貨を表す文字列の配列。この文字列は、3文字コード(`"USD"`など)または40文字の16進文字列(`"015841551A748AD2C1F76FF6ECB0CCCD00000000"`など)です。 | - -`alternatives`配列の各要素は、1つの送金元通貨(開始アカウントが保有)から送金先アカウントへのパスと通貨を表すオブジェクトです。このオブジェクトのフィールドを次に示します。 - -| `Field` | 型 | 説明 | -|:-----------------|:-----------------|:---------------------------------------| -| `paths_computed` | 配列 | (省略可)[ペイメントパス](paths.html)を定義するオブジェクトの配列。 | -| `source_amount` | 文字列またはオブジェクト | 送金先が希望額を受領できるよう、送金元がこのパスで送金する必要のある[通貨額][]。 | - -次のフィールドは廃止予定のため、省略される可能性があります。`paths_canonical`および`paths_expanded`。出力される場合は無視してください。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `tooBusy` - サーバーの負荷が高すぎるため、パスを計算できません。管理者として接続している場合は、このエラーが返されることはありません。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `srcActMissing` - `source_account`フィールドが要求で省略されています。 -* `srcActMalformed` - 要求の`source_account`フィールドのフォーマットが適切ではありません。 -* `dstActMissing` - `destination_account`フィールドが要求で省略されています。 -* `dstActMalformed` - 要求の`destination_account`フィールドのフォーマットが適切ではありません。 -* `srcCurMalformed` - `source_currencies`フィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - 要求の1つ以上の通貨オブジェクトの`issuer`フィールドが有効ではありません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# ripple_path_find +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/RipplePathFind.cpp "Source") + +`ripple_path_find`メソッドは、[path_findメソッド][]のシンプルなバージョンであり、すぐに利用できる[ペイメントパス](paths.html)を含む1つの応答を返します。WebSocket APIとJSON-RPC APIの両方で使用できます。ただし、結果は時間の経過とともに古くなる傾向にあります。最新の状態を維持するために複数のコールを実行する代わりに、可能な場合には[path_findメソッド][]を使用して、継続的な更新をサブスクライブします。 + +`rippled`サーバーは支払いを行うため最も安価なパスまたはパスの組み合わせを探索しますが、このメソッドで返されるパスが最良のパスであることは保証されません。 + +**注意:** 信頼できないサーバーからのPathfindingの結果には注意してください。オペレーターの収益となるように、最良ではないパスを返すようにサーバーが改ざんされる可能性があります。サーバーの負荷が非常に高い場合にも不適切な結果が返される可能性があります。Pathfindingについて信頼できる独自サーバーがない場合は、1つのサーバーから不適切な結果が返されるリスクを最小限に抑えるため、異なる当事者が実行する複数のサーバーからのPathfindingの結果を比較してください。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":8, + "command":"ripple_path_find", + "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "source_currencies":[ + { + "currency":"XRP" + }, + { + "currency":"USD" + } + ], + "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount":{ + "value":"0.001", + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" + } +} +``` + +*JSON-RPC* + +``` +{ + "method":"ripple_path_find", + "params":[ + { + "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_amount":{ + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value":"0.001" + }, + "source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "source_currencies":[ + { + "currency":"XRP" + }, + { + "currency":"USD" + } + ] + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax ripple_path_find json ledger_index|ledger_hash +rippled ripple_path_find '{"source_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "source_currencies":[ { "currency":"XRP" }, { "currency":"USD" } ], "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", "destination_amount":{ "value":"0.001", "currency":"USD", "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B" } }' +``` + + + +[試してみる >](websocket-api-tool.html#ripple_path_find) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:----------------------|:---------------------------|:------------------------| +| `source_account` | 文字列 | トランザクションで資金を送金するアカウントの一意のアドレス。 | +| `destination_account` | 文字列 | トランザクションで資金を受領するアカウントの一意のアドレス。 | +| `destination_amount` | 文字列またはオブジェクト | 送金先アカウントがトランザクションで受領する[通貨額][]。**特殊なケース:** [新規: rippled 0.30.0][]`value`フィールドには`"-1"`(XRPの場合)または-1(XRP以外の通貨の場合)を指定できます。これにより、最大限の額を送金できるパスが要求されます。ただし`send_max`が指定されている場合は、指定されている額を上回る額が支払われることはありません。 | +| `send_max` | 文字列またはオブジェクト | _(省略可)_ トランザクションで使用する[通貨額][]。`source_currencies`と同時に使用することはできません。[新規: rippled 0.30.0][] | +| `source_currencies` | 配列 | _(省略可)_ 送信元アカウントが使用する通貨の配列。この配列の各エントリーは、必須の`currency`フィールドとオプションの`issuer`フィールドを有するJSONオブジェクトです([通貨額][Currency Amount]の指定方法と同様)。指定できる送金元通貨は**18**種類以下です。デフォルトでは、あらゆる送金元通貨を使用し、最大で**88**の異なる通貨/イシュアーペアに使用できます。 | +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":8, + "status":"success", + "type":"response", + "result":{ + "alternatives":[ + { + "paths_canonical":[], + "paths_computed":[ + [ + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rLpq4LgabRfm1xEX5dpWfJovYBH6g7z99q", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rPuBoajMjFoDjweJBrtZEBwUMkyruxpwwV", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":"256987" + } + ], + "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_currencies":[ + "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "JOE", + "DYM", + "EUR", + "CNY", + "MXN", + "BTC", + "USD", + "XRP" + ] + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "alternatives":[ + { + "paths_canonical":[], + "paths_computed":[ + [ + { + "currency":"USD", + "issuer":"rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rpDMez6pm6dBve2TJsmDpv7Yae6V5Pyvy2", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rfDeu7TPUmyvUrffexjMjq3mMcSQHZSYyA", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"raspZSGNiTKi5jmvFxUYCuYXPv1V8WhL5g", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ], + [ + { + "currency":"USD", + "issuer":"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT", + "type":48, + "type_hex":"0000000000000030" + }, + { + "account":"rpHgehzdpfWRXKvSv6duKvVuo1aZVimdaT", + "type":1, + "type_hex":"0000000000000001" + }, + { + "account":"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type":1, + "type_hex":"0000000000000001" + } + ] + ], + "source_amount":"207414" + } + ], + "destination_account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "destination_currencies":[ + "USD", + "JOE", + "BTC", + "DYM", + "CNY", + "EUR", + "015841551A748AD2C1F76FF6ECB0CCCD00000000", + "MXN", + "XRP" + ], + "status":"success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:-------------------------|:-------|:-----------------------------------------| +| `alternatives` | 配列 | 使用可能なパスを持つオブジェクトの配列。以下に説明します。空の場合、送金元アカウントと送金先アカウントを結ぶパスがありません。 | +| `destination_account` | 文字列 | 支払トランザクションを受信するアカウントの一意のアドレス。 | +| `destination_currencies` | 配列 | 送金先が受領する通貨を表す文字列の配列。この文字列は、3文字コード(`"USD"`など)または40文字の16進文字列(`"015841551A748AD2C1F76FF6ECB0CCCD00000000"`など)です。 | + +`alternatives`配列の各要素は、1つの送金元通貨(開始アカウントが保有)から送金先アカウントへのパスと通貨を表すオブジェクトです。このオブジェクトのフィールドを次に示します。 + +| `Field` | 型 | 説明 | +|:-----------------|:-----------------|:---------------------------------------| +| `paths_computed` | 配列 | (省略可)[ペイメントパス](paths.html)を定義するオブジェクトの配列。 | +| `source_amount` | 文字列またはオブジェクト | 送金先が希望額を受領できるよう、送金元がこのパスで送金する必要のある[通貨額][]。 | + +次のフィールドは廃止予定のため、省略される可能性があります。`paths_canonical`および`paths_expanded`。出力される場合は無視してください。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `tooBusy` - サーバーの負荷が高すぎるため、パスを計算できません。管理者として接続している場合は、このエラーが返されることはありません。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `srcActMissing` - `source_account`フィールドが要求で省略されています。 +* `srcActMalformed` - 要求の`source_account`フィールドのフォーマットが適切ではありません。 +* `dstActMissing` - `destination_account`フィールドが要求で省略されています。 +* `dstActMalformed` - 要求の`destination_account`フィールドのフォーマットが適切ではありません。 +* `srcCurMalformed` - `source_currencies`フィールドのフォーマットが適切ではありません。 +* `srcIsrMalformed` - 要求の1つ以上の通貨オブジェクトの`issuer`フィールドが有効ではありません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_authorize.ja.md b/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_authorize.ja.md index 7c0aeaf110..e6e186b830 100644 --- a/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_authorize.ja.md +++ b/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_authorize.ja.md @@ -1,120 +1,120 @@ -# channel_authorize -[[ソース]
](https://github.com/ripple/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L41 "Source") - -_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ - -`channel_authorize`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名を作成します。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":"channel_authorize_example_id1", - "command":"channel_authorize", - "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "secret":"s████████████████████████████", - "amount":"1000000" -} -``` - -*JSON-RPC* - -```json -POST http://localhost:5005/ -Content-Type: application/json - -{ - "method":"channel_authorize", - "params":[{ - "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "secret":"s████████████████████████████", - "amount":"1000000" - }] -} -``` - -*コマンドライン* - -``` -#Syntax: channel_authorize -rippled channel_authorize s████████████████████████████ 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 -``` - - - -要求には以下のパラメーターが含まれます。 - -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `channel_id` | 文字列 | Payment Channelが使用する一意のID。 -| `secret` | 文字列 | クレームへの署名に使用するシークレットキー。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。 | -| `amount` | 文字列 | 承認するXRPの累積額(drop数)送金先がこのChannelからすでに受領しているXRPの額がこのフィールドの額よりも少ない場合、このメソッドで作成される署名を使用して差額を清算できます。 | - -**注記:** このメソッドでクレームに署名するときにはEd25519キーは使用できません。これは既知のバグです(RIPD-1474)。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":"channel_authorize_example_id1", - "status":"success" - "result":{ - "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - } -} -``` - -*JSON-RPC* - -```json -200 OK - -{ - "result":{ - "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "status":"success" - } -} -``` - -*コマンドライン* - -``` -{ - "result":{ - "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "status":"success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `signature` | 文字列 | このクレームの署名(16進値)。このクレームを処理するには、Payment Channelの送金先アカウントがこの署名、正確なChannel ID、XRPの額、およびChannelの公開鍵が指定された[PaymentChannelClaimトランザクション][]を送信する必要があります。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `badSeed` - 要求の`secret`が有効なシークレットキーではありません。 -* `channelAmtMalformed` - 要求の`amount`が有効な[XRPの額][XRP、drop単位]ではありません。 -* `channelMalformed` - 要求の`channel_id`が有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列です。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# channel_authorize +[[ソース]
](https://github.com/ripple/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L41 "Source") + +_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ + +`channel_authorize`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名を作成します。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":"channel_authorize_example_id1", + "command":"channel_authorize", + "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "secret":"s████████████████████████████", + "amount":"1000000" +} +``` + +*JSON-RPC* + +```json +POST http://localhost:5005/ +Content-Type: application/json + +{ + "method":"channel_authorize", + "params":[{ + "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "secret":"s████████████████████████████", + "amount":"1000000" + }] +} +``` + +*コマンドライン* + +``` +#Syntax: channel_authorize +rippled channel_authorize s████████████████████████████ 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 +``` + + + +要求には以下のパラメーターが含まれます。 + +| フィールド | 型 | 説明 | +|-------|------|-------------| +| `channel_id` | 文字列 | Payment Channelが使用する一意のID。 +| `secret` | 文字列 | クレームへの署名に使用するシークレットキー。これは、Channelに指定されている公開鍵と同じキーペアである必要があります。 | +| `amount` | 文字列 | 承認するXRPの累積額(drop数)送金先がこのChannelからすでに受領しているXRPの額がこのフィールドの額よりも少ない場合、このメソッドで作成される署名を使用して差額を清算できます。 | + +**注記:** このメソッドでクレームに署名するときにはEd25519キーは使用できません。これは既知のバグです(RIPD-1474)。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":"channel_authorize_example_id1", + "status":"success" + "result":{ + "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + } +} +``` + +*JSON-RPC* + +```json +200 OK + +{ + "result":{ + "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "status":"success" + } +} +``` + +*コマンドライン* + +``` +{ + "result":{ + "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "status":"success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| フィールド | 型 | 説明 | +|-------|------|-------------| +| `signature` | 文字列 | このクレームの署名(16進値)。このクレームを処理するには、Payment Channelの送金先アカウントがこの署名、正確なChannel ID、XRPの額、およびChannelの公開鍵が指定された[PaymentChannelClaimトランザクション][]を送信する必要があります。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `badSeed` - 要求の`secret`が有効なシークレットキーではありません。 +* `channelAmtMalformed` - 要求の`amount`が有効な[XRPの額][XRP、drop単位]ではありません。 +* `channelMalformed` - 要求の`channel_id`が有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列です。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_verify.ja.md b/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_verify.ja.md index 2127268d8f..3a9d30ac81 100644 --- a/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_verify.ja.md +++ b/content/references/rippled-api/public-rippled-methods/payment-channel-methods/channel_verify.ja.md @@ -1,124 +1,124 @@ -# channel_verify -[[ソース]
](https://github.com/ripple/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L89 "Source") - -_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ - -`channel_verify`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名の有効性を検証します。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":1, - "command":"channel_verify", - "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "public_key":"aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "amount":"1000000" -} -``` - -*JSON-RPC* - -``` -POST http://localhost:5005/ -Content-Type: application/json - -{ - "method":"channel_verify", - "params":[{ - "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", - "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", - "public_key":"aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", - "amount":"1000000" - }] -} -``` - -*コマンドライン* - -``` -#Syntax: channel_verify -rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064 -``` - - - -要求には以下のパラメーターが含まれます。 - -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `amount` | 文字列 | 指定された`signature`で承認する[XRP、drop単位][]の額。 | -| `channel_id` | 文字列 | XRPを供給するChannelのChannel ID。これは64文字の16進文字列です。 | -| `public_key` | 文字列 | Channelの公開鍵と、署名の作成に使用されたキーペア(16進数またはXRP Ledgerの[base58][]形式)。[更新: rippled 0.90.0][新規: rippled 0.90.0] | -| `signature` | 文字列 | 検証する署名(16進数)。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":1, - "status":"success", - "type":"response", - "result":{ - "signature_verified":true - } -} -``` - -*JSON-RPC* - -``` -200 OK - -{ - "result":{ - "signature_verified":true, - "status":"success" - } -} -``` - -*コマンドライン* - -``` -{ - "result":{ - "signature_verified":true, - "status":"success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| フィールド | 型 | 説明 | -|-------|------|-------------| -| `signature_verified` | ブール値 | `true`の場合、示されている額、Channel、公開鍵で署名が有効です。 | - -**注意:** これは、Channelに十分なXRPが割り当てられていることを確認するものではありません。クレームが有効であると判断する前に、最新の検証済みレジャーでこのChannelを調べ、このChannelがオープンでありその`amount`の値がクレームの`amount`以上であることを確認してください。このためには[account_channelsメソッド][]を使用します。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `publicMalformed` - 要求の`public_key`フィールドが、正しいフォーマットの有効な公開鍵ではありません。公開鍵は33バイトであり、base58または16進数で表記されている必要があります。[アカウントの公開鍵のbase58表現は文字`a`から始まります](base58-encodings.html)。16進表現は66文字です。 -* `channelMalformed` - 要求の`channel_id`フィールドが有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列である必要があります。 -* `channelAmtMalformed` - 要求の`amount`に指定された値が、有効な[XRPの額][XRP、drop単位]ではありませんでした。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# channel_verify +[[ソース]
](https://github.com/ripple/rippled/blob/d4a56f223a3b80f64ff70b4e90ab6792806929ca/src/ripple/rpc/handlers/PayChanClaim.cpp#L89 "Source") + +_([PayChan Amendment][]が有効になっている必要があります。[新規: rippled 0.33.0][])_ + +`channel_verify`メソッドは、特定額のXRPをPayment Channelから清算するときに使用できる署名の有効性を検証します。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":1, + "command":"channel_verify", + "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "public_key":"aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "amount":"1000000" +} +``` + +*JSON-RPC* + +``` +POST http://localhost:5005/ +Content-Type: application/json + +{ + "method":"channel_verify", + "params":[{ + "channel_id":"5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3", + "signature":"304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064", + "public_key":"aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3", + "amount":"1000000" + }] +} +``` + +*コマンドライン* + +``` +#Syntax: channel_verify +rippled channel_verify aB44YfzW24VDEJQ2UuLPV2PvqcPCSoLnL7y5M1EzhdW4LnK5xMS3 5DB01B7FFED6B67E6B0414DED11E051D2EE2B7619CE0EAA6286D67A3A4D5BDB3 1000000 304402204EF0AFB78AC23ED1C472E74F4299C0C21F1B21D07EFC0A3838A420F76D783A400220154FB11B6F54320666E4C36CA7F686C16A3A0456800BBC43746F34AF50290064 +``` + + + +要求には以下のパラメーターが含まれます。 + +| フィールド | 型 | 説明 | +|-------|------|-------------| +| `amount` | 文字列 | 指定された`signature`で承認する[XRP、drop単位][]の額。 | +| `channel_id` | 文字列 | XRPを供給するChannelのChannel ID。これは64文字の16進文字列です。 | +| `public_key` | 文字列 | Channelの公開鍵と、署名の作成に使用されたキーペア(16進数またはXRP Ledgerの[base58][]形式)。[更新: rippled 0.90.0][新規: rippled 0.90.0] | +| `signature` | 文字列 | 検証する署名(16進数)。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":1, + "status":"success", + "type":"response", + "result":{ + "signature_verified":true + } +} +``` + +*JSON-RPC* + +``` +200 OK + +{ + "result":{ + "signature_verified":true, + "status":"success" + } +} +``` + +*コマンドライン* + +``` +{ + "result":{ + "signature_verified":true, + "status":"success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| フィールド | 型 | 説明 | +|-------|------|-------------| +| `signature_verified` | ブール値 | `true`の場合、示されている額、Channel、公開鍵で署名が有効です。 | + +**注意:** これは、Channelに十分なXRPが割り当てられていることを確認するものではありません。クレームが有効であると判断する前に、最新の検証済みレジャーでこのChannelを調べ、このChannelがオープンでありその`amount`の値がクレームの`amount`以上であることを確認してください。このためには[account_channelsメソッド][]を使用します。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `publicMalformed` - 要求の`public_key`フィールドが、正しいフォーマットの有効な公開鍵ではありません。公開鍵は33バイトであり、base58または16進数で表記されている必要があります。[アカウントの公開鍵のbase58表現は文字`a`から始まります](base58-encodings.html)。16進表現は66文字です。 +* `channelMalformed` - 要求の`channel_id`フィールドが有効なChannel IDではありません。Channel IDは256ビット(64文字)の16進文字列である必要があります。 +* `channelAmtMalformed` - 要求の`amount`に指定された値が、有効な[XRPの額][XRP、drop単位]ではありませんでした。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/public-rippled-methods.ja.md b/content/references/rippled-api/public-rippled-methods/public-rippled-methods.ja.md index b874b836b2..079528ba54 100644 --- a/content/references/rippled-api/public-rippled-methods/public-rippled-methods.ja.md +++ b/content/references/rippled-api/public-rippled-methods/public-rippled-methods.ja.md @@ -1,91 +1,91 @@ -# rippledのパブリックメソッド - -以下のパブリックAPIメソッドを使用して、`rippled`サーバーと直接通信します。パブリックメソッドは必ずしも一般大衆向けに設計されたのではありませんが、サーバーに接続されたあらゆるクライアントが使用します。パブリックメソッドは、サーバーを運用している組織のメンバーまたは顧客向けのものと考えてください。 - - -## [アカウントメソッド](account-methods.html) - -XRP Ledgerのアカウントとは、XRPの保有者と取引の送信者を意味ます。以下のメソッドを使用して、アカウント情報を処理します。 - -* **[`account_channels`](account_channels.html)** - アカウントがチャンネルのソースであるペイメントチャネルのリストを取得します。 -* **[`account_currencies`](account_currencies.html)** - アカウントが送受信できる通貨のリストを取得します。 -* **[`account_info`](account_info.html)** - アカウントについての基本データを取得します。 -* **[`account_lines`](account_lines.html)** - アカウントのトラストラインについての情報を取得します。 -* **[`account_objects`](account_objects.html)** - アカウントが保有しているすべてのレジャーオブジェクトを取得します。 -* **[`account_offers`](account_offers.html)** - アカウントの通貨取引オファーについての情報を取得します。 -* **[`account_tx`](account_tx.html)** - アカウントのトランザクションについての情報を取得します。 -* **[`gateway_balances`](gateway_balances.html)** - アカウントによって発行された総額を計算します。 -* **[`noripple_check`](noripple_check.html)** - アカウントのDefaultRippleおよびNoRipple設定への推奨される変更を取得します。 - - -## [レジャーメソッド](ledger-methods.html) - -レジャーバージョンには、ヘッダー、トランザクションツリー、状態ツリーが含まれ、さらにその中にアカウント設定、トラストライン、残高、トランザクション、その他のデータが含まれます。以下のメソッドを使用して、レジャー情報を取得します。 - -* **[`ledger`](ledger.html)** - レジャーバージョンについての情報を取得します。 -* **[`ledger_closed`](ledger_closed.html)** - 最新の閉鎖済みレジャーバージョンを取得します。 -* **[`ledger_current`](ledger_current.html)** - 現在処理中のレジャーバージョンを取得します。 -* **[`ledger_data`](ledger_data.html)** - レジャーバージョンの生データコンテンツを取得します。 -* **[`ledger_entry`](ledger_entry.html)** - レジャーバージョンから1つのエレメントを取得します。 - - -## [トランザクションメソッド](transaction-methods.html) - -トランザクションだけが、XRP Ledgerの共有されている状態を変更できます。XRP Ledgerに対するすべてのビジネスはトランザクションの形態をとります。以下のメソッドを使用して、トランザクションを処理します。 - -* **[`sign`](sign.html)** - トランザクションに暗号で署名します。 -* **[`sign_for`](sign_for.html)** - マルチ署名に署名を提供します。 -* **[`submit`](submit.html)** - トランザクションをネットワークに送信します。 -* **[`submit_multisigned`](submit_multisigned.html)** - マルチ署名済みトランザクションをネットワークに送信します。 -* **[`transaction_entry`](transaction_entry.html)** - レジャーの特定のバージョンからトランザクションについての情報を取得します。 -* **[`tx`](tx.html)** - 手元にあるすべてのレジャーからトランザクションについての情報を取得します。 -* **[`tx_history`](tx_history.html)** - 最新の全トランザクションについての情報を取得します。 - - -## [パスおよびオーダーブックのメソッド](path-and-order-book-methods.html) - -パスは、支払いが送信者から受信者に届くまでに中間ステップでたどる道筋を定義します。パスは、送信者と受信者をオーダーブックを介してつなぐことで、複数通貨間の支払いを可能にします。パスと他のオーダーブックに関しては、以下のメソッドを使用します。 - -* **[`book_offers`](book_offers.html)** - 2つの通貨を交換するオファーに関する情報を取得します。 -* **[`deposit_authorized`](deposit_authorized.html)** - あるアカウントが別のアカウントへの支払いの直接送信について承認されているかどうかを調べます。 -* **[`path_find`](path_find.html)** - 2つのアカウント間の支払いのパスを見つけて、更新を受け取ります。 -* **[`ripple_path_find`](ripple_path_find.html)** - 2つのアカウント間の支払いのパスを1回だけ見つけます。 - - -## [Payment Channel メソッド](payment-channel-methods.html) - -Payment Channel は、2名の当事者間での一方向の繰り返しの支払い、またはそれに伴う一時的な貸付を容易に行えるようにするためのツールです。Payment Channelに関しては、以下のメソッドを使用します。 - -* **[`channel_authorize`](channel_authorize.html)** - ペイメントチャネルへのクレーム(支払請求)に署名します。 -* **[`channel_verify`](channel_verify.html)** - payment channel クレームの署名をチェックします。 - - -## [サブスクリプションメソッド](subscription-methods.html) - -以下のメソッドにより、各種イベントの発生時にサーバーからクライアントに更新が通知されるように設定できます。これにより、イベントを即座に把握し、対処することができます。_WebSocket APIのみ。_ - -* **[`subscribe`](subscribe.html)** - 特定の対象について更新の通知を受けます。 -* **[`unsubscribe`](unsubscribe.html)** - 特定の対象についての更新の通知を停止します。 - - -## [サーバー情報メソッド](server-info-methods.html) - -以下のメソッドを使用して、`rippled`サーバーの現在の状態についての情報を取得します。 - -* **[`fee`](fee.html)** - トランザクションコストについての情報を取得します。 -* **[`server_info`](server_info.html)** - サーバーのステータスを人間が読めるフォーマットで取得します。 -* **[`server_state`](server_state.html)** - サーバーのステータスを機械が読み取れるフォーマットで取得します。 - - -## [ユーティリティメソッド](utility-methods.html) - -以下のメソッドを使用して、pingや乱数生成などの便利なタスクを実行します。 - -* **[`json`](json.html)** - プロキシとして使用して、他のコマンドを実行します。コマンドのパラメーターをJSON値として受け入れます。_コマンドラインのみ。_ -* **[`ping`](ping.html)** - サーバーとの接続を確認します。 -* **[`random`](random.html)** - 乱数を生成します。 - - -## 廃止予定のメソッド - +# rippledのパブリックメソッド + +以下のパブリックAPIメソッドを使用して、`rippled`サーバーと直接通信します。パブリックメソッドは必ずしも一般大衆向けに設計されたのではありませんが、サーバーに接続されたあらゆるクライアントが使用します。パブリックメソッドは、サーバーを運用している組織のメンバーまたは顧客向けのものと考えてください。 + + +## [アカウントメソッド](account-methods.html) + +XRP Ledgerのアカウントとは、XRPの保有者と取引の送信者を意味ます。以下のメソッドを使用して、アカウント情報を処理します。 + +* **[`account_channels`](account_channels.html)** - アカウントがチャンネルのソースであるペイメントチャネルのリストを取得します。 +* **[`account_currencies`](account_currencies.html)** - アカウントが送受信できる通貨のリストを取得します。 +* **[`account_info`](account_info.html)** - アカウントについての基本データを取得します。 +* **[`account_lines`](account_lines.html)** - アカウントのトラストラインについての情報を取得します。 +* **[`account_objects`](account_objects.html)** - アカウントが保有しているすべてのレジャーオブジェクトを取得します。 +* **[`account_offers`](account_offers.html)** - アカウントの通貨取引オファーについての情報を取得します。 +* **[`account_tx`](account_tx.html)** - アカウントのトランザクションについての情報を取得します。 +* **[`gateway_balances`](gateway_balances.html)** - アカウントによって発行された総額を計算します。 +* **[`noripple_check`](noripple_check.html)** - アカウントのDefaultRippleおよびNoRipple設定への推奨される変更を取得します。 + + +## [レジャーメソッド](ledger-methods.html) + +レジャーバージョンには、ヘッダー、トランザクションツリー、状態ツリーが含まれ、さらにその中にアカウント設定、トラストライン、残高、トランザクション、その他のデータが含まれます。以下のメソッドを使用して、レジャー情報を取得します。 + +* **[`ledger`](ledger.html)** - レジャーバージョンについての情報を取得します。 +* **[`ledger_closed`](ledger_closed.html)** - 最新の閉鎖済みレジャーバージョンを取得します。 +* **[`ledger_current`](ledger_current.html)** - 現在処理中のレジャーバージョンを取得します。 +* **[`ledger_data`](ledger_data.html)** - レジャーバージョンの生データコンテンツを取得します。 +* **[`ledger_entry`](ledger_entry.html)** - レジャーバージョンから1つのエレメントを取得します。 + + +## [トランザクションメソッド](transaction-methods.html) + +トランザクションだけが、XRP Ledgerの共有されている状態を変更できます。XRP Ledgerに対するすべてのビジネスはトランザクションの形態をとります。以下のメソッドを使用して、トランザクションを処理します。 + +* **[`sign`](sign.html)** - トランザクションに暗号で署名します。 +* **[`sign_for`](sign_for.html)** - マルチ署名に署名を提供します。 +* **[`submit`](submit.html)** - トランザクションをネットワークに送信します。 +* **[`submit_multisigned`](submit_multisigned.html)** - マルチ署名済みトランザクションをネットワークに送信します。 +* **[`transaction_entry`](transaction_entry.html)** - レジャーの特定のバージョンからトランザクションについての情報を取得します。 +* **[`tx`](tx.html)** - 手元にあるすべてのレジャーからトランザクションについての情報を取得します。 +* **[`tx_history`](tx_history.html)** - 最新の全トランザクションについての情報を取得します。 + + +## [パスおよびオーダーブックのメソッド](path-and-order-book-methods.html) + +パスは、支払いが送信者から受信者に届くまでに中間ステップでたどる道筋を定義します。パスは、送信者と受信者をオーダーブックを介してつなぐことで、複数通貨間の支払いを可能にします。パスと他のオーダーブックに関しては、以下のメソッドを使用します。 + +* **[`book_offers`](book_offers.html)** - 2つの通貨を交換するオファーに関する情報を取得します。 +* **[`deposit_authorized`](deposit_authorized.html)** - あるアカウントが別のアカウントへの支払いの直接送信について承認されているかどうかを調べます。 +* **[`path_find`](path_find.html)** - 2つのアカウント間の支払いのパスを見つけて、更新を受け取ります。 +* **[`ripple_path_find`](ripple_path_find.html)** - 2つのアカウント間の支払いのパスを1回だけ見つけます。 + + +## [Payment Channel メソッド](payment-channel-methods.html) + +Payment Channel は、2名の当事者間での一方向の繰り返しの支払い、またはそれに伴う一時的な貸付を容易に行えるようにするためのツールです。Payment Channelに関しては、以下のメソッドを使用します。 + +* **[`channel_authorize`](channel_authorize.html)** - ペイメントチャネルへのクレーム(支払請求)に署名します。 +* **[`channel_verify`](channel_verify.html)** - payment channel クレームの署名をチェックします。 + + +## [サブスクリプションメソッド](subscription-methods.html) + +以下のメソッドにより、各種イベントの発生時にサーバーからクライアントに更新が通知されるように設定できます。これにより、イベントを即座に把握し、対処することができます。_WebSocket APIのみ。_ + +* **[`subscribe`](subscribe.html)** - 特定の対象について更新の通知を受けます。 +* **[`unsubscribe`](unsubscribe.html)** - 特定の対象についての更新の通知を停止します。 + + +## [サーバー情報メソッド](server-info-methods.html) + +以下のメソッドを使用して、`rippled`サーバーの現在の状態についての情報を取得します。 + +* **[`fee`](fee.html)** - トランザクションコストについての情報を取得します。 +* **[`server_info`](server_info.html)** - サーバーのステータスを人間が読めるフォーマットで取得します。 +* **[`server_state`](server_state.html)** - サーバーのステータスを機械が読み取れるフォーマットで取得します。 + + +## [ユーティリティメソッド](utility-methods.html) + +以下のメソッドを使用して、pingや乱数生成などの便利なタスクを実行します。 + +* **[`json`](json.html)** - プロキシとして使用して、他のコマンドを実行します。コマンドのパラメーターをJSON値として受け入れます。_コマンドラインのみ。_ +* **[`ping`](ping.html)** - サーバーとの接続を確認します。 +* **[`random`](random.html)** - 乱数を生成します。 + + +## 廃止予定のメソッド + `owner_info`コマンドは廃止される予定です。代わりに[`account_objects`](account_objects.html)を使用してください。 \ No newline at end of file diff --git a/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.ja.md b/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.ja.md index 40a044068d..ab7fed9cc3 100644 --- a/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.ja.md +++ b/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.ja.md @@ -1,164 +1,164 @@ -# fee -[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/Fee1.cpp "Source") - -`fee`コマンドは、[トランザクションコスト](transaction-cost.html)に関するオープンレジャーの要件の現在の状態を報告します。このコマンドを使用するには、[FeeEscalation Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] - -これは権限のないユーザーが使用できるパブリックコマンドです。[更新: rippled 0.32.0][新規: rippled 0.32.0] - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":"fee_websocket_example", - "command":"fee" -} -``` - -*JSON-RPC* - -``` -{ - "method":"fee", - "params":[{}] -} -``` - -*コマンドライン* - -``` -#Syntax: fee -rippled fee -``` - - - -要求にはパラメーターは含まれていません。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":"fee_websocket_example", - "status":"success", - "type":"response", - "result":{ - "current_ledger_size":"14", - "current_queue_size":"0", - "drops":{ - "base_fee":"10", - "median_fee":"11000", - "minimum_fee":"10", - "open_ledger_fee":"10" - }, - "expected_ledger_size":"24", - "ledger_current_index":26575101, - "levels":{ - "median_level":"281600", - "minimum_level":"256", - "open_ledger_level":"256", - "reference_level":"256" - }, - "max_queue_size":"480" - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "current_ledger_size":"56", - "current_queue_size":"11", - "drops":{ - "base_fee":"10", - "median_fee":"10000", - "minimum_fee":"10", - "open_ledger_fee":"2653937" - }, - "expected_ledger_size":"55", - "ledger_current_index":26575101, - "levels":{ - "median_level":"256000", - "minimum_level":"256", - "open_ledger_level":"67940792", - "reference_level":"256" - }, - "max_queue_size":"1100", - "status":"success" - } -} -``` - -*コマンドライン* - -``` -Loading:"/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" :{ - "current_ledger_size" :"16", - "current_queue_size" :"2", - "drops" :{ - "base_fee" :"10", - "median_fee" :"11000", - "minimum_fee" :"10", - "open_ledger_fee" :"3203982" - }, - "expected_ledger_size" :"15", - "ledger_current_index":26575101, - "levels" :{ - "median_level" :"281600", - "minimum_level" :"256", - "open_ledger_level" :"82021944", - "reference_level" :"256" - }, - "max_queue_size" :"300", - "status" :"success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------------------|:-----------------|:-----------------------------| -| `current_ledger_size` | 文字列(整数) | 進行中のレジャーに暫定的に含まれているトランザクションの数。 | -| `current_queue_size` | 文字列(整数) | 次のレジャーに追加するためにキューに入れられたトランザクションの数。 | -| `drops` | オブジェクト | [XRPのdrop数][]で表されるトランザクションコスト(トランザクションの`Fee`フィールド)に関するさまざまな情報 。 | -| `drops.base_fee` | 文字列(整数) | 最小限の負荷でレジャーに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を追加するのに必要なトランザクションコスト(XRPのdrop数)。 | -| `drops.median_fee` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストのおおよその中央値(XRPのdrop数)。 | -| `drops.minimum_fee` | 文字列(整数) | 後のレジャーのキューに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を入れる際の最少トランザクションコスト(XRPのdrop数)。`base_fee`より大きい場合、トランザクションキューは一杯になっています。 | -| `drops.open_ledger_fee` | 文字列(整数) | 現在のオープンレジャーに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を追加する際に支払う必要がある最少トランザクションコスト(XRPのdrop数)。 | -| `expected_ledger_size` | 文字列(整数) | 現行レジャーへ追加される見込みのトランザクションの概数。これは前のレジャーのトランザクション数に基づいています。 | -| `ledger_current_index` | 数値 | これらのステータスにより示される現行オープンレジャーの[レジャーインデックス][]。[新規: rippled 0.50.0][] | -| `levels` | オブジェクト | トランザクションコスト([手数料レベル][])に関するさまざまな情報。手数料レベルの比率は、その特定トランザクションの最少コストを基準にすべてのトランザクションに適用されます。 | -| `levels.median_level` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストの中央値([手数料レベル][])。 | -| `levels.minimum_level` | 文字列(整数) | 今後のレジャーのキューに入れるのに必要となる最少トランザクションコスト([手数料レベル][])。 | -| `levels.open_ledger_level` | 文字列(整数) | 現行オープンレジャーにトランザクションを追加するのに必要な最少トランザクションコスト([手数料レベル][])。 | -| `levels.reference_level` | 文字列(整数) | 最少トランザクションコストに相当します([手数料レベル][]で表現されます)。 | -| `max_queue_size` | 文字列(整数) | [トランザクションキュー](transaction-cost.html#キューに入れられたトランザクション)で現在保持できるトランザクションの最大数。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - - -[手数料レベル]: transaction-cost.html#手数料レベル -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# fee +[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/Fee1.cpp "Source") + +`fee`コマンドは、[トランザクションコスト](transaction-cost.html)に関するオープンレジャーの要件の現在の状態を報告します。このコマンドを使用するには、[FeeEscalation Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] + +これは権限のないユーザーが使用できるパブリックコマンドです。[更新: rippled 0.32.0][新規: rippled 0.32.0] + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":"fee_websocket_example", + "command":"fee" +} +``` + +*JSON-RPC* + +``` +{ + "method":"fee", + "params":[{}] +} +``` + +*コマンドライン* + +``` +#Syntax: fee +rippled fee +``` + + + +要求にはパラメーターは含まれていません。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":"fee_websocket_example", + "status":"success", + "type":"response", + "result":{ + "current_ledger_size":"14", + "current_queue_size":"0", + "drops":{ + "base_fee":"10", + "median_fee":"11000", + "minimum_fee":"10", + "open_ledger_fee":"10" + }, + "expected_ledger_size":"24", + "ledger_current_index":26575101, + "levels":{ + "median_level":"281600", + "minimum_level":"256", + "open_ledger_level":"256", + "reference_level":"256" + }, + "max_queue_size":"480" + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "current_ledger_size":"56", + "current_queue_size":"11", + "drops":{ + "base_fee":"10", + "median_fee":"10000", + "minimum_fee":"10", + "open_ledger_fee":"2653937" + }, + "expected_ledger_size":"55", + "ledger_current_index":26575101, + "levels":{ + "median_level":"256000", + "minimum_level":"256", + "open_ledger_level":"67940792", + "reference_level":"256" + }, + "max_queue_size":"1100", + "status":"success" + } +} +``` + +*コマンドライン* + +``` +Loading:"/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" :{ + "current_ledger_size" :"16", + "current_queue_size" :"2", + "drops" :{ + "base_fee" :"10", + "median_fee" :"11000", + "minimum_fee" :"10", + "open_ledger_fee" :"3203982" + }, + "expected_ledger_size" :"15", + "ledger_current_index":26575101, + "levels" :{ + "median_level" :"281600", + "minimum_level" :"256", + "open_ledger_level" :"82021944", + "reference_level" :"256" + }, + "max_queue_size" :"300", + "status" :"success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------------------|:-----------------|:-----------------------------| +| `current_ledger_size` | 文字列(整数) | 進行中のレジャーに暫定的に含まれているトランザクションの数。 | +| `current_queue_size` | 文字列(整数) | 次のレジャーに追加するためにキューに入れられたトランザクションの数。 | +| `drops` | オブジェクト | [XRPのdrop数][]で表されるトランザクションコスト(トランザクションの`Fee`フィールド)に関するさまざまな情報 。 | +| `drops.base_fee` | 文字列(整数) | 最小限の負荷でレジャーに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を追加するのに必要なトランザクションコスト(XRPのdrop数)。 | +| `drops.median_fee` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストのおおよその中央値(XRPのdrop数)。 | +| `drops.minimum_fee` | 文字列(整数) | 後のレジャーのキューに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を入れる際の最少トランザクションコスト(XRPのdrop数)。`base_fee`より大きい場合、トランザクションキューは一杯になっています。 | +| `drops.open_ledger_fee` | 文字列(整数) | 現在のオープンレジャーに[リファレンストランザクション](transaction-cost.html#referenceトランザクションコスト)を追加する際に支払う必要がある最少トランザクションコスト(XRPのdrop数)。 | +| `expected_ledger_size` | 文字列(整数) | 現行レジャーへ追加される見込みのトランザクションの概数。これは前のレジャーのトランザクション数に基づいています。 | +| `ledger_current_index` | 数値 | これらのステータスにより示される現行オープンレジャーの[レジャーインデックス][]。[新規: rippled 0.50.0][] | +| `levels` | オブジェクト | トランザクションコスト([手数料レベル][])に関するさまざまな情報。手数料レベルの比率は、その特定トランザクションの最少コストを基準にすべてのトランザクションに適用されます。 | +| `levels.median_level` | 文字列(整数) | 前の検証済みレジャーに含まれているトランザクションのトランザクションコストの中央値([手数料レベル][])。 | +| `levels.minimum_level` | 文字列(整数) | 今後のレジャーのキューに入れるのに必要となる最少トランザクションコスト([手数料レベル][])。 | +| `levels.open_ledger_level` | 文字列(整数) | 現行オープンレジャーにトランザクションを追加するのに必要な最少トランザクションコスト([手数料レベル][])。 | +| `levels.reference_level` | 文字列(整数) | 最少トランザクションコストに相当します([手数料レベル][]で表現されます)。 | +| `max_queue_size` | 文字列(整数) | [トランザクションキュー](transaction-cost.html#キューに入れられたトランザクション)で現在保持できるトランザクションの最大数。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + + +[手数料レベル]: transaction-cost.html#手数料レベル +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.ja.md b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.ja.md index 09e67c0687..29597b58d9 100644 --- a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.ja.md +++ b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.ja.md @@ -1,331 +1,331 @@ -# server_info -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/ServerInfo.cpp "Source") - -`server_info`コマンドは、問い合わせ中の`rippled`サーバーについての各種情報を、人間が読めるフォーマットでサーバーに要求します。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 1, - "command": "server_info" -} -``` - -*JSON-RPC* - -``` -{ - "method": "server_info", - "params": [ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: server_info -rippled server_info -``` - - - -[試してみる>](websocket-api-tool.html#server_info) - -要求にパラメーターは何も含まれません。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 1, - "status": "success", - "type": "response", - "result": { - "info": { - "build_version": "0.30.1-rc3", - "complete_ledgers": "18611104-18614732", - "hostid": "trace", - "io_latency_ms": 1, - "last_close": { - "converge_time_s": 4.003, - "proposers": 5 - }, - "load": { - "job_types": [ - { - "job_type": "untrustedProposal", - "per_second": 2 - }, - { - "in_progress": 1, - "job_type": "clientCommand" - }, - { - "job_type": "transaction", - "per_second": 4 - }, - { - "job_type": "batch", - "per_second": 3 - }, - { - "job_type": "writeObjects", - "per_second": 2 - }, - { - "job_type": "trustedProposal", - "per_second": 1 - }, - { - "job_type": "peerCommand", - "per_second": 108 - }, - { - "job_type": "diskAccess", - "per_second": 1 - }, - { - "job_type": "processTransaction", - "per_second": 4 - }, - { - "job_type": "WriteNode", - "per_second": 63 - } - ], - "threads": 6 - }, - "load_factor": 1000, - "load_factor_net": 1000, - "peers": 10, - "pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa", - "pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", - "server_state": "proposing", - "server_state_duration_us": 92762334, - "state_accounting": { - "connected": { - "duration_us": "150510079", - "transitions": 1 - }, - "disconnected": { - "duration_us": "1827731", - "transitions": 1 - }, - "full": { - "duration_us": "166972201508", - "transitions": 1853 - }, - "syncing": { - "duration_us": "6249156726", - "transitions": 1854 - }, - "tracking": { - "duration_us": "13035222", - "transitions": 1854 - } - }, - "uptime": 173379, - "validated_ledger": { - "age": 3, - "base_fee_xrp": 0.00001, - "hash": "04F7CF4EACC57140C8088F6BFDC8A824BB3ED5717C3DAA6642101F9FB446226C", - "reserve_base_xrp": 20, - "reserve_inc_xrp": 5, - "seq": 18614732 - }, - "validation_quorum": 4, - "validator_list_expires" : "2017-Oct-12 16:06:36" - } - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result" : { - "info" : { - "build_version" : "0.33.0-hf1", - "complete_ledgers" : "24900901-24900984,24901116-24901158", - "hostid" : "trace", - "io_latency_ms" : 1, - "last_close" : { - "converge_time_s" : 2.001, - "proposers" : 5 - }, - "load" : { - "job_types" : [ - { - "in_progress" : 1, - "job_type" : "clientCommand" - }, - { - "job_type" : "transaction", - "per_second" : 6 - }, - { - "job_type" : "batch", - "per_second" : 6 - }, - { - "in_progress" : 1, - "job_type" : "advanceLedger" - }, - { - "job_type" : "trustedValidation", - "per_second" : 1 - }, - { - "avg_time" : 77, - "job_type" : "writeObjects", - "over_target" : true, - "peak_time" : 2990, - "per_second" : 2 - }, - { - "job_type" : "trustedProposal", - "per_second" : 2 - }, - { - "job_type" : "peerCommand", - "per_second" : 205 - }, - { - "avg_time" : 771, - "job_type" : "diskAccess", - "over_target" : true, - "peak_time" : 1934 - }, - { - "job_type" : "processTransaction", - "per_second" : 6 - }, - { - "job_type" : "SyncReadNode", - "per_second" : 4 - }, - { - "job_type" : "WriteNode", - "per_second" : 235 - } - ], - "threads" : 6 - }, - "load_factor" : 4.765625, - "load_factor_local" : 4.765625, - "peers" : 10, - "pubkey_node" : "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar", - "pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", - "published_ledger" : 24901158, - "server_state" : "proposing", - "server_state_duration_us": 708078257, - "state_accounting" : { - "connected" : { - "duration_us" : "854824665", - "transitions" : 2 - }, - "disconnected" : { - "duration_us" : "2183055", - "transitions" : 1 - }, - "full" : { - "duration_us" : "944104343", - "transitions" : 2 - }, - "syncing" : { - "duration_us" : "9233178", - "transitions" : 1 - }, - "tracking" : { - "duration_us" : "0", - "transitions" : 2 - } - }, - "uptime" : 1792, - "validated_ledger" : { - "age" : 1, - "base_fee_xrp" : 1e-05, - "hash" : "D2C122281EB72E64D19B9654A8D3D0FC4207373D3FE5D91AE516685A58874621", - "reserve_base_xrp" : 20, - "reserve_inc_xrp" : 5, - "seq" : 24901185 - }, - "validation_quorum" : 4, - "validator_list_expires" : "2017-Oct-12 16:06:36" - }, - "status" : "success" - } -} -``` - - - -応答は[標準フォーマット][]に従い、結果が正常な場合`info`オブジェクトが唯一のフィールドとして含まれます。 - -`info`オブジェクトには、以下のフィールドがいくつか配置される場合があります。 - -| `Field` | 型 | 説明 | -|:------------------------------------|:--------------------------|:-----------| -| `amendment_blocked` | ブール値 | _(省略される場合があります)_`true`の場合、このサーバーは[Amendment blocked](amendments.html#amendment-blocked)の状態です。サーバーがAmendment blockedの状態でない場合、このフィールドは応答から省略されます。[新規: rippled 0.80.0][] | -| `build_version` | 文字列 | 実行中の`rippled`バージョンのバージョン番号。 | -| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによってまだ検証されていない、最も最近更新を閉鎖したレジャーについての情報。最新の検証済みレジャーが使用可能な場合、このフィールドは応答で省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | -| `complete_ledgers` | 文字列 | ローカル`rippled`がデータベース内に有するレジャーのバージョンのシーケンス番号の範囲を示す表現。例えば、`24900901-24900984,24901116-24901158`のように、互いに素なシーケンスの場合があります。サーバーに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | -| `hostid` | 文字列 | admin要求の場合、`rippled`インスタンスを実行するサーバーのホスト名が返されます。それ以外の要求の場合、一意の4文字の単語が返されます。 | -| `io_latency_ms` | 数値 | I/O処理の待ち時間(ミリ秒単位)。この数値がそれほど低くない場合、`rippled`サーバーは深刻な負荷の問題を抱えている可能性があります。 | -| `last_close` | オブジェクト | サーバーが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | -| `load` | オブジェクト | _(管理者のみ)_ サーバーの現在の負荷状態についての詳細な情報。 | -| `load.job_types` | 配列 | _(管理者のみ)_ サーバーが実行している各種ジョブのレートや、各ジョブにかかる時間についての情報。 | -| `load.threads` | 数値 | _(管理者のみ)_ サーバーの主要なジョブプール内のスレッドの数。 | -| `load_factor` | 数値 | サーバーが現在施行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストがXRP 10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバーの負荷係数](transaction-cost.html#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。[更新: rippled 0.33.0][新規: rippled 0.33.0] | -| `load_factor_local` | 数値 | (省略される場合があります)このサーバーに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | -| `load_factor_net` | 数値 | (省略される場合があります)ネットワークのその他の部分で使用されている、[トランザクションコスト][]に適用される現在の乗数(他のサーバーから報告された負荷値から推定します)。 | -| `load_factor_cluster` | 数値 | (省略される場合があります)[このクラスター](clustering.html)内のサーバーに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | -| `load_factor_fee_escalation` | 数値 | (省略される場合があります)オープンレジャーに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。[新規: rippled 0.32.0][] | -| `load_factor_fee_queue` | 数値 | (省略される場合があります)キューが一杯になっている場合に、キューに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。[新規: rippled 0.32.0][] | -| `load_factor_server` | 数値 | (省略される場合があります)サーバーが実施中の負荷係数。[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)は含まれません。[新規: rippled 0.33.0][] | -| `peers` | 数値 | このサーバーが現在接続している、他の`rippled`サーバーの数。 | -| `pubkey_node` | 文字列 | ピアツーピア通信の中でこのサーバーを検証するために使用する公開鍵。この_ノードのキーペア_は、サーバーを初めて起動すると自動的に生成されます。(削除された場合、サーバーは新たなキーペアを作成できます。)構成ファイルにて`[node_seed]`設定オプションを使用すると、永続値を設定できます。これは[クラスター化](clustering.html)に便利です。 | -| `pubkey_validator` | 文字列 | _(管理者のみ)_ このノードがレジャーの検証の署名に使用する公開鍵。この_検証キーペア_は、`[validator_token]`または`[validation_seed]`設定フィールドにて生成されます。 | -| `server_state` | 文字列 | サーバーのネットワークへの参加の度合いを示す文字列。詳細は、[考えられるサーバーの状態](rippled-server-states.html)を参照してください。 | -| `server_state_duration_us` | 数値 | サーバーが現在の状態になってから経過したマイクロ秒数。[新規: rippled 1.2.0][] | -| `state_accounting` | オブジェクト | 各種[サーバー状態](rippled-server-states.html)のマップと、サーバーが各状態に費やした時間についての情報。これは、サーバーのネットワーク接続について長期的な健全性を追跡するのに便利です。[新規: rippled 0.30.1][] | -| `state_accounting.*.duration_us` | 文字列 | サーバーがこの状態になってから費やしたマイクロ秒数。(サーバーが別の状態に移行するたびに更新されます。)[新規: rippled 0.30.1][] | -| `state_accounting.*.transitions` | 数値 | サーバーがこの状態に移行した回数。[新規: rippled 0.30.1][] | -| `uptime` | 数値 | サーバーが連続して稼働している秒数。[新規: rippled 0.30.1][] | -| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドは応答にて省略され、代わりに`closed_ledger`が含まれます。 | -| `validated_ledger.age` | 数値 | レジャーの閉鎖以降の秒数。 | -| `validated_ledger.base_fee_xrp` | 数値 | XRP単位の基本手数料。0.00005の場合は、`1e-05`などの科学的記数法で表すことができます。 | -| `validated_ledger.hash` | 文字列 | 16進数で表された、レジャーの一意のハッシュ | -| `validated_ledger.reserve_base_xrp` | 符号なし整数 | すべてのアカウントで準備金として保有しておく必要があるXRPの最少額(drop数ではありません) | -| `validated_ledger.reserve_inc_xrp` | 符号なし整数 | アカウントがレジャー内に保有するオブジェクトごとのアカウント準備金に追加するXRP額(drop数ではありません) | -| `validated_ledger.seq` | 数値 - [レジャーインデックス][] | 最新の検証済みレジャーのレジャーインデックス | -| `validation_quorum` | 数値 | レジャーバージョンの検証に、最低限必要となる信頼できる検証の数。場合によっては、サーバーがさらに検証を要求する場合があります。 | -| `validator_list_expires` | 文字列 | _(管理者のみ)_ 現在のバリデータリストの有効期限が切れるタイミングを人間が読み取れる時間でを表示、または、サーバーが発行済みのバリデータリストをロードしていない場合は文字列`unknown`、サーバーが静的なバリデータリストを使用する場合は文字列`never`のいずれかを表示します。[新規: rippled 0.80.1][] | - -**注記:** `closed_ledger`フィールドがあり、`seq`の値が小さい(8桁未満)場合、`rippled`には現在、ピアツーピアネットワークから取得した検証済みレジャーのコピーがないことを表しています。これは、サーバーが現在も同期中である可能性を示しています。接続速度とハードウェア仕様にもよりますが、通常はネットワークとの同期に約5分かかります。 - -[トランザクションコスト]: transaction-cost.html - -## 考えられるエラー - -* いずれかの[汎用エラータイプ][]。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# server_info +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/ServerInfo.cpp "Source") + +`server_info`コマンドは、問い合わせ中の`rippled`サーバーについての各種情報を、人間が読めるフォーマットでサーバーに要求します。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 1, + "command": "server_info" +} +``` + +*JSON-RPC* + +``` +{ + "method": "server_info", + "params": [ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: server_info +rippled server_info +``` + + + +[試してみる>](websocket-api-tool.html#server_info) + +要求にパラメーターは何も含まれません。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 1, + "status": "success", + "type": "response", + "result": { + "info": { + "build_version": "0.30.1-rc3", + "complete_ledgers": "18611104-18614732", + "hostid": "trace", + "io_latency_ms": 1, + "last_close": { + "converge_time_s": 4.003, + "proposers": 5 + }, + "load": { + "job_types": [ + { + "job_type": "untrustedProposal", + "per_second": 2 + }, + { + "in_progress": 1, + "job_type": "clientCommand" + }, + { + "job_type": "transaction", + "per_second": 4 + }, + { + "job_type": "batch", + "per_second": 3 + }, + { + "job_type": "writeObjects", + "per_second": 2 + }, + { + "job_type": "trustedProposal", + "per_second": 1 + }, + { + "job_type": "peerCommand", + "per_second": 108 + }, + { + "job_type": "diskAccess", + "per_second": 1 + }, + { + "job_type": "processTransaction", + "per_second": 4 + }, + { + "job_type": "WriteNode", + "per_second": 63 + } + ], + "threads": 6 + }, + "load_factor": 1000, + "load_factor_net": 1000, + "peers": 10, + "pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa", + "pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", + "server_state": "proposing", + "server_state_duration_us": 92762334, + "state_accounting": { + "connected": { + "duration_us": "150510079", + "transitions": 1 + }, + "disconnected": { + "duration_us": "1827731", + "transitions": 1 + }, + "full": { + "duration_us": "166972201508", + "transitions": 1853 + }, + "syncing": { + "duration_us": "6249156726", + "transitions": 1854 + }, + "tracking": { + "duration_us": "13035222", + "transitions": 1854 + } + }, + "uptime": 173379, + "validated_ledger": { + "age": 3, + "base_fee_xrp": 0.00001, + "hash": "04F7CF4EACC57140C8088F6BFDC8A824BB3ED5717C3DAA6642101F9FB446226C", + "reserve_base_xrp": 20, + "reserve_inc_xrp": 5, + "seq": 18614732 + }, + "validation_quorum": 4, + "validator_list_expires" : "2017-Oct-12 16:06:36" + } + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result" : { + "info" : { + "build_version" : "0.33.0-hf1", + "complete_ledgers" : "24900901-24900984,24901116-24901158", + "hostid" : "trace", + "io_latency_ms" : 1, + "last_close" : { + "converge_time_s" : 2.001, + "proposers" : 5 + }, + "load" : { + "job_types" : [ + { + "in_progress" : 1, + "job_type" : "clientCommand" + }, + { + "job_type" : "transaction", + "per_second" : 6 + }, + { + "job_type" : "batch", + "per_second" : 6 + }, + { + "in_progress" : 1, + "job_type" : "advanceLedger" + }, + { + "job_type" : "trustedValidation", + "per_second" : 1 + }, + { + "avg_time" : 77, + "job_type" : "writeObjects", + "over_target" : true, + "peak_time" : 2990, + "per_second" : 2 + }, + { + "job_type" : "trustedProposal", + "per_second" : 2 + }, + { + "job_type" : "peerCommand", + "per_second" : 205 + }, + { + "avg_time" : 771, + "job_type" : "diskAccess", + "over_target" : true, + "peak_time" : 1934 + }, + { + "job_type" : "processTransaction", + "per_second" : 6 + }, + { + "job_type" : "SyncReadNode", + "per_second" : 4 + }, + { + "job_type" : "WriteNode", + "per_second" : 235 + } + ], + "threads" : 6 + }, + "load_factor" : 4.765625, + "load_factor_local" : 4.765625, + "peers" : 10, + "pubkey_node" : "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar", + "pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", + "published_ledger" : 24901158, + "server_state" : "proposing", + "server_state_duration_us": 708078257, + "state_accounting" : { + "connected" : { + "duration_us" : "854824665", + "transitions" : 2 + }, + "disconnected" : { + "duration_us" : "2183055", + "transitions" : 1 + }, + "full" : { + "duration_us" : "944104343", + "transitions" : 2 + }, + "syncing" : { + "duration_us" : "9233178", + "transitions" : 1 + }, + "tracking" : { + "duration_us" : "0", + "transitions" : 2 + } + }, + "uptime" : 1792, + "validated_ledger" : { + "age" : 1, + "base_fee_xrp" : 1e-05, + "hash" : "D2C122281EB72E64D19B9654A8D3D0FC4207373D3FE5D91AE516685A58874621", + "reserve_base_xrp" : 20, + "reserve_inc_xrp" : 5, + "seq" : 24901185 + }, + "validation_quorum" : 4, + "validator_list_expires" : "2017-Oct-12 16:06:36" + }, + "status" : "success" + } +} +``` + + + +応答は[標準フォーマット][]に従い、結果が正常な場合`info`オブジェクトが唯一のフィールドとして含まれます。 + +`info`オブジェクトには、以下のフィールドがいくつか配置される場合があります。 + +| `Field` | 型 | 説明 | +|:------------------------------------|:--------------------------|:-----------| +| `amendment_blocked` | ブール値 | _(省略される場合があります)_`true`の場合、このサーバーは[Amendment blocked](amendments.html#amendment-blocked)の状態です。サーバーがAmendment blockedの状態でない場合、このフィールドは応答から省略されます。[新規: rippled 0.80.0][] | +| `build_version` | 文字列 | 実行中の`rippled`バージョンのバージョン番号。 | +| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによってまだ検証されていない、最も最近更新を閉鎖したレジャーについての情報。最新の検証済みレジャーが使用可能な場合、このフィールドは応答で省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | +| `complete_ledgers` | 文字列 | ローカル`rippled`がデータベース内に有するレジャーのバージョンのシーケンス番号の範囲を示す表現。例えば、`24900901-24900984,24901116-24901158`のように、互いに素なシーケンスの場合があります。サーバーに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | +| `hostid` | 文字列 | admin要求の場合、`rippled`インスタンスを実行するサーバーのホスト名が返されます。それ以外の要求の場合、一意の4文字の単語が返されます。 | +| `io_latency_ms` | 数値 | I/O処理の待ち時間(ミリ秒単位)。この数値がそれほど低くない場合、`rippled`サーバーは深刻な負荷の問題を抱えている可能性があります。 | +| `last_close` | オブジェクト | サーバーが最後にレジャーを閉鎖したときの情報。これには、コンセンサスの取得に要した時間や、参加した信頼できるバリデータ(検証者)の数が含まれます。 | +| `load` | オブジェクト | _(管理者のみ)_ サーバーの現在の負荷状態についての詳細な情報。 | +| `load.job_types` | 配列 | _(管理者のみ)_ サーバーが実行している各種ジョブのレートや、各ジョブにかかる時間についての情報。 | +| `load.threads` | 数値 | _(管理者のみ)_ サーバーの主要なジョブプール内のスレッドの数。 | +| `load_factor` | 数値 | サーバーが現在施行中の、負荷スケーリングされたオープンレジャートランザクションコストを、基本トランザクションコストに適用される乗数として示したもの。例えば、負荷係数`1000`でリファレンストランザクションコストがXRP 10 dropである場合、負荷スケーリングされたトランザクションコストは10,000 drop(0.01 XRP)です。負荷係数は、[個々のサーバーの負荷係数](transaction-cost.html#ローカル負荷コスト)の最高値、クラスターの負荷係数、[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)、ネットワーク全体の負荷係数によって決まります。[更新: rippled 0.33.0][新規: rippled 0.33.0] | +| `load_factor_local` | 数値 | (省略される場合があります)このサーバーに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | +| `load_factor_net` | 数値 | (省略される場合があります)ネットワークのその他の部分で使用されている、[トランザクションコスト][]に適用される現在の乗数(他のサーバーから報告された負荷値から推定します)。 | +| `load_factor_cluster` | 数値 | (省略される場合があります)[このクラスター](clustering.html)内のサーバーに対する負荷に基づく、[トランザクションコスト][]に適用される現在の乗数。 | +| `load_factor_fee_escalation` | 数値 | (省略される場合があります)オープンレジャーに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。[新規: rippled 0.32.0][] | +| `load_factor_fee_queue` | 数値 | (省略される場合があります)キューが一杯になっている場合に、キューに入るために取引が支払う必要がある[トランザクションコスト][]に適用される現在の乗数。[新規: rippled 0.32.0][] | +| `load_factor_server` | 数値 | (省略される場合があります)サーバーが実施中の負荷係数。[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)は含まれません。[新規: rippled 0.33.0][] | +| `peers` | 数値 | このサーバーが現在接続している、他の`rippled`サーバーの数。 | +| `pubkey_node` | 文字列 | ピアツーピア通信の中でこのサーバーを検証するために使用する公開鍵。この_ノードのキーペア_は、サーバーを初めて起動すると自動的に生成されます。(削除された場合、サーバーは新たなキーペアを作成できます。)構成ファイルにて`[node_seed]`設定オプションを使用すると、永続値を設定できます。これは[クラスター化](clustering.html)に便利です。 | +| `pubkey_validator` | 文字列 | _(管理者のみ)_ このノードがレジャーの検証の署名に使用する公開鍵。この_検証キーペア_は、`[validator_token]`または`[validation_seed]`設定フィールドにて生成されます。 | +| `server_state` | 文字列 | サーバーのネットワークへの参加の度合いを示す文字列。詳細は、[考えられるサーバーの状態](rippled-server-states.html)を参照してください。 | +| `server_state_duration_us` | 数値 | サーバーが現在の状態になってから経過したマイクロ秒数。[新規: rippled 1.2.0][] | +| `state_accounting` | オブジェクト | 各種[サーバー状態](rippled-server-states.html)のマップと、サーバーが各状態に費やした時間についての情報。これは、サーバーのネットワーク接続について長期的な健全性を追跡するのに便利です。[新規: rippled 0.30.1][] | +| `state_accounting.*.duration_us` | 文字列 | サーバーがこの状態になってから費やしたマイクロ秒数。(サーバーが別の状態に移行するたびに更新されます。)[新規: rippled 0.30.1][] | +| `state_accounting.*.transitions` | 数値 | サーバーがこの状態に移行した回数。[新規: rippled 0.30.1][] | +| `uptime` | 数値 | サーバーが連続して稼働している秒数。[新規: rippled 0.30.1][] | +| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドは応答にて省略され、代わりに`closed_ledger`が含まれます。 | +| `validated_ledger.age` | 数値 | レジャーの閉鎖以降の秒数。 | +| `validated_ledger.base_fee_xrp` | 数値 | XRP単位の基本手数料。0.00005の場合は、`1e-05`などの科学的記数法で表すことができます。 | +| `validated_ledger.hash` | 文字列 | 16進数で表された、レジャーの一意のハッシュ | +| `validated_ledger.reserve_base_xrp` | 符号なし整数 | すべてのアカウントで準備金として保有しておく必要があるXRPの最少額(drop数ではありません) | +| `validated_ledger.reserve_inc_xrp` | 符号なし整数 | アカウントがレジャー内に保有するオブジェクトごとのアカウント準備金に追加するXRP額(drop数ではありません) | +| `validated_ledger.seq` | 数値 - [レジャーインデックス][] | 最新の検証済みレジャーのレジャーインデックス | +| `validation_quorum` | 数値 | レジャーバージョンの検証に、最低限必要となる信頼できる検証の数。場合によっては、サーバーがさらに検証を要求する場合があります。 | +| `validator_list_expires` | 文字列 | _(管理者のみ)_ 現在のバリデータリストの有効期限が切れるタイミングを人間が読み取れる時間でを表示、または、サーバーが発行済みのバリデータリストをロードしていない場合は文字列`unknown`、サーバーが静的なバリデータリストを使用する場合は文字列`never`のいずれかを表示します。[新規: rippled 0.80.1][] | + +**注記:** `closed_ledger`フィールドがあり、`seq`の値が小さい(8桁未満)場合、`rippled`には現在、ピアツーピアネットワークから取得した検証済みレジャーのコピーがないことを表しています。これは、サーバーが現在も同期中である可能性を示しています。接続速度とハードウェア仕様にもよりますが、通常はネットワークとの同期に約5分かかります。 + +[トランザクションコスト]: transaction-cost.html + +## 考えられるエラー + +* いずれかの[汎用エラータイプ][]。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.ja.md b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.ja.md index 7f7ef4f3aa..61809ea451 100644 --- a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.ja.md +++ b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.ja.md @@ -1,298 +1,298 @@ -# server_state -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/ServerState.cpp "Source") - -`server_state`コマンドは、サーバーに対し`rippled`サーバーの現在の状態に関するさまざまな機械可読の情報を問い合わせます。応答は[server_infoメソッド][]の場合とほぼ同じですが、読み取りやすい単位ではなく処理しやすい単位を使用します。(たとえば、XRP値は科学的記数法や10進数値の代わりに整数のdrop数で示され、時刻は秒単位ではなくミリ秒単位で示されます。) - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "server_state" -} -``` - -*JSON-RPC* - -``` -{ - "method": "server_state", - "params": [ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: server_state -rippled server_state -``` - - - -[試してみる>](websocket-api-tool.html#server_state) - -要求はパラメーターをとりません。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "state": { - "build_version": "0.30.1-rc3", - "complete_ledgers": "18611104-18615049", - "io_latency_ms": 1, - "last_close": { - "converge_time": 3003, - "proposers": 5 - }, - "load": { - "job_types": [ - { - "job_type": "untrustedProposal", - "peak_time": 1, - "per_second": 3 - }, - { - "in_progress": 1, - "job_type": "clientCommand" - }, - { - "avg_time": 12, - "job_type": "writeObjects", - "peak_time": 345, - "per_second": 2 - }, - { - "job_type": "trustedProposal", - "per_second": 1 - }, - { - "job_type": "peerCommand", - "per_second": 64 - }, - { - "avg_time": 33, - "job_type": "diskAccess", - "peak_time": 526 - }, - { - "job_type": "WriteNode", - "per_second": 55 - } - ], - "threads": 6 - }, - "load_base": 256, - "load_factor": 256000, - "peers": 10, - "pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa", - "pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", - "server_state": "proposing", - "server_state_duration_us": 92762334, - "state_accounting": { - "connected": { - "duration_us": "150510079", - "transitions": 1 - }, - "disconnected": { - "duration_us": "1827731", - "transitions": 1 - }, - "full": { - "duration_us": "168295542987", - "transitions": 1865 - }, - "syncing": { - "duration_us": "6294237352", - "transitions": 1866 - }, - "tracking": { - "duration_us": "13035524", - "transitions": 1866 - } - }, - "uptime": 174748, - "validated_ledger": { - "base_fee": 10, - "close_time": 507693650, - "hash": "FEB17B15FB64E3AF8D371E6AAFCFD8B92775BB80AB953803BD73EA8EC75ECA34", - "reserve_base": 20000000, - "reserve_inc": 5000000, - "seq": 18615049 - }, - "validation_quorum": 4, - "validator_list_expires": 561139596 - } - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result" : { - "state" : { - "build_version" : "0.30.1-rc3", - "complete_ledgers" : "18611104-18615037", - "io_latency_ms" : 1, - "last_close" : { - "converge_time" : 2001, - "proposers" : 5 - }, - "load" : { - "job_types" : [ - { - "job_type" : "untrustedProposal", - "per_second" : 2 - }, - { - "in_progress" : 1, - "job_type" : "clientCommand" - }, - { - "job_type" : "writeObjects", - "per_second" : 2 - }, - { - "avg_time" : 2, - "job_type" : "acceptLedger", - "peak_time" : 6 - }, - { - "job_type" : "trustedProposal", - "per_second" : 1 - }, - { - "job_type" : "peerCommand", - "per_second" : 80 - }, - { - "job_type" : "diskAccess", - "per_second" : 1 - }, - { - "job_type" : "WriteNode", - "per_second" : 91 - } - ], - "threads" : 6 - }, - "load_base" : 256, - "load_factor" : 256000, - "peers" : 10, - "pubkey_node" : "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa", - "pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", - "server_state" : "proposing", - "server_state_duration_us": 708078257, - "state_accounting" : { - "connected" : { - "duration_us" : "150510079", - "transitions" : 1 - }, - "disconnected" : { - "duration_us" : "1827731", - "transitions" : 1 - }, - "full" : { - "duration_us" : "168241260112", - "transitions" : 1865 - }, - "syncing" : { - "duration_us" : "6294237352", - "transitions" : 1866 - }, - "tracking" : { - "duration_us" : "13035524", - "transitions" : 1866 - } - }, - "uptime" : 174693, - "validated_ledger" : { - "base_fee" : 10, - "close_time" : 507693592, - "hash" : "1C26209AE593C7EB5123363B3152D86514845FBD42CC6B05111D57F62D02B113", - "reserve_base" : 20000000, - "reserve_inc" : 5000000, - "seq" : 18615037 - }, - "validation_quorum" : 4, - "validator_list_expires" : 561139596 - }, - "status" : "success" - } -} - -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は、結果に唯一のフィールドとして`state`オブジェクトが含まれています。 - -`state`オブジェクトには、以下のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:---------------------------------|:-----------------|:-----------------------| -| `amendment_blocked` | ブール値 | _(省略される場合があります)_`true`の場合、このサーバーは[Amendment blocked](amendments.html#amendment-blocked)の状態です。サーバーがAmendment blockedではない場合、応答ではこのフィールドが省略されます。[新規: rippled 0.80.0][] | -| `build_version` | 文字列 | 実行中の`rippled`バージョンのバージョン番号。 | -| `complete_ledgers` | 文字列 | ローカルの`rippled`がデータベース内に有するレジャーバージョンのシーケンス番号の範囲を示す表現。例えば、「2500-5000,32570-7695432」のように互いに素なシーケンスの場合があります。サーバーに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | -| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによって検証されていない、最新の閉鎖済みレジャーに関する情報。最新の検証済みレジャーが使用可能な場合、応答ではこのフィールドは省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | -| `io_latency_ms` | 数値 | I/O処理の待機に費やされた時間数(ミリ秒単位)。この数値が極端に低くない場合、`rippled`サーバーでは深刻な負荷の問題が発生している可能性があります。 | -| `load` | オブジェクト | _(管理者専用)_ サーバーの現在の負荷状態についての詳細な情報。 | -| `load.job_types` | 配列 | _(管理者専用)_ サーバーが実行している各種ジョブのレートや、各ジョブに要する時間についての情報。 | -| `load.threads` | 数値 | _(管理者専用)_ サーバーの主要なジョブプール内のスレッド数。 | -| `load_base` | 整数 | [トランザクションコスト](transaction-cost.html)の計算で使用されるサーバー負荷のベースライン量です。`load_factor`が`load_base`と同等の場合、基本トランザクションコストのみが適用されます。`load_factor`が`load_base`よりも大きい場合、トランザクションコストにそれらの値の比率が乗算されます。たとえば`load_factor`が`load_base`の2倍である場合、トランザクションコストは2倍になります。 | -| `load_factor` | 数値 | サーバーが現在適用している負荷係数。トランザクションコストの乗数は、この値と`load_base`の比率によって決まります。負荷係数は、個別サーバーの最も高い負荷係数、クラスターの負荷係数、[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)、およびネットワーク全体の負荷係数によって決定します。[更新: rippled 0.33.0][新規: rippled 0.33.0] | -| `load_factor_fee_escalation` | 整数 | (省略される場合があります)オープンレジャーに入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。[新規: rippled 0.32.0][] | -| `load_factor_fee_queue` | 整数 | (省略される場合があります)キューが一杯になっている場合に、キューへ入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。[新規: rippled 0.32.0][] | -| `load_factor_fee_reference` | 整数 | (省略される場合があります)負荷スケーリングのない[トランザクションコスト][]([手数料レベル][])。[新規: rippled 0.32.0][] | -| `load_factor_server` | 数値 | (省略される場合があります)サーバーが適用している負荷係数。[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)は含まれません。[新規: rippled 0.33.0][] | -| `peers` | 数値 | このサーバーが現在接続している他の`rippled`サーバーの数。 | -| `pubkey_node` | 文字列 | ピアツーピア通信のためにこのサーバーを検証する際に使用される公開鍵。サーバーを初めて起動すると、サーバーにより _ノードキーペア_ が自動的に生成されます。(キーペアが削除されている場合、サーバーは新しいキーペアを作成できます。)`[node_seed]`構成オプションを使用して構成ファイルの永続値を設定できます。これは[クラスター化](clustering.html)で便利です。 | -| `pubkey_validator` | 文字列 | _(管理者専用)_ このノードがレジャー検証の署名に使用する公開鍵。_検証キーペア_ は、`[validator_token]`構成フィールドまたは`[validation_seed]`構成フィールドから生成されます。 | -| `server_state` | 文字列 | サーバーのネットワークへの参加度を示す文字列。詳細は、[考えられるサーバーの状態](rippled-server-states.html)を参照してください。 | -| `server_state_duration_us` | 数値 | サーバーが現在の状態になってから経過した連続マイクロ秒数。[新規: rippled 1.2.0][] | -| `state_accounting` | オブジェクト | 各種[サーバー状態](rippled-server-states.html)のマップと、サーバーが各状態に費やした時間についての情報。これは、サーバーのネットワーク接続性の健全性を長期的に追跡するのに便利です。[新規: rippled 0.30.1][] | -| `state_accounting.*.duration_us` | 文字列 | サーバーがこの状態になってから経過したマイクロ秒数。(サーバーが別の状態に移行するたびに更新されます。)[新規: rippled 0.30.1][] | -| `state_accounting.*.transitions` | 数値 | サーバーがこの状態に移行した回数。[新規: rippled 0.30.1][] | -| `uptime` | 数値 | サーバーが連続稼働している秒数。[新規: rippled 0.30.1][] | -| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドは応答で省略され、代わりに`closed_ledger`が含まれます。 | -| `validated_ledger.base_fee` | 符号なし整数 | ネットワークへのトランザクション伝達にかかる基本手数料(XRPのdrop数)。 | -| `validated_ledger.close_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | -| `validated_ledger.hash` | 文字列 | 当該レジャーバージョンの一意のハッシュ(16進数) | -| `validated_ledger.reserve_base` | 符号なし整数 | すべてのアカウントで準備金として保有する必要がある最小額(XRPのdrop数) | -| `validated_ledger.reserve_inc` | 符号なし整数 | アカウントがレジャー内に保有する各アイテムのアカウント準備金に追加する額(XRPのdrop数)。 | -| `validated_ledger.seq` | 符号なし整数 | このレジャーの一意のシーケンス番号 | -| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバーがさらに検証を要求する場合があります。 | -| `validator_list_expires` | 数値 | _(管理者専用)_ 現在のバリデータリストが期限切れになる時点([Rippleエポック以降に経過した秒数][])。サーバーが発行済みのバリデータリストをロードしていない場合は0。[新規: rippled 0.80.1][] | - - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -[手数料レベル]: transaction-cost.html#手数料レベル -[トランザクションコスト]: transaction-cost.html -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# server_state +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/ServerState.cpp "Source") + +`server_state`コマンドは、サーバーに対し`rippled`サーバーの現在の状態に関するさまざまな機械可読の情報を問い合わせます。応答は[server_infoメソッド][]の場合とほぼ同じですが、読み取りやすい単位ではなく処理しやすい単位を使用します。(たとえば、XRP値は科学的記数法や10進数値の代わりに整数のdrop数で示され、時刻は秒単位ではなくミリ秒単位で示されます。) + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "server_state" +} +``` + +*JSON-RPC* + +``` +{ + "method": "server_state", + "params": [ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: server_state +rippled server_state +``` + + + +[試してみる>](websocket-api-tool.html#server_state) + +要求はパラメーターをとりません。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "state": { + "build_version": "0.30.1-rc3", + "complete_ledgers": "18611104-18615049", + "io_latency_ms": 1, + "last_close": { + "converge_time": 3003, + "proposers": 5 + }, + "load": { + "job_types": [ + { + "job_type": "untrustedProposal", + "peak_time": 1, + "per_second": 3 + }, + { + "in_progress": 1, + "job_type": "clientCommand" + }, + { + "avg_time": 12, + "job_type": "writeObjects", + "peak_time": 345, + "per_second": 2 + }, + { + "job_type": "trustedProposal", + "per_second": 1 + }, + { + "job_type": "peerCommand", + "per_second": 64 + }, + { + "avg_time": 33, + "job_type": "diskAccess", + "peak_time": 526 + }, + { + "job_type": "WriteNode", + "per_second": 55 + } + ], + "threads": 6 + }, + "load_base": 256, + "load_factor": 256000, + "peers": 10, + "pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa", + "pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", + "server_state": "proposing", + "server_state_duration_us": 92762334, + "state_accounting": { + "connected": { + "duration_us": "150510079", + "transitions": 1 + }, + "disconnected": { + "duration_us": "1827731", + "transitions": 1 + }, + "full": { + "duration_us": "168295542987", + "transitions": 1865 + }, + "syncing": { + "duration_us": "6294237352", + "transitions": 1866 + }, + "tracking": { + "duration_us": "13035524", + "transitions": 1866 + } + }, + "uptime": 174748, + "validated_ledger": { + "base_fee": 10, + "close_time": 507693650, + "hash": "FEB17B15FB64E3AF8D371E6AAFCFD8B92775BB80AB953803BD73EA8EC75ECA34", + "reserve_base": 20000000, + "reserve_inc": 5000000, + "seq": 18615049 + }, + "validation_quorum": 4, + "validator_list_expires": 561139596 + } + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result" : { + "state" : { + "build_version" : "0.30.1-rc3", + "complete_ledgers" : "18611104-18615037", + "io_latency_ms" : 1, + "last_close" : { + "converge_time" : 2001, + "proposers" : 5 + }, + "load" : { + "job_types" : [ + { + "job_type" : "untrustedProposal", + "per_second" : 2 + }, + { + "in_progress" : 1, + "job_type" : "clientCommand" + }, + { + "job_type" : "writeObjects", + "per_second" : 2 + }, + { + "avg_time" : 2, + "job_type" : "acceptLedger", + "peak_time" : 6 + }, + { + "job_type" : "trustedProposal", + "per_second" : 1 + }, + { + "job_type" : "peerCommand", + "per_second" : 80 + }, + { + "job_type" : "diskAccess", + "per_second" : 1 + }, + { + "job_type" : "WriteNode", + "per_second" : 91 + } + ], + "threads" : 6 + }, + "load_base" : 256, + "load_factor" : 256000, + "peers" : 10, + "pubkey_node" : "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa", + "pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST", + "server_state" : "proposing", + "server_state_duration_us": 708078257, + "state_accounting" : { + "connected" : { + "duration_us" : "150510079", + "transitions" : 1 + }, + "disconnected" : { + "duration_us" : "1827731", + "transitions" : 1 + }, + "full" : { + "duration_us" : "168241260112", + "transitions" : 1865 + }, + "syncing" : { + "duration_us" : "6294237352", + "transitions" : 1866 + }, + "tracking" : { + "duration_us" : "13035524", + "transitions" : 1866 + } + }, + "uptime" : 174693, + "validated_ledger" : { + "base_fee" : 10, + "close_time" : 507693592, + "hash" : "1C26209AE593C7EB5123363B3152D86514845FBD42CC6B05111D57F62D02B113", + "reserve_base" : 20000000, + "reserve_inc" : 5000000, + "seq" : 18615037 + }, + "validation_quorum" : 4, + "validator_list_expires" : 561139596 + }, + "status" : "success" + } +} + +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は、結果に唯一のフィールドとして`state`オブジェクトが含まれています。 + +`state`オブジェクトには、以下のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:---------------------------------|:-----------------|:-----------------------| +| `amendment_blocked` | ブール値 | _(省略される場合があります)_`true`の場合、このサーバーは[Amendment blocked](amendments.html#amendment-blocked)の状態です。サーバーがAmendment blockedではない場合、応答ではこのフィールドが省略されます。[新規: rippled 0.80.0][] | +| `build_version` | 文字列 | 実行中の`rippled`バージョンのバージョン番号。 | +| `complete_ledgers` | 文字列 | ローカルの`rippled`がデータベース内に有するレジャーバージョンのシーケンス番号の範囲を示す表現。例えば、「2500-5000,32570-7695432」のように互いに素なシーケンスの場合があります。サーバーに完全なレジャーがない場合(例えば、ネットワークとの同期を始めたばかりの場合)、文字列`empty`になります。 | +| `closed_ledger` | オブジェクト | (省略される場合があります)コンセンサスによって検証されていない、最新の閉鎖済みレジャーに関する情報。最新の検証済みレジャーが使用可能な場合、応答ではこのフィールドは省略され、代わりに`validated_ledger`が含まれます。メンバーフィールドは`validated_ledger`フィールドと同じです。 | +| `io_latency_ms` | 数値 | I/O処理の待機に費やされた時間数(ミリ秒単位)。この数値が極端に低くない場合、`rippled`サーバーでは深刻な負荷の問題が発生している可能性があります。 | +| `load` | オブジェクト | _(管理者専用)_ サーバーの現在の負荷状態についての詳細な情報。 | +| `load.job_types` | 配列 | _(管理者専用)_ サーバーが実行している各種ジョブのレートや、各ジョブに要する時間についての情報。 | +| `load.threads` | 数値 | _(管理者専用)_ サーバーの主要なジョブプール内のスレッド数。 | +| `load_base` | 整数 | [トランザクションコスト](transaction-cost.html)の計算で使用されるサーバー負荷のベースライン量です。`load_factor`が`load_base`と同等の場合、基本トランザクションコストのみが適用されます。`load_factor`が`load_base`よりも大きい場合、トランザクションコストにそれらの値の比率が乗算されます。たとえば`load_factor`が`load_base`の2倍である場合、トランザクションコストは2倍になります。 | +| `load_factor` | 数値 | サーバーが現在適用している負荷係数。トランザクションコストの乗数は、この値と`load_base`の比率によって決まります。負荷係数は、個別サーバーの最も高い負荷係数、クラスターの負荷係数、[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)、およびネットワーク全体の負荷係数によって決定します。[更新: rippled 0.33.0][新規: rippled 0.33.0] | +| `load_factor_fee_escalation` | 整数 | (省略される場合があります)オープンレジャーに入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。[新規: rippled 0.32.0][] | +| `load_factor_fee_queue` | 整数 | (省略される場合があります)キューが一杯になっている場合に、キューへ入るときに[トランザクションコスト][]に適用される現在の乗数([手数料レベル][])。[新規: rippled 0.32.0][] | +| `load_factor_fee_reference` | 整数 | (省略される場合があります)負荷スケーリングのない[トランザクションコスト][]([手数料レベル][])。[新規: rippled 0.32.0][] | +| `load_factor_server` | 数値 | (省略される場合があります)サーバーが適用している負荷係数。[オープンレジャーコスト](transaction-cost.html#オープンレジャーコスト)は含まれません。[新規: rippled 0.33.0][] | +| `peers` | 数値 | このサーバーが現在接続している他の`rippled`サーバーの数。 | +| `pubkey_node` | 文字列 | ピアツーピア通信のためにこのサーバーを検証する際に使用される公開鍵。サーバーを初めて起動すると、サーバーにより _ノードキーペア_ が自動的に生成されます。(キーペアが削除されている場合、サーバーは新しいキーペアを作成できます。)`[node_seed]`構成オプションを使用して構成ファイルの永続値を設定できます。これは[クラスター化](clustering.html)で便利です。 | +| `pubkey_validator` | 文字列 | _(管理者専用)_ このノードがレジャー検証の署名に使用する公開鍵。_検証キーペア_ は、`[validator_token]`構成フィールドまたは`[validation_seed]`構成フィールドから生成されます。 | +| `server_state` | 文字列 | サーバーのネットワークへの参加度を示す文字列。詳細は、[考えられるサーバーの状態](rippled-server-states.html)を参照してください。 | +| `server_state_duration_us` | 数値 | サーバーが現在の状態になってから経過した連続マイクロ秒数。[新規: rippled 1.2.0][] | +| `state_accounting` | オブジェクト | 各種[サーバー状態](rippled-server-states.html)のマップと、サーバーが各状態に費やした時間についての情報。これは、サーバーのネットワーク接続性の健全性を長期的に追跡するのに便利です。[新規: rippled 0.30.1][] | +| `state_accounting.*.duration_us` | 文字列 | サーバーがこの状態になってから経過したマイクロ秒数。(サーバーが別の状態に移行するたびに更新されます。)[新規: rippled 0.30.1][] | +| `state_accounting.*.transitions` | 数値 | サーバーがこの状態に移行した回数。[新規: rippled 0.30.1][] | +| `uptime` | 数値 | サーバーが連続稼働している秒数。[新規: rippled 0.30.1][] | +| `validated_ledger` | オブジェクト | (省略される場合があります)完全に検証された最新のレジャーについての情報。最新の検証済みレジャーが使用できない場合、このフィールドは応答で省略され、代わりに`closed_ledger`が含まれます。 | +| `validated_ledger.base_fee` | 符号なし整数 | ネットワークへのトランザクション伝達にかかる基本手数料(XRPのdrop数)。 | +| `validated_ledger.close_time` | 数値 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | +| `validated_ledger.hash` | 文字列 | 当該レジャーバージョンの一意のハッシュ(16進数) | +| `validated_ledger.reserve_base` | 符号なし整数 | すべてのアカウントで準備金として保有する必要がある最小額(XRPのdrop数) | +| `validated_ledger.reserve_inc` | 符号なし整数 | アカウントがレジャー内に保有する各アイテムのアカウント準備金に追加する額(XRPのdrop数)。 | +| `validated_ledger.seq` | 符号なし整数 | このレジャーの一意のシーケンス番号 | +| `validation_quorum` | 数値 | 1つのレジャーバージョンの検証に最低限必要となる信頼できる検証の数。状況によっては、サーバーがさらに検証を要求する場合があります。 | +| `validator_list_expires` | 数値 | _(管理者専用)_ 現在のバリデータリストが期限切れになる時点([Rippleエポック以降に経過した秒数][])。サーバーが発行済みのバリデータリストをロードしていない場合は0。[新規: rippled 0.80.1][] | + + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +[手数料レベル]: transaction-cost.html#手数料レベル +[トランザクションコスト]: transaction-cost.html +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/subscription-methods/subscribe.ja.md b/content/references/rippled-api/public-rippled-methods/subscription-methods/subscribe.ja.md index 70bb7eec8d..50be8877bd 100644 --- a/content/references/rippled-api/public-rippled-methods/subscription-methods/subscribe.ja.md +++ b/content/references/rippled-api/public-rippled-methods/subscription-methods/subscribe.ja.md @@ -1,536 +1,536 @@ -# subscribe -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Subscribe.cpp "Source") - -`subscribe`メソッドは、特定のイベントが発生した場合に、定期的に通知するようサーバーに要求します。 - -## 要求フォーマット -要求フォーマットの例: - - - -*アカウントのサブスクライブ* - -``` -{ - "id": "Example watch Bitstamp's hot wallet", - "command": "subscribe", - "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] -} -``` - -*オーダーブックのサブスクライブ* - -``` -{ - "id": "Example subscribe to XRP/GateHub USD order book", - "command": "subscribe", - "books": [ - { - "taker_pays": { - "currency": "XRP" - }, - "taker_gets": { - "currency": "USD", - "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" - }, - "snapshot": true - } - ] -} -``` - -*レジャーストリームのサブスクライブ* - -``` -{ - "id": "Example watch for new validated ledgers", - "command": "subscribe", - "streams": ["ledger"] -} -``` - - - -[試してみる>](websocket-api-tool.html#subscribe) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:--------------------|:-------|:----------------------------------------------| -| `streams` | 配列 | _(省略可)_ 以下に説明する、サブスクライブする汎用ストリームの文字列名の配列。 | -| `accounts` | 配列 | _(省略可)_ 検証済みトランザクションを監視するアカウントの一意のアドレスを持つ配列。これらのアドレスはXRP Ledgerの[base58][]フォーマットで記述されている必要があります。サーバーは、1つ以上のアカウントに影響するすべてのトランザクションについて通知を送信します。 | -| `accounts_proposed` | 配列 | _(省略可)_`accounts`と同様ですが、まだファイナライズされていないトランザクションを含みます。 | -| `books` | 配列 | _(省略可)_ 以下に説明するとおり、更新の監視のために[オーダーブック](http://www.investopedia.com/terms/o/order-book.asp)を定義するオブジェクトの配列。 | -| `url` | 文字列 | (Websocketでは省略可、それ以外では必須)サーバーが各イベントのJSON-RPCコールバックを送信するURL。*管理者専用。* | -| `url_username` | 文字列 | _(省略可)_ コールバックURLで基本認証を行うためのユーザー名。 | -| `url_password` | 文字列 | _(省略可)_ コールバックURLで基本認証を行うためのパスワード。 | - -以下のパラメーターは廃止予定で、今後予告なしに削除される可能性があります。`user`, `password`, `rt_accounts` - -`streams`パラメーターは、以下のデフォルトの情報ストリームへのアクセスを可能にします。 - -* `server` - `rippled` サーバーのステータス(ネットワーク接続など)が変更されるたびにメッセージを送信します。 -* `ledger` - コンセンサスプロセスで新しい検証済みレジャーが宣言されるたびにメッセージを送信します。 -* `transactions` - 閉鎖済みレジャーにトランザクションが追加されるたびにメッセージを送信します。 -* `transactions_proposed` - 閉鎖済みレジャーにトランザクションが追加される場合や、検証済みレジャーにまだ追加されておらず、今後も追加される見込みのない一部のトランザクションが閉鎖済みレジャーに追加される場合に、メッセージを送信します。提案されたすべてのトランザクションが検証前に表示されるわけではありません。 - **注記:** 検証済みレジャーには[失敗したトランザクションも記録されます](transaction-results.html)。これは、このようなトランザクションにはスパム対策のトランザクション手数料が課されるためです。 -* `validations` - サーバーがバリデータを信頼しているか否かにかかわらず、サーバーが検証メッセージを受信するたびに、メッセージを送信します。(個々の`rippled`は、サーバーが少なくとも定数の信頼できるバリデータから検証メッセージを受信した時点で、レジャーが検証済みであると宣言します。) -* `peer_status` - **(管理者専用)** 接続しているピア`rippled`サーバーに関する情報(特にコンセンサスプロセスに関する情報)。 - -`books` 配列が指定されている場合、この配列の各要素は、以下のフィールドを持つオブジェクトです。 - -| `Field` | 型 | 説明 | -|:-------------|:--------|:----------------------------------------------------| -| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を[金額なしの通貨オブジェクト](basic-data-types.html#金額なしでの通貨の指定)として指定します。 | -| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を[金額なしの通貨オブジェクト](basic-data-types.html#金額なしでの通貨の指定)として指定します。 | -| `taker` | 文字列 | オファーを表示するパースペクティブとして使用する一意のアカウントアドレス(XRP Ledgerの[base58][]フォーマット)。(これはオファーの資金提供ステータスと手数料に影響します。) | -| `snapshot` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、更新の送信前にサブスクライブした時点でオーダーブックの現在の状態を一度返します。 | -| `both` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、オーダーブックの両サイドを返します。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": "Example watch Bitstamp's hot wallet", - "status": "success", - "type": "response", - "result": {} -} -``` - - - -応答は[標準フォーマット][]に従っています。応答に含まれるフィールドは、要求に指定されたサブスクリプションに応じて異なります。 - -* `accounts` および`accounts_proposed` - フィールドが返されません。 -* *Stream: server* - `load_base`(サーバーの現在の読み込みレベル)、`random`(ランダムに生成された値)などのサーバーのステータスに関する情報。これらの情報は変更される可能性があります。 -* *Stream: transactions*、*Stream: transactions_proposed*、および*Stream: validations* - フィールドは返されません。 -* *Stream: ledger* - 手元にあるレジャーと現在の手数料体系に関する情報。`fee_base`(XRP単位のトランザクションの現行基本手数料)、`fee_ref`(手数料単位のトランザクションの現行基本手数料)、`ledger_hash`(最新の検証済みレジャーのハッシュ)、`reserve_base`(アカウントの最低必要準備金)などがあります。 -* `books` - フィールドはデフォルトで返されません。要求が`"snapshot": true`に設定されている場合、`offers`(オーダーブックを定義するオファー定義オブジェクトの配列)を返します。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noPermission` - 要求に`url`フィールドが指定されていますが、管理者として接続していません。 -* `unknownStream` - 要求の`streams`フィールドの1つ以上の要素が有効なストリーム名ではありません。 -* `malformedStream` - 要求の`streams`フィールドのフォーマットが適切ではありません。 -* `malformedAccount` - 要求の`accounts`または`accounts_proposed`フィールドのアドレスのいずれか1つが、適切なフォーマットのXRP Ledgerアドレスではありません。(**注記:** グローバルレジャーにまだエントリーのないアドレスのストリームをサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取るように _できます_ 。) -* `srcCurMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 -* `dstAmtMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 -* `dstIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 -* `badMarket` - `books` フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨とその通貨自体の交換オファーなど)。 - -特定のストリームをサブスクライブすると、サブスクライブを解除するか、WebSocket接続を閉じるまで、そのストリームに関する応答を定期的に受信します。これらの応答の内容は、サブスクライブしている内容に応じて異なります。以下に、いくつかの例を紹介します。 - -## レジャーストリーム - -`ledger`ストリームは、[コンセンサスプロセス](https://ripple.com/build/ripple-ledger-consensus-process/)で新しい検証済みレジャーが宣言されたときにのみ`ledgerClosed`メッセージを送信します。このメッセージはレジャーを識別し、そのレジャーの内容について何らかの情報を伝えます。 - -``` -{ - "type": "ledgerClosed", - "fee_base": 10, - "fee_ref": 10, - "ledger_hash": "687F604EF6B2F67319E8DCC8C66EF49D84D18A1E18F948421FC24D2C7C3DB464", - "ledger_index": 7125358, - "ledger_time": 455751310, - "reserve_base": 20000000, - "reserve_inc": 5000000, - "txn_count": 7, - "validated_ledgers": "32570-7125358" -} -``` - -レジャーストリームメッセージのフィールドは次のとおりです。 - -| `Field` | 型 | 説明 | -|:--------------------|:-----------------|:------------------------------------| -| `type` | 文字列 | `ledgerClosed` は、このメッセージがレジャーストリームからのものであることを示します。 | -| `fee_base` | 符号なし整数 | 「リファレンストランザクション」のコスト(XRPのdrop数)([トランザクションコスト](transaction-cost.html)を参照してください。レジャーに[SetFee疑似トランザクション](setfee.html)が記録されている場合、このレジャー以降のすべてのトランザクションに新しいトランザクションコストが適用されます。) | -| `fee_ref` | 符号なし整数 | 「リファレンストランザクション」のコスト(手数料単位) | -| `ledger_hash` | 文字列 | 閉鎖されたレジャーの一意のハッシュ(16進数) | -| `ledger_index` | 符号なし整数 | 閉鎖されたレジャーのシーケンス番号 | -| `ledger_time` | 符号なし整数 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | -| `reserve_base` | 符号なし整数 | アカウントに最低限必要とされる準備金(XRPのdrop数)。レジャーに[SetFee疑似トランザクション](setfee.html)が記録されている場合、このレジャー以降は新しい基本準備金が適用されます。 | -| `reserve_inc` | 符号なし整数 | アカウントが所有する各アイテムに、オファーやトラストラインなどが追加されたことによるアカウント準備金の増加。レジャーに[SetFee疑似トランザクション](setfee.html)が記録されている場合、このレジャー以降は新しい所有者準備金が適用されます。 | -| `txn_count` | 符号なし整数 | このレジャーに記録される新規トランザクションの数 | -| `validated_ledgers` | 文字列 | (省略される場合があります)サーバーで使用可能なレジャーの範囲。これは連続的ではない可能性があります。サーバーがネットワークに接続されていない場合や、サーバーが接続されていてもネットワークからレジャーをまだ取得していない場合は、このフィールドは返されません。 | - - -## 検証ストリーム - -[新規: rippled 0.29.0][] - -検証ストリームは、検証メッセージ(検証投票)を信頼するバリデータから受信するたびに、次のようなメッセージを送信します。 - -``` -{ - "type": "validationReceived", - "amendments":[ - "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", - "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", - "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", - "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490", - "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13" - ], - "base_fee":10, - "flags":2147483649, - "full":true, - "ledger_hash":"EC02890710AAA2B71221B0D560CFB22D64317C07B7406B02959AD84BAD33E602", - "ledger_index":"6", - "load_fee":256000, - "reserve_base":20000000, - "reserve_inc":5000000, - "signature":"3045022100E199B55643F66BC6B37DBC5E185321CF952FD35D13D9E8001EB2564FFB94A07602201746C9A4F7A93647131A2DEB03B76F05E426EC67A5A27D77F4FF2603B9A528E6", - "signing_time":515115322, - "validation_public_key":"n94Gnc6svmaPPRHUAyyib1gQUov8sYbjLoEwUBYPH39qHZXuo8ZT" -} -``` - -検証ストリームメッセージのフィールドは次のとおりです。 - -| `Field` | 型 | 説明 | -|:------------------------|:-----------------|:--------------------------------| -| `type` | 文字列 | 値`validationReceived`は、このメッセージが検証ストリームからであることを示します。 | -| `amendments` | 文字列の配列 | (省略される場合があります)このサーバーがプロトコルへの追加を求める[Amendment](amendments.html)。[新規: rippled 0.32.0][] | -| `base_fee` | 整数 | (省略される場合があります)サーバーが[手数料投票](fee-voting.html)による設定を希望するスケーリングされていないトランザクションコスト(`reference_fee` 値)。[新規: rippled 0.32.0][] | -| `flags` | 数値 | この検証メッセージに追加されるフラグのビットマスク。フラグ0x80000000は、検証の署名が完全に正規であることを示します。フラグ0x00000001は、完全な検証であることを示します。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。[新規: rippled 0.32.0][] | -| `full` | ブール値 | `true`の場合は、完全な検証です。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。[新規: rippled 0.32.0][] | -| `ledger_hash` | 文字列 | 提案されたレジャーの識別ハッシュを検証中です。 | -| `ledger_index` | 文字列 - 整数 | 提案されたレジャーの[レジャーインデックス][]。[新規: rippled 0.31.0][] | -| `load_fee` | 整数 | (省略される場合があります)このバリデータにより現在施行されているローカルの負荷スケーリングされたトランザクションコスト(手数料単位)。[新規: rippled 0.32.0][] | -| `reserve_base` | 整数 | (省略される場合があります)このバリデータが[手数料投票](fee-voting.html)による設定を希望する最低必要準備金(`account_reserve` 値)。[新規: rippled 0.32.0][] | -| `reserve_inc` | 整数 | (省略される場合があります)このバリデータが[手数料投票](fee-voting.html)による設定を希望する必要準備金(`owner_reserve` 値)の増分。[新規: rippled 0.32.0][] | -| `signature` | 文字列 | バリデータがこのレジャーへの投票に署名するときに使用する署名。 | -| `signing_time` | 数値 | この検証投票が署名された時刻([Rippleエポック以降の経過秒数][])。[新規: rippled 0.32.0][] | -| `validation_public_key` | 文字列 | バリデータがメッセージの署名に使用したキーペアの公開鍵(XRP Ledgerの[base58][]形式)。このフィールドは、メッセージを送信するバリデータを特定します。また`signature`の検証にも使用できます。 | - - -## トランザクションストリーム - -サブスクリプションの多くは、次のようなトランザクションに関するメッセージをもたらします。 - -* `transactions`ストリーム -* `transactions_proposed`ストリーム -* `accounts` サブスクリプション -* `accounts_proposed` サブスクリプション -* `book` (オーダーブック)サブスクリプション - -`transactions_proposed`ストリームは、厳密には`transactions`ストリームのスーパーセットです。このストリームにはすべての検証済みトランザクションと、検証済みレジャーにまだ記録されておらず、今後も記録される見込みのない提案されたトランザクションがいくつか記録されます。このような「処理中」のトランザクションはそのフィールドから判断できます。 - -* `validated`フィールドがないか、または値`false`が指定されている。 -* `meta`フィールドまたは`metadata`フィールドがない。 -* トランザクションがファイナライズされたレジャーバージョンを指定する`ledger_index`フィールドと`ledger_hash`フィールドの代わりに、現在これらのトランザクションに提案されているレジャーバージョンを指定する`ledger_current_index`フィールドが存在する。 - -上記に該当しない場合、`transactions_proposed`ストリームからのメッセージは`transactions`ストリームからのメッセージと同じです。 - -アカウントまたはオーダーブックを変更できるのはトランザクションだけであるため、特定の`accounts`または`books`をサブスクライブすることにより送信されるメッセージも、トランザクションメッセージの形式(`transactions`ストリームのメッセージと同じ形式)となります。唯一の異なる点は、監視中のアカウントまたはオーダーブックに影響するトランザクションに対するメッセージだけを受信することです。 - -`accounts_proposed`サブスクリプションも同様に機能しますが、このサブスクリプションには、`transactions_proposed`ストリームと同様、監視中のアカウントの未確定トランザクションも記録される点が異なります。 - -``` -{ - "status": "closed", - "type": "transaction", - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.", - "ledger_hash": "989AFBFD65D820C6BD85301B740F5D592F060668A90EEF5EC1815EBA27D58FE8", - "ledger_index": 7125442, - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "IndexPrevious": "0000000000000000", - "Owner": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", - "RootIndex": "ABD8CE2D1205D0C062876E9E1F3CBDC902ED8EF4E8D3D071B962C7ED0E113E68" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "0BBDEE7D0BE120F7BF27640B5245EBFE0C5FD5281988BA823C44477A70262A4D" - } - }, - { - "DeletedNode": { - "FinalFields": { - "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", - "BookDirectory": "892E892DC63D8F70DCF5C9ECF29394FF7DD3DC6F47DB8EB34A03920BFC5E99BE", - "BookNode": "0000000000000000", - "Flags": 0, - "OwnerNode": "000000000000006E", - "PreviousTxnID": "58A17D95770F8D07E08B81A85896F4032A328B6C2BDCDEC0A00F3EF3914DCF0A", - "PreviousTxnLgrSeq": 7125330, - "Sequence": 540691, - "TakerGets": "4401967683", - "TakerPays": { - "currency": "BTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.04424" - } - }, - "LedgerEntryType": "Offer", - "LedgerIndex": "386B7803A9210747941B0D079BB408F31ACB1CB98832184D0287A1CBF4FE6D00" - } - }, - { - "DeletedNode": { - "FinalFields": { - "ExchangeRate": "4A03920BFC5E99BE", - "Flags": 0, - "RootIndex": "892E892DC63D8F70DCF5C9ECF29394FF7DD3DC6F47DB8EB34A03920BFC5E99BE", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000004254430000000000", - "TakerPaysIssuer": "92D705968936C419CE614BF264B5EEB1CEA47FF4" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "892E892DC63D8F70DCF5C9ECF29394FF7DD3DC6F47DB8EB34A03920BFC5E99BE" - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", - "Balance": "11133297300", - "Flags": 0, - "OwnerCount": 9, - "Sequence": 540706 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "A6C2532E1008A513B3F822A92B8E5214BD0D413DC20AD3631C1A39AD6B36CD07", - "PreviousFields": { - "Balance": "11133297310", - "OwnerCount": 10, - "Sequence": 540705 - }, - "PreviousTxnID": "484D57DFC4E446DA83B4540305F0CE836D4E007361542EC12CC0FFB5F0A1BE3A", - "PreviousTxnLgrSeq": 7125358 - } - } - ], - "TransactionIndex": 1, - "TransactionResult": "tesSUCCESS" - }, - "transaction": { - "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 540691, - "Sequence": 540705, - "SigningPubKey": "030BB49C591C9CD65C945D4B78332F27633D7771E6CF4D4B942D26BA40748BB8B4", - "TransactionType": "OfferCancel", - "TxnSignature": "30450221008223604A383F3AED25D53CE7C874700619893A6EEE4336508312217850A9722302205E0614366E174F2DFF78B879F310DB0B3F6DA1967E52A32F65E25DCEC622CD68", - "date": 455751680, - "hash": "94CF924C774DFDBE474A2A7E40AEA70E7E15D130C8CBEF8AF1D2BE97A8269F14" - }, - "validated": true -} -``` - -トランザクションストリームメッセージには次のフィールドがあります。 - -| `Field` | 型 | 説明 | -|:------------------------|:-----------------|:--------------------------------| -| `type` | 文字列 | `transaction` は、トランザクションの通知であることを示します。この通知はさまざまなストリームから送信される可能性があります。 | -| `engine_result` | 文字列 | 文字列の[トランザクション結果コード](transaction-results.html) | -| `engine_result_code` | 数値 | 数値の[トランザクション応答コード](transaction-results.html)(該当する場合) | -| `engine_result_message` | 文字列 | 人間が読み取れる形式のトランザクション応答の説明 | -| `ledger_current_index` | 符号なし整数 | (検証済みトランザクションでは省略)このトランザクションが現在提案されている現行レジャーバージョンのシーケンス番号。 | -| `ledger_hash` | 文字列 | (未検証のトランザクションでは省略)このトランザクションが記録されているレジャーバージョンの一意のハッシュ(16進数) | -| `ledger_index` | 符号なし整数 | (未検証のトランザクションでは省略)このトランザクションが記録されているレジャーバージョンのシーケンス番号。 | -| `meta` | オブジェクト | (未検証のトランザクションでは省略)このトランザクションに関する各種メタデータ(影響するレジャーエントリーを含む) | -| `transaction` | オブジェクト | JSONフォーマットの[トランザクションの定義](transaction-formats.html)。 | -| `validated` | ブール値 | trueの場合、このトランザクションは検証済みレジャーに記録されてます。`transaction`ストリームからの応答は常に検証される必要があります。 | - - -## ピアステータスストリーム - -管理者専用の`peer_status`ストリームは、このサーバーが接続している他の`rippled`サーバーの活動に関する大量の情報、特にコンセンサスプロセスでのサーバーのステータスを報告します。 - -ピアステータスストリームメッセージの例: - -``` -{ - "action": "CLOSING_LEDGER", - "date": 508546525, - "ledger_hash": "4D4CD9CD543F0C1EF023CC457F5BEFEA59EEF73E4552542D40E7C4FA08D3C320", - "ledger_index": 18853106, - "ledger_index_max": 18853106, - "ledger_index_min": 18852082, - "type": "peerStatusChange" -} -``` - -ピアステータスストリームメッセージは、ピア`rippled`サーバーのステータスが変化したイベントを表します。これらのメッセージは、次のフィールドを持つJSONオブジェクトです。 - -| `Field` | 値 | 説明 | -|:-------------------|:-------|:-----------------------------------------------| -| `type` | 文字列 | `peerStatusChange` は、ピアステータスストリームからのメッセージであることを示します。 | -| `action` | 文字列 | このメッセージが送信される原因となったイベントのタイプ。有効な値については、[ピアステータスイベント](#ピアーステータスイベント)を参照してください。 | -| `date` | 数値 | このイベントが発生した時刻([Rippleエポック以降の経過秒数][]) | -| `ledger_hash` | 文字列 | (省略される場合があります)このメッセージに関連するレジャーバージョンの識別用[ハッシュ][]。 | -| `ledger_index` | 数値 | (省略される場合があります)このメッセージに関連するレジャーバージョンの[レジャーインデックス][]。 | -| `ledger_index_max` | 数値 | (省略される場合があります)ピアで現在使用可能な最大[レジャーインデックス][]。 | -| `ledger_index_min` | 数値 | (省略される場合があります)ピアで現在使用可能な最小[レジャーインデックス][]。 | - -### ピアステータスイベント - -ピアステータスストリームメッセージの`action`フィールドには次のいずれかの値が含まれます。 - -| `Value` | 意味 | -|:------------------|:---------------------------------------------------------| -| `CLOSING_LEDGER` | ピアがこの[レジャーインデックス][]のレジャーバージョンを閉鎖しました。この場合、通常はコンセンサスが間もなく開始されます。 | -| `ACCEPTED_LEDGER` | ピアがコンセンサスラウンドの結果としてこのレジャーバージョンを作成しました。**注記:** このレジャーが不変的に検証済みになるかどうかはまだ確実ではありません。 | -| `SWITCHED_LEDGER` | ピアは、ネットワークの他の部分に従っていないと結論付け、異なるレジャーバージョンに切り替えました。 | -| `LOST_SYNC` | ピアは検証済みのレジャーバージョンとコンセンサス処理中のレジャーバージョンの追跡でネットワークの他の部分に遅れをとりました。 | - - -## オーダーブックストリーム - -`books`フィールドを使用して1つ以上のオーダーブックをサブスクライブすると、これらのオーダーブックに影響するすべてのトランザクションを取得します。 - -オーダーブックストリームメッセージの例: - -``` -{ - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", - "ledger_hash": "08547DD866F099CCB3666F113116B7AA2DF520FA2E3011DD1FF9C9C04A6C7C3E", - "ledger_index": 18852105, - "meta": { - "AffectedNodes": [{ - "ModifiedNode": { - "FinalFields": { - "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", - "AccountTxnID": "D295E2BE50E3B78AED24790D7B9096996DAF43F095BF17DB83EEACC283D14050", - "Balance": "3070332374272", - "Flags": 0, - "OwnerCount": 23, - "RegularKey": "r9S56zu6QeJD5d8A7QMfLAeYavgB9dhaX4", - "Sequence": 12142921 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "2880A9B4FB90A306B576C2D532BFE390AB3904642647DCF739492AA244EF46D1", - "PreviousFields": { - "AccountTxnID": "3CA3422B0E42D76A7A677B0BA0BE72DFCD93676E0C80F8D2EB27C04BD8457A0F", - "Balance": "3070332385272", - "Sequence": 12142920 - }, - "PreviousTxnID": "3CA3422B0E42D76A7A677B0BA0BE72DFCD93676E0C80F8D2EB27C04BD8457A0F", - "PreviousTxnLgrSeq": 18852102 - } - }, { - "ModifiedNode": { - "FinalFields": { - "Flags": 0, - "IndexPrevious": "00000000000022D2", - "Owner": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", - "RootIndex": "F435FBBEC9654204D7151A01E686BAA8CB325A472D7B61C7916EA58B59355767" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "29A543B6681AD7FC8AFBD1386DAE7385F02F9B8C4756A467DF6834AB54BBC9DB" - } - }, { - "ModifiedNode": { - "FinalFields": { - "ExchangeRate": "4C1BA999A513EF78", - "Flags": 0, - "RootIndex": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78", - "TakerGetsCurrency": "0000000000000000000000000000000000000000", - "TakerGetsIssuer": "0000000000000000000000000000000000000000", - "TakerPaysCurrency": "0000000000000000000000005553440000000000", - "TakerPaysIssuer": "2ADB0B3959D60A6E6991F729E1918B7163925230" - }, - "LedgerEntryType": "DirectoryNode", - "LedgerIndex": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78" - } - }, { - "CreatedNode": { - "LedgerEntryType": "Offer", - "LedgerIndex": "92E235EE80D2B28A89BEE2C905D4545C2A004FD5D4097679C8A3FB25507FD9EB", - "NewFields": { - "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", - "BookDirectory": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78", - "Expiration": 508543674, - "OwnerNode": "00000000000022F4", - "Sequence": 12142920, - "TakerGets": "6537121438", - "TakerPays": { - "currency": "USD", - "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - "value": "50.9" - } - } - } - }, { - "DeletedNode": { - "FinalFields": { - "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", - "BookDirectory": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78", - "BookNode": "0000000000000000", - "Expiration": 508543133, - "Flags": 0, - "OwnerNode": "00000000000022F4", - "PreviousTxnID": "58B3279C2D56AAC3D9B06106E637C01E3D911E9D31E2FE4EA0D886AC9F4DEE1E", - "PreviousTxnLgrSeq": 18851945, - "Sequence": 12142889, - "TakerGets": "6537121438", - "TakerPays": { - "currency": "USD", - "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - "value": "50.9" - } - }, - "LedgerEntryType": "Offer", - "LedgerIndex": "D3436CE21925E1CB12C5C444963B47D7EA0CD9A0E387926DC76B23FE5CD1C15F" - } - }], - "TransactionIndex": 26, - "TransactionResult": "tesSUCCESS" - }, - "status": "closed", - "transaction": { - "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", - "Expiration": 508543674, - "Fee": "11000", - "Flags": 2147483648, - "LastLedgerSequence": 18852106, - "OfferSequence": 12142889, - "Sequence": 12142920, - "SigningPubKey": "034841BF24BD72C7CC371EBD87CCBF258D8ADB05C18DE207130364A97D8A3EA524", - "TakerGets": "6537121438", - "TakerPays": { - "currency": "USD", - "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", - "value": "50.9" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100B9AD678A773FB61F8F9B565713C80CBF187A2F9EB8E9CE0DAC7B839CA6F4B04C02200613D173A0636CD9BE13F2E3EBD13A16932B5B7D8A96BB5F6D561CA5CDBC4AD3", - "date": 508543090, - "hash": "D295E2BE50E3B78AED24790D7B9096996DAF43F095BF17DB83EEACC283D14050", - "owner_funds": "3070197374272" - }, - "type": "transaction", - "validated": true -} -``` - -オーダーブックストリームメッセージの形式は、[トランザクションストリームメッセージ](#トランザクションストリーム)と同様ですが、`OfferCreate`トランザクションに以下のフィールドも含まれている点が異なります。 - -| `Field` | 値 | 説明 | -|:--------------------------|:-------|:----------------------------------------| -| `transaction.owner_funds` | 文字列 | このOfferCreateトランザクションを送信する`Account`が、このトランザクション実行後に有する`TakerGets`通貨の金額。この通貨額が[凍結](freezes.html)されているかどうかはチェックされません。 | - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# subscribe +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Subscribe.cpp "Source") + +`subscribe`メソッドは、特定のイベントが発生した場合に、定期的に通知するようサーバーに要求します。 + +## 要求フォーマット +要求フォーマットの例: + + + +*アカウントのサブスクライブ* + +``` +{ + "id": "Example watch Bitstamp's hot wallet", + "command": "subscribe", + "accounts": ["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"] +} +``` + +*オーダーブックのサブスクライブ* + +``` +{ + "id": "Example subscribe to XRP/GateHub USD order book", + "command": "subscribe", + "books": [ + { + "taker_pays": { + "currency": "XRP" + }, + "taker_gets": { + "currency": "USD", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" + }, + "snapshot": true + } + ] +} +``` + +*レジャーストリームのサブスクライブ* + +``` +{ + "id": "Example watch for new validated ledgers", + "command": "subscribe", + "streams": ["ledger"] +} +``` + + + +[試してみる>](websocket-api-tool.html#subscribe) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:--------------------|:-------|:----------------------------------------------| +| `streams` | 配列 | _(省略可)_ 以下に説明する、サブスクライブする汎用ストリームの文字列名の配列。 | +| `accounts` | 配列 | _(省略可)_ 検証済みトランザクションを監視するアカウントの一意のアドレスを持つ配列。これらのアドレスはXRP Ledgerの[base58][]フォーマットで記述されている必要があります。サーバーは、1つ以上のアカウントに影響するすべてのトランザクションについて通知を送信します。 | +| `accounts_proposed` | 配列 | _(省略可)_`accounts`と同様ですが、まだファイナライズされていないトランザクションを含みます。 | +| `books` | 配列 | _(省略可)_ 以下に説明するとおり、更新の監視のために[オーダーブック](http://www.investopedia.com/terms/o/order-book.asp)を定義するオブジェクトの配列。 | +| `url` | 文字列 | (Websocketでは省略可、それ以外では必須)サーバーが各イベントのJSON-RPCコールバックを送信するURL。*管理者専用。* | +| `url_username` | 文字列 | _(省略可)_ コールバックURLで基本認証を行うためのユーザー名。 | +| `url_password` | 文字列 | _(省略可)_ コールバックURLで基本認証を行うためのパスワード。 | + +以下のパラメーターは廃止予定で、今後予告なしに削除される可能性があります。`user`, `password`, `rt_accounts` + +`streams`パラメーターは、以下のデフォルトの情報ストリームへのアクセスを可能にします。 + +* `server` - `rippled` サーバーのステータス(ネットワーク接続など)が変更されるたびにメッセージを送信します。 +* `ledger` - コンセンサスプロセスで新しい検証済みレジャーが宣言されるたびにメッセージを送信します。 +* `transactions` - 閉鎖済みレジャーにトランザクションが追加されるたびにメッセージを送信します。 +* `transactions_proposed` - 閉鎖済みレジャーにトランザクションが追加される場合や、検証済みレジャーにまだ追加されておらず、今後も追加される見込みのない一部のトランザクションが閉鎖済みレジャーに追加される場合に、メッセージを送信します。提案されたすべてのトランザクションが検証前に表示されるわけではありません。 + **注記:** 検証済みレジャーには[失敗したトランザクションも記録されます](transaction-results.html)。これは、このようなトランザクションにはスパム対策のトランザクション手数料が課されるためです。 +* `validations` - サーバーがバリデータを信頼しているか否かにかかわらず、サーバーが検証メッセージを受信するたびに、メッセージを送信します。(個々の`rippled`は、サーバーが少なくとも定数の信頼できるバリデータから検証メッセージを受信した時点で、レジャーが検証済みであると宣言します。) +* `peer_status` - **(管理者専用)** 接続しているピア`rippled`サーバーに関する情報(特にコンセンサスプロセスに関する情報)。 + +`books` 配列が指定されている場合、この配列の各要素は、以下のフィールドを持つオブジェクトです。 + +| `Field` | 型 | 説明 | +|:-------------|:--------|:----------------------------------------------------| +| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を[金額なしの通貨オブジェクト](basic-data-types.html#金額なしでの通貨の指定)として指定します。 | +| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を[金額なしの通貨オブジェクト](basic-data-types.html#金額なしでの通貨の指定)として指定します。 | +| `taker` | 文字列 | オファーを表示するパースペクティブとして使用する一意のアカウントアドレス(XRP Ledgerの[base58][]フォーマット)。(これはオファーの資金提供ステータスと手数料に影響します。) | +| `snapshot` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、更新の送信前にサブスクライブした時点でオーダーブックの現在の状態を一度返します。 | +| `both` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、オーダーブックの両サイドを返します。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": "Example watch Bitstamp's hot wallet", + "status": "success", + "type": "response", + "result": {} +} +``` + + + +応答は[標準フォーマット][]に従っています。応答に含まれるフィールドは、要求に指定されたサブスクリプションに応じて異なります。 + +* `accounts` および`accounts_proposed` - フィールドが返されません。 +* *Stream: server* - `load_base`(サーバーの現在の読み込みレベル)、`random`(ランダムに生成された値)などのサーバーのステータスに関する情報。これらの情報は変更される可能性があります。 +* *Stream: transactions*、*Stream: transactions_proposed*、および*Stream: validations* - フィールドは返されません。 +* *Stream: ledger* - 手元にあるレジャーと現在の手数料体系に関する情報。`fee_base`(XRP単位のトランザクションの現行基本手数料)、`fee_ref`(手数料単位のトランザクションの現行基本手数料)、`ledger_hash`(最新の検証済みレジャーのハッシュ)、`reserve_base`(アカウントの最低必要準備金)などがあります。 +* `books` - フィールドはデフォルトで返されません。要求が`"snapshot": true`に設定されている場合、`offers`(オーダーブックを定義するオファー定義オブジェクトの配列)を返します。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `noPermission` - 要求に`url`フィールドが指定されていますが、管理者として接続していません。 +* `unknownStream` - 要求の`streams`フィールドの1つ以上の要素が有効なストリーム名ではありません。 +* `malformedStream` - 要求の`streams`フィールドのフォーマットが適切ではありません。 +* `malformedAccount` - 要求の`accounts`または`accounts_proposed`フィールドのアドレスのいずれか1つが、適切なフォーマットのXRP Ledgerアドレスではありません。(**注記:** グローバルレジャーにまだエントリーのないアドレスのストリームをサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取るように _できます_ 。) +* `srcCurMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 +* `dstAmtMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 +* `srcIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 +* `dstIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 +* `badMarket` - `books` フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨とその通貨自体の交換オファーなど)。 + +特定のストリームをサブスクライブすると、サブスクライブを解除するか、WebSocket接続を閉じるまで、そのストリームに関する応答を定期的に受信します。これらの応答の内容は、サブスクライブしている内容に応じて異なります。以下に、いくつかの例を紹介します。 + +## レジャーストリーム + +`ledger`ストリームは、[コンセンサスプロセス](https://ripple.com/build/ripple-ledger-consensus-process/)で新しい検証済みレジャーが宣言されたときにのみ`ledgerClosed`メッセージを送信します。このメッセージはレジャーを識別し、そのレジャーの内容について何らかの情報を伝えます。 + +``` +{ + "type": "ledgerClosed", + "fee_base": 10, + "fee_ref": 10, + "ledger_hash": "687F604EF6B2F67319E8DCC8C66EF49D84D18A1E18F948421FC24D2C7C3DB464", + "ledger_index": 7125358, + "ledger_time": 455751310, + "reserve_base": 20000000, + "reserve_inc": 5000000, + "txn_count": 7, + "validated_ledgers": "32570-7125358" +} +``` + +レジャーストリームメッセージのフィールドは次のとおりです。 + +| `Field` | 型 | 説明 | +|:--------------------|:-----------------|:------------------------------------| +| `type` | 文字列 | `ledgerClosed` は、このメッセージがレジャーストリームからのものであることを示します。 | +| `fee_base` | 符号なし整数 | 「リファレンストランザクション」のコスト(XRPのdrop数)([トランザクションコスト](transaction-cost.html)を参照してください。レジャーに[SetFee疑似トランザクション](setfee.html)が記録されている場合、このレジャー以降のすべてのトランザクションに新しいトランザクションコストが適用されます。) | +| `fee_ref` | 符号なし整数 | 「リファレンストランザクション」のコスト(手数料単位) | +| `ledger_hash` | 文字列 | 閉鎖されたレジャーの一意のハッシュ(16進数) | +| `ledger_index` | 符号なし整数 | 閉鎖されたレジャーのシーケンス番号 | +| `ledger_time` | 符号なし整数 | レジャーが閉鎖された時刻([Rippleエポック以降の経過秒数][]) | +| `reserve_base` | 符号なし整数 | アカウントに最低限必要とされる準備金(XRPのdrop数)。レジャーに[SetFee疑似トランザクション](setfee.html)が記録されている場合、このレジャー以降は新しい基本準備金が適用されます。 | +| `reserve_inc` | 符号なし整数 | アカウントが所有する各アイテムに、オファーやトラストラインなどが追加されたことによるアカウント準備金の増加。レジャーに[SetFee疑似トランザクション](setfee.html)が記録されている場合、このレジャー以降は新しい所有者準備金が適用されます。 | +| `txn_count` | 符号なし整数 | このレジャーに記録される新規トランザクションの数 | +| `validated_ledgers` | 文字列 | (省略される場合があります)サーバーで使用可能なレジャーの範囲。これは連続的ではない可能性があります。サーバーがネットワークに接続されていない場合や、サーバーが接続されていてもネットワークからレジャーをまだ取得していない場合は、このフィールドは返されません。 | + + +## 検証ストリーム + +[新規: rippled 0.29.0][] + +検証ストリームは、検証メッセージ(検証投票)を信頼するバリデータから受信するたびに、次のようなメッセージを送信します。 + +``` +{ + "type": "validationReceived", + "amendments":[ + "42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE", + "4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373", + "6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC", + "C1B8D934087225F509BEB5A8EC24447854713EE447D277F69545ABFA0E0FD490", + "DA1BD556B42D85EA9C84066D028D355B52416734D3283F85E216EA5DA6DB7E13" + ], + "base_fee":10, + "flags":2147483649, + "full":true, + "ledger_hash":"EC02890710AAA2B71221B0D560CFB22D64317C07B7406B02959AD84BAD33E602", + "ledger_index":"6", + "load_fee":256000, + "reserve_base":20000000, + "reserve_inc":5000000, + "signature":"3045022100E199B55643F66BC6B37DBC5E185321CF952FD35D13D9E8001EB2564FFB94A07602201746C9A4F7A93647131A2DEB03B76F05E426EC67A5A27D77F4FF2603B9A528E6", + "signing_time":515115322, + "validation_public_key":"n94Gnc6svmaPPRHUAyyib1gQUov8sYbjLoEwUBYPH39qHZXuo8ZT" +} +``` + +検証ストリームメッセージのフィールドは次のとおりです。 + +| `Field` | 型 | 説明 | +|:------------------------|:-----------------|:--------------------------------| +| `type` | 文字列 | 値`validationReceived`は、このメッセージが検証ストリームからであることを示します。 | +| `amendments` | 文字列の配列 | (省略される場合があります)このサーバーがプロトコルへの追加を求める[Amendment](amendments.html)。[新規: rippled 0.32.0][] | +| `base_fee` | 整数 | (省略される場合があります)サーバーが[手数料投票](fee-voting.html)による設定を希望するスケーリングされていないトランザクションコスト(`reference_fee` 値)。[新規: rippled 0.32.0][] | +| `flags` | 数値 | この検証メッセージに追加されるフラグのビットマスク。フラグ0x80000000は、検証の署名が完全に正規であることを示します。フラグ0x00000001は、完全な検証であることを示します。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。[新規: rippled 0.32.0][] | +| `full` | ブール値 | `true`の場合は、完全な検証です。それ以外の場合は部分検証です。部分検証とは、特定のレジャーに対する投票ではありません。部分検証は、バリデータがオンラインであるがコンセンサスにまだ同意していないことを示します。[新規: rippled 0.32.0][] | +| `ledger_hash` | 文字列 | 提案されたレジャーの識別ハッシュを検証中です。 | +| `ledger_index` | 文字列 - 整数 | 提案されたレジャーの[レジャーインデックス][]。[新規: rippled 0.31.0][] | +| `load_fee` | 整数 | (省略される場合があります)このバリデータにより現在施行されているローカルの負荷スケーリングされたトランザクションコスト(手数料単位)。[新規: rippled 0.32.0][] | +| `reserve_base` | 整数 | (省略される場合があります)このバリデータが[手数料投票](fee-voting.html)による設定を希望する最低必要準備金(`account_reserve` 値)。[新規: rippled 0.32.0][] | +| `reserve_inc` | 整数 | (省略される場合があります)このバリデータが[手数料投票](fee-voting.html)による設定を希望する必要準備金(`owner_reserve` 値)の増分。[新規: rippled 0.32.0][] | +| `signature` | 文字列 | バリデータがこのレジャーへの投票に署名するときに使用する署名。 | +| `signing_time` | 数値 | この検証投票が署名された時刻([Rippleエポック以降の経過秒数][])。[新規: rippled 0.32.0][] | +| `validation_public_key` | 文字列 | バリデータがメッセージの署名に使用したキーペアの公開鍵(XRP Ledgerの[base58][]形式)。このフィールドは、メッセージを送信するバリデータを特定します。また`signature`の検証にも使用できます。 | + + +## トランザクションストリーム + +サブスクリプションの多くは、次のようなトランザクションに関するメッセージをもたらします。 + +* `transactions`ストリーム +* `transactions_proposed`ストリーム +* `accounts` サブスクリプション +* `accounts_proposed` サブスクリプション +* `book` (オーダーブック)サブスクリプション + +`transactions_proposed`ストリームは、厳密には`transactions`ストリームのスーパーセットです。このストリームにはすべての検証済みトランザクションと、検証済みレジャーにまだ記録されておらず、今後も記録される見込みのない提案されたトランザクションがいくつか記録されます。このような「処理中」のトランザクションはそのフィールドから判断できます。 + +* `validated`フィールドがないか、または値`false`が指定されている。 +* `meta`フィールドまたは`metadata`フィールドがない。 +* トランザクションがファイナライズされたレジャーバージョンを指定する`ledger_index`フィールドと`ledger_hash`フィールドの代わりに、現在これらのトランザクションに提案されているレジャーバージョンを指定する`ledger_current_index`フィールドが存在する。 + +上記に該当しない場合、`transactions_proposed`ストリームからのメッセージは`transactions`ストリームからのメッセージと同じです。 + +アカウントまたはオーダーブックを変更できるのはトランザクションだけであるため、特定の`accounts`または`books`をサブスクライブすることにより送信されるメッセージも、トランザクションメッセージの形式(`transactions`ストリームのメッセージと同じ形式)となります。唯一の異なる点は、監視中のアカウントまたはオーダーブックに影響するトランザクションに対するメッセージだけを受信することです。 + +`accounts_proposed`サブスクリプションも同様に機能しますが、このサブスクリプションには、`transactions_proposed`ストリームと同様、監視中のアカウントの未確定トランザクションも記録される点が異なります。 + +``` +{ + "status": "closed", + "type": "transaction", + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.", + "ledger_hash": "989AFBFD65D820C6BD85301B740F5D592F060668A90EEF5EC1815EBA27D58FE8", + "ledger_index": 7125442, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "IndexPrevious": "0000000000000000", + "Owner": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", + "RootIndex": "ABD8CE2D1205D0C062876E9E1F3CBDC902ED8EF4E8D3D071B962C7ED0E113E68" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "0BBDEE7D0BE120F7BF27640B5245EBFE0C5FD5281988BA823C44477A70262A4D" + } + }, + { + "DeletedNode": { + "FinalFields": { + "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", + "BookDirectory": "892E892DC63D8F70DCF5C9ECF29394FF7DD3DC6F47DB8EB34A03920BFC5E99BE", + "BookNode": "0000000000000000", + "Flags": 0, + "OwnerNode": "000000000000006E", + "PreviousTxnID": "58A17D95770F8D07E08B81A85896F4032A328B6C2BDCDEC0A00F3EF3914DCF0A", + "PreviousTxnLgrSeq": 7125330, + "Sequence": 540691, + "TakerGets": "4401967683", + "TakerPays": { + "currency": "BTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.04424" + } + }, + "LedgerEntryType": "Offer", + "LedgerIndex": "386B7803A9210747941B0D079BB408F31ACB1CB98832184D0287A1CBF4FE6D00" + } + }, + { + "DeletedNode": { + "FinalFields": { + "ExchangeRate": "4A03920BFC5E99BE", + "Flags": 0, + "RootIndex": "892E892DC63D8F70DCF5C9ECF29394FF7DD3DC6F47DB8EB34A03920BFC5E99BE", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000004254430000000000", + "TakerPaysIssuer": "92D705968936C419CE614BF264B5EEB1CEA47FF4" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "892E892DC63D8F70DCF5C9ECF29394FF7DD3DC6F47DB8EB34A03920BFC5E99BE" + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", + "Balance": "11133297300", + "Flags": 0, + "OwnerCount": 9, + "Sequence": 540706 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "A6C2532E1008A513B3F822A92B8E5214BD0D413DC20AD3631C1A39AD6B36CD07", + "PreviousFields": { + "Balance": "11133297310", + "OwnerCount": 10, + "Sequence": 540705 + }, + "PreviousTxnID": "484D57DFC4E446DA83B4540305F0CE836D4E007361542EC12CC0FFB5F0A1BE3A", + "PreviousTxnLgrSeq": 7125358 + } + } + ], + "TransactionIndex": 1, + "TransactionResult": "tesSUCCESS" + }, + "transaction": { + "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 540691, + "Sequence": 540705, + "SigningPubKey": "030BB49C591C9CD65C945D4B78332F27633D7771E6CF4D4B942D26BA40748BB8B4", + "TransactionType": "OfferCancel", + "TxnSignature": "30450221008223604A383F3AED25D53CE7C874700619893A6EEE4336508312217850A9722302205E0614366E174F2DFF78B879F310DB0B3F6DA1967E52A32F65E25DCEC622CD68", + "date": 455751680, + "hash": "94CF924C774DFDBE474A2A7E40AEA70E7E15D130C8CBEF8AF1D2BE97A8269F14" + }, + "validated": true +} +``` + +トランザクションストリームメッセージには次のフィールドがあります。 + +| `Field` | 型 | 説明 | +|:------------------------|:-----------------|:--------------------------------| +| `type` | 文字列 | `transaction` は、トランザクションの通知であることを示します。この通知はさまざまなストリームから送信される可能性があります。 | +| `engine_result` | 文字列 | 文字列の[トランザクション結果コード](transaction-results.html) | +| `engine_result_code` | 数値 | 数値の[トランザクション応答コード](transaction-results.html)(該当する場合) | +| `engine_result_message` | 文字列 | 人間が読み取れる形式のトランザクション応答の説明 | +| `ledger_current_index` | 符号なし整数 | (検証済みトランザクションでは省略)このトランザクションが現在提案されている現行レジャーバージョンのシーケンス番号。 | +| `ledger_hash` | 文字列 | (未検証のトランザクションでは省略)このトランザクションが記録されているレジャーバージョンの一意のハッシュ(16進数) | +| `ledger_index` | 符号なし整数 | (未検証のトランザクションでは省略)このトランザクションが記録されているレジャーバージョンのシーケンス番号。 | +| `meta` | オブジェクト | (未検証のトランザクションでは省略)このトランザクションに関する各種メタデータ(影響するレジャーエントリーを含む) | +| `transaction` | オブジェクト | JSONフォーマットの[トランザクションの定義](transaction-formats.html)。 | +| `validated` | ブール値 | trueの場合、このトランザクションは検証済みレジャーに記録されてます。`transaction`ストリームからの応答は常に検証される必要があります。 | + + +## ピアステータスストリーム + +管理者専用の`peer_status`ストリームは、このサーバーが接続している他の`rippled`サーバーの活動に関する大量の情報、特にコンセンサスプロセスでのサーバーのステータスを報告します。 + +ピアステータスストリームメッセージの例: + +``` +{ + "action": "CLOSING_LEDGER", + "date": 508546525, + "ledger_hash": "4D4CD9CD543F0C1EF023CC457F5BEFEA59EEF73E4552542D40E7C4FA08D3C320", + "ledger_index": 18853106, + "ledger_index_max": 18853106, + "ledger_index_min": 18852082, + "type": "peerStatusChange" +} +``` + +ピアステータスストリームメッセージは、ピア`rippled`サーバーのステータスが変化したイベントを表します。これらのメッセージは、次のフィールドを持つJSONオブジェクトです。 + +| `Field` | 値 | 説明 | +|:-------------------|:-------|:-----------------------------------------------| +| `type` | 文字列 | `peerStatusChange` は、ピアステータスストリームからのメッセージであることを示します。 | +| `action` | 文字列 | このメッセージが送信される原因となったイベントのタイプ。有効な値については、[ピアステータスイベント](#ピアステータスイベント)を参照してください。 | +| `date` | 数値 | このイベントが発生した時刻([Rippleエポック以降の経過秒数][]) | +| `ledger_hash` | 文字列 | (省略される場合があります)このメッセージに関連するレジャーバージョンの識別用[ハッシュ][]。 | +| `ledger_index` | 数値 | (省略される場合があります)このメッセージに関連するレジャーバージョンの[レジャーインデックス][]。 | +| `ledger_index_max` | 数値 | (省略される場合があります)ピアで現在使用可能な最大[レジャーインデックス][]。 | +| `ledger_index_min` | 数値 | (省略される場合があります)ピアで現在使用可能な最小[レジャーインデックス][]。 | + +### ピアステータスイベント + +ピアステータスストリームメッセージの`action`フィールドには次のいずれかの値が含まれます。 + +| `Value` | 意味 | +|:------------------|:---------------------------------------------------------| +| `CLOSING_LEDGER` | ピアがこの[レジャーインデックス][]のレジャーバージョンを閉鎖しました。この場合、通常はコンセンサスが間もなく開始されます。 | +| `ACCEPTED_LEDGER` | ピアがコンセンサスラウンドの結果としてこのレジャーバージョンを作成しました。**注記:** このレジャーが不変的に検証済みになるかどうかはまだ確実ではありません。 | +| `SWITCHED_LEDGER` | ピアは、ネットワークの他の部分に従っていないと結論付け、異なるレジャーバージョンに切り替えました。 | +| `LOST_SYNC` | ピアは検証済みのレジャーバージョンとコンセンサス処理中のレジャーバージョンの追跡でネットワークの他の部分に遅れをとりました。 | + + +## オーダーブックストリーム + +`books`フィールドを使用して1つ以上のオーダーブックをサブスクライブすると、これらのオーダーブックに影響するすべてのトランザクションを取得します。 + +オーダーブックストリームメッセージの例: + +``` +{ + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "ledger_hash": "08547DD866F099CCB3666F113116B7AA2DF520FA2E3011DD1FF9C9C04A6C7C3E", + "ledger_index": 18852105, + "meta": { + "AffectedNodes": [{ + "ModifiedNode": { + "FinalFields": { + "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", + "AccountTxnID": "D295E2BE50E3B78AED24790D7B9096996DAF43F095BF17DB83EEACC283D14050", + "Balance": "3070332374272", + "Flags": 0, + "OwnerCount": 23, + "RegularKey": "r9S56zu6QeJD5d8A7QMfLAeYavgB9dhaX4", + "Sequence": 12142921 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "2880A9B4FB90A306B576C2D532BFE390AB3904642647DCF739492AA244EF46D1", + "PreviousFields": { + "AccountTxnID": "3CA3422B0E42D76A7A677B0BA0BE72DFCD93676E0C80F8D2EB27C04BD8457A0F", + "Balance": "3070332385272", + "Sequence": 12142920 + }, + "PreviousTxnID": "3CA3422B0E42D76A7A677B0BA0BE72DFCD93676E0C80F8D2EB27C04BD8457A0F", + "PreviousTxnLgrSeq": 18852102 + } + }, { + "ModifiedNode": { + "FinalFields": { + "Flags": 0, + "IndexPrevious": "00000000000022D2", + "Owner": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", + "RootIndex": "F435FBBEC9654204D7151A01E686BAA8CB325A472D7B61C7916EA58B59355767" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "29A543B6681AD7FC8AFBD1386DAE7385F02F9B8C4756A467DF6834AB54BBC9DB" + } + }, { + "ModifiedNode": { + "FinalFields": { + "ExchangeRate": "4C1BA999A513EF78", + "Flags": 0, + "RootIndex": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78", + "TakerGetsCurrency": "0000000000000000000000000000000000000000", + "TakerGetsIssuer": "0000000000000000000000000000000000000000", + "TakerPaysCurrency": "0000000000000000000000005553440000000000", + "TakerPaysIssuer": "2ADB0B3959D60A6E6991F729E1918B7163925230" + }, + "LedgerEntryType": "DirectoryNode", + "LedgerIndex": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78" + } + }, { + "CreatedNode": { + "LedgerEntryType": "Offer", + "LedgerIndex": "92E235EE80D2B28A89BEE2C905D4545C2A004FD5D4097679C8A3FB25507FD9EB", + "NewFields": { + "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", + "BookDirectory": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78", + "Expiration": 508543674, + "OwnerNode": "00000000000022F4", + "Sequence": 12142920, + "TakerGets": "6537121438", + "TakerPays": { + "currency": "USD", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", + "value": "50.9" + } + } + } + }, { + "DeletedNode": { + "FinalFields": { + "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", + "BookDirectory": "79C54A4EBD69AB2EADCE313042F36092BE432423CC6A4F784C1BA999A513EF78", + "BookNode": "0000000000000000", + "Expiration": 508543133, + "Flags": 0, + "OwnerNode": "00000000000022F4", + "PreviousTxnID": "58B3279C2D56AAC3D9B06106E637C01E3D911E9D31E2FE4EA0D886AC9F4DEE1E", + "PreviousTxnLgrSeq": 18851945, + "Sequence": 12142889, + "TakerGets": "6537121438", + "TakerPays": { + "currency": "USD", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", + "value": "50.9" + } + }, + "LedgerEntryType": "Offer", + "LedgerIndex": "D3436CE21925E1CB12C5C444963B47D7EA0CD9A0E387926DC76B23FE5CD1C15F" + } + }], + "TransactionIndex": 26, + "TransactionResult": "tesSUCCESS" + }, + "status": "closed", + "transaction": { + "Account": "rfCFLzNJYvvnoGHWQYACmJpTgkLUaugLEw", + "Expiration": 508543674, + "Fee": "11000", + "Flags": 2147483648, + "LastLedgerSequence": 18852106, + "OfferSequence": 12142889, + "Sequence": 12142920, + "SigningPubKey": "034841BF24BD72C7CC371EBD87CCBF258D8ADB05C18DE207130364A97D8A3EA524", + "TakerGets": "6537121438", + "TakerPays": { + "currency": "USD", + "issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", + "value": "50.9" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100B9AD678A773FB61F8F9B565713C80CBF187A2F9EB8E9CE0DAC7B839CA6F4B04C02200613D173A0636CD9BE13F2E3EBD13A16932B5B7D8A96BB5F6D561CA5CDBC4AD3", + "date": 508543090, + "hash": "D295E2BE50E3B78AED24790D7B9096996DAF43F095BF17DB83EEACC283D14050", + "owner_funds": "3070197374272" + }, + "type": "transaction", + "validated": true +} +``` + +オーダーブックストリームメッセージの形式は、[トランザクションストリームメッセージ](#トランザクションストリーム)と同様ですが、`OfferCreate`トランザクションに以下のフィールドも含まれている点が異なります。 + +| `Field` | 値 | 説明 | +|:--------------------------|:-------|:----------------------------------------| +| `transaction.owner_funds` | 文字列 | このOfferCreateトランザクションを送信する`Account`が、このトランザクション実行後に有する`TakerGets`通貨の金額。この通貨額が[凍結](freezes.html)されているかどうかはチェックされません。 | + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/subscription-methods/unsubscribe.ja.md b/content/references/rippled-api/public-rippled-methods/subscription-methods/unsubscribe.ja.md index 9e51cc3db8..b50048144f 100644 --- a/content/references/rippled-api/public-rippled-methods/subscription-methods/unsubscribe.ja.md +++ b/content/references/rippled-api/public-rippled-methods/subscription-methods/unsubscribe.ja.md @@ -1,95 +1,95 @@ -# unsubscribe -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Unsubscribe.cpp "Source") - -`unsubscribe`コマンドはサーバーに対して、特定のサブスクリプションまたは一連のサブスクリプションへのメッセージ送信の停止を指示します。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":"Unsubscribe a lot of stuff", - "command":"unsubscribe", - "streams":["ledger","server","transactions","transactions_proposed"], - "accounts":["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], - "accounts_proposed":["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], - "books":[ - { - "taker_pays":{ - "currency":"XRP" - }, - "taker_gets":{ - "currency":"USD", - "issuer":"rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV" - }, - "both": true - } - ] -} -``` - - - -[試してみる >](websocket-api-tool.html#unsubscribe) - -この要求のパラメーターは、[subscribeメソッド][]のパラメーターとほぼ同様の方法で指定されますが、終了するサブスクリプションを定義するために使用される点が異なります。これらのパラメーターを以下に示します。 - -| `Field` | 型 | 説明 | -|:--------------------|:------|:-----------------------------------------------| -| `streams` | 配列 | _(省略可)_ サブスクライブを解除する汎用ストリームの文字列名の配列(`ledger`、`server`、`transactions`、`transactions_proposed`など)。 | -| `accounts` | 配列 | _(省略可)_ 更新の受信を停止する一意のアカウントアドレスの配列(XRP Ledgerの[base58][]フォーマット)。(以前にこれらのアカウントをサブスクライブしていた場合にのみ、メッセージが停止されます。一般のトランザクションストリームからアカウントを除外する目的では使用できません。) | -| `accounts_proposed` | 配列 | _(省略可)_`accounts`と同様ですが、未検証のトランザクションを含む`accounts_proposed`サブスクリプションを対象としています。 | -| `books` | 配列 | _(省略可)_ 以下に説明するように、サブスクライブ解除するオーダーブックを定義するオブジェクトの配列。 | - -`rt_accounts`パラメーター、`url`パラメーター、`rt_transactions`ストリーム名は廃止予定であり、今後予告なしに削除される可能性があります。 - -`books`配列のオブジェクトは、subscribeのオブジェクトと同様に定義されますが、一部のフィールドが含まれていない点が異なります。このオブジェクトのフィールドを次に示します。 - -| `Field` | 型 | 説明 | -|:-------------|:--------|:----------------------------------------------------| -| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][Currency Amount]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | -| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を、[通貨額][Currency Amount]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | -| `both` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、オーダーブックの両サイドからサブスクリプションを削除します。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":"Unsubscribe a lot of stuff", - "result":{}, - "status":"success", - "type":"response" -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果にフィールドが含まれません。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noPermission` - 要求に`url`フィールドが指定されていますが、管理者として接続していません。 -* `malformedStream` - 要求の`streams`フィールドのフォーマットが適切ではありません。 -* `malformedAccount` - 要求の`accounts`または`accounts_proposed`フィールドのアドレスの1つが、適切なフォーマットのXRP Ledgerアドレスではありません。 - * **注記:** グローバルレジャーにエントリーがまだ作成されていないアドレスのストリームをサブスクライブ _できます_ 。このようにサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取ることができます。 -* `srcCurMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 -* `dstAmtMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 -* `srcIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 -* `dstIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 -* `badMarket` - `books` フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# unsubscribe +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Unsubscribe.cpp "Source") + +`unsubscribe`コマンドはサーバーに対して、特定のサブスクリプションまたは一連のサブスクリプションへのメッセージ送信の停止を指示します。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":"Unsubscribe a lot of stuff", + "command":"unsubscribe", + "streams":["ledger","server","transactions","transactions_proposed"], + "accounts":["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], + "accounts_proposed":["rrpNnNLKrartuEqfJGpqyDwPj1AFPg9vn1"], + "books":[ + { + "taker_pays":{ + "currency":"XRP" + }, + "taker_gets":{ + "currency":"USD", + "issuer":"rUQTpMqAF5jhykj4FExVeXakrZpiKF6cQV" + }, + "both": true + } + ] +} +``` + + + +[試してみる >](websocket-api-tool.html#unsubscribe) + +この要求のパラメーターは、[subscribeメソッド][]のパラメーターとほぼ同様の方法で指定されますが、終了するサブスクリプションを定義するために使用される点が異なります。これらのパラメーターを以下に示します。 + +| `Field` | 型 | 説明 | +|:--------------------|:------|:-----------------------------------------------| +| `streams` | 配列 | _(省略可)_ サブスクライブを解除する汎用ストリームの文字列名の配列(`ledger`、`server`、`transactions`、`transactions_proposed`など)。 | +| `accounts` | 配列 | _(省略可)_ 更新の受信を停止する一意のアカウントアドレスの配列(XRP Ledgerの[base58][]フォーマット)。(以前にこれらのアカウントをサブスクライブしていた場合にのみ、メッセージが停止されます。一般のトランザクションストリームからアカウントを除外する目的では使用できません。) | +| `accounts_proposed` | 配列 | _(省略可)_`accounts`と同様ですが、未検証のトランザクションを含む`accounts_proposed`サブスクリプションを対象としています。 | +| `books` | 配列 | _(省略可)_ 以下に説明するように、サブスクライブ解除するオーダーブックを定義するオブジェクトの配列。 | + +`rt_accounts`パラメーター、`url`パラメーター、`rt_transactions`ストリーム名は廃止予定であり、今後予告なしに削除される可能性があります。 + +`books`配列のオブジェクトは、subscribeのオブジェクトと同様に定義されますが、一部のフィールドが含まれていない点が異なります。このオブジェクトのフィールドを次に示します。 + +| `Field` | 型 | 説明 | +|:-------------|:--------|:----------------------------------------------------| +| `taker_gets` | オブジェクト | オファーを受諾するアカウントが受け取る通貨を、[通貨額][Currency Amount]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | +| `taker_pays` | オブジェクト | オファーを受諾するアカウントが支払う通貨を、[通貨額][Currency Amount]と同様、`currency`フィールドと`issuer`フィールドを持つオブジェクトとして指定します(XRPの場合はissuerを省略)。 | +| `both` | ブール値 | (省略可、デフォルトではfalse)trueの場合は、オーダーブックの両サイドからサブスクリプションを削除します。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":"Unsubscribe a lot of stuff", + "result":{}, + "status":"success", + "type":"response" +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果にフィールドが含まれません。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `noPermission` - 要求に`url`フィールドが指定されていますが、管理者として接続していません。 +* `malformedStream` - 要求の`streams`フィールドのフォーマットが適切ではありません。 +* `malformedAccount` - 要求の`accounts`または`accounts_proposed`フィールドのアドレスの1つが、適切なフォーマットのXRP Ledgerアドレスではありません。 + * **注記:** グローバルレジャーにエントリーがまだ作成されていないアドレスのストリームをサブスクライブ _できます_ 。このようにサブスクライブして、そのアドレスに資金が供給されたらメッセージを受け取ることができます。 +* `srcCurMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドのフォーマットが適切ではありません。 +* `dstAmtMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドのフォーマットが適切ではありません。 +* `srcIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_pays`サブフィールドの`issuer`フィールドが無効です。 +* `dstIsrMalformed` - 要求の`books`フィールドの1つ以上の`taker_gets`サブフィールドの`issuer`フィールドが無効です。 +* `badMarket` - `books` フィールドに指定されている1つ以上のオーダーブックが存在していません(ある通貨をその通貨自体と交換するオファーなど)。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/transaction-methods/sign.ja.md b/content/references/rippled-api/public-rippled-methods/transaction-methods/sign.ja.md index d43a5a91e3..8f87c5f857 100644 --- a/content/references/rippled-api/public-rippled-methods/transaction-methods/sign.ja.md +++ b/content/references/rippled-api/public-rippled-methods/transaction-methods/sign.ja.md @@ -1,223 +1,223 @@ -# sign -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/SignHandler.cpp "ソース") - -`sign`メソッドは[JSONフォーマットのトランザクション](transaction-formats.html)とシークレットキーを受け取り、トランザクションの署名済みバイナリー表現を返します。結果は、同一のトランザクションJSONとシークレットキーを渡した場合も常に異なります。マルチ署名済みトランザクションに署名を付与する場合は、代わりに[sign_forメソッド][]を使用します。 - -{% include '_snippets/public-signing-note.md' %} - - -**注意:** 独自の`rippled`サーバーを運用している場合を除き、このコマンドを使用するのではなく、[RippleAPIを使用したローカル署名](rippleapi-reference.html#sign)を実行してください。信用できないサーバーが、トランザクションへの署名前にトランザクションに変更を加えたり、シークレットキーを悪用して、トランザクションの発行元であるかのように任意の追加的なトランザクションに署名したりするおそれがあります。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "sign", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - }, - "secret" : "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 -} -``` - -*JSON-RPC* - -``` -{ - "method": "sign", - "params": [ - { - "offline": false, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "TransactionType": "Payment" - }, - "fee_mult_max": 1000 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: sign secret tx_json [offline] -rippled sign s████████████████████████████ '{"TransactionType": "Payment", "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "Amount": { "currency": "USD", "value": "1", "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Sequence": 360, "Fee": "10000"}' offline -``` - - - -[試してみる>](websocket-api-tool.html#sign) - -トランザクションに署名するには、[トランザクションを承認](transaction-basics.html#取引の承認)できるシークレットキーを提供する必要があります。これを行うには、以下の方法があります。 - -* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 -* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します(コマンドライン構文ではサポートされません)。 - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:--------|:--------------------------------------------------| -| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](transaction-formats.html) | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | -| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | -| `key_type` | 文字列 | _(省略可)_ この要求で提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | -| `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | -| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | -| `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)[自動的に提供される`Fee`フィールド](transaction-common-fields.html#自動入力可能なフィールド)の上限値を設定します。現在の[トランザクションコストの負荷の乗数](transaction-cost.html#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](transaction-cost.html))を指定した場合は無視されます。 | -| `fee_div_max` | 整数 | (省略可。デフォルトは1)現在の[トランザクションコストの負荷の乗数](transaction-cost.html#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](transaction-cost.html))を指定した場合は無視されます。[新規: rippled 0.30.1][] | - -### 自動入力可能なフィールド - -`tx_json`([トランザクションオブジェクト](transaction-formats.html))の特定のフィールドを省略すると、サーバーは自動的に入力しようとします。要求の`offline`を`true`と指定しない限り、サーバーは署名前に以下のフィールドを提供します。 - -* `Sequence` - サーバーは、送信者のアカウント情報にある次のシーケンス番号を自動的に使用します。 - * **注意:** アカウントの次のシーケンス番号は、このトランザクションが適用されるまで増分されません。トランザクションの送信および個々のトランザクションへの応答を待たずに複数のトランザクションに署名する場合は、最初のトランザクション以降の各トランザクションについて、正しいシーケンス番号を手動で提供する必要があります。 -* `Fee` - `Fee`パラメーターを省略した場合、サーバーは適切なトランザクションコストを自動的に入力しようとします。本番環境のXRP Ledgerでは、適切な`fee_mult_max`値を提供しない限り、この処理は`rpcHIGH_FEE`エラーで失敗します。 - * `fee_mult_max`パラメーターと`fee_div_max`パラメーターは、[リファレンストランザクションコスト](transaction-cost.html#referenceトランザクションコスト)に適用される負荷スケーリング乗数によって、自動的に提供されるトランザクションコストの上限値を設定します。デフォルト設定では、自動的に提供される値が10×の乗数より大きい場合、エラーが返されます。ただし、本番環境のXRP Ledgerでは、[1000×の負荷乗数を使用することが一般的](transaction-cost.html#現在のトランザクションコスト)です。 - * コマンドライン構文では、`fee_mult_max`および`fee_div_max`はサポートされません。本番環境のXRP Ledgerの場合は、`Fee`値を提供する必要があります。 - * **注意:** 悪意のあるサーバーは、`fee_mult_max`や`fee_div_max`の値を無視して、きわめて大きなトランザクションコストを指定するおそれがあります。 -* `Paths` - Payment型のトランザクションの場合(XRP間の移動を除く)、Pathsフィールドは、[ripple_path_findメソッド][]を使用した場合と同様に自動的に入力できます。`build_path`を指定した場合のみ入力されます。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "10000", - "Flags": 2147483648, - "Sequence": 360, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "Payment", - "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", - "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" - } - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "status": "success", - "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "10000", - "Flags": 2147483648, - "Sequence": 360, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "Payment", - "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", - "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" - } - } -} -``` - -*Commandline* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "status" : "success", - "tx_blob" : "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210094D24C795CFFA8E46FE338AF63421DA5CE5E171ED56F8E4CE70FFABA15D3CFA2022063994C52BF0393C8157EBFFCDE6A7E7EDC7B16A462CA53214F64CC8FCBB5E54A81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json" : { - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount" : { - "currency" : "USD", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value" : "1" - }, - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee" : "10000", - "Flags" : 2147483648, - "Sequence" : 360, - "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType" : "Payment", - "TxnSignature" : "304502210094D24C795CFFA8E46FE338AF63421DA5CE5E171ED56F8E4CE70FFABA15D3CFA2022063994C52BF0393C8157EBFFCDE6A7E7EDC7B16A462CA53214F64CC8FCBB5E54A", - "hash" : "DE80DA6FF9F93FE4CE87C99441F403E0290E35867FF48382204CB89975BF343E" - } - } -} -``` - - - -この応答は[標準のフォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `tx_blob` | 文字列 | 正しく作成された署名済みトランザクションの16進バイナリー表現 | -| `tx_json` | オブジェクト | 自動的に入力されたフィールドを含む、署名済み[トランザクション全体](transaction-formats.html)のJSON仕様 | - -**注意:** このコマンドの結果としてエラーメッセージが表示された場合、要求から取得されたシークレットキーがメッセージの中に記述されている可能性があります。これらのエラーが他者から見えない状態であることを確認してください。 - -* このエラーは、複数の人物が参照できるログファイルに書き込まないでください。 -* デバッグを目的として、誰でも参照できる場所にこのエラーを貼り付けないでください。 -* このエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 - -## 考えられるエラー - -* いずれかの[汎用エラータイプ][]。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `highFee` - トランザクションコストに適用される現在の負荷乗数が、自動的に提供されるトランザクションコストの上限を超えています。要求で指定する`fee_mult_max`を大きくするか(1000以上)、`tx_json`の`Fee`フィールドに値を手動で指定します。 -* `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。 -* `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# sign +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/SignHandler.cpp "ソース") + +`sign`メソッドは[JSONフォーマットのトランザクション](transaction-formats.html)とシークレットキーを受け取り、トランザクションの署名済みバイナリー表現を返します。結果は、同一のトランザクションJSONとシークレットキーを渡した場合も常に異なります。マルチ署名済みトランザクションに署名を付与する場合は、代わりに[sign_forメソッド][]を使用します。 + +{% include '_snippets/public-signing-note.md' %} + + +**注意:** 独自の`rippled`サーバーを運用している場合を除き、このコマンドを使用するのではなく、[RippleAPIを使用したローカル署名](rippleapi-reference.html#sign)を実行してください。信用できないサーバーが、トランザクションへの署名前にトランザクションに変更を加えたり、シークレットキーを悪用して、トランザクションの発行元であるかのように任意の追加的なトランザクションに署名したりするおそれがあります。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "sign", + "tx_json" : { + "TransactionType" : "Payment", + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + }, + "secret" : "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 +} +``` + +*JSON-RPC* + +``` +{ + "method": "sign", + "params": [ + { + "offline": false, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "TransactionType": "Payment" + }, + "fee_mult_max": 1000 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: sign secret tx_json [offline] +rippled sign s████████████████████████████ '{"TransactionType": "Payment", "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "Amount": { "currency": "USD", "value": "1", "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" }, "Sequence": 360, "Fee": "10000"}' offline +``` + + + +[試してみる>](websocket-api-tool.html#sign) + +トランザクションに署名するには、[トランザクションを承認](transaction-basics.html#取引の承認)できるシークレットキーを提供する必要があります。これを行うには、以下の方法があります。 + +* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 +* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します(コマンドライン構文ではサポートされません)。 + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:--------|:--------------------------------------------------| +| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](transaction-formats.html) | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | +| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | +| `key_type` | 文字列 | _(省略可)_ この要求で提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | +| `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | +| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | +| `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)[自動的に提供される`Fee`フィールド](transaction-common-fields.html#自動入力可能なフィールド)の上限値を設定します。現在の[トランザクションコストの負荷の乗数](transaction-cost.html#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](transaction-cost.html))を指定した場合は無視されます。 | +| `fee_div_max` | 整数 | (省略可。デフォルトは1)現在の[トランザクションコストの負荷の乗数](transaction-cost.html#ローカル負荷コスト)が(`fee_mult_max` ÷ `fee_div_max`)よりも大きい場合、署名は`rpcHIGH_FEE`エラーで失敗します。トランザクションの`Fee`フィールド([トランザクションコスト](transaction-cost.html))を指定した場合は無視されます。[新規: rippled 0.30.1][] | + +### 自動入力可能なフィールド + +`tx_json`([トランザクションオブジェクト](transaction-formats.html))の特定のフィールドを省略すると、サーバーは自動的に入力しようとします。要求の`offline`を`true`と指定しない限り、サーバーは署名前に以下のフィールドを提供します。 + +* `Sequence` - サーバーは、送信者のアカウント情報にある次のシーケンス番号を自動的に使用します。 + * **注意:** アカウントの次のシーケンス番号は、このトランザクションが適用されるまで増分されません。トランザクションの送信および個々のトランザクションへの応答を待たずに複数のトランザクションに署名する場合は、最初のトランザクション以降の各トランザクションについて、正しいシーケンス番号を手動で提供する必要があります。 +* `Fee` - `Fee`パラメーターを省略した場合、サーバーは適切なトランザクションコストを自動的に入力しようとします。本番環境のXRP Ledgerでは、適切な`fee_mult_max`値を提供しない限り、この処理は`rpcHIGH_FEE`エラーで失敗します。 + * `fee_mult_max`パラメーターと`fee_div_max`パラメーターは、[リファレンストランザクションコスト](transaction-cost.html#referenceトランザクションコスト)に適用される負荷スケーリング乗数によって、自動的に提供されるトランザクションコストの上限値を設定します。デフォルト設定では、自動的に提供される値が10×の乗数より大きい場合、エラーが返されます。ただし、本番環境のXRP Ledgerでは、[1000×の負荷乗数を使用することが一般的](transaction-cost.html#現在のトランザクションコスト)です。 + * コマンドライン構文では、`fee_mult_max`および`fee_div_max`はサポートされません。本番環境のXRP Ledgerの場合は、`Fee`値を提供する必要があります。 + * **注意:** 悪意のあるサーバーは、`fee_mult_max`や`fee_div_max`の値を無視して、きわめて大きなトランザクションコストを指定するおそれがあります。 +* `Paths` - Payment型のトランザクションの場合(XRP間の移動を除く)、Pathsフィールドは、[ripple_path_findメソッド][]を使用した場合と同様に自動的に入力できます。`build_path`を指定した場合のみ入力されます。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "10000", + "Flags": 2147483648, + "Sequence": 360, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "Payment", + "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", + "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" + } + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "status": "success", + "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "10000", + "Flags": 2147483648, + "Sequence": 360, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "Payment", + "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", + "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" + } + } +} +``` + +*Commandline* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "status" : "success", + "tx_blob" : "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210094D24C795CFFA8E46FE338AF63421DA5CE5E171ED56F8E4CE70FFABA15D3CFA2022063994C52BF0393C8157EBFFCDE6A7E7EDC7B16A462CA53214F64CC8FCBB5E54A81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json" : { + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount" : { + "currency" : "USD", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value" : "1" + }, + "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee" : "10000", + "Flags" : 2147483648, + "Sequence" : 360, + "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType" : "Payment", + "TxnSignature" : "304502210094D24C795CFFA8E46FE338AF63421DA5CE5E171ED56F8E4CE70FFABA15D3CFA2022063994C52BF0393C8157EBFFCDE6A7E7EDC7B16A462CA53214F64CC8FCBB5E54A", + "hash" : "DE80DA6FF9F93FE4CE87C99441F403E0290E35867FF48382204CB89975BF343E" + } + } +} +``` + + + +この応答は[標準のフォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `tx_blob` | 文字列 | 正しく作成された署名済みトランザクションの16進バイナリー表現 | +| `tx_json` | オブジェクト | 自動的に入力されたフィールドを含む、署名済み[トランザクション全体](transaction-formats.html)のJSON仕様 | + +**注意:** このコマンドの結果としてエラーメッセージが表示された場合、要求から取得されたシークレットキーがメッセージの中に記述されている可能性があります。これらのエラーが他者から見えない状態であることを確認してください。 + +* このエラーは、複数の人物が参照できるログファイルに書き込まないでください。 +* デバッグを目的として、誰でも参照できる場所にこのエラーを貼り付けないでください。 +* このエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 + +## 考えられるエラー + +* いずれかの[汎用エラータイプ][]。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `highFee` - トランザクションコストに適用される現在の負荷乗数が、自動的に提供されるトランザクションコストの上限を超えています。要求で指定する`fee_mult_max`を大きくするか(1000以上)、`tx_json`の`Fee`フィールドに値を手動で指定します。 +* `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。 +* `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/transaction-methods/sign_for.ja.md b/content/references/rippled-api/public-rippled-methods/transaction-methods/sign_for.ja.md index 5474f42693..7d5cdf4384 100644 --- a/content/references/rippled-api/public-rippled-methods/transaction-methods/sign_for.ja.md +++ b/content/references/rippled-api/public-rippled-methods/transaction-methods/sign_for.ja.md @@ -1,239 +1,239 @@ -# sign_for -[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/SignFor.cpp "Source") - -`sign_for`コマンドは、[マルチ署名済みトランザクション](multi-signing.html)の署名を1つ提供します。 - -{% include '_snippets/public-signing-note.md' %} - - -このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":"sign_for_example", - "command":"sign_for", - "account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "seed":"s████████████████████████████", - "key_type":"ed25519", - "tx_json":{ - "TransactionType":"TrustSet", - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "SigningPubKey":"", - "Fee":"30000" - } -} -``` - -*JSON-RPC* - -``` -POST http://localhost:5005/ -{ - "method":"sign_for", - "params":[{ - "account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "seed":"s████████████████████████████", - "key_type":"ed25519", - "tx_json":{ - "TransactionType":"TrustSet", - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "SigningPubKey":"", - "Fee":"30000" - } - }] -} -``` - -*コマンドライン* - -``` -#Syntax: rippled sign_for [offline] -rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s████████████████████████████ '{ - "TransactionType":"TrustSet", - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "SigningPubKey":"", - "Fee":"30000" -}' -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:-------------|:---------------------|:---------------------------------------| -| `account` | 文字列 - [アドレス][] | 署名を提供するアドレス。 | -| `tx_json` | オブジェクト | 署名する[トランザクション](transaction-formats.html)。[signメソッド][]を使用する場合とは異なり、トランザクションのすべてのフィールド(`Fee`と`Sequence`を含む)を指定する必要があります。トランザクションに、空の文字列を値として指定した`SigningPubKey`フィールドを含める必要があります。このオブジェクトには、以前に収集した署名を持つ`Signers`配列を必要に応じて含めることができます。 | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | -| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | -| `key_type` | 文字列 | _(省略可)_ この要求で提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトでは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | - -シークレットキーを指定した**1つのフィールドのみ**を指定する必要があります。次のいずれかになります。 - -* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 -* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません。) - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":"sign_for_example", - "status":"success", - "type":"response", - "result":{ - "tx_blob":"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E0107321EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D7707440C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB068114D96CB910955AB40A0E987EEE82BB3CEDD4441AAAE1F1", - "tx_json":{ - "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee":"30000", - "Flags":262144, - "LimitAmount":{ - "currency":"USD", - "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value":"100" - }, - "Sequence":2, - "Signers":[ - { - "Signer":{ - "Account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", - "SigningPubKey":"EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D770", - "TxnSignature":"C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB06" - } - } - ], - "SigningPubKey":"", - "TransactionType":"TrustSet", - "hash":"5216A13A3E3CF662352F0B430C7D82B7450415B6883DD428B5EC1DF1DE45DD8C" - } - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result" :{ - "status" :"success", - "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", - "tx_json" :{ - "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee" :"30000", - "Flags" :262144, - "LimitAmount" :{ - "currency" :"USD", - "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value" :"100" - }, - "Sequence" :2, - "Signers" :[ - { - "Signer" :{ - "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - } - ], - "SigningPubKey" :"", - "TransactionType" :"TrustSet", - "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" - } - } -} -``` - -*コマンドライン* - -``` -Loading:"/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" :{ - "status" :"success", - "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", - "tx_json" :{ - "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee" :"30000", - "Flags" :262144, - "LimitAmount" :{ - "currency" :"USD", - "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value" :"100" - }, - "Sequence" :2, - "Signers" :[ - { - "Signer" :{ - "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - } - ], - "SigningPubKey" :"", - "TransactionType" :"TrustSet", - "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" - } - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:----------|:-------|:--------------------------------------------------------| -| `tx_blob` | 文字列 | 新規に追加した署名を含む署名済みトランザクションの16進数表記。トランザクションに十分な数の署名がある場合には、[`submit`メソッドを使用してこの文字列を送信](submit.html#送信専用モード)できます。 | -| `tx_json` | オブジェクト | 新規に追加された署名を含む`Signers`配列を持つ[トランザクションの指定](transaction-formats.html)(JSONフォーマット) 。トランザクションに十分な数の署名がある場合には、[submit_multisignedメソッド][]を使用してこのオブジェクトを送信できます。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `srcActNotFound` - トランザクションの`Account`が、レジャーの資金供給のあるアドレスではない場合。 -* `srcActMalformed` - 要求の署名アドレス(`account`フィールド)の形式が無効である場合。 -* `badSeed` - 指定されたシード値のフォーマットが正しくありません。 -* `badSecret` - 指定されたシークレット値のフォーマットが正しくありません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# sign_for +[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/SignFor.cpp "Source") + +`sign_for`コマンドは、[マルチ署名済みトランザクション](multi-signing.html)の署名を1つ提供します。 + +{% include '_snippets/public-signing-note.md' %} + + +このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":"sign_for_example", + "command":"sign_for", + "account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "seed":"s████████████████████████████", + "key_type":"ed25519", + "tx_json":{ + "TransactionType":"TrustSet", + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags":262144, + "LimitAmount":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"100" + }, + "Sequence":2, + "SigningPubKey":"", + "Fee":"30000" + } +} +``` + +*JSON-RPC* + +``` +POST http://localhost:5005/ +{ + "method":"sign_for", + "params":[{ + "account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "seed":"s████████████████████████████", + "key_type":"ed25519", + "tx_json":{ + "TransactionType":"TrustSet", + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags":262144, + "LimitAmount":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"100" + }, + "Sequence":2, + "SigningPubKey":"", + "Fee":"30000" + } + }] +} +``` + +*コマンドライン* + +``` +#Syntax: rippled sign_for [offline] +rippled sign_for rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW s████████████████████████████ '{ + "TransactionType":"TrustSet", + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Flags":262144, + "LimitAmount":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"100" + }, + "Sequence":2, + "SigningPubKey":"", + "Fee":"30000" +}' +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:-------------|:---------------------|:---------------------------------------| +| `account` | 文字列 - [アドレス][] | 署名を提供するアドレス。 | +| `tx_json` | オブジェクト | 署名する[トランザクション](transaction-formats.html)。[signメソッド][]を使用する場合とは異なり、トランザクションのすべてのフィールド(`Fee`と`Sequence`を含む)を指定する必要があります。トランザクションに、空の文字列を値として指定した`SigningPubKey`フィールドを含める必要があります。このオブジェクトには、以前に収集した署名を持つ`Signers`配列を必要に応じて含めることができます。 | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | +| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | +| `key_type` | 文字列 | _(省略可)_ この要求で提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトでは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | + +シークレットキーを指定した**1つのフィールドのみ**を指定する必要があります。次のいずれかになります。 + +* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 +* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します。(コマンドライン構文ではサポートされません。) + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":"sign_for_example", + "status":"success", + "type":"response", + "result":{ + "tx_blob":"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E0107321EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D7707440C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB068114D96CB910955AB40A0E987EEE82BB3CEDD4441AAAE1F1", + "tx_json":{ + "Account":"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee":"30000", + "Flags":262144, + "LimitAmount":{ + "currency":"USD", + "issuer":"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value":"100" + }, + "Sequence":2, + "Signers":[ + { + "Signer":{ + "Account":"rLFd1FzHMScFhLsXeaxStzv3UC97QHGAbM", + "SigningPubKey":"EDDF4ECB8F34A168143B928D48EFE625501FB8552403BBBD3FC038A5788951D770", + "TxnSignature":"C3DCA3FEDE6D785398EEAB10A46B44047FF1B0863FC4313051FB292C991D1E3A9878FABB301128FE4F86F3D8BE4706D53FA97F5536DBD31AF14CD83A5ACDEB06" + } + } + ], + "SigningPubKey":"", + "TransactionType":"TrustSet", + "hash":"5216A13A3E3CF662352F0B430C7D82B7450415B6883DD428B5EC1DF1DE45DD8C" + } + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result" :{ + "status" :"success", + "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", + "tx_json" :{ + "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee" :"30000", + "Flags" :262144, + "LimitAmount" :{ + "currency" :"USD", + "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value" :"100" + }, + "Sequence" :2, + "Signers" :[ + { + "Signer" :{ + "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + } + ], + "SigningPubKey" :"", + "TransactionType" :"TrustSet", + "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" + } + } +} +``` + +*コマンドライン* + +``` +Loading:"/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" :{ + "status" :"success", + "tx_blob" :"1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1F1", + "tx_json" :{ + "Account" :"rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee" :"30000", + "Flags" :262144, + "LimitAmount" :{ + "currency" :"USD", + "issuer" :"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value" :"100" + }, + "Sequence" :2, + "Signers" :[ + { + "Signer" :{ + "Account" :"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey" :"02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature" :"30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + } + ], + "SigningPubKey" :"", + "TransactionType" :"TrustSet", + "hash" :"A94A6417D1A7AAB059822B894E13D322ED3712F7212CE9257801F96DE6C3F6AE" + } + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:----------|:-------|:--------------------------------------------------------| +| `tx_blob` | 文字列 | 新規に追加した署名を含む署名済みトランザクションの16進数表記。トランザクションに十分な数の署名がある場合には、[`submit`メソッドを使用してこの文字列を送信](submit.html#送信専用モード)できます。 | +| `tx_json` | オブジェクト | 新規に追加された署名を含む`Signers`配列を持つ[トランザクションの指定](transaction-formats.html)(JSONフォーマット) 。トランザクションに十分な数の署名がある場合には、[submit_multisignedメソッド][]を使用してこのオブジェクトを送信できます。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `srcActNotFound` - トランザクションの`Account`が、レジャーの資金供給のあるアドレスではない場合。 +* `srcActMalformed` - 要求の署名アドレス(`account`フィールド)の形式が無効である場合。 +* `badSeed` - 指定されたシード値のフォーマットが正しくありません。 +* `badSecret` - 指定されたシークレット値のフォーマットが正しくありません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/transaction-methods/submit.ja.md b/content/references/rippled-api/public-rippled-methods/transaction-methods/submit.ja.md index 143b33fe67..e1ce545c07 100644 --- a/content/references/rippled-api/public-rippled-methods/transaction-methods/submit.ja.md +++ b/content/references/rippled-api/public-rippled-methods/transaction-methods/submit.ja.md @@ -1,289 +1,289 @@ -# submit -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Submit.cpp "ソース") - -`submit`メソッドは[トランザクション](transaction-formats.html)を適用し、トランザクションの確認と将来のレジャーへの記録が行われるように、ネットワークに送信します。 - -このコマンドには、以下の2つのモードがあります。 - -* 送信専用モードは、署名済みのシリアル化されたトランザクションをブロブとして取得し、そのままネットワークに送信します。署名済みのトランザクションオブジェクトは不変のものであるため、送信後は、どの部分も修正したり、自動的に内容を入力したりすることはできません。 -* 署名と送信モードでは、JSONフォーマットのトランザクションオブジェクトを取得し、[signメソッド][]と同じ方法でトランザクションを完成させて署名し、署名済みのトランザクションを送信します。テストと開発に関しては、このモードのみ使用することをお勧めします。 - -トランザクションを可能な限り確実に送信するには、トランザクションを事前に生成して[sign][sign method]メソッドで署名し、停電発生後もアクセスできるいずれかの場所に保存した後、`tx_blob`として`submit`メソッドで送信します。送信後は、ネットワークを[txメソッド][]コマンドで監視して、トランザクションが正常に適用されたかどうかを確認します。再起動やその他の問題が発生した場合ても、`tx_blob`のトランザクションを問題なく再送信できます。シーケンス番号が以前のトランザクションと同一であるため、トランザクションが2回適用されることはありません。 - -## 送信専用モード - -送信専用の要求では、以下のパラメーターを指定します。 - -| `Field` | 型 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `tx_blob` | 文字列 | 送信する署名済みトランザクションの16進表現。[マルチ署名済みトランザクション](multi-signing.html)を送信することもできます。 | -| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバーにも中継されません。 | - -### 要求フォーマット - - - -*WebSocket* - -``` -{ - "id": 3, - "command": "submit", - "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" -} -``` - -*JSON-RPC* - -``` -{ - "method": "submit", - "params": [ - { - "tx_blob": "1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: submit tx_blob -submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754 -``` - - - -[試してみる>](websocket-api-tool.html#submit) - - -## 署名と送信モード - -このモードでは、トランザクションに署名してただちに送信します。このモードは、テストで使用することを目的としています。[マルチ署名済みトランザクション](multi-signing.html)には使用できません。 - - _デフォルトでは、署名と送信モードは[管理者専用](admin-rippled-methods.html)です。_ サーバーで[パブリック署名が有効になっている](enable-public-signing.html)場合は、パブリックメソッドとして使用できます。 - -トランザクションの署名に使用するシークレットキーは、以下の方法で提供できます。 - -* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 -* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します(コマンドライン構文ではサポートされません)。 - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:--------|:--------------------------------------------------| -| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](transaction-formats.html)。自動入力可能なフィールドについては、省略することも可能です。 | -| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | -| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | -| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | -| `key_type` | 文字列 | _(省略可)_ この要求で提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | -| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバーにも中継されません。 | -| `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | -| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。トランザクションがXRP間の直接移動である場合は、このフィールドを省略してください。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | -| `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)`Fee`パラメーターを省略する場合は、自動的に提供される`Fee`値が長期の基本トランザクションコストとこの値の積以下になるよう、このフィールドで制限します。 | -| `fee_div_max` | 整数 | (省略可。デフォルトは1)`fee_mult_max`と併用して、制限に使用される分数の乗数を作成します。具体的には、サーバーは基本[トランザクションコスト](transaction-cost.html)を`fee_mult_max`で乗算した後、この値で除算して上限値(整数値に丸められます)を割り出します。自動的に提供される`Fee`値が上限値を超えている場合、submitコマンドは失敗します。[新規: rippled 0.30.1][] | - -サーバーによって特定のフィールドにどのように値が自動入力されるかについては、[signメソッド][]を参照してください。 - -### 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 2, - "command": "submit", - "tx_json" : { - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - } - }, - "secret" : "s████████████████████████████", - "offline": false, - "fee_mult_max": 1000 -} -``` - -*JSON-RPC* - -``` -{ - "method": "submit", - "params": [ - { - "offline": false, - "secret": "s████████████████████████████", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "TransactionType": "Payment" - }, - "fee_mult_max": 1000 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: submit secret json [offline] -rippled submit s████████████████████████████ '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Amount": { "currency": "USD", "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "value": "1" }, "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "TransactionType": "Payment", "Fee": "10000"}' -``` - - - -[試してみる>](websocket-api-tool.html#submit) - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 1, - "status": "success", - "type": "response", - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", - "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "10000", - "Flags": 2147483648, - "Sequence": 360, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "Payment", - "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", - "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" - } - } -} -``` - -*JSON-RPC* - -``` -{ - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", - "status": "success", - "tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json": { - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount": { - "currency": "USD", - "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value": "1" - }, - "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "10000", - "Flags": 2147483648, - "Sequence": 361, - "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType": "Payment", - "TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1", - "hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847" - } - } -} -``` - -*コマンドライン* - -``` -Loading: "/etc/rippled.cfg" -Connecting to 127.0.0.1:5005 -{ - "result" : { - "engine_result" : "tesSUCCESS", - "engine_result_code" : 0, - "engine_result_message" : "The transaction was applied.Only final in a validated ledger.", - "status" : "success", - "tx_blob" : "1200002280000000240000016A61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100FBBF74057359EC31C3647AD3B33D8954730E9879C35034374858A76B7CFA643102200EAA08C61071396E9CF0987FBEA16CF113CBD8068AA221214D165F151285EECD81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", - "tx_json" : { - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Amount" : { - "currency" : "USD", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "value" : "1" - }, - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee" : "10000", - "Flags" : 2147483648, - "Sequence" : 362, - "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", - "TransactionType" : "Payment", - "TxnSignature" : "3045022100FBBF74057359EC31C3647AD3B33D8954730E9879C35034374858A76B7CFA643102200EAA08C61071396E9CF0987FBEA16CF113CBD8068AA221214D165F151285EECD", - "hash" : "CB98A6FA1FAC47F9FCC6A233EB46F8F9AF59CC69BD69AE6D06F298F6FF52162A" - } - } -} -``` - - - -この応答は[標準のフォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:------------------------|:--------|:-----------------------------------------| -| `engine_result` | 文字列 | トランザクションの暫定的な結果を示すコード。例: `tesSUCCESS` | -| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | -| `engine_result_message` | 文字列 | 人間が読める形式の、トランザクションの暫定的な結果の説明 | -| `tx_blob` | 文字列 | トランザクション全体の16進文字列表現 | -| `tx_json` | オブジェクト | トランザクション全体のJSON表現 | - -**注意:** WebSocketの応答に`"status":"success"`が含まれていても、これはコマンドが正常に受け付けられたことを示すものであり、トランザクションが正常に実行されたことを示しているわけでは _ありません_ 。トランザクションは、さまざまな状況で正常に処理されない可能性があります。例えば、ペイメントの2つのアカウントを接続するトラストラインの欠落や、トランザクション生成後のレジャーの状態の変化などです。問題が特にない場合も、トランザクションが含まれているバージョンのレジャーを閉鎖し検証するまでに数秒かかることがあります。詳細は、[トランザクションの応答の完全なリスト](transaction-results.html)を参照してください。トランザクションの結果は、検証済みバージョンのレジャーにトランザクションが表示されるまで、最終的なものと考えないでください。 - -**注意:** このコマンドの結果としてエラーメッセージが表示された場合、要求から取得されたシークレットキーがメッセージの中に記述されている可能性があります。(要求に含まれているものが署名済みのtx_blobである場合は問題ありません)。これらのエラーが他者から見えない状態であることを確認してください。 - -* シークレットキーが記述されているエラーは、複数の人物が参照できるログファイルに書き込まないでください。 -* シークレットキーが記述されているエラーは、誰でも参照できる場所にデバッグを目的として貼り付けないでください。 -* シークレットキーが記述されているエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 - - -## 考えられるエラー - -* いずれかの[汎用エラータイプ][]。 -* `amendmentBlocked` - `rippled`サーバーでの[修正がブロックされている](amendments.html#amendment-blocked)ため、トランザクションをネットワークに送信できません。 -* `highFee` - `fee_mult_max`パラメーターが指定されましたが、サーバーの現在の手数料の乗数が指定値を超えています(署名と送信モードのみ)。 -* `internalJson` - トランザクションをJSONへとシリアル化するときに、内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 -* `internalSubmit` - トランザクションを送信するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 -* `internalTransaction` - トランザクションを処理するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `invalidTransaction` - トランザクションの形式が誤っているか、その他の理由で無効なものになっています。 -* `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。(署名と送信モードのみ)。 -* `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。(署名と送信モードのみ)。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# submit +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Submit.cpp "ソース") + +`submit`メソッドは[トランザクション](transaction-formats.html)を適用し、トランザクションの確認と将来のレジャーへの記録が行われるように、ネットワークに送信します。 + +このコマンドには、以下の2つのモードがあります。 + +* 送信専用モードは、署名済みのシリアル化されたトランザクションをブロブとして取得し、そのままネットワークに送信します。署名済みのトランザクションオブジェクトは不変のものであるため、送信後は、どの部分も修正したり、自動的に内容を入力したりすることはできません。 +* 署名と送信モードでは、JSONフォーマットのトランザクションオブジェクトを取得し、[signメソッド][]と同じ方法でトランザクションを完成させて署名し、署名済みのトランザクションを送信します。テストと開発に関しては、このモードのみ使用することをお勧めします。 + +トランザクションを可能な限り確実に送信するには、トランザクションを事前に生成して[sign][sign method]メソッドで署名し、停電発生後もアクセスできるいずれかの場所に保存した後、`tx_blob`として`submit`メソッドで送信します。送信後は、ネットワークを[txメソッド][]コマンドで監視して、トランザクションが正常に適用されたかどうかを確認します。再起動やその他の問題が発生した場合ても、`tx_blob`のトランザクションを問題なく再送信できます。シーケンス番号が以前のトランザクションと同一であるため、トランザクションが2回適用されることはありません。 + +## 送信専用モード + +送信専用の要求では、以下のパラメーターを指定します。 + +| `Field` | 型 | 説明 | +|:------------|:--------|:-----------------------------------------------------| +| `tx_blob` | 文字列 | 送信する署名済みトランザクションの16進表現。[マルチ署名済みトランザクション](multi-signing.html)を送信することもできます。 | +| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバーにも中継されません。 | + +### 要求フォーマット + + + +*WebSocket* + +``` +{ + "id": 3, + "command": "submit", + "tx_blob": "1200002280000000240000001E61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000B732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7447304502210095D23D8AF107DF50651F266259CC7139D0CD0C64ABBA3A958156352A0D95A21E02207FCF9B77D7510380E49FF250C21B57169E14E9B4ACFD314CEDC79DDD0A38B8A681144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" +} +``` + +*JSON-RPC* + +``` +{ + "method": "submit", + "params": [ + { + "tx_blob": "1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754" + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: submit tx_blob +submit 1200002280000000240000000361D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA968400000000000000A732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100D184EB4AE5956FF600E7536EE459345C7BBCF097A84CC61A93B9AF7197EDB98702201CEA8009B7BEEBAA2AACC0359B41C427C1C5B550A4CA4B80CF2174AF2D6D5DCE81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754 +``` + + + +[試してみる>](websocket-api-tool.html#submit) + + +## 署名と送信モード + +このモードでは、トランザクションに署名してただちに送信します。このモードは、テストで使用することを目的としています。[マルチ署名済みトランザクション](multi-signing.html)には使用できません。 + + _デフォルトでは、署名と送信モードは[管理者専用](admin-rippled-methods.html)です。_ サーバーで[パブリック署名が有効になっている](enable-public-signing.html)場合は、パブリックメソッドとして使用できます。 + +トランザクションの署名に使用するシークレットキーは、以下の方法で提供できます。 + +* `secret`値を指定し、`key_type`フィールドを省略します。この値は、XRP Ledgerの[base58][]シード、RFC-1751、16進値のフォーマットで記述するか、文字列パスフレーズとして記述します(secp256k1キーのみ)。 +* `key_type`値と、`seed`、`seed_hex`、または`passphrase`のいずれか1つを提供します。`secret`フィールドは省略します(コマンドライン構文ではサポートされません)。 + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:--------|:--------------------------------------------------| +| `tx_json` | オブジェクト | JSONフォーマットの[トランザクション定義](transaction-formats.html)。自動入力可能なフィールドについては、省略することも可能です。 | +| `secret` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。信頼できないサーバーに対して、またはセキュリティが確保されていないネットワーク接続を通じて機密情報を送信しないでください。`key_type`、`seed`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。XRP Ledgerの[base58][]フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed_hex`、`passphrase`と同時に使用することはできません。 | +| `seed_hex` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。トランザクションへの署名に使用されます。16進フォーマットにする必要があります。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`passphrase`と同時に使用することはできません。 | +| `passphrase` | 文字列 | _(省略可)_ トランザクションを提供するアカウントのシークレットキー。文字列パスフレーズとして、トランザクションへの署名に使用されます。指定する場合は、`key_type`も指定する必要があります。`secret`、`seed`、`seed_hex`と同時に使用することはできません。 | +| `key_type` | 文字列 | _(省略可)_ この要求で提供する暗号鍵の種類。有効な種類は、`secp256k1`または`ed25519`です。デフォルトは`secp256k1`です。`secret`と同時に使用することはできません。**注意:** Ed25519のサポートは実験的な機能です。 | +| `fail_hard` | ブール値 | (省略可。デフォルトはfalse)trueにした場合は、トランザクションがローカルで失敗したときに再試行されず、他のサーバーにも中継されません。 | +| `offline` | ブール値 | (省略可。デフォルトはfalse)trueにする場合は、トランザクションの生成時に、値を自動で入力または検証しようとしないでください。 | +| `build_path` | ブール値 | _(省略可)_ Payment型のトランザクションに対して指定した場合、署名前に`Paths`フィールドが自動で入力されます。トランザクションがXRP間の直接移動である場合は、このフィールドを省略してください。**注意:** サーバーは、このフィールドの値ではなく、このフィールドが存在するかどうかを調べます。この動作は変更される可能性があります。 | +| `fee_mult_max` | 整数 | (省略可。デフォルトは10、推奨値は1000)`Fee`パラメーターを省略する場合は、自動的に提供される`Fee`値が長期の基本トランザクションコストとこの値の積以下になるよう、このフィールドで制限します。 | +| `fee_div_max` | 整数 | (省略可。デフォルトは1)`fee_mult_max`と併用して、制限に使用される分数の乗数を作成します。具体的には、サーバーは基本[トランザクションコスト](transaction-cost.html)を`fee_mult_max`で乗算した後、この値で除算して上限値(整数値に丸められます)を割り出します。自動的に提供される`Fee`値が上限値を超えている場合、submitコマンドは失敗します。[新規: rippled 0.30.1][] | + +サーバーによって特定のフィールドにどのように値が自動入力されるかについては、[signメソッド][]を参照してください。 + +### 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 2, + "command": "submit", + "tx_json" : { + "TransactionType" : "Payment", + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + } + }, + "secret" : "s████████████████████████████", + "offline": false, + "fee_mult_max": 1000 +} +``` + +*JSON-RPC* + +``` +{ + "method": "submit", + "params": [ + { + "offline": false, + "secret": "s████████████████████████████", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "TransactionType": "Payment" + }, + "fee_mult_max": 1000 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: submit secret json [offline] +rippled submit s████████████████████████████ '{"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Amount": { "currency": "USD", "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "value": "1" }, "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "TransactionType": "Payment", "Fee": "10000"}' +``` + + + +[試してみる>](websocket-api-tool.html#submit) + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 1, + "status": "success", + "type": "response", + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "10000", + "Flags": 2147483648, + "Sequence": 360, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "Payment", + "TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580", + "hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0" + } + } +} +``` + +*JSON-RPC* + +``` +{ + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "status": "success", + "tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json": { + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount": { + "currency": "USD", + "issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value": "1" + }, + "Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "10000", + "Flags": 2147483648, + "Sequence": 361, + "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType": "Payment", + "TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1", + "hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847" + } + } +} +``` + +*コマンドライン* + +``` +Loading: "/etc/rippled.cfg" +Connecting to 127.0.0.1:5005 +{ + "result" : { + "engine_result" : "tesSUCCESS", + "engine_result_code" : 0, + "engine_result_message" : "The transaction was applied.Only final in a validated ledger.", + "status" : "success", + "tx_blob" : "1200002280000000240000016A61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100FBBF74057359EC31C3647AD3B33D8954730E9879C35034374858A76B7CFA643102200EAA08C61071396E9CF0987FBEA16CF113CBD8068AA221214D165F151285EECD81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754", + "tx_json" : { + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Amount" : { + "currency" : "USD", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "value" : "1" + }, + "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee" : "10000", + "Flags" : 2147483648, + "Sequence" : 362, + "SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB", + "TransactionType" : "Payment", + "TxnSignature" : "3045022100FBBF74057359EC31C3647AD3B33D8954730E9879C35034374858A76B7CFA643102200EAA08C61071396E9CF0987FBEA16CF113CBD8068AA221214D165F151285EECD", + "hash" : "CB98A6FA1FAC47F9FCC6A233EB46F8F9AF59CC69BD69AE6D06F298F6FF52162A" + } + } +} +``` + + + +この応答は[標準のフォーマット][]に従っており、結果が正しい場合、以下のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:------------------------|:--------|:-----------------------------------------| +| `engine_result` | 文字列 | トランザクションの暫定的な結果を示すコード。例: `tesSUCCESS` | +| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | +| `engine_result_message` | 文字列 | 人間が読める形式の、トランザクションの暫定的な結果の説明 | +| `tx_blob` | 文字列 | トランザクション全体の16進文字列表現 | +| `tx_json` | オブジェクト | トランザクション全体のJSON表現 | + +**注意:** WebSocketの応答に`"status":"success"`が含まれていても、これはコマンドが正常に受け付けられたことを示すものであり、トランザクションが正常に実行されたことを示しているわけでは _ありません_ 。トランザクションは、さまざまな状況で正常に処理されない可能性があります。例えば、ペイメントの2つのアカウントを接続するトラストラインの欠落や、トランザクション生成後のレジャーの状態の変化などです。問題が特にない場合も、トランザクションが含まれているバージョンのレジャーを閉鎖し検証するまでに数秒かかることがあります。詳細は、[トランザクションの応答の完全なリスト](transaction-results.html)を参照してください。トランザクションの結果は、検証済みバージョンのレジャーにトランザクションが表示されるまで、最終的なものと考えないでください。 + +**注意:** このコマンドの結果としてエラーメッセージが表示された場合、要求から取得されたシークレットキーがメッセージの中に記述されている可能性があります。(要求に含まれているものが署名済みのtx_blobである場合は問題ありません)。これらのエラーが他者から見えない状態であることを確認してください。 + +* シークレットキーが記述されているエラーは、複数の人物が参照できるログファイルに書き込まないでください。 +* シークレットキーが記述されているエラーは、誰でも参照できる場所にデバッグを目的として貼り付けないでください。 +* シークレットキーが記述されているエラーメッセージは、誤ってWebサイトに表示しないようにしてください。 + + +## 考えられるエラー + +* いずれかの[汎用エラータイプ][]。 +* `amendmentBlocked` - `rippled`サーバーでの[修正がブロックされている](amendments.html#amendment-blocked)ため、トランザクションをネットワークに送信できません。 +* `highFee` - `fee_mult_max`パラメーターが指定されましたが、サーバーの現在の手数料の乗数が指定値を超えています(署名と送信モードのみ)。 +* `internalJson` - トランザクションをJSONへとシリアル化するときに、内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 +* `internalSubmit` - トランザクションを送信するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 +* `internalTransaction` - トランザクションを処理するときに内部エラーが発生しました。このエラーは、無効な署名や一部フィールドの形式の誤りなど、トランザクションのさまざまな側面が原因となって発生する可能性があります。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `invalidTransaction` - トランザクションの形式が誤っているか、その他の理由で無効なものになっています。 +* `noPath` - トランザクションにパスが含まれておらず、サーバーは、このペイメントの発生経路となるパスを検出できませんでした。(署名と送信モードのみ)。 +* `tooBusy` - トランザクションにパスが含まれていませんが、サーバーがビジーであるため、パス検出処理をすぐに実行できません。管理者として接続している場合は発生しません。(署名と送信モードのみ)。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/transaction-methods/submit_multisigned.ja.md b/content/references/rippled-api/public-rippled-methods/transaction-methods/submit_multisigned.ja.md index ba8d45c26c..84a46eb926 100644 --- a/content/references/rippled-api/public-rippled-methods/transaction-methods/submit_multisigned.ja.md +++ b/content/references/rippled-api/public-rippled-methods/transaction-methods/submit_multisigned.ja.md @@ -1,254 +1,254 @@ -# submit_multisigned -[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/SubmitMultiSigned.cpp "Source") - -`submit_multisigned`コマンドは[マルチ署名済み](multi-signing.html)トランザクションを適用し、このトランザクションをネットワークに送信して、今後のレジャーに追加します。([`submit`コマンドを送信専用モードで](submit.html#送信専用モード)使用して、マルチ署名済みトランザクションをバイナリー形式で送信することもできます。) - -このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": "submit_multisigned_example" - "command": "submit_multisigned", - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "Signers": [{ - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, { - "Signer": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - }], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } -} -``` - -*JSON-RPC* - -``` -{ - "method": "submit_multisigned", - "params": [ - { - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "0" - }, - "Sequence": 4, - "Signers": [ - { - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" - } - }, - { - "Signer": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", - "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" - } - } - ], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" - } - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: submit_multisigned -rippled submit_multisigned '{ - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "0" - }, - "Sequence": 4, - "Signers": [ - { - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" - } - }, - { - "Signer": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", - "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" - } - } - ], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" -}' -``` - - - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:------------|:--------|:-----------------------------------------------------| -| `tx_json` | オブジェクト | `Signers`からなる配列が指定された[JSONフォーマットのトランザクション](transaction-formats.html)。成功させるには、署名の重みが[SignerList](signerlist.html)の定数以上でなければなりません。 | -| `fail_hard` | ブール値 | (省略可、デフォルトではfalseです)trueで、かつトランザクションがローカルで失敗する場合は、このトランザクションの再試行や、他のサーバーへのリレーは行わないでください。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": "submit_multisigned_example", - "status": "success", - "type": "response", - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", - "tx_blob": "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "100" - }, - "Sequence": 2, - "Signers": [ - { - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" - } - }, - { - "Signer": { - "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", - "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" - } - } - ], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" - } - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger.", - "status": "success", - "tx_blob": "120014220004000024000000046380000000000000000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF74473045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B78114204288D2E47F8EF6C99BCC457966320D12409711E1E010732103398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C174473045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D0881143A4C02EA95AD6AC3BED92FA036E0BBFB712C030CE1F1", - "tx_json": { - "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", - "Fee": "30000", - "Flags": 262144, - "LimitAmount": { - "currency": "USD", - "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", - "value": "0" - }, - "Sequence": 4, - "Signers": [ - { - "Signer": { - "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", - "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" - } - }, - { - "Signer": { - "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", - "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" - } - } - ], - "SigningPubKey": "", - "TransactionType": "TrustSet", - "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" - } - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:------------------------|:--------|:-----------------------------------------| -| `engine_result` | 文字列 | 以下は、トランザクションの暫定的な結果を示すコードの例です。 `tesSUCCESS` | -| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | -| `engine_result_message` | 文字列 | 人間が読み取れる形式の暫定的なトランザクション結果の説明 | -| `tx_blob` | 文字列 | [トランザクション](transaction-formats.html)全体の16進文字列表現 | -| `tx_json` | オブジェクト | [トランザクション](transaction-formats.html)全体のJSON表現 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `srcActMalformed` - `tx_json`の`Account`フィールドが無効または欠落していました。 -* `internal` - 内部エラーが発生しました。これには、指定されているトランザクションJSONに対して署名が無効な場合も含まれます。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# submit_multisigned +[[ソース]
](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/SubmitMultiSigned.cpp "Source") + +`submit_multisigned`コマンドは[マルチ署名済み](multi-signing.html)トランザクションを適用し、このトランザクションをネットワークに送信して、今後のレジャーに追加します。([`submit`コマンドを送信専用モードで](submit.html#送信専用モード)使用して、マルチ署名済みトランザクションをバイナリー形式で送信することもできます。) + +このコマンドを使用するには、[MultiSign Amendment][]が有効になっている必要があります。[新規: rippled 0.31.0][] + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": "submit_multisigned_example" + "command": "submit_multisigned", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [{ + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, { + "Signer": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + }], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } +} +``` + +*JSON-RPC* + +``` +{ + "method": "submit_multisigned", + "params": [ + { + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "0" + }, + "Sequence": 4, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" + } + }, + { + "Signer": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", + "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" + } + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: submit_multisigned +rippled submit_multisigned '{ + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "0" + }, + "Sequence": 4, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" + } + }, + { + "Signer": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", + "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" +}' +``` + + + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:------------|:--------|:-----------------------------------------------------| +| `tx_json` | オブジェクト | `Signers`からなる配列が指定された[JSONフォーマットのトランザクション](transaction-formats.html)。成功させるには、署名の重みが[SignerList](signerlist.html)の定数以上でなければなりません。 | +| `fail_hard` | ブール値 | (省略可、デフォルトではfalseです)trueで、かつトランザクションがローカルで失敗する場合は、このトランザクションの再試行や、他のサーバーへのリレーは行わないでください。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": "submit_multisigned_example", + "status": "success", + "type": "response", + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "tx_blob": "1200142200040000240000000263D5038D7EA4C680000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF744730450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E58114204288D2E47F8EF6C99BCC457966320D12409711E1E0107321028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B744630440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC181147908A7F0EDD48EA896C3580A399F0EE78611C8E3E1F1", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "100" + }, + "Sequence": 2, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "30450221009C195DBBF7967E223D8626CA19CF02073667F2B22E206727BFE848FF42BEAC8A022048C323B0BED19A988BDBEFA974B6DE8AA9DCAE250AA82BBD1221787032A864E5" + } + }, + { + "Signer": { + "Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SigningPubKey": "028FFB276505F9AC3F57E8D5242B386A597EF6C40A7999F37F1948636FD484E25B", + "TxnSignature": "30440220680BBD745004E9CFB6B13A137F505FB92298AD309071D16C7B982825188FD1AE022004200B1F7E4A6A84BB0E4FC09E1E3BA2B66EBD32F0E6D121A34BA3B04AD99BC1" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "BD636194C48FD7A100DE4C972336534C8E710FD008C0F3CF7BC5BF34DAF3C3E6" + } + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger.", + "status": "success", + "tx_blob": "120014220004000024000000046380000000000000000000000000000000000000005553440000000000B5F762798A53D543A014CAF8B297CFF8F2F937E868400000000000753073008114A3780F5CB5A44D366520FC44055E8ED44D9A2270F3E010732102B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF74473045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B78114204288D2E47F8EF6C99BCC457966320D12409711E1E010732103398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C174473045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D0881143A4C02EA95AD6AC3BED92FA036E0BBFB712C030CE1F1", + "tx_json": { + "Account": "rEuLyBCvcw4CFmzv8RepSiAoNgF8tTGJQC", + "Fee": "30000", + "Flags": 262144, + "LimitAmount": { + "currency": "USD", + "issuer": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", + "value": "0" + }, + "Sequence": 4, + "Signers": [ + { + "Signer": { + "Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SigningPubKey": "02B3EC4E5DD96029A647CFA20DA07FE1F85296505552CCAC114087E66B46BD77DF", + "TxnSignature": "3045022100CC9C56DF51251CB04BB047E5F3B5EF01A0F4A8A549D7A20A7402BF54BA744064022061EF8EF1BCCBF144F480B32508B1D10FD4271831D5303F920DE41C64671CB5B7" + } + }, + { + "Signer": { + "Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SigningPubKey": "03398A4EDAE8EE009A5879113EAA5BA15C7BB0F612A87F4103E793AC919BD1E3C1", + "TxnSignature": "3045022100FEE8D8FA2D06CE49E9124567DCA265A21A9F5465F4A9279F075E4CE27E4430DE022042D5305777DA1A7801446780308897699412E4EDF0E1AEFDF3C8A0532BDE4D08" + } + } + ], + "SigningPubKey": "", + "TransactionType": "TrustSet", + "hash": "81A477E2A362D171BB16BE17B4120D9F809A327FA00242ABCA867283BEA2F4F8" + } + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:------------------------|:--------|:-----------------------------------------| +| `engine_result` | 文字列 | 以下は、トランザクションの暫定的な結果を示すコードの例です。 `tesSUCCESS` | +| `engine_result_code` | 整数 | トランザクションの暫定的な結果を示し、`engine_result`と直接の相関関係にある数値コード | +| `engine_result_message` | 文字列 | 人間が読み取れる形式の暫定的なトランザクション結果の説明 | +| `tx_blob` | 文字列 | [トランザクション](transaction-formats.html)全体の16進文字列表現 | +| `tx_json` | オブジェクト | [トランザクション](transaction-formats.html)全体のJSON表現 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `srcActMalformed` - `tx_json`の`Account`フィールドが無効または欠落していました。 +* `internal` - 内部エラーが発生しました。これには、指定されているトランザクションJSONに対して署名が無効な場合も含まれます。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/transaction-methods/transaction_entry.ja.md b/content/references/rippled-api/public-rippled-methods/transaction-methods/transaction_entry.ja.md index 981e4c355a..5c8d9d122e 100644 --- a/content/references/rippled-api/public-rippled-methods/transaction-methods/transaction_entry.ja.md +++ b/content/references/rippled-api/public-rippled-methods/transaction-methods/transaction_entry.ja.md @@ -1,222 +1,222 @@ -# transaction_entry -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/TransactionEntry.cpp "Source") - -`transaction_entry`メソッドは、特定のレジャーバージョンから1つのトランザクションに関する情報を取得します。(これに対して、[txメソッド][]はすべてのレジャーから指定のトランザクションを検索します。txメソッドの使用をお勧めします。) - -## 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":4, - "command":"transaction_entry", - "tx_hash":"E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", - "ledger_index":348734 -} -``` - -*JSON-RPC* - -``` -{ - "method":"transaction_entry", - "params":[ - { - "tx_hash":"E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", - "ledger_index":348734 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: transaction_entry transaction_hash ledger_index|ledger_hash -rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 348734 -``` - - - -[試してみる >](websocket-api-tool.html#transaction_entry) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:---------------------------|:-------------------------------| -| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | -| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | -| `tx_hash` | 文字列 | 検索するトランザクションの一意のハッシュ | - -**注記:** このメソッドでは、現在進行中のレジャーから情報を取得する操作はサポートされていません。`ledger_index`または`ledger_hash`でレジャーバージョンを指定する必要があります。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":4, - "result":{ - "ledger_index":348734, - "metadata":{ - "AffectedNodes":[ - { - "ModifiedNode":{ - "FinalFields":{ - "Account":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "Balance":"59328999119", - "Flags":0, - "OwnerCount":11, - "Sequence":89 - }, - "LedgerEntryType":"AccountRoot", - "LedgerIndex":"E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", - "PreviousFields":{ - "Balance":"59328999129", - "Sequence":88 - }, - "PreviousTxnID":"C26AA6B4F7C3B9F55E17CD0D11F12032A1C7AD2757229FFD277C9447A8815E6E", - "PreviousTxnLgrSeq":348700 - } - }, - { - "ModifiedNode":{ - "FinalFields":{ - "Balance":{ - "currency":"USD", - "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", - "value":"-1" - }, - "Flags":131072, - "HighLimit":{ - "currency":"USD", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"100" - }, - "HighNode":"0000000000000000", - "LowLimit":{ - "currency":"USD", - "issuer":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value":"0" - }, - "LowNode":"0000000000000000" - }, - "LedgerEntryType":"RippleState", - "LedgerIndex":"EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", - "PreviousFields":{ - "Balance":{ - "currency":"USD", - "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", - "value":"0" - } - }, - "PreviousTxnID":"53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", - "PreviousTxnLgrSeq":343570 - } - } - ], - "TransactionIndex":0, - "TransactionResult":"tesSUCCESS" - }, - "tx_json":{ - "Account":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "Amount":{ - "currency":"USD", - "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value":"1" - }, - "Destination":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee":"10", - "Flags":0, - "Paths":[ - [ - { - "account":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "currency":"USD", - "issuer":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "type":49, - "type_hex":"0000000000000031" - } - ], - [ - { - "account":"rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", - "currency":"USD", - "issuer":"rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", - "type":49, - "type_hex":"0000000000000031" - }, - { - "account":"rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", - "currency":"USD", - "issuer":"rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", - "type":49, - "type_hex":"0000000000000031" - }, - { - "account":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "currency":"USD", - "issuer":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "type":49, - "type_hex":"0000000000000031" - } - ] - ], - "SendMax":{ - "currency":"USD", - "issuer":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value":"1.01" - }, - "Sequence":88, - "SigningPubKey":"02EAE5DAB54DD8E1C49641D848D5B97D1B29149106174322EDF98A1B2CCE5D7F8E", - "TransactionType":"Payment", - "TxnSignature":"30440220791B6A3E036ECEFFE99E8D4957564E8C84D1548C8C3E80A87ED1AA646ECCFB16022037C5CAC97E34E3021EBB426479F2ACF3ACA75DB91DCC48D1BCFB4CF547CFEAA0", - "hash":"E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", - "inLedger":348734, - "ledger_index":348734 - } - }, - "status":"success", - "type":"response" -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 - -| `Field` | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `ledger_index` | 符号なし整数 | トランザクションが検出されたレジャーバージョンのシーケンス番号。これは要求のledger_indexと同じです。 | -| `ledger_hash` | 文字列 | (省略される場合があります)トランザクションが検出されたレジャーバージョンの一意のハッシュ。これは要求のledger_hashと同じです。 | -| `metadata` | オブジェクト | トランザクションに関する各種メタデータ。 | -| `tx_json` | オブジェクト | [Transactionオブジェクト](transaction-formats.html)のJSON表現。 | - -サーバーがトランザクションの検出に失敗する原因として、次のようなものが考えられます。 - -* トランザクションが存在しません。 -* トランザクションが存在しますが、指定のレジャーバージョンに含まれていません。 -* サーバーには、使用可能な指定のレジャーバージョンがありません。正しいバージョンを保管する別のサーバーからの応答は、異なる可能性があります。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `fieldNotFoundTransaction` - `tx_hash`フィールドが要求で省略されています。 -* `notYetImplemented` - レジャーバージョンが要求に指定されていません。 -* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 -* `transactionNotFound` - 要求に指定されているトランザクションが指定のレジャーで見つかりませんでした。(トランザクションが異なるレジャーバージョンにあるか、またはトランザクションがまったく使用できない可能性があります。) - - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# transaction_entry +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/TransactionEntry.cpp "Source") + +`transaction_entry`メソッドは、特定のレジャーバージョンから1つのトランザクションに関する情報を取得します。(これに対して、[txメソッド][]はすべてのレジャーから指定のトランザクションを検索します。txメソッドの使用をお勧めします。) + +## 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":4, + "command":"transaction_entry", + "tx_hash":"E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", + "ledger_index":348734 +} +``` + +*JSON-RPC* + +``` +{ + "method":"transaction_entry", + "params":[ + { + "tx_hash":"E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", + "ledger_index":348734 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: transaction_entry transaction_hash ledger_index|ledger_hash +rippled transaction_entry E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 348734 +``` + + + +[試してみる >](websocket-api-tool.html#transaction_entry) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:---------------------------|:-------------------------------| +| `ledger_hash` | 文字列 | _(省略可)_ 使用するレジャーバージョンの20バイトの16進文字列。([レジャーの指定][]を参照してください) | +| `ledger_index` | 文字列または符号なし整数 | _(省略可)_ 使用するレジャーのシーケンス番号、またはレジャーを自動的に選択するためのショートカット文字列。([レジャーの指定][]を参照してください) | +| `tx_hash` | 文字列 | 検索するトランザクションの一意のハッシュ | + +**注記:** このメソッドでは、現在進行中のレジャーから情報を取得する操作はサポートされていません。`ledger_index`または`ledger_hash`でレジャーバージョンを指定する必要があります。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":4, + "result":{ + "ledger_index":348734, + "metadata":{ + "AffectedNodes":[ + { + "ModifiedNode":{ + "FinalFields":{ + "Account":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "Balance":"59328999119", + "Flags":0, + "OwnerCount":11, + "Sequence":89 + }, + "LedgerEntryType":"AccountRoot", + "LedgerIndex":"E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", + "PreviousFields":{ + "Balance":"59328999129", + "Sequence":88 + }, + "PreviousTxnID":"C26AA6B4F7C3B9F55E17CD0D11F12032A1C7AD2757229FFD277C9447A8815E6E", + "PreviousTxnLgrSeq":348700 + } + }, + { + "ModifiedNode":{ + "FinalFields":{ + "Balance":{ + "currency":"USD", + "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", + "value":"-1" + }, + "Flags":131072, + "HighLimit":{ + "currency":"USD", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"100" + }, + "HighNode":"0000000000000000", + "LowLimit":{ + "currency":"USD", + "issuer":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value":"0" + }, + "LowNode":"0000000000000000" + }, + "LedgerEntryType":"RippleState", + "LedgerIndex":"EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", + "PreviousFields":{ + "Balance":{ + "currency":"USD", + "issuer":"rrrrrrrrrrrrrrrrrrrrBZbvji", + "value":"0" + } + }, + "PreviousTxnID":"53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", + "PreviousTxnLgrSeq":343570 + } + } + ], + "TransactionIndex":0, + "TransactionResult":"tesSUCCESS" + }, + "tx_json":{ + "Account":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "Amount":{ + "currency":"USD", + "issuer":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value":"1" + }, + "Destination":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee":"10", + "Flags":0, + "Paths":[ + [ + { + "account":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "currency":"USD", + "issuer":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "type":49, + "type_hex":"0000000000000031" + } + ], + [ + { + "account":"rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", + "currency":"USD", + "issuer":"rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", + "type":49, + "type_hex":"0000000000000031" + }, + { + "account":"rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", + "currency":"USD", + "issuer":"rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", + "type":49, + "type_hex":"0000000000000031" + }, + { + "account":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "currency":"USD", + "issuer":"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "type":49, + "type_hex":"0000000000000031" + } + ] + ], + "SendMax":{ + "currency":"USD", + "issuer":"r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value":"1.01" + }, + "Sequence":88, + "SigningPubKey":"02EAE5DAB54DD8E1C49641D848D5B97D1B29149106174322EDF98A1B2CCE5D7F8E", + "TransactionType":"Payment", + "TxnSignature":"30440220791B6A3E036ECEFFE99E8D4957564E8C84D1548C8C3E80A87ED1AA646ECCFB16022037C5CAC97E34E3021EBB426479F2ACF3ACA75DB91DCC48D1BCFB4CF547CFEAA0", + "hash":"E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", + "inLedger":348734, + "ledger_index":348734 + } + }, + "status":"success", + "type":"response" +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれます。 + +| `Field` | 型 | 説明 | +|:---------------|:-----------------|:-----------------------------------------| +| `ledger_index` | 符号なし整数 | トランザクションが検出されたレジャーバージョンのシーケンス番号。これは要求のledger_indexと同じです。 | +| `ledger_hash` | 文字列 | (省略される場合があります)トランザクションが検出されたレジャーバージョンの一意のハッシュ。これは要求のledger_hashと同じです。 | +| `metadata` | オブジェクト | トランザクションに関する各種メタデータ。 | +| `tx_json` | オブジェクト | [Transactionオブジェクト](transaction-formats.html)のJSON表現。 | + +サーバーがトランザクションの検出に失敗する原因として、次のようなものが考えられます。 + +* トランザクションが存在しません。 +* トランザクションが存在しますが、指定のレジャーバージョンに含まれていません。 +* サーバーには、使用可能な指定のレジャーバージョンがありません。正しいバージョンを保管する別のサーバーからの応答は、異なる可能性があります。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `fieldNotFoundTransaction` - `tx_hash`フィールドが要求で省略されています。 +* `notYetImplemented` - レジャーバージョンが要求に指定されていません。 +* `lgrNotFound` - `ledger_hash`または`ledger_index`で指定したレジャーが存在しないか、存在してはいるもののサーバーが保有していません。 +* `transactionNotFound` - 要求に指定されているトランザクションが指定のレジャーで見つかりませんでした。(トランザクションが異なるレジャーバージョンにあるか、またはトランザクションがまったく使用できない可能性があります。) + + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/transaction-methods/tx.ja.md b/content/references/rippled-api/public-rippled-methods/transaction-methods/tx.ja.md index 2dd6df90d3..5366e756c4 100644 --- a/content/references/rippled-api/public-rippled-methods/transaction-methods/tx.ja.md +++ b/content/references/rippled-api/public-rippled-methods/transaction-methods/tx.ja.md @@ -1,208 +1,208 @@ -# tx -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Tx.cpp "Source") - -`tx`メソッドは1つのトランザクションに関する情報を取得します。 - -## 要求フォーマット - -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 1, - "command": "tx", - "transaction": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", - "binary": false -} -``` -*JSON-RPC* - -``` -{ - "method": "tx", - "params": [ - { - "transaction": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", - "binary": false - } - ] -} -``` -*コマンドライン* - -``` -#Syntax: tx transaction [binary] -rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 false -``` - - - -[試してみる>](websocket-api-tool.html#tx) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:--------------|:--------|:---------------------------------------------------| -| `transaction` | 文字列 | トランザクションの256ビットハッシュ(16進数)。 | -| `binary` | ブール値 | (省略可、デフォルトではfalseです)trueの場合、トランザクションデータとメタデータがJSONではなく16進文字列として返されます。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 1, - "result": { - "Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "Amount": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "1" - }, - "Destination": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "Fee": "10", - "Flags": 0, - "Paths": [ - [ - { - "account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "currency": "USD", - "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "type": 49, - "type_hex": "0000000000000031" - } - ], - [ - { - "account": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", - "currency": "USD", - "issuer": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", - "type": 49, - "type_hex": "0000000000000031" - }, - { - "account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", - "currency": "USD", - "issuer": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", - "type": 49, - "type_hex": "0000000000000031" - }, - { - "account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "currency": "USD", - "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "type": 49, - "type_hex": "0000000000000031" - } - ] - ], - "SendMax": { - "currency": "USD", - "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value": "1.01" - }, - "Sequence": 88, - "SigningPubKey": "02EAE5DAB54DD8E1C49641D848D5B97D1B29149106174322EDF98A1B2CCE5D7F8E", - "TransactionType": "Payment", - "TxnSignature": "30440220791B6A3E036ECEFFE99E8D4957564E8C84D1548C8C3E80A87ED1AA646ECCFB16022037C5CAC97E34E3021EBB426479F2ACF3ACA75DB91DCC48D1BCFB4CF547CFEAA0", - "hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", - "inLedger": 348734, - "ledger_index": 348734, - "meta": { - "AffectedNodes": [ - { - "ModifiedNode": { - "FinalFields": { - "Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "Balance": "59328999119", - "Flags": 0, - "OwnerCount": 11, - "Sequence": 89 - }, - "LedgerEntryType": "AccountRoot", - "LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", - "PreviousFields": { - "Balance": "59328999129", - "Sequence": 88 - }, - "PreviousTxnID": "C26AA6B4F7C3B9F55E17CD0D11F12032A1C7AD2757229FFD277C9447A8815E6E", - "PreviousTxnLgrSeq": 348700 - } - }, - { - "ModifiedNode": { - "FinalFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "-1" - }, - "Flags": 131072, - "HighLimit": { - "currency": "USD", - "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", - "value": "100" - }, - "HighNode": "0000000000000000", - "LowLimit": { - "currency": "USD", - "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", - "value": "0" - }, - "LowNode": "0000000000000000" - }, - "LedgerEntryType": "RippleState", - "LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", - "PreviousFields": { - "Balance": { - "currency": "USD", - "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", - "value": "0" - } - }, - "PreviousTxnID": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", - "PreviousTxnLgrSeq": 343570 - } - } - ], - "TransactionIndex": 0, - "TransactionResult": "tesSUCCESS" - }, - "validated": true - }, - "status": "success", - "type": "response" -} -``` - - - -この応答は[標準のフォーマット][]に従っており、正常に完了した場合は結果に[Transactionオブジェクト](transaction-formats.html)フィールドと以下の追加のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:---------------|:-----------------|:-----------------------------------------| -| `hash` | 文字列 | トランザクションのSHA-512ハッシュ | -| `inLedger` | 符号なし整数 | (廃止予定)`ledger_index`のエイリアス。 | -| `ledger_index` | 符号なし整数 | このトランザクションが記録されているレジャーのシーケンス番号。 | -| `meta` | オブジェクト | トランザクションに関する各種メタデータ。 | -| `validated` | ブール値 | このデータが検証済みレジャーバージョンのデータである場合はtrue。省略されている場合またはfalseに設定されている場合は、このデータは最終データではありません。 | -| (各種) | (各種) | [Transactionオブジェクト](transaction-formats.html)のその他のフィールド | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `txnNotFound` - トランザクションが存在しないか、または`rippled`で使用できない古いレジャーバージョンのトランザクションです。 - - -{% include '_snippets/rippled_versions.md' %} +# tx +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Tx.cpp "Source") + +`tx`メソッドは1つのトランザクションに関する情報を取得します。 + +## 要求フォーマット + +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 1, + "command": "tx", + "transaction": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", + "binary": false +} +``` +*JSON-RPC* + +``` +{ + "method": "tx", + "params": [ + { + "transaction": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", + "binary": false + } + ] +} +``` +*コマンドライン* + +``` +#Syntax: tx transaction [binary] +rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 false +``` + + + +[試してみる>](websocket-api-tool.html#tx) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:--------------|:--------|:---------------------------------------------------| +| `transaction` | 文字列 | トランザクションの256ビットハッシュ(16進数)。 | +| `binary` | ブール値 | (省略可、デフォルトではfalseです)trueの場合、トランザクションデータとメタデータがJSONではなく16進文字列として返されます。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 1, + "result": { + "Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "Amount": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "1" + }, + "Destination": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "Fee": "10", + "Flags": 0, + "Paths": [ + [ + { + "account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "currency": "USD", + "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "type": 49, + "type_hex": "0000000000000031" + } + ], + [ + { + "account": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", + "currency": "USD", + "issuer": "rD1jovjQeEpvaDwn9wKaYokkXXrqo4D23x", + "type": 49, + "type_hex": "0000000000000031" + }, + { + "account": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", + "currency": "USD", + "issuer": "rB5TihdPbKgMrkFqrqUC3yLdE8hhv4BdeY", + "type": 49, + "type_hex": "0000000000000031" + }, + { + "account": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "currency": "USD", + "issuer": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "type": 49, + "type_hex": "0000000000000031" + } + ] + ], + "SendMax": { + "currency": "USD", + "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value": "1.01" + }, + "Sequence": 88, + "SigningPubKey": "02EAE5DAB54DD8E1C49641D848D5B97D1B29149106174322EDF98A1B2CCE5D7F8E", + "TransactionType": "Payment", + "TxnSignature": "30440220791B6A3E036ECEFFE99E8D4957564E8C84D1548C8C3E80A87ED1AA646ECCFB16022037C5CAC97E34E3021EBB426479F2ACF3ACA75DB91DCC48D1BCFB4CF547CFEAA0", + "hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7", + "inLedger": 348734, + "ledger_index": 348734, + "meta": { + "AffectedNodes": [ + { + "ModifiedNode": { + "FinalFields": { + "Account": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "Balance": "59328999119", + "Flags": 0, + "OwnerCount": 11, + "Sequence": 89 + }, + "LedgerEntryType": "AccountRoot", + "LedgerIndex": "E0D7BDE68B468FF0B8D948FD865576517DA987569833A05374ADB9A72E870A06", + "PreviousFields": { + "Balance": "59328999129", + "Sequence": 88 + }, + "PreviousTxnID": "C26AA6B4F7C3B9F55E17CD0D11F12032A1C7AD2757229FFD277C9447A8815E6E", + "PreviousTxnLgrSeq": 348700 + } + }, + { + "ModifiedNode": { + "FinalFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "-1" + }, + "Flags": 131072, + "HighLimit": { + "currency": "USD", + "issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "value": "100" + }, + "HighNode": "0000000000000000", + "LowLimit": { + "currency": "USD", + "issuer": "r3PDtZSa5LiYp1Ysn1vMuMzB59RzV3W9QH", + "value": "0" + }, + "LowNode": "0000000000000000" + }, + "LedgerEntryType": "RippleState", + "LedgerIndex": "EA4BF03B4700123CDFFB6EB09DC1D6E28D5CEB7F680FB00FC24BC1C3BB2DB959", + "PreviousFields": { + "Balance": { + "currency": "USD", + "issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji", + "value": "0" + } + }, + "PreviousTxnID": "53354D84BAE8FDFC3F4DA879D984D24B929E7FEB9100D2AD9EFCD2E126BCCDC8", + "PreviousTxnLgrSeq": 343570 + } + } + ], + "TransactionIndex": 0, + "TransactionResult": "tesSUCCESS" + }, + "validated": true + }, + "status": "success", + "type": "response" +} +``` + + + +この応答は[標準のフォーマット][]に従っており、正常に完了した場合は結果に[Transactionオブジェクト](transaction-formats.html)フィールドと以下の追加のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:---------------|:-----------------|:-----------------------------------------| +| `hash` | 文字列 | トランザクションのSHA-512ハッシュ | +| `inLedger` | 符号なし整数 | (廃止予定)`ledger_index`のエイリアス。 | +| `ledger_index` | 符号なし整数 | このトランザクションが記録されているレジャーのシーケンス番号。 | +| `meta` | オブジェクト | トランザクションに関する各種メタデータ。 | +| `validated` | ブール値 | このデータが検証済みレジャーバージョンのデータである場合はtrue。省略されている場合またはfalseに設定されている場合は、このデータは最終データではありません。 | +| (各種) | (各種) | [Transactionオブジェクト](transaction-formats.html)のその他のフィールド | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `txnNotFound` - トランザクションが存在しないか、または`rippled`で使用できない古いレジャーバージョンのトランザクションです。 + + +{% include '_snippets/rippled_versions.md' %} {% include '_snippets/rippled-api-links.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/public-rippled-methods/transaction-methods/tx_history.ja.md b/content/references/rippled-api/public-rippled-methods/transaction-methods/tx_history.ja.md index e1d4f31ea9..24fe3a4ab7 100644 --- a/content/references/rippled-api/public-rippled-methods/transaction-methods/tx_history.ja.md +++ b/content/references/rippled-api/public-rippled-methods/transaction-methods/tx_history.ja.md @@ -1,898 +1,898 @@ -# tx_history -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/TxHistory.cpp "Source") - -`tx_history`メソッドは、直近に作成されたトランザクションの一部を取得します。 - -**注意:** このメソッドは廃止予定であり、今後予告なしに削除される可能性があります。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id": 5, - "command": "tx_history", - "start": 0 -} -``` - -*JSON-RPC* - -``` -{ - "method": "tx_history", - "params": [ - { - "start": 0 - } - ] -} -``` - -*コマンドライン* - -``` -#Syntax: tx_history [start] -rippled tx_history 0 -``` - - - -[試してみる>](websocket-api-tool.html#tx_history) - -要求には以下のパラメーターが含まれます。 - -| `Field` | 型 | 説明 | -|:--------|:-----------------|:-------------------------------------| -| `start` | 符号なし整数 | スキップするトランザクションの数。 | - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id": 2, - "status": "success", - "type": "response", - "result": { - "index": 0, - "txs": [ - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907169, - "Sequence": 3276, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TransactionType": "AccountSet", - "TxnSignature": "3045022100CC0A2688DC36DC47BDBD5A571407316DD16A6CB3289E60C9589531707D30EBDB022010A2ED1F8562FEF61461B89E90E9D7245F5DD1AAE6680401A60F7FDA60184312", - "hash": "30FF69D2F2C2FF517A82EC8BA62AA4879E27A6EAF2C9B4AA422B77C23CD11B35", - "inLedger": 6907162, - "ledger_index": 6907162 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479735, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "9999999999", - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "48.050907917" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100C110F47609CED085E0C184396877685ACAFF0A5846C859E9A57A8E238788FAE2022042A578D36F3D911E2536A39D74B10A741EF4C77B40738DB66E9E4FA85B797DF2", - "hash": "A5DE72E2E97CB0FA548713FB7C8542FD1A9723EC556D386F13B25F052435B29F", - "inLedger": 6907162, - "ledger_index": 6907162 - }, - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907169, - "Sequence": 3275, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TransactionType": "AccountSet", - "TxnSignature": "3044022030E4CCDCBA8D9984C16AD9807D0FE654D4C558C08728B33A6D9F4D05DA811CF102202A6B53015583A6C24054EE93D9B9DDF0D17133676848304BBA5156DD2C2875BE", - "hash": "55DFC8F7EF3976B5968DC462D91B29274E8097C35D43D6B3740AB20584336A9C", - "inLedger": 6907162, - "ledger_index": 6907162 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 131072, - "Sequence": 1479734, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.009194668" - }, - "TakerPays": "1073380944", - "TransactionType": "OfferCreate", - "TxnSignature": "304402202C0D26EABE058FCE8B6862EF5CAB70674637CE32B1B4E2F3551B9D5A2E1CDC7E02202C191D2697C65478BC2C1489721EB5799A6F3D4A1ECD8FE87A0C4FDCA3704A03", - "hash": "2499BAE9947BE731D7FE2F8E7B6A55E1E5B43BA8D3A9F22E39F79A0CC027A1C8", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 131072, - "Sequence": 1479733, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "5.298037873" - }, - "TakerPays": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.008937558999999999" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022075EF6054ABD08F9B8287314AD4904944A74A6C3BBED9D035BCE7D409FC46E49E022025CFEE7F72BEC1F87EA83E3565CB653643A57CDD13661798D6B70F47AF63FDB6", - "hash": "F873CB065791DDD503580931A500BB896B9DBAFC9C285C1159B884354F3EF48B", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479726, - "Sequence": 1479732, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100E82B813DA3896051EAAA3D53E197F8F426DF4E51F07A2AB83E43B10CD4008D8402204D93BABA74E63E775D44D77F4F9B07D69B0C86930F2865BBBBD2DC956FA8AE4E", - "hash": "203613CFA3CB7BFBCFABBBCF80D932DFBBFDECCBB869CCDBE756EAA4C8EEA41D", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479725, - "Sequence": 1479731, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "30440220678FF2E754A879EAE72207F191614BBA01B8088CD174AF509E9AA11448798CD502205B326E187A0530E4E90BDD1ED875492836657E4D593FBD655F64604178693D2F", - "hash": "1CF4D0D583F6FC85BFD15A0BEF5E4779A8ACAD0DE43823F07C9CC2A20E29E422", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479724, - "Sequence": 1479730, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100A5533E81A67B6A88B674864E898FDF31D83787FECE496544EBEE88E6FC220500022002438599B2A0E4F70C2B46FB049CD339F76E466399CA4A8F72C4ADA03F615D90", - "hash": "D96EC06F2ADF3CF7ED59BD76B8F1BDB127CDE46B45977B477703DB05B8DF5208", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479723, - "Sequence": 1479729, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "304402206DEF8C70103AE45BCED6762B238E6F155A57D46300E8FF0A1CD0197362483CAE022007BBDFD93A0BC2473EE4537B44095D1BB5EB83F76661A14230FB3B27C4EABB6D", - "hash": "089D22F601FB52D0E55A8E27D393F05570DC24E92028BB9D9DCAD7BC3337ADF9", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479722, - "Sequence": 1479728, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3044022065051B7240DE1D46865453B3D7F8FC59FB2B9FD609196AB394F857B75E2B8409022044683F3A35740FC97655A8A4516184D8C582E5D88CA360301B1AD308F4126763", - "hash": "F6A660EF99E32D02B9AF761B14993CA1ED8BAF3507F580D90A7759ABFAF0284E", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rUBLCjWdsPPMkppdFXVJWhHnr3FNqCzgG3", - "Fee": "15", - "Flags": 0, - "LastLedgerSequence": 6907168, - "Sequence": 173286, - "SigningPubKey": "03D606359EEA9C0A49CA9EF55F6AED6C8AEDDE604223C1BE51A2D0460A725CF173", - "TakerGets": { - "currency": "BTC", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.44942631" - }, - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "260" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "304502205395AF4127AD0B890AC9C47F765B4F4046C70C3DFC6F8DCD2729552FAA97F13C022100C8C2DBA6A466D76D0F103AC88DB166D1EC7F6339238E2C4245C2C26308B38058", - "hash": "F20F06F36B5FEFF43DD1E8AEDBE9A0ECEF0CE41402AE6F0FE4BEE1F2F82A4D54", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rDVynssGDojUPpM4abx9rxYeHG4HiLGxC", - "Fee": "15", - "Flags": 2147483648, - "LastLedgerSequence": 6907169, - "OfferSequence": 859, - "Sequence": 860, - "SigningPubKey": "02C37DA8D793142BD190CE13BB697521A89D1DC318A045816EE657F42527EBFC4E", - "TakerGets": "19871628459", - "TakerPays": { - "currency": "BTC", - "issuer": "rfYv1TXnwgDDK4WQNbFALykYuEBnrR4pDX", - "value": "0.166766470665369" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022074737D253A0DB39DBB6C63E5BD522C1313CC57658B0A567E1F1DD3414DA3817502201F333D81F29845C53A0271D0C5B005DEE4A250529DAD1A880838E242D358EE35", - "hash": "AD197326AEF75AA466F32FEA87358C9FB587F1C1ABF41C73E2C3EFDD83B6F33B", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "OfferSequence": 1479721, - "Sequence": 1479727, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100CCD7336F78291E1BCAA4F86695119175E0DBC26281B2F13B30A24C726419DFCA022062547E0A4894CEAE87C42CABA94E0731134560F07D8860AE62F4A87AFD16BC43", - "hash": "20353EA4152C32E63941DE2F3175BA69657BA9FAB39D22BCE38B6CA1B3734D4B", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907168, - "Sequence": 3274, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TransactionType": "AccountSet", - "TxnSignature": "3045022100F8412BBB1DB830F314F7400E99570A9F92668ACCDEA6096144A47EDF98E18D5D02204AD89122224F353155EACC30F80BA214350968F744A480B4CD5A3174B473D6AF", - "hash": "16F266ABCC617CF906A25AA83BDDAD2577125E6A692A36543934AA0F0C3B77C0", - "inLedger": 6907161, - "ledger_index": 6907161 - }, - { - "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", - "Fee": "12", - "Flags": 2147483648, - "LastLedgerSequence": 6907167, - "Sequence": 3273, - "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", - "TakerGets": "5397", - "TakerPays": { - "currency": "USD", - "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "value": "0.00002593363079073453" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022061685E23375A299747DE45DA302966C6AF8C07D2DA9BEBB4F5572E3B02C6564D02207187E626EC817EFAFFAD002E75FC16E17A5BD54DA41D4E339F3C2A9F86FFD523", - "hash": "C9112B7C246FC8A9B377BD762F1D64F0DCA1128D55254A442E5735935A09D83E", - "inLedger": 6907160, - "ledger_index": 6907160 - }, - { - "Account": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", - "Amount": { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "value": "4" - }, - "Destination": "r4X3WWZ3UZMDw3Z7T32FXK2NAaiitSWZ9c", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 6907168, - "Paths": [ - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "XRP", - "type": 16, - "type_hex": "0000000000000010" - }, - { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "USD", - "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "XRP", - "type": 16, - "type_hex": "0000000000000010" - }, - { - "currency": "USD", - "issuer": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ], - [ - { - "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "currency": "XRP", - "type": 16, - "type_hex": "0000000000000010" - }, - { - "currency": "USD", - "issuer": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", - "type": 48, - "type_hex": "0000000000000030" - }, - { - "account": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", - "type": 1, - "type_hex": "0000000000000001" - }, - { - "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", - "type": 1, - "type_hex": "0000000000000001" - } - ] - ], - "SendMax": { - "currency": "USD", - "issuer": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", - "value": "4.132649022" - }, - "Sequence": 4660, - "SigningPubKey": "03DFEFC9A95AEF55232A2B89867745CE45373F5CE23C34D51D21343CEA92BD61AD", - "TransactionType": "Payment", - "TxnSignature": "30450220636E405B96C998BF5EBB665D519FA8B4431A6CB5962F754EEDD48EBE95F8C45F02210097851E297FEDA44F7DFED844AE109CF2D968BD58CD3C0E951B435278A91002FA", - "hash": "5007E8ECAE64482D258E915FFDEFAF2FE35ED9520BA7BB424BE280691F997435", - "inLedger": 6907160, - "ledger_index": 6907160 - }, - { - "Account": "rfESTMcbvbvCBqU1FTvGWiJP8cmUSu4GKg", - "Amount": { - "currency": "BTC", - "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", - "value": "0.0998" - }, - "Destination": "r3AWbdp2jQLXLywJypdoNwVSvr81xs3uhn", - "Fee": "10", - "Flags": 2147483648, - "InvoiceID": "A98FD36C17BE2B8511AD36DC335478E7E89F06262949F36EB88E2D683BBCC50A", - "SendMax": { - "currency": "BTC", - "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", - "value": "0.100798" - }, - "Sequence": 18697, - "SigningPubKey": "025D9E40A50D78347EB8AFF7A36222BBE173CB9D06E68D109D189FF8616FC21107", - "TransactionType": "Payment", - "TxnSignature": "3044022007AA39E0117963ABF03BAEF0C5AB45862093525344362D34B9F6BA8373A0C9DC02206AB4FE915F4CBDA84E668F7F21A9914DC95C83A72FB3F9A114B10D4ECB697A25", - "hash": "C738A5095DCE3A256C843AA48BB26F0339EAD3FF09B6D75C2EF50C4AD4B4D17C", - "inLedger": 6907159, - "ledger_index": 6907159 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479726, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "37284087", - "TakerPays": { - "currency": "NZD", - "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", - "value": "0.291570426" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100F246F043C97C0DA7947793E9390DBA5AB0C6EB4A0165DADF0E96C939B70D113C0220797F572368EF68490813663C0E2ACF03424CB73B64F3D6C8508C7E8F6D2CC767", - "hash": "CAE39A38C222DF0BBC9AA25D30320220DC216646CE0A447F330BE279B20BD008", - "inLedger": 6907159, - "ledger_index": 6907159 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479725, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "10000000000", - "TakerPays": { - "currency": "BTC", - "issuer": "ra9eZxMbJrUcgV8ui7aPc161FgrqWScQxV", - "value": "0.091183099" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "30440220376E6D149435B87CA761ED1A9BD205BA93C0C30D6EB1FB26D8B5D06A55977F510220213E882DD43BC78C96B51E43273D9BD451F8337DDF6960CBFB9802A347FF18E4", - "hash": "CC07A503ED60F14AF023AB839C726B73591DE5C986D1234671E2518D8F840E12", - "inLedger": 6907159, - "ledger_index": 6907159 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "15", - "Flags": 0, - "Sequence": 1479724, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "9094329166", - "TakerPays": { - "currency": "XAG", - "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", - "value": "3.022830117" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100CFD63762B3809B37B6A1294C4B4C8DA39023D66893045BA4AA9767DD8570A8F9022005F42B08E94190637158E80DAE99F3FB104EC2AA30F69BBA3417E5BBCDB5DB77", - "hash": "64029D736C34D21CDB100D976A06A988E2CA6E3BBC0DDFCE840D9619B853B47C", - "inLedger": 6907159, - "ledger_index": 6907159 - } - ] - } -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result": { - "index": 0, - "status": "success", - "txs": [ - { - "Account": "rPJnufUfjS22swpE7mWRkn2VRNGnHxUSYc", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 567546, - "SigningPubKey": "0317766BFFC0AAF5DB4AFDE23236624304AC4BC903AA8B172AE468F6B512616D6A", - "TakerGets": { - "currency": "BTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "1.12582" - }, - "TakerPays": { - "currency": "ILS", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "1981.893528" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100C66F3EE8F955724D750D148E3BB9DCAC16A002F9E4FC612C03AFBE9D8C13888902202607508AD0546C496093C9743B13FD596A1F5BE2B778EFE85BDB99F0E5B1D55F", - "hash": "A95C701F6120061BC40323AE846BBDA51576E67EC38105030BE75C1D32231B61", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rwpxNWdpKu2QVgrh5LQXEygYLshhgnRL1Y", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 1865518, - "SigningPubKey": "02BD6F0CFD0182F2F408512286A0D935C58FF41169DAC7E721D159D711695DFF85", - "TakerGets": { - "currency": "LTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "1.12095" - }, - "TakerPays": { - "currency": "ILS", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "20.77526133899999" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "304402203F7435A2587A71878B09129A1F4C05066CE6E6463A4A10CD5C40C15FCBD9E42502207E0CB8421FEA4CE8FC052E5A63ACD2444ADAE253B174A153A1DBE901E21B3695", - "hash": "A8C79DF180167E4D1281247325E2869984F54CBFA68631C1AF13DA346E6B3370", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rMWUykAmNQDaM9poSes8VLDZDDKEbmo7MX", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 1886203, - "SigningPubKey": "0256C64F0378DCCCB4E0224B36F7ED1E5586455FF105F760245ADB35A8B03A25FD", - "TakerGets": { - "currency": "LTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "24.154" - }, - "TakerPays": { - "currency": "BTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.26907556" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "30440220102CF96A86AF56BA11698C70D60F22436D763634FEA179D2FF45EB329CFF1CF8022029BF9301B11D09B38EBD4E8EB445ECC53B98C4F0CA7E19BE895272085ED6DBA2", - "hash": "9EE340379612529F308CA1E4619EC0C8842C1D4308FCA136E25316CE28C28189", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rJJksugQDMVu12NrZyw3C55fEUmPtRYVRC", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 119205, - "SigningPubKey": "03B918730C9FA2451284A00B1EFD08E9BEFD735D84CE09C6B3D7CB8FB0D1F9A84F", - "TakerGets": "10136500000", - "TakerPays": { - "currency": "USD", - "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "value": "50" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022044DB48A760AA7FBA2B1840E1357EF6B1EA9CC9DBBFFB5415C6BE301597B66766022021AA86070416330312E3AFC938376AD0A67A28195D7CD92EC8B03A6039D5C86C", - "hash": "8149067582081FA1499A53841642345D21FE0750E29C61C6DC3C914E0D1819AB", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rLPrL6KUtVZZbDfJMjDXzTKkwH39Udfw6e", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 428775, - "SigningPubKey": "03B2B67209DBDE2FA68555FB10BD791C4732C685349979FDC47D0DEF2B27EFA364", - "TakerGets": { - "currency": "PPC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "8.0635" - }, - "TakerPays": { - "currency": "BTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.01355474349999999" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100EDDC17FE2C32DEAD8ED5D9540B2ECE25D6CD1C65414211D2E4F98FC5BDABB99E0220389D6B3DE8BA50D27406BCE28E67D1E270C6A3A854CDEF25F042BBA52CDB53F8", - "hash": "70B7DB8E2BD65E554CBF418D591E050A6FD0A387E9500ED0B79BEB775019D9CA", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rM7WN56kktEkE5qKwNkQ1af4BZ56bynVUf", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 435008, - "SigningPubKey": "0256AE48790FEF5F61C1AB3765287EABCBE6B47C5098271F596A576DF7CFA15720", - "TakerGets": { - "currency": "PPC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.365" - }, - "TakerPays": { - "currency": "ILS", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.9977421" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3044022057ECAE71B36746AA1574936B03016DC5747EB7DBBA7D85533063E8D35DD2BAF402204F37BCA51CB0D943758BCA89641C2655FB76F20B8AD1883A3ABF232D1E964E80", - "hash": "572B0B2E96F4A9A88C7EDBDEB6D90AD2975528478186D9179AEC0E366D2778FC", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rLjhDX8zT6vy8T7hjUDvK48wTy5SYFpfwZ", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 432536, - "Sequence": 432561, - "SigningPubKey": "03892D08CE3CE600369BA83A92C3C7785FEA162739643358F1F35F8BE672AFD4A3", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100C25CE3756EB273F6ADD219E951DB7585ADFAF28090BEA3510458785D2EB91866022057A480F167F6D7263CDBFB0E13D571041313F6476176FFE2645CE867BA85DC2D", - "hash": "521D7F2CF76DEAC8ED695AC5570DFF1E445EB8C599158A351BD46F1D34528373", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rn694SpeUFw3VJwapyRKx6bpru3ZpDHzji", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 396235, - "SigningPubKey": "03896496732D098F2D8EE22D65ED9A88C0FF116785AE448EA1F521534C7C5BC6E3", - "TakerGets": { - "currency": "ILS", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.700491" - }, - "TakerPays": { - "currency": "NMC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.22" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "30440220218B5B90AB26EAE9FC9833E580653B20A15CEE86E8F1166F626FCDF4EFD4146902207FD99E35EE67E45142776CCD8F910A9E6E1A3C498737B59F182C73183C63D51F", - "hash": "454479D7EEE4081CF25378571D74858C01B0B43D3A2530781647BD40CD0465E5", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 676061, - "SigningPubKey": "030BB49C591C9CD65C945D4B78332F27633D7771E6CF4D4B942D26BA40748BB8B4", - "TakerGets": { - "currency": "BTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.09675" - }, - "TakerPays": "10527647107", - "TransactionType": "OfferCreate", - "TxnSignature": "3044022014196BC5867AC2689F7EF31F23E4B2D1D1B7755465AC388B20F8E7721333EEE302201575263F381755E47AFCD37C1D5CCA4C012D624E7947140B40ABF1975959AA78", - "hash": "22B2F477ADE9C22599EB5CEF70B3377C0478D708D74A47866D9E59B7A2CF57CF", - "inLedger": 8696235, - "ledger_index": 8696235 - }, - { - "Account": "rJJksugQDMVu12NrZyw3C55fEUmPtRYVRC", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 119183, - "Sequence": 119204, - "SigningPubKey": "03B918730C9FA2451284A00B1EFD08E9BEFD735D84CE09C6B3D7CB8FB0D1F9A84F", - "TransactionType": "OfferCancel", - "TxnSignature": "30440220481760ED4F771F960F37FDF32DDEC70D10F9D5F9868571A58D6F5C09D75B71DE022049B35BEA448686D0929271E64EADA684D7684A9195D22826288AD9D9526B4FE9", - "hash": "5E0E42BDDC7A929875F5E9214AB00C3673CC047833C0EFC093532F2EE1F790C2", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rM7WN56kktEkE5qKwNkQ1af4BZ56bynVUf", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 434977, - "Sequence": 435007, - "SigningPubKey": "0256AE48790FEF5F61C1AB3765287EABCBE6B47C5098271F596A576DF7CFA15720", - "TransactionType": "OfferCancel", - "TxnSignature": "304402204B04325A39F3D394A7EBC91CE3A1232E538EFFC80014473C97E84310886A19B302205B2D18C544086BB99E49A1037B65ADDF4864DA60545E33E4116A41599EEE63E3", - "hash": "E8E55606C757219A740AFA0700506FE99781797E2F54A5144EF43582C65BF0F2", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rLPrL6KUtVZZbDfJMjDXzTKkwH39Udfw6e", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 428744, - "Sequence": 428774, - "SigningPubKey": "03B2B67209DBDE2FA68555FB10BD791C4732C685349979FDC47D0DEF2B27EFA364", - "TransactionType": "OfferCancel", - "TxnSignature": "304402202BCB4FCE73C3417AD3E67D795077DE025E766A9136CA20D5B07DA28EA717643E0220579CA32A7BB225DA01999637B316BF7D3902059F9A8DDB2D721F8A62685E5BB7", - "hash": "E86788EC72CA9CFBBAE4C399744C6B7495E3F6443FE87D7A4118F16FA4A316DB", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", - "Fee": "64", - "Flags": 0, - "Sequence": 4216371, - "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", - "TakerGets": "12566721624", - "TakerPays": { - "currency": "USD", - "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", - "value": "74.999999999" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100D0FA06A78D3333D35C798B45590CD47BD844164ED25FCA4149F5F0CF24BE9A380220243EB636C656D1FBA6888CE8E2873CDA40FE6DE5987BE2FF1C418610D8BDC300", - "hash": "DD4CAD3EBCF67CE9B184A917FF2C78A80F0FE40A01187840E0EBC6B479DBFE1A", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rJJksugQDMVu12NrZyw3C55fEUmPtRYVRC", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 119182, - "Sequence": 119203, - "SigningPubKey": "03B918730C9FA2451284A00B1EFD08E9BEFD735D84CE09C6B3D7CB8FB0D1F9A84F", - "TransactionType": "OfferCancel", - "TxnSignature": "304402202F13D25C82240ABBBEE0D7E8BC2351C49FD6FDD62359EA232233C5A6C989BFAA022005A521A2C5A67BAC27218A6AD9E6917689CBD2F9BB9CE884B6B0EAAEDDEC2057", - "hash": "C9D8A2ECE636057E8255A231E6C6B6464A730155BA0E75B5111A81EA769FBC89", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rGJrzrNBfv6ndJmzt1hTUJVx7z8o2bg3of", - "Fee": "15", - "Flags": 2147483648, - "LastLedgerSequence": 8696241, - "OfferSequence": 1579754, - "Sequence": 1579755, - "SigningPubKey": "03325EB29A014DDE22289D0EA989861D481D54D54C727578AB6C2F18BC342D3829", - "TransactionType": "OfferCancel", - "TxnSignature": "3045022100C9F283D461F8A56575A56F8AA31F84683AB0B44D58C9EFD5DC20D448D8AC13E3022012E0A8726BE2D900C4FB7A61AB8FBFEBEBE1F12B2A9880A2BA2AB8D3EC61CB8C", - "hash": "C4953FE328D54E9104F66253AF50AEBC26E30D5826B433465A795262DFA75B48", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rn694SpeUFw3VJwapyRKx6bpru3ZpDHzji", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 396234, - "SigningPubKey": "03896496732D098F2D8EE22D65ED9A88C0FF116785AE448EA1F521534C7C5BC6E3", - "TakerGets": { - "currency": "ILS", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.3335471399999999" - }, - "TakerPays": { - "currency": "NMC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.102" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100DEA2B6D5B0D555D54A4EB7A8FADC187F44C6A9CF7282A1D5491538200DFC97DA022033A52D1EC219553C86DB829108BB5A52B49ED7EF0A566941665DE7FFF70917ED", - "hash": "A6BE633AECE9FF9CA83D67D09E7EF67F614A9D8B952D7AFB5CB630D03C54C9FC", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rwpxNWdpKu2QVgrh5LQXEygYLshhgnRL1Y", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 1865490, - "Sequence": 1865517, - "SigningPubKey": "02BD6F0CFD0182F2F408512286A0D935C58FF41169DAC7E721D159D711695DFF85", - "TransactionType": "OfferCancel", - "TxnSignature": "3044022074A4E9859A5A94169B2C902F074AA964C45E2B86EABEA73E83E083E1EC7549A402203E8F4D46705AFEDFC78C2D40FAA036792E6485AF8CADF7445EA3D427E9DC2474", - "hash": "A49285E2CA7C5765B68A41EF4A8A65AD5CC7D4EF6C7B7F6D5040B2DE429E0125", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rPJnufUfjS22swpE7mWRkn2VRNGnHxUSYc", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 567545, - "SigningPubKey": "0317766BFFC0AAF5DB4AFDE23236624304AC4BC903AA8B172AE468F6B512616D6A", - "TakerGets": { - "currency": "BTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "0.66099" - }, - "TakerPays": { - "currency": "ILS", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "1157.5521276" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "3045022100CABC7C1F9FB42C8498E1E9C6C5E8482F325D39B15D9DAE4BD9878D5E508B8FDD0220407B059A22BBBF4FC4AE18BEDCD2DDA80109EE7226D679A8A3BBFC108EFDD3AB", - "hash": "A0BED2F5A85C48A2AFBA252FF91FD2D5C90A6D6B769068B18891B031812E2AC0", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rLLq27Wat93Gxkq5mV5GxtKkT146Su949V", - "Fee": "10", - "Flags": 2147483648, - "Sequence": 722529, - "SigningPubKey": "02A1BC1CCFACECD00ADC6EE990E2E27148E00D5386A99791F25B6A880BCEC94EC9", - "TakerGets": "130272502088", - "TakerPays": { - "currency": "BTC", - "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", - "value": "1.3177" - }, - "TransactionType": "OfferCreate", - "TxnSignature": "30440220436C4A368D534FE1E9A2596C51D1D54931432B789F249E312877FF9B38A3F4D502202A2DBF9517358C009FBEA61EE927DAF72A065A840C7B9136B10C125F25FCD175", - "hash": "9627AEFC735A848AAE6C36D1089CB8797373DBE95B60E89F5412508CA907243A", - "inLedger": 8696234, - "ledger_index": 8696234 - }, - { - "Account": "rMWUykAmNQDaM9poSes8VLDZDDKEbmo7MX", - "Fee": "10", - "Flags": 2147483648, - "OfferSequence": 1886173, - "Sequence": 1886202, - "SigningPubKey": "0256C64F0378DCCCB4E0224B36F7ED1E5586455FF105F760245ADB35A8B03A25FD", - "TransactionType": "OfferCancel", - "TxnSignature": "304402202C7BD2C125A0B837CBD2E2FF568AEA1E0EE94615B22564A51C0434460C506C6F02204E39A7BD49086AA794B20F4EE28656217561909ECFBB18636CD400AB33AB0B17", - "hash": "57277F527B8EBD68FE85906E613338D68F8F8BC4EB3D1748D9A204D7CDC3E174", - "inLedger": 8696234, - "ledger_index": 8696234 - } - ] - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:--------|:-----------------|:------------------------------------------| -| `index` | 符号なし整数 | 要求に使用されている`start`の値。 | -| `txs` | 配列 | トランザクションオブジェクトの配列。 | - -各トランザクションオブジェクトに含まれているフィールドは、トランザクションのタイプに応じて多少異なります。詳細は、[トランザクションのフォーマット](transaction-formats.html)を参照してください。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 -* `noPermission` - `start`フィールドに指定されている値が10000を超えていますが、サーバーに管理者として接続していません。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# tx_history +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/TxHistory.cpp "Source") + +`tx_history`メソッドは、直近に作成されたトランザクションの一部を取得します。 + +**注意:** このメソッドは廃止予定であり、今後予告なしに削除される可能性があります。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id": 5, + "command": "tx_history", + "start": 0 +} +``` + +*JSON-RPC* + +``` +{ + "method": "tx_history", + "params": [ + { + "start": 0 + } + ] +} +``` + +*コマンドライン* + +``` +#Syntax: tx_history [start] +rippled tx_history 0 +``` + + + +[試してみる>](websocket-api-tool.html#tx_history) + +要求には以下のパラメーターが含まれます。 + +| `Field` | 型 | 説明 | +|:--------|:-----------------|:-------------------------------------| +| `start` | 符号なし整数 | スキップするトランザクションの数。 | + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id": 2, + "status": "success", + "type": "response", + "result": { + "index": 0, + "txs": [ + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907169, + "Sequence": 3276, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100CC0A2688DC36DC47BDBD5A571407316DD16A6CB3289E60C9589531707D30EBDB022010A2ED1F8562FEF61461B89E90E9D7245F5DD1AAE6680401A60F7FDA60184312", + "hash": "30FF69D2F2C2FF517A82EC8BA62AA4879E27A6EAF2C9B4AA422B77C23CD11B35", + "inLedger": 6907162, + "ledger_index": 6907162 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479735, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "9999999999", + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "48.050907917" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100C110F47609CED085E0C184396877685ACAFF0A5846C859E9A57A8E238788FAE2022042A578D36F3D911E2536A39D74B10A741EF4C77B40738DB66E9E4FA85B797DF2", + "hash": "A5DE72E2E97CB0FA548713FB7C8542FD1A9723EC556D386F13B25F052435B29F", + "inLedger": 6907162, + "ledger_index": 6907162 + }, + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907169, + "Sequence": 3275, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TransactionType": "AccountSet", + "TxnSignature": "3044022030E4CCDCBA8D9984C16AD9807D0FE654D4C558C08728B33A6D9F4D05DA811CF102202A6B53015583A6C24054EE93D9B9DDF0D17133676848304BBA5156DD2C2875BE", + "hash": "55DFC8F7EF3976B5968DC462D91B29274E8097C35D43D6B3740AB20584336A9C", + "inLedger": 6907162, + "ledger_index": 6907162 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 131072, + "Sequence": 1479734, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.009194668" + }, + "TakerPays": "1073380944", + "TransactionType": "OfferCreate", + "TxnSignature": "304402202C0D26EABE058FCE8B6862EF5CAB70674637CE32B1B4E2F3551B9D5A2E1CDC7E02202C191D2697C65478BC2C1489721EB5799A6F3D4A1ECD8FE87A0C4FDCA3704A03", + "hash": "2499BAE9947BE731D7FE2F8E7B6A55E1E5B43BA8D3A9F22E39F79A0CC027A1C8", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 131072, + "Sequence": 1479733, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "5.298037873" + }, + "TakerPays": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.008937558999999999" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022075EF6054ABD08F9B8287314AD4904944A74A6C3BBED9D035BCE7D409FC46E49E022025CFEE7F72BEC1F87EA83E3565CB653643A57CDD13661798D6B70F47AF63FDB6", + "hash": "F873CB065791DDD503580931A500BB896B9DBAFC9C285C1159B884354F3EF48B", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479726, + "Sequence": 1479732, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100E82B813DA3896051EAAA3D53E197F8F426DF4E51F07A2AB83E43B10CD4008D8402204D93BABA74E63E775D44D77F4F9B07D69B0C86930F2865BBBBD2DC956FA8AE4E", + "hash": "203613CFA3CB7BFBCFABBBCF80D932DFBBFDECCBB869CCDBE756EAA4C8EEA41D", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479725, + "Sequence": 1479731, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "30440220678FF2E754A879EAE72207F191614BBA01B8088CD174AF509E9AA11448798CD502205B326E187A0530E4E90BDD1ED875492836657E4D593FBD655F64604178693D2F", + "hash": "1CF4D0D583F6FC85BFD15A0BEF5E4779A8ACAD0DE43823F07C9CC2A20E29E422", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479724, + "Sequence": 1479730, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100A5533E81A67B6A88B674864E898FDF31D83787FECE496544EBEE88E6FC220500022002438599B2A0E4F70C2B46FB049CD339F76E466399CA4A8F72C4ADA03F615D90", + "hash": "D96EC06F2ADF3CF7ED59BD76B8F1BDB127CDE46B45977B477703DB05B8DF5208", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479723, + "Sequence": 1479729, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "304402206DEF8C70103AE45BCED6762B238E6F155A57D46300E8FF0A1CD0197362483CAE022007BBDFD93A0BC2473EE4537B44095D1BB5EB83F76661A14230FB3B27C4EABB6D", + "hash": "089D22F601FB52D0E55A8E27D393F05570DC24E92028BB9D9DCAD7BC3337ADF9", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479722, + "Sequence": 1479728, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3044022065051B7240DE1D46865453B3D7F8FC59FB2B9FD609196AB394F857B75E2B8409022044683F3A35740FC97655A8A4516184D8C582E5D88CA360301B1AD308F4126763", + "hash": "F6A660EF99E32D02B9AF761B14993CA1ED8BAF3507F580D90A7759ABFAF0284E", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rUBLCjWdsPPMkppdFXVJWhHnr3FNqCzgG3", + "Fee": "15", + "Flags": 0, + "LastLedgerSequence": 6907168, + "Sequence": 173286, + "SigningPubKey": "03D606359EEA9C0A49CA9EF55F6AED6C8AEDDE604223C1BE51A2D0460A725CF173", + "TakerGets": { + "currency": "BTC", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.44942631" + }, + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "260" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "304502205395AF4127AD0B890AC9C47F765B4F4046C70C3DFC6F8DCD2729552FAA97F13C022100C8C2DBA6A466D76D0F103AC88DB166D1EC7F6339238E2C4245C2C26308B38058", + "hash": "F20F06F36B5FEFF43DD1E8AEDBE9A0ECEF0CE41402AE6F0FE4BEE1F2F82A4D54", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rDVynssGDojUPpM4abx9rxYeHG4HiLGxC", + "Fee": "15", + "Flags": 2147483648, + "LastLedgerSequence": 6907169, + "OfferSequence": 859, + "Sequence": 860, + "SigningPubKey": "02C37DA8D793142BD190CE13BB697521A89D1DC318A045816EE657F42527EBFC4E", + "TakerGets": "19871628459", + "TakerPays": { + "currency": "BTC", + "issuer": "rfYv1TXnwgDDK4WQNbFALykYuEBnrR4pDX", + "value": "0.166766470665369" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022074737D253A0DB39DBB6C63E5BD522C1313CC57658B0A567E1F1DD3414DA3817502201F333D81F29845C53A0271D0C5B005DEE4A250529DAD1A880838E242D358EE35", + "hash": "AD197326AEF75AA466F32FEA87358C9FB587F1C1ABF41C73E2C3EFDD83B6F33B", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "OfferSequence": 1479721, + "Sequence": 1479727, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100CCD7336F78291E1BCAA4F86695119175E0DBC26281B2F13B30A24C726419DFCA022062547E0A4894CEAE87C42CABA94E0731134560F07D8860AE62F4A87AFD16BC43", + "hash": "20353EA4152C32E63941DE2F3175BA69657BA9FAB39D22BCE38B6CA1B3734D4B", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907168, + "Sequence": 3274, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TransactionType": "AccountSet", + "TxnSignature": "3045022100F8412BBB1DB830F314F7400E99570A9F92668ACCDEA6096144A47EDF98E18D5D02204AD89122224F353155EACC30F80BA214350968F744A480B4CD5A3174B473D6AF", + "hash": "16F266ABCC617CF906A25AA83BDDAD2577125E6A692A36543934AA0F0C3B77C0", + "inLedger": 6907161, + "ledger_index": 6907161 + }, + { + "Account": "r9bf8V4ae5xReYnKPXgnwERDFPoW34FhGy", + "Fee": "12", + "Flags": 2147483648, + "LastLedgerSequence": 6907167, + "Sequence": 3273, + "SigningPubKey": "03B7857216DF96BABCC839686670A67602B3EE50D0F12B41C15F73760B8ED394C1", + "TakerGets": "5397", + "TakerPays": { + "currency": "USD", + "issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "value": "0.00002593363079073453" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022061685E23375A299747DE45DA302966C6AF8C07D2DA9BEBB4F5572E3B02C6564D02207187E626EC817EFAFFAD002E75FC16E17A5BD54DA41D4E339F3C2A9F86FFD523", + "hash": "C9112B7C246FC8A9B377BD762F1D64F0DCA1128D55254A442E5735935A09D83E", + "inLedger": 6907160, + "ledger_index": 6907160 + }, + { + "Account": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", + "Amount": { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "value": "4" + }, + "Destination": "r4X3WWZ3UZMDw3Z7T32FXK2NAaiitSWZ9c", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 6907168, + "Paths": [ + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "USD", + "issuer": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" + }, + { + "currency": "USD", + "issuer": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rwmUaXsWtXU4Z843xSYwgt1is97bgY8yj6", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ], + [ + { + "account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "currency": "XRP", + "type": 16, + "type_hex": "0000000000000010" + }, + { + "currency": "USD", + "issuer": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", + "type": 48, + "type_hex": "0000000000000030" + }, + { + "account": "rfsEoNBUBbvkf4jPcFe2u9CyaQagLVHGfP", + "type": 1, + "type_hex": "0000000000000001" + }, + { + "account": "rMwjYedjc7qqtKYVLiAccJSmCwih4LnE2q", + "type": 1, + "type_hex": "0000000000000001" + } + ] + ], + "SendMax": { + "currency": "USD", + "issuer": "rBHMbioz9znTCqgjZ6Nx43uWY43kToEPa9", + "value": "4.132649022" + }, + "Sequence": 4660, + "SigningPubKey": "03DFEFC9A95AEF55232A2B89867745CE45373F5CE23C34D51D21343CEA92BD61AD", + "TransactionType": "Payment", + "TxnSignature": "30450220636E405B96C998BF5EBB665D519FA8B4431A6CB5962F754EEDD48EBE95F8C45F02210097851E297FEDA44F7DFED844AE109CF2D968BD58CD3C0E951B435278A91002FA", + "hash": "5007E8ECAE64482D258E915FFDEFAF2FE35ED9520BA7BB424BE280691F997435", + "inLedger": 6907160, + "ledger_index": 6907160 + }, + { + "Account": "rfESTMcbvbvCBqU1FTvGWiJP8cmUSu4GKg", + "Amount": { + "currency": "BTC", + "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", + "value": "0.0998" + }, + "Destination": "r3AWbdp2jQLXLywJypdoNwVSvr81xs3uhn", + "Fee": "10", + "Flags": 2147483648, + "InvoiceID": "A98FD36C17BE2B8511AD36DC335478E7E89F06262949F36EB88E2D683BBCC50A", + "SendMax": { + "currency": "BTC", + "issuer": "rTJdjjQ5wWAMh8TL1ToXXD2mZzesa6DSX", + "value": "0.100798" + }, + "Sequence": 18697, + "SigningPubKey": "025D9E40A50D78347EB8AFF7A36222BBE173CB9D06E68D109D189FF8616FC21107", + "TransactionType": "Payment", + "TxnSignature": "3044022007AA39E0117963ABF03BAEF0C5AB45862093525344362D34B9F6BA8373A0C9DC02206AB4FE915F4CBDA84E668F7F21A9914DC95C83A72FB3F9A114B10D4ECB697A25", + "hash": "C738A5095DCE3A256C843AA48BB26F0339EAD3FF09B6D75C2EF50C4AD4B4D17C", + "inLedger": 6907159, + "ledger_index": 6907159 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479726, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "37284087", + "TakerPays": { + "currency": "NZD", + "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", + "value": "0.291570426" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100F246F043C97C0DA7947793E9390DBA5AB0C6EB4A0165DADF0E96C939B70D113C0220797F572368EF68490813663C0E2ACF03424CB73B64F3D6C8508C7E8F6D2CC767", + "hash": "CAE39A38C222DF0BBC9AA25D30320220DC216646CE0A447F330BE279B20BD008", + "inLedger": 6907159, + "ledger_index": 6907159 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479725, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "10000000000", + "TakerPays": { + "currency": "BTC", + "issuer": "ra9eZxMbJrUcgV8ui7aPc161FgrqWScQxV", + "value": "0.091183099" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "30440220376E6D149435B87CA761ED1A9BD205BA93C0C30D6EB1FB26D8B5D06A55977F510220213E882DD43BC78C96B51E43273D9BD451F8337DDF6960CBFB9802A347FF18E4", + "hash": "CC07A503ED60F14AF023AB839C726B73591DE5C986D1234671E2518D8F840E12", + "inLedger": 6907159, + "ledger_index": 6907159 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "15", + "Flags": 0, + "Sequence": 1479724, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "9094329166", + "TakerPays": { + "currency": "XAG", + "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH", + "value": "3.022830117" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100CFD63762B3809B37B6A1294C4B4C8DA39023D66893045BA4AA9767DD8570A8F9022005F42B08E94190637158E80DAE99F3FB104EC2AA30F69BBA3417E5BBCDB5DB77", + "hash": "64029D736C34D21CDB100D976A06A988E2CA6E3BBC0DDFCE840D9619B853B47C", + "inLedger": 6907159, + "ledger_index": 6907159 + } + ] + } +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result": { + "index": 0, + "status": "success", + "txs": [ + { + "Account": "rPJnufUfjS22swpE7mWRkn2VRNGnHxUSYc", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 567546, + "SigningPubKey": "0317766BFFC0AAF5DB4AFDE23236624304AC4BC903AA8B172AE468F6B512616D6A", + "TakerGets": { + "currency": "BTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "1.12582" + }, + "TakerPays": { + "currency": "ILS", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "1981.893528" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100C66F3EE8F955724D750D148E3BB9DCAC16A002F9E4FC612C03AFBE9D8C13888902202607508AD0546C496093C9743B13FD596A1F5BE2B778EFE85BDB99F0E5B1D55F", + "hash": "A95C701F6120061BC40323AE846BBDA51576E67EC38105030BE75C1D32231B61", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rwpxNWdpKu2QVgrh5LQXEygYLshhgnRL1Y", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 1865518, + "SigningPubKey": "02BD6F0CFD0182F2F408512286A0D935C58FF41169DAC7E721D159D711695DFF85", + "TakerGets": { + "currency": "LTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "1.12095" + }, + "TakerPays": { + "currency": "ILS", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "20.77526133899999" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "304402203F7435A2587A71878B09129A1F4C05066CE6E6463A4A10CD5C40C15FCBD9E42502207E0CB8421FEA4CE8FC052E5A63ACD2444ADAE253B174A153A1DBE901E21B3695", + "hash": "A8C79DF180167E4D1281247325E2869984F54CBFA68631C1AF13DA346E6B3370", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rMWUykAmNQDaM9poSes8VLDZDDKEbmo7MX", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 1886203, + "SigningPubKey": "0256C64F0378DCCCB4E0224B36F7ED1E5586455FF105F760245ADB35A8B03A25FD", + "TakerGets": { + "currency": "LTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "24.154" + }, + "TakerPays": { + "currency": "BTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.26907556" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "30440220102CF96A86AF56BA11698C70D60F22436D763634FEA179D2FF45EB329CFF1CF8022029BF9301B11D09B38EBD4E8EB445ECC53B98C4F0CA7E19BE895272085ED6DBA2", + "hash": "9EE340379612529F308CA1E4619EC0C8842C1D4308FCA136E25316CE28C28189", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rJJksugQDMVu12NrZyw3C55fEUmPtRYVRC", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 119205, + "SigningPubKey": "03B918730C9FA2451284A00B1EFD08E9BEFD735D84CE09C6B3D7CB8FB0D1F9A84F", + "TakerGets": "10136500000", + "TakerPays": { + "currency": "USD", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "value": "50" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022044DB48A760AA7FBA2B1840E1357EF6B1EA9CC9DBBFFB5415C6BE301597B66766022021AA86070416330312E3AFC938376AD0A67A28195D7CD92EC8B03A6039D5C86C", + "hash": "8149067582081FA1499A53841642345D21FE0750E29C61C6DC3C914E0D1819AB", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rLPrL6KUtVZZbDfJMjDXzTKkwH39Udfw6e", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 428775, + "SigningPubKey": "03B2B67209DBDE2FA68555FB10BD791C4732C685349979FDC47D0DEF2B27EFA364", + "TakerGets": { + "currency": "PPC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "8.0635" + }, + "TakerPays": { + "currency": "BTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.01355474349999999" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100EDDC17FE2C32DEAD8ED5D9540B2ECE25D6CD1C65414211D2E4F98FC5BDABB99E0220389D6B3DE8BA50D27406BCE28E67D1E270C6A3A854CDEF25F042BBA52CDB53F8", + "hash": "70B7DB8E2BD65E554CBF418D591E050A6FD0A387E9500ED0B79BEB775019D9CA", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rM7WN56kktEkE5qKwNkQ1af4BZ56bynVUf", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 435008, + "SigningPubKey": "0256AE48790FEF5F61C1AB3765287EABCBE6B47C5098271F596A576DF7CFA15720", + "TakerGets": { + "currency": "PPC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.365" + }, + "TakerPays": { + "currency": "ILS", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.9977421" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3044022057ECAE71B36746AA1574936B03016DC5747EB7DBBA7D85533063E8D35DD2BAF402204F37BCA51CB0D943758BCA89641C2655FB76F20B8AD1883A3ABF232D1E964E80", + "hash": "572B0B2E96F4A9A88C7EDBDEB6D90AD2975528478186D9179AEC0E366D2778FC", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rLjhDX8zT6vy8T7hjUDvK48wTy5SYFpfwZ", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 432536, + "Sequence": 432561, + "SigningPubKey": "03892D08CE3CE600369BA83A92C3C7785FEA162739643358F1F35F8BE672AFD4A3", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100C25CE3756EB273F6ADD219E951DB7585ADFAF28090BEA3510458785D2EB91866022057A480F167F6D7263CDBFB0E13D571041313F6476176FFE2645CE867BA85DC2D", + "hash": "521D7F2CF76DEAC8ED695AC5570DFF1E445EB8C599158A351BD46F1D34528373", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rn694SpeUFw3VJwapyRKx6bpru3ZpDHzji", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 396235, + "SigningPubKey": "03896496732D098F2D8EE22D65ED9A88C0FF116785AE448EA1F521534C7C5BC6E3", + "TakerGets": { + "currency": "ILS", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.700491" + }, + "TakerPays": { + "currency": "NMC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.22" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "30440220218B5B90AB26EAE9FC9833E580653B20A15CEE86E8F1166F626FCDF4EFD4146902207FD99E35EE67E45142776CCD8F910A9E6E1A3C498737B59F182C73183C63D51F", + "hash": "454479D7EEE4081CF25378571D74858C01B0B43D3A2530781647BD40CD0465E5", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rRh634Y6QtoqkwTTrGzX66UYoCAvgE6jL", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 676061, + "SigningPubKey": "030BB49C591C9CD65C945D4B78332F27633D7771E6CF4D4B942D26BA40748BB8B4", + "TakerGets": { + "currency": "BTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.09675" + }, + "TakerPays": "10527647107", + "TransactionType": "OfferCreate", + "TxnSignature": "3044022014196BC5867AC2689F7EF31F23E4B2D1D1B7755465AC388B20F8E7721333EEE302201575263F381755E47AFCD37C1D5CCA4C012D624E7947140B40ABF1975959AA78", + "hash": "22B2F477ADE9C22599EB5CEF70B3377C0478D708D74A47866D9E59B7A2CF57CF", + "inLedger": 8696235, + "ledger_index": 8696235 + }, + { + "Account": "rJJksugQDMVu12NrZyw3C55fEUmPtRYVRC", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 119183, + "Sequence": 119204, + "SigningPubKey": "03B918730C9FA2451284A00B1EFD08E9BEFD735D84CE09C6B3D7CB8FB0D1F9A84F", + "TransactionType": "OfferCancel", + "TxnSignature": "30440220481760ED4F771F960F37FDF32DDEC70D10F9D5F9868571A58D6F5C09D75B71DE022049B35BEA448686D0929271E64EADA684D7684A9195D22826288AD9D9526B4FE9", + "hash": "5E0E42BDDC7A929875F5E9214AB00C3673CC047833C0EFC093532F2EE1F790C2", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rM7WN56kktEkE5qKwNkQ1af4BZ56bynVUf", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 434977, + "Sequence": 435007, + "SigningPubKey": "0256AE48790FEF5F61C1AB3765287EABCBE6B47C5098271F596A576DF7CFA15720", + "TransactionType": "OfferCancel", + "TxnSignature": "304402204B04325A39F3D394A7EBC91CE3A1232E538EFFC80014473C97E84310886A19B302205B2D18C544086BB99E49A1037B65ADDF4864DA60545E33E4116A41599EEE63E3", + "hash": "E8E55606C757219A740AFA0700506FE99781797E2F54A5144EF43582C65BF0F2", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rLPrL6KUtVZZbDfJMjDXzTKkwH39Udfw6e", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 428744, + "Sequence": 428774, + "SigningPubKey": "03B2B67209DBDE2FA68555FB10BD791C4732C685349979FDC47D0DEF2B27EFA364", + "TransactionType": "OfferCancel", + "TxnSignature": "304402202BCB4FCE73C3417AD3E67D795077DE025E766A9136CA20D5B07DA28EA717643E0220579CA32A7BB225DA01999637B316BF7D3902059F9A8DDB2D721F8A62685E5BB7", + "hash": "E86788EC72CA9CFBBAE4C399744C6B7495E3F6443FE87D7A4118F16FA4A316DB", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rHsZHqa5oMQNL5hFm4kfLd47aEMYjPstpg", + "Fee": "64", + "Flags": 0, + "Sequence": 4216371, + "SigningPubKey": "025718736160FA6632F48EA4354A35AB0340F8D7DC7083799B9C57C3E937D71851", + "TakerGets": "12566721624", + "TakerPays": { + "currency": "USD", + "issuer": "rLEsXccBGNR3UPuPu2hUXPjziKC3qKSBun", + "value": "74.999999999" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100D0FA06A78D3333D35C798B45590CD47BD844164ED25FCA4149F5F0CF24BE9A380220243EB636C656D1FBA6888CE8E2873CDA40FE6DE5987BE2FF1C418610D8BDC300", + "hash": "DD4CAD3EBCF67CE9B184A917FF2C78A80F0FE40A01187840E0EBC6B479DBFE1A", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rJJksugQDMVu12NrZyw3C55fEUmPtRYVRC", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 119182, + "Sequence": 119203, + "SigningPubKey": "03B918730C9FA2451284A00B1EFD08E9BEFD735D84CE09C6B3D7CB8FB0D1F9A84F", + "TransactionType": "OfferCancel", + "TxnSignature": "304402202F13D25C82240ABBBEE0D7E8BC2351C49FD6FDD62359EA232233C5A6C989BFAA022005A521A2C5A67BAC27218A6AD9E6917689CBD2F9BB9CE884B6B0EAAEDDEC2057", + "hash": "C9D8A2ECE636057E8255A231E6C6B6464A730155BA0E75B5111A81EA769FBC89", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rGJrzrNBfv6ndJmzt1hTUJVx7z8o2bg3of", + "Fee": "15", + "Flags": 2147483648, + "LastLedgerSequence": 8696241, + "OfferSequence": 1579754, + "Sequence": 1579755, + "SigningPubKey": "03325EB29A014DDE22289D0EA989861D481D54D54C727578AB6C2F18BC342D3829", + "TransactionType": "OfferCancel", + "TxnSignature": "3045022100C9F283D461F8A56575A56F8AA31F84683AB0B44D58C9EFD5DC20D448D8AC13E3022012E0A8726BE2D900C4FB7A61AB8FBFEBEBE1F12B2A9880A2BA2AB8D3EC61CB8C", + "hash": "C4953FE328D54E9104F66253AF50AEBC26E30D5826B433465A795262DFA75B48", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rn694SpeUFw3VJwapyRKx6bpru3ZpDHzji", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 396234, + "SigningPubKey": "03896496732D098F2D8EE22D65ED9A88C0FF116785AE448EA1F521534C7C5BC6E3", + "TakerGets": { + "currency": "ILS", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.3335471399999999" + }, + "TakerPays": { + "currency": "NMC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.102" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100DEA2B6D5B0D555D54A4EB7A8FADC187F44C6A9CF7282A1D5491538200DFC97DA022033A52D1EC219553C86DB829108BB5A52B49ED7EF0A566941665DE7FFF70917ED", + "hash": "A6BE633AECE9FF9CA83D67D09E7EF67F614A9D8B952D7AFB5CB630D03C54C9FC", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rwpxNWdpKu2QVgrh5LQXEygYLshhgnRL1Y", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 1865490, + "Sequence": 1865517, + "SigningPubKey": "02BD6F0CFD0182F2F408512286A0D935C58FF41169DAC7E721D159D711695DFF85", + "TransactionType": "OfferCancel", + "TxnSignature": "3044022074A4E9859A5A94169B2C902F074AA964C45E2B86EABEA73E83E083E1EC7549A402203E8F4D46705AFEDFC78C2D40FAA036792E6485AF8CADF7445EA3D427E9DC2474", + "hash": "A49285E2CA7C5765B68A41EF4A8A65AD5CC7D4EF6C7B7F6D5040B2DE429E0125", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rPJnufUfjS22swpE7mWRkn2VRNGnHxUSYc", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 567545, + "SigningPubKey": "0317766BFFC0AAF5DB4AFDE23236624304AC4BC903AA8B172AE468F6B512616D6A", + "TakerGets": { + "currency": "BTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "0.66099" + }, + "TakerPays": { + "currency": "ILS", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "1157.5521276" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "3045022100CABC7C1F9FB42C8498E1E9C6C5E8482F325D39B15D9DAE4BD9878D5E508B8FDD0220407B059A22BBBF4FC4AE18BEDCD2DDA80109EE7226D679A8A3BBFC108EFDD3AB", + "hash": "A0BED2F5A85C48A2AFBA252FF91FD2D5C90A6D6B769068B18891B031812E2AC0", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rLLq27Wat93Gxkq5mV5GxtKkT146Su949V", + "Fee": "10", + "Flags": 2147483648, + "Sequence": 722529, + "SigningPubKey": "02A1BC1CCFACECD00ADC6EE990E2E27148E00D5386A99791F25B6A880BCEC94EC9", + "TakerGets": "130272502088", + "TakerPays": { + "currency": "BTC", + "issuer": "rNPRNzBB92BVpAhhZr4iXDTveCgV5Pofm9", + "value": "1.3177" + }, + "TransactionType": "OfferCreate", + "TxnSignature": "30440220436C4A368D534FE1E9A2596C51D1D54931432B789F249E312877FF9B38A3F4D502202A2DBF9517358C009FBEA61EE927DAF72A065A840C7B9136B10C125F25FCD175", + "hash": "9627AEFC735A848AAE6C36D1089CB8797373DBE95B60E89F5412508CA907243A", + "inLedger": 8696234, + "ledger_index": 8696234 + }, + { + "Account": "rMWUykAmNQDaM9poSes8VLDZDDKEbmo7MX", + "Fee": "10", + "Flags": 2147483648, + "OfferSequence": 1886173, + "Sequence": 1886202, + "SigningPubKey": "0256C64F0378DCCCB4E0224B36F7ED1E5586455FF105F760245ADB35A8B03A25FD", + "TransactionType": "OfferCancel", + "TxnSignature": "304402202C7BD2C125A0B837CBD2E2FF568AEA1E0EE94615B22564A51C0434460C506C6F02204E39A7BD49086AA794B20F4EE28656217561909ECFBB18636CD400AB33AB0B17", + "hash": "57277F527B8EBD68FE85906E613338D68F8F8BC4EB3D1748D9A204D7CDC3E174", + "inLedger": 8696234, + "ledger_index": 8696234 + } + ] + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:--------|:-----------------|:------------------------------------------| +| `index` | 符号なし整数 | 要求に使用されている`start`の値。 | +| `txs` | 配列 | トランザクションオブジェクトの配列。 | + +各トランザクションオブジェクトに含まれているフィールドは、トランザクションのタイプに応じて多少異なります。詳細は、[トランザクションのフォーマット](transaction-formats.html)を参照してください。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `invalidParams` - 1つ以上のフィールドの指定が正しくないか、1つ以上の必須フィールドが指定されていません。 +* `noPermission` - `start`フィールドに指定されている値が10000を超えていますが、サーバーに管理者として接続していません。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/utility-methods/json.ja.md b/content/references/rippled-api/public-rippled-methods/utility-methods/json.ja.md index 0c7a060e17..75b072c0fe 100644 --- a/content/references/rippled-api/public-rippled-methods/utility-methods/json.ja.md +++ b/content/references/rippled-api/public-rippled-methods/utility-methods/json.ja.md @@ -1,43 +1,43 @@ -# json - -`json`メソッドは、プロキシとして他のコマンドを実行し、コマンドのパラメーターをJSON値として受け入れます。これは*コマンドラインクライアント専用*であり、パラメーターを指定するコマンドライン構文が不十分であるかまたは望ましくない場合に使用されるものです。 - -## 要求フォーマット -要求フォーマットの例: - - - -*コマンドライン* - -``` -# Syntax: json method json_stanza -rippled -q json ledger_closed '{}' -``` - - - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "result" :{ - "ledger_hash" :"8047C3ECF1FA66326C1E57694F6814A1C32867C04D3D68A851367EE2F89BBEF3", - "ledger_index" :390308, - "status" :"success" - } -} -``` - - - -応答は[標準フォーマット][]に従っており、実行されたコマンドのタイプに対して適切なフィールドが含まれています。 - - -{% include '_snippets/rippled_versions.md' %} -{% include '_snippets/rippled-api-links.md' %} +# json + +`json`メソッドは、プロキシとして他のコマンドを実行し、コマンドのパラメーターをJSON値として受け入れます。これは*コマンドラインクライアント専用*であり、パラメーターを指定するコマンドライン構文が不十分であるかまたは望ましくない場合に使用されるものです。 + +## 要求フォーマット +要求フォーマットの例: + + + +*コマンドライン* + +``` +# Syntax: json method json_stanza +rippled -q json ledger_closed '{}' +``` + + + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "result" :{ + "ledger_hash" :"8047C3ECF1FA66326C1E57694F6814A1C32867C04D3D68A851367EE2F89BBEF3", + "ledger_index" :390308, + "status" :"success" + } +} +``` + + + +応答は[標準フォーマット][]に従っており、実行されたコマンドのタイプに対して適切なフィールドが含まれています。 + + +{% include '_snippets/rippled_versions.md' %} +{% include '_snippets/rippled-api-links.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/utility-methods/ping.ja.md b/content/references/rippled-api/public-rippled-methods/utility-methods/ping.ja.md index 2e5ce25b5c..381aba187f 100644 --- a/content/references/rippled-api/public-rippled-methods/utility-methods/ping.ja.md +++ b/content/references/rippled-api/public-rippled-methods/utility-methods/ping.ja.md @@ -1,83 +1,83 @@ -# ping -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Ping.cpp "Source") - -`ping`コマンドは確認応答を返します。これにより、クライアントは接続のステータスと遅延をテストできます。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":1, - "command":"ping" -} -``` - -*JSON-RPC* - -``` -{ - "method":"ping", - "params":[ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: ping -rippled ping -``` - - - -[試してみる >](websocket-api-tool.html#ping) - -要求にはパラメーターが含まれていません。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":1, - "result":{}, - "status":"success", - "type":"response" -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "status":"success" - } -} -``` - - - -この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果にフィールドが含まれません。クライアントは要求から応答までのラウンドトリップ時間を遅延として測定できます。 - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# ping +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Ping.cpp "Source") + +`ping`コマンドは確認応答を返します。これにより、クライアントは接続のステータスと遅延をテストできます。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":1, + "command":"ping" +} +``` + +*JSON-RPC* + +``` +{ + "method":"ping", + "params":[ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: ping +rippled ping +``` + + + +[試してみる >](websocket-api-tool.html#ping) + +要求にはパラメーターが含まれていません。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":1, + "result":{}, + "status":"success", + "type":"response" +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "status":"success" + } +} +``` + + + +この応答は[標準フォーマット][]に従っており、正常に完了した場合は結果にフィールドが含まれません。クライアントは要求から応答までのラウンドトリップ時間を遅延として測定できます。 + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/public-rippled-methods/utility-methods/random.ja.md b/content/references/rippled-api/public-rippled-methods/utility-methods/random.ja.md index 6f73d3c0d9..bc4f59173e 100644 --- a/content/references/rippled-api/public-rippled-methods/utility-methods/random.ja.md +++ b/content/references/rippled-api/public-rippled-methods/utility-methods/random.ja.md @@ -1,89 +1,89 @@ -# random -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Random.cpp "Source") - -`random`コマンドは、クライアントが乱数生成のエントロピー生成源として使用する乱数を提供します。 - -## 要求フォーマット -要求フォーマットの例: - - - -*WebSocket* - -``` -{ - "id":1, - "command":"random" -} -``` - -*JSON-RPC* - -``` -{ - "method":"random", - "params":[ - {} - ] -} -``` - -*コマンドライン* - -``` -#Syntax: random -rippled random -``` - - - -要求にはパラメーターが含まれていません。 - -## 応答フォーマット - -処理が成功した応答の例: - - - -*WebSocket* - -``` -{ - "id":1, - "result":{ - "random":"8ED765AEBBD6767603C2C9375B2679AEC76E6A8133EF59F04F9FC1AAA70E41AF" - }, - "status":"success", - "type":"response" -} -``` - -*JSON-RPC* - -``` -200 OK -{ - "result":{ - "random":"4E57146AA47BC6E88FDFE8BAA235B900126C916B6CC521550996F590487B837A", - "status":"success" - } -} -``` - - - -応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 - -| `Field` | 型 | 説明 | -|:---------|:-------|:--------------------------| -| `random` | 文字列 | ランダムな256ビット16進値。 | - -## 考えられるエラー - -* [汎用エラータイプ][]のすべて。 -* `internal` - 乱数生成機能に関連している可能性がある内部エラーが発生しました。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# random +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Random.cpp "Source") + +`random`コマンドは、クライアントが乱数生成のエントロピー生成源として使用する乱数を提供します。 + +## 要求フォーマット +要求フォーマットの例: + + + +*WebSocket* + +``` +{ + "id":1, + "command":"random" +} +``` + +*JSON-RPC* + +``` +{ + "method":"random", + "params":[ + {} + ] +} +``` + +*コマンドライン* + +``` +#Syntax: random +rippled random +``` + + + +要求にはパラメーターが含まれていません。 + +## 応答フォーマット + +処理が成功した応答の例: + + + +*WebSocket* + +``` +{ + "id":1, + "result":{ + "random":"8ED765AEBBD6767603C2C9375B2679AEC76E6A8133EF59F04F9FC1AAA70E41AF" + }, + "status":"success", + "type":"response" +} +``` + +*JSON-RPC* + +``` +200 OK +{ + "result":{ + "random":"4E57146AA47BC6E88FDFE8BAA235B900126C916B6CC521550996F590487B837A", + "status":"success" + } +} +``` + + + +応答は[標準フォーマット][]に従っており、正常に完了した場合は結果に次のフィールドが含まれています。 + +| `Field` | 型 | 説明 | +|:---------|:-------|:--------------------------| +| `random` | 文字列 | ランダムな256ビット16進値。 | + +## 考えられるエラー + +* [汎用エラータイプ][]のすべて。 +* `internal` - 乱数生成機能に関連している可能性がある内部エラーが発生しました。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/pseudo-transaction-types/enableamendment.ja.md b/content/references/rippled-api/transaction-formats/pseudo-transaction-types/enableamendment.ja.md index 5d314b92b1..847d3d982b 100644 --- a/content/references/rippled-api/transaction-formats/pseudo-transaction-types/enableamendment.ja.md +++ b/content/references/rippled-api/transaction-formats/pseudo-transaction-types/enableamendment.ja.md @@ -1,26 +1,26 @@ -# EnableAmendment - -トランザクション処理を変更する[Amendmentプロセス](amendments.html#amendmentプロセス)の進行状況を追跡します。この疑似トランザクションは、提案されたAmendmentが多数の承認を獲得したか否かや、Amendmentの有効化の状況を示します。 - -**注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:---------------|:----------|:------------------|:----------------------------| -| Amendment | 文字列 | Hash256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](amendments.html)を参照してください。 | -| LedgerSequence | 数値 | UInt32 | Amendmentが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | - -## EnableAmendment Flags - -EnableAmendment疑似トランザクションの`Flags`の値は、この疑似トランザクションが記録されているレジャーでのAmendmentのステータスを示します。 - -`Flags`の値が`0`(フラグなし)の場合、Amendmentは有効化されており、これ以降のすべてのレジャーに適用されます。`Flags`のその他の値を以下に示します。 - -| フラグ名 | 16進値 | 10進値 | 説明 | -|:---------------|:-----------|:--------------|:-------------------------------| -| tfGotMajority | 0x00010000 | 65536 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率は80%以上に増加しました。 | -| tfLostMajority | 0x00020000 | 131072 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率が80%未満に減少しました。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# EnableAmendment + +トランザクション処理を変更する[Amendmentプロセス](amendments.html#amendmentプロセス)の進行状況を追跡します。この疑似トランザクションは、提案されたAmendmentが多数の承認を獲得したか否かや、Amendmentの有効化の状況を示します。 + +**注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。 + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:---------------|:----------|:------------------|:----------------------------| +| Amendment | 文字列 | Hash256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](amendments.html)を参照してください。 | +| LedgerSequence | 数値 | UInt32 | Amendmentが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | + +## EnableAmendment Flags + +EnableAmendment疑似トランザクションの`Flags`の値は、この疑似トランザクションが記録されているレジャーでのAmendmentのステータスを示します。 + +`Flags`の値が`0`(フラグなし)の場合、Amendmentは有効化されており、これ以降のすべてのレジャーに適用されます。`Flags`のその他の値を以下に示します。 + +| フラグ名 | 16進値 | 10進値 | 説明 | +|:---------------|:-----------|:--------------|:-------------------------------| +| tfGotMajority | 0x00010000 | 65536 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率は80%以上に増加しました。 | +| tfLostMajority | 0x00020000 | 131072 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率が80%未満に減少しました。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/pseudo-transaction-types/pseudo-transaction-types.ja.md b/content/references/rippled-api/transaction-formats/pseudo-transaction-types/pseudo-transaction-types.ja.md index 952abd24dd..fc68082ef2 100644 --- a/content/references/rippled-api/transaction-formats/pseudo-transaction-types/pseudo-transaction-types.ja.md +++ b/content/references/rippled-api/transaction-formats/pseudo-transaction-types/pseudo-transaction-types.ja.md @@ -1,13 +1,13 @@ -# 疑似トランザクション - -疑似トランザクションはユーザーにより送信されることがなく、またネットワークで伝搬されません。その代わりに、サーバーは提案されたレジャーに疑似トランザクションを直接挿入することを選択できます。十分な数のサーバーがこの疑似トランザクションを挿入し、疑似トランザクションがコンセンサスを通過すると、この疑似トランザクションはレジャーに記録され、それ以降レジャーデータに表示されます。 - -通常のトランザクションの必須フィールドの中には、疑似トランザクションには不適切なものがあります。このような場合、疑似トランザクションのデフォルト値は以下のようになります。 - -| フィールド | デフォルト値 | -|:--------------|:---------------------------------------------------------| -| Account | [ACCOUNT_ZERO](accounts.html#特別なアドレス) | -| Sequence | 0 | -| Fee | 0 | -| SigningPubKey | "" | -| Signature | "" | +# 疑似トランザクション + +疑似トランザクションはユーザーにより送信されることがなく、またネットワークで伝搬されません。その代わりに、サーバーは提案されたレジャーに疑似トランザクションを直接挿入することを選択できます。十分な数のサーバーがこの疑似トランザクションを挿入し、疑似トランザクションがコンセンサスを通過すると、この疑似トランザクションはレジャーに記録され、それ以降レジャーデータに表示されます。 + +通常のトランザクションの必須フィールドの中には、疑似トランザクションには不適切なものがあります。このような場合、疑似トランザクションのデフォルト値は以下のようになります。 + +| フィールド | デフォルト値 | +|:--------------|:---------------------------------------------------------| +| Account | [ACCOUNT_ZERO](accounts.html#特別なアドレス) | +| Sequence | 0 | +| Fee | 0 | +| SigningPubKey | "" | +| Signature | "" | diff --git a/content/references/rippled-api/transaction-formats/pseudo-transaction-types/setfee.ja.md b/content/references/rippled-api/transaction-formats/pseudo-transaction-types/setfee.ja.md index 3d45734720..af9b876e88 100644 --- a/content/references/rippled-api/transaction-formats/pseudo-transaction-types/setfee.ja.md +++ b/content/references/rippled-api/transaction-formats/pseudo-transaction-types/setfee.ja.md @@ -1,35 +1,35 @@ -# SetFee - -[手数料投票](fee-voting.html)の結果として[トランザクションコスト](transaction-cost.html)または[アカウント準備金](reserves.html)の要件が変更されます。 - -**注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。 - -``` -{ - "Account":"rrrrrrrrrrrrrrrrrrrrrhoLvTp", - "BaseFee":"000000000000000A", - "Fee":"0", - "ReferenceFeeUnits":10, - "ReserveBase":20000000, - "ReserveIncrement":5000000, - "Sequence":0, - "SigningPubKey":"", - "TransactionType":"SetFee", - "date":439578860, - "hash":"1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B", - "ledger_index":3721729, - } -``` - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------------|:-----------------|:------------------|:------------------| -| BaseFee | 文字列 | UInt64 | リファレンストランザクションの手数料(XRPのdrop数、16進数)。(これは、負荷スケーリング前の[トランザクションコスト](transaction-cost.html)です。) | -| ReferenceFeeUnits | 符号なし整数 | UInt32 | リファレンストランザクションのコスト(手数料単位) | -| ReserveBase | 符号なし整数 | UInt32 | 基本準備金(drop数) | -| ReserveIncrement | 符号なし整数 | UInt32 | 増分準備金(drop数) | -| LedgerSequence | 数値 | UInt32 | この疑似トランザクションが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# SetFee + +[手数料投票](fee-voting.html)の結果として[トランザクションコスト](transaction-cost.html)または[アカウント準備金](reserves.html)の要件が変更されます。 + +**注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。 + +``` +{ + "Account":"rrrrrrrrrrrrrrrrrrrrrhoLvTp", + "BaseFee":"000000000000000A", + "Fee":"0", + "ReferenceFeeUnits":10, + "ReserveBase":20000000, + "ReserveIncrement":5000000, + "Sequence":0, + "SigningPubKey":"", + "TransactionType":"SetFee", + "date":439578860, + "hash":"1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B", + "ledger_index":3721729, + } +``` + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:------------------|:-----------------|:------------------|:------------------| +| BaseFee | 文字列 | UInt64 | リファレンストランザクションの手数料(XRPのdrop数、16進数)。(これは、負荷スケーリング前の[トランザクションコスト](transaction-cost.html)です。) | +| ReferenceFeeUnits | 符号なし整数 | UInt32 | リファレンストランザクションのコスト(手数料単位) | +| ReserveBase | 符号なし整数 | UInt32 | 基本準備金(drop数) | +| ReserveIncrement | 符号なし整数 | UInt32 | 増分準備金(drop数) | +| LedgerSequence | 数値 | UInt32 | この疑似トランザクションが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-common-fields.ja.md b/content/references/rippled-api/transaction-formats/transaction-common-fields.ja.md index 0b49fcb815..5cca207fbf 100644 --- a/content/references/rippled-api/transaction-formats/transaction-common-fields.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-common-fields.ja.md @@ -1,139 +1,139 @@ -# トランザクションの共通フィールド - -どのトランザクションについても、共通する一連のフィールドに加え、[トランザクションのタイプ](transaction-types.html)に応じた追加のフィールドがあります。フィールドの名前では、大文字と小文字が区別されます。すべてのトランザクションに共通するフィールドは、以下のとおりです。 - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------------|:-----------------|:------------------|:-----------------| -| Account | 文字列 | Account | _(必須)_ トランザクションを開始した[アカウント](accounts.html)の一意アドレス。 | -| TransactionType | 文字列 | UInt16 | _(必須)_ トランザクションのタイプ。有効なタイプは、`Payment`、`OfferCreate`、`OfferCancel`、`TrustSet`、`AccountSet`、`SetRegularKey`、`SignerListSet`、`EscrowCreate`、`EscrowFinish`、`EscrowCancel`、`PaymentChannelCreate`、`PaymentChannelFund`、`PaymentChannelClaim`、`DepositPreauth`です。 | -| Fee | 文字列 | Amount | _(必須。[自動入力可能][])_ 整数で表したXRPの額(drop単位)。このトランザクションをネットワークに送信するためのコストとして消却されます。トランザクションのタイプによっては、最小要件が異なります。詳細は、[トランザクションコスト][]を参照してください。 | -| Sequence | 符号なし整数 | UInt32 | _(必須。[自動入力可能][])_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。 | -| [AccountTxnID][] | 文字列 | Hash256 | _(省略可)_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 | -| [Flags][] | 符号なし整数 | UInt32 | _(省略可)_ このトランザクションのビットフラグのセット。 | -| LastLedgerSequence | 数値 | UInt32 | _(省略可。使用を強く推奨)_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 | -| [Memos][] | オブジェクトの配列 | 配列 | _(省略可)_ このトランザクションの識別に使用される任意の追加情報。 | -| [Signers][] | 配列 | 配列 | _(省略可)_ このトランザクションを承認するための[マルチ署名](multi-signing.html)を表すオブジェクトの配列。 | -| SourceTag | 符号なし整数 | UInt32 | _(省略可)_ この支払いの理由、またはこのトランザクションの実行元である送信者を識別するために使用される任意の整数。一般的に、返金については、最初の支払いの`SourceTag`を返金の`DestinationTag`として指定する必要があります。 | -| SigningPubKey | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションへの署名に使用される秘密鍵に対応する公開鍵の16進表現。空文字列の場合は、代わりに`Signers`フィールドにマルチ署名が保持されていることを示します。 | -| TxnSignature | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションが、発信元であると主張しているアカウントから発信されたものであることを検証するための署名。 | - -[自動入力可能]: #自動入力可能なフィールド -[AccountTxnID]: #accounttxnid -[Flags]: #flagsフィールド -[Memos]: #memosフィールド -[Signers]: #signersフィールド - -[削除されたバージョン: rippled 0.28.0][]: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/Hash256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](ledger-data-formats.html)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。 - - -## AccountTxnID - -`AccountTxnID`フィールドにより、直前のトランザクション(シーケンス番号で識別)も有効で、かつ期待するトランザクションに一致しない限り、現在のトランザクションが有効にならないよう、トランザクションどうしをチェーンにすることができます。 - -このフィールドが有用になるのは、例えば、トランザクション送信用のプライマリーシステムと受動的なバックアップシステムを運用している場合です。受動的なバックアップシステムがプライマーリから切断されたものの、プライマリが完全に稼働停止となったわけではなく、両システムが同時に稼働を開始した場合は、トランザクションが2回送信される、あるいはまったく送信されないなど、深刻な問題が発生するおそれがあります。`AccountTxnID`を使用してトランザクションどうしをチェーンにすると、両方のシステムがアクティブになったときも、有効なトランザクションを送信できるのはいずれか一方のみとなります。 - -AccountTxnIDを使用するには、アカウントの1つ前のトランザクションのIDがレジャーで追跡されるよう、最初に[asfAccountTxnID](accountset.html#accountsetのフラグ)フラグを設定する必要があります。 - - -## 自動入力可能なフィールド - -一部のフィールドについては、トランザクションの署名前に、`rippled`サーバーによって、または署名に使用される[ripple-lib][]などのライブラリーによって値を自動入力できます。値を自動入力するには、最新の状態を取得するためのXRP Ledgerへのアクティブな接続が必要です。したがって、オフラインでは実行できません。[ripple-lib][]と`rippled`のどちらも、以下の値を自動的に提供できます。 - -* `Fee` - ネットワークに基づいて[トランザクションコスト][]を自動的に入力します。 - **注記:**`rippled`の[signコマンド][]を使用するときは、`fee_mult_max`パラメーターと`fee_mult_div`パラメーターを使用して、自動入力値の上限を設定できます。 -* `Sequence` - トランザクションを送信する側のアカウントの次のシーケンス番号を自動的に使用します。 - -本番システムについては、これらのフィールドの値がサーバーによって入力される状態に _しない_ ことをお勧めします。例えば、ネットワークの負荷が一時的に急上昇したためにトランザクションコストが高騰した場合、トランザクションによっては、一時的な高額のコストを支払うよりも、必要に応じて待機し、コストが低下してから送信したほうが好ましいことがあります。 - -[Paymentトランザクション][]タイプの[`Paths`フィールド](payment.html#パス)についても、値を自動入力できます。 - - -## Flagsフィールド - -`Flags`フィールドには、トランザクションの行動を調整する各種のオプションを設定できます。オプションは、ビット単位のOR操作と組み合わせることで複数のフラグを同時に設定できるバイナリー値として表現します。 - -トランザクションで所定のフラグが有効になっているかどうかを確認するには、ビット単位のAND演算子をフラグの値と`Flags`フィールドで使用します。結果が0の場合は無効になっていることを示し、結果がフラグ値と等しい場合は有効になっていることを示します(その他の結果の場合は、実行した操作に誤りがあることを示します)。 - -ほとんどのフラグは、特定のタイプのトランザクションに対してのみ効果があります。複数のタイプのトランザクションに対して、同一のビット単位値をフラグに再利用できるため、フラグの設定と読み取りでは`TransactionType`フィールドに留意することが重要です。 - -フラグとして定義しないビットは、0にする必要があります([fix1543 Amendment][]では、一部のタイプのトランザクションについて、このルールが適用されます。デフォルトでは、ほとんどのタイプのトランザクションでこのルールが強制されます)。 - -### グローバルフラグ - -すべてのトランザクションにグローバルに適用される唯一のフラグは、以下のとおりです。 - -| フラグの名前 | 16進値 | 10進値 | 説明 | -|:--------------------|:-----------|:--------------|:--------------------------| -| tfFullyCanonicalSig | 0x80000000 | 2147483648 | _(使用を強く推奨)_ 完全に正規である署名を要求します。 | - -[signメソッド][](または「署名と送信」モードの[submitメソッド][])を使用すると、`rippled`は、`Flags`フィールドがすでに存在している場合を除き、`tfFullyCanonicalSig`フラグを有効にした状態で`Flags`フィールドを追加します。`tfFullyCanonicalSig`フラグは、`Flags`が明示的に指定されている場合、自動的には有効に***なりません***。また、[sign_forメソッド][]を使用してマルチ署名済みトランザクションに署名を追加する場合も、自動的には有効に***なりません***。 - -**警告:** `tfFullyCanonicalSig`を有効にしない場合は、不正使用者がトランザクションの署名を改変して、期待されるものとは別のハッシュを使用してトランザクションを成功させることが理論上可能になります。最悪の場合、同一の支払を何回も送信するようシステムに仕掛けられるおそれがあります。この問題を回避するには、署名するすべてのトランザクションで`tfFullyCanonicalSig`フラグを有効にします。 - -### フラグの範囲 - -トランザクションの`Flags`フィールドでは、さまざまなレベルや状況に適用されるフラグを設定できます。個々の状況に関するフラグは、以下の範囲に限定されます。 - -| 範囲の名前 | ビットマスク | 説明 | -|:-----------------|:-------------|:-------------------------------------------| -| ユニバーサルフラグ | `0xff000000` | すべてのタイプのトランザクションに対して一様に適用されるフラグ。 | -| タイプに基づくフラグ | `0x00ff0000` | フラグを使用する[トランザクションのタイプ](transaction-types.html)に応じて意味が異なるフラグ。 | -| 予約済みのフラグ | `0x0000ffff` | 現時点では定義されていないフラグ。トランザクションが有効になるのは、これらのフラグが無効になっている場合のみです。 | - -**注記:** [AccountSetトランザクション][]タイプには、タイプに基づくフラグと似た目的を果たす[ビット単位ではない独自のフラグ](accountset.html#accountsetのフラグ)があります。[レジャーオブジェクト](ledger-object-types.html)にも、さまざまなビット単位のフラグが定義される`Flags`フィールドがあります。 - - -## Memosフィールド - -`Memos`フィールドは、トランザクションに関する任意のメッセージデータを保持します。このフィールドは、オブジェクトの配列として表現します。各オブジェクトには唯一のフィールド`Memo`があり、このフィールドは、以下のフィールドを*1つ以上*持つ別のオブジェクトを保持しています。 - -| フィールド | 型 | [内部の型][] | 説明 | -|:-----------|:-------|:------------------|:-----------------------------------| -| MemoData | 文字列 | Blob | 通例、メモの内容を保持する任意の16進値。 | -| MemoFormat | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、メモのエンコード方法に関する情報を保持しています([MIMEタイプ](http://www.iana.org/assignments/media-types/media-types.xhtml)など)。 | -| MemoType | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、このメモのフォーマットを定義する一意の関係([RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)に準拠)。 | - -MemoTypeフィールドとMemoFormatフィールドには、以下の文字のみを使用できます。 `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%` - -`Memos`フィールドのサイズの上限は1KBです(バイナリーフォーマットでシリアル化されている場合)。 - -以下に、Memosフィールドが定義されているトランザクションの例を示します。 - -``` -{ - "TransactionType": "Payment", - "Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx", - "Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", - "Memos": [ - { - "Memo": { - "MemoType": "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963", - "MemoData": "72656e74" - } - } - ], - "Amount": "1" -} -``` - - -## Signersフィールド - -`Signers`フィールドには、最大8つのキーペアから取得された署名を保持し、トランザクションを承認するための[マルチ署名](multi-signing.html)が含まれています。`Signers`リストはオブジェクトの配列であり、各オブジェクトが1つの`Signer`フィールドを保持しています。`Signer`フィールドには、以下の入れ子フィールドがあります。 - -| フィールド | 型 | [内部の型][] | 説明 | -|:--------------|:-------|:------------------|:--------------------------------| -| Account | 文字列 | AccountID | SignerListに記述され、この署名に関連付けられているアドレス。 | -| TxnSignature | 文字列 | Blob | `SigningPubKey`を使用して検証できる、このトランザクションの署名。 | -| SigningPubKey | 文字列 | Blob | この署名の作成に使用される公開鍵。 | - -`SigningPubKey`は、`Account`アドレスに関連付けられているキーでなければなりません。参照されている`Account`が、レジャーにあり資金供給済みアカウントである場合、SigningPubKeyには、そのアカウントの現在のレギュラーキー(設定されている場合)を指定できます。また、[lsfDisableMaster](accountroot.html#accountrootフラグ)フラグが有効になっている場合を除き、そのアカウントのマスターキーを指定することもできます。参照されている`Account`アドレスが、レジャーの資金供給済みのアカウントではない場合、`SigningPubKey`は、そのアドレスに関連付けられているマスターキーでなければなりません。 - -署名の検証は大量の演算能力を消費するタスクであるため、マルチ署名済みトランザクションをネットワークに中継するには、追加のXRPがコストとしてかかります。マルチ署名に含まれている署名ごとに、トランザクションに必要な[トランザクションコスト][]が増加します。例えば、トランザクションをネットワークに中継するための現在の最小トランザクションコストが`10000`dropである場合、`Signers`配列に3つのエントリーが含まれているマルチ署名済みトランザクションを中継するには、`Fee`の値を少なくとも`40000`dropにする必要があります。 - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トランザクションの共通フィールド + +どのトランザクションについても、共通する一連のフィールドに加え、[トランザクションのタイプ](transaction-types.html)に応じた追加のフィールドがあります。フィールドの名前では、大文字と小文字が区別されます。すべてのトランザクションに共通するフィールドは、以下のとおりです。 + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-------------------|:-----------------|:------------------|:-----------------| +| Account | 文字列 | Account | _(必須)_ トランザクションを開始した[アカウント](accounts.html)の一意アドレス。 | +| TransactionType | 文字列 | UInt16 | _(必須)_ トランザクションのタイプ。有効なタイプは、`Payment`、`OfferCreate`、`OfferCancel`、`TrustSet`、`AccountSet`、`SetRegularKey`、`SignerListSet`、`EscrowCreate`、`EscrowFinish`、`EscrowCancel`、`PaymentChannelCreate`、`PaymentChannelFund`、`PaymentChannelClaim`、`DepositPreauth`です。 | +| Fee | 文字列 | Amount | _(必須。[自動入力可能][])_ 整数で表したXRPの額(drop単位)。このトランザクションをネットワークに送信するためのコストとして消却されます。トランザクションのタイプによっては、最小要件が異なります。詳細は、[トランザクションコスト][]を参照してください。 | +| Sequence | 符号なし整数 | UInt32 | _(必須。[自動入力可能][])_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。 | +| [AccountTxnID][] | 文字列 | Hash256 | _(省略可)_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 | +| [Flags][] | 符号なし整数 | UInt32 | _(省略可)_ このトランザクションのビットフラグのセット。 | +| LastLedgerSequence | 数値 | UInt32 | _(省略可。使用を強く推奨)_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 | +| [Memos][] | オブジェクトの配列 | 配列 | _(省略可)_ このトランザクションの識別に使用される任意の追加情報。 | +| [Signers][] | 配列 | 配列 | _(省略可)_ このトランザクションを承認するための[マルチ署名](multi-signing.html)を表すオブジェクトの配列。 | +| SourceTag | 符号なし整数 | UInt32 | _(省略可)_ この支払いの理由、またはこのトランザクションの実行元である送信者を識別するために使用される任意の整数。一般的に、返金については、最初の支払いの`SourceTag`を返金の`DestinationTag`として指定する必要があります。 | +| SigningPubKey | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションへの署名に使用される秘密鍵に対応する公開鍵の16進表現。空文字列の場合は、代わりに`Signers`フィールドにマルチ署名が保持されていることを示します。 | +| TxnSignature | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションが、発信元であると主張しているアカウントから発信されたものであることを検証するための署名。 | + +[自動入力可能]: #自動入力可能なフィールド +[AccountTxnID]: #accounttxnid +[Flags]: #flagsフィールド +[Memos]: #memosフィールド +[Signers]: #signersフィールド + +[削除されたバージョン: rippled 0.28.0][]: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/Hash256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](ledger-data-formats.html)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。 + + +## AccountTxnID + +`AccountTxnID`フィールドにより、直前のトランザクション(シーケンス番号で識別)も有効で、かつ期待するトランザクションに一致しない限り、現在のトランザクションが有効にならないよう、トランザクションどうしをチェーンにすることができます。 + +このフィールドが有用になるのは、例えば、トランザクション送信用のプライマリーシステムと受動的なバックアップシステムを運用している場合です。受動的なバックアップシステムがプライマーリから切断されたものの、プライマリが完全に稼働停止となったわけではなく、両システムが同時に稼働を開始した場合は、トランザクションが2回送信される、あるいはまったく送信されないなど、深刻な問題が発生するおそれがあります。`AccountTxnID`を使用してトランザクションどうしをチェーンにすると、両方のシステムがアクティブになったときも、有効なトランザクションを送信できるのはいずれか一方のみとなります。 + +AccountTxnIDを使用するには、アカウントの1つ前のトランザクションのIDがレジャーで追跡されるよう、最初に[asfAccountTxnID](accountset.html#accountsetのフラグ)フラグを設定する必要があります。 + + +## 自動入力可能なフィールド + +一部のフィールドについては、トランザクションの署名前に、`rippled`サーバーによって、または署名に使用される[ripple-lib][]などのライブラリーによって値を自動入力できます。値を自動入力するには、最新の状態を取得するためのXRP Ledgerへのアクティブな接続が必要です。したがって、オフラインでは実行できません。[ripple-lib][]と`rippled`のどちらも、以下の値を自動的に提供できます。 + +* `Fee` - ネットワークに基づいて[トランザクションコスト][]を自動的に入力します。 + **注記:**`rippled`の[signコマンド][]を使用するときは、`fee_mult_max`パラメーターと`fee_mult_div`パラメーターを使用して、自動入力値の上限を設定できます。 +* `Sequence` - トランザクションを送信する側のアカウントの次のシーケンス番号を自動的に使用します。 + +本番システムについては、これらのフィールドの値がサーバーによって入力される状態に _しない_ ことをお勧めします。例えば、ネットワークの負荷が一時的に急上昇したためにトランザクションコストが高騰した場合、トランザクションによっては、一時的な高額のコストを支払うよりも、必要に応じて待機し、コストが低下してから送信したほうが好ましいことがあります。 + +[Paymentトランザクション][]タイプの[`Paths`フィールド](payment.html#パス)についても、値を自動入力できます。 + + +## Flagsフィールド + +`Flags`フィールドには、トランザクションの行動を調整する各種のオプションを設定できます。オプションは、ビット単位のOR操作と組み合わせることで複数のフラグを同時に設定できるバイナリー値として表現します。 + +トランザクションで所定のフラグが有効になっているかどうかを確認するには、ビット単位のAND演算子をフラグの値と`Flags`フィールドで使用します。結果が0の場合は無効になっていることを示し、結果がフラグ値と等しい場合は有効になっていることを示します(その他の結果の場合は、実行した操作に誤りがあることを示します)。 + +ほとんどのフラグは、特定のタイプのトランザクションに対してのみ効果があります。複数のタイプのトランザクションに対して、同一のビット単位値をフラグに再利用できるため、フラグの設定と読み取りでは`TransactionType`フィールドに留意することが重要です。 + +フラグとして定義しないビットは、0にする必要があります([fix1543 Amendment][]では、一部のタイプのトランザクションについて、このルールが適用されます。デフォルトでは、ほとんどのタイプのトランザクションでこのルールが強制されます)。 + +### グローバルフラグ + +すべてのトランザクションにグローバルに適用される唯一のフラグは、以下のとおりです。 + +| フラグの名前 | 16進値 | 10進値 | 説明 | +|:--------------------|:-----------|:--------------|:--------------------------| +| tfFullyCanonicalSig | 0x80000000 | 2147483648 | _(使用を強く推奨)_ 完全に正規である署名を要求します。 | + +[signメソッド][](または「署名と送信」モードの[submitメソッド][])を使用すると、`rippled`は、`Flags`フィールドがすでに存在している場合を除き、`tfFullyCanonicalSig`フラグを有効にした状態で`Flags`フィールドを追加します。`tfFullyCanonicalSig`フラグは、`Flags`が明示的に指定されている場合、自動的には有効に***なりません***。また、[sign_forメソッド][]を使用してマルチ署名済みトランザクションに署名を追加する場合も、自動的には有効に***なりません***。 + +**警告:** `tfFullyCanonicalSig`を有効にしない場合は、不正使用者がトランザクションの署名を改変して、期待されるものとは別のハッシュを使用してトランザクションを成功させることが理論上可能になります。最悪の場合、同一の支払を何回も送信するようシステムに仕掛けられるおそれがあります。この問題を回避するには、署名するすべてのトランザクションで`tfFullyCanonicalSig`フラグを有効にします。 + +### フラグの範囲 + +トランザクションの`Flags`フィールドでは、さまざまなレベルや状況に適用されるフラグを設定できます。個々の状況に関するフラグは、以下の範囲に限定されます。 + +| 範囲の名前 | ビットマスク | 説明 | +|:-----------------|:-------------|:-------------------------------------------| +| ユニバーサルフラグ | `0xff000000` | すべてのタイプのトランザクションに対して一様に適用されるフラグ。 | +| タイプに基づくフラグ | `0x00ff0000` | フラグを使用する[トランザクションのタイプ](transaction-types.html)に応じて意味が異なるフラグ。 | +| 予約済みのフラグ | `0x0000ffff` | 現時点では定義されていないフラグ。トランザクションが有効になるのは、これらのフラグが無効になっている場合のみです。 | + +**注記:** [AccountSetトランザクション][]タイプには、タイプに基づくフラグと似た目的を果たす[ビット単位ではない独自のフラグ](accountset.html#accountsetのフラグ)があります。[レジャーオブジェクト](ledger-object-types.html)にも、さまざまなビット単位のフラグが定義される`Flags`フィールドがあります。 + + +## Memosフィールド + +`Memos`フィールドは、トランザクションに関する任意のメッセージデータを保持します。このフィールドは、オブジェクトの配列として表現します。各オブジェクトには唯一のフィールド`Memo`があり、このフィールドは、以下のフィールドを*1つ以上*持つ別のオブジェクトを保持しています。 + +| フィールド | 型 | [内部の型][] | 説明 | +|:-----------|:-------|:------------------|:-----------------------------------| +| MemoData | 文字列 | Blob | 通例、メモの内容を保持する任意の16進値。 | +| MemoFormat | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、メモのエンコード方法に関する情報を保持しています([MIMEタイプ](http://www.iana.org/assignments/media-types/media-types.xhtml)など)。 | +| MemoType | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、このメモのフォーマットを定義する一意の関係([RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)に準拠)。 | + +MemoTypeフィールドとMemoFormatフィールドには、以下の文字のみを使用できます。 `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%` + +`Memos`フィールドのサイズの上限は1KBです(バイナリーフォーマットでシリアル化されている場合)。 + +以下に、Memosフィールドが定義されているトランザクションの例を示します。 + +``` +{ + "TransactionType": "Payment", + "Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx", + "Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV", + "Memos": [ + { + "Memo": { + "MemoType": "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963", + "MemoData": "72656e74" + } + } + ], + "Amount": "1" +} +``` + + +## Signersフィールド + +`Signers`フィールドには、最大8つのキーペアから取得された署名を保持し、トランザクションを承認するための[マルチ署名](multi-signing.html)が含まれています。`Signers`リストはオブジェクトの配列であり、各オブジェクトが1つの`Signer`フィールドを保持しています。`Signer`フィールドには、以下の入れ子フィールドがあります。 + +| フィールド | 型 | [内部の型][] | 説明 | +|:--------------|:-------|:------------------|:--------------------------------| +| Account | 文字列 | AccountID | SignerListに記述され、この署名に関連付けられているアドレス。 | +| TxnSignature | 文字列 | Blob | `SigningPubKey`を使用して検証できる、このトランザクションの署名。 | +| SigningPubKey | 文字列 | Blob | この署名の作成に使用される公開鍵。 | + +`SigningPubKey`は、`Account`アドレスに関連付けられているキーでなければなりません。参照されている`Account`が、レジャーにあり資金供給済みアカウントである場合、SigningPubKeyには、そのアカウントの現在のレギュラーキー(設定されている場合)を指定できます。また、[lsfDisableMaster](accountroot.html#accountrootフラグ)フラグが有効になっている場合を除き、そのアカウントのマスターキーを指定することもできます。参照されている`Account`アドレスが、レジャーの資金供給済みのアカウントではない場合、`SigningPubKey`は、そのアドレスに関連付けられているマスターキーでなければなりません。 + +署名の検証は大量の演算能力を消費するタスクであるため、マルチ署名済みトランザクションをネットワークに中継するには、追加のXRPがコストとしてかかります。マルチ署名に含まれている署名ごとに、トランザクションに必要な[トランザクションコスト][]が増加します。例えば、トランザクションをネットワークに中継するための現在の最小トランザクションコストが`10000`dropである場合、`Signers`配列に3つのエントリーが含まれているマルチ署名済みトランザクションを中継するには、`Fee`の値を少なくとも`40000`dropにする必要があります。 + + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-formats.ja.md b/content/references/rippled-api/transaction-formats/transaction-formats.ja.md index 9ed731b0bd..53e6f5ce8f 100644 --- a/content/references/rippled-api/transaction-formats/transaction-formats.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-formats.ja.md @@ -1,9 +1,9 @@ -# トランザクションのフォーマット - - _トランザクション_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](consensus.html)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types.html)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションも、スパム対策の[トランザクションコスト][]を支払うためにXRPの残高が変更されることから、レジャーに含まれます。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トランザクションのフォーマット + + _トランザクション_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](consensus.html)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types.html)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションも、スパム対策の[トランザクションコスト][]を支払うためにXRPの残高が変更されることから、レジャーに含まれます。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-metadata.ja.md b/content/references/rippled-api/transaction-formats/transaction-metadata.ja.md index 91b0ce2d9c..8dbb34f76e 100644 --- a/content/references/rippled-api/transaction-formats/transaction-metadata.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-metadata.ja.md @@ -1,33 +1,33 @@ -# トランザクションのメタデータ - -トランザクションのメタデータは、トランザクションの処理後にトランザクションに追加されるひとまとまりのデータです。レジャーに記録されるトランザクションは、トランザクションが成功するかどうかにかかわらず、メタデータを保持しています。トランザクションのメタデータには、トランザクションの結果の詳細が含まれます。 - -**警告:** トランザクションのメタデータに示された変更が最終的なものになるのは、トランザクションが検証済みバージョンのレジャーに記録された場合のみです。 - -以下に、トランザクションのメタデータに含まれる可能性があるフィールドをいくつか示します。 - -| フィールド | 値 | 説明 | -|:--------------------------------------|:--------------------|:---------------| -| `AffectedNodes` | 配列 | このトランザクションで作成、削除、または修正された[レジャーオブジェクト](ledger-object-types.html)のリストと、個々のオブジェクトに対する具体的な変更内容。 | -| `DeliveredAmount` | [通貨額][] | **廃止予定。**`delivered_amount`で置き換えられます。Partial Paymentsでない場合は省略されます。 | -| `TransactionIndex` | 符号なし整数 | トランザクションが記録されているレジャーでのトランザクションの位置。この配列は0から始まります。(例えば、値が`2`の場合、そのレジャーの3番目のトランザクションであったことを意味します)。 | -| `TransactionResult` | 文字列 | トランザクションが成功したか、どのような理由で失敗したかを示す[結果コード](transaction-results.html)。 | -| [`delivered_amount`](#delivered_amount) | [通貨額][] | `Destination`アカウントが実際に受取った[通貨額][]。このフィールドは、トランザクションが[Partial Payments](partial-payments.html)であるかどうかにかかわらず、送金された金額を特定するために使用します。[新規: rippled 0.27.0][] | - -## delivered_amount - -[Paymentトランザクション][]の`Amount`。`Destination`に送金された金額を示し、トランザクションが成功すると、**[Partial Payments](partial-payments.html)であった場合を除いて、** 宛先は当該の金額を受取ります(Partial Paymentsの場合、`Amount`を上限とする正の金額が受取られます)。`Amount`フィールドを信頼するかどうかを選択するのではなく、メタデータの`delivered_amount`フィールドを使用して、宛先に実際に到達する金額を確認してください。 - -トランザクションのメタデータの`delivered_amount`フィールドは、成功したすべてのPaymentトランザクションが保持しており、フォーマットは通常の通貨額と同様です。ただし、送金額は、以下の両方の条件に該当するトランザクションについては使用できません。 - -* Partial Paymentsである -* 2014-01-20よりも前の検証済みレジャーに含まれている - -両方の条件に該当する場合、`delivered_amount`には、実際の金額ではなく文字列値`unavailable`が記述されます。この場合、トランザクションのメタデータにあるAffectedNodesを読み取ることが、実際に送金された金額を割り出せる唯一の手段になります。 - -関連項目: [Partial Payments](partial-payments.html) - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# トランザクションのメタデータ + +トランザクションのメタデータは、トランザクションの処理後にトランザクションに追加されるひとまとまりのデータです。レジャーに記録されるトランザクションは、トランザクションが成功するかどうかにかかわらず、メタデータを保持しています。トランザクションのメタデータには、トランザクションの結果の詳細が含まれます。 + +**警告:** トランザクションのメタデータに示された変更が最終的なものになるのは、トランザクションが検証済みバージョンのレジャーに記録された場合のみです。 + +以下に、トランザクションのメタデータに含まれる可能性があるフィールドをいくつか示します。 + +| フィールド | 値 | 説明 | +|:--------------------------------------|:--------------------|:---------------| +| `AffectedNodes` | 配列 | このトランザクションで作成、削除、または修正された[レジャーオブジェクト](ledger-object-types.html)のリストと、個々のオブジェクトに対する具体的な変更内容。 | +| `DeliveredAmount` | [通貨額][] | **廃止予定。**`delivered_amount`で置き換えられます。Partial Paymentsでない場合は省略されます。 | +| `TransactionIndex` | 符号なし整数 | トランザクションが記録されているレジャーでのトランザクションの位置。この配列は0から始まります。(例えば、値が`2`の場合、そのレジャーの3番目のトランザクションであったことを意味します)。 | +| `TransactionResult` | 文字列 | トランザクションが成功したか、どのような理由で失敗したかを示す[結果コード](transaction-results.html)。 | +| [`delivered_amount`](#delivered_amount) | [通貨額][] | `Destination`アカウントが実際に受取った[通貨額][]。このフィールドは、トランザクションが[Partial Payments](partial-payments.html)であるかどうかにかかわらず、送金された金額を特定するために使用します。[新規: rippled 0.27.0][] | + +## delivered_amount + +[Paymentトランザクション][]の`Amount`。`Destination`に送金された金額を示し、トランザクションが成功すると、**[Partial Payments](partial-payments.html)であった場合を除いて、** 宛先は当該の金額を受取ります(Partial Paymentsの場合、`Amount`を上限とする正の金額が受取られます)。`Amount`フィールドを信頼するかどうかを選択するのではなく、メタデータの`delivered_amount`フィールドを使用して、宛先に実際に到達する金額を確認してください。 + +トランザクションのメタデータの`delivered_amount`フィールドは、成功したすべてのPaymentトランザクションが保持しており、フォーマットは通常の通貨額と同様です。ただし、送金額は、以下の両方の条件に該当するトランザクションについては使用できません。 + +* Partial Paymentsである +* 2014-01-20よりも前の検証済みレジャーに含まれている + +両方の条件に該当する場合、`delivered_amount`には、実際の金額ではなく文字列値`unavailable`が記述されます。この場合、トランザクションのメタデータにあるAffectedNodesを読み取ることが、実際に送金された金額を割り出せる唯一の手段になります。 + +関連項目: [Partial Payments](partial-payments.html) + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-results/tec-codes.ja.md b/content/references/rippled-api/transaction-formats/transaction-results/tec-codes.ja.md index 36e3516f7b..57f613f4e4 100644 --- a/content/references/rippled-api/transaction-formats/transaction-results/tec-codes.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-results/tec-codes.ja.md @@ -1,49 +1,49 @@ -# tecコード - -これらのコードは、トランザクションは失敗したものの、[トランザクションコスト](transaction-cost.html)を適用するために、このトランザクションがレジャーに適用されたことを示します。100から199までの数値が含まれています。数値ではなくテキストコードの使用が推奨されます。 - -ほとんどの場合、`tec`コード付きのトランザクションは、[トランザクションコスト](transaction-cost.html)として支払われた分のXRPを消却する以外の操作は実行しませんが、いくつかの例外があります。例外として、`tecOVERSIZE`となったトランザクションは、一部の[資金供給のないオファー](offers.html#オファーのライフサイクル)を引き続きクリーンアップします。[トランザクションメタデータ](transaction-metadata.html)を常に確認し、トランザクションの実行内容を正確に把握してください。 - -**注意:** 暫定的に`tec`コードで失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。検証済みレジャーバージョンに記録される結果が最終結果となります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 - -| コード | 値 | 説明 | -|:---------------------------|:------|:----------------------------------------| -| `tecCLAIM` | 100 | 不明なエラー。トランザクションコストは消却されました。 | -| `tecCRYPTOCONDITION_ERROR` | 146 | この[EscrowCreate][]トランザクションまたは[EscrowFinish][]トランザクションに指定されるCrypto-conditionの形式が誤っているか、または一致しませんでした。 | -| `tecDIR_FULL` | 121 | トランザクションがアカウントの所有者ディレクトリにオブジェクト(トラストライン、Check、Escrow、Payment Channelなど)を追加しようと試みましたが、このアカウントはレジャーにこれ以上のオブジェクトを所有できません。 | -| `tecDST_TAG_NEEDED` | 143 | [Paymentトランザクション][]の宛先タグが省略されましたが、支払先アカウントでは`lsfRequireDestTag`フラグが有効になっています。[新規: rippled 0.28.0][] | -| `tecEXPIRED` | 148 | トランザクションがオブジェクト(OfferやCheckなど)を作成しようとしましたが、そのオブジェクトで指定された有効期限がすでに経過しています。 | -| `tecFAILED_PROCESSING` | 105 | トランザクションの処理中に不明なエラーが発生しました。 | -| `tecFROZEN` | 137 | [OfferCreateトランザクション][]が失敗しました。関係する1つまたは両方の資産が[Global Freeze](freezes.html)の対象となっています。 | -| `tecINSUF_RESERVE_LINE` | 122 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください)このエラーは、取引相手から同一通貨の送信側アカウントへのトラストラインがデフォルト以外の状態である場合に発生します。(その他のケースについては`tecNO_LINE_INSUF_RESERVE`を参照してください。) | -| `tecINSUF_RESERVE_OFFER` | 123 | 送信側アカウントに、新しいオファーを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) | -| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](reserves.html)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](signerlist.html#signerlistsと準備金)を参照してください。 | -| `tecINTERNAL` | 144 | 不明な内部エラーが発生し、トランザクションコストは適用されました。通常はこのエラーは返されません。このエラーを再現できる場合は、[問題を報告](https://github.com/ripple/rippled/issues)してください。 | -| `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/ripple/rippled/issues)してください。 | -| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高凍結能力の放棄](accountset.html#accountsetのフラグ)など)を試みました。[新規: rippled 0.28.0][] | -| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](transaction-basics.html#取引の承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) | -| `tecNO_AUTH` | 134 | トランザクションはトラストラインの残高を、`lsfRequireAuth`フラグが有効になっているアカウントに追加する必要がありましたが、そのトラストラインが承認されていなかったため、失敗しました。トラストラインが存在しない場合は、代わりに`tecNO_LINE`が発生します。 | -| `tecNO_DST` | 124 | トランザクションの受信側のアカウントが存在しません。これには、PaymentトランザクションタイプやTrustSetトランザクションタイプがあります。(XRPを十分に受信した場合に作成される可能性があります。) | -| `tecNO_DST_INSUF_XRP` | 125 | トランザクションの受信側のアカウントが存在しません。トランザクションは、アカウントの作成に十分なXRPを送金していません。 | -| `tecNO_ENTRY` | 140 | 将来の使用のために予約されています。 | -| `tecNO_ISSUER` | 133 | 通貨額の`issuer`フィールドに指定されたアカウントが存在しません。 | -| `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。_([fix1578 Amendment][]が必要です。)_ | -| `tecNO_LINE` | 135 | [OfferCreateトランザクション][]の`TakerPays`フィールドに、`lsfRequireAuth`を有効にしているイシュアーの資産が指定されており、このオファーを行っているアカウントはその資産に関してトラストラインを確立していません。(通常、オファーを暗黙に行うと必要に応じてトラストラインが作成されますが、この場合は承認なしでは資産を保有できないので問題にはなりません。)トラストラインは存在しているが承認されていない場合は、代わりに`tecNO_AUTH`が発生します。 | -| `tecNO_LINE_INSUF_RESERVE` | 126 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照)このエラーは、取引相手がこのアカウントに対する同一通貨のトラストラインを持っていない場合に発生します。(その他のケースについては`tecINSUF_RESERVE_LINE`を参照してください。) | -| `tecNO_LINE_REDUNDANT` | 127 | トランザクションはトラストラインをデフォルト状態に設定しようと試みましましたが、トラストラインが存在していなかったため、失敗しました。 | -| `tecNO_PERMISSION` | 139 | 送信者にはこの操作を実行する権限がありません。たとえば[EscrowFinishトランザクション][]が`FinishAfter`時刻に達する前に保留中の支払をリリースしようとしたか、送信者が所有していないChannelで誰かが[PaymentChannelFund][]を使用しようとしたか、または[Payment][]が「DepositAuth」フラグが有効になっているアカウントに資金の送金を試みました。 | -| `tecNO_REGULAR_KEY` | 131 | [AccountSetトランザクション][]がマスターキーを無効にしようとしましたが、アカウントにはマスターキー以外で[トランザクションを承認する](transaction-basics.html#取引の承認)方法がありません。[マルチ署名](multi-signing.html)が有効な場合、このコードは廃止予定であり、代わりに`tecNO_ALTERNATIVE_KEY`が使用されます。 | -| `tecNO_TARGET` | 138 | トランザクションが参照するEscrowレジャーオブジェクトまたはPayChannelレジャーオブジェクトが存在していません。これらのオブジェクトは、これまでに存在したことがないか、すでに削除されています。(たとえば、別の[EscrowFinishトランザクション][]で保留中の支払がすでに実行されている場合などです。)あるいは、支払先アカウントで`asfDisallowXRP`が設定されているため、このアカウントは[PaymentChannelCreate][]トランザクションまたは[EscrowCreate][]トランザクションの宛先に指定できません。 | -| `tecOVERSIZE` | 145 | サーバーがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。[新規: rippled 0.29.0-hf1][] | -| `tecOWNERS` | 132 | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 | -| `tecPATH_DRY` | 128 | トランザクションが失敗しました。指定されたパスに、送信の実行に十分な流動性がありませんでした。つまり、支払元アカウントと支払先アカウントはトラストラインにより関連付けされていません。 | -| `tecPATH_PARTIAL` | 101 | トランザクションが失敗しました。指定されたパスに、全額を送金するのに十分な流動性がありませんでした。 | -| `tecUNFUNDED` | 129 | トランザクションが失敗しました。アカウントがトランザクションの支払額に十分なXRPを保有しておらず、 _かつ_ このトランザクションを実行するのに追加で必要となる準備金が不足しています。([準備金](reserves.html)を参照してください。) | -| `tecUNFUNDED_ADD` | 102 | **廃止予定。** | -| `tecUNFUNDED_PAYMENT` | 104 | 送信側アカウントが準備金を考慮せずに、保有するXRPを超える額の送信を試みたため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) | -| `tecUNFUNDED_OFFER` | 103 | [OfferCreateトランザクション][]が失敗しました。オファーの作成元アカウントに`TakerGets` 通貨がありません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# tecコード + +これらのコードは、トランザクションは失敗したものの、[トランザクションコスト](transaction-cost.html)を適用するために、このトランザクションがレジャーに適用されたことを示します。100から199までの数値が含まれています。数値ではなくテキストコードの使用が推奨されます。 + +ほとんどの場合、`tec`コード付きのトランザクションは、[トランザクションコスト](transaction-cost.html)として支払われた分のXRPを消却する以外の操作は実行しませんが、いくつかの例外があります。例外として、`tecOVERSIZE`となったトランザクションは、一部の[資金供給のないオファー](offers.html#オファーのライフサイクル)を引き続きクリーンアップします。[トランザクションメタデータ](transaction-metadata.html)を常に確認し、トランザクションの実行内容を正確に把握してください。 + +**注意:** 暫定的に`tec`コードで失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。検証済みレジャーバージョンに記録される結果が最終結果となります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 + +| コード | 値 | 説明 | +|:---------------------------|:------|:----------------------------------------| +| `tecCLAIM` | 100 | 不明なエラー。トランザクションコストは消却されました。 | +| `tecCRYPTOCONDITION_ERROR` | 146 | この[EscrowCreate][]トランザクションまたは[EscrowFinish][]トランザクションに指定されるCrypto-conditionの形式が誤っているか、または一致しませんでした。 | +| `tecDIR_FULL` | 121 | トランザクションがアカウントの所有者ディレクトリにオブジェクト(トラストライン、Check、Escrow、Payment Channelなど)を追加しようと試みましたが、このアカウントはレジャーにこれ以上のオブジェクトを所有できません。 | +| `tecDST_TAG_NEEDED` | 143 | [Paymentトランザクション][]の宛先タグが省略されましたが、支払先アカウントでは`lsfRequireDestTag`フラグが有効になっています。[新規: rippled 0.28.0][] | +| `tecEXPIRED` | 148 | トランザクションがオブジェクト(OfferやCheckなど)を作成しようとしましたが、そのオブジェクトで指定された有効期限がすでに経過しています。 | +| `tecFAILED_PROCESSING` | 105 | トランザクションの処理中に不明なエラーが発生しました。 | +| `tecFROZEN` | 137 | [OfferCreateトランザクション][]が失敗しました。関係する1つまたは両方の資産が[Global Freeze](freezes.html)の対象となっています。 | +| `tecINSUF_RESERVE_LINE` | 122 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください)このエラーは、取引相手から同一通貨の送信側アカウントへのトラストラインがデフォルト以外の状態である場合に発生します。(その他のケースについては`tecNO_LINE_INSUF_RESERVE`を参照してください。) | +| `tecINSUF_RESERVE_OFFER` | 123 | 送信側アカウントに、新しいオファーを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) | +| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](reserves.html)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](signerlist.html#signerlistと準備金)を参照してください。 | +| `tecINTERNAL` | 144 | 不明な内部エラーが発生し、トランザクションコストは適用されました。通常はこのエラーは返されません。このエラーを再現できる場合は、[問題を報告](https://github.com/ripple/rippled/issues)してください。 | +| `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/ripple/rippled/issues)してください。 | +| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高凍結能力の放棄](accountset.html#accountsetのフラグ)など)を試みました。[新規: rippled 0.28.0][] | +| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](transaction-basics.html#取引の承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) | +| `tecNO_AUTH` | 134 | トランザクションはトラストラインの残高を、`lsfRequireAuth`フラグが有効になっているアカウントに追加する必要がありましたが、そのトラストラインが承認されていなかったため、失敗しました。トラストラインが存在しない場合は、代わりに`tecNO_LINE`が発生します。 | +| `tecNO_DST` | 124 | トランザクションの受信側のアカウントが存在しません。これには、PaymentトランザクションタイプやTrustSetトランザクションタイプがあります。(XRPを十分に受信した場合に作成される可能性があります。) | +| `tecNO_DST_INSUF_XRP` | 125 | トランザクションの受信側のアカウントが存在しません。トランザクションは、アカウントの作成に十分なXRPを送金していません。 | +| `tecNO_ENTRY` | 140 | 将来の使用のために予約されています。 | +| `tecNO_ISSUER` | 133 | 通貨額の`issuer`フィールドに指定されたアカウントが存在しません。 | +| `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。_([fix1578 Amendment][]が必要です。)_ | +| `tecNO_LINE` | 135 | [OfferCreateトランザクション][]の`TakerPays`フィールドに、`lsfRequireAuth`を有効にしているイシュアーの資産が指定されており、このオファーを行っているアカウントはその資産に関してトラストラインを確立していません。(通常、オファーを暗黙に行うと必要に応じてトラストラインが作成されますが、この場合は承認なしでは資産を保有できないので問題にはなりません。)トラストラインは存在しているが承認されていない場合は、代わりに`tecNO_AUTH`が発生します。 | +| `tecNO_LINE_INSUF_RESERVE` | 126 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照)このエラーは、取引相手がこのアカウントに対する同一通貨のトラストラインを持っていない場合に発生します。(その他のケースについては`tecINSUF_RESERVE_LINE`を参照してください。) | +| `tecNO_LINE_REDUNDANT` | 127 | トランザクションはトラストラインをデフォルト状態に設定しようと試みましましたが、トラストラインが存在していなかったため、失敗しました。 | +| `tecNO_PERMISSION` | 139 | 送信者にはこの操作を実行する権限がありません。たとえば[EscrowFinishトランザクション][]が`FinishAfter`時刻に達する前に保留中の支払をリリースしようとしたか、送信者が所有していないChannelで誰かが[PaymentChannelFund][]を使用しようとしたか、または[Payment][]が「DepositAuth」フラグが有効になっているアカウントに資金の送金を試みました。 | +| `tecNO_REGULAR_KEY` | 131 | [AccountSetトランザクション][]がマスターキーを無効にしようとしましたが、アカウントにはマスターキー以外で[トランザクションを承認する](transaction-basics.html#取引の承認)方法がありません。[マルチ署名](multi-signing.html)が有効な場合、このコードは廃止予定であり、代わりに`tecNO_ALTERNATIVE_KEY`が使用されます。 | +| `tecNO_TARGET` | 138 | トランザクションが参照するEscrowレジャーオブジェクトまたはPayChannelレジャーオブジェクトが存在していません。これらのオブジェクトは、これまでに存在したことがないか、すでに削除されています。(たとえば、別の[EscrowFinishトランザクション][]で保留中の支払がすでに実行されている場合などです。)あるいは、支払先アカウントで`asfDisallowXRP`が設定されているため、このアカウントは[PaymentChannelCreate][]トランザクションまたは[EscrowCreate][]トランザクションの宛先に指定できません。 | +| `tecOVERSIZE` | 145 | サーバーがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。[新規: rippled 0.29.0-hf1][] | +| `tecOWNERS` | 132 | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 | +| `tecPATH_DRY` | 128 | トランザクションが失敗しました。指定されたパスに、送信の実行に十分な流動性がありませんでした。つまり、支払元アカウントと支払先アカウントはトラストラインにより関連付けされていません。 | +| `tecPATH_PARTIAL` | 101 | トランザクションが失敗しました。指定されたパスに、全額を送金するのに十分な流動性がありませんでした。 | +| `tecUNFUNDED` | 129 | トランザクションが失敗しました。アカウントがトランザクションの支払額に十分なXRPを保有しておらず、 _かつ_ このトランザクションを実行するのに追加で必要となる準備金が不足しています。([準備金](reserves.html)を参照してください。) | +| `tecUNFUNDED_ADD` | 102 | **廃止予定。** | +| `tecUNFUNDED_PAYMENT` | 104 | 送信側アカウントが準備金を考慮せずに、保有するXRPを超える額の送信を試みたため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) | +| `tecUNFUNDED_OFFER` | 103 | [OfferCreateトランザクション][]が失敗しました。オファーの作成元アカウントに`TakerGets` 通貨がありません。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-results/tef-codes.ja.md b/content/references/rippled-api/transaction-formats/transaction-results/tef-codes.ja.md index 242d1e96cd..7fffdef383 100644 --- a/content/references/rippled-api/transaction-formats/transaction-results/tef-codes.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-results/tef-codes.ja.md @@ -1,31 +1,31 @@ -# tefコード - -これらのコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。通常これは、このトランザクションが今後すべてのレジャーで正常に完了できないことを意味します。-199から-100までの数値が含まれています。特定のエラーを示すコードは変更される可能性があるので、コードを使用しないでください。 - -**注意:** `tef`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 - -| コード | 説明 | -|:-----------------------|:----------------------------------------------------| -| `tefALREADY` | まったく同一のトランザクションがすでに適用されています。 | -| `tefBAD_ADD_AUTH` | **廃止予定。** | -| `tefBAD_AUTH` | このアカウントの署名に使用したキーには、このアカウントを変更する権限がありません。(このアカウントが[レギュラーキー](cryptographic-keys.html)として同じキーセットを持っている場合は変更が承認される可能性があります。) | -| `tefBAD_AUTH_MASTER` | このトランザクションを承認するために指定された1つの署名がマスターキーと一致していませんが、このアドレスに関連付けられているレギュラーキーもありません。 | -| `tefBAD_LEDGER` | トランザクションの処理中に、レジャーが予期しない状態にあることが検出されました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/ripple/rippled/issues)してください。 | -| `tefBAD_QUORUM` | トランザクションは[マルチ署名済み](multi-signing.html)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 | -| `tefBAD_SIGNATURE` | トランザクションは[マルチ署名済み](multi-signing.html)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 | -| `tefCREATED` | **廃止予定。** | -| `tefEXCEPTION` | トランザクションの処理中に、サーバーが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/ripple/rippled/issues)してください。 | -| `tefFAILURE` | トランザクション適用中の不明な障害。 | -| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバーが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/ripple/rippled/issues)してください。 | -| `tefINVARIANT_FAILED` | [トランザクションコスト](transaction-cost.html)を請求しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/ripple/rippled/issues)してください。 | -| `tefMASTER_DISABLED` | トランザクションはアカウントのマスターキーで署名されていましたが、アカウントに`lsfDisableMaster`フィールドが設定されていました。 | -| `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](reliable-transaction-submission.html#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 | -| `tefNO_AUTH_REQUIRED` | [TrustSetトランザクション][]がトラストラインを承認済みとしてマークしようとしましたが、対応するアカウントに対して`lsfRequireAuth`フラグが有効になっていないため、承認は不要です。 | -| `tefNOT_MULTI_SIGNING` | トランザクションは[マルチ署名済み](multi-signing.html)トランザクションでしたが、送信側アカウントでSignerListが定義されていません。 | -| `tefPAST_SEQ` | トランザクションのシーケンス番号は、トランザクションの送信元アカウントの現在のシーケンス番号よりも小さい番号です。 | -| `tefWRONG_PRIOR` | トランザクションに`AccountTxnID`フィールド(または廃止予定の`PreviousTxnID`フィールド)が含まれていますが、このフィールドに指定されているトランザクションはアカウントの前のトランザクションに一致しません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# tefコード + +これらのコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。通常これは、このトランザクションが今後すべてのレジャーで正常に完了できないことを意味します。-199から-100までの数値が含まれています。特定のエラーを示すコードは変更される可能性があるので、コードを使用しないでください。 + +**注意:** `tef`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 + +| コード | 説明 | +|:-----------------------|:----------------------------------------------------| +| `tefALREADY` | まったく同一のトランザクションがすでに適用されています。 | +| `tefBAD_ADD_AUTH` | **廃止予定。** | +| `tefBAD_AUTH` | このアカウントの署名に使用したキーには、このアカウントを変更する権限がありません。(このアカウントが[レギュラーキー](cryptographic-keys.html)として同じキーセットを持っている場合は変更が承認される可能性があります。) | +| `tefBAD_AUTH_MASTER` | このトランザクションを承認するために指定された1つの署名がマスターキーと一致していませんが、このアドレスに関連付けられているレギュラーキーもありません。 | +| `tefBAD_LEDGER` | トランザクションの処理中に、レジャーが予期しない状態にあることが検出されました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/ripple/rippled/issues)してください。 | +| `tefBAD_QUORUM` | トランザクションは[マルチ署名済み](multi-signing.html)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 | +| `tefBAD_SIGNATURE` | トランザクションは[マルチ署名済み](multi-signing.html)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 | +| `tefCREATED` | **廃止予定。** | +| `tefEXCEPTION` | トランザクションの処理中に、サーバーが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/ripple/rippled/issues)してください。 | +| `tefFAILURE` | トランザクション適用中の不明な障害。 | +| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバーが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/ripple/rippled/issues)してください。 | +| `tefINVARIANT_FAILED` | [トランザクションコスト](transaction-cost.html)を請求しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/ripple/rippled/issues)してください。 | +| `tefMASTER_DISABLED` | トランザクションはアカウントのマスターキーで署名されていましたが、アカウントに`lsfDisableMaster`フィールドが設定されていました。 | +| `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](reliable-transaction-submission.html#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 | +| `tefNO_AUTH_REQUIRED` | [TrustSetトランザクション][]がトラストラインを承認済みとしてマークしようとしましたが、対応するアカウントに対して`lsfRequireAuth`フラグが有効になっていないため、承認は不要です。 | +| `tefNOT_MULTI_SIGNING` | トランザクションは[マルチ署名済み](multi-signing.html)トランザクションでしたが、送信側アカウントでSignerListが定義されていません。 | +| `tefPAST_SEQ` | トランザクションのシーケンス番号は、トランザクションの送信元アカウントの現在のシーケンス番号よりも小さい番号です。 | +| `tefWRONG_PRIOR` | トランザクションに`AccountTxnID`フィールド(または廃止予定の`PreviousTxnID`フィールド)が含まれていますが、このフィールドに指定されているトランザクションはアカウントの前のトランザクションに一致しません。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-results/tel-codes.ja.md b/content/references/rippled-api/transaction-formats/transaction-results/tel-codes.ja.md index c9088327e1..79d881d63f 100644 --- a/content/references/rippled-api/transaction-formats/transaction-results/tel-codes.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-results/tel-codes.ja.md @@ -1,26 +1,26 @@ -# telコード - -これらのコードは、トランザクションを処理するローカルサーバーでのエラーを示します。構成や負荷レベルが異なる別のサーバーでは同じトランザクションが正常に処理される場合があります。-399から-300までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 - -**注意:** `tel`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 - -| コード | 説明 | -|:----------------------|:-----------------------------------------------------| -| `telBAD_DOMAIN` | トランザクションで指定されたドメイン値([AccountSetトランザクション][]の`Domain`フィールドなど)は、レジャーに保管するには長すぎるために使用できません。 | -| `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバーが処理できません。 | -| `telBAD_PUBLIC_KEY` | トランザクションで指定された公開鍵値([AccountSetトランザクション][]の`MessageKey`フィールドなど)は長すぎるために使用できません。 | -| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしていませんが、[キュー制限](transaction-queue.html#キューの制約事項)を満たしていなかったため、サーバーはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 | -| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] | -| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] | -| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] | -| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](transaction-cost.html#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバーへ送信を試みることができます。[新規: rippled 0.70.2][] | -| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またこのサーバーのトランザクションキューが一杯であるため、サーバーはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバーへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](transaction-cost.html#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。[新規: rippled 0.70.2][] | -| `telFAILED_PROCESSING` | トランザクションの処理中に不明なエラーが発生しました。 | -| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバーの負荷レベルに基づいて定められるサーバーの現在の[トランザクションコスト](transaction-cost.html)要件を満たすのに十分な値ではありあません。 | -| `telLOCAL_ERROR` | 不明なローカルエラー。 | -| `telNO_DST`_`PARTIAL` | トランザクションは、新しいアカウントに資金を供給するXRPの支払ですが、[tfPartialPaymentフラグ](partial-payments.html)が有効になっていました。これは許可されていません。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# telコード + +これらのコードは、トランザクションを処理するローカルサーバーでのエラーを示します。構成や負荷レベルが異なる別のサーバーでは同じトランザクションが正常に処理される場合があります。-399から-300までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 + +**注意:** `tel`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 + +| コード | 説明 | +|:----------------------|:-----------------------------------------------------| +| `telBAD_DOMAIN` | トランザクションで指定されたドメイン値([AccountSetトランザクション][]の`Domain`フィールドなど)は、レジャーに保管するには長すぎるために使用できません。 | +| `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバーが処理できません。 | +| `telBAD_PUBLIC_KEY` | トランザクションで指定された公開鍵値([AccountSetトランザクション][]の`MessageKey`フィールドなど)は長すぎるために使用できません。 | +| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしていませんが、[キュー制限](transaction-queue.html#キューの制約事項)を満たしていなかったため、サーバーはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 | +| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] | +| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] | +| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] | +| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](transaction-cost.html#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバーへ送信を試みることができます。[新規: rippled 0.70.2][] | +| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またこのサーバーのトランザクションキューが一杯であるため、サーバーはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバーへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](transaction-cost.html#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。[新規: rippled 0.70.2][] | +| `telFAILED_PROCESSING` | トランザクションの処理中に不明なエラーが発生しました。 | +| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバーの負荷レベルに基づいて定められるサーバーの現在の[トランザクションコスト](transaction-cost.html)要件を満たすのに十分な値ではありあません。 | +| `telLOCAL_ERROR` | 不明なローカルエラー。 | +| `telNO_DST`_`PARTIAL` | トランザクションは、新しいアカウントに資金を供給するXRPの支払ですが、[tfPartialPaymentフラグ](partial-payments.html)が有効になっていました。これは許可されていません。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-results/tem-codes.ja.md b/content/references/rippled-api/transaction-formats/transaction-results/tem-codes.ja.md index 90bbd9d096..585c6db498 100644 --- a/content/references/rippled-api/transaction-formats/transaction-results/tem-codes.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-results/tem-codes.ja.md @@ -1,47 +1,47 @@ -# temコード - -これらのコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。これらには-299から-200までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 - -**ヒント:** `tem`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。有効なトランザクションに関するルールが変更されない限り、`tem`コードが最終的な結果となります。(例えば、[Amendment](amendments.html)の有効化前に当該のAmendmentの機能を使用すると`temDISABLED`になります。後日Amendmentが有効化されると、エラーになったトランザクションは有効となり、正常に処理される可能性があります。) - -| コード | 説明 | -|:-----------------------------|:----------------------------------------------| -| `temBAD_AMOUNT` | トランザクションにより指定された額(宛先への[Payment][]の`Amount`または`SendMax`の金額など)が無効でした。マイナスの金額が指定された可能性があります。 | -| `temBAD_AUTH_MASTER` | このトランザクションの署名に使用されたキーが、トランザクションの送信元アカウントのマスターキーと一致していません。また、アカウントに[レギュラーキー](cryptographic-keys.html)セットがありません。 | -| `temBAD_CURRENCY` | トランザクションの通貨フィールドが誤って指定されています。正しいフォーマットについては、[通貨額の指定][Currency Amount]を参照してください。 | -| `temBAD_EXPIRATION` | トランザクションの有効期限の値が誤って指定されています([OfferCreateトランザクション][]など)。あるいは、トランザクションに必須の有効期限値が指定されていません(例えば、[EscrowCreateトランザクション][]の作成過程などで)。 | -| `temBAD_FEE` | トランザクションで`Fee`の値が誤って指定されています(例えば、XRP以外の通貨やマイナスの額のXRPを指定するなど)。 | -| `temBAD_ISSUER` | 要求に指定されている通貨の`issuer`フィールドが、トランザクションにて誤って指定されています。 | -| `temBAD_LIMIT` | [TrustSetトランザクション][]でトラストラインの`LimitAmount`値が誤って指定されています。 | -| `temBAD_OFFER` | [OfferCreateトランザクション][]で無効なオファーが指定されています(XRPをXRP自身と取引するオファー、マイナスの額のオファーなど)。 | -| `temBAD_PATH` | [Paymentトランザクション][]の1つ以上の[パス](paths.html)が誤って指定されています。例えば、XRPのイシュアーが含まれていたり、アカウントが異なる方法で指定されたりするなど。 | -| `temBAD_PATH_LOOP` | [Paymentトランザクション][]で[パス](paths.html)の1つがループとしてマークされているため、限られた時間内に処理できません。 | -| `temBAD_SEND_XRP_LIMIT` | [Paymentトランザクション][]で、XRP間の直接支払に[tfLimitQuality](payment.html#クオリティの制限)フラグが使用されましたが、XRP間の支払いでは通貨の取引は行われません。 | -| `temBAD_SEND_XRP_MAX` | [Payment トランザクション][]で、XRP間の直接支払に`SendMax`フィールドが指定されていますが、XRPの送金ではSendMaxは不要です。(SendMaxでXRPが有効となるのは、宛先への`Amount`がXRPではない場合のみです。) | -| `temBAD_SEND_XRP_NO_DIRECT` | [Paymentトランザクション][]で、XRP間の直接支払に[tfNoDirectRipple](payment.html#paymentのフラグ)フラグが使用されていますが、XRP間の支払いは常に直接行われます。 | -| `temBAD_SEND_XRP_PARTIAL` | [Paymentトランザクション][]で、XRP間の直接支払に [tfPartialPayment](partial-payments.html)フラグが使用されていますが、XRP間の直接支払では常に全額が送金されます。 | -| `temBAD_SEND_XRP_PATHS` | [Paymentトランザクション][]で、XRP送金時の`Paths`が指定されていますが、XRP間の支払いは常に直接行われます。 | -| `temBAD_SEQUENCE` | トランザクションは、トランザクション自体の`Sequence`番号よりも大きいシーケンス番号を参照します。例えば、取り消したいオファーは、そのオファーを取り消すトランザクションよりも後に置く必要があります。 | -| `temBAD_SIGNATURE` | このトランザクションを承認するための署名がないか、または署名の形式が適切ではありません。(適切な形式の署名がアカウントで承認されない場合は、[tecNO_PERMISSION](tec-codes.html)を参照してください。) | -| `temBAD_SRC_ACCOUNT` | このトランザクションの送信元の`Account`(「支払元アカウント」)の[アカウント](accounts.html)アドレスは適切な形式ではありません。 | -| `temBAD_TRANSFER_RATE` | [AccountSetトランザクションの`TransferRate`フィールド](accountset.html#transferrate)のフォーマットが適切ではないか、または許容範囲外です。 | -| `temCANNOT_PREAUTH_SELF` | [DepositPreauthトランザクション][]の送信者は、事前承認対象のアカウントとしても指定されていました。自分自身を事前承認することはできません。 | -| `temDST_IS_SRC` | トランザクションで宛先アドレスがトランザクションの送信元`Account`として誤って指定されていました。これにはトラストライン(支払先アドレスは`LimitAmount`の`issuer`フィールド)とPayment Channel(支払先アドレスは`Destination`フィールド)などがあります。 | -| `temDST_NEEDED` | トランザクションで宛先が誤って省略されていました。これは、[Paymentトランザクション][]の`Destination`フィールド、または`TrustSet`トランザクションの`LimitAmount`フィールドの`issuer`サブフィールドで起こり得ます。 | -| `temINVALID` | その他の理由により、トランザクションは無効です。例えば、トランザクションIDのフォーマットや署名の形式が正しくないなど、トランザクションを解釈する過程で何らかの誤った処理が発生した可能性があります。 | -| `temINVALID_FLAG` | トランザクションに指定されている[フラグ](transaction-common-fields.html#flagsフィールド)が存在していないか、または矛盾するフラグの組み合わせが指定されています。 | -| `temMALFORMED` | トランザクションのフォーマットで不明な問題が発生しました。 | -| `temREDUNDANT` | トランザクションは処理を行いません。例えば、送信側アカウントに支払いを直接送金する場合や、同一イシュアーの同一通貨を売買するオファーを作成する場合などです。 | -| `temREDUNDANT_SEND_MAX` | [削除: rippled 0.28.0][] | -| `temRIPPLE_EMPTY` | [Paymentトランザクション][]に指定されている`Paths`フィールドが空ですが、この支払いを完了するにはパスが必要です。 | -| `temBAD_WEIGHT` | [SignerListSetトランザクション][]に無効な`SignerWeight`が指定されています。例えば、0やマイナス値など。 | -| `temBAD_SIGNER` | [SignerListSetトランザクション][]に指定されている署名者が無効です。例えば、重複するエントリが指定されている場合や、SignerListの所有者がメンバーでもある場合などです。 | -| `temBAD_QUORUM` | [SignerListSetトランザクション][]に無効な`SignerQuorum`値が指定されています。この値が0以下であるか、またはリストのすべての署名者の合計数を超えています。 | -| `temUNCERTAIN` | 内部使用のみ。通常はこのコードは返されません。 | -| `temUNKNOWN` | 内部使用のみ。通常はこのコードは返されません。 | -| `temDISABLED` | このトランザクションには、無効化されているロジックが必要です。通常これは、現行レジャー向けに有効化されていない[Amendment](amendments.html)を使用しようとしていることを意味します。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# temコード + +これらのコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。これらには-299から-200までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 + +**ヒント:** `tem`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。有効なトランザクションに関するルールが変更されない限り、`tem`コードが最終的な結果となります。(例えば、[Amendment](amendments.html)の有効化前に当該のAmendmentの機能を使用すると`temDISABLED`になります。後日Amendmentが有効化されると、エラーになったトランザクションは有効となり、正常に処理される可能性があります。) + +| コード | 説明 | +|:-----------------------------|:----------------------------------------------| +| `temBAD_AMOUNT` | トランザクションにより指定された額(宛先への[Payment][]の`Amount`または`SendMax`の金額など)が無効でした。マイナスの金額が指定された可能性があります。 | +| `temBAD_AUTH_MASTER` | このトランザクションの署名に使用されたキーが、トランザクションの送信元アカウントのマスターキーと一致していません。また、アカウントに[レギュラーキー](cryptographic-keys.html)セットがありません。 | +| `temBAD_CURRENCY` | トランザクションの通貨フィールドが誤って指定されています。正しいフォーマットについては、[通貨額の指定][Currency Amount]を参照してください。 | +| `temBAD_EXPIRATION` | トランザクションの有効期限の値が誤って指定されています([OfferCreateトランザクション][]など)。あるいは、トランザクションに必須の有効期限値が指定されていません(例えば、[EscrowCreateトランザクション][]の作成過程などで)。 | +| `temBAD_FEE` | トランザクションで`Fee`の値が誤って指定されています(例えば、XRP以外の通貨やマイナスの額のXRPを指定するなど)。 | +| `temBAD_ISSUER` | 要求に指定されている通貨の`issuer`フィールドが、トランザクションにて誤って指定されています。 | +| `temBAD_LIMIT` | [TrustSetトランザクション][]でトラストラインの`LimitAmount`値が誤って指定されています。 | +| `temBAD_OFFER` | [OfferCreateトランザクション][]で無効なオファーが指定されています(XRPをXRP自身と取引するオファー、マイナスの額のオファーなど)。 | +| `temBAD_PATH` | [Paymentトランザクション][]の1つ以上の[パス](paths.html)が誤って指定されています。例えば、XRPのイシュアーが含まれていたり、アカウントが異なる方法で指定されたりするなど。 | +| `temBAD_PATH_LOOP` | [Paymentトランザクション][]で[パス](paths.html)の1つがループとしてマークされているため、限られた時間内に処理できません。 | +| `temBAD_SEND_XRP_LIMIT` | [Paymentトランザクション][]で、XRP間の直接支払に[tfLimitQuality](payment.html#クオリティの制限)フラグが使用されましたが、XRP間の支払いでは通貨の取引は行われません。 | +| `temBAD_SEND_XRP_MAX` | [Payment トランザクション][]で、XRP間の直接支払に`SendMax`フィールドが指定されていますが、XRPの送金ではSendMaxは不要です。(SendMaxでXRPが有効となるのは、宛先への`Amount`がXRPではない場合のみです。) | +| `temBAD_SEND_XRP_NO_DIRECT` | [Paymentトランザクション][]で、XRP間の直接支払に[tfNoDirectRipple](payment.html#paymentのフラグ)フラグが使用されていますが、XRP間の支払いは常に直接行われます。 | +| `temBAD_SEND_XRP_PARTIAL` | [Paymentトランザクション][]で、XRP間の直接支払に [tfPartialPayment](partial-payments.html)フラグが使用されていますが、XRP間の直接支払では常に全額が送金されます。 | +| `temBAD_SEND_XRP_PATHS` | [Paymentトランザクション][]で、XRP送金時の`Paths`が指定されていますが、XRP間の支払いは常に直接行われます。 | +| `temBAD_SEQUENCE` | トランザクションは、トランザクション自体の`Sequence`番号よりも大きいシーケンス番号を参照します。例えば、取り消したいオファーは、そのオファーを取り消すトランザクションよりも後に置く必要があります。 | +| `temBAD_SIGNATURE` | このトランザクションを承認するための署名がないか、または署名の形式が適切ではありません。(適切な形式の署名がアカウントで承認されない場合は、[tecNO_PERMISSION](tec-codes.html)を参照してください。) | +| `temBAD_SRC_ACCOUNT` | このトランザクションの送信元の`Account`(「支払元アカウント」)の[アカウント](accounts.html)アドレスは適切な形式ではありません。 | +| `temBAD_TRANSFER_RATE` | [AccountSetトランザクションの`TransferRate`フィールド](accountset.html#transferrate)のフォーマットが適切ではないか、または許容範囲外です。 | +| `temCANNOT_PREAUTH_SELF` | [DepositPreauthトランザクション][]の送信者は、事前承認対象のアカウントとしても指定されていました。自分自身を事前承認することはできません。 | +| `temDST_IS_SRC` | トランザクションで宛先アドレスがトランザクションの送信元`Account`として誤って指定されていました。これにはトラストライン(支払先アドレスは`LimitAmount`の`issuer`フィールド)とPayment Channel(支払先アドレスは`Destination`フィールド)などがあります。 | +| `temDST_NEEDED` | トランザクションで宛先が誤って省略されていました。これは、[Paymentトランザクション][]の`Destination`フィールド、または`TrustSet`トランザクションの`LimitAmount`フィールドの`issuer`サブフィールドで起こり得ます。 | +| `temINVALID` | その他の理由により、トランザクションは無効です。例えば、トランザクションIDのフォーマットや署名の形式が正しくないなど、トランザクションを解釈する過程で何らかの誤った処理が発生した可能性があります。 | +| `temINVALID_FLAG` | トランザクションに指定されている[フラグ](transaction-common-fields.html#flagsフィールド)が存在していないか、または矛盾するフラグの組み合わせが指定されています。 | +| `temMALFORMED` | トランザクションのフォーマットで不明な問題が発生しました。 | +| `temREDUNDANT` | トランザクションは処理を行いません。例えば、送信側アカウントに支払いを直接送金する場合や、同一イシュアーの同一通貨を売買するオファーを作成する場合などです。 | +| `temREDUNDANT_SEND_MAX` | [削除: rippled 0.28.0][] | +| `temRIPPLE_EMPTY` | [Paymentトランザクション][]に指定されている`Paths`フィールドが空ですが、この支払いを完了するにはパスが必要です。 | +| `temBAD_WEIGHT` | [SignerListSetトランザクション][]に無効な`SignerWeight`が指定されています。例えば、0やマイナス値など。 | +| `temBAD_SIGNER` | [SignerListSetトランザクション][]に指定されている署名者が無効です。例えば、重複するエントリが指定されている場合や、SignerListの所有者がメンバーでもある場合などです。 | +| `temBAD_QUORUM` | [SignerListSetトランザクション][]に無効な`SignerQuorum`値が指定されています。この値が0以下であるか、またはリストのすべての署名者の合計数を超えています。 | +| `temUNCERTAIN` | 内部使用のみ。通常はこのコードは返されません。 | +| `temUNKNOWN` | 内部使用のみ。通常はこのコードは返されません。 | +| `temDISABLED` | このトランザクションには、無効化されているロジックが必要です。通常これは、現行レジャー向けに有効化されていない[Amendment](amendments.html)を使用しようとしていることを意味します。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-results/ter-codes.ja.md b/content/references/rippled-api/transaction-formats/transaction-results/ter-codes.ja.md index 25c0b82e98..f4ef29af9a 100644 --- a/content/references/rippled-api/transaction-formats/transaction-results/ter-codes.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-results/ter-codes.ja.md @@ -1,24 +1,24 @@ -# terコード - -これらのコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。通常は、他の仮定トランザクションが先に適用される場合など。これらには-99から-1までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 - -**注意:** `ter`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 - -| コード | 説明 | -|:-----------------|:----------------------------------------------------------| -| `terFUNDS_SPENT` | **廃止予定。** | -| `terINSUF_FEE_B` | トランザクションの送信元アカウントに、トランザクションに指定されている`Fee`の支払いに十分なXRPがありません。 | -| `terLAST` | 内部使用のみ。通常はこのコードは返されません。 | -| `terNO_ACCOUNT` | レジャーのトランザクション送信元アドレスに(まだ)資金が供給されていません。 | -| `terNO_AUTH` | トランザクションでは、`lsfRequireAuth`が有効であるアカウントが発行した通貨を未承認のトラストラインに追加する操作が行われます。たとえば、保有が許可されていない通貨を購入するオファーを出した場合などです。 | -| `terNO_LINE` | 内部使用のみ。通常はこのコードは返されません。 | -| `terNO_RIPPLE` | 内部使用のみ。通常はこのコードは返されません。 | -| `terOWNERS` | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 | -| `terPRE_SEQ` | 現在のトランザクションの`Sequence`番号が、トランザクションを送信するアカウントの現在のシーケンス番号よりも大きな番号です。 | -| `terRETRY` | 再試行可能な不明なエラー。 | -| `terQUEUED` | トランザクションは負荷スケーリングされた[トランザクションコスト](transaction-cost.html)の要件を満たしているが、オープンレジャーの要件を満たしていなかったため、トランザクションは将来のレジャーのキューに入れられました。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# terコード + +これらのコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。通常は、他の仮定トランザクションが先に適用される場合など。これらには-99から-1までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。 + +**注意:** `ter`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。 + +| コード | 説明 | +|:-----------------|:----------------------------------------------------------| +| `terFUNDS_SPENT` | **廃止予定。** | +| `terINSUF_FEE_B` | トランザクションの送信元アカウントに、トランザクションに指定されている`Fee`の支払いに十分なXRPがありません。 | +| `terLAST` | 内部使用のみ。通常はこのコードは返されません。 | +| `terNO_ACCOUNT` | レジャーのトランザクション送信元アドレスに(まだ)資金が供給されていません。 | +| `terNO_AUTH` | トランザクションでは、`lsfRequireAuth`が有効であるアカウントが発行した通貨を未承認のトラストラインに追加する操作が行われます。たとえば、保有が許可されていない通貨を購入するオファーを出した場合などです。 | +| `terNO_LINE` | 内部使用のみ。通常はこのコードは返されません。 | +| `terNO_RIPPLE` | 内部使用のみ。通常はこのコードは返されません。 | +| `terOWNERS` | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 | +| `terPRE_SEQ` | 現在のトランザクションの`Sequence`番号が、トランザクションを送信するアカウントの現在のシーケンス番号よりも大きな番号です。 | +| `terRETRY` | 再試行可能な不明なエラー。 | +| `terQUEUED` | トランザクションは負荷スケーリングされた[トランザクションコスト](transaction-cost.html)の要件を満たしているが、オープンレジャーの要件を満たしていなかったため、トランザクションは将来のレジャーのキューに入れられました。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-results/tes-success.ja.md b/content/references/rippled-api/transaction-formats/transaction-results/tes-success.ja.md index 42ff2476dc..e25cad753d 100644 --- a/content/references/rippled-api/transaction-formats/transaction-results/tes-success.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-results/tes-success.ja.md @@ -1,12 +1,12 @@ -# tes Success - -`tesSUCCESS`コードは、トランザクションが成功したことを示す唯一のコードです。このコードは、必ずしも処理が期待どおりに終了したことを示すものではありません。(たとえば[OfferCancel][]は、キャンセルするオファーがない場合でも「正常に終了」できます。)`tesSUCCESS`の結果には数値0が使用されます。 - -| コード | 説明 | -|:-----------|:----------------------------------------------------------------| -| `tesSUCCESS` | トランザクションが適用され、他のサーバーに転送されました。検証済みレジャーにこのコードが記録されている場合は、トランザクションの成功が最終的な結果となります。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# tes Success + +`tesSUCCESS`コードは、トランザクションが成功したことを示す唯一のコードです。このコードは、必ずしも処理が期待どおりに終了したことを示すものではありません。(たとえば[OfferCancel][]は、キャンセルするオファーがない場合でも「正常に終了」できます。)`tesSUCCESS`の結果には数値0が使用されます。 + +| コード | 説明 | +|:-----------|:----------------------------------------------------------------| +| `tesSUCCESS` | トランザクションが適用され、他のサーバーに転送されました。検証済みレジャーにこのコードが記録されている場合は、トランザクションの成功が最終的な結果となります。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-results/transaction-results.ja.md b/content/references/rippled-api/transaction-formats/transaction-results/transaction-results.ja.md index 81a357a6f6..5861ccf273 100644 --- a/content/references/rippled-api/transaction-formats/transaction-results/transaction-results.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-results/transaction-results.ja.md @@ -1,48 +1,48 @@ -# 取引の結果 - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/TER.h "ソース") - -`rippled`サーバーは、取引結果の要約を結果コードで示し、結果コードは`engine_result`や`meta.TransactionResult`などのフィールドに記述されます。これらのコードは、それぞれ異なるプレフィクスを付加した複数のカテゴリーに分類されます。 - -| カテゴリー | プレフィクス | 説明 | -|:----------------------|:------------------------|:---------------------------| -| コストの請求のみ | [tec](tec-codes.html) | トランザクションは意図された目的を果さず、[トランザクションコスト](transaction-cost.html)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | -| 失敗 | [tef](tef-codes.html) | サーバーの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | -| ローカルエラー | [tel](tel-codes.html) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバーでエラーが発生しました。サーバーまたは時間を変えて再送信すると、別の応答を得られる可能性があります。 | -| 形式が正しくないトランザクション | [tem](tem-codes.html) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 | -| 再試行 | [ter](ter-codes.html) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 | -| 成功 | [tes](tes-success.html) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | - -**警告:** トランザクションの暫定的な結果コードは、最終的な結果とは異なるものになる場合があります。暫定的に成功とされたトランザクションが最終的に失敗する場合や、暫定的に失敗とされたトランザクションが最終的に成功する場合もあります。暫定的に失敗とされたトランザクションが、最終的に別のコードで失敗とされる場合もあります。トランザクションの結果が最終的なものとなるタイミングを判断する方法については、[結果のファイナリティー](finality-of-results.html)を参照してください。 - -ローカルエラー(`tel`)と形式が正しくないトランザクション(`tem`)の違いは、プロトコルレベルでのルールの問題です。例えば、トランザクションに含めることができるパスの最大数について、プロトコルでは上限が設定されていないとします。一方、サーバーでは、処理できるパスの数について上限を定義している場合があります。2つのサーバーがあり、設定がそれぞれ異なっている場合、一方はパスが多いという理由でトランザクションの`tel`エラーを返すのに対して、他方のサーバーではトランザクションが正常に処理されることもあります。コンセンサスを獲得したトランザクションを処理できるサーバーが十分にある場合、検証済みレジャーに含まれる可能性はあります。 - -これに対して、`tem`エラーは、設定にかかわらずトランザクションを適用できるサーバーが存在しないことを示唆しています。トランザクションがプロトコルのルールに違反しているか、許容限度を超えてあいまいであるか、完全に無意味なものになっています。形式が正しくないトランザクションが有効なものになる可能性があるのは、プロトコルに変更が生じた場合のみです。例えば、新しい機能が採用された場合、当該の機能を使用するトランザクションは、当該の機能がまだ採用されていない古いソフトウェアを実行しているサーバーによって、形式が正しくないと見なされる可能性があります。 - - -## 即時の応答 - -[submitメソッド][]から返される応答には、トランザクションのローカル処理中に発生した事項を示す、`rippled`サーバーからの暫定的な結果が含まれています。 - -`submit`からの応答に含まれているのは、以下のフィールドです。 - -| フィールド | 値 | 説明 | -|:------------------------|:---------------|:----------------------------------| -| `engine_result` | 文字列 | 結果を分類するコード。例: `tecPATH_DRY` | -| `engine_result_code` | 符号付き整数 | `engine_result`に対応する数値。値そのものは変更される可能性があります。 | -| `engine_result_message` | 文字列 | 発生した事項を説明する、人間が読める形式のメッセージ。このメッセージは、問題を診断する目的で開発者に利用されることを想定したものであり、通知なく変更される可能性があります。 | - -トランザクションをローカルで送信して適用した時点で問題がない場合、応答は以下のような内容になります。 - -```js - "engine_result": "tesSUCCESS", - "engine_result_code": 0, - "engine_result_message": "The transaction was applied.Only final in a validated ledger." -``` - -**注記:** この段階で成功の結果が表示されたとしても、トランザクションが完全に成功したことを示すわけではありません。ローカルのサーバーに保持されている暫定バージョンのレジャーに対して、正常に適用されたにすぎません。この段階での失敗の結果も、暫定的なものであり変化する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# 取引の結果 + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/protocol/TER.h "ソース") + +`rippled`サーバーは、取引結果の要約を結果コードで示し、結果コードは`engine_result`や`meta.TransactionResult`などのフィールドに記述されます。これらのコードは、それぞれ異なるプレフィクスを付加した複数のカテゴリーに分類されます。 + +| カテゴリー | プレフィクス | 説明 | +|:----------------------|:------------------------|:---------------------------| +| コストの請求のみ | [tec](tec-codes.html) | トランザクションは意図された目的を果さず、[トランザクションコスト](transaction-cost.html)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | +| 失敗 | [tef](tef-codes.html) | サーバーの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 | +| ローカルエラー | [tel](tel-codes.html) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバーでエラーが発生しました。サーバーまたは時間を変えて再送信すると、別の応答を得られる可能性があります。 | +| 形式が正しくないトランザクション | [tem](tem-codes.html) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 | +| 再試行 | [ter](ter-codes.html) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 | +| 成功 | [tes](tes-success.html) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 | + +**警告:** トランザクションの暫定的な結果コードは、最終的な結果とは異なるものになる場合があります。暫定的に成功とされたトランザクションが最終的に失敗する場合や、暫定的に失敗とされたトランザクションが最終的に成功する場合もあります。暫定的に失敗とされたトランザクションが、最終的に別のコードで失敗とされる場合もあります。トランザクションの結果が最終的なものとなるタイミングを判断する方法については、[結果のファイナリティー](finality-of-results.html)を参照してください。 + +ローカルエラー(`tel`)と形式が正しくないトランザクション(`tem`)の違いは、プロトコルレベルでのルールの問題です。例えば、トランザクションに含めることができるパスの最大数について、プロトコルでは上限が設定されていないとします。一方、サーバーでは、処理できるパスの数について上限を定義している場合があります。2つのサーバーがあり、設定がそれぞれ異なっている場合、一方はパスが多いという理由でトランザクションの`tel`エラーを返すのに対して、他方のサーバーではトランザクションが正常に処理されることもあります。コンセンサスを獲得したトランザクションを処理できるサーバーが十分にある場合、検証済みレジャーに含まれる可能性はあります。 + +これに対して、`tem`エラーは、設定にかかわらずトランザクションを適用できるサーバーが存在しないことを示唆しています。トランザクションがプロトコルのルールに違反しているか、許容限度を超えてあいまいであるか、完全に無意味なものになっています。形式が正しくないトランザクションが有効なものになる可能性があるのは、プロトコルに変更が生じた場合のみです。例えば、新しい機能が採用された場合、当該の機能を使用するトランザクションは、当該の機能がまだ採用されていない古いソフトウェアを実行しているサーバーによって、形式が正しくないと見なされる可能性があります。 + + +## 即時の応答 + +[submitメソッド][]から返される応答には、トランザクションのローカル処理中に発生した事項を示す、`rippled`サーバーからの暫定的な結果が含まれています。 + +`submit`からの応答に含まれているのは、以下のフィールドです。 + +| フィールド | 値 | 説明 | +|:------------------------|:---------------|:----------------------------------| +| `engine_result` | 文字列 | 結果を分類するコード。例: `tecPATH_DRY` | +| `engine_result_code` | 符号付き整数 | `engine_result`に対応する数値。値そのものは変更される可能性があります。 | +| `engine_result_message` | 文字列 | 発生した事項を説明する、人間が読める形式のメッセージ。このメッセージは、問題を診断する目的で開発者に利用されることを想定したものであり、通知なく変更される可能性があります。 | + +トランザクションをローカルで送信して適用した時点で問題がない場合、応答は以下のような内容になります。 + +```js + "engine_result": "tesSUCCESS", + "engine_result_code": 0, + "engine_result_message": "The transaction was applied.Only final in a validated ledger." +``` + +**注記:** この段階で成功の結果が表示されたとしても、トランザクションが完全に成功したことを示すわけではありません。ローカルのサーバーに保持されている暫定バージョンのレジャーに対して、正常に適用されたにすぎません。この段階での失敗の結果も、暫定的なものであり変化する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/transaction-formats/transaction-types/accountset.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/accountset.ja.md index 6064e0cbd9..fa9df6a160 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/accountset.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/accountset.ja.md @@ -1,116 +1,116 @@ -# AccountSet - -[[ソース]
](https://github.com/ripple/rippled/blob/f65cea66ef99b1de149c02c15f06de6c61abf360/src/ripple/app/transactors/SetAccount.cpp "ソース") - -AccountSetトランザクションは、[XRP Ledgerのアカウント](accountroot.html)のプロパティーを修正します。 - -## {{currentpage.name}}のJSONの例 - -```json -{ - "TransactionType": "AccountSet", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "Sequence": 5, - "Domain": "6578616D706C652E636F6D", - "SetFlag": 5, - "MessageKey": "rQD4SqHJtDxn5DDL7xNnojNa3vxS1Jx5gv" -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:-----------------|:------------------|:-------------------| -| [ClearFlag][] | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを無効にするためのフラグの一意識別子。 | -| [Domain][] | 文字列 | Blob | _(省略可)_ このアカウントを保有するドメインのASCII小文字を表現する16進文字列。 | -| EmailHash | 文字列 | Hash128 | _(省略可)_ アバターイメージの生成に使用されるメールアドレスのハッシュ。一般的に、クライアントは[Gravatar](http://en.gravatar.com/site/implement/hash/)を使用してこのイメージを表示しています。 | -| MessageKey | 文字列 | Blob | _(省略可)_ 暗号化されたメッセージをこのアカウントに送信するための公開鍵。 | -| [SetFlag][] | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを有効にするための整数フラグ。 | -| [TransferRate][] | 符号なし整数 | UInt32 | _(省略可)_ ユーザーがこのアカウントの発行済み通貨を送金するときに請求される手数料。通貨単位の10億分の1で表現されます。手数料なしを意味する特殊なケースの`0`を除いて、`2000000000`より大きくしたり、`1000000000`より小さくしたりすることはできません。 | -| [TickSize][] | 符号なし整数 | UInt8 | _(省略可)_このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です_([TickSize Amendment][]が必要です)。_ | -| WalletLocator | 文字列 | Hash256 | _(省略可)_ 使用されません。 | -| WalletSize | 数値 | UInt32 | _(省略可)_ 使用されません。 | - -[ClearFlag]: #accountsetのフラグ -[Domain]: #domain -[SetFlag]: #accountsetのフラグ -[TickSize]: ticksize.html -[TransferRate]: accountset.html#transferrate - -これらのオプションがいずれも指定されていない場合、AccountSetトランザクションは(取引コストの消却以外に)意味がありません。詳細は、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。 - -## Domain - -`Domain`フィールドは、ドメインのASCII小文字を表す16進文字列で表現します。例えば、ドメイン*example.com*は`"6578616D706C652E636F6D"`として表現します。 - -`Domain`フィールドをアカウントから削除するには、Domainを空文字列に設定してAccountSetを送信します。 - -アカウントの`Domain`フィールドには任意のドメインを挿入できます。アカウントとドメインが同一の人物または企業に属していることを証明するには、「双方向リンク」を確立することをお勧めします。 - -- 所有するアカウントに対して、所有するドメインを`Domain`フィールドで設定します。 -- そのドメインのWebサイトで、所有アカウントをリストするテキストファイルをホスティングし、必要に応じて、XRP Ledgerの用途に関するその他の情報も記述します。慣例上、このファイルの名前は`ripple.txt`とします。例については、を参照してください。 - **注意:** 中間者攻撃を防止するには、最新のTLS証明書を使用してHTTPSでWebサイトを提供します。 - -## AccountSetのフラグ - -アカウントについて、有効または無効にできる複数のオプションが用意されています。アカウントのオプションは、状況に応じてさまざまなタイプのフラグで表現します。 - -* `AccountSet`タイプのトランザクションについては、`SetFlag`パラメーターとして渡すことでオプションを有効にしたり、`ClearFlag`パラメーターとして渡すことでオプションを無効にしたりできる複数の「AccountSetフラグ」が用意されています(プレフィクスは**asf**)。 -* `AccountSet`タイプのトランザクションについては、`Flags`パラメーターとして渡すことでアカウントの特定のオプションを有効または無効にできる複数のトランザクションフラグが用意されています(プレフィクスは**tf**)。このタイプの利用はお勧めしません。新しいアカウントオプションには、対応するトランザクションフラグ(tf)が存在しません。 -* `AccountRoot`レジャーオブジェクトタイプには、レジャー固有のフラグが用意されています(プレフィクスは**lsf**)。これらのフラグは、特定のレジャーに含まれている特定のアカウントオプションの状態を表します。これらの設定は、トランザクションによって変更されるまで適用されます。 - -アカウントのフラグを有効または無効にする手段としてお勧めするのは、AccountSetトランザクションの`SetFlag`パラメーターと`ClearFlag`パラメーターを使用する方法です。AccountSetのフラグは、名前が**asf**で始まります。 - -どのフラグも、デフォルトでは無効になっています。 - -使用できるAccountSetのフラグは、以下のとおりです。 - -| フラグの名前 | 10進値 | 対応するレジャーフラグ | 説明 | -|:-----------------|:--------------|:--------------------------|:--------------| -| asfAccountTxnID | 5 | (なし) | このアカウントの直近のトランザクションのIDを追跡します。[AccountTxnID](transaction-common-fields.html#accounttxnid)については必須です。 | -| asfDefaultRipple | 8 | lsfDefaultRipple | このアカウントのトラストラインでの[リップリング](rippling.html)をデフォルトで有効にします。[新規: rippled 0.27.3][] | -| asfDepositAuth | 9 | lsfDepositAuth | このアカウントに対して[Deposit Authorization](depositauth.html)を有効にします _([DepositAuth Amendment][]が必要)。_ | -| asfDisableMaster | 4 | lsfDisableMaster | マスターキーペアの使用を禁止します。[レギュラーキー](cryptographic-keys.html)や[署名者リスト](multi-signing.html)など、トランザクションに署名するための別の手段がアカウントで設定されている場合のみ有効にできます。 | -| asfDisallowXRP | 3 | lsfDisallowXRP | XRPがこのアカウントに送信されないようにします(`rippled`ではなくクライアントアプリケーションによって履行されます)。 | -| asfGlobalFreeze | 7 | lsfGlobalFreeze | このアカウントによって発行されたすべての資産を[凍結](freezes.html)します。 | -| asfNoFreeze | 6 | lsfNoFreeze | [個々のトラストラインの凍結またはGlobal Freezeの無効化](freezes.html)の機能を永続的に放棄します。このフラグは、有効にした後は無効にできません。 | -| asfRequireAuth | 2 | lsfRequireAuth | このアドレスによって発行された残高をユーザーが保持することについて、承認を要求します。アドレスにトラストラインが接続されていない場合のみ有効にできます。 | -| asfRequireDest | 1 | lsfRequireDestTag | トランザクションをこのアカウントに送信するための宛先タグを要求します。 | - -`asfDisableMaster`フラグまたは`asfNoFreeze`フラグを有効にするには、マスターキーペアで署名することによって[トランザクションを承認](transaction-basics.html#取引の承認)する必要があります。レギュラーキーペアやマルチ署名を使用することはできません。レギュラーキーペアまたはマルチ署名を使用すると、`asfDisableMaster`を無効にする(つまり、マスターキーペアを再び有効にする)ことができます。[新規: rippled 0.28.0][] - -以下の[トランザクションフラグ](transaction-common-fields.html#flagsフィールド)はAccountSetタイプのトランザクションに固有のもので、同様の目的を果たしますが、使用することはお勧めしません。 - -| フラグの名前 | 16進値 | 10進値 | 後継のAccountSetのフラグ | -|:------------------|:-----------|:--------------|:----------------------------| -| tfRequireDestTag | 0x00010000 | 65536 | asfRequireDest(SetFlag) | -| tfOptionalDestTag | 0x00020000 | 131072 | asfRequireDest(ClearFlag) | -| tfRequireAuth | 0x00040000 | 262144 | asfRequireAuth(SetFlag) | -| tfOptionalAuth | 0x00080000 | 524288 | asfRequireAuth(ClearFlag) | -| tfDisallowXRP | 0x00100000 | 1048576 | asfDisallowXRP(SetFlag) | -| tfAllowXRP | 0x00200000 | 2097152 | asfDisallowXRP(ClearFlag) | - -**注意:** トランザクションに含まれている`tf`フラグと`asf`フラグの数値は、レジャーに含まれている静的なアカウントに設定された値と合致しません。レジャーに含まれているアカウントのフラグを読み取るには、[`AccountRoot`フラグ](accountroot.html#accountrootフラグ)を参照してください。 - - -### 着信トランザクションのブロック - -目的が不明確な着信トランザクションは、顧客による誤りを識別し、誤りに応じて、アカウントへの払い戻しや残高の調整を実施しなければならない場合がある金融機関にとって、不都合な存在です。`asfRequireDest`フラグと`asfDisallowXRP`フラグは、理由が不明確な状態で資金が誤って送金されることのないよう、ユーザーを保護することを目的としています。 - -例えば、宛先タグは通常、金融機関が支払いを受領したときに、保有しているどの残高に入金するのかを識別するために使用されます。宛先タグが省略されていると、入金先のアカウントが明確でない場合があり、払い戻しが必要になるなどの問題が発生します。`asfRequireDest`タグを使用すると、着信するすべての支払いに宛先タグが必ず設定され、他のユーザーから、宛先の不明な支払いが誤って送金される問題が発生しにくくなります。 - -XRP以外の通貨に関しては、それらの通貨のトラストラインを作成しないことで、無用な支払いの受入れを防止できます。XRPでは信頼が必須ではないことから、ユーザーによるアカウントへのXRPの送金を抑止するには、`asfDisallowXRP`フラグを使用します。ただし、このフラグによってアカウントが使用不可になる場合があるため、`rippled`では適用されません(このフラグを無効にしたトランザクションを送信するための十分なXRPがアカウントになかった場合、アカウントは完全に使用不可になります)。代わりに、クライアントアプリケーションでは、`asfDisallowXRP`フラグが有効なアカウントへのXRPの支払いを禁止または抑止します。 - -## TransferRate - -TransferRateフィールドは、ユーザーの発行する通貨を相手方が送金するときに請求する手数料を指定します。詳細は、[送金手数料](transfer-fees.html)を参照してください。 - -`rippled`のWebSocketおよびJSON-RPCのAPIでは、TransferRate(相手方に10億単位の通貨を送金するのに必要な金額)は整数で表現します。例えば、送金手数料が20%である場合、値を`1200000000`と表現します。 値を1000000000未満にすることはできません(この値未満にした場合、トランザクションの送信について金銭の引き渡しが発生することになり、攻撃に利用されるおそれがあります)。1000000000の短縮形として、手数料なしを意味する0を指定できます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# AccountSet + +[[ソース]
](https://github.com/ripple/rippled/blob/f65cea66ef99b1de149c02c15f06de6c61abf360/src/ripple/app/transactors/SetAccount.cpp "ソース") + +AccountSetトランザクションは、[XRP Ledgerのアカウント](accountroot.html)のプロパティーを修正します。 + +## {{currentpage.name}}のJSONの例 + +```json +{ + "TransactionType": "AccountSet", + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "Sequence": 5, + "Domain": "6578616D706C652E636F6D", + "SetFlag": 5, + "MessageKey": "rQD4SqHJtDxn5DDL7xNnojNa3vxS1Jx5gv" +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-----------------|:-----------------|:------------------|:-------------------| +| [ClearFlag][] | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを無効にするためのフラグの一意識別子。 | +| [Domain][] | 文字列 | Blob | _(省略可)_ このアカウントを保有するドメインのASCII小文字を表現する16進文字列。 | +| EmailHash | 文字列 | Hash128 | _(省略可)_ アバターイメージの生成に使用されるメールアドレスのハッシュ。一般的に、クライアントは[Gravatar](http://en.gravatar.com/site/implement/hash/)を使用してこのイメージを表示しています。 | +| MessageKey | 文字列 | Blob | _(省略可)_ 暗号化されたメッセージをこのアカウントに送信するための公開鍵。 | +| [SetFlag][] | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを有効にするための整数フラグ。 | +| [TransferRate][] | 符号なし整数 | UInt32 | _(省略可)_ ユーザーがこのアカウントの発行済み通貨を送金するときに請求される手数料。通貨単位の10億分の1で表現されます。手数料なしを意味する特殊なケースの`0`を除いて、`2000000000`より大きくしたり、`1000000000`より小さくしたりすることはできません。 | +| [TickSize][] | 符号なし整数 | UInt8 | _(省略可)_このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です_([TickSize Amendment][]が必要です)。_ | +| WalletLocator | 文字列 | Hash256 | _(省略可)_ 使用されません。 | +| WalletSize | 数値 | UInt32 | _(省略可)_ 使用されません。 | + +[ClearFlag]: #accountsetのフラグ +[Domain]: #domain +[SetFlag]: #accountsetのフラグ +[TickSize]: ticksize.html +[TransferRate]: accountset.html#transferrate + +これらのオプションがいずれも指定されていない場合、AccountSetトランザクションは(取引コストの消却以外に)意味がありません。詳細は、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。 + +## Domain + +`Domain`フィールドは、ドメインのASCII小文字を表す16進文字列で表現します。例えば、ドメイン*example.com*は`"6578616D706C652E636F6D"`として表現します。 + +`Domain`フィールドをアカウントから削除するには、Domainを空文字列に設定してAccountSetを送信します。 + +アカウントの`Domain`フィールドには任意のドメインを挿入できます。アカウントとドメインが同一の人物または企業に属していることを証明するには、「双方向リンク」を確立することをお勧めします。 + +- 所有するアカウントに対して、所有するドメインを`Domain`フィールドで設定します。 +- そのドメインのWebサイトで、所有アカウントをリストするテキストファイルをホスティングし、必要に応じて、XRP Ledgerの用途に関するその他の情報も記述します。慣例上、このファイルの名前は`ripple.txt`とします。例については、を参照してください。 + **注意:** 中間者攻撃を防止するには、最新のTLS証明書を使用してHTTPSでWebサイトを提供します。 + +## AccountSetのフラグ + +アカウントについて、有効または無効にできる複数のオプションが用意されています。アカウントのオプションは、状況に応じてさまざまなタイプのフラグで表現します。 + +* `AccountSet`タイプのトランザクションについては、`SetFlag`パラメーターとして渡すことでオプションを有効にしたり、`ClearFlag`パラメーターとして渡すことでオプションを無効にしたりできる複数の「AccountSetフラグ」が用意されています(プレフィクスは**asf**)。 +* `AccountSet`タイプのトランザクションについては、`Flags`パラメーターとして渡すことでアカウントの特定のオプションを有効または無効にできる複数のトランザクションフラグが用意されています(プレフィクスは**tf**)。このタイプの利用はお勧めしません。新しいアカウントオプションには、対応するトランザクションフラグ(tf)が存在しません。 +* `AccountRoot`レジャーオブジェクトタイプには、レジャー固有のフラグが用意されています(プレフィクスは**lsf**)。これらのフラグは、特定のレジャーに含まれている特定のアカウントオプションの状態を表します。これらの設定は、トランザクションによって変更されるまで適用されます。 + +アカウントのフラグを有効または無効にする手段としてお勧めするのは、AccountSetトランザクションの`SetFlag`パラメーターと`ClearFlag`パラメーターを使用する方法です。AccountSetのフラグは、名前が**asf**で始まります。 + +どのフラグも、デフォルトでは無効になっています。 + +使用できるAccountSetのフラグは、以下のとおりです。 + +| フラグの名前 | 10進値 | 対応するレジャーフラグ | 説明 | +|:-----------------|:--------------|:--------------------------|:--------------| +| asfAccountTxnID | 5 | (なし) | このアカウントの直近のトランザクションのIDを追跡します。[AccountTxnID](transaction-common-fields.html#accounttxnid)については必須です。 | +| asfDefaultRipple | 8 | lsfDefaultRipple | このアカウントのトラストラインでの[リップリング](rippling.html)をデフォルトで有効にします。[新規: rippled 0.27.3][] | +| asfDepositAuth | 9 | lsfDepositAuth | このアカウントに対して[Deposit Authorization](depositauth.html)を有効にします _([DepositAuth Amendment][]が必要)。_ | +| asfDisableMaster | 4 | lsfDisableMaster | マスターキーペアの使用を禁止します。[レギュラーキー](cryptographic-keys.html)や[署名者リスト](multi-signing.html)など、トランザクションに署名するための別の手段がアカウントで設定されている場合のみ有効にできます。 | +| asfDisallowXRP | 3 | lsfDisallowXRP | XRPがこのアカウントに送信されないようにします(`rippled`ではなくクライアントアプリケーションによって履行されます)。 | +| asfGlobalFreeze | 7 | lsfGlobalFreeze | このアカウントによって発行されたすべての資産を[凍結](freezes.html)します。 | +| asfNoFreeze | 6 | lsfNoFreeze | [個々のトラストラインの凍結またはGlobal Freezeの無効化](freezes.html)の機能を永続的に放棄します。このフラグは、有効にした後は無効にできません。 | +| asfRequireAuth | 2 | lsfRequireAuth | このアドレスによって発行された残高をユーザーが保持することについて、承認を要求します。アドレスにトラストラインが接続されていない場合のみ有効にできます。 | +| asfRequireDest | 1 | lsfRequireDestTag | トランザクションをこのアカウントに送信するための宛先タグを要求します。 | + +`asfDisableMaster`フラグまたは`asfNoFreeze`フラグを有効にするには、マスターキーペアで署名することによって[トランザクションを承認](transaction-basics.html#取引の承認)する必要があります。レギュラーキーペアやマルチ署名を使用することはできません。レギュラーキーペアまたはマルチ署名を使用すると、`asfDisableMaster`を無効にする(つまり、マスターキーペアを再び有効にする)ことができます。[新規: rippled 0.28.0][] + +以下の[トランザクションフラグ](transaction-common-fields.html#flagsフィールド)はAccountSetタイプのトランザクションに固有のもので、同様の目的を果たしますが、使用することはお勧めしません。 + +| フラグの名前 | 16進値 | 10進値 | 後継のAccountSetのフラグ | +|:------------------|:-----------|:--------------|:----------------------------| +| tfRequireDestTag | 0x00010000 | 65536 | asfRequireDest(SetFlag) | +| tfOptionalDestTag | 0x00020000 | 131072 | asfRequireDest(ClearFlag) | +| tfRequireAuth | 0x00040000 | 262144 | asfRequireAuth(SetFlag) | +| tfOptionalAuth | 0x00080000 | 524288 | asfRequireAuth(ClearFlag) | +| tfDisallowXRP | 0x00100000 | 1048576 | asfDisallowXRP(SetFlag) | +| tfAllowXRP | 0x00200000 | 2097152 | asfDisallowXRP(ClearFlag) | + +**注意:** トランザクションに含まれている`tf`フラグと`asf`フラグの数値は、レジャーに含まれている静的なアカウントに設定された値と合致しません。レジャーに含まれているアカウントのフラグを読み取るには、[`AccountRoot`フラグ](accountroot.html#accountrootフラグ)を参照してください。 + + +### 着信トランザクションのブロック + +目的が不明確な着信トランザクションは、顧客による誤りを識別し、誤りに応じて、アカウントへの払い戻しや残高の調整を実施しなければならない場合がある金融機関にとって、不都合な存在です。`asfRequireDest`フラグと`asfDisallowXRP`フラグは、理由が不明確な状態で資金が誤って送金されることのないよう、ユーザーを保護することを目的としています。 + +例えば、宛先タグは通常、金融機関が支払いを受領したときに、保有しているどの残高に入金するのかを識別するために使用されます。宛先タグが省略されていると、入金先のアカウントが明確でない場合があり、払い戻しが必要になるなどの問題が発生します。`asfRequireDest`タグを使用すると、着信するすべての支払いに宛先タグが必ず設定され、他のユーザーから、宛先の不明な支払いが誤って送金される問題が発生しにくくなります。 + +XRP以外の通貨に関しては、それらの通貨のトラストラインを作成しないことで、無用な支払いの受入れを防止できます。XRPでは信頼が必須ではないことから、ユーザーによるアカウントへのXRPの送金を抑止するには、`asfDisallowXRP`フラグを使用します。ただし、このフラグによってアカウントが使用不可になる場合があるため、`rippled`では適用されません(このフラグを無効にしたトランザクションを送信するための十分なXRPがアカウントになかった場合、アカウントは完全に使用不可になります)。代わりに、クライアントアプリケーションでは、`asfDisallowXRP`フラグが有効なアカウントへのXRPの支払いを禁止または抑止します。 + +## TransferRate + +TransferRateフィールドは、ユーザーの発行する通貨を相手方が送金するときに請求する手数料を指定します。詳細は、[送金手数料](transfer-fees.html)を参照してください。 + +`rippled`のWebSocketおよびJSON-RPCのAPIでは、TransferRate(相手方に10億単位の通貨を送金するのに必要な金額)は整数で表現します。例えば、送金手数料が20%である場合、値を`1200000000`と表現します。 値を1000000000未満にすることはできません(この値未満にした場合、トランザクションの送信について金銭の引き渡しが発生することになり、攻撃に利用されるおそれがあります)。1000000000の短縮形として、手数料なしを意味する0を指定できます。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/checkcancel.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/checkcancel.ja.md index 6e36932d21..abb9484a10 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/checkcancel.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/checkcancel.ja.md @@ -1,34 +1,34 @@ -# CheckCancel -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CancelCheck.cpp "Source") - -_([Checks Amendment][]が必要です :not_enabled:)_ - -未清算のCheckを取り消し、送金を行わずにレジャーから削除します。Checkの送金元または送金先は、いつでもこのトランザクションタイプを使用してCheckを取り消すことができます。有効期限切れのCheckはすべてのアドレスが取り消すことができます。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "TransactionType": "CheckCancel", - "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", - "Fee": "12" -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------|:----------|:------------------|:-------------------------------| -| `CheckID` | 文字列 | Hash256 | 取り消す[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 | - -## エラーケース - -- `CheckID`により識別されるオブジェクトが存在していないか、またはCheckではない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。 -- Checkが有効期限切れではなく、CheckCancelトランザクションの送信者がCheckの送金元または送金先ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# CheckCancel +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CancelCheck.cpp "Source") + +_([Checks Amendment][]が必要です :not_enabled:)_ + +未清算のCheckを取り消し、送金を行わずにレジャーから削除します。Checkの送金元または送金先は、いつでもこのトランザクションタイプを使用してCheckを取り消すことができます。有効期限切れのCheckはすべてのアドレスが取り消すことができます。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "TransactionType": "CheckCancel", + "CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", + "Fee": "12" +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:------------|:----------|:------------------|:-------------------------------| +| `CheckID` | 文字列 | Hash256 | 取り消す[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 | + +## エラーケース + +- `CheckID`により識別されるオブジェクトが存在していないか、またはCheckではない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。 +- Checkが有効期限切れではなく、CheckCancelトランザクションの送信者がCheckの送金元または送金先ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/transaction-formats/transaction-types/checkcash.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/checkcash.ja.md index d2b892e12f..63d7fde491 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/checkcash.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/checkcash.ja.md @@ -1,45 +1,45 @@ -# CheckCash -[[ソース]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CashCheck.cpp "Source") - -_([Checks Amendment][]が必要です :not_enabled:)_ - -対応する[CheckCreateトランザクション][]で承認された額まで受領するため、レジャーでCheckオブジェクトの清算を試みます。CheckCashトランザクションでCheckを換金できるのは、Checkの`Destination`アドレスだけです。このCheckの換金方法は、送金先により開始される[ペイメント][]の実行に似ています。 - -Checkに相当する資金があるとは保証されないため、送金元に十分な残高がないか、または資金を送金できるだけの十分な流動性がないことが原因で、Checkの清算が失敗することがあります。このような状況が発生した場合、Checkはレジャーに残り、送金先は後でこのCheckの換金を再試行するか、または異なる額で換金を試みることができます。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "TransactionType": "CheckCash", - "Amount": "100000000", - "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", - "Fee": "12" -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------|:--------------------|:------------------|:--------------------| -| `CheckID` | 文字列 | Hash256 | 換金する[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 | -| `Amount` | [通貨額][] | Amount | _(省略可)_ 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 | -| `DeliverMin` | [通貨額][] | Amount | _(省略可)_ Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 | - -`Amount`または`DeliverMin`のいずれかを指定する***必要があります***が、両方は指定しないでください。 - -## エラーケース - -- CheckCashトランザクションの送信者がCheckの`Destination`ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 -- `CheckID`フィールドにより識別されるCheckが存在していない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。 -- `CheckID`フィールドにより識別されるCheckが有効期限切れである場合、トランザクションは結果コード`tecEXPIRED`で失敗します。 -- Checkの送金先でRequireDestフラグが有効であるが、作成されるCheckには送金先タグが指定されていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。 -- トランザクションで`Amount`と`DeliverMin`の両方が指定または省略される場合、トランザクションは結果コード`temMALFORMED`で失敗します。 -- `Amount`または`DeliverMin` がCheckの通貨(およびXRP以外の通貨の場合はイシュアー)に一致しない場合、トランザクションは結果コード`temBAD_CURRENCY`で失敗します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# CheckCash +[[ソース]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CashCheck.cpp "Source") + +_([Checks Amendment][]が必要です :not_enabled:)_ + +対応する[CheckCreateトランザクション][]で承認された額まで受領するため、レジャーでCheckオブジェクトの清算を試みます。CheckCashトランザクションでCheckを換金できるのは、Checkの`Destination`アドレスだけです。このCheckの換金方法は、送金先により開始される[ペイメント][]の実行に似ています。 + +Checkに相当する資金があるとは保証されないため、送金元に十分な残高がないか、または資金を送金できるだけの十分な流動性がないことが原因で、Checkの清算が失敗することがあります。このような状況が発生した場合、Checkはレジャーに残り、送金先は後でこのCheckの換金を再試行するか、または異なる額で換金を試みることができます。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "TransactionType": "CheckCash", + "Amount": "100000000", + "CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334", + "Fee": "12" +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-------------|:--------------------|:------------------|:--------------------| +| `CheckID` | 文字列 | Hash256 | 換金する[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 | +| `Amount` | [通貨額][] | Amount | _(省略可)_ 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 | +| `DeliverMin` | [通貨額][] | Amount | _(省略可)_ Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 | + +`Amount`または`DeliverMin`のいずれかを指定する***必要があります***が、両方は指定しないでください。 + +## エラーケース + +- CheckCashトランザクションの送信者がCheckの`Destination`ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 +- `CheckID`フィールドにより識別されるCheckが存在していない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。 +- `CheckID`フィールドにより識別されるCheckが有効期限切れである場合、トランザクションは結果コード`tecEXPIRED`で失敗します。 +- Checkの送金先でRequireDestフラグが有効であるが、作成されるCheckには送金先タグが指定されていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。 +- トランザクションで`Amount`と`DeliverMin`の両方が指定または省略される場合、トランザクションは結果コード`temMALFORMED`で失敗します。 +- `Amount`または`DeliverMin` がCheckの通貨(およびXRP以外の通貨の場合はイシュアー)に一致しない場合、トランザクションは結果コード`temBAD_CURRENCY`で失敗します。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/checkcreate.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/checkcreate.ja.md index d4bb2117d4..2ac8fd9a88 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/checkcreate.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/checkcreate.ja.md @@ -1,47 +1,47 @@ -# CheckCreate -[[ソース]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CreateCheck.cpp "Source") - -_([Checks Amendment][]が必要です :not_enabled:)_ - -レジャーにCheckオブジェクトを作成します。これにより指定の送金先は後日換金することができます。このトランザクションの送信者はCheckの送金元です。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "TransactionType": "CheckCreate", - "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", - "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", - "SendMax": "100000000", - "Expiration": 570113521, - "InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B", - "DestinationTag": 1, - "Fee": "12" -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:--------------------|:------------------|:----------------| -| `Destination` | 文字列 | Account | Checkを換金できる[アカウント](accounts.html)の一意アドレス。 | -| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額(XRP以外の通貨の[送金手数料](transfer-fees.html)を含む)。Checkは同一通貨の送金先にのみ入金可能です(XRP以外の通貨の場合は同一イシュアーから)。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ Checkが無効になる時刻([Rippleエポック以降の経過秒数][])。 | -| `InvoiceID` | 文字列 | Hash256 | _(省略可)_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | - -## エラーケース - -- `Destination`がトランザクションの送信者である場合、トランザクションは結果コード`temREDUNDANT`で失敗します。 -- `Destination`[アカウント](accounts.html)がレジャーに存在していない場合、トランザクションは結果コード`tecNO_DST`で失敗します。 -- `Destination`アカウントでRequireDestフラグが有効であるが、トランザクションに`DestinationTag`フィールドが含まれていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。 -- `SendMax`に[凍結](freezes.html)されている発行済み通貨が指定されている場合、トランザクションは結果コード`tecFROZEN`で失敗します。 -- トランザクションの`Expiration`が過去の日時である場合、トランザクションは結果コード`tecEXPIRED`で失敗します。 -- Checkの追加後に送金元が[所有者準備金](reserves.html#所有者準備金)条件を満たすのに十分なXRPを保有していない場合、トランザクションは結果コード`tecINSUFFICIENT_RESERVE`で失敗します。 -- Checkの送金元または送金先のいずれかがレジャーでこれ以上のオブジェクトを所有できない場合、トランザクションは結果コード`tecDIR_FULL`で失敗します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# CheckCreate +[[ソース]](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CreateCheck.cpp "Source") + +_([Checks Amendment][]が必要です :not_enabled:)_ + +レジャーにCheckオブジェクトを作成します。これにより指定の送金先は後日換金することができます。このトランザクションの送信者はCheckの送金元です。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "TransactionType": "CheckCreate", + "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", + "Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy", + "SendMax": "100000000", + "Expiration": 570113521, + "InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B", + "DestinationTag": 1, + "Fee": "12" +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-----------------|:--------------------|:------------------|:----------------| +| `Destination` | 文字列 | Account | Checkを換金できる[アカウント](accounts.html)の一意アドレス。 | +| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額(XRP以外の通貨の[送金手数料](transfer-fees.html)を含む)。Checkは同一通貨の送金先にのみ入金可能です(XRP以外の通貨の場合は同一イシュアーから)。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ Checkが無効になる時刻([Rippleエポック以降の経過秒数][])。 | +| `InvoiceID` | 文字列 | Hash256 | _(省略可)_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | + +## エラーケース + +- `Destination`がトランザクションの送信者である場合、トランザクションは結果コード`temREDUNDANT`で失敗します。 +- `Destination`[アカウント](accounts.html)がレジャーに存在していない場合、トランザクションは結果コード`tecNO_DST`で失敗します。 +- `Destination`アカウントでRequireDestフラグが有効であるが、トランザクションに`DestinationTag`フィールドが含まれていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。 +- `SendMax`に[凍結](freezes.html)されている発行済み通貨が指定されている場合、トランザクションは結果コード`tecFROZEN`で失敗します。 +- トランザクションの`Expiration`が過去の日時である場合、トランザクションは結果コード`tecEXPIRED`で失敗します。 +- Checkの追加後に送金元が[所有者準備金](reserves.html#所有者準備金)条件を満たすのに十分なXRPを保有していない場合、トランザクションは結果コード`tecINSUFFICIENT_RESERVE`で失敗します。 +- Checkの送金元または送金先のいずれかがレジャーでこれ以上のオブジェクトを所有できない場合、トランザクションは結果コード`tecDIR_FULL`で失敗します。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.ja.md index 39fe49b338..e0bd46f155 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.ja.md @@ -1,46 +1,46 @@ -# DepositPreauth -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/DepositPreauth.cpp "Source") - -_[DepositPreauth Amendment][]が必要です。_ - -DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。これは、このトランザクションの送信者が[Deposit Authorization](depositauth.html)を使用している(または使用する予定がある)場合にのみ有用です。 - -**ヒント:** このトランザクションを使用して、Deposit Authorizationを有効にする前に特定の取引相手を事前承認できます。これは、Deposit Authorizationの義務化への円滑な移行に役立ちます。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "TransactionType" : "DepositPreauth", - "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", - "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", - "Fee" : "10", - "Flags" : 2147483648, - "Sequence" : 2 -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------|:----------|:------------------|:-----| -| `Authorize` | 文字列 | AccountID | _(省略可)_ 事前承認する送信者のXRP Ledgerアドレス。 | -| `Unauthorize` | 文字列 | AccountID | _(省略可)_ 事前承認を取り消す必要がある送信者のXRP Ledgerアドレス。 | - -`Authorize`または`Unauthorize`_のいずれか_ を指定する必要がありますが、両方は指定しないでください。 - -このトランザクションには以下の制限があります。 - -- アカウントはそのアカウント自体のアドレスを事前承認(または承認解除)できません。このような操作をすると、[`temCANNOT_PREAUTH_SELF`](tem-codes.html)で失敗します。 -- すでに事前承認済みのアカウントを事前承認しようとすると、[`tecDUPLICATE`](tec-codes.html)で失敗します。 -- 事前承認されていないアカウントを承認解除しようとすると、[`tecNO_ENTRY`](tec-codes.html)で失敗します。 -- レジャーで資金が供給されていないアドレスを事前承認しようとすると、[`tecNO_TARGET`](tec-codes.html)で失敗します。 -- 承認を追加すると[DepositPreauthオブジェクト](depositpreauth-object.html)がレジャーに追加されて、[所有者の必要準備金](reserves.html#所有者準備金)に反映されます。トランザクションの送信者に、増額された準備金の支払いに十分なXRPがない場合、トランザクションは[`tecINSUFFICIENT_RESERVE`](tec-codes.html)で失敗します。アカウントの送信者の所有オブジェクトが最大数に達している場合、トランザクションは[`tecDIR_FULL`](tec-codes.html)で失敗します。 - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# DepositPreauth +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/DepositPreauth.cpp "Source") + +_[DepositPreauth Amendment][]が必要です。_ + +DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。これは、このトランザクションの送信者が[Deposit Authorization](depositauth.html)を使用している(または使用する予定がある)場合にのみ有用です。 + +**ヒント:** このトランザクションを使用して、Deposit Authorizationを有効にする前に特定の取引相手を事前承認できます。これは、Deposit Authorizationの義務化への円滑な移行に役立ちます。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "TransactionType" : "DepositPreauth", + "Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8", + "Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de", + "Fee" : "10", + "Flags" : 2147483648, + "Sequence" : 2 +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:--------------|:----------|:------------------|:-----| +| `Authorize` | 文字列 | AccountID | _(省略可)_ 事前承認する送信者のXRP Ledgerアドレス。 | +| `Unauthorize` | 文字列 | AccountID | _(省略可)_ 事前承認を取り消す必要がある送信者のXRP Ledgerアドレス。 | + +`Authorize`または`Unauthorize`_のいずれか_ を指定する必要がありますが、両方は指定しないでください。 + +このトランザクションには以下の制限があります。 + +- アカウントはそのアカウント自体のアドレスを事前承認(または承認解除)できません。このような操作をすると、[`temCANNOT_PREAUTH_SELF`](tem-codes.html)で失敗します。 +- すでに事前承認済みのアカウントを事前承認しようとすると、[`tecDUPLICATE`](tec-codes.html)で失敗します。 +- 事前承認されていないアカウントを承認解除しようとすると、[`tecNO_ENTRY`](tec-codes.html)で失敗します。 +- レジャーで資金が供給されていないアドレスを事前承認しようとすると、[`tecNO_TARGET`](tec-codes.html)で失敗します。 +- 承認を追加すると[DepositPreauthオブジェクト](depositpreauth-object.html)がレジャーに追加されて、[所有者の必要準備金](reserves.html#所有者準備金)に反映されます。トランザクションの送信者に、増額された準備金の支払いに十分なXRPがない場合、トランザクションは[`tecINSUFFICIENT_RESERVE`](tec-codes.html)で失敗します。アカウントの送信者の所有オブジェクトが最大数に達している場合、トランザクションは[`tecDIR_FULL`](tec-codes.html)で失敗します。 + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/escrowcancel.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/escrowcancel.ja.md index 293b77fb01..bc0436580c 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/escrowcancel.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/escrowcancel.ja.md @@ -1,37 +1,37 @@ -# EscrowCancel - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source") - -_[Escrow Amendment][]が必要です。_ - -Escrowに留保されているXRPを送金元に返金します。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCancel", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "OfferSequence": 7, -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:----------------|:----------|:------------------|:---------------------------| -| `Owner` | 文字列 | AccountID | Escrow経由の支払いに資金を供給した支払元アカウントのアドレス。 | -| `OfferSequence` | 数値 | UInt32 | 取り消すEscrowを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | - -EscrowCancelトランザクションはどのアカウントからでも送信できます。 - -* 対応する[EscrowCreateトランザクション][]で`CancelAfter`時刻が指定されていない場合、EscrowCancelトランザクションは失敗します。 -* 指定されていても、`CancelAfter`時刻が最後に閉鎖されたレジャーの閉鎖時刻よりも後である場合は、EscrowCancelトランザクションが失敗します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} +# EscrowCancel + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source") + +_[Escrow Amendment][]が必要です。_ + +Escrowに留保されているXRPを送金元に返金します。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCancel", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "OfferSequence": 7, +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:----------------|:----------|:------------------|:---------------------------| +| `Owner` | 文字列 | AccountID | Escrow経由の支払いに資金を供給した支払元アカウントのアドレス。 | +| `OfferSequence` | 数値 | UInt32 | 取り消すEscrowを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | + +EscrowCancelトランザクションはどのアカウントからでも送信できます。 + +* 対応する[EscrowCreateトランザクション][]で`CancelAfter`時刻が指定されていない場合、EscrowCancelトランザクションは失敗します。 +* 指定されていても、`CancelAfter`時刻が最後に閉鎖されたレジャーの閉鎖時刻よりも後である場合は、EscrowCancelトランザクションが失敗します。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} {% include '_snippets/rippled_versions.md' %} \ No newline at end of file diff --git a/content/references/rippled-api/transaction-formats/transaction-types/escrowcreate.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/escrowcreate.ja.md index 10bd8e97e1..cdaaed34d9 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/escrowcreate.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/escrowcreate.ja.md @@ -1,45 +1,45 @@ -# EscrowCreate - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source") - -_[Escrow Amendment][]が必要です。_ - -Escrowプロセスが終了または取り消されるまでXRPを隔離します。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowCreate", - "Amount": "10000", - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "CancelAfter": 533257958, - "FinishAfter": 533171558, - "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", - "DestinationTag": 23480, - "SourceTag": 11747 -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:----------|:------------------|:--------------------------| -| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてエスクローに留保する[XRP、drop単位][Currency Amount]の額。エスクローに留保されたXRPは`Destination`アドレスに送金されるか(`FinishAfter`時刻の経過後)、または送金元に戻されます(`CancelAfter`時刻の経過後)。 | -| `Destination` | 文字列 | AccountID | エスクローに留保されたXRPを受領するアドレス。 | -| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このEscrowの有効期限([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻の経過後にのみ資金を送金元に返金できます。 | -| `FinishAfter` | 数値 | UInt32 | _(省略可)_ Escrowに留保されたXRPを受取人に対してリリースできる時刻([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻に達するまでは資金を移動できません。 | -| `Condition` | 文字列 | Blob | _(省略可)_[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)を表す16進数値。この条件が満たされている場合にのみ、資金を受取人に送金できます。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Escrowに留保されている支払いの宛先(宛先アドレスでホスティングされている受取人など) を詳しく指定するための任意のタグ。 | - -`CancelAfter`と`FinishAfter`のいずれかを指定する必要があります。両方を指定する場合は、`FinishAfter`の時刻が`CancelAfter`の時刻よりも前でなければなりません。 - -[fix1571 Amendment][]が有効な場合は、`FinishAfter`、`Condition`のいずれかまたは両方を指定する必要があります。[新規: rippled 1.0.0][] - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# EscrowCreate + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source") + +_[Escrow Amendment][]が必要です。_ + +Escrowプロセスが終了または取り消されるまでXRPを隔離します。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowCreate", + "Amount": "10000", + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "CancelAfter": 533257958, + "FinishAfter": 533171558, + "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", + "DestinationTag": 23480, + "SourceTag": 11747 +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-----------------|:----------|:------------------|:--------------------------| +| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてエスクローに留保する[XRP、drop単位][Currency Amount]の額。エスクローに留保されたXRPは`Destination`アドレスに送金されるか(`FinishAfter`時刻の経過後)、または送金元に戻されます(`CancelAfter`時刻の経過後)。 | +| `Destination` | 文字列 | AccountID | エスクローに留保されたXRPを受領するアドレス。 | +| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このEscrowの有効期限([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻の経過後にのみ資金を送金元に返金できます。 | +| `FinishAfter` | 数値 | UInt32 | _(省略可)_ Escrowに留保されたXRPを受取人に対してリリースできる時刻([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻に達するまでは資金を移動できません。 | +| `Condition` | 文字列 | Blob | _(省略可)_[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)を表す16進数値。この条件が満たされている場合にのみ、資金を受取人に送金できます。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Escrowに留保されている支払いの宛先(宛先アドレスでホスティングされている受取人など) を詳しく指定するための任意のタグ。 | + +`CancelAfter`と`FinishAfter`のいずれかを指定する必要があります。両方を指定する場合は、`FinishAfter`の時刻が`CancelAfter`の時刻よりも前でなければなりません。 + +[fix1571 Amendment][]が有効な場合は、`FinishAfter`、`Condition`のいずれかまたは両方を指定する必要があります。[新規: rippled 1.0.0][] + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/escrowfinish.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/escrowfinish.ja.md index 09f2ebdf13..50052098c7 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/escrowfinish.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/escrowfinish.ja.md @@ -1,44 +1,44 @@ -# EscrowFinish - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source") - -_[Escrow Amendment][]が必要です。_ - -保留中の支払いから受取人へXRPを送金します。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "EscrowFinish", - "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "OfferSequence": 7, - "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", - "Fulfillment": "A0028000" -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:----------------|:-----------------|:------------------|:--------------------| -| `Owner` | 文字列 | AccountID | 保留中の支払いに資金を供給した支払元アカウントのアドレス。 | -| `OfferSequence` | 符号なし整数 | UInt32 | 終了する保留中の支払いを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | -| `Condition` | 文字列 | Blob | _(省略可)_ 以前に指定された保留中の支払いの[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)に一致する16進数値。 | -| `Fulfillment` | 文字列 | Blob | _(省略可)_ 保留中の支払いの`Condition`に一致する[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4)の16進数値。 | - -すべてのアカウントがEscrowFinishトランザクションを送信できます。 - -- 保留中の支払いに`FinishAfter`時刻が設定されている場合、この時刻よりも前にはこれを実行できません。具体的には、対応する[EscrowCreateトランザクション][]で指定されている`FinishAfter`時刻が、最後に閉鎖されたレジャーの閉鎖時刻よりも後の場合、EscrowFinishトランザクションは失敗します。 -- 保留中の支払いに`Condition`が指定されている場合に、その条件に対応する`Fulfillment`を指定しないと、この支払いを実行できません。 -- 有効期限切れの保留中の支払いは実行できません。具体的には、対応する[EscrowCreateトランザクション][]で指定されている`CancelAfter`時刻が、最後に閉鎖されたレジャーの閉鎖時刻よりも前の場合、EscrowFinishトランザクションは失敗します。 - -**注記:** EscrowFinishトランザクションにフルフィルメントが含まれている場合、このトランザクションを送信するための最小[トランザクションコスト](transaction-cost.html)が増加します。トランザクションにフルフィルメントが含まれていない場合、トランザクションコストは標準の10 dropです。トランザクションにフルフィルメントが含まれている場合、トランザクションコストは330 [XRP drop][]に加えて、プリイメージサイズの16バイトごとに更に10 dropです。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# EscrowFinish + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source") + +_[Escrow Amendment][]が必要です。_ + +保留中の支払いから受取人へXRPを送金します。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "EscrowFinish", + "Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "OfferSequence": 7, + "Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100", + "Fulfillment": "A0028000" +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:----------------|:-----------------|:------------------|:--------------------| +| `Owner` | 文字列 | AccountID | 保留中の支払いに資金を供給した支払元アカウントのアドレス。 | +| `OfferSequence` | 符号なし整数 | UInt32 | 終了する保留中の支払いを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 | +| `Condition` | 文字列 | Blob | _(省略可)_ 以前に指定された保留中の支払いの[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)に一致する16進数値。 | +| `Fulfillment` | 文字列 | Blob | _(省略可)_ 保留中の支払いの`Condition`に一致する[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4)の16進数値。 | + +すべてのアカウントがEscrowFinishトランザクションを送信できます。 + +- 保留中の支払いに`FinishAfter`時刻が設定されている場合、この時刻よりも前にはこれを実行できません。具体的には、対応する[EscrowCreateトランザクション][]で指定されている`FinishAfter`時刻が、最後に閉鎖されたレジャーの閉鎖時刻よりも後の場合、EscrowFinishトランザクションは失敗します。 +- 保留中の支払いに`Condition`が指定されている場合に、その条件に対応する`Fulfillment`を指定しないと、この支払いを実行できません。 +- 有効期限切れの保留中の支払いは実行できません。具体的には、対応する[EscrowCreateトランザクション][]で指定されている`CancelAfter`時刻が、最後に閉鎖されたレジャーの閉鎖時刻よりも前の場合、EscrowFinishトランザクションは失敗します。 + +**注記:** EscrowFinishトランザクションにフルフィルメントが含まれている場合、このトランザクションを送信するための最小[トランザクションコスト](transaction-cost.html)が増加します。トランザクションにフルフィルメントが含まれていない場合、トランザクションコストは標準の10 dropです。トランザクションにフルフィルメントが含まれている場合、トランザクションコストは330 [XRP drop][]に加えて、プリイメージサイズの16バイトごとに更に10 dropです。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/offercancel.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/offercancel.ja.md index cf572d12d5..f01b7dd17d 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/offercancel.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/offercancel.ja.md @@ -1,36 +1,36 @@ -# OfferCancel - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CancelOffer.cpp "Source") - -OfferCancelトランザクションは、XRP LedgerからOfferオブジェクトを削除します。 - -## {{currentpage.name}}のJSONの例 - -```json -{ - "TransactionType":"OfferCancel", - "Account":"ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee":"12", - "Flags":0, - "LastLedgerSequence":7108629, - "OfferSequence":6, - "Sequence":7 -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------|:----------|:------------------|:-----------------------------| -| OfferSequence | 数値 | UInt32 | 前のOfferCreateトランザクションのシーケンス番号。指定されている場合は、レジャーでそのトランザクションにより作成されたOfferオブジェクトがすべて取り消されます。指定されたオファーが存在しない場合はエラーと見なされません。 | - -*ヒント:* 古いオファーを削除して新しいオファーに置き換えるには、OfferCancelとOfferCreateを使用する代わりに、`OfferSequence`パラメーターを指定した[OfferCreateトランザクション][]を使用できます。 - -OfferCancelメソッドは、一致するシーケンス番号が見つからない場合でも[tesSUCCESS](tes-success.html)を返します。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# OfferCancel + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CancelOffer.cpp "Source") + +OfferCancelトランザクションは、XRP LedgerからOfferオブジェクトを削除します。 + +## {{currentpage.name}}のJSONの例 + +```json +{ + "TransactionType":"OfferCancel", + "Account":"ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee":"12", + "Flags":0, + "LastLedgerSequence":7108629, + "OfferSequence":6, + "Sequence":7 +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:--------------|:----------|:------------------|:-----------------------------| +| OfferSequence | 数値 | UInt32 | 前のOfferCreateトランザクションのシーケンス番号。指定されている場合は、レジャーでそのトランザクションにより作成されたOfferオブジェクトがすべて取り消されます。指定されたオファーが存在しない場合はエラーと見なされません。 | + +*ヒント:* 古いオファーを削除して新しいオファーに置き換えるには、OfferCancelとOfferCreateを使用する代わりに、`OfferSequence`パラメーターを指定した[OfferCreateトランザクション][]を使用できます。 + +OfferCancelメソッドは、一致するシーケンス番号が見つからない場合でも[tesSUCCESS](tes-success.html)を返します。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/offercreate.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/offercreate.ja.md index c609b09154..d148f0ac92 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/offercreate.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/offercreate.ja.md @@ -1,65 +1,65 @@ -# OfferCreate - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CreateOffer.cpp "Source") - -OfferCreateトランザクションは、効果的な[指値注文](http://en.wikipedia.org/wiki/limit_order)です。OfferCreateは通貨の交換を行う意図を定義するもので、配置時に完全に履行されていない場合は[Offerオブジェクト](offer.html)を作成します。オファーは部分的に履行することもできます。 - -オファーがどのように機能するかについての詳細は、[オファー](offers.html)を参照してください。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "TransactionType": "OfferCreate", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 0, - "LastLedgerSequence": 7108682, - "Sequence": 8, - "TakerGets": "6000000", - "TakerPays": { - "currency": "GKO", - "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", - "value": "2" - } -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:---------------|:--------------------|:------------------|:------------------| -| [Expiration][] | 数字 | UInt32 | _(省略可)_ オファーがアクティブでなくなるまでの時間([Rippleエポックからの経過秒数][])。 | -| OfferSequence | 数字 | UInt32 | _(省略可)_ 最初に削除されるオファー([OfferCancel][]と同様に指定されます)。 | -| TakerGets | [通貨額][] | Amount | オファーの作成者によって作成される金額および通貨の種類。 | -| TakerPays | [通貨額][] | Amount | オファーの作成者によって要求される金額および通貨の種類。 | - -[Expiration]: offers.html#オファーの有効期限 - -## OfferCreateフラグ - -OfferCreate型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 - -| フラグ名 | 16進数 | 10進数 | 説明 | -|:--------------------|:-----------|:--------------|:--------------------------| -| tfPassive | 0x00010000 | 65536 | 有効な場合、オファーはオファーが完全に一致するオファーを消費せず、代わりにレジャーのOfferオブジェクトになります。それはまだクロスしたオファーを消費します。 | -| tfImmediateOrCancel | 0x00020000 | 131072 | オファーを[IOC注文](http://en.wikipedia.org/wiki/Immediate_or_cancel)として扱います。有効な場合、オファーはレジャーオブジェクトにはなりません。レジャー内の既存のオファーと一致させようとするだけです。即時にオファーがどのオファーとも一致しない場合、どの通貨とも取引せずに「正常に」実行します。この場合、トランザクションは `tesSUCCESS`の[結果コード](transaction-results.html)を返しますが、レジャー内には、[Offerオブジェクト](offer.html)を作成しません。 | -| tfFillOrKill | 0x00040000 | 262144 | オファーを[FOK注文](http://en.wikipedia.org/wiki/Fill_or_kill)として扱います。レジャー内の既存のオファーのみを一致私用とします。またこれは、全`TakerPays`の数量が取得できる場合に限られます。[fix1578 amendment][]が有効な場合でオファーを配置した時に実行できない場合、トランザクションは`tecKILLED`の[結果コード](transaction-results.html)を返します。そうでない場合は、トランザクションは、どの通貨とも取り引きせずにキャンセルされた場合でも`tesSUCCESS`の結果コードを返します。 | -| tfSell | 0x00080000 | 524288 | 取引所で`TakerPays` Amountよりも多く取得することになっても、`TakerGets` Amountを交換します。 | - -次の無効なフラグの組合せは、`temINVALID_FLAG`エラーを返します。 - -* tfImmediateOrCancelとtfFillOrKill - - - - - - - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# OfferCreate + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/CreateOffer.cpp "Source") + +OfferCreateトランザクションは、効果的な[指値注文](http://en.wikipedia.org/wiki/limit_order)です。OfferCreateは通貨の交換を行う意図を定義するもので、配置時に完全に履行されていない場合は[Offerオブジェクト](offer.html)を作成します。オファーは部分的に履行することもできます。 + +オファーがどのように機能するかについての詳細は、[オファー](offers.html)を参照してください。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "TransactionType": "OfferCreate", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 0, + "LastLedgerSequence": 7108682, + "Sequence": 8, + "TakerGets": "6000000", + "TakerPays": { + "currency": "GKO", + "issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc", + "value": "2" + } +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:---------------|:--------------------|:------------------|:------------------| +| [Expiration][] | 数字 | UInt32 | _(省略可)_ オファーがアクティブでなくなるまでの時間([Rippleエポック以降の経過秒数][])。 | +| OfferSequence | 数字 | UInt32 | _(省略可)_ 最初に削除されるオファー([OfferCancel][]と同様に指定されます)。 | +| TakerGets | [通貨額][] | Amount | オファーの作成者によって作成される金額および通貨の種類。 | +| TakerPays | [通貨額][] | Amount | オファーの作成者によって要求される金額および通貨の種類。 | + +[Expiration]: offers.html#オファーの有効期限 + +## OfferCreateフラグ + +OfferCreate型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 + +| フラグ名 | 16進数 | 10進数 | 説明 | +|:--------------------|:-----------|:--------------|:--------------------------| +| tfPassive | 0x00010000 | 65536 | 有効な場合、オファーはオファーが完全に一致するオファーを消費せず、代わりにレジャーのOfferオブジェクトになります。それはまだクロスしたオファーを消費します。 | +| tfImmediateOrCancel | 0x00020000 | 131072 | オファーを[IOC注文](http://en.wikipedia.org/wiki/Immediate_or_cancel)として扱います。有効な場合、オファーはレジャーオブジェクトにはなりません。レジャー内の既存のオファーと一致させようとするだけです。即時にオファーがどのオファーとも一致しない場合、どの通貨とも取引せずに「正常に」実行します。この場合、トランザクションは `tesSUCCESS`の[結果コード](transaction-results.html)を返しますが、レジャー内には、[Offerオブジェクト](offer.html)を作成しません。 | +| tfFillOrKill | 0x00040000 | 262144 | オファーを[FOK注文](http://en.wikipedia.org/wiki/Fill_or_kill)として扱います。レジャー内の既存のオファーのみを一致私用とします。またこれは、全`TakerPays`の数量が取得できる場合に限られます。[fix1578 amendment][]が有効な場合でオファーを配置した時に実行できない場合、トランザクションは`tecKILLED`の[結果コード](transaction-results.html)を返します。そうでない場合は、トランザクションは、どの通貨とも取り引きせずにキャンセルされた場合でも`tesSUCCESS`の結果コードを返します。 | +| tfSell | 0x00080000 | 524288 | 取引所で`TakerPays` Amountよりも多く取得することになっても、`TakerGets` Amountを交換します。 | + +次の無効なフラグの組合せは、`temINVALID_FLAG`エラーを返します。 + +* tfImmediateOrCancelとtfFillOrKill + + + + + + + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/payment.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/payment.ja.md index 7037d1564b..cbc5c64fd2 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/payment.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/payment.ja.md @@ -1,109 +1,109 @@ -# Payment -[[ソース]
](https://github.com/ripple/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/transactors/Payment.cpp "ソース") - -Paymentトランザクションは、アカウント間での価値の移動を表現するものです(通過するパスによっては、非可分的に発生する追加的な価値交換を伴うことがあります)。 - -Paymentは、[アカウントを作成](#アカウントの作成)する唯一の手段でもあります。 - -## {{currentpage.name}}のJSONの例 - -```json -{ - "TransactionType" : "Payment", - "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Amount" : { - "currency" : "USD", - "value" : "1", - "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" - }, - "Fee": "12", - "Flags": 2147483648, - "Sequence": 2, -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:---------------|:---------------------|:------------------|:-----------------| -| Amount | [通貨額][] | Amount | 送金する通貨額。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。[**tfPartialPayment**フラグ](#paymentのフラグ)が設定されている場合は、この金額を _上限_ とする金額を送金します。 | -| Destination | 文字列 | Account | 支払いを受取るアカウントの一意アドレス。 | -| DestinationTag | 数値 | UInt32 | _(省略可)_ 宛先(支払先となる、ホスティングされている受取人)への支払い理由を明確にするための任意のタグ。 | -| InvoiceID | 文字列 | Hash256 | _(省略可)_ この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | -| Paths | パス配列の配列 | PathSet | (省略可。自動入力可能)このトランザクションに使用される[支払いパス](paths.html)の配列。XRP間のトランザクションでは省略する必要があります。 | -| SendMax | [通貨額][] | Amount | _(省略可)_ [送金手数料](transfer-fees.html)、為替レート、[スリッページ](http://en.wikipedia.org/wiki/Slippage_%28finance%29)を含め、このトランザクションに関して支払い元通貨での負担を許容する上限額。[トランザクションの送信コストとして消却されるXRP](transaction-cost.html)は含めないでください。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。複数通貨間の支払いまたは複数の発行を伴う支払いについては、このフィールドを入力する必要があります。XRP間の支払いでは省略する必要があります。 | -| DeliverMin | [通貨額][] | Amount | _(省略可)_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](partial-payments.html)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 | - -## SendMaxおよびAmountで使用する特殊なイシュアーの値 - -ほとんどの場合、XRP以外の[通貨額][]の`issuer`フィールドは、金融機関の[発行アドレス](issuing-and-operational-addresses.html)を示しています。ただし、支払いを記述するにあたって、支払いの`Amount`フィールドと`SendMax`フィールドにある`issuer`フィールドについては、特殊なルールが存在します。 - -* 2つのアドレス間で、同一の通貨に関して存在する残高は常に1つです。つまり、金額の`issuer`フィールドが実際に表しているのは、イシュアンスを作成したアドレスではなく、イシュアンスを換金する相手方であることがあります。 -* 宛先`Amount`フィールドの`issuer`フィールドが`Destination`アドレスと一致している場合、「宛先が受け入れるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のトラストラインで保持されている宛先によって作成されたイシュアンスに加え、宛先が当該アドレスまでトラストラインを延長しているすべてのアドレスが含まれます。 -* `SendMax`フィールドの`issuer`フィールドが送信元アカウントのアドレスと一致している場合、「送信元が使用できるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のアカウントが送信元アカウントまで延長しているトラストラインで新しいイシュアンスを作成すること、送信元アカウントが保持しているイシュアンスを他のイシュアーから送信することが含まれます。 - -## アカウントの作成 - -Payment型のトランザクションでは、資金供給のないアドレスに対して十分なXRPを送金することで、XRP Ledgerに新規のアカウントを作成できます。資金供給のないアドレスに対するその他のトランザクションは、常に失敗します。 - -詳細は、[アカウント](accounts.html#アカウントの作成)を参照してください。 - -## パス - -`Paths`フィールドが存在する場合、Pathフィールドには、 _パスセット_ (パス配列の配列)が記述されていなければなりません。個々のパスは、さまざまな仲介アカウントやオーダーブックを経由して、送信者から受信者へと価値が1つの方向へ流れることを表します。単一のトランザクションで、複数のパスを使用する可能性もあります。例えば、トランザクションで複数のオーダーブックを使用して、最も有利なレートで通貨を交換する場合です。 - -以下の場合を含め、直接の支払いでは`Paths`フィールドを省略する必要があります。 - -* XRP間の送金。 -* 送信者と受信者を接続するトラストライン上での直接送金。 - -`Paths`フィールドを指定すると、サーバーは、提供されたセットと _デフォルトパス_ の中から、使用するパス(指定されたアカウントに接続する上で、最も直行となる経路)をトランザクション処理時に判別します。このように決定された判別は、コストを最小化しようとするものですが、完璧であることは保証されません。 - -`Paths`フィールドを、空の配列としたり、メンバーがすべて空の配列あるような配列としたりすることはできません。 - -詳細は、[Paths](paths.html)を参照してください。 - -## Paymentのフラグ - -Payment型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 - -| フラグの名前 | 16進値 | 10進値 | 説明 | -|:-----------------|:-----------|:--------------|:-----------------------------| -| tfNoDirectRipple | 0x00010000 | 65536 | デフォルトパスを使用せず、`Paths`フィールドに含まれているパスのみ使用します。これによりトランザクションは強制的に裁定機会を活用することになります。ほとんどのクライアントでは、これは必要ありません。 | -| tfPartialPayment | 0x00020000 | 131072 | `SendMax`を超えていないのに指定された`Amount`を送金できない場合、即座に失敗とするのではなく、受取られる額を減額します。詳細は、[Partial Payments](partial-payments.html)を参照してください。 | -| tfLimitQuality | 0x00040000 | 262144 | すべての変換で、入力と出力との比率が`Amount`と`SendMax`との比率と同一であるか、さらに有利となるパスのみを採用します。詳細は、[クオリティの制限](#クオリティの制限)を参照してください。 | - -## Partial Payments - -Partial Paymentsを利用すると、受取られる金額を減額することによって、支払いを成功させることができます。Partial Paymentsが有用なのは、追加的なコストを発生させずに[支払いを返金](become-an-xrp-ledger-gateway.html#bouncing-payments)する場合です。その一方で、成功したトランザクションの`Amount`フィールドに、送金された金額が常に正しく記述されていることを前提としている環境において、悪用されるおそれもあります。 - -Partial Paymentsとは、**tfPartialPayment**フラグが有効になっている[Paymentトランザクション][]です。Partial Paymentsは、`SendMax`値を超える金額を送金することなく、`DeliverMin`フィールド以上の正の金額(`DeliverMin`が指定されていない場合、任意の正の金額)を送金する場合に成功します。 - -支払いのメタデータにある[`delivered_amount`](transaction-metadata.html#delivered_amount)フィールドは、宛先アカウントが実際に受け取る通貨の金額を示しています。 - -詳細は、[Partial Payments](partial-payments.html)の全文を参照してください。 - - -## クオリティの制限 - -XRP Ledgerでは、ある通貨での入金額と別の通貨での出金額の比率として、通貨取引の「クオリティ」を定義します。例えば、2米ドルと引き換えに1イギリスポンドを受け取る場合、その交換の「クオリティ」は`0.5`です。 - -[*tfLimitQuality*フラグ](#paymentのフラグ)を使用すると、実行する変換のクオリティについて下限を設定できます。このクオリティの制限は、宛先の`Amount`を`SendMax`の金額(通貨にかかわらず金額のみ)で除算することによって定義します。設定した場合、支払い処理エンジンは、クオリティの制限よりもクオリティ(為替レート)が低い(数値が小さい)パスの使用を回避します。 - -tfLimitQualityフラグは、それ自体、トランザクションが成功する状況を減少させるものになります。具体的には、好ましくない変換が支払いの一部で使用されている場合、支払いにおける変換の*平均*的なクオリティが全体としてクオリティの制限と同一か、それ以上であっても、支払いが拒否されます。支払いがこの形で拒否される場合、[トランザクションの結果](transaction-results.html)は`tecPATH_DRY`です。 - -次の例を考えてみます。100人民元(`Amount` = 100人民元)を最大20米ドル(`SendMax` = 20米ドル)と引き換えに相手方に送金しようとする場合、クオリティの制限は`5`です。あるトレーダーが15米ドルと引き換えに95人民元をオファーしているものの(米ドルあたり約`6.3`人民元の比率)、市場の次善のオファーが2ドルに対して5人民元であるとします(米ドルあたり`2.5`人民元の比率)。両方のオファーを受諾して相手方に100人民元を送金する場合、送信元が負担するコストは17米ドルであり、平均のクオリティは約`5.9`です。 - -tfLimitQualityフラグが設定されていない場合、17米ドルというコストは指定された`SendMax`に収まっているため、このトランザクションは成功します。一方、tfLimitQualityフラグが有効になっている場合は失敗します。2番目のオファーを受諾するためのパスのクオリティは`2.5`であり、`5`というクオリティの制限よりも低いためです。 - -tfLimitQualityフラグが最も有用となるのは、[Partial Payments](partial-payments.html)と組み合わせる場合です。*tfPartialPayment*と*tfLimitQuality*の両方がトランザクションに対して設定されている場合、トランザクションでは、クオリティの制限よりも低い変換を使用することなく、送金可能な最大限の宛先`Amount`が送金されます。 - -95人民元/15米ドルのオファーと5人民元/2米ドルのオファーがある上の例で、トランザクションに関してtfPartialPaymentとtfLimitQualityの両方が有効になっている場合、状況は異なります。20米ドルの`SendMax`および100人民元の宛先`Amount`を維持する場合も、クオリティの制限は`5`です。ただし、実行しようとするのはPartial Paymentsであるため、宛先に対する送金の全額を一度で送金できない場合、トランザクションを失敗とするのではなく、送金可能な最大限の金額が送金されます。つまり、トランザクションでは、クオリティが約`6.3`である95人民元/15米ドルのオファーは受け入れますが、5人民元/2米ドルのオファーはクオリティが`2.5`であり、クオリティの制限の`5`より低いため、拒否します。最終的に、トランザクションで送金されるのは満額の100人民元ではなく95人民元になりますが、不利な為替レートで資金を浪費することを避けられます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# Payment +[[ソース]
](https://github.com/ripple/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/transactors/Payment.cpp "ソース") + +Paymentトランザクションは、アカウント間での価値の移動を表現するものです(通過するパスによっては、非可分的に発生する追加的な価値交換を伴うことがあります)。 + +Paymentは、[アカウントを作成](#アカウントの作成)する唯一の手段でもあります。 + +## {{currentpage.name}}のJSONの例 + +```json +{ + "TransactionType" : "Payment", + "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Amount" : { + "currency" : "USD", + "value" : "1", + "issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn" + }, + "Fee": "12", + "Flags": 2147483648, + "Sequence": 2, +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:---------------|:---------------------|:------------------|:-----------------| +| Amount | [通貨額][] | Amount | 送金する通貨額。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。[**tfPartialPayment**フラグ](#paymentのフラグ)が設定されている場合は、この金額を _上限_ とする金額を送金します。 | +| Destination | 文字列 | Account | 支払いを受取るアカウントの一意アドレス。 | +| DestinationTag | 数値 | UInt32 | _(省略可)_ 宛先(支払先となる、ホスティングされている受取人)への支払い理由を明確にするための任意のタグ。 | +| InvoiceID | 文字列 | Hash256 | _(省略可)_ この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 | +| Paths | パス配列の配列 | PathSet | (省略可。自動入力可能)このトランザクションに使用される[支払いパス](paths.html)の配列。XRP間のトランザクションでは省略する必要があります。 | +| SendMax | [通貨額][] | Amount | _(省略可)_ [送金手数料](transfer-fees.html)、為替レート、[スリッページ](http://en.wikipedia.org/wiki/Slippage_%28finance%29)を含め、このトランザクションに関して支払い元通貨での負担を許容する上限額。[トランザクションの送信コストとして消却されるXRP](transaction-cost.html)は含めないでください。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。複数通貨間の支払いまたは複数の発行を伴う支払いについては、このフィールドを入力する必要があります。XRP間の支払いでは省略する必要があります。 | +| DeliverMin | [通貨額][] | Amount | _(省略可)_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](partial-payments.html)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 | + +## SendMaxおよびAmountで使用する特殊なイシュアーの値 + +ほとんどの場合、XRP以外の[通貨額][]の`issuer`フィールドは、金融機関の[発行アドレス](issuing-and-operational-addresses.html)を示しています。ただし、支払いを記述するにあたって、支払いの`Amount`フィールドと`SendMax`フィールドにある`issuer`フィールドについては、特殊なルールが存在します。 + +* 2つのアドレス間で、同一の通貨に関して存在する残高は常に1つです。つまり、金額の`issuer`フィールドが実際に表しているのは、イシュアンスを作成したアドレスではなく、イシュアンスを換金する相手方であることがあります。 +* 宛先`Amount`フィールドの`issuer`フィールドが`Destination`アドレスと一致している場合、「宛先が受け入れるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のトラストラインで保持されている宛先によって作成されたイシュアンスに加え、宛先が当該アドレスまでトラストラインを延長しているすべてのアドレスが含まれます。 +* `SendMax`フィールドの`issuer`フィールドが送信元アカウントのアドレスと一致している場合、「送信元が使用できるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のアカウントが送信元アカウントまで延長しているトラストラインで新しいイシュアンスを作成すること、送信元アカウントが保持しているイシュアンスを他のイシュアーから送信することが含まれます。 + +## アカウントの作成 + +Payment型のトランザクションでは、資金供給のないアドレスに対して十分なXRPを送金することで、XRP Ledgerに新規のアカウントを作成できます。資金供給のないアドレスに対するその他のトランザクションは、常に失敗します。 + +詳細は、[アカウント](accounts.html#アカウントの作成)を参照してください。 + +## パス + +`Paths`フィールドが存在する場合、Pathフィールドには、 _パスセット_ (パス配列の配列)が記述されていなければなりません。個々のパスは、さまざまな仲介アカウントやオーダーブックを経由して、送信者から受信者へと価値が1つの方向へ流れることを表します。単一のトランザクションで、複数のパスを使用する可能性もあります。例えば、トランザクションで複数のオーダーブックを使用して、最も有利なレートで通貨を交換する場合です。 + +以下の場合を含め、直接の支払いでは`Paths`フィールドを省略する必要があります。 + +* XRP間の送金。 +* 送信者と受信者を接続するトラストライン上での直接送金。 + +`Paths`フィールドを指定すると、サーバーは、提供されたセットと _デフォルトパス_ の中から、使用するパス(指定されたアカウントに接続する上で、最も直行となる経路)をトランザクション処理時に判別します。このように決定された判別は、コストを最小化しようとするものですが、完璧であることは保証されません。 + +`Paths`フィールドを、空の配列としたり、メンバーがすべて空の配列あるような配列としたりすることはできません。 + +詳細は、[Paths](paths.html)を参照してください。 + +## Paymentのフラグ + +Payment型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 + +| フラグの名前 | 16進値 | 10進値 | 説明 | +|:-----------------|:-----------|:--------------|:-----------------------------| +| tfNoDirectRipple | 0x00010000 | 65536 | デフォルトパスを使用せず、`Paths`フィールドに含まれているパスのみ使用します。これによりトランザクションは強制的に裁定機会を活用することになります。ほとんどのクライアントでは、これは必要ありません。 | +| tfPartialPayment | 0x00020000 | 131072 | `SendMax`を超えていないのに指定された`Amount`を送金できない場合、即座に失敗とするのではなく、受取られる額を減額します。詳細は、[Partial Payments](partial-payments.html)を参照してください。 | +| tfLimitQuality | 0x00040000 | 262144 | すべての変換で、入力と出力との比率が`Amount`と`SendMax`との比率と同一であるか、さらに有利となるパスのみを採用します。詳細は、[クオリティの制限](#クオリティの制限)を参照してください。 | + +## Partial Payments + +Partial Paymentsを利用すると、受取られる金額を減額することによって、支払いを成功させることができます。Partial Paymentsが有用なのは、追加的なコストを発生させずに[支払いを返金](become-an-xrp-ledger-gateway.html#bouncing-payments)する場合です。その一方で、成功したトランザクションの`Amount`フィールドに、送金された金額が常に正しく記述されていることを前提としている環境において、悪用されるおそれもあります。 + +Partial Paymentsとは、**tfPartialPayment**フラグが有効になっている[Paymentトランザクション][]です。Partial Paymentsは、`SendMax`値を超える金額を送金することなく、`DeliverMin`フィールド以上の正の金額(`DeliverMin`が指定されていない場合、任意の正の金額)を送金する場合に成功します。 + +支払いのメタデータにある[`delivered_amount`](transaction-metadata.html#delivered_amount)フィールドは、宛先アカウントが実際に受け取る通貨の金額を示しています。 + +詳細は、[Partial Payments](partial-payments.html)の全文を参照してください。 + + +## クオリティの制限 + +XRP Ledgerでは、ある通貨での入金額と別の通貨での出金額の比率として、通貨取引の「クオリティ」を定義します。例えば、2米ドルと引き換えに1イギリスポンドを受け取る場合、その交換の「クオリティ」は`0.5`です。 + +[*tfLimitQuality*フラグ](#paymentのフラグ)を使用すると、実行する変換のクオリティについて下限を設定できます。このクオリティの制限は、宛先の`Amount`を`SendMax`の金額(通貨にかかわらず金額のみ)で除算することによって定義します。設定した場合、支払い処理エンジンは、クオリティの制限よりもクオリティ(為替レート)が低い(数値が小さい)パスの使用を回避します。 + +tfLimitQualityフラグは、それ自体、トランザクションが成功する状況を減少させるものになります。具体的には、好ましくない変換が支払いの一部で使用されている場合、支払いにおける変換の*平均*的なクオリティが全体としてクオリティの制限と同一か、それ以上であっても、支払いが拒否されます。支払いがこの形で拒否される場合、[トランザクションの結果](transaction-results.html)は`tecPATH_DRY`です。 + +次の例を考えてみます。100人民元(`Amount` = 100人民元)を最大20米ドル(`SendMax` = 20米ドル)と引き換えに相手方に送金しようとする場合、クオリティの制限は`5`です。あるトレーダーが15米ドルと引き換えに95人民元をオファーしているものの(米ドルあたり約`6.3`人民元の比率)、市場の次善のオファーが2ドルに対して5人民元であるとします(米ドルあたり`2.5`人民元の比率)。両方のオファーを受諾して相手方に100人民元を送金する場合、送信元が負担するコストは17米ドルであり、平均のクオリティは約`5.9`です。 + +tfLimitQualityフラグが設定されていない場合、17米ドルというコストは指定された`SendMax`に収まっているため、このトランザクションは成功します。一方、tfLimitQualityフラグが有効になっている場合は失敗します。2番目のオファーを受諾するためのパスのクオリティは`2.5`であり、`5`というクオリティの制限よりも低いためです。 + +tfLimitQualityフラグが最も有用となるのは、[Partial Payments](partial-payments.html)と組み合わせる場合です。*tfPartialPayment*と*tfLimitQuality*の両方がトランザクションに対して設定されている場合、トランザクションでは、クオリティの制限よりも低い変換を使用することなく、送金可能な最大限の宛先`Amount`が送金されます。 + +95人民元/15米ドルのオファーと5人民元/2米ドルのオファーがある上の例で、トランザクションに関してtfPartialPaymentとtfLimitQualityの両方が有効になっている場合、状況は異なります。20米ドルの`SendMax`および100人民元の宛先`Amount`を維持する場合も、クオリティの制限は`5`です。ただし、実行しようとするのはPartial Paymentsであるため、宛先に対する送金の全額を一度で送金できない場合、トランザクションを失敗とするのではなく、送金可能な最大限の金額が送金されます。つまり、トランザクションでは、クオリティが約`6.3`である95人民元/15米ドルのオファーは受け入れますが、5人民元/2米ドルのオファーはクオリティが`2.5`であり、クオリティの制限の`5`より低いため、拒否します。最終的に、トランザクションで送金されるのは満額の100人民元ではなく95人民元になりますが、不利な為替レートで資金を浪費することを避けられます。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelclaim.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelclaim.ja.md index becd2d73ff..29d10feada 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelclaim.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelclaim.ja.md @@ -1,63 +1,63 @@ -# PaymentChannelClaim -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source") - -_[PayChan Amendment][]が必要です。_ - -Payment Channelに対しXRPを請求するか、Payment Channelの有効期限を調整するか、またはこの両方の操作を行います。このトランザクションは、指定されたChannelでのトランザクション送信者の役割に応じてさまざまに利用できます。 - -Channelの**支払元アドレス**は以下の操作を実行できます。 - -- 署名済みクレームの有 _無_ にかかわらずChannelから宛先へXRPを送金します。 -- Channelの`SettleDelay`が経過した時点で即時にChannelが有効期限切れになるように設定します。 -- 保留中の`Expiration`時刻をクリアします。 -- クレームを最初に処理するかどうかに関わらず、Channelを即時に閉鎖します。ChannelにXRPが残っている場合、支払元アドレスはそのChannelを即時に閉鎖できません。 - -Channelの**宛先アドレス**は以下の操作を実行できます。 - -- 署名済みクレームを使用してChannelからXRPを受領します。 -- クレームの処理が完了したらChannelを即時に閉鎖し、未請求のXRPをすべてChannelの支払元に返金します。 - -このトランザクションを送信する**すべてのアドレス**は以下の操作を実行できます。 - -- Channelの`Expiration`または`CancelAfter`の時刻が前のレジャーの閉鎖時刻よりも古い場合にはChannelが閉鎖します。有効な形式のPaymentChannelClaimトランザクションでは、トランザクションの内容に関わらず常にこの効果があります。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", - "Balance": "1000000", - "Amount": "1000000", - "Signature": "30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B", - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A" -} -``` - - - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:------------|:----------|:------------------|:-------------------------------| -| `Channel` | 文字列 | Hash256 | Channelの一意のID(64文字の16進数文字列)。 | -| `Balance` | 文字列 | Amount | _(省略可)_ このクレームの処理後にこのChannelから送金される[XRP、drop単位][Currency Amount]。XRPを送金する場合に必須です。Channelからこれまでに送金された総額よりも大きく、署名済みクレームの`Amount`よりも少ない額である必要があります。Channelを閉鎖する場合を除き、指定する必要があります。 | -| `Amount` | 文字列 | Amount | _(省略可)_`Signature`により承認された[XRP、drop単位][Currency Amount]の額。これは、署名済みメッセージの額に一致している必要があります。これは、Channelが利用できるXRPの累計額であり、以前に精算されたXRPを含みます。 | -| `Signature` | 文字列 | Blob | _(省略可)_ クレームの署名です(16進数)。署名付きメッセージには、Channel IDとクレームの額が含まれています。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。 | -| `PublicKey` | 文字列 | Blob | _(省略可)_ 署名に使用する公開鍵(16進数)。公開鍵はレジャーに保管されているこのChannelの`PublicKey`と一致している必要があります。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。また`Signature`フィールドは省略されます。(`rippled`がトランザクションをレジャーに適用する前に署名の有効性をチェックできるように、トランザクションにPubKeyが指定されています。) | - - -## PaymentChannelClaimフラグ - -PaymentChannelClaimタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 - -| フラグ名 | 16進数値 | 10進数値 | 説明 | -|:----------|:-----------|:--------------|:------------------------------------| -| `tfRenew` | 0x00010000 | 65536 | Channelの`Expiration`時刻をクリアします。(`Expiration`は、Channelの変更できない`CancelAfter`時刻とは異なります。)このフラグは、Payment Channelの支払元アドレスだけが使用できます。 | -| `tfClose` | 0x00020000 | 131072 | Channelの閉鎖を要求します。このフラグは、Channelの支払元アドレスと宛先アドレスだけが使用できます。このフラグにより、現在のクレームの処理後にChannelにこれ以上のXRPが割り当てられない場合、または宛先アドレスが使用している場合に、Channelが即時に閉鎖されます。XRPがまだChannelに保有されているときに、支払元アドレスがこのフラグを使用した場合、`SettleDelay`秒の経過後にChannelが閉鎖するようにスケジュールされます。(具体的には、Channelの`Expiration`は、前のレジャーの閉鎖時刻にChannelの`SettleDelay`の時間を加算した時刻に設定されます。ただし、Channelにこの時刻よりも早い`Expiration` 時刻がすでに設定されている場合を除きます。)XRPがまだChannelに保有されているときに、宛先アドレスがこのフラグを使用した場合、クレーム処理後に残っているXRPはすべて支払元アドレスに返金されます。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# PaymentChannelClaim +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source") + +_[PayChan Amendment][]が必要です。_ + +Payment Channelに対しXRPを請求するか、Payment Channelの有効期限を調整するか、またはこの両方の操作を行います。このトランザクションは、指定されたChannelでのトランザクション送信者の役割に応じてさまざまに利用できます。 + +Channelの**支払元アドレス**は以下の操作を実行できます。 + +- 署名済みクレームの有 _無_ にかかわらずChannelから宛先へXRPを送金します。 +- Channelの`SettleDelay`が経過した時点で即時にChannelが有効期限切れになるように設定します。 +- 保留中の`Expiration`時刻をクリアします。 +- クレームを最初に処理するかどうかに関わらず、Channelを即時に閉鎖します。ChannelにXRPが残っている場合、支払元アドレスはそのChannelを即時に閉鎖できません。 + +Channelの**宛先アドレス**は以下の操作を実行できます。 + +- 署名済みクレームを使用してChannelからXRPを受領します。 +- クレームの処理が完了したらChannelを即時に閉鎖し、未請求のXRPをすべてChannelの支払元に返金します。 + +このトランザクションを送信する**すべてのアドレス**は以下の操作を実行できます。 + +- Channelの`Expiration`または`CancelAfter`の時刻が前のレジャーの閉鎖時刻よりも古い場合にはChannelが閉鎖します。有効な形式のPaymentChannelClaimトランザクションでは、トランザクションの内容に関わらず常にこの効果があります。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", + "Balance": "1000000", + "Amount": "1000000", + "Signature": "30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B", + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A" +} +``` + + + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:------------|:----------|:------------------|:-------------------------------| +| `Channel` | 文字列 | Hash256 | Channelの一意のID(64文字の16進数文字列)。 | +| `Balance` | 文字列 | Amount | _(省略可)_ このクレームの処理後にこのChannelから送金される[XRP、drop単位][Currency Amount]。XRPを送金する場合に必須です。Channelからこれまでに送金された総額よりも大きく、署名済みクレームの`Amount`よりも少ない額である必要があります。Channelを閉鎖する場合を除き、指定する必要があります。 | +| `Amount` | 文字列 | Amount | _(省略可)_`Signature`により承認された[XRP、drop単位][Currency Amount]の額。これは、署名済みメッセージの額に一致している必要があります。これは、Channelが利用できるXRPの累計額であり、以前に精算されたXRPを含みます。 | +| `Signature` | 文字列 | Blob | _(省略可)_ クレームの署名です(16進数)。署名付きメッセージには、Channel IDとクレームの額が含まれています。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。 | +| `PublicKey` | 文字列 | Blob | _(省略可)_ 署名に使用する公開鍵(16進数)。公開鍵はレジャーに保管されているこのChannelの`PublicKey`と一致している必要があります。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。また`Signature`フィールドは省略されます。(`rippled`がトランザクションをレジャーに適用する前に署名の有効性をチェックできるように、トランザクションにPubKeyが指定されています。) | + + +## PaymentChannelClaimフラグ + +PaymentChannelClaimタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 + +| フラグ名 | 16進数値 | 10進数値 | 説明 | +|:----------|:-----------|:--------------|:------------------------------------| +| `tfRenew` | 0x00010000 | 65536 | Channelの`Expiration`時刻をクリアします。(`Expiration`は、Channelの変更できない`CancelAfter`時刻とは異なります。)このフラグは、Payment Channelの支払元アドレスだけが使用できます。 | +| `tfClose` | 0x00020000 | 131072 | Channelの閉鎖を要求します。このフラグは、Channelの支払元アドレスと宛先アドレスだけが使用できます。このフラグにより、現在のクレームの処理後にChannelにこれ以上のXRPが割り当てられない場合、または宛先アドレスが使用している場合に、Channelが即時に閉鎖されます。XRPがまだChannelに保有されているときに、支払元アドレスがこのフラグを使用した場合、`SettleDelay`秒の経過後にChannelが閉鎖するようにスケジュールされます。(具体的には、Channelの`Expiration`は、前のレジャーの閉鎖時刻にChannelの`SettleDelay`の時間を加算した時刻に設定されます。ただし、Channelにこの時刻よりも早い`Expiration` 時刻がすでに設定されている場合を除きます。)XRPがまだChannelに保有されているときに、宛先アドレスがこのフラグを使用した場合、クレーム処理後に残っているXRPはすべて支払元アドレスに返金されます。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelcreate.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelcreate.ja.md index 9bc170929e..9cc8ace2fe 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelcreate.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelcreate.ja.md @@ -1,40 +1,40 @@ -# PaymentChannelCreate -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source") - -_[PayChan Amendment][]が必要です。_ - -一方向のChannelを作成し、XRPを供給します。このトランザクションを送信するアドレスは、Payment Channelの「支払元アドレス」になります。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelCreate", - "Amount": "10000", - "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SettleDelay": 86400, - "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", - "CancelAfter": 533171558, - "DestinationTag": 23480, - "SourceTag": 11747 -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-----------------|:----------|:------------------|:--------------------------| -| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてこのChannelに留保する[XRP、drop単位][Currency Amount]の額。このChannelのオープン時には、XRPを`Destination`アドレスにのみ移動できます。Channelが閉鎖すると、未請求のXRPは支払元アドレスの残高に戻されます。 | -| `Destination` | 文字列 | AccountID | このChannelに対するXRPクレームを受け取るアドレス。Channelの「宛先アドレス」とも呼ばれます。送金元(`Account`)と同一にはできません。 | -| `SettleDelay` | 数値 | UInt32 | Channelに未請求のXRPがある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する時間。 | -| `PublicKey` | 文字列 | Blob | 支払元がこのChannelに対するクレームに署名するときに使用する公開鍵またはキーペア(16進数)。secp256k1公開鍵またはEd25519公開鍵を指定できます。 | -| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このChannelの有効期限([Rippleエポック以降の経過秒数][])。この時刻の経過後にトランザクションがこのChannelを変更しようとすると、このChannelは閉鎖し、Channelは変更されません。この値は変更できません。Channelはこの時刻よりも早い時点で閉鎖できますが、この時刻の経過後にもオープンしたままにすることはできません。 | -| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# PaymentChannelCreate +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source") + +_[PayChan Amendment][]が必要です。_ + +一方向のChannelを作成し、XRPを供給します。このトランザクションを送信するアドレスは、Payment Channelの「支払元アドレス」になります。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelCreate", + "Amount": "10000", + "Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SettleDelay": 86400, + "PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A", + "CancelAfter": 533171558, + "DestinationTag": 23480, + "SourceTag": 11747 +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-----------------|:----------|:------------------|:--------------------------| +| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてこのChannelに留保する[XRP、drop単位][Currency Amount]の額。このChannelのオープン時には、XRPを`Destination`アドレスにのみ移動できます。Channelが閉鎖すると、未請求のXRPは支払元アドレスの残高に戻されます。 | +| `Destination` | 文字列 | AccountID | このChannelに対するXRPクレームを受け取るアドレス。Channelの「宛先アドレス」とも呼ばれます。送金元(`Account`)と同一にはできません。 | +| `SettleDelay` | 数値 | UInt32 | Channelに未請求のXRPがある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する時間。 | +| `PublicKey` | 文字列 | Blob | 支払元がこのChannelに対するクレームに署名するときに使用する公開鍵またはキーペア(16進数)。secp256k1公開鍵またはEd25519公開鍵を指定できます。 | +| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このChannelの有効期限([Rippleエポック以降の経過秒数][])。この時刻の経過後にトランザクションがこのChannelを変更しようとすると、このChannelは閉鎖し、Channelは変更されません。この値は変更できません。Channelはこの時刻よりも早い時点で閉鎖できますが、この時刻の経過後にもオープンしたままにすることはできません。 | +| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelfund.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelfund.ja.md index d12e151f05..ef053644ca 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelfund.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/paymentchannelfund.ja.md @@ -1,32 +1,32 @@ -# PaymentChannelFund -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source") - -_[PayChan Amendment][]が必要です。_ - -オープンPayment ChannelにXRPを追加するか、Channelの有効期限を更新するか、またはこの両方を行います。このトランザクションは、Channelの支払元アドレスだけが使用できます。(他のアドレスからのトランザクションはエラー`tecNO_PERMISSION`で失敗します。) - -PaymentChannelFundの例: - -```json -{ - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "TransactionType": "PaymentChannelFund", - "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", - "Amount": "200000", - "Expiration": 543171558 -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------|:----------|:------------------|:------------------------------| -| `Channel` | 文字列 | Hash256 | 資金供給するChannelの一意のID(64文字の16進数文字列)。 | -| `Amount` | 文字列 | Amount | Channelに追加する[XRP、drop単位][Currency Amount]の額。Channelの有効期限を設定し、XRPを追加しない場合は、これを`"0"`に設定します。 | -| `Expiration` | 数値 | UInt32 | _(省略可)_ Channelに新たに設定する`Expiration`の時刻(Rippleエポック以降の経過秒数)。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。(`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](paychannel.html)を参照してください。 | - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# PaymentChannelFund +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source") + +_[PayChan Amendment][]が必要です。_ + +オープンPayment ChannelにXRPを追加するか、Channelの有効期限を更新するか、またはこの両方を行います。このトランザクションは、Channelの支払元アドレスだけが使用できます。(他のアドレスからのトランザクションはエラー`tecNO_PERMISSION`で失敗します。) + +PaymentChannelFundの例: + +```json +{ + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "TransactionType": "PaymentChannelFund", + "Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198", + "Amount": "200000", + "Expiration": 543171558 +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-------------|:---------|:------------------|:------------------------------| +| `Channel` | 文字列 | Hash256 | 資金供給するChannelの一意のID(64文字の16進数文字列)。 | +| `Amount` | 文字列 | Amount | Channelに追加する[XRP、drop単位][]の額。Channelの有効期限を設定し、XRPを追加しない場合は、これを`"0"`に設定します。 | +| `Expiration` | 数値 | UInt32 | _(省略可)_ Channelに新たに設定する`Expiration`の時刻(Rippleエポック以降の経過秒数)。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。(`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](paychannel.html)を参照してください。 | + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/setregularkey.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/setregularkey.ja.md index 9fbefc7a14..f129f28d4c 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/setregularkey.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/setregularkey.ja.md @@ -1,39 +1,39 @@ -# SetRegularKey - -[[ソース]
](https://github.com/ripple/rippled/blob/4239880acb5e559446d2067f00dabb31cf102a23/src/ripple/app/transactors/SetRegularKey.cpp "Source") - -`SetRegularKey`トランザクションは、アカウントに関連付けられているレギュラーキーペアの割り当て、変更、削除を行います。 - -アカウントを保護するには、レギュラーキーペアをアカウントに割り当て、トランザクションに署名するときに、可能な場合には常にマスターキーペアの代わりにレギュラーキーペアを使用します。レギュラーキーペアが漏えいしても、マスターキーペアが漏えいしていない場合は、`SetRegularKey`トランザクションを使用してアカウントの制御を取り戻すことができます。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "Flags": 0, - "TransactionType": "SetRegularKey", - "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee": "12", - "RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD" -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------|:----------|:------------------|:------------------------------| -| `RegularKey` | 文字列 | AccountID | _(省略可)_ アカウントに割り当てるレギュラーキーペアを示すbase-58エンコード[アドレス][]。省略されている場合は、アカウントから既存のレギュラーキーペアが削除されます。 | - -## 関連項目 - -レギュラーキーペアとマスターキーペアの詳細については、[暗号鍵](cryptographic-keys.html)を参照してください。 - -アカウントへのレギュラーキーペアの割り当てについてのチュートリアルは、[レギュラーキーペアの操作](assign-a-regular-key-pair.html)を参照してください。 - -セキュリティを強化するために[マルチ署名](multi-signing.html)を使用できますが、マルチ署名を使用する場合には[トランザクションコスト][]および[準備金](reserves.html)に追加のXRPが必要となります。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# SetRegularKey + +[[ソース]
](https://github.com/ripple/rippled/blob/4239880acb5e559446d2067f00dabb31cf102a23/src/ripple/app/transactors/SetRegularKey.cpp "Source") + +`SetRegularKey`トランザクションは、アカウントに関連付けられているレギュラーキーペアの割り当て、変更、削除を行います。 + +アカウントを保護するには、レギュラーキーペアをアカウントに割り当て、トランザクションに署名するときに、可能な場合には常にマスターキーペアの代わりにレギュラーキーペアを使用します。レギュラーキーペアが漏えいしても、マスターキーペアが漏えいしていない場合は、`SetRegularKey`トランザクションを使用してアカウントの制御を取り戻すことができます。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "Flags": 0, + "TransactionType": "SetRegularKey", + "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee": "12", + "RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD" +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-------------|:----------|:------------------|:------------------------------| +| `RegularKey` | 文字列 | AccountID | _(省略可)_ アカウントに割り当てるレギュラーキーペアを示すbase-58エンコード[アドレス][]。省略されている場合は、アカウントから既存のレギュラーキーペアが削除されます。 | + +## 関連項目 + +レギュラーキーペアとマスターキーペアの詳細については、[暗号鍵](cryptographic-keys.html)を参照してください。 + +アカウントへのレギュラーキーペアの割り当てについてのチュートリアルは、[レギュラーキーペアの操作](assign-a-regular-key-pair.html)を参照してください。 + +セキュリティを強化するために[マルチ署名](multi-signing.html)を使用できますが、マルチ署名を使用する場合には[トランザクションコスト][]および[準備金](reserves.html)に追加のXRPが必要となります。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/signerlistset.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/signerlistset.ja.md index 662fabbae3..3b7c9e80c1 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/signerlistset.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/signerlistset.ja.md @@ -1,59 +1,59 @@ -# SignerListSet -[[ソース]
](https://github.com/ripple/rippled/blob/ef511282709a6a0721b504c6b7703f9de3eecf38/src/ripple/app/tx/impl/SetSignerList.cpp "Source") - -SignerListSetトランザクションは、トランザクションの[マルチ署名](multi-signing.html)に使用できる署名者のリストを作成、置換、削除します。このトランザクションタイプは[MultiSign Amendment][]により導入されました。[新規: rippled 0.31.0][] - -## {{currentpage.name}}のJSONの例 - -```json -{ - "Flags":0, - "TransactionType":"SignerListSet", - "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", - "Fee":"12", - "SignerQuorum":3, - "SignerEntries":[ - { - "SignerEntry":{ - "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", - "SignerWeight":2 - } - }, - { - "SignerEntry":{ - "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", - "SignerWeight":1 - } - }, - { - "SignerEntry":{ - "Account":"raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", - "SignerWeight":1 - } - } - ] -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:--------------|:----------|:------------------|:-----------------------------| -| SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチ署名は、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、`0`の値を使用します。 | -| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](signerlist.html#signerentryオブジェクト)の配列。SignerListには1~8人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 | - -アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、`SignerQuorum`を`0`に設定し、_かつ_`SignerEntries`フィールドを省略します。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。 - -SignerQuorumを満たせない方法でSignerListを作成することはできません。SignerQuorumは0よりも大きく、リストの`SignerWeight`値の合計以下でなければなりません。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。 - -トランザクションの署名にマスターキー、レギュラーキー、または現行のSignerListを使用できる場合は、これらを使用してSignerListを作成、更新、削除できます。 - -トランザクションに署名する最後の方法をアカウントから削除することはできません。アカウントのマスターキーが無効で([`lsfDisableMaster`フラグ](accountroot.html#accountrootフラグ)が有効な場合)、アカウントで[レギュラーキー](cryptographic-keys.html)が設定されていない場合、アカウントからSignerListを削除できません。その代わりにトランザクションは[`tecNO_ALTERNATIVE_KEY`](tec-codes.html)エラーで失敗します。 - -[MultiSignReserve Amendment][] :not_enabled:が有効な場合、SignerListを作成または置換すると、SignerListオブジェクトでlsfOneOwnerCountフラグが有効になります。このフラグが有効な場合、MultiSignReserve Amendmentに定められているとおり、XRP LedgerはSignerListの[`OwnerCount`](accountroot.html#accountroot-fields)と[所有者準備金](reserves.html#所有者準備金)を減らせます。詳細は、[SignerListのフラグ](signerlist.html#signerlistフラグ)を参照してください。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# SignerListSet +[[ソース]
](https://github.com/ripple/rippled/blob/ef511282709a6a0721b504c6b7703f9de3eecf38/src/ripple/app/tx/impl/SetSignerList.cpp "Source") + +SignerListSetトランザクションは、トランザクションの[マルチ署名](multi-signing.html)に使用できる署名者のリストを作成、置換、削除します。このトランザクションタイプは[MultiSign Amendment][]により導入されました。[新規: rippled 0.31.0][] + +## {{currentpage.name}}のJSONの例 + +```json +{ + "Flags":0, + "TransactionType":"SignerListSet", + "Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", + "Fee":"12", + "SignerQuorum":3, + "SignerEntries":[ + { + "SignerEntry":{ + "Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW", + "SignerWeight":2 + } + }, + { + "SignerEntry":{ + "Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v", + "SignerWeight":1 + } + }, + { + "SignerEntry":{ + "Account":"raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n", + "SignerWeight":1 + } + } + ] +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:--------------|:----------|:------------------|:-----------------------------| +| SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチ署名は、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、`0`の値を使用します。 | +| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](signerlist.html#signerentryオブジェクト)の配列。SignerListには1~8人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 | + +アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、`SignerQuorum`を`0`に設定し、_かつ_`SignerEntries`フィールドを省略します。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。 + +SignerQuorumを満たせない方法でSignerListを作成することはできません。SignerQuorumは0よりも大きく、リストの`SignerWeight`値の合計以下でなければなりません。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。 + +トランザクションの署名にマスターキー、レギュラーキー、または現行のSignerListを使用できる場合は、これらを使用してSignerListを作成、更新、削除できます。 + +トランザクションに署名する最後の方法をアカウントから削除することはできません。アカウントのマスターキーが無効で([`lsfDisableMaster`フラグ](accountroot.html#accountrootフラグ)が有効な場合)、アカウントで[レギュラーキー](cryptographic-keys.html)が設定されていない場合、アカウントからSignerListを削除できません。その代わりにトランザクションは[`tecNO_ALTERNATIVE_KEY`](tec-codes.html)エラーで失敗します。 + +[MultiSignReserve Amendment][] :not_enabled:が有効な場合、SignerListを作成または置換すると、SignerListオブジェクトでlsfOneOwnerCountフラグが有効になります。このフラグが有効な場合、MultiSignReserve Amendmentに定められているとおり、XRP LedgerはSignerListの[`OwnerCount`](accountroot.html#accountroot-fields)と[所有者準備金](reserves.html#所有者準備金)を減らせます。詳細は、[SignerListのフラグ](signerlist.html#signerlistフラグ)を参照してください。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/references/rippled-api/transaction-formats/transaction-types/transaction-types.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/transaction-types.ja.md index eebc8e0c8a..4bc4a620aa 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/transaction-types.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/transaction-types.ja.md @@ -1,9 +1,9 @@ -# トランザクションのタイプ - -トランザクションのタイプ(`TransactionType`フィールド)は、トランザクションに関する最も基本的な情報です。トランザクションで、どういったタイプの操作を実行することが想定されているのかを示します。 - -すべてのトランザクションに、特定の共通フィールドが含まれています。 - -* [共通フィールド](transaction-common-fields.html) - +# トランザクションのタイプ + +トランザクションのタイプ(`TransactionType`フィールド)は、トランザクションに関する最も基本的な情報です。トランザクションで、どういったタイプの操作を実行することが想定されているのかを示します。 + +すべてのトランザクションに、特定の共通フィールドが含まれています。 + +* [共通フィールド](transaction-common-fields.html) + トランザクションのタイプごとに、実行される操作のタイプに関連した追加のフィールドが含まれています。 \ No newline at end of file diff --git a/content/references/rippled-api/transaction-formats/transaction-types/trustset.ja.md b/content/references/rippled-api/transaction-formats/transaction-types/trustset.ja.md index db9fdb1b8c..4c8bccf77e 100644 --- a/content/references/rippled-api/transaction-formats/transaction-types/trustset.ja.md +++ b/content/references/rippled-api/transaction-formats/transaction-types/trustset.ja.md @@ -1,55 +1,55 @@ -# TrustSet - -[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/SetTrust.cpp "Source") - -2つのアカウントをリンクするトラストラインを作成または変更します。 - -## {{currentpage.name}} JSONの例 - -```json -{ - "TransactionType": "TrustSet", - "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", - "Fee": "12", - "Flags": 262144, - "LastLedgerSequence": 8007750, - "LimitAmount": { - "currency": "USD", - "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", - "value": "100" - }, - "Sequence": 12 -} -``` - -{% include '_snippets/tx-fields-intro.md' %} - - -| フィールド | JSONの型 | [内部の型][] | 説明 | -|:-------------------------|:----------|:------------------|:------------------| -| `LimitAmount` | オブジェクト | Amount | 作成または変更するトラストラインを定義する[通貨額][]フォーマットのオブジェクト。 | -| `LimitAmount`.`currency` | 文字列 | (Amount.currency) | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](http://www.xe.com/iso4217.php)または[通貨フォーマット](currency-formats.html)に基づく160ビットの16進数値です。「XRP」は無効です。 | -| `LimitAmount`.`value` | 文字列 | (Amount.value) | このトラストラインに設定される限度を表す引用符で囲んだ10進数値。 | -| `LimitAmount`.`issuer` | 文字列 | (Amount.issuer) | 信頼したいアカウントのアドレス。 | -| `QualityIn` | 数値 | UInt32 | _(省略可)_ このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | -| `QualityOut` | 数値 | UInt32 | _(省略可)_ このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | - - -## TrustSetのフラグ - -TrustSetタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 - -| フラグ名 | 16進数値 | 10進数値 | 説明 | -|:----------------|:-----------|:--------------|:------------------------------| -| tfSetfAuth | 0x00010000 | 65536 | 他方の当事者がこのアカウントからのイシュアンスを保有することを承認します。([*asfRequireAuth* AccountSet フラグ](accountset.html#accountsetのフラグ)を使用しない場合は効果がありません。)設定を解除できません。 | -| tfSetNoRipple | 0x00020000 | 131072 | 同一通貨の2つのトラストラインでこのフラグが設定されている場合、これらのトラストライン間でのripplingがブロックされます。(詳細は、[NoRipple](rippling.html)を参照してください。)[fix1578 Amendment][]が有効な場合、トランザクションにこのフラグが使用されていてもNoRippleを有効にできないときは、そのトランザクションは結果コード`tecNO_PERMISSION`で失敗します。このAmendmentが有効ではない場合は、トラストラインでNoRippleを有効にできない場合でもトランザクションの結果が`tesSUCCESS`になることがあります(トランザクションで可能な他の変更を行います)。 | -| tfClearNoRipple | 0x00040000 | 262144 | No-Ripplingフラグをクリアします。(詳細は、[NoRipple](rippling.html)を参照してください。) | -| tfSetFreeze | 0x00100000 | 1048576 | トラストラインを[凍結](freezes.html)します。 | -| tfClearFreeze | 0x00200000 | 2097152 | トラストラインを[凍結解除](freezes.html)します。 | - -トラストラインのAuthフラグは、トラストラインがその所有者のXRP必要準備金に反映されるかどうかを左右しません。ただしAuthフラグを有効にすると、トラストラインがデフォルト状態になることがありません。承認されたトラストラインは削除できません。イシュアーは、トラストラインの限度と残高が0であっても、`tfSetfAuth`フラグだけを使用してトラストラインを事前承認できます。 - - -{% include '_snippets/rippled-api-links.md' %} -{% include '_snippets/tx-type-links.md' %} -{% include '_snippets/rippled_versions.md' %} +# TrustSet + +[[ソース]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/SetTrust.cpp "Source") + +2つのアカウントをリンクするトラストラインを作成または変更します。 + +## {{currentpage.name}} JSONの例 + +```json +{ + "TransactionType": "TrustSet", + "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", + "Fee": "12", + "Flags": 262144, + "LastLedgerSequence": 8007750, + "LimitAmount": { + "currency": "USD", + "issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc", + "value": "100" + }, + "Sequence": 12 +} +``` + +{% include '_snippets/tx-fields-intro.md' %} + + +| フィールド | JSONの型 | [内部の型][] | 説明 | +|:-------------------------|:----------|:------------------|:------------------| +| `LimitAmount` | オブジェクト | Amount | 作成または変更するトラストラインを定義する[通貨額][]フォーマットのオブジェクト。 | +| `LimitAmount`.`currency` | 文字列 | (Amount.currency) | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](http://www.xe.com/iso4217.php)または[通貨フォーマット](currency-formats.html)に基づく160ビットの16進数値です。「XRP」は無効です。 | +| `LimitAmount`.`value` | 文字列 | (Amount.value) | このトラストラインに設定される限度を表す引用符で囲んだ10進数値。 | +| `LimitAmount`.`issuer` | 文字列 | (Amount.issuer) | 信頼したいアカウントのアドレス。 | +| `QualityIn` | 数値 | UInt32 | _(省略可)_ このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | +| `QualityOut` | 数値 | UInt32 | _(省略可)_ このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 | + + +## TrustSetのフラグ + +TrustSetタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。 + +| フラグ名 | 16進数値 | 10進数値 | 説明 | +|:----------------|:-----------|:--------------|:------------------------------| +| tfSetfAuth | 0x00010000 | 65536 | 他方の当事者がこのアカウントからのイシュアンスを保有することを承認します。([*asfRequireAuth* AccountSet フラグ](accountset.html#accountsetのフラグ)を使用しない場合は効果がありません。)設定を解除できません。 | +| tfSetNoRipple | 0x00020000 | 131072 | 同一通貨の2つのトラストラインでこのフラグが設定されている場合、これらのトラストライン間でのripplingがブロックされます。(詳細は、[NoRipple](rippling.html)を参照してください。)[fix1578 Amendment][]が有効な場合、トランザクションにこのフラグが使用されていてもNoRippleを有効にできないときは、そのトランザクションは結果コード`tecNO_PERMISSION`で失敗します。このAmendmentが有効ではない場合は、トラストラインでNoRippleを有効にできない場合でもトランザクションの結果が`tesSUCCESS`になることがあります(トランザクションで可能な他の変更を行います)。 | +| tfClearNoRipple | 0x00040000 | 262144 | No-Ripplingフラグをクリアします。(詳細は、[NoRipple](rippling.html)を参照してください。) | +| tfSetFreeze | 0x00100000 | 1048576 | トラストラインを[凍結](freezes.html)します。 | +| tfClearFreeze | 0x00200000 | 2097152 | トラストラインを[凍結解除](freezes.html)します。 | + +トラストラインのAuthフラグは、トラストラインがその所有者のXRP必要準備金に反映されるかどうかを左右しません。ただしAuthフラグを有効にすると、トラストラインがデフォルト状態になることがありません。承認されたトラストラインは削除できません。イシュアーは、トラストラインの限度と残高が0であっても、`tfSetfAuth`フラグだけを使用してトラストラインを事前承認できます。 + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/content/tutorials/get-started/get-started-with-rippleapi-for-javascript.ja.md b/content/tutorials/get-started/get-started-with-rippleapi-for-javascript.ja.md index 9603f39e3c..5df8f3d2ec 100644 --- a/content/tutorials/get-started/get-started-with-rippleapi-for-javascript.ja.md +++ b/content/tutorials/get-started/get-started-with-rippleapi-for-javascript.ja.md @@ -1,329 +1,329 @@ -# RippleAPI入門ガイド - -このチュートリアルでは、[Node.js](http://nodejs.org/)と[RippleAPI](rippleapi-reference.html)(XRP LedgerにアクセスするためのJavaScript API)を使用して、XRP Ledgerに接続されるアプリケーションを開発するための基本事項を説明します。 - -このガイドで使用しているスクリプトと構成ファイルは、[Ripple開発者ポータルのGitHubリポジトリで入手できます](https://github.com/ripple/ripple-dev-portal/tree/master/content/_code-samples/rippleapi_quickstart)。 - - - -# 環境の設置 - -RippleAPIを使用するための最初のステップは、開発環境の設置です。 - - - -## Node.jsとnpmのインストール - -RippleAPIはNode.jsランタイム環境向けのアプリケーションとして構築されているため、最初のステップはNode.jsのインストールです。RippleAPIでは、Node.js v6以降が必要です。Node.js v10 LTSを使用することをお勧めします。 - -このステップは、オペレーティングシステムによって内容が異なります。使用しているオペレーティングシステムの[パッケージマネージャーを使用してNode.jsをインストールする場合の公式の手引き](https://nodejs.org/en/download/package-manager/)に準拠することをお勧めします。Node.jsとnpm(Node Package Manager)のパッケージが分かれている場合、両方をインストールします(これに該当するのは、Arch Linux、CentOS、Fedora、RHELの場合です)。 - -Node.jsのインストール後、`node`バイナリーのバージョンはコマンドラインから確認できます。 - -``` -node --version -``` - -プラットフォームによっては、バイナリーの名前が`nodejs`となっています。 - -``` -nodejs --version -``` - - - -## Yarnのインストール - -RippleAPIでは、Yarnを使用して依存関係を管理します。Yarn v1.13.0を使用することをお勧めします。 - -このステップは、オペレーティングシステムによって内容が異なります。使用しているオペレーティングシステムの[パッケージマネージャーを使用してYarnをインストールする場合の公式の手引き](https://yarnpkg.com/en/docs/install#mac-stable)に準拠することをお勧めします。 - -Yarnのインストール後、`yarn`バイナリーのバージョンはコマンドラインから確認できます。 - -``` -yarn --version -``` - - - -## RippleAPIと依存関係のインストール - -以下のステップに従い、Yarnを使用してRippleAPIと依存関係のインストールを完了します。 - - -### 1. プロジェクトの新規ディレクトリーを作成 - -`my_ripple_experiment`といった名前でフォルダーを作成します。 - -``` -mkdir my_ripple_experiment && cd my_ripple_experiment -``` - -コードに対する変更を追跡できるよう、このディレクトリーに[Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)リポジトリーを作成します(省略可)。 - -``` -git init -``` - -作業内容のバージョン管理や共有を目的として、[GitHubにリポジトリーを作成](https://help.github.com/articles/create-a-repo/)してもかまいません。設置後、ローカルマシンに[リポジトリーのクローンを作成](https://help.github.com/articles/cloning-a-repository/)し、そのディレクトリーに`cd`します。 - - -### 2. プロジェクトの新規`package.json`ファイルを作成 - -次の内容が含まれている、以下のテンプレートを使用します。 - -- RippleAPI自体(`ripple-lib`) -- (省略可)コード品質を確認するための[ESLint](http://eslint.org/)(`eslint`) - -``` -{% include '_code-samples/rippleapi_quickstart/package.json' %} -``` - - -### 3. Yarnを使用してRippleAPIと依存関係をインストール - -Yarnを使用して、プロジェクトで作成した`package.json`ファイルに定義されているRippleAPIと依存関係をインストールします。 - -``` -yarn -``` - -これで、RippleAPIと依存関係がローカルフォルダー`node_modules/`にインストールされます。 - -インストールプロセスの終了時に、いくつかの警告が表示される場合があります。以下の警告は無視してかまいません。 - -``` -warning eslint > file-entry-cache > flat-cache > circular-json@0.3.3: CircularJSON is in maintenance only, flatted is its successor. - -npm WARN optional Skipping failed optional dependency /chokidar/fsevents: - -npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.6 -``` - - - -# 最初のRippleAPIスクリプト - -スクリプト`get-account-info.js`は、ハードコーディングされたアカウントに関する情報をフェッチします。このスクリプトを使用して、RippleAPIが動作することをテストします。 - -``` -{% include '_code-samples/rippleapi_quickstart/get-account-info.js' %} -``` - - - -## スクリプトの実行 - -以下のコマンドを使用して、最初のRippleAPIスクリプトを実行します。 - -``` -node get-account-info.js -``` - -出力: - -``` -getting account info for rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn -{ sequence: 359, - xrpBalance: '75.181663', - ownerCount: 4, - previousInitiatedTransactionID: 'E5C6DD25B2DCF534056D98A2EFE3B7CFAE4EBC624854DE3FA436F733A56D8BD9', - previousAffectingTransactionID: 'E5C6DD25B2DCF534056D98A2EFE3B7CFAE4EBC624854DE3FA436F733A56D8BD9', - previousAffectingTransactionLedgerVersion: 18489336 } -getAccountInfo done -done and disconnected. -``` - - - -## スクリプトの内容解説 - -このスクリプトでは、RippleAPI固有のコードに加え、JavaScriptにおける近年の開発成果である構文や規定も利用しています。今回のサンプルコードを小さめのチャンクに分割して、個別に説明していきます。 - - -### スクリプトの冒頭 - -``` -'use strict'; -const RippleAPI = require('ripple-lib').RippleAPI; -``` - -先頭行では、[strictモード](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode)を有効にしています。このモードを使用するかどうかは任意に選択できますが、JavaScriptで陥りやすいいくつかの落とし穴を回避する上で役立ちます。 - -2行目では、Node.jsのrequire関数を使用して、RippleAPIを現在のスコープにインポートしています。RippleAPIは、[`ripple-lib`がエクスポートするモジュール](https://github.com/ripple/ripple-lib/blob/develop/src/index.ts)の1つです。 - - -### APIのインスタンス化 - -``` -const api = new RippleAPI({ - server: 'wss://s1.ripple.com' // Public rippled server -}); -``` - -このセクションでは、RippleAPIクラスの新規インスタンスを作成し、変数`api`に代入しています([`const`キーワード](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)は、値`api`を何らかの別の値に再代入できないことを意味します。ただし、オブジェクトの内部状態は変化する可能性があります)。 - -コンストラクターへの引数の1つはoptionsオブジェクトであり、このオブジェクトには[さまざまなオプション](rippleapi-reference.html#parameters)が用意されています。`server`パラメーターでは、どの`rippled`サーバーに接続するのかを指定しています。 - -- この`server`設定例では、セキュアなWebSocket接続を使用して、Ripple社が運営している公開サーバーの1つに接続しています。 -- `server`オプションを記述しない場合、RippleAPIは、ネットワーク接続の不要なメソッドのみが提供される[オフラインモード](rippleapi-reference.html#offline-functionality)で実行されます。 -- 代わりに[Rippleテストネット](https://ripple.com/build/ripple-test-net/)サーバーを指定すると、本番環境のXRP Ledgerではなく、別空間のテストネットワークに接続できます。 -- [独自の`rippled`を運用している](install-rippled.html)場合は、ローカルサーバーに接続するよう指示できます。例えば、代わりに`server: 'ws://localhost:5005'`と記述します。 - - -### 接続とPromise - -``` -api.connect().then(() => { -``` - -[connect()メソッド](rippleapi-reference.html#connect)は、特殊なJavaScriptオブジェクトである[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)を返す多くのRippleAPIメソッドの1つです。Promiseは、XRP Ledgerを照会するなど、値を後ほど返す非同期操作の実行を目的としています。 - -何らかの式(`api.connect()`など)からPromiseが返された場合、Promiseの`then`メソッドを呼び出して、コールバック関数を渡します。関数を引数として渡すことはJavaScriptでは常套的な手法であり、JavaScriptの関数が[第一級オブジェクト](https://en.wikipedia.org/wiki/First-class_function)であることを利用しています。 - -Promiseは、自身の非同期動作を完了すると、渡されたコールバック関数を実行します。`then`メソッドからの戻り値は別のPromiseオブジェクトであるため、別の`then`メソッドへの、または同様にコールバックを受け付けるPromiseの`catch`メソッドへの「チェーン」にすることができます。`catch`に渡すコールバックは、何らかの問題が生じた場合に呼び出されます。 - -この例では、非同期関数を手軽に定義できる手段である[arrow関数](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions)を使用しています。この方法は、1回限りの関数をコールバックとして大量に定義する場合に便利です。`()=> {...}`という構文は、 {...}/>`function() {...}`とほぼ等価です。パラメーターを1つ取る非同期関数が必要な場合は、代わりに`info => {...}`などの構文を使用できます。この構文は、 {...}/>`function(info) {...}`という構文とほぼ同一です。 - - -### カスタムコード - -``` - /* begin custom code ------------------------------------ */ - const myAddress = 'rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn'; - - console.log('getting account info for', myAddress); - return api.getAccountInfo(myAddress); - -}).then(info => { - console.log(info); - console.log('getAccountInfo done'); - - /* end custom code -------------------------------------- */ -``` - -ここが、スクリプトで実行する処理を記述するために変更を加える部分です。 - -このサンプルコードでは、XRP Ledgerアカウントのアドレスを使用してXRP Ledgerアカウントを参照しています。さまざまなアドレスを指定してコードを実行し、結果が変化することを確認してみてください。 - -`console.log()`関数はNode.jsとWebブラウザーの両方に組み込まれているもので、結果をコンソールに出力します。この例では大量のコンソール出力を得られるので、コードによって実行される処理の内容を簡単に理解できます。 - -このサンプルコードは、(RippleAPIが接続を終了した時点で呼び出される)コールバック関数の中が始点となっています。その関数がRippleAPIの[`getAccountInfo`](rippleapi-reference.html#getaccountinfo)メソッドを呼び出すと、結果が返されます。 - -`getAccountInfo` APIメソッドは別のPromiseを返すものであるため、`}).then( info => {`の行で、このPromiseの非同期処理が完了した時点で実行される別の非同期コールバック関数を定義しています。前述の例とは異なり、このコールバック関数は、`getAccountInfo` APIメソッドからの非同期戻り値を保持する`info`という引数を1つ取ります。このコールバック関数の残りの部分は、その戻り値をコンソールに出力するものです。 - - -### クリーンアップ - -``` -}).then(() => { - return api.disconnect(); -}).then(() => { - console.log('done and disconnected.'); -}).catch(console.error); -``` - -サンプルコードの残りの部分は、概ね[ボイラープレートコード](rippleapi-reference.html#boilerplate)としての性質を持ちます。1行目は前のコールバック関数を終了するもので、次に、終了時に実行される別のコールバックへのチェーンを作成しています。そのメソッドはXRP Ledgerからの明示的な切断を実行し、終了時にコンソールへの書き込みを実行する別のコールバックが記述されています。スクリプトで[RippleAPIイベント](rippleapi-reference.html#api-events)を待機する場合は、イベントの待機を終了するまで切断を実行しないでください。 - -`catch`メソッドで、このPromiseチェーンを終了します。ここに記述しているコールバックは、いずれかのPromiseまたはそのコールバック関数でエラーが発生した場合に実行されます。ここでは、カスタムのコールバックを定義するのではなく、コンソールへの書き込みを実行する標準の`console.error`関数を渡しています。より高機能のコールバック関数をここに定義して、特定のタイプのエラーをインテリジェントにキャッチすることもできます。 - - - -# 検証の待機 - -XRP Ledger(または任意の分散されたシステム)を使用する上で最大の課題の1つとなるのが、最終的かつ不変のトランザクション結果を把握することです。[ベストプラクティスに従っている](reliable-transaction-submission.html)場合も、トランザクションが最終的に受け入れられるか拒否されるまで、[コンセンサスプロセス](https://ripple.com/build/ripple-ledger-consensus-process/)を待機しなければならないことに変わりはありません。以下のサンプルコードは、トランザクションの最終的な結果を待機する方法を示しています。 - -``` -{% include '_code-samples/rippleapi_quickstart/submit-and-verify.js' %} -``` - -このコードは注文トランザクションを作成して送信するものですが、他のタイプのトランザクションにも同様の原則があてはまります。トランザクションを送信した後、setTimeoutを使用して所定の時間が経過するまで待機し、新しいPromiseでレジャーをもう一度照会して、トランザクションが検証済みとなっているかどうかを確認します。検証済みとなっていない場合は、検証済みレジャーの中にトランザクションが見つかるか、返されたレジャーがLastLedgerSequenceパラメーターの値よりも大きくなるまで、このプロセスを繰り返します。 - -まれなケースとして(特に、大きな遅延や電源喪失が発生した場合)、トランザクションを送信してから、`maxLedgerVersion`がネットワークから渡されたと判断するまでの間に、レジャーのいずれかのバージョンが`rippled`サーバーで欠落することがあります。この場合、トランザクションが失敗したのか、欠落したバージョンのレジャーに含まれているのかを最終的に確定することはできません。RippleAPIは、この場合、`MissingLedgerHistoryError`を返します。 - -`rippled`サーバーの管理者である場合は、[欠落しているレジャーを手動で要求できます](ledger_request.html)。管理者でない場合は、別のサーバーを使用してレジャー履歴を確認してみるという方法が考えられます(Rippleは、この目的で、すべての履歴が記録される公開サーバーを`s2.ripple.com`で運用しています)。 - -詳細は、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 - - - -# WebブラウザーでのRippleAPI - -RippleAPIは、ブラウザー互換のバージョンをコンパイルし、RippleAPIスクリプトよりも前に[lodash](https://www.npmjs.com/package/lodash)を依存関係として含めた場合、Webブラウザーでも使用できます。 - - - -## ブラウザー互換バージョンのRippleAPIのビルド - -RippleAPIをブラウザーで使用するには、ブラウザー互換バージョンをビルドする必要があります。以下の手順では、RippleAPIをコンパイルして、Webページに含めることのできる単一のJavaScriptファイルを生成します。 - - -### 1. RippleAPI gitリポジトリーのコピーをダウンロード - -[Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)がインストールされている場合は、リポジトリーのクローンを作成して、**master**ブランチをチェックアウトできます。このブランチには、常に最新の公式リリースが収められています。 - -``` -git clone https://github.com/ripple/ripple-lib.git -cd ripple-lib -git checkout master -``` - -または、特定のリリースのアーカイブ(.zipまたは.tar.gz)を[RippleAPIリリースページ](https://github.com/ripple/ripple-lib/releases)からダウンロードし、抽出します。 - - -### 2. Yarnのインストール - -[Yarnのインストール](#yarnのインストール)に関する手順に従います。 - - -### 3. Yarnを使用して依存関係をインストール - -``` -yarn -``` - - -### 4. Gulpを使用して単一のJavaScript出力をビルド - -RippleAPIには、[gulp](http://gulpjs.com/)パッケージを使用してすべてのソースコードをコンパイルし、ブラウザー互換バージョンのJavaScriptファイルを生成するためのコードが付属しています。Gulpは依存関係の1つとして自動的にインストールされるため、実行するだけで済みます。RippleAPIの構成上、これは容易に実行できるようになっています。 - -``` -yarn run build -``` - -出力: - -``` -> ripple-lib@0.16.5 build /home/username/ripple-lib -> gulp - -[14:11:02] Using gulpfile /home/username/ripple-lib/gulpfile.js -[14:11:02] Starting 'build'... -[14:11:03] Starting 'build-debug'... -[14:11:03] Starting 'build-min'... -[14:11:18] Finished 'build-debug' after 15 s -[14:11:18] Finished 'build' after 16 s -[14:11:18] Finished 'build-min' after 15 s -[14:11:18] Starting 'default'... -[14:11:18] Finished 'default' after 19 μs -``` - -完了までに、しばらく時間がかかる場合があります。最終的に、ビルドプロセスによって、目的のファイルが含まれた新しい`build/`フォルダーが作成されます。 - -`build/ripple-.js`ファイルは、ブラウザーですぐに使用できる(ビルドしたバージョンの)RippleAPIの直接エクスポートです。名前の末尾が`-min.js`のファイルも同じものですが、読み込みを高速化するため、内容が[縮小](https://en.wikipedia.org/wiki/Minification_%28programming%29)されています。 - - - -## ブラウザーでのRippleAPIのデモ - -以下のHTMLファイルは、RippleAPIのブラウザーバージョンで公開`rippled`サーバーに接続し、そのサーバーに関する情報のレポートを生成するための基本的な使用方法を示しています。Node.jsの「require」構文を使用するのではなく、ブラウザーバージョンを使用して、`RippleAPI`クラスが含まれている`ripple`という名前のグローバル変数を作成します。 - -この例を使用するには、最初に[RippleAPIのブラウザー互換バージョンをビルド](#ブラウザー互換バージョンのrippleapiのビルド)した後、結果として生成される出力ファイルのいずれかを、このHTMLファイルと同一のフォルダーにコピーします(縮小バージョンとフルサイズバージョンのどちらを使用してもかまいません)。この例にある2番目の`