mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-20 11:45:50 +00:00
Merge pull request #812 from ripple/rippled_1.5.0
rippled 1.5.0 Documentation
This commit is contained in:
@@ -95,6 +95,7 @@
|
|||||||
"ledger_request",
|
"ledger_request",
|
||||||
"log_level",
|
"log_level",
|
||||||
"logrotate",
|
"logrotate",
|
||||||
|
"manifest",
|
||||||
"noripple_check",
|
"noripple_check",
|
||||||
"path_find",
|
"path_find",
|
||||||
"peer_reservations_add",
|
"peer_reservations_add",
|
||||||
@@ -119,6 +120,7 @@
|
|||||||
"unsubscribe",
|
"unsubscribe",
|
||||||
"validation_create",
|
"validation_create",
|
||||||
"validation_seed",
|
"validation_seed",
|
||||||
|
"validator_info",
|
||||||
"validator_list_sites",
|
"validator_list_sites",
|
||||||
"validators",
|
"validators",
|
||||||
"wallet_propose"
|
"wallet_propose"
|
||||||
@@ -137,6 +139,7 @@
|
|||||||
"Checks",
|
"Checks",
|
||||||
"CryptoConditions",
|
"CryptoConditions",
|
||||||
"CryptoConditionsSuite",
|
"CryptoConditionsSuite",
|
||||||
|
"DeletableAccounts",
|
||||||
"DepositAuth",
|
"DepositAuth",
|
||||||
"DepositPreauth",
|
"DepositPreauth",
|
||||||
"EnforceInvariants",
|
"EnforceInvariants",
|
||||||
@@ -154,7 +157,10 @@
|
|||||||
"fix1571",
|
"fix1571",
|
||||||
"fix1578",
|
"fix1578",
|
||||||
"fix1623",
|
"fix1623",
|
||||||
|
"fixCheckThreading",
|
||||||
"fixMasterKeyAsRegularKey",
|
"fixMasterKeyAsRegularKey",
|
||||||
|
"fixPayChanRecipientOwnerDir",
|
||||||
|
"fixQualityUpperBound",
|
||||||
"fixTakerDryOfferRemoval",
|
"fixTakerDryOfferRemoval",
|
||||||
"Flow",
|
"Flow",
|
||||||
"FlowCross",
|
"FlowCross",
|
||||||
@@ -163,6 +169,7 @@
|
|||||||
"MultiSignReserve",
|
"MultiSignReserve",
|
||||||
"OwnerPaysFee",
|
"OwnerPaysFee",
|
||||||
"PayChan",
|
"PayChan",
|
||||||
|
"RequireFullyCanonicalSig",
|
||||||
"SHAMapV2",
|
"SHAMapV2",
|
||||||
"SortedDirectories",
|
"SortedDirectories",
|
||||||
"SusPay",
|
"SusPay",
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
"1.2.1",
|
"1.2.1",
|
||||||
"1.3.1",
|
"1.3.1",
|
||||||
"1.4.0",
|
"1.4.0",
|
||||||
|
"1.5.0",
|
||||||
] %}
|
] %}
|
||||||
|
|
||||||
{% for v in rippled_versions %}
|
{% for v in rippled_versions %}
|
||||||
|
|||||||
@@ -7,11 +7,12 @@ The following is a comprehensive list of all known amendments and their status o
|
|||||||
|:--------------------------------|:-----------|:------------------------------------|
|
|:--------------------------------|:-----------|:------------------------------------|
|
||||||
| [CryptoConditionsSuite][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
| [CryptoConditionsSuite][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [OwnerPaysFee][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
| [OwnerPaysFee][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [SHAMapV2][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
|
||||||
| [Tickets][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
| [Tickets][] | TBD | [In Development: TBD]( "BADGE_LIGHTGREY") |
|
||||||
|
| [fixQualityUpperBound][] | v1.5.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||||
|
| [RequireFullyCanonicalSig][] | v1.5.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [DeletableAccounts][] | v1.4.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
| [DeletableAccounts][] | v1.4.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [fixCheckThreading][] | v1.4.0 | [Expected: 2020-01-18](https://xrpl.org/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected.html "BADGE_BLUE") |
|
| [fixCheckThreading][] | v1.4.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [fixPayChanRecipientOwnerDir][] | v1.4.0 | [Expected: 2020-01-18](https://xrpl.org/blog/2020/fixcheckthreading-fixpaychanrecipientownerdir-expected.html "BADGE_BLUE") |
|
| [fixPayChanRecipientOwnerDir][] | v1.4.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [Checks][] | v0.90.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
| [Checks][] | v0.90.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [FlowCross][] | v0.70.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
| [FlowCross][] | v0.70.0 | [Planned: TBD]( "BADGE_LIGHTGREY") |
|
||||||
| [fixMasterKeyAsRegularKey][] | v1.3.1 | [Enabled: 2019-10-02](https://xrpcharts.ripple.com/#/transactions/61096F8B5AFDD8F5BAF7FC7221BA4D1849C4E21B1BA79733E44B12FC8DA6EA20 "BADGE_GREEN") |
|
| [fixMasterKeyAsRegularKey][] | v1.3.1 | [Enabled: 2019-10-02](https://xrpcharts.ripple.com/#/transactions/61096F8B5AFDD8F5BAF7FC7221BA4D1849C4E21B1BA79733E44B12FC8DA6EA20 "BADGE_GREEN") |
|
||||||
@@ -41,6 +42,7 @@ The following is a comprehensive list of all known amendments and their status o
|
|||||||
| [TrustSetAuth][] | v0.30.0 | [Enabled: 2016-07-19](https://xrpcharts.ripple.com/#/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") |
|
| [TrustSetAuth][] | v0.30.0 | [Enabled: 2016-07-19](https://xrpcharts.ripple.com/#/transactions/0E589DE43C38AED63B64FF3DA87D349A038F1821212D370E403EB304C76D70DF "BADGE_GREEN") |
|
||||||
| [MultiSign][] | v0.31.0 | [Enabled: 2016-06-27](https://xrpcharts.ripple.com/#/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") |
|
| [MultiSign][] | v0.31.0 | [Enabled: 2016-06-27](https://xrpcharts.ripple.com/#/transactions/168F8B15F643395E59B9977FC99D6310E8708111C85659A9BAF8B9222EEAC5A7 "BADGE_GREEN") |
|
||||||
| [FeeEscalation][] | v0.31.0 | [Enabled: 2016-05-19](https://xrpcharts.ripple.com/#/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") |
|
| [FeeEscalation][] | v0.31.0 | [Enabled: 2016-05-19](https://xrpcharts.ripple.com/#/transactions/5B1F1E8E791A9C243DD728680F108FEF1F28F21BA3B202B8F66E7833CA71D3C3 "BADGE_GREEN") |
|
||||||
|
| [SHAMapV2][] | v0.32.1 | [Vetoed: Removed in v1.4.0](https://xrpl.org/blog/2019/rippled-1.4.0.html "BADGE_RED") |
|
||||||
| [FlowV2][] | v0.32.1 | [Vetoed: Removed in v0.33.0](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") |
|
| [FlowV2][] | v0.32.1 | [Vetoed: Removed in v0.33.0](https://xrpl.org/blog/2016/flowv2-vetoed.html "BADGE_RED") |
|
||||||
| [SusPay][] | v0.31.0 | [Vetoed: Removed in v0.60.0](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") |
|
| [SusPay][] | v0.31.0 | [Vetoed: Removed in v0.60.0](https://xrpl.org/blog/2017/ticksize-voting.html#upcoming-features "BADGE_RED") |
|
||||||
|
|
||||||
@@ -372,7 +374,19 @@ With this amendment enabled, a SetRegularKey transaction cannot set the regular
|
|||||||
|
|
||||||
Changes the [PaymentChannelCreate transaction][] type so that it adds new [payment channels](payment-channels.html) to the recipient's [owner directory](directorynode.html). Without this amendment, new payment channels are added only to the sender's owner directory; with this amendment enabled, newly-created payment channels are added to both owner directories. Existing payment channels are unchanged.
|
Changes the [PaymentChannelCreate transaction][] type so that it adds new [payment channels](payment-channels.html) to the recipient's [owner directory](directorynode.html). Without this amendment, new payment channels are added only to the sender's owner directory; with this amendment enabled, newly-created payment channels are added to both owner directories. Existing payment channels are unchanged.
|
||||||
|
|
||||||
This change makes it easier to look up payment channels by their recipient and prevents accounts from being deleted if they are the recipient for open payment channels (except those channels created before this amendment).
|
This change prevents accounts from being deleted if they are the recipient for open payment channels, except for channels created before this amendment.
|
||||||
|
|
||||||
|
|
||||||
|
## fixQualityUpperBound
|
||||||
|
[fixQualityUpperBound]: #fixqualityupperbound
|
||||||
|
|
||||||
|
| Amendment ID | Status |
|
||||||
|
|:-----------------------------------------------------------------|:----------|
|
||||||
|
| 89308AF3B8B10B7192C4E613E1D2E4D9BA64B2EE2D5232402AE82A6A7220D953 | Planned |
|
||||||
|
|
||||||
|
Fixes a bug in unused code for estimating the ratio of input to output of individual steps in cross-currency payments.
|
||||||
|
|
||||||
|
This amendment has no known impact on transaction processing.
|
||||||
|
|
||||||
|
|
||||||
## fixTakerDryOfferRemoval
|
## fixTakerDryOfferRemoval
|
||||||
@@ -491,6 +505,22 @@ Creates three new transaction types: [PaymentChannelCreate][], [PaymentChannelCl
|
|||||||
For more information, see the [Payment Channels Tutorial](use-payment-channels.html).
|
For more information, see the [Payment Channels Tutorial](use-payment-channels.html).
|
||||||
|
|
||||||
|
|
||||||
|
## RequireFullyCanonicalSig
|
||||||
|
[RequireFullyCanonicalSig]: #requirefullycanonicalsig
|
||||||
|
|
||||||
|
| Amendment ID | Status |
|
||||||
|
|:-----------------------------------------------------------------|:----------|
|
||||||
|
| 00C1FC4A53E60AB02C864641002B3172F38677E29C26C5406685179B37E1EDAC | Planned |
|
||||||
|
|
||||||
|
Changes the signature requirements for the XRP Ledger protocol so that non-fully-canonical signatures are no longer valid in any case. This protects against [transaction malleability](transaction-malleability.html) on _all_ transactions, instead of just transactions with the [tfFullyCanonicalSig flag](transaction-common-fields.html#global-flags) enabled.
|
||||||
|
|
||||||
|
Without this amendment, a transaction is malleable if it uses a secp256k1 signature and does not have tfFullyCanonicalSig enabled. Most signing utilities enable tfFullyCanonicalSig by default, but there are exceptions.
|
||||||
|
|
||||||
|
With this amendment, no single-signed transactions are malleable. ([Multi-signed transactions may still be malleable](transaction-malleability.html#malleability-with-multi-signatures) if signers provide more signatures than are necessary.) All transactions must use the fully canonical form of the signature, regardless of the tfFullyCanonicalSig flag. Signing utilities that do not create fully canonical signatures are not supported. All of Ripple's signing utilities have been providing fully-canonical signatures exclusively since at least 2014.
|
||||||
|
|
||||||
|
For more information, see [`rippled` issue #3042](https://github.com/ripple/rippled/issues/3042).
|
||||||
|
|
||||||
|
|
||||||
## SHAMapV2
|
## SHAMapV2
|
||||||
[SHAMapV2]: #shamapv2
|
[SHAMapV2]: #shamapv2
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ There are two circumstances that could lead to transaction malleability:
|
|||||||
|
|
||||||
**Use the [tfFullyCanonicalSig flag](transaction-common-fields.html#global-flags)** to guarantee that a transaction is not malleable in this way. Although transactions [signed with Ed25519 keys](cryptographic-keys.html#signing-algorithms) are not vulnerable to this problem, **there is no downside** to using this flag on _all_ transactions.
|
**Use the [tfFullyCanonicalSig flag](transaction-common-fields.html#global-flags)** to guarantee that a transaction is not malleable in this way. Although transactions [signed with Ed25519 keys](cryptographic-keys.html#signing-algorithms) are not vulnerable to this problem, **there is no downside** to using this flag on _all_ transactions.
|
||||||
|
|
||||||
|
If the [RequireFullyCanonicalSig amendment][] :not_enabled: is enabled, all transactions are protected against malleability regardless of the tfFullyCanonicalSig flag.
|
||||||
|
|
||||||
2. The transaction is [multi-signed](multi-signing.html) and has more signatures than necessary. Even if the transaction originally did not have more signatures than necessary, it could be malleable if an authorized signer provides an additional signature.
|
2. The transaction is [multi-signed](multi-signing.html) and has more signatures than necessary. Even if the transaction originally did not have more signatures than necessary, it could be malleable if an authorized signer provides an additional signature.
|
||||||
|
|
||||||
Good operational security can protect against these problems. See [Mitigations for Multi-Signature Malleability](#mitigations-for-multi-signature-malleability) for guidelines.
|
Good operational security can protect against these problems. See [Mitigations for Multi-Signature Malleability](#mitigations-for-multi-signature-malleability) for guidelines.
|
||||||
@@ -41,7 +43,7 @@ An ECDSA signature consists of two integers, called R and S. The secp256k1 _grou
|
|||||||
|
|
||||||
Thus, to have _fully_ canonical signatures, one must choose which of the two possibilities is preferred and declare the other to be invalid. The creators of the XRP Ledger decided arbitrarily to prefer the _smaller_ of the two possible values, `S` or `N-S`. A transaction is considered _fully canonical_ if it uses the preferred (smaller) value of `S`, and follows all the normal rules for being canonical.
|
Thus, to have _fully_ canonical signatures, one must choose which of the two possibilities is preferred and declare the other to be invalid. The creators of the XRP Ledger decided arbitrarily to prefer the _smaller_ of the two possible values, `S` or `N-S`. A transaction is considered _fully canonical_ if it uses the preferred (smaller) value of `S`, and follows all the normal rules for being canonical.
|
||||||
|
|
||||||
To maintain compatibility with older software that did not always generate fully canonical signatures, the XRP Ledger accepts transactions that are not fully canonical. To protect new users from exploits, the XRP Ledger has a flag on transactions called [**tfFullyCanonicalSig**](transaction-common-fields.html#global-flags), which requires that the transaction use a _fully-canonical_ signature to be valid.
|
To maintain compatibility with older software that did not always generate fully canonical signatures, the XRP Ledger accepts transactions that are not fully canonical. To protect new users from exploits, the XRP Ledger has a flag on transactions called [**tfFullyCanonicalSig**](transaction-common-fields.html#global-flags), which requires that the transaction use a _fully-canonical_ signature to be valid. If the [RequireFullyCanonicalSig amendment][] :not_enabled: is enabled, all transactions require fully-canonical signatures regardless of the tfFullyCanonicalSig flag, and legacy software that makes non-fully-canonical signatures is no longer compatible.
|
||||||
|
|
||||||
To calculate a fully-canonical ECDSA signature, one must compare S and N-S to determine which is smaller, then use that value in the `Signature` field of the transaction.
|
To calculate a fully-canonical ECDSA signature, one must compare S and N-S to determine which is smaller, then use that value in the `Signature` field of the transaction.
|
||||||
|
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
Communicate directly with a `rippled` server using these admin API methods. Admin methods are meant only for trusted personnel in charge of keeping the server operational. Admin methods include commands for managing, monitoring, and debugging the server.
|
Communicate directly with a `rippled` server using these admin API methods. Admin methods are meant only for trusted personnel in charge of keeping the server operational. Admin methods include commands for managing, monitoring, and debugging the server.
|
||||||
|
|
||||||
Admin commands are available only if you connect to `rippled` on a host and port that the `rippled.cfg` file identifies as admin. By default, the commandline client uses an admin connection. For more information on connecting to `rippled`, see [Getting Started with the rippled API](get-started-with-the-rippled-api.html).
|
Admin commands are available only if you connect to `rippled` on a host and port that the `rippled.cfg` file identifies as admin. By default, the commandline client uses an admin connection. For more information on connecting to `rippled`, see [Getting Started with the `rippled` API](get-started-with-the-rippled-api.html).
|
||||||
|
|
||||||
|
|
||||||
## [Key Generation Methods](key-generation-methods.html)
|
## [Key Generation Methods](key-generation-methods.html)
|
||||||
|
|
||||||
Use these methods to generate and manage keys.
|
Use these methods to generate and manage keys.
|
||||||
|
|
||||||
* **[`validation_create`](validation_create.html)** - Generate keys for a new rippled validator.
|
* **[`validation_create`](validation_create.html)** - Generate formatted for `rippled` node key pair. (Validators should use [tokens](run-rippled-as-a-validator.html) instead of keys generated by this method.)
|
||||||
* **[`wallet_propose`](wallet_propose.html)** - Generate keys for a new account.
|
* **[`wallet_propose`](wallet_propose.html)** - Generate keys for a new account.
|
||||||
|
|
||||||
|
|
||||||
@@ -27,13 +27,20 @@ Use these methods to manage log levels and other data, such as ledgers.
|
|||||||
|
|
||||||
## [Server Control Methods](server-control-methods.html)
|
## [Server Control Methods](server-control-methods.html)
|
||||||
|
|
||||||
Use these methods to manage the rippled server.
|
Use these methods to manage the `rippled` server.
|
||||||
|
|
||||||
* **[`connect`](connect.html)** - Force the rippled server to connect to a specific peer.
|
|
||||||
* **[`ledger_accept`](ledger_accept.html)** - Close and advance the ledger in stand-alone mode.
|
* **[`ledger_accept`](ledger_accept.html)** - Close and advance the ledger in stand-alone mode.
|
||||||
* **[`stop`](stop.html)** - Shut down the rippled server.
|
* **[`stop`](stop.html)** - Shut down the `rippled` server.
|
||||||
* **[`validation_seed`](validation_seed.html)** - Temporarily set key to be used for validating.
|
|
||||||
|
|
||||||
|
## [Peer Management Methods](peer-management-methods.html)
|
||||||
|
|
||||||
|
Use these methods to manage the server's connections in the peer-to-peer XRP Ledger network.
|
||||||
|
|
||||||
|
* **[`connect`](connect.html)** - Force the `rippled` server to connect to a specific peer.
|
||||||
|
* **[`peer_reservations_add`](peer_reservations_add.html)** - Add or update a reserved slot for a specific peer.
|
||||||
|
* **[`peer_reservations_del`](peer_reservations_del.html)** - Remove a reserved slot for a specific peer.
|
||||||
|
* **[`peer_reservations_list`](peer_reservations_list.html)** - List reserved slots for specific peers.
|
||||||
|
* **[`peers`](peers.html)** - Get information about the peer servers connected.
|
||||||
|
|
||||||
## [Status and Debugging Methods](status-and-debugging-methods.html)
|
## [Status and Debugging Methods](status-and-debugging-methods.html)
|
||||||
|
|
||||||
@@ -43,10 +50,11 @@ Use these methods to check the status of the network and server.
|
|||||||
* **[`feature`](feature.html)** - Get information about protocol amendments.
|
* **[`feature`](feature.html)** - Get information about protocol amendments.
|
||||||
* **[`fetch_info`](fetch_info.html)** - Get information about the server's sync with the network.
|
* **[`fetch_info`](fetch_info.html)** - Get information about the server's sync with the network.
|
||||||
* **[`get_counts`](get_counts.html)** - Get statistics about the server's internals and memory usage.
|
* **[`get_counts`](get_counts.html)** - Get statistics about the server's internals and memory usage.
|
||||||
* **[`peers`](peers.html)** - Get information about the peer servers connected.
|
* **[`manifest`](manifest.html)** - Get the latest public key information about a known validator.
|
||||||
* **[`print`](print.html)** - Get information about internal subsystems.
|
* **[`print`](print.html)** - Get information about internal subsystems.
|
||||||
* **[`validators`](validators.html)** - Get information about the current validators.
|
* **[`validator_info`](validator_info.html)** - Get information about the server's validator settings, if configured as a validator.
|
||||||
* **[`validator_list_sites`](validator_list_sites.html)** - Get information about sites that publish validator lists.
|
* **[`validator_list_sites`](validator_list_sites.html)** - Get information about sites that publish validator lists.
|
||||||
|
* **[`validators`](validators.html)** - Get information about the current validators.
|
||||||
|
|
||||||
|
|
||||||
## Deprecated Methods
|
## Deprecated Methods
|
||||||
@@ -57,6 +65,8 @@ The following admin commands are deprecated and may be removed without further n
|
|||||||
* `unl_add`, `unl_delete`, `unl_list`, `unl_load`, `unl_network`, `unl_reset`, `unl_score` - Use the `validators.txt` config file for UNL management instead.
|
* `unl_add`, `unl_delete`, `unl_list`, `unl_load`, `unl_network`, `unl_reset`, `unl_score` - Use the `validators.txt` config file for UNL management instead.
|
||||||
* `wallet_seed` - Use the [wallet_propose method][] instead.
|
* `wallet_seed` - Use the [wallet_propose method][] instead.
|
||||||
|
|
||||||
|
The [validation_seed method][] has been removed since `rippled` v0.29.1.
|
||||||
|
|
||||||
|
|
||||||
<!--{# common link defs #}-->
|
<!--{# common link defs #}-->
|
||||||
{% include '_snippets/rippled-api-links.md' %}
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
|||||||
@@ -0,0 +1,150 @@
|
|||||||
|
# manifest
|
||||||
|
[[Source]](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/Manifest.cpp "Source")
|
||||||
|
|
||||||
|
The `{{currentpage.name}}` method reports the current "manifest" information for a given validator public key. The "manifest" is the public portion of that validator's configured token.
|
||||||
|
|
||||||
|
_The `{{currentpage.name}}` method is an [admin method](admin-rippled-methods.html) that cannot be run by unprivileged users._
|
||||||
|
|
||||||
|
|
||||||
|
### Request Format
|
||||||
|
|
||||||
|
An example of the request format:
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_START -->
|
||||||
|
|
||||||
|
*WebSocket*
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"command": "{{currentpage.name}}",
|
||||||
|
"public_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*JSON-RPC*
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"method": "{{currentpage.name}}",
|
||||||
|
"params": [{
|
||||||
|
"public_key":"nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```sh
|
||||||
|
#Syntax: {{currentpage.name}} public_key
|
||||||
|
rippled {{currentpage.name}} nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
|
The request includes the following parameters:
|
||||||
|
|
||||||
|
| `Field` | Type | Description |
|
||||||
|
|:-------------|:-------|:-----------------------------------|
|
||||||
|
| `public_key` | String | The [base58][]-encoded public key of the validator to look up. This can be the master public key or ephemeral public key. |
|
||||||
|
|
||||||
|
**Note:** The commandline format for this method does not work in rippled v1.5.0. See [issue #3317](https://github.com/ripple/rippled/issues/3317) for details.
|
||||||
|
|
||||||
|
### Response Format
|
||||||
|
|
||||||
|
An example of a successful response:
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_START -->
|
||||||
|
|
||||||
|
*WebSocket*
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"details": {
|
||||||
|
"domain": "",
|
||||||
|
"ephemeral_key": "n9J67zk4B7GpbQV5jRQntbgdKf7TW6894QuG7qq1rE5gvjCu6snA",
|
||||||
|
"master_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p",
|
||||||
|
"seq": 1
|
||||||
|
},
|
||||||
|
"manifest": "JAAAAAFxIe3AkJgOyqs3y+UuiAI27Ff3Mrfbt8e7mjdo06bnGEp5XnMhAhRmvCZmWZXlwShVE9qXs2AVCvhVuA/WGYkTX/vVGBGwdkYwRAIgGnYpIGufURojN2cTXakAM7Vwa0GR7o3osdVlZShroXQCIH9R/Lx1v9rdb4YY2n5nrxdnhSSof3U6V/wIHJmeao5ucBJA9D1iAMo7YFCpb245N3Czc0L1R2Xac0YwQ6XdGT+cZ7yw2n8JbdC3hH8Xu9OUqc867Ee6JmlXtyDHzBdY/hdJCQ==",
|
||||||
|
"requested": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p"
|
||||||
|
},
|
||||||
|
"status": "success",
|
||||||
|
"type": "response"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*JSON-RPC*
|
||||||
|
|
||||||
|
```json
|
||||||
|
200 OK
|
||||||
|
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"details": {
|
||||||
|
"domain": "",
|
||||||
|
"ephemeral_key": "n9J67zk4B7GpbQV5jRQntbgdKf7TW6894QuG7qq1rE5gvjCu6snA",
|
||||||
|
"master_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p",
|
||||||
|
"seq": 1
|
||||||
|
},
|
||||||
|
"manifest": "JAAAAAFxIe3AkJgOyqs3y+UuiAI27Ff3Mrfbt8e7mjdo06bnGEp5XnMhAhRmvCZmWZXlwShVE9qXs2AVCvhVuA/WGYkTX/vVGBGwdkYwRAIgGnYpIGufURojN2cTXakAM7Vwa0GR7o3osdVlZShroXQCIH9R/Lx1v9rdb4YY2n5nrxdnhSSof3U6V/wIHJmeao5ucBJA9D1iAMo7YFCpb245N3Czc0L1R2Xac0YwQ6XdGT+cZ7yw2n8JbdC3hH8Xu9OUqc867Ee6JmlXtyDHzBdY/hdJCQ==",
|
||||||
|
"requested": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p",
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```json
|
||||||
|
Loading: "/etc/rippled.cfg"
|
||||||
|
Connecting to 127.0.0.1:5005
|
||||||
|
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"details": {
|
||||||
|
"domain": "",
|
||||||
|
"ephemeral_key": "n9J67zk4B7GpbQV5jRQntbgdKf7TW6894QuG7qq1rE5gvjCu6snA",
|
||||||
|
"master_key": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p",
|
||||||
|
"seq": 1
|
||||||
|
},
|
||||||
|
"manifest": "JAAAAAFxIe3AkJgOyqs3y+UuiAI27Ff3Mrfbt8e7mjdo06bnGEp5XnMhAhRmvCZmWZXlwShVE9qXs2AVCvhVuA/WGYkTX/vVGBGwdkYwRAIgGnYpIGufURojN2cTXakAM7Vwa0GR7o3osdVlZShroXQCIH9R/Lx1v9rdb4YY2n5nrxdnhSSof3U6V/wIHJmeao5ucBJA9D1iAMo7YFCpb245N3Czc0L1R2Xac0YwQ6XdGT+cZ7yw2n8JbdC3hH8Xu9OUqc867Ee6JmlXtyDHzBdY/hdJCQ==",
|
||||||
|
"requested": "nHUFE9prPXPrHcG3SkwP1UzAQbSphqyQkQK9ATXLZsfkezhhda3p",
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
|
<!-- Note, the CLI response above is mocked up to compensate for https://github.com/ripple/rippled/issues/3317 -->
|
||||||
|
|
||||||
|
The response follows the [standard format][], with a successful result containing the following fields:
|
||||||
|
|
||||||
|
| `Field` | Type | Description |
|
||||||
|
|:------------|:-------|:------------------------------------------------------|
|
||||||
|
| `details` | Object | _(May be omitted)_ The data contained in this manifest. Omitted if the server does not have a manifest for the `public_key` from the request. See **Details Object** below for a full description of its contents. |
|
||||||
|
| `manifest` | String | _(May be omitted)_ The full manifest data in base64 format. This data is [serialized](serialization.html) to binary before being base64-encoded. Omitted if the server does not have a manifest for the `public_key` from the request. |
|
||||||
|
| `requested` | String | The `public_key` from the request. |
|
||||||
|
|
||||||
|
#### Details Object
|
||||||
|
|
||||||
|
If provided, the `details` object contains the following fields:
|
||||||
|
|
||||||
|
| `Field` | Type | Description |
|
||||||
|
|:----------------|:-------|:--------------------------------------------------|
|
||||||
|
| `domain` | String | The domain name this validator claims to be associated with. If the manifest does not contain a domain, this is an empty string. |
|
||||||
|
| `ephemeral_key` | String | The ephemeral public key for this validator, in [base58][]. |
|
||||||
|
| `master_key` | String | The master public key for this validator, in [base58][]. |
|
||||||
|
| `seq` | Number | The sequence number of this manifest. This number increases whenever the validator operator updates the validator's token to rotate ephemeral keys or change settings. |
|
||||||
|
|
||||||
|
|
||||||
|
### Possible Errors
|
||||||
|
|
||||||
|
- Any of the [universal error types][].
|
||||||
|
- `invalidParams` - The `public_key` field was missing or specified incorrectly.
|
||||||
|
|
||||||
|
<!--{# common link defs #}-->
|
||||||
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
# validator_info
|
||||||
|
[[Source]](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/ValidatorInfo.cpp "Source")
|
||||||
|
|
||||||
|
The `{{currentpage.name}}` method returns the current validator settings of the server, if it is configured as a validator.
|
||||||
|
|
||||||
|
_The `{{currentpage.name}}` method is an [admin method](admin-rippled-methods.html) that cannot be run by unprivileged users._
|
||||||
|
|
||||||
|
|
||||||
|
### Request Format
|
||||||
|
|
||||||
|
An example of the request format:
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_START -->
|
||||||
|
|
||||||
|
*WebSocket*
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"command": "{{currentpage.name}}"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*JSON-RPC*
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"method": "{{currentpage.name}}"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```sh
|
||||||
|
#Syntax: {{currentpage.name}}
|
||||||
|
rippled {{currentpage.name}}
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
|
The request does not accept any parameters.
|
||||||
|
|
||||||
|
|
||||||
|
### Response Format
|
||||||
|
|
||||||
|
An example of a successful response:
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_START -->
|
||||||
|
|
||||||
|
*WebSocket*
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"domain": "mduo13.com",
|
||||||
|
"ephemeral_key": "n9KnrcCmL5psyKtk2KWP6jy14Hj4EXuZDg7XMdQJ9cSDoFSp53hu",
|
||||||
|
"manifest": "JAAAAAFxIe002KClGBUlRA7h5J2Y5B7Xdlxn1Z5OxY7ZC2UmqUIikHMhAkVIeB7McBf4NFsBceQQlScTVUWMdpYzwmvs115SUGDKdkcwRQIhAJnKfYWnPsBsATIIRfgkAAK+HE4zp8G8AmOPrHmLZpZAAiANiNECVQTKktoD7BEoEmS8jaFBNMgRdcG0dttPurCAGXcKbWR1bzEzLmNvbXASQPjO6wxOfhtWsJ6oMWBg8Rs5STAGvQV2ArI5MG3KbpFrNSMxbx630Ars9d9j1ORsUS5v1biZRShZfg9180JuZAo=",
|
||||||
|
"master_key": "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
|
"seq": 1
|
||||||
|
},
|
||||||
|
"status": "success",
|
||||||
|
"type": "response"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*JSON-RPC*
|
||||||
|
|
||||||
|
```json
|
||||||
|
200 OK
|
||||||
|
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"domain": "mduo13.com",
|
||||||
|
"ephemeral_key": "n9KnrcCmL5psyKtk2KWP6jy14Hj4EXuZDg7XMdQJ9cSDoFSp53hu",
|
||||||
|
"manifest": "JAAAAAFxIe002KClGBUlRA7h5J2Y5B7Xdlxn1Z5OxY7ZC2UmqUIikHMhAkVIeB7McBf4NFsBceQQlScTVUWMdpYzwmvs115SUGDKdkcwRQIhAJnKfYWnPsBsATIIRfgkAAK+HE4zp8G8AmOPrHmLZpZAAiANiNECVQTKktoD7BEoEmS8jaFBNMgRdcG0dttPurCAGXcKbWR1bzEzLmNvbXASQPjO6wxOfhtWsJ6oMWBg8Rs5STAGvQV2ArI5MG3KbpFrNSMxbx630Ars9d9j1ORsUS5v1biZRShZfg9180JuZAo=",
|
||||||
|
"master_key": "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
|
"seq": 1,
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```json
|
||||||
|
Loading: "/etc/rippled.cfg"
|
||||||
|
Connecting to 127.0.0.1:5005
|
||||||
|
|
||||||
|
{
|
||||||
|
"result" : {
|
||||||
|
"domain" : "mduo13.com",
|
||||||
|
"ephemeral_key" : "n9KnrcCmL5psyKtk2KWP6jy14Hj4EXuZDg7XMdQJ9cSDoFSp53hu",
|
||||||
|
"manifest" : "JAAAAAFxIe002KClGBUlRA7h5J2Y5B7Xdlxn1Z5OxY7ZC2UmqUIikHMhAkVIeB7McBf4NFsBceQQlScTVUWMdpYzwmvs115SUGDKdkcwRQIhAJnKfYWnPsBsATIIRfgkAAK+HE4zp8G8AmOPrHmLZpZAAiANiNECVQTKktoD7BEoEmS8jaFBNMgRdcG0dttPurCAGXcKbWR1bzEzLmNvbXASQPjO6wxOfhtWsJ6oMWBg8Rs5STAGvQV2ArI5MG3KbpFrNSMxbx630Ars9d9j1ORsUS5v1biZRShZfg9180JuZAo=",
|
||||||
|
"master_key" : "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
|
"seq" : 1,
|
||||||
|
"status" : "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
|
The response follows the [standard format][], with a successful result containing the following fields:
|
||||||
|
|
||||||
|
| `Field` | Type | Description |
|
||||||
|
|:--------|:-------|:----------------------------------------------------------|
|
||||||
|
| `domain` | String | _(May be omitted)_ The domain name associated with this validator, if one has been configured.
|
||||||
|
| `ephemeral_key` | String | _(May be omitted)_ The public key of the ephemeral key pair this server uses to sign validation messages, in [base58][]. This key changes if the validator's configured token changes. |
|
||||||
|
| `manifest` | String | _(May be omitted)_ The public "manifest" corresponding to this validator's configured token, [serialized to binary](serialization.html) and then encoded in base64. This field does not contain any private information. |
|
||||||
|
| `master_key` | String | The public key of this validator's master key pair, in [base58][]. This key uniquely identifies the validator and remains the same if the validator rotates ephemeral keys. If the server is configured using a `[validation_seed]` instead of a `[validator_token]`, this is the only field in the response. |
|
||||||
|
| `seq` | Number | _(May be omitted)_ A sequence number for this validator's configured validation token and settings. This number increases whenever the validator operator updates the validator's token to rotate ephemeral keys or change settings. |
|
||||||
|
|
||||||
|
For more information on validator tokens and key rotation, see the [validator-keys-tool Guide](https://github.com/ripple/validator-keys-tool/blob/master/doc/validator-keys-tool-guide.md).
|
||||||
|
|
||||||
|
|
||||||
|
### Possible Errors
|
||||||
|
|
||||||
|
- Any of the [universal error types][].
|
||||||
|
- `invalidParams` - The server returns this error with `"error_message" : "not a validator"` if the server is not [configured as a validator](run-rippled-as-a-validator.html).
|
||||||
|
|
||||||
|
<!--{# common link defs #}-->
|
||||||
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
@@ -11,7 +11,7 @@ Some example errors:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"status": "error",
|
"status": "error",
|
||||||
@@ -29,8 +29,9 @@ Some example errors:
|
|||||||
|
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
HTTP Status: 200 OK
|
HTTP Status: 200 OK
|
||||||
|
|
||||||
{
|
{
|
||||||
"result": {
|
"result": {
|
||||||
"error": "ledgerIndexMalformed",
|
"error": "ledgerIndexMalformed",
|
||||||
@@ -47,7 +48,7 @@ HTTP Status: 200 OK
|
|||||||
|
|
||||||
*Commandline*
|
*Commandline*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"result": {
|
"result": {
|
||||||
"error": "ledgerIndexMalformed",
|
"error": "ledgerIndexMalformed",
|
||||||
@@ -73,7 +74,8 @@ HTTP Status: 200 OK
|
|||||||
| `status` | String | `"error"` if the request caused an error |
|
| `status` | String | `"error"` if the request caused an error |
|
||||||
| `type` | String | Typically `"response"`, which indicates a successful response to a command. |
|
| `type` | String | Typically `"response"`, which indicates a successful response to a command. |
|
||||||
| `error` | String | A unique code for the type of error that occurred |
|
| `error` | String | A unique code for the type of error that occurred |
|
||||||
| `request` | Object | A copy of the request that prompted this error, in JSON format. **Caution:** If the request contained any account secrets, they are copied here! |
|
| `request` | Object | A copy of the request that prompted this error, in JSON format. **Caution:** If the request contained any secrets, they are copied here! |
|
||||||
|
| `api_version` | Number | _(May be omitted)_ The `api_version` specified in the request, if any. |
|
||||||
|
|
||||||
|
|
||||||
## JSON-RPC Format
|
## JSON-RPC Format
|
||||||
@@ -99,14 +101,15 @@ For other errors that returned with HTTP status code 200 OK, the responses are f
|
|||||||
|
|
||||||
All methods can potentially return any of the following values for the `error` code:
|
All methods can potentially return any of the following values for the `error` code:
|
||||||
|
|
||||||
* `unknownCmd` - The request does not contain a [command](rippled-api.html) that the `rippled` server recognizes.
|
* `amendmentBlocked` - The server is [amendment blocked](amendments.html#amendment-blocked) and needs to be updated to the latest version to stay synced with the XRP Ledger network.
|
||||||
|
- `invalid_API_version` - The server does not support the [API version number](request-formatting.html#api-versioning) from the request.
|
||||||
* `jsonInvalid` - (WebSocket only) The request is not a proper JSON object.
|
* `jsonInvalid` - (WebSocket only) The request is not a proper JSON object.
|
||||||
* JSON-RPC returns a 400 Bad Request HTTP error in this case instead.
|
* JSON-RPC returns a 400 Bad Request HTTP error in this case instead.
|
||||||
* `missingCommand` - (WebSocket only) The request did not specify a `command` field.
|
* `missingCommand` - (WebSocket only) The request did not specify a `command` field.
|
||||||
* JSON-RPC returns a 400 Bad Request HTTP error in this case instead.
|
* JSON-RPC returns a 400 Bad Request HTTP error in this case instead.
|
||||||
* `tooBusy` - The server is under too much load to do this command right now. Generally not returned if you are connected as an admin.
|
|
||||||
* `noNetwork` - The server is having trouble connecting to the rest of the XRP Ledger peer-to-peer network (and is not running in stand-alone mode).
|
|
||||||
* `noCurrent` - The server does not know what the current ledger is, due to high load, network problems, validator failures, incorrect configuration, or some other problem.
|
|
||||||
* `noClosed` - The server does not have a closed ledger, typically because it has not finished starting up.
|
* `noClosed` - The server does not have a closed ledger, typically because it has not finished starting up.
|
||||||
|
* `noCurrent` - The server does not know what the current ledger is, due to high load, network problems, validator failures, incorrect configuration, or some other problem.
|
||||||
|
* `noNetwork` - The server is having trouble connecting to the rest of the XRP Ledger peer-to-peer network (and is not running in stand-alone mode).
|
||||||
|
* `tooBusy` - The server is under too much load to do this command right now. Generally not returned if you are connected as an admin.
|
||||||
|
* `unknownCmd` - The request does not contain a [command](rippled-api.html) that the `rippled` server recognizes.
|
||||||
* `wsTextRequired` - (WebSocket only) The request's [opcode](https://tools.ietf.org/html/rfc6455#section-5.2) is not text.
|
* `wsTextRequired` - (WebSocket only) The request's [opcode](https://tools.ietf.org/html/rfc6455#section-5.2) is not text.
|
||||||
* `amendmentBlocked` - The server is [amendment blocked](amendments.html#amendment-blocked) and needs to be updated to the latest version to stay synced with the XRP Ledger network.
|
|
||||||
|
|||||||
@@ -1,14 +1,62 @@
|
|||||||
# Request Formatting
|
# Request Formatting
|
||||||
|
|
||||||
|
## Example Request
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_START -->
|
||||||
|
|
||||||
|
*WebSocket*
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"command": "account_info",
|
||||||
|
"account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
|
||||||
|
"strict": true,
|
||||||
|
"ledger_index": "validated",
|
||||||
|
"api_version": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*JSON-RPC*
|
||||||
|
|
||||||
|
```json
|
||||||
|
POST http://s1.ripple.com:51234/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"method": "account_info",
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
|
||||||
|
"strict": true,
|
||||||
|
"ledger_index": "validated",
|
||||||
|
"api_version": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```sh
|
||||||
|
rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated strict
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
|
|
||||||
## WebSocket Format
|
## WebSocket Format
|
||||||
|
|
||||||
After you open a WebSocket to the `rippled` server, you can send commands as a [JSON](https://en.wikipedia.org/wiki/JSON) object, with the following attributes:
|
After you open a WebSocket to the `rippled` server, you can send commands as a [JSON](https://en.wikipedia.org/wiki/JSON) object with the following fields:
|
||||||
|
|
||||||
* Put command name in top-level `"command"` field
|
| Field | Type | Description |
|
||||||
* All the relevant parameters for the command are also in the top level
|
|:--------------------|:----------|:-------------------------------------------|
|
||||||
* Optionally include an `"id"` field with an arbitrary value. The response to this request uses the same `"id"` field. This way, even if responses arrive out of order, you know which request prompted which response.
|
| `command` | String | The name of the [API method](public-rippled-methods.html). |
|
||||||
|
| `id` | (Various) | _(Optional)_ A unique value to identify this request. The response to this request uses the same `id` field. This way, even if responses arrive out of order, you know which request prompted which response. |
|
||||||
|
| `api_version` | Number | _(Optional)_ The API version to use. If omitted, use version 1. For details, see [API Versioning](#api-versioning). [New in: rippled 1.5.0][] |
|
||||||
|
| (Method Parameters) | (Various) | Provide any parameters to the method at the top level. |
|
||||||
|
|
||||||
The response comes as a JSON object.
|
See [Response Formatting](response-formatting.html) for the response from the server.
|
||||||
|
|
||||||
## JSON-RPC Format
|
## JSON-RPC Format
|
||||||
|
|
||||||
@@ -18,53 +66,68 @@ Always include a `Content-Type` header with the value `application/json`.
|
|||||||
|
|
||||||
If you plan on making multiple requests, use [Keep-Alives](http://tools.ietf.org/html/rfc7230#section-6.3) so that you do not have to close and re-open the connection in between requests.
|
If you plan on making multiple requests, use [Keep-Alives](http://tools.ietf.org/html/rfc7230#section-6.3) so that you do not have to close and re-open the connection in between requests.
|
||||||
|
|
||||||
Send request body as a [JSON](https://en.wikipedia.org/wiki/JSON) object with the following attributes:
|
Send request body as a [JSON](https://en.wikipedia.org/wiki/JSON) object with the following fields:
|
||||||
|
|
||||||
* Put the command in the top-level `"method"` field
|
|
||||||
* Include a top-level `"params"` field. The contents of this field should be **a one-item array** containing only a nested JSON object with all the parameters for the command.
|
|
||||||
|
|
||||||
The response is also a JSON object.
|
| Field | Type | Description |
|
||||||
|
|:--------------------|:----------|:-------------------------------------------|
|
||||||
|
| `method` | String | The name of the [API method](public-rippled-methods.html). |
|
||||||
|
| `params` | Array | _(Optional)_ A **one-item array** containing a nested JSON object with the parameters to this method. You may omit this field if the method does not require any parameters. |
|
||||||
|
|
||||||
|
The object inside the `params` array can contain the following fields:
|
||||||
|
|
||||||
|
| Field | Type | Description |
|
||||||
|
|:--------------------|:----------|:-------------------------------------------|
|
||||||
|
| `api_version` | Number | _(Optional)_ The API version to use. If omitted, use version 1. For details, see [API Versioning](#api-versioning). [New in: rippled 1.5.0][] |
|
||||||
|
| (Method Parameters) | (Various) | Provide any parameters to the method here. |
|
||||||
|
|
||||||
|
See [Response Formatting](response-formatting.html) for the response from the server.
|
||||||
|
|
||||||
## Commandline Format
|
## Commandline Format
|
||||||
|
|
||||||
The commandline puts the command after any normal (dash-prefaced) commandline options, followed by a limited set of parameters, separated by spaces. For any parameter values that might contain spaces or other unusual characters, use single-quotes to encapsulate them.
|
Put the API method name after any normal (dash-prefaced) commandline options, followed by a limited set of parameters, separated by spaces. For any parameter values that might contain spaces or other unusual characters, use single-quotes to encapsulate them. Not all methods have commandline API syntax. For more information, see [Commandline Usage](https://xrpl.org/commandline-usage.html#client-mode-options).
|
||||||
|
|
||||||
### Example Request
|
The commandline calls JSON-RPC, so its responses always match the JSON-RPC [response format](response-formatting.html).
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_START -->
|
The commandline always uses the latest [API version](#api-versioning).
|
||||||
|
|
||||||
*WebSocket*
|
**Caution:** The commandline interface is intended for administrative purposes only and is _not a supported API_. New versions of `rippled` may introduce breaking changes to the commandline API without warning!
|
||||||
|
|
||||||
```
|
## API Versioning
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"command": "account_info",
|
|
||||||
"account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
|
|
||||||
"strict": true,
|
|
||||||
"ledger_index": "validated"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
*JSON-RPC*
|
The `rippled` server uses a single integer to identify the API version to use. The first API version is `1`; currently, this is the only version of the `rippled` API. (There is no API version 0.) [New in: rippled 1.5.0][]
|
||||||
|
|
||||||
```
|
Future versions of `rippled` that introduce breaking changes will introduce a new API version number, such as `2`. The server will support a range of API versions, which it reports in the `version` API method. <!-- TODO: add a link when `version` method is documented. --> <!-- Uncomment when multiple API versions exist: Separate API requests can use different API versions even on the same persistent connection. For example, if you connect WebSocket to a server that supports API versions 1 and 2, you can make a server_info request using API version 2 and then make another server_info request using API version 1 from the same connection. -->
|
||||||
POST http://s1.ripple.com:51234/
|
|
||||||
{
|
|
||||||
"method": "account_info",
|
|
||||||
"params": [
|
|
||||||
{
|
|
||||||
"account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
|
|
||||||
"strict": true,
|
|
||||||
"ledger_index": "validated"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
*Commandline*
|
### Breaking Changes
|
||||||
|
|
||||||
```
|
The following types of changes are **breaking changes**:
|
||||||
rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated true
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_END -->
|
- Removing or renaming a field of a request or response.
|
||||||
|
- Changing the type of a field of a request or response.
|
||||||
|
- Changing the meaning of a field of a request or a response.
|
||||||
|
- Changing the order of positional parameters, or adding a new field before other positional parameters.
|
||||||
|
- Removing or renaming an API method.
|
||||||
|
- Changing the behavior of an API function visible to existing clients.
|
||||||
|
- The following types of breaking changes only apply to the gRPC API:
|
||||||
|
- Changing a `proto` field number.
|
||||||
|
- Removing or renaming an enum or enum value.
|
||||||
|
- Adding or removing fields from a `oneof`.
|
||||||
|
- Splitting or merging a `oneof`.
|
||||||
|
- Changing whether a message field is `optional`, `repeated`, or `required`.
|
||||||
|
- Changing the stream value of a request or response.
|
||||||
|
- Deleting or renaming a package or service.
|
||||||
|
|
||||||
|
Any time a full release introduces a breaking change, it introduces a new API version number. Pre-release, beta, and development versions may introduce breaking changes to the same API version number.
|
||||||
|
|
||||||
|
### Non-Breaking Changes
|
||||||
|
|
||||||
|
The following types of changes are **non-breaking changes** and may occur without a change of API version number:
|
||||||
|
|
||||||
|
- Adding a new field to a request or response, not including positional parameters.
|
||||||
|
- Adding a new API method.
|
||||||
|
|
||||||
|
<!--{# common link defs #}-->
|
||||||
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ The fields of a successful response include:
|
|||||||
| `type` | String | (WebSocket only) The value `response` indicates a successful response to a command. [Asynchronous notifications](subscribe.html) use a different value such as `ledgerClosed` or `transaction`. |
|
| `type` | String | (WebSocket only) The value `response` indicates a successful response to a command. [Asynchronous notifications](subscribe.html) use a different value such as `ledgerClosed` or `transaction`. |
|
||||||
| `result` | Object | The result of the query; contents vary depending on the command. |
|
| `result` | Object | The result of the query; contents vary depending on the command. |
|
||||||
| `warning` | String | _(May be omitted)_ If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.html) threshold where the server will disconnect this client. |
|
| `warning` | String | _(May be omitted)_ If this field is provided, the value is the string `load`. This means the client is approaching the [rate limiting](rate-limiting.html) threshold where the server will disconnect this client. |
|
||||||
|
| `warnings` | Array | _(May be omitted)_ If this field is provided, it contains one or more **Warnings Objects** with important warnings. For details, see [API Warnings](#api-warnings). [New in: rippled 1.5.0][] |
|
||||||
|
|
||||||
|
|
||||||
## Example Successful Response
|
## Example Successful Response
|
||||||
@@ -20,7 +21,7 @@ The fields of a successful response include:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"status": "success",
|
"status": "success",
|
||||||
@@ -44,8 +45,9 @@ The fields of a successful response include:
|
|||||||
|
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
HTTP Status: 200 OK
|
HTTP Status: 200 OK
|
||||||
|
|
||||||
{
|
{
|
||||||
"result": {
|
"result": {
|
||||||
"account_data": {
|
"account_data": {
|
||||||
@@ -66,7 +68,7 @@ HTTP Status: 200 OK
|
|||||||
```
|
```
|
||||||
*Commandline*
|
*Commandline*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"result": {
|
"result": {
|
||||||
"account_data": {
|
"account_data": {
|
||||||
@@ -87,3 +89,84 @@ HTTP Status: 200 OK
|
|||||||
```
|
```
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_END -->
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
|
|
||||||
|
## API Warnings
|
||||||
|
|
||||||
|
When the response contains a `warnings` array, each member of the array represents a separate warning from the server. Each such **Warning Object** contains the following fields:
|
||||||
|
|
||||||
|
| `Field` | Type | Description |
|
||||||
|
|:----------|:-------|:--------------------------------------------------------|
|
||||||
|
| `id` | Number | A unique numeric code for this warning message. |
|
||||||
|
| `message` | String | A human-readable string describing the cause of this message. Do not write software that relies the contents of this message; use the `id` (and `details`, if applicable) to identify the warning instead. |
|
||||||
|
| `details` | Object | _(May be omitted)_ Additional information about this warning. The contents vary depending on the type of warning. |
|
||||||
|
|
||||||
|
The following reference describes all possible warnings.
|
||||||
|
|
||||||
|
### 1001. Unsupported amendments have reached majority
|
||||||
|
|
||||||
|
Example warning:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"warnings" : [
|
||||||
|
{
|
||||||
|
"details" : {
|
||||||
|
"expected_date" : 864030,
|
||||||
|
"expected_date_UTC" : "2000-Jan-11 00:00:30.0000000 UTC"
|
||||||
|
},
|
||||||
|
"id" : 1001,
|
||||||
|
"message" : "One or more unsupported amendments have reached majority. Upgrade to the latest version before they are activated to avoid being amendment blocked."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
This warning indicates that the one or more [amendments](amendments.html) to the XRP Ledger protocol are scheduled to become enabled, but the current server does not have an implementation for those amendments. If those amendments become enabled, the current server will become [amendment blocked](amendments.html#amendment-blocked), so you should [upgrade to the latest `rippled` version](install-rippled.html) as soon as possible.
|
||||||
|
|
||||||
|
The server only sends this warning if the client is [connected as an admin](get-started-with-the-rippled-api.html#admin-access).
|
||||||
|
|
||||||
|
This warning includes a `details` field with the following fields:
|
||||||
|
|
||||||
|
| Field | Value | Description |
|
||||||
|
|:--------------------|:-------|:----------------------------------------------|
|
||||||
|
| `expected_date` | Number | The time that the first unsupported amendment is expected to become enabled, in [seconds since the Ripple Epoch][]. |
|
||||||
|
| `expected_date_UTC` | String | The timestamp, in UTC, when the first unsupported amendment is expected to become enabled. |
|
||||||
|
|
||||||
|
Due to the variation in ledger close times, these times are approximate. It is also possible that the amendment fails to maintain support from >80% of validators until the specified time, and does not become enabled at the expected time. The server will not become amendment blocked so long as the unsupported amendments do not become enabled.
|
||||||
|
|
||||||
|
|
||||||
|
### 1002. This server is amendment blocked
|
||||||
|
|
||||||
|
Example warning:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"warnings" : [
|
||||||
|
{
|
||||||
|
"id" : 1002,
|
||||||
|
"message" : "This server is amendment blocked, and must be updated to be able to stay in sync with the network."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
This warning indicates that the server is [amendment blocked](amendments.html#amendment-blocked) and can no longer remain synced with the XRP Ledger.
|
||||||
|
|
||||||
|
The server administrator must [upgrade `rippled`](install-rippled.html) to a version that supports the activated amendments.
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- **Concepts:**
|
||||||
|
- [The `rippled` Server](the-rippled-server.html)
|
||||||
|
- [Introduction to Consensus](intro-to-consensus.html)
|
||||||
|
- [Amendments](amendments.html)
|
||||||
|
- [Known Amendments](known-amendments.html)
|
||||||
|
- **Tutorials:**
|
||||||
|
- [Get Started with XRP Ledger APIs](get-started-with-the-rippled-api.html)
|
||||||
|
- [Install and Update `rippled`](install-rippled.html)
|
||||||
|
- **References:**
|
||||||
|
- [feature method][]
|
||||||
|
- [server_info method][]
|
||||||
|
|
||||||
|
|
||||||
|
<!--{# common link defs #}-->
|
||||||
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# account_channels
|
# account_channels
|
||||||
[[Source]](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/AccountChannels.cpp "Source")
|
[[Source]](https://github.com/ripple/rippled/blob/release/src/ripple/rpc/handlers/AccountChannels.cpp "Source")
|
||||||
|
|
||||||
_(Requires the [PayChan amendment][] to be enabled. [New in: rippled 0.33.0][])_
|
_(Added by the [PayChan amendment][]. [New in: rippled 0.33.0][])_
|
||||||
|
|
||||||
The `account_channels` method returns information about an account's Payment Channels. This includes only channels where the specified account is the channel's source, not the destination. (A channel's "source" and "owner" are the same.) All information retrieved is relative to a particular version of the ledger.
|
The `account_channels` method returns information about an account's Payment Channels. This includes only channels where the specified account is the channel's source, not the destination. (A channel's "source" and "owner" are the same.) All information retrieved is relative to a particular version of the ledger.
|
||||||
|
|
||||||
@@ -47,13 +47,13 @@ rippled account_channels rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH rf1BiGeXwwQoi8Z2ueFY
|
|||||||
The request includes the following parameters:
|
The request includes the following parameters:
|
||||||
|
|
||||||
| Field | Type | Description |
|
| Field | Type | Description |
|
||||||
|:----------------------|:-------------------------------------------|:--------|
|
|:----------------------|:---------------------------|:------------------------|
|
||||||
| `account` | String | The unique identifier of an account, typically the account's [Address][]. The request returns channels where this account is the channel's owner/source. |
|
| `account` | String | The unique identifier of an account, typically the account's [Address][]. The request returns channels where this account is the channel's owner/source. |
|
||||||
| `destination_account` | String | _(Optional)_ The unique identifier of an account, typically the account's [Address][]. If provided, filter results to payment channels whose destination is this account. |
|
| `destination_account` | String | _(Optional)_ The unique identifier of an account, typically the account's [Address][]. If provided, filter results to payment channels whose destination is this account. |
|
||||||
| `ledger_hash` | String | _(Optional)_ A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) |
|
| `ledger_hash` | String | _(Optional)_ A 20-byte hex string for the ledger version to use. (See [Specifying Ledgers][]) |
|
||||||
| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) |
|
| `ledger_index` | String or Unsigned Integer | _(Optional)_ The [ledger index][] of the ledger to use, or a shortcut string to choose a ledger automatically. (See [Specifying Ledgers][]) |
|
||||||
| `limit` | Integer | _(Optional)_ Limit the number of transactions to retrieve. The server is not required to honor this value. Must be within the inclusive range 10 to 400. Defaults to 200. |
|
| `limit` | Integer | _(Optional)_ Limit the number of transactions to retrieve. Cannot be less than 10 or more than 400. The default is 200. |
|
||||||
| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. |
|
| `marker` | [Marker][] | _(Optional)_ Value from a previous paginated response. Resume retrieving data where that response left off. [Updated in: rippled 1.5.0][] |
|
||||||
|
|
||||||
## Response Format
|
## Response Format
|
||||||
|
|
||||||
@@ -150,9 +150,9 @@ An example of a successful response:
|
|||||||
The response follows the [standard format][], with a successful result containing the following fields:
|
The response follows the [standard format][], with a successful result containing the following fields:
|
||||||
|
|
||||||
| Field | Type | Description |
|
| Field | Type | Description |
|
||||||
|:-----------|:-------------------------------------------|:-------------------|
|
|:---------------|:-------------------------|:---------------------------------|
|
||||||
| `account` | String | The address of the source/owner of the payment channels. This corresponds to the `account` field of the request. |
|
| `account` | String | The address of the source/owner of the payment channels. This corresponds to the `account` field of the request. |
|
||||||
| `channels` | Array of Channel Objects | Payment channels owned by this `account`. |
|
| `channels` | Array of Channel Objects | Payment channels owned by this `account`. [Updated in: rippled 1.5.0][] |
|
||||||
| `ledger_hash` | String | The identifying [Hash][] of the ledger version used to generate this response. [New in: rippled 0.90.0][] |
|
| `ledger_hash` | String | The identifying [Hash][] of the ledger version used to generate this response. [New in: rippled 0.90.0][] |
|
||||||
| `ledger_index` | Number | The [Ledger Index][] of the ledger version used to generate this response. [New in: rippled 0.90.0][] |
|
| `ledger_index` | Number | The [Ledger Index][] of the ledger version used to generate this response. [New in: rippled 0.90.0][] |
|
||||||
| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. [New in: rippled 0.90.0][] |
|
| `validated` | Boolean | _(May be omitted)_ If `true`, the information in this response comes from a validated ledger version. Otherwise, the information is subject to change. [New in: rippled 0.90.0][] |
|
||||||
@@ -162,15 +162,15 @@ The response follows the [standard format][], with a successful result containin
|
|||||||
Each Channel Object has the following fields:
|
Each Channel Object has the following fields:
|
||||||
|
|
||||||
| Field | Type | Description |
|
| Field | Type | Description |
|
||||||
|-------|------|-------------|
|
|:----------------------|:-----------------|:----------------------------------|
|
||||||
| `account` | String | The owner of the channel, as an [Address][]. |
|
| `account` | String | The owner of the channel, as an [Address][]. |
|
||||||
| `amount` | String | The total amount of [XRP, in drops][] allocated to this channel. |
|
| `amount` | String | The total amount of [XRP, in drops][] allocated to this channel. |
|
||||||
| `balance` | String | The total amount of [XRP, in drops][], paid out from this channel, as of the ledger version used. (You can calculate the amount of XRP left in the channel by subtracting `balance` from `amount`.) |
|
| `balance` | String | The total amount of [XRP, in drops][], paid out from this channel, as of the ledger version used. (You can calculate the amount of XRP left in the channel by subtracting `balance` from `amount`.) |
|
||||||
| `channel_id` | String | A unique ID for this channel, as a 64-character hexadecimal string. This is also the [ID of the channel object](paychannel.html#paychannel-id-format) in the ledger's state data. |
|
| `channel_id` | String | A unique ID for this channel, as a 64-character hexadecimal string. This is also the [ID of the channel object](paychannel.html#paychannel-id-format) in the ledger's state data. |
|
||||||
| `destination_account` | String | the destination account of the channel, as an [Address][]. Only this account can receive the XRP in the channel while it is open. |
|
| `destination_account` | String | The destination account of the channel, as an [Address][]. Only this account can receive the XRP in the channel while it is open. |
|
||||||
|
| `settle_delay` | Unsigned Integer | The number of seconds the payment channel must stay open after the owner of the channel requests to close it. |
|
||||||
| `public_key` | String | _(May be omitted)_ The public key for the payment channel in the XRP Ledger's [base58][] format. Signed claims against this channel must be redeemed with the matching key pair. |
|
| `public_key` | String | _(May be omitted)_ The public key for the payment channel in the XRP Ledger's [base58][] format. Signed claims against this channel must be redeemed with the matching key pair. |
|
||||||
| `public_key_hex` | String | _(May be omitted)_ The public key for the payment channel in hexadecimal format, if one was specified at channel creation. Signed claims against this channel must be redeemed with the matching key pair. |
|
| `public_key_hex` | String | _(May be omitted)_ The public key for the payment channel in hexadecimal format, if one was specified at channel creation. Signed claims against this channel must be redeemed with the matching key pair. |
|
||||||
| `settle_delay` | Unsigned Integer | The number of seconds the payment channel must stay open after the owner of the channel requests to close it. |
|
|
||||||
| `expiration` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], when this channel is set to expire. This expiration date is mutable. If this is before the close time of the most recent validated ledger, the channel is expired. |
|
| `expiration` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], when this channel is set to expire. This expiration date is mutable. If this is before the close time of the most recent validated ledger, the channel is expired. |
|
||||||
| `cancel_after` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], of this channel's immutable expiration, if one was specified at channel creation. If this is before the close time of the most recent validated ledger, the channel is expired. |
|
| `cancel_after` | Unsigned Integer | _(May be omitted)_ Time, in [seconds since the Ripple Epoch][], of this channel's immutable expiration, if one was specified at channel creation. If this is before the close time of the most recent validated ledger, the channel is expired. |
|
||||||
| `source_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [source tag](become-an-xrp-ledger-gateway.html#source-and-destination-tags) for payments through this payment channel, if one was specified at channel creation. This indicates the payment channel's originator or other purpose at the source account. Conventionally, if you bounce payments from this channel, you should specify this value in the `DestinationTag` of the return payment. |
|
| `source_tag` | Unsigned Integer | _(May be omitted)_ A 32-bit unsigned integer to use as a [source tag](become-an-xrp-ledger-gateway.html#source-and-destination-tags) for payments through this payment channel, if one was specified at channel creation. This indicates the payment channel's originator or other purpose at the source account. Conventionally, if you bounce payments from this channel, you should specify this value in the `DestinationTag` of the return payment. |
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ Each offer object contains the following fields:
|
|||||||
* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing.
|
* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing.
|
||||||
* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger.
|
* `actNotFound` - The [Address][] specified in the `account` field of the request does not correspond to an account in the ledger.
|
||||||
* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it.
|
* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it.
|
||||||
* `actMalformed` - If the `marker` field provided is not acceptable.
|
* `actMalformed` - The `marker` field provided is incorrect.
|
||||||
|
|
||||||
|
|
||||||
{% include '_snippets/rippled_versions.md' %}
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -590,7 +590,7 @@ Each transaction object includes the following fields, depending on whether it w
|
|||||||
* `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly.
|
* `actMalformed` - The [Address][] specified in the `account` field of the request is not formatted properly.
|
||||||
* `actBitcoin` - The [Address][] specified in the `account` field is formatted like a Bitcoin address instead of a XRP Ledger address.
|
* `actBitcoin` - The [Address][] specified in the `account` field is formatted like a Bitcoin address instead of a XRP Ledger address.
|
||||||
* `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist but the server does not have it.
|
* `lgrIdxMalformed` - The ledger specified by the `ledger_index_min` or `ledger_index_max` does not exist, or if it does exist but the server does not have it.
|
||||||
* `lgrIdxsInvalid` - Either the request specified a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is not [synced with the network](troubleshoot-the-rippled-server.html). <!-- TODO: link more specific docs when https://github.com/ripple/xrpl-dev-portal/issues/714 is done. -->
|
* `lgrIdxsInvalid` - Either the request specifies a `ledger_index_max` that is before the `ledger_index_min`, or the server does not have a validated ledger range because it is [not synced with the network](server-doesnt-sync.html).
|
||||||
|
|
||||||
|
|
||||||
{% include '_snippets/rippled_versions.md' %}
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ An example of the request format:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 14,
|
"id": 14,
|
||||||
"command": "ledger",
|
"command": "ledger",
|
||||||
@@ -25,7 +25,7 @@ An example of the request format:
|
|||||||
|
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"method": "ledger",
|
"method": "ledger",
|
||||||
"params": [
|
"params": [
|
||||||
@@ -47,7 +47,7 @@ An example of the request format:
|
|||||||
#Syntax: ledger ledger_index|ledger_hash [full|tx]
|
#Syntax: ledger ledger_index|ledger_hash [full|tx]
|
||||||
# "full" is equivalent to "full": true
|
# "full" is equivalent to "full": true
|
||||||
# "tx" is equivalent to "transactions": true
|
# "tx" is equivalent to "transactions": true
|
||||||
rippled ledger current
|
rippled ledger validated
|
||||||
```
|
```
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_END -->
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
@@ -78,69 +78,104 @@ An example of a successful response:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 14,
|
||||||
"status": "success",
|
|
||||||
"type": "response",
|
|
||||||
"result": {
|
"result": {
|
||||||
"ledger": {
|
"ledger": {
|
||||||
"accepted": true,
|
"accepted": true,
|
||||||
"account_hash": "FD2709F6C07284C3EE85EDE32AC452D9013A89D9B9E781D67D9784457E86A9BB",
|
"account_hash": "53BD4650A024E27DEB52DBB6A52EDB26528B987EC61C895C48D1EB44CEDD9AD3",
|
||||||
"close_flags": 0,
|
"close_flags": 0,
|
||||||
"close_time": 508541181,
|
"close_time": 638329241,
|
||||||
"close_time_human": "2016-Feb-11 21:26:21",
|
"close_time_human": "2020-Mar-24 01:40:41.000000000 UTC",
|
||||||
"close_time_resolution": 10,
|
"close_time_resolution": 10,
|
||||||
"closed": true,
|
"closed": true,
|
||||||
"hash": "F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E",
|
"hash": "1723099E269C77C4BDE86C83FA6415D71CF20AA5CB4A94E5C388ED97123FB55B",
|
||||||
"ledger_hash": "F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E",
|
"ledger_hash": "1723099E269C77C4BDE86C83FA6415D71CF20AA5CB4A94E5C388ED97123FB55B",
|
||||||
"ledger_index": "18851530",
|
"ledger_index": "54300932",
|
||||||
"parent_close_time": 508541180,
|
"parent_close_time": 638329240,
|
||||||
"parent_hash": "8300B70AA5A865961DED7DAC5B88047028762D5946ECA887D09D32DE442E2305",
|
"parent_hash": "DF68B3BCABD31097634BABF0BDC87932D43D26E458BFEEFD36ADF2B3D94998C0",
|
||||||
"seqNum": "18851530",
|
"seqNum": "54300932",
|
||||||
"totalCoins": "99998102799411646",
|
"totalCoins": "99991024049648900",
|
||||||
"total_coins": "99998102799411646",
|
"total_coins": "99991024049648900",
|
||||||
"transaction_hash": "E0DB0471A1D198611E1C050ADA4AE74EEB38CEC26E0550663E0FCB1364212A3B"
|
"transaction_hash": "50B3A8FE2C5620E43AA57564209AEDFEA3E868CFA2F6E4AB4B9E55A7A62AAF7B"
|
||||||
},
|
},
|
||||||
"ledger_hash": "F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E",
|
"ledger_hash": "1723099E269C77C4BDE86C83FA6415D71CF20AA5CB4A94E5C388ED97123FB55B",
|
||||||
"ledger_index": 18851530,
|
"ledger_index": 54300932,
|
||||||
"validated": true
|
"validated": true
|
||||||
}
|
},
|
||||||
|
"status": "success",
|
||||||
|
"type": "response"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
200 OK
|
200 OK
|
||||||
|
|
||||||
{
|
{
|
||||||
"result": {
|
"result": {
|
||||||
"ledger": {
|
"ledger": {
|
||||||
"accepted": true,
|
"accepted": true,
|
||||||
"account_hash": "B089E7CD4F5167249951611AAEC863D4BF84FF098500E9CB50561F1A89EED825",
|
"account_hash": "B258A8BB4743FB74CBBD6E9F67E4A56C4432EA09E5805E4CC2DA26F2DBE8F3D1",
|
||||||
"close_flags": 0,
|
"close_flags": 0,
|
||||||
"close_time": 508541222,
|
"close_time": 638329271,
|
||||||
"close_time_human": "2016-Feb-11 21:27:02",
|
"close_time_human": "2020-Mar-24 01:41:11.000000000 UTC",
|
||||||
"close_time_resolution": 10,
|
"close_time_resolution": 10,
|
||||||
"closed": true,
|
"closed": true,
|
||||||
"hash": "85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157",
|
"hash": "3652D7FD0576BC452C0D2E9B747BDD733075971D1A9A1D98125055DEF428721A",
|
||||||
"ledger_hash": "85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157",
|
"ledger_hash": "3652D7FD0576BC452C0D2E9B747BDD733075971D1A9A1D98125055DEF428721A",
|
||||||
"ledger_index": "18851543",
|
"ledger_index": "54300940",
|
||||||
"parent_close_time": 508541221,
|
"parent_close_time": 638329270,
|
||||||
"parent_hash": "C382DB117F2D5AAECFBFB43EA509F8E56D6E1D1297CE00C0D02A3EE695ABB78F",
|
"parent_hash": "AE996778246BC81F85D5AF051241DAA577C23BCA04C034A7074F93700194520D",
|
||||||
"seqNum": "18851543",
|
"seqNum": "54300940",
|
||||||
"totalCoins": "99998102795090646",
|
"totalCoins": "99991024049618156",
|
||||||
"total_coins": "99998102795090646",
|
"total_coins": "99991024049618156",
|
||||||
"transaction_hash": "BEC71A3CAD11BFC4E4013CD109F220E0850E9A3808B15FAA6DAE4D898970EFAF"
|
"transaction_hash": "FC6FFCB71B2527DDD630EE5409D38913B4D4C026AA6C3B14A3E9D4ED45CFE30D"
|
||||||
},
|
},
|
||||||
"ledger_hash": "85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157",
|
"ledger_hash": "3652D7FD0576BC452C0D2E9B747BDD733075971D1A9A1D98125055DEF428721A",
|
||||||
"ledger_index": 18851543,
|
"ledger_index": 54300940,
|
||||||
"status": "success",
|
"status": "success",
|
||||||
"validated": true
|
"validated": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```json
|
||||||
|
Loading: "/etc/opt/ripple/rippled.cfg"
|
||||||
|
2020-Mar-24 01:42:42.622264591 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005
|
||||||
|
|
||||||
|
{
|
||||||
|
"result" : {
|
||||||
|
"ledger" : {
|
||||||
|
"accepted" : true,
|
||||||
|
"account_hash" : "6B3101BE8F1431C5AC5B43D9731F1F3A747D24B3BEF89B687F0F3039E10EB65A",
|
||||||
|
"close_flags" : 0,
|
||||||
|
"close_time" : 638329360,
|
||||||
|
"close_time_human" : "2020-Mar-24 01:42:40.000000000 UTC",
|
||||||
|
"close_time_resolution" : 10,
|
||||||
|
"closed" : true,
|
||||||
|
"hash" : "C88A0EEC0E785A4C3E99F2A8B8EE0D7BDF3DE6C786C39B1B01547F6DAE5A4B7F",
|
||||||
|
"ledger_hash" : "C88A0EEC0E785A4C3E99F2A8B8EE0D7BDF3DE6C786C39B1B01547F6DAE5A4B7F",
|
||||||
|
"ledger_index" : "54300962",
|
||||||
|
"parent_close_time" : 638329352,
|
||||||
|
"parent_hash" : "96D2D70DC540BA4614A00C77FCFDED20E7D58AF3238E36655C38C407A56982A3",
|
||||||
|
"seqNum" : "54300962",
|
||||||
|
"totalCoins" : "99991024049218063",
|
||||||
|
"total_coins" : "99991024049218063",
|
||||||
|
"transaction_hash" : "47AC79011652D2A56AE04D3DD618C60A6669E3F94308C803554E890D2BD94481"
|
||||||
|
},
|
||||||
|
"ledger_hash" : "C88A0EEC0E785A4C3E99F2A8B8EE0D7BDF3DE6C786C39B1B01547F6DAE5A4B7F",
|
||||||
|
"ledger_index" : 54300962,
|
||||||
|
"status" : "success",
|
||||||
|
"validated" : true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_END -->
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
The response follows the [standard format][], with a successful result containing information about the ledger, including the following fields:
|
The response follows the [standard format][], with a successful result containing information about the ledger, including the following fields:
|
||||||
@@ -152,7 +187,7 @@ The response follows the [standard format][], with a successful result containin
|
|||||||
| `ledger.accountState` | Array | (Omitted unless requested) All the [account-state information](ledger-data-formats.html) in this ledger. |
|
| `ledger.accountState` | Array | (Omitted unless requested) All the [account-state information](ledger-data-formats.html) in this ledger. |
|
||||||
| `ledger.close_flags` | Integer | A bit-map of flags relating to the closing of this ledger. Currently, the ledger has only one flag defined for `close_flags`: **sLCF_NoConsensusTime** (value 1). If this flag is enabled, it means that validators were in conflict regarding the correct close time for the ledger, but build otherwise the same ledger, so they declared consensus while "agreeing to disagree" on the close time. In this case, the consensus ledger contains a `close_time` that is 1 second after that of the previous ledger. (In this case, there is no official close time, but the actual real-world close time is probably 3-6 seconds later than the specified `close_time`.) |
|
| `ledger.close_flags` | Integer | A bit-map of flags relating to the closing of this ledger. Currently, the ledger has only one flag defined for `close_flags`: **sLCF_NoConsensusTime** (value 1). If this flag is enabled, it means that validators were in conflict regarding the correct close time for the ledger, but build otherwise the same ledger, so they declared consensus while "agreeing to disagree" on the close time. In this case, the consensus ledger contains a `close_time` that is 1 second after that of the previous ledger. (In this case, there is no official close time, but the actual real-world close time is probably 3-6 seconds later than the specified `close_time`.) |
|
||||||
| `ledger.close_time` | Integer | The time this ledger was closed, in [seconds since the Ripple Epoch][] |
|
| `ledger.close_time` | Integer | The time this ledger was closed, in [seconds since the Ripple Epoch][] |
|
||||||
| `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format |
|
| `ledger.close_time_human` | String | The time this ledger was closed, in human-readable format. Always uses the UTC time zone. [Updated in: rippled 1.5.0][] |
|
||||||
| `ledger.close_time_resolution` | Integer | Ledger close times are rounded to within this many seconds. |
|
| `ledger.close_time_resolution` | Integer | Ledger close times are rounded to within this many seconds. |
|
||||||
| `ledger.closed` | Boolean | Whether or not this ledger has been closed |
|
| `ledger.closed` | Boolean | Whether or not this ledger has been closed |
|
||||||
| `ledger.ledger_hash` | String | Unique identifying hash of the entire ledger. |
|
| `ledger.ledger_hash` | String | Unique identifying hash of the entire ledger. |
|
||||||
|
|||||||
@@ -49,225 +49,431 @@ An example of a successful response:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"status": "success",
|
|
||||||
"type": "response",
|
|
||||||
"result": {
|
"result": {
|
||||||
"info": {
|
"info": {
|
||||||
"build_version": "0.30.1-rc3",
|
"build_version": "1.5.0-rc1",
|
||||||
"complete_ledgers": "18611104-18614732",
|
"complete_ledgers": "54300020-54300717",
|
||||||
"hostid": "trace",
|
"hostid": "trace",
|
||||||
"io_latency_ms": 1,
|
"io_latency_ms": 1,
|
||||||
|
"jq_trans_overflow": "0",
|
||||||
"last_close": {
|
"last_close": {
|
||||||
"converge_time_s": 4.003,
|
"converge_time_s": 2.001,
|
||||||
"proposers": 5
|
"proposers": 34
|
||||||
},
|
},
|
||||||
"load": {
|
"load": {
|
||||||
"job_types": [
|
"job_types": [
|
||||||
{
|
{
|
||||||
"job_type": "untrustedProposal",
|
"job_type": "untrustedProposal",
|
||||||
"per_second": 2
|
"peak_time": 9,
|
||||||
|
"per_second": 46
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time": 14,
|
||||||
|
"job_type": "ledgerData",
|
||||||
|
"peak_time": 273,
|
||||||
|
"per_second": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"in_progress": 1,
|
"in_progress": 1,
|
||||||
"job_type": "clientCommand"
|
"job_type": "clientCommand",
|
||||||
|
"per_second": 8
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type": "transaction",
|
"job_type": "transaction",
|
||||||
"per_second": 4
|
"per_second": 8
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type": "batch",
|
"job_type": "batch",
|
||||||
"per_second": 3
|
"peak_time": 2,
|
||||||
|
"per_second": 7
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type": "writeObjects",
|
"avg_time": 9,
|
||||||
|
"job_type": "advanceLedger",
|
||||||
|
"peak_time": 134,
|
||||||
"per_second": 2
|
"per_second": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type": "trustedProposal",
|
"job_type": "fetchTxnData",
|
||||||
"per_second": 1
|
"per_second": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type": "peerCommand",
|
"avg_time": 9,
|
||||||
"per_second": 108
|
"job_type": "trustedValidation",
|
||||||
},
|
"peak_time": 95,
|
||||||
{
|
|
||||||
"job_type": "diskAccess",
|
|
||||||
"per_second": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"job_type": "processTransaction",
|
|
||||||
"per_second": 4
|
"per_second": 4
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"job_type": "trustedProposal",
|
||||||
|
"peak_time": 8,
|
||||||
|
"per_second": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "peerCommand",
|
||||||
|
"per_second": 1490
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "processTransaction",
|
||||||
|
"per_second": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "SyncReadNode",
|
||||||
|
"peak_time": 8,
|
||||||
|
"per_second": 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "AsyncReadNode",
|
||||||
|
"peak_time": 18,
|
||||||
|
"per_second": 478
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"job_type": "WriteNode",
|
"job_type": "WriteNode",
|
||||||
"per_second": 63
|
"peak_time": 16,
|
||||||
|
"per_second": 416
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"threads": 6
|
"threads": 6
|
||||||
},
|
},
|
||||||
"load_factor": 1000,
|
"load_factor": 1,
|
||||||
"load_factor_net": 1000,
|
"peer_disconnects": "57",
|
||||||
"peers": 10,
|
"peer_disconnects_resources": "1",
|
||||||
"pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa",
|
"peers": 20,
|
||||||
"pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
|
"pubkey_node": "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
|
||||||
|
"pubkey_validator": "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
"server_state": "proposing",
|
"server_state": "proposing",
|
||||||
"server_state_duration_us": 92762334,
|
"server_state_duration_us": "1807072679",
|
||||||
"state_accounting": {
|
"state_accounting": {
|
||||||
"connected": {
|
"connected": {
|
||||||
"duration_us": "150510079",
|
"duration_us": "128124609",
|
||||||
"transitions": 1
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"disconnected": {
|
"disconnected": {
|
||||||
"duration_us": "1827731",
|
"duration_us": "2290325",
|
||||||
"transitions": 1
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"full": {
|
"full": {
|
||||||
"duration_us": "166972201508",
|
"duration_us": "1807072679",
|
||||||
"transitions": 1853
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"syncing": {
|
"syncing": {
|
||||||
"duration_us": "6249156726",
|
"duration_us": "3083023",
|
||||||
"transitions": 1854
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"tracking": {
|
"tracking": {
|
||||||
"duration_us": "13035222",
|
"duration_us": "0",
|
||||||
"transitions": 1854
|
"transitions": 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uptime": 173379,
|
"time": "2020-Mar-24 01:26:58.250104 UTC",
|
||||||
|
"uptime": 1940,
|
||||||
"validated_ledger": {
|
"validated_ledger": {
|
||||||
"age": 3,
|
"age": 7,
|
||||||
"base_fee_xrp": 0.00001,
|
"base_fee_xrp": 0.00001,
|
||||||
"hash": "04F7CF4EACC57140C8088F6BFDC8A824BB3ED5717C3DAA6642101F9FB446226C",
|
"hash": "2BA01CA6291E30CE9610EEE2E0A6E9CF12B8914B389509940E9D3B48E0DF008C",
|
||||||
"reserve_base_xrp": 20,
|
"reserve_base_xrp": 20,
|
||||||
"reserve_inc_xrp": 5,
|
"reserve_inc_xrp": 5,
|
||||||
"seq": 18614732
|
"seq": 54300717
|
||||||
},
|
},
|
||||||
"validation_quorum": 4,
|
"validation_quorum": 29,
|
||||||
"validator_list_expires" : "2017-Oct-12 16:06:36"
|
"validator_list": {
|
||||||
|
"count": 1,
|
||||||
|
"expiration": "2020-Apr-10 00:00:00.000000000 UTC",
|
||||||
|
"status": "active"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"status": "success",
|
||||||
|
"type": "response"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
200 OK
|
200 OK
|
||||||
|
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"info": {
|
||||||
|
"build_version": "1.5.0-rc1",
|
||||||
|
"complete_ledgers": "54300020-54300729",
|
||||||
|
"hostid": "trace",
|
||||||
|
"io_latency_ms": 1,
|
||||||
|
"jq_trans_overflow": "0",
|
||||||
|
"last_close": {
|
||||||
|
"converge_time_s": 2,
|
||||||
|
"proposers": 34
|
||||||
|
},
|
||||||
|
"load": {
|
||||||
|
"job_types": [
|
||||||
|
{
|
||||||
|
"job_type": "ledgerRequest",
|
||||||
|
"peak_time": 4,
|
||||||
|
"per_second": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "untrustedProposal",
|
||||||
|
"peak_time": 5,
|
||||||
|
"per_second": 43
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time": 14,
|
||||||
|
"job_type": "ledgerData",
|
||||||
|
"peak_time": 337
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"in_progress": 1,
|
||||||
|
"job_type": "clientCommand",
|
||||||
|
"per_second": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "transaction",
|
||||||
|
"peak_time": 8,
|
||||||
|
"per_second": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "batch",
|
||||||
|
"peak_time": 5,
|
||||||
|
"per_second": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time": 6,
|
||||||
|
"job_type": "advanceLedger",
|
||||||
|
"peak_time": 96
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "fetchTxnData",
|
||||||
|
"per_second": 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "trustedValidation",
|
||||||
|
"peak_time": 5,
|
||||||
|
"per_second": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "trustedProposal",
|
||||||
|
"per_second": 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time": 2,
|
||||||
|
"job_type": "heartbeat",
|
||||||
|
"peak_time": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "peerCommand",
|
||||||
|
"per_second": 1522
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "processTransaction",
|
||||||
|
"per_second": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "SyncReadNode",
|
||||||
|
"peak_time": 9,
|
||||||
|
"per_second": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "AsyncReadNode",
|
||||||
|
"peak_time": 24,
|
||||||
|
"per_second": 106
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "WriteNode",
|
||||||
|
"peak_time": 8,
|
||||||
|
"per_second": 282
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"threads": 6
|
||||||
|
},
|
||||||
|
"load_factor": 1,
|
||||||
|
"peer_disconnects": "58",
|
||||||
|
"peer_disconnects_resources": "1",
|
||||||
|
"peers": 21,
|
||||||
|
"pubkey_node": "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
|
||||||
|
"pubkey_validator": "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
|
"server_state": "proposing",
|
||||||
|
"server_state_duration_us": "1850969666",
|
||||||
|
"state_accounting": {
|
||||||
|
"connected": {
|
||||||
|
"duration_us": "128124609",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"disconnected": {
|
||||||
|
"duration_us": "2290325",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"full": {
|
||||||
|
"duration_us": "1850969666",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"syncing": {
|
||||||
|
"duration_us": "3083023",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"tracking": {
|
||||||
|
"duration_us": "0",
|
||||||
|
"transitions": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"time": "2020-Mar-24 01:27:42.147330 UTC",
|
||||||
|
"uptime": 1984,
|
||||||
|
"validated_ledger": {
|
||||||
|
"age": 2,
|
||||||
|
"base_fee_xrp": 0.00001,
|
||||||
|
"hash": "0D2D30837E05995AAAAA117294BB45AB0699AB1219605FFD23318E050C7166E9",
|
||||||
|
"reserve_base_xrp": 20,
|
||||||
|
"reserve_inc_xrp": 5,
|
||||||
|
"seq": 54300729
|
||||||
|
},
|
||||||
|
"validation_quorum": 29,
|
||||||
|
"validator_list": {
|
||||||
|
"count": 1,
|
||||||
|
"expiration": "2020-Apr-10 00:00:00.000000000 UTC",
|
||||||
|
"status": "active"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```json
|
||||||
|
Loading: "/etc/opt/ripple/rippled.cfg"
|
||||||
|
2020-Mar-24 01:28:22.288484766 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005
|
||||||
|
|
||||||
{
|
{
|
||||||
"result" : {
|
"result" : {
|
||||||
"info" : {
|
"info" : {
|
||||||
"build_version" : "0.33.0-hf1",
|
"build_version" : "1.5.0-rc1",
|
||||||
"complete_ledgers" : "24900901-24900984,24901116-24901158",
|
"complete_ledgers" : "54300020-54300739",
|
||||||
"hostid" : "trace",
|
"hostid" : "trace",
|
||||||
"io_latency_ms" : 1,
|
"io_latency_ms" : 1,
|
||||||
|
"jq_trans_overflow" : "0",
|
||||||
"last_close" : {
|
"last_close" : {
|
||||||
"converge_time_s" : 2.001,
|
"converge_time_s" : 3,
|
||||||
"proposers" : 5
|
"proposers" : 34
|
||||||
},
|
},
|
||||||
"load" : {
|
"load" : {
|
||||||
"job_types" : [
|
"job_types" : [
|
||||||
|
{
|
||||||
|
"job_type" : "untrustedProposal",
|
||||||
|
"per_second" : 36
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 2,
|
||||||
|
"job_type" : "ledgerData",
|
||||||
|
"peak_time" : 50
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"in_progress" : 1,
|
"in_progress" : 1,
|
||||||
"job_type" : "clientCommand"
|
"job_type" : "clientCommand",
|
||||||
|
"per_second" : 8
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type" : "transaction",
|
"job_type" : "transaction",
|
||||||
"per_second" : 6
|
"peak_time" : 1,
|
||||||
|
"per_second" : 8
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type" : "batch",
|
"job_type" : "batch",
|
||||||
|
"peak_time" : 14,
|
||||||
"per_second" : 6
|
"per_second" : 6
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"in_progress" : 1,
|
"avg_time" : 3,
|
||||||
"job_type" : "advanceLedger"
|
"job_type" : "advanceLedger",
|
||||||
},
|
"peak_time" : 48,
|
||||||
{
|
|
||||||
"job_type" : "trustedValidation",
|
|
||||||
"per_second" : 1
|
"per_second" : 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"avg_time" : 77,
|
"job_type" : "fetchTxnData",
|
||||||
"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
|
"per_second" : 4
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "trustedValidation",
|
||||||
|
"peak_time" : 3,
|
||||||
|
"per_second" : 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "trustedProposal",
|
||||||
|
"per_second" : 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "peerCommand",
|
||||||
|
"per_second" : 1312
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "processTransaction",
|
||||||
|
"per_second" : 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "SyncReadNode",
|
||||||
|
"per_second" : 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "AsyncReadNode",
|
||||||
|
"peak_time" : 20,
|
||||||
|
"per_second" : 56
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"job_type" : "WriteNode",
|
"job_type" : "WriteNode",
|
||||||
"per_second" : 235
|
"peak_time" : 3,
|
||||||
|
"per_second" : 183
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"threads" : 6
|
"threads" : 6
|
||||||
},
|
},
|
||||||
"load_factor" : 4.765625,
|
"load_factor" : 1,
|
||||||
"load_factor_local" : 4.765625,
|
"peer_disconnects" : "60",
|
||||||
"peers" : 10,
|
"peer_disconnects_resources" : "1",
|
||||||
"pubkey_node" : "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar",
|
"peers" : 21,
|
||||||
"pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
|
"pubkey_node" : "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
|
||||||
"published_ledger" : 24901158,
|
"pubkey_validator" : "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
"server_state" : "proposing",
|
"server_state" : "proposing",
|
||||||
"server_state_duration_us": 708078257,
|
"server_state_duration_us" : "1891111442",
|
||||||
"state_accounting" : {
|
"state_accounting" : {
|
||||||
"connected" : {
|
"connected" : {
|
||||||
"duration_us" : "854824665",
|
"duration_us" : "128124609",
|
||||||
"transitions" : 2
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"disconnected" : {
|
"disconnected" : {
|
||||||
"duration_us" : "2183055",
|
"duration_us" : "2290325",
|
||||||
"transitions" : 1
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"full" : {
|
"full" : {
|
||||||
"duration_us" : "944104343",
|
"duration_us" : "1891111442",
|
||||||
"transitions" : 2
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"syncing" : {
|
"syncing" : {
|
||||||
"duration_us" : "9233178",
|
"duration_us" : "3083023",
|
||||||
"transitions" : 1
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"tracking" : {
|
"tracking" : {
|
||||||
"duration_us" : "0",
|
"duration_us" : "0",
|
||||||
"transitions" : 2
|
"transitions" : 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uptime" : 1792,
|
"time" : "2020-Mar-24 01:28:22.289087 UTC",
|
||||||
|
"uptime" : 2024,
|
||||||
"validated_ledger" : {
|
"validated_ledger" : {
|
||||||
"age" : 1,
|
"age" : 2,
|
||||||
"base_fee_xrp" : 1e-05,
|
"base_fee_xrp" : 1e-05,
|
||||||
"hash" : "D2C122281EB72E64D19B9654A8D3D0FC4207373D3FE5D91AE516685A58874621",
|
"hash" : "8BE6E2792A1D27437ABAF25B42CD367474F1EC74F6E2F576A318270A825298E4",
|
||||||
"reserve_base_xrp" : 20,
|
"reserve_base_xrp" : 20,
|
||||||
"reserve_inc_xrp" : 5,
|
"reserve_inc_xrp" : 5,
|
||||||
"seq" : 24901185
|
"seq" : 54300739
|
||||||
},
|
},
|
||||||
"validation_quorum" : 4,
|
"validation_quorum" : 29,
|
||||||
"validator_list_expires" : "2017-Oct-12 16:06:36"
|
"validator_list" : {
|
||||||
|
"count" : 1,
|
||||||
|
"expiration" : "2020-Apr-10 00:00:00.000000000 UTC",
|
||||||
|
"status" : "active"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"status" : "success"
|
"status" : "success"
|
||||||
}
|
}
|
||||||
@@ -285,20 +491,21 @@ The `info` object may have some arrangement of the following fields:
|
|||||||
| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked). If the server is not amendment blocked, the response omits this field. [New in: rippled 0.80.0][] |
|
| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked). If the server is not amendment blocked, the response omits this field. [New in: rippled 0.80.0][] |
|
||||||
| `build_version` | String | The version number of the running `rippled` version. |
|
| `build_version` | String | The version number of the running `rippled` version. |
|
||||||
| `closed_ledger` | Object | (May be omitted) Information on the most recently closed ledger that has not been validated by consensus. If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. The member fields are the same as the `validated_ledger` field. |
|
| `closed_ledger` | Object | (May be omitted) Information on the most recently closed ledger that has not been validated by consensus. If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. The member fields are the same as the `validated_ledger` field. |
|
||||||
| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. This may be a disjoint sequence, for example `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it just started syncing with the network), this is the string `empty`. |
|
| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. This may be a disjoint sequence such as `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it just started syncing with the network), this is the string `empty`. |
|
||||||
| `hostid` | String | On an admin request, returns the hostname of the server running the `rippled` instance; otherwise, returns a single RFC1751 word based on the node public key. |
|
| `hostid` | String | On an admin request, returns the hostname of the server running the `rippled` instance; otherwise, returns a single RFC1751 word based on the node public key. |
|
||||||
| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. |
|
| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. |
|
||||||
|
| `jq_trans_overflow` | String - Number | The number of times (since starting up) that this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](capacity-planning.html). [New in: rippled 0.90.0][] |
|
||||||
| `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. |
|
| `last_close` | Object | Information about the last time the server closed a ledger, including the amount of time it took to reach a consensus and the number of trusted validators participating. |
|
||||||
| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server |
|
| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server. |
|
||||||
| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. |
|
| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. |
|
||||||
| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. |
|
| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. |
|
||||||
| `load_factor` | Number | The load-scaled open ledger transaction cost the server is currently enforcing, as a multiplier on the base transaction cost. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the [individual server's load factor](transaction-cost.html#local-load-cost), the cluster's load factor, the [open ledger cost](transaction-cost.html#open-ledger-cost) and the overall network's load factor. [Updated in: rippled 0.33.0][] |
|
| `load_factor` | Number | The load-scaled open ledger transaction cost the server is currently enforcing, as a multiplier on the base transaction cost. For example, at `1000` load factor and a reference transaction cost of 10 drops of XRP, the load-scaled transaction cost is 10,000 drops (0.01 XRP). The load factor is determined by the highest of the [individual server's load factor](transaction-cost.html#local-load-cost), the cluster's load factor, the [open ledger cost](transaction-cost.html#open-ledger-cost) and the overall network's load factor. [Updated in: rippled 0.33.0][] |
|
||||||
| `load_factor_local` | Number | (May be omitted) Current multiplier to the [transaction cost][] based on load to this server. |
|
| `load_factor_local` | Number | _(May be omitted)_ Current multiplier to the [transaction cost][] based on load to this server. |
|
||||||
| `load_factor_net` | Number | (May be omitted) Current multiplier to the [transaction cost][] being used by the rest of the network (estimated from other servers' reported load values). |
|
| `load_factor_net` | Number | _(May be omitted)_ Current multiplier to the [transaction cost][] being used by the rest of the network (estimated from other servers' reported load values). |
|
||||||
| `load_factor_cluster` | Number | (May be omitted) Current multiplier to the [transaction cost][] based on load to servers in [this cluster](clustering.html). |
|
| `load_factor_cluster` | Number | _(May be omitted)_ Current multiplier to the [transaction cost][] based on load to servers in [this cluster](clustering.html). |
|
||||||
| `load_factor_fee_escalation` | Number | (May be omitted) The current multiplier to the [transaction cost][] that a transaction must pay to get into the open ledger. [New in: rippled 0.32.0][] |
|
| `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the [transaction cost][] that a transaction must pay to get into the open ledger. [New in: rippled 0.32.0][] |
|
||||||
| `load_factor_fee_queue` | Number | (May be omitted) The current multiplier to the [transaction cost][] that a transaction must pay to get into the queue, if the queue is full. [New in: rippled 0.32.0][] |
|
| `load_factor_fee_queue` | Number | _(May be omitted)_ The current multiplier to the [transaction cost][] that a transaction must pay to get into the queue, if the queue is full. [New in: rippled 0.32.0][] |
|
||||||
| `load_factor_server` | Number | (May be omitted) The load factor the server is enforcing, not including the [open ledger cost](transaction-cost.html#open-ledger-cost). [New in: rippled 0.33.0][] |
|
| `load_factor_server` | Number | _(May be omitted)_ The load factor the server is enforcing, not including the [open ledger cost](transaction-cost.html#open-ledger-cost). [New in: rippled 0.33.0][] |
|
||||||
| `peers` | Number | How many other `rippled` servers this one is currently connected to. |
|
| `peers` | Number | How many other `rippled` servers this one is currently connected to. |
|
||||||
| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](clustering.html). |
|
| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](clustering.html). |
|
||||||
| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. |
|
| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. |
|
||||||
@@ -307,16 +514,17 @@ The `info` object may have some arrangement of the following fields:
|
|||||||
| `state_accounting` | Object | A map of various [server states](rippled-server-states.html) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. [New in: rippled 0.30.1][] |
|
| `state_accounting` | Object | A map of various [server states](rippled-server-states.html) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. [New in: rippled 0.30.1][] |
|
||||||
| `state_accounting.*.duration_us` | String | The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.) [New in: rippled 0.30.1][] |
|
| `state_accounting.*.duration_us` | String | The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.) [New in: rippled 0.30.1][] |
|
||||||
| `state_accounting.*.transitions` | Number | The number of times the server has transitioned into this state. [New in: rippled 0.30.1][] |
|
| `state_accounting.*.transitions` | Number | The number of times the server has transitioned into this state. [New in: rippled 0.30.1][] |
|
||||||
|
| `time` | String | The current time in UTC, according to the server's clock. [Updated in: rippled 1.5.0][] |
|
||||||
| `uptime` | Number | Number of consecutive seconds that the server has been operational. [New in: rippled 0.30.1][] |
|
| `uptime` | Number | Number of consecutive seconds that the server has been operational. [New in: rippled 0.30.1][] |
|
||||||
| `validated_ledger` | Object | (May be omitted) Information about the most recent fully-validated ledger. If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. |
|
| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger. If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. |
|
||||||
| `validated_ledger.age` | Number | The time since the ledger was closed, in seconds. |
|
| `validated_ledger.age` | Number | The time since the ledger was closed, in seconds. |
|
||||||
| `validated_ledger.base_fee_xrp` | Number | Base fee, in XRP. This may be represented in scientific notation such as `1e-05` for 0.00005. |
|
| `validated_ledger.base_fee_xrp` | Number | Base fee, in XRP. This may be represented in scientific notation such as `1e-05` for 0.00005. |
|
||||||
| `validated_ledger.hash` | String | Unique hash for the ledger, as hex |
|
| `validated_ledger.hash` | String | Unique hash for the ledger, as hexadecimal. |
|
||||||
| `validated_ledger.reserve_base_xrp` | Unsigned Integer | Minimum amount of XRP (not drops) necessary for every account to keep in reserve |
|
| `validated_ledger.reserve_base_xrp` | Unsigned Integer | Minimum amount of XRP (not drops) necessary for every account to keep in reserve |
|
||||||
| `validated_ledger.reserve_inc_xrp` | Unsigned Integer | Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger |
|
| `validated_ledger.reserve_inc_xrp` | Unsigned Integer | Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger. |
|
||||||
| `validated_ledger.seq` | Number - [Ledger Index][] | The ledger index of the latest validate ledger |
|
| `validated_ledger.seq` | Number - [Ledger Index][] | The [ledger index][] of the latest validate ledger. |
|
||||||
| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. |
|
| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. |
|
||||||
| `validator_list_expires` | String | _(Admin only)_ Either the human readable time when the current validator list will expire, the string `unknown` if the server has yet to load a published validator list or the string `never` if the server uses a static validator list. [New in: rippled 0.80.1][] |
|
| `validator_list_expires` | String | _(Admin only)_ Either the human readable time, in UTC, when the current validator list will expire, the string `unknown` if the server has yet to load a published validator list or the string `never` if the server uses a static validator list. [Updated in: rippled 1.5.0][] |
|
||||||
|
|
||||||
**Note:** If the `closed_ledger` field is present and has a small `seq` value (less than 8 digits), that indicates `rippled` does not currently have a copy of the validated ledger from the peer-to-peer network. This could mean your server is still syncing. Typically, it takes about 5 minutes to sync with the network, depending on your connection speed and hardware specs.
|
**Note:** If the `closed_ledger` field is present and has a small `seq` value (less than 8 digits), that indicates `rippled` does not currently have a copy of the validated ledger from the peer-to-peer network. This could mean your server is still syncing. Typically, it takes about 5 minutes to sync with the network, depending on your connection speed and hardware specs.
|
||||||
|
|
||||||
|
|||||||
@@ -49,199 +49,472 @@ An example of a successful response:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 1,
|
||||||
"status": "success",
|
|
||||||
"type": "response",
|
|
||||||
"result": {
|
"result": {
|
||||||
"state": {
|
"state": {
|
||||||
"build_version": "0.30.1-rc3",
|
"build_version": "1.5.0-rc1",
|
||||||
"complete_ledgers": "18611104-18615049",
|
"complete_ledgers": "54300020-54300697",
|
||||||
"io_latency_ms": 1,
|
"io_latency_ms": 1,
|
||||||
|
"jq_trans_overflow": "0",
|
||||||
"last_close": {
|
"last_close": {
|
||||||
"converge_time": 3003,
|
"converge_time": 3001,
|
||||||
"proposers": 5
|
"proposers": 34
|
||||||
},
|
},
|
||||||
"load": {
|
"load": {
|
||||||
"job_types": [
|
"job_types": [
|
||||||
{
|
{
|
||||||
"job_type": "untrustedProposal",
|
"avg_time": 5,
|
||||||
"peak_time": 1,
|
"job_type": "untrustedValidation",
|
||||||
|
"peak_time": 21
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "ledgerRequest",
|
||||||
|
"peak_time": 9,
|
||||||
"per_second": 3
|
"per_second": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"in_progress": 1,
|
"job_type": "untrustedProposal",
|
||||||
"job_type": "clientCommand"
|
"peak_time": 26,
|
||||||
|
"per_second": 45
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"avg_time": 12,
|
"avg_time": 15,
|
||||||
"job_type": "writeObjects",
|
"job_type": "ledgerData",
|
||||||
"peak_time": 345,
|
"peak_time": 105,
|
||||||
"per_second": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"job_type": "trustedProposal",
|
|
||||||
"per_second": 1
|
"per_second": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type": "peerCommand",
|
"in_progress": 1,
|
||||||
"per_second": 64
|
"job_type": "clientCommand",
|
||||||
|
"peak_time": 50,
|
||||||
|
"per_second": 8
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"avg_time": 33,
|
"avg_time": 1,
|
||||||
"job_type": "diskAccess",
|
"job_type": "transaction",
|
||||||
"peak_time": 526
|
"peak_time": 35,
|
||||||
|
"per_second": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "batch",
|
||||||
|
"peak_time": 5,
|
||||||
|
"per_second": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time": 4,
|
||||||
|
"job_type": "advanceLedger",
|
||||||
|
"peak_time": 65,
|
||||||
|
"per_second": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "fetchTxnData",
|
||||||
|
"per_second": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time": 7,
|
||||||
|
"job_type": "trustedValidation",
|
||||||
|
"peak_time": 49,
|
||||||
|
"per_second": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "trustedProposal",
|
||||||
|
"peak_time": 20,
|
||||||
|
"per_second": 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "clusterReport",
|
||||||
|
"peak_time": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "heartbeat",
|
||||||
|
"peak_time": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "peerCommand",
|
||||||
|
"per_second": 1334
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "processTransaction",
|
||||||
|
"per_second": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "SyncReadNode",
|
||||||
|
"peak_time": 6,
|
||||||
|
"per_second": 35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "AsyncReadNode",
|
||||||
|
"peak_time": 13,
|
||||||
|
"per_second": 1104
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type": "WriteNode",
|
"job_type": "WriteNode",
|
||||||
"per_second": 55
|
"peak_time": 12,
|
||||||
|
"per_second": 976
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"threads": 6
|
"threads": 6
|
||||||
},
|
},
|
||||||
"load_base": 256,
|
"load_base": 256,
|
||||||
"load_factor": 256000,
|
"load_factor": 256,
|
||||||
"peers": 10,
|
"load_factor_fee_escalation": 256,
|
||||||
"pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa",
|
"load_factor_fee_queue": 256,
|
||||||
"pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
|
"load_factor_fee_reference": 256,
|
||||||
|
"load_factor_server": 256,
|
||||||
|
"peer_disconnects": "55",
|
||||||
|
"peer_disconnects_resources": "1",
|
||||||
|
"peers": 21,
|
||||||
|
"pubkey_node": "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
|
||||||
|
"pubkey_validator": "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
"server_state": "proposing",
|
"server_state": "proposing",
|
||||||
"server_state_duration_us": 92762334,
|
"server_state_duration_us": "1727270915",
|
||||||
"state_accounting": {
|
"state_accounting": {
|
||||||
"connected": {
|
"connected": {
|
||||||
"duration_us": "150510079",
|
"duration_us": "128124609",
|
||||||
"transitions": 1
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"disconnected": {
|
"disconnected": {
|
||||||
"duration_us": "1827731",
|
"duration_us": "2290325",
|
||||||
"transitions": 1
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"full": {
|
"full": {
|
||||||
"duration_us": "168295542987",
|
"duration_us": "1727270915",
|
||||||
"transitions": 1865
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"syncing": {
|
"syncing": {
|
||||||
"duration_us": "6294237352",
|
"duration_us": "3083023",
|
||||||
"transitions": 1866
|
"transitions": 1
|
||||||
},
|
},
|
||||||
"tracking": {
|
"tracking": {
|
||||||
"duration_us": "13035524",
|
"duration_us": "0",
|
||||||
"transitions": 1866
|
"transitions": 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uptime": 174748,
|
"time": "2020-Mar-24 01:25:38.448364 UTC",
|
||||||
|
"uptime": 1860,
|
||||||
"validated_ledger": {
|
"validated_ledger": {
|
||||||
"base_fee": 10,
|
"base_fee": 10,
|
||||||
"close_time": 507693650,
|
"close_time": 638328331,
|
||||||
"hash": "FEB17B15FB64E3AF8D371E6AAFCFD8B92775BB80AB953803BD73EA8EC75ECA34",
|
"hash": "A63E850343B9F06CFE637648FF3D46DBAB7B1E41BA6B9A26FA72AA706D82233D",
|
||||||
"reserve_base": 20000000,
|
"reserve_base": 20000000,
|
||||||
"reserve_inc": 5000000,
|
"reserve_inc": 5000000,
|
||||||
"seq": 18615049
|
"seq": 54300697
|
||||||
},
|
},
|
||||||
"validation_quorum": 4,
|
"validation_quorum": 29,
|
||||||
"validator_list_expires": 561139596
|
"validator_list_expires": 639792000
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"status": "success",
|
||||||
|
"type": "response"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
200 OK
|
200 OK
|
||||||
|
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"state": {
|
||||||
|
"build_version": "1.5.0-rc1",
|
||||||
|
"complete_ledgers": "54300020-54300761",
|
||||||
|
"io_latency_ms": 1,
|
||||||
|
"jq_trans_overflow": "0",
|
||||||
|
"last_close": {
|
||||||
|
"converge_time": 3000,
|
||||||
|
"proposers": 34
|
||||||
|
},
|
||||||
|
"load": {
|
||||||
|
"job_types": [
|
||||||
|
{
|
||||||
|
"job_type": "ledgerRequest",
|
||||||
|
"per_second": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "untrustedProposal",
|
||||||
|
"peak_time": 1,
|
||||||
|
"per_second": 41
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time": 5,
|
||||||
|
"job_type": "ledgerData",
|
||||||
|
"peak_time": 42,
|
||||||
|
"per_second": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"in_progress": 1,
|
||||||
|
"job_type": "clientCommand",
|
||||||
|
"per_second": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "transaction",
|
||||||
|
"per_second": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "batch",
|
||||||
|
"peak_time": 8,
|
||||||
|
"per_second": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "advanceLedger",
|
||||||
|
"peak_time": 12,
|
||||||
|
"per_second": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "fetchTxnData",
|
||||||
|
"per_second": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "trustedValidation",
|
||||||
|
"peak_time": 7,
|
||||||
|
"per_second": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "trustedProposal",
|
||||||
|
"per_second": 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "peerCommand",
|
||||||
|
"per_second": 1461
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "processTransaction",
|
||||||
|
"per_second": 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "SyncReadNode",
|
||||||
|
"per_second": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "AsyncReadNode",
|
||||||
|
"peak_time": 21,
|
||||||
|
"per_second": 124
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type": "WriteNode",
|
||||||
|
"peak_time": 7,
|
||||||
|
"per_second": 278
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"threads": 6
|
||||||
|
},
|
||||||
|
"load_base": 256,
|
||||||
|
"load_factor": 256,
|
||||||
|
"load_factor_fee_escalation": 256,
|
||||||
|
"load_factor_fee_queue": 256,
|
||||||
|
"load_factor_fee_reference": 256,
|
||||||
|
"load_factor_server": 256,
|
||||||
|
"peer_disconnects": "61",
|
||||||
|
"peer_disconnects_resources": "1",
|
||||||
|
"peers": 20,
|
||||||
|
"pubkey_node": "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
|
||||||
|
"pubkey_validator": "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
|
"server_state": "proposing",
|
||||||
|
"server_state_duration_us": "1974824750",
|
||||||
|
"state_accounting": {
|
||||||
|
"connected": {
|
||||||
|
"duration_us": "128124609",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"disconnected": {
|
||||||
|
"duration_us": "2290325",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"full": {
|
||||||
|
"duration_us": "1974824750",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"syncing": {
|
||||||
|
"duration_us": "3083023",
|
||||||
|
"transitions": 1
|
||||||
|
},
|
||||||
|
"tracking": {
|
||||||
|
"duration_us": "0",
|
||||||
|
"transitions": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"time": "2020-Mar-24 01:29:46.002417 UTC",
|
||||||
|
"uptime": 2108,
|
||||||
|
"validated_ledger": {
|
||||||
|
"base_fee": 10,
|
||||||
|
"close_time": 638328581,
|
||||||
|
"hash": "E262523CB2579D3E1F66DEBBDCC3D7E9E7E3D88B0B45F9D5640C92766934C855",
|
||||||
|
"reserve_base": 20000000,
|
||||||
|
"reserve_inc": 5000000,
|
||||||
|
"seq": 54300761
|
||||||
|
},
|
||||||
|
"validation_quorum": 29,
|
||||||
|
"validator_list_expires": 639792000
|
||||||
|
},
|
||||||
|
"status": "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
*Commandline*
|
||||||
|
|
||||||
|
```json
|
||||||
|
Loading: "/etc/opt/ripple/rippled.cfg"
|
||||||
|
2020-Mar-24 01:30:08.646201720 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005
|
||||||
|
|
||||||
{
|
{
|
||||||
"result" : {
|
"result" : {
|
||||||
"state" : {
|
"state" : {
|
||||||
"build_version" : "0.30.1-rc3",
|
"build_version" : "1.5.0-rc1",
|
||||||
"complete_ledgers" : "18611104-18615037",
|
"complete_ledgers" : "54300020-54300767",
|
||||||
"io_latency_ms" : 1,
|
"io_latency_ms" : 1,
|
||||||
|
"jq_trans_overflow" : "0",
|
||||||
"last_close" : {
|
"last_close" : {
|
||||||
"converge_time" : 2001,
|
"converge_time" : 3143,
|
||||||
"proposers" : 5
|
"proposers" : 34
|
||||||
},
|
},
|
||||||
"load" : {
|
"load" : {
|
||||||
"job_types" : [
|
"job_types" : [
|
||||||
{
|
{
|
||||||
"job_type" : "untrustedProposal",
|
"job_type" : "untrustedProposal",
|
||||||
"per_second" : 2
|
"peak_time" : 14,
|
||||||
|
"per_second" : 44
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 6,
|
||||||
|
"job_type" : "ledgerData",
|
||||||
|
"peak_time" : 252,
|
||||||
|
"per_second" : 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"in_progress" : 1,
|
"in_progress" : 1,
|
||||||
"job_type" : "clientCommand"
|
"job_type" : "clientCommand",
|
||||||
},
|
"peak_time" : 3,
|
||||||
{
|
"per_second" : 10
|
||||||
"job_type" : "writeObjects",
|
|
||||||
"per_second" : 2
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"avg_time" : 2,
|
"avg_time" : 2,
|
||||||
|
"job_type" : "transaction",
|
||||||
|
"peak_time" : 61,
|
||||||
|
"per_second" : 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "batch",
|
||||||
|
"peak_time" : 11,
|
||||||
|
"per_second" : 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 4,
|
||||||
|
"job_type" : "advanceLedger",
|
||||||
|
"peak_time" : 128,
|
||||||
|
"per_second" : 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "fetchTxnData",
|
||||||
|
"per_second" : 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 11,
|
||||||
|
"job_type" : "writeAhead",
|
||||||
|
"peak_time" : 43
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 2,
|
||||||
|
"job_type" : "trustedValidation",
|
||||||
|
"peak_time" : 107,
|
||||||
|
"per_second" : 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 41,
|
||||||
"job_type" : "acceptLedger",
|
"job_type" : "acceptLedger",
|
||||||
"peak_time" : 6
|
"peak_time" : 112
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type" : "trustedProposal",
|
"job_type" : "trustedProposal",
|
||||||
"per_second" : 1
|
"per_second" : 14
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 131,
|
||||||
|
"job_type" : "sweep",
|
||||||
|
"peak_time" : 523
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"avg_time" : 36,
|
||||||
|
"job_type" : "heartbeat",
|
||||||
|
"peak_time" : 144
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type" : "peerCommand",
|
"job_type" : "peerCommand",
|
||||||
"per_second" : 80
|
"per_second" : 1594
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type" : "diskAccess",
|
"job_type" : "processTransaction",
|
||||||
"per_second" : 1
|
"per_second" : 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "SyncReadNode",
|
||||||
|
"per_second" : 128
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"job_type" : "AsyncReadNode",
|
||||||
|
"per_second" : 3346
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"job_type" : "WriteNode",
|
"job_type" : "WriteNode",
|
||||||
"per_second" : 91
|
"per_second" : 2275
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"threads" : 6
|
"threads" : 6
|
||||||
},
|
},
|
||||||
"load_base" : 256,
|
"load_base" : 256,
|
||||||
"load_factor" : 256000,
|
"load_factor" : 256,
|
||||||
"peers" : 10,
|
"load_factor_fee_escalation" : 256,
|
||||||
"pubkey_node" : "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa",
|
"load_factor_fee_queue" : 256,
|
||||||
"pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
|
"load_factor_fee_reference" : 256,
|
||||||
|
"load_factor_server" : 256,
|
||||||
|
"peer_disconnects" : "61",
|
||||||
|
"peer_disconnects_resources" : "1",
|
||||||
|
"peers" : 21,
|
||||||
|
"pubkey_node" : "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
|
||||||
|
"pubkey_validator" : "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
|
||||||
"server_state" : "proposing",
|
"server_state" : "proposing",
|
||||||
"server_state_duration_us": 708078257,
|
"server_state_duration_us" : "1997468900",
|
||||||
"state_accounting" : {
|
"state_accounting" : {
|
||||||
"connected" : {
|
"connected" : {
|
||||||
"duration_us" : "150510079",
|
"duration_us" : "128124609",
|
||||||
"transitions" : 1
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"disconnected" : {
|
"disconnected" : {
|
||||||
"duration_us" : "1827731",
|
"duration_us" : "2290325",
|
||||||
"transitions" : 1
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"full" : {
|
"full" : {
|
||||||
"duration_us" : "168241260112",
|
"duration_us" : "1997468900",
|
||||||
"transitions" : 1865
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"syncing" : {
|
"syncing" : {
|
||||||
"duration_us" : "6294237352",
|
"duration_us" : "3083023",
|
||||||
"transitions" : 1866
|
"transitions" : 1
|
||||||
},
|
},
|
||||||
"tracking" : {
|
"tracking" : {
|
||||||
"duration_us" : "13035524",
|
"duration_us" : "0",
|
||||||
"transitions" : 1866
|
"transitions" : 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"uptime" : 174693,
|
"time" : "2020-Mar-24 01:30:08.646564 UTC",
|
||||||
|
"uptime" : 2130,
|
||||||
"validated_ledger" : {
|
"validated_ledger" : {
|
||||||
"base_fee" : 10,
|
"base_fee" : 10,
|
||||||
"close_time" : 507693592,
|
"close_time" : 638328602,
|
||||||
"hash" : "1C26209AE593C7EB5123363B3152D86514845FBD42CC6B05111D57F62D02B113",
|
"hash" : "835B1EDFA0D4B7BDE1F5030D1B5FBE98C122ABB9C34FE8889B77CD635766C1B5",
|
||||||
"reserve_base" : 20000000,
|
"reserve_base" : 20000000,
|
||||||
"reserve_inc" : 5000000,
|
"reserve_inc" : 5000000,
|
||||||
"seq" : 18615037
|
"seq" : 54300767
|
||||||
},
|
},
|
||||||
"validation_quorum" : 4,
|
"validation_quorum" : 29,
|
||||||
"validator_list_expires" : 561139596
|
"validator_list_expires" : 639792000
|
||||||
},
|
},
|
||||||
"status" : "success"
|
"status" : "success"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_END -->
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
@@ -251,21 +524,22 @@ The response follows the [standard format][], with a successful result containin
|
|||||||
The `state` object may have some arrangement of the following fields:
|
The `state` object may have some arrangement of the following fields:
|
||||||
|
|
||||||
| `Field` | Type | Description |
|
| `Field` | Type | Description |
|
||||||
|:---------------------------------|:-----------------|:-----------------------|
|
|:---------------------------------|:----------------|:------------------------|
|
||||||
| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked). If the server is not amendment blocked, the response omits this field. [New in: rippled 0.80.0][] |
|
| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked). If the server is not amendment blocked, the response omits this field. [New in: rippled 0.80.0][] |
|
||||||
| `build_version` | String | The version number of the running `rippled` version. |
|
| `build_version` | String | The version number of the running `rippled` version. |
|
||||||
| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. It is possible to be a disjoint sequence, e.g. "2500-5000,32570-7695432". If the server does not have any complete ledgers (for example, it just started syncing with the network), this is the string `empty`. |
|
| `complete_ledgers` | String | Range expression indicating the sequence numbers of the ledger versions the local `rippled` has in its database. It is possible to be a disjoint sequence, e.g. "2500-5000,32570-7695432". If the server does not have any complete ledgers (for example, it just started syncing with the network), this is the string `empty`. |
|
||||||
| `closed_ledger` | Object | (May be omitted) Information on the most recently closed ledger that has not been validated by consensus. If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. The member fields are the same as the `validated_ledger` field. |
|
| `closed_ledger` | Object | _(May be omitted)_ Information on the most recently closed ledger that has not been validated by consensus. If the most recently validated ledger is available, the response omits this field and includes `validated_ledger` instead. The member fields are the same as the `validated_ledger` field. |
|
||||||
| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. |
|
| `io_latency_ms` | Number | Amount of time spent waiting for I/O operations, in milliseconds. If this number is not very, very low, then the `rippled` server is probably having serious load issues. |
|
||||||
| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server |
|
| `jq_trans_overflow` | String - Number | The number of times this server has had over 250 transactions waiting to be processed at once. A large number here may mean that your server is unable to handle the transaction load of the XRP Ledger network. For detailed recommendations of future-proof server specifications, see [Capacity Planning](capacity-planning.html). [New in: rippled 0.90.0][] |
|
||||||
|
| `load` | Object | _(Admin only)_ Detailed information about the current load state of the server. |
|
||||||
| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. |
|
| `load.job_types` | Array | _(Admin only)_ Information about the rate of different types of jobs the server is doing and how much time it spends on each. |
|
||||||
| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. |
|
| `load.threads` | Number | _(Admin only)_ The number of threads in the server's main job pool. |
|
||||||
| `load_base` | Integer | This is the baseline amount of server load used in [transaction cost](transaction-cost.html) calculations. If the `load_factor` is equal to the `load_base` then only the base transaction cost is enforced. If the `load_factor` is higher than the `load_base`, then transaction costs are multiplied by the ratio between them. For example, if the `load_factor` is double the `load_base`, then transaction costs are doubled. |
|
| `load_base` | Integer | This is the baseline amount of server load used in [transaction cost](transaction-cost.html) calculations. If the `load_factor` is equal to the `load_base` then only the base transaction cost is enforced. If the `load_factor` is higher than the `load_base`, then transaction costs are multiplied by the ratio between them. For example, if the `load_factor` is double the `load_base`, then transaction costs are doubled. |
|
||||||
| `load_factor` | Number | The load factor the server is currently enforcing. The ratio between this value and the `load_base` determines the multiplier for transaction costs. The load factor is determined by the highest of the individual server's load factor, cluster's load factor, the [open ledger cost](transaction-cost.html#open-ledger-cost), and the overall network's load factor. [Updated in: rippled 0.33.0][] |
|
| `load_factor` | Number | The load factor the server is currently enforcing. The ratio between this value and the `load_base` determines the multiplier for transaction costs. The load factor is determined by the highest of the individual server's load factor, cluster's load factor, the [open ledger cost](transaction-cost.html#open-ledger-cost), and the overall network's load factor. [Updated in: rippled 0.33.0][] |
|
||||||
| `load_factor_fee_escalation` | Integer | (May be omitted) The current multiplier to the [transaction cost][] to get into the open ledger, in [fee levels][]. [New in: rippled 0.32.0][] |
|
| `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the [transaction cost][] to get into the open ledger, in [fee levels][]. [New in: rippled 0.32.0][] |
|
||||||
| `load_factor_fee_queue` | Integer | (May be omitted) The current multiplier to the [transaction cost][] to get into the queue, if the queue is full, in [fee levels][]. [New in: rippled 0.32.0][] |
|
| `load_factor_fee_queue` | Number | _(May be omitted)_ The current multiplier to the [transaction cost][] to get into the queue, if the queue is full, in [fee levels][]. [New in: rippled 0.32.0][] |
|
||||||
| `load_factor_fee_reference` | Integer | (May be omitted) The [transaction cost][] with no load scaling, in [fee levels][]. [New in: rippled 0.32.0][] |
|
| `load_factor_fee_reference` | Number | _(May be omitted)_ The [transaction cost][] with no load scaling, in [fee levels][]. [New in: rippled 0.32.0][] |
|
||||||
| `load_factor_server` | Number | (May be omitted) The load factor the server is enforcing, not including the [open ledger cost](transaction-cost.html#open-ledger-cost). [New in: rippled 0.33.0][] |
|
| `load_factor_server` | Number | _(May be omitted)_ The load factor the server is enforcing, not including the [open ledger cost](transaction-cost.html#open-ledger-cost). [New in: rippled 0.33.0][] |
|
||||||
| `peers` | Number | How many other `rippled` servers this one is currently connected to. |
|
| `peers` | Number | How many other `rippled` servers this one is currently connected to. |
|
||||||
| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](clustering.html). |
|
| `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This _node key pair_ is automatically generated by the server the first time it starts up. (If deleted, the server can create a new pair of keys.) You can set a persistent value in the config file using the `[node_seed]` config option, which is useful for [clustering](clustering.html). |
|
||||||
| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. |
|
| `pubkey_validator` | String | _(Admin only)_ Public key used by this node to sign ledger validations. This _validation key pair_ is derived from the `[validator_token]` or `[validation_seed]` config field. |
|
||||||
@@ -274,14 +548,15 @@ The `state` object may have some arrangement of the following fields:
|
|||||||
| `state_accounting` | Object | A map of various [server states](rippled-server-states.html) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. [New in: rippled 0.30.1][] |
|
| `state_accounting` | Object | A map of various [server states](rippled-server-states.html) with information about the time the server spends in each. This can be useful for tracking the long-term health of your server's connectivity to the network. [New in: rippled 0.30.1][] |
|
||||||
| `state_accounting.*.duration_us` | String | The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.) [New in: rippled 0.30.1][] |
|
| `state_accounting.*.duration_us` | String | The number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.) [New in: rippled 0.30.1][] |
|
||||||
| `state_accounting.*.transitions` | Number | The number of times the server has transitioned into this state. [New in: rippled 0.30.1][] |
|
| `state_accounting.*.transitions` | Number | The number of times the server has transitioned into this state. [New in: rippled 0.30.1][] |
|
||||||
|
| `time` | String | The current time in UTC, according to the server's clock. [Updated in: rippled 1.5.0][] |
|
||||||
| `uptime` | Number | Number of consecutive seconds that the server has been operational. [New in: rippled 0.30.1][] |
|
| `uptime` | Number | Number of consecutive seconds that the server has been operational. [New in: rippled 0.30.1][] |
|
||||||
| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger. If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. |
|
| `validated_ledger` | Object | _(May be omitted)_ Information about the most recent fully-validated ledger. If the most recent validated ledger is not available, the response omits this field and includes `closed_ledger` instead. |
|
||||||
| `validated_ledger.base_fee` | Unsigned Integer | Base fee, in drops of XRP, for propagating a transaction to the network. |
|
| `validated_ledger.base_fee` | Number | Base fee, in drops of XRP, for propagating a transaction to the network. |
|
||||||
| `validated_ledger.close_time` | Number | Time this ledger was closed, in [seconds since the Ripple Epoch][] |
|
| `validated_ledger.close_time` | Number | Time this ledger was closed, in [seconds since the Ripple Epoch][]. |
|
||||||
| `validated_ledger.hash` | String | Unique hash of this ledger version, as hex |
|
| `validated_ledger.hash` | String | Unique hash of this ledger version, as hexadecimal. |
|
||||||
| `validated_ledger.reserve_base` | Unsigned Integer | The minimum [account reserve](reserves.html), as of the most recent validated ledger version. |
|
| `validated_ledger.reserve_base` | Number | The minimum [account reserve](reserves.html), as of the most recent validated ledger version. |
|
||||||
| `validated_ledger.reserve_inc` | Unsigned Integer | The [owner reserve](reserves.html) for each item an account owns, as of the most recent validated ledger version. |
|
| `validated_ledger.reserve_inc` | Number | The [owner reserve](reserves.html) for each item an account owns, as of the most recent validated ledger version. |
|
||||||
| `validated_ledger.seq` | Unsigned Integer | The [ledger index][] of the most recently validated ledger version. |
|
| `validated_ledger.seq` | Number | The [ledger index][] of the most recently validated ledger version. |
|
||||||
| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. |
|
| `validation_quorum` | Number | Minimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations. |
|
||||||
| `validator_list_expires` | Number | _(Admin only)_ When the current validator list will expire, in [seconds since the Ripple Epoch][], or 0 if the server has yet to load a published validator list. [New in: rippled 0.80.1][] |
|
| `validator_list_expires` | Number | _(Admin only)_ When the current validator list will expire, in [seconds since the Ripple Epoch][], or 0 if the server has yet to load a published validator list. [New in: rippled 0.80.1][] |
|
||||||
|
|
||||||
|
|||||||
@@ -85,9 +85,9 @@ The request includes the following parameters:
|
|||||||
| `passphrase` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. |
|
| `passphrase` | String | _(Optional)_ The secret seed of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. |
|
||||||
| `key_type` | String | _(Optional)_ The [signing algorithm](cryptographic-keys.html#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. |
|
| `key_type` | String | _(Optional)_ The [signing algorithm](cryptographic-keys.html#signing-algorithms) of the cryptographic key pair provided. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. |
|
||||||
| `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to [automatically fill](#auto-fillable-fields) any transaction details. The default is `false`. |
|
| `offline` | Boolean | _(Optional)_ If `true`, when constructing the transaction, do not try to [automatically fill](#auto-fillable-fields) any transaction details. The default is `false`. |
|
||||||
| `build_path` | Boolean | _(Optional)_ If provided for a Payment-type transaction, automatically fill in the `Paths` field before signing. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. |
|
| `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](transaction-common-fields.html#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](direct-xrp-payments.html) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/ripple/rippled/issues/3272)) |
|
||||||
| `fee_mult_max` | Integer | _(Optional)_ Limits how high the [automatically-provided `Fee` field](transaction-common-fields.html#auto-fillable-fields) can be. Signing fails with the error `rpcHIGH_FEE` if the current [load multiplier on the transaction cost](transaction-cost.html#local-load-cost) is greater than (`fee_mult_max` ÷ `fee_div_max`). Ignored if you specify the `Fee` field of the transaction ([transaction cost](transaction-cost.html)). The default is `10`. |
|
| `fee_mult_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. |
|
||||||
| `fee_div_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the current [load multiplier on the transaction cost](transaction-cost.html#local-load-cost) is greater than (`fee_mult_max` ÷ `fee_div_max`). Ignored if you specify the `Fee` field of the transaction ([transaction cost](transaction-cost.html)). The default is `1`. [New in: rippled 0.30.1][] |
|
| `fee_div_max` | Integer | _(Optional)_ Signing fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. [New in: rippled 0.30.1][] |
|
||||||
|
|
||||||
### Auto-Fillable Fields
|
### Auto-Fillable Fields
|
||||||
|
|
||||||
@@ -217,5 +217,7 @@ The response follows the [standard format][], with a successful result containin
|
|||||||
* `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur.
|
* `noPath` - The transaction did not include paths, and the server was unable to find a path by which this payment can occur.
|
||||||
|
|
||||||
|
|
||||||
{% include '_snippets/rippled_versions.md' %}
|
<!--{# common link defs #}-->
|
||||||
{% include '_snippets/rippled-api-links.md' %}
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -79,11 +79,11 @@ The request includes the following parameters:
|
|||||||
| `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. |
|
| `seed_hex` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it. Must be in hexadecimal format. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `passphrase`. |
|
||||||
| `passphrase` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. |
|
| `passphrase` | String | _(Optional)_ Secret key of the account supplying the transaction, used to sign it, as a string passphrase. If provided, you must also specify the `key_type`. Cannot be used with `secret`, `seed`, or `seed_hex`. |
|
||||||
| `key_type` | String | _(Optional)_ Type of cryptographic key provided in this request. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. **Caution:** Ed25519 support is experimental. |
|
| `key_type` | String | _(Optional)_ Type of cryptographic key provided in this request. Valid types are `secp256k1` or `ed25519`. Defaults to `secp256k1`. Cannot be used with `secret`. **Caution:** Ed25519 support is experimental. |
|
||||||
| `fail_hard` | Boolean | (Optional, defaults to false) If true, and the transaction fails locally, do not retry or relay the transaction to other servers |
|
| `fail_hard` | Boolean | _(Optional)_ If `true`, and the transaction fails locally, do not retry or relay the transaction to other servers. The default is `false`. [Updated in: rippled 1.5.0][] |
|
||||||
| `offline` | Boolean | (Optional, defaults to false) If true, when constructing the transaction, do not try to automatically fill in or validate values. |
|
| `offline` | Boolean | (Optional, defaults to false) If true, when constructing the transaction, do not try to automatically fill in or validate values. |
|
||||||
| `build_path` | Boolean | _(Optional)_ If provided for a Payment-type transaction, automatically fill in the `Paths` field before signing. You must omit this field if the transaction is a direct XRP-to-XRP transfer. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. |
|
| `build_path` | Boolean | _(Optional)_ If this field is provided, the server [auto-fills](transaction-common-fields.html#auto-fillable-fields) the `Paths` field of a [Payment transaction][] before signing. You must omit this field if the transaction is a [direct XRP payment](direct-xrp-payments.html) or if it is not a Payment-type transaction. **Caution:** The server looks for the presence or absence of this field, not its value. This behavior may change. ([Issue #3272](https://github.com/ripple/rippled/issues/3272)) |
|
||||||
| `fee_mult_max` | Integer | (Optional, defaults to 10, recommended value 1000) If the `Fee` parameter is omitted, this field limits the automatically-provided `Fee` value so that it is less than or equal to the long-term base transaction cost times this value. |
|
| `fee_mult_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `10`. |
|
||||||
| `fee_div_max` | Integer | (Optional, defaults to 1) Used with `fee_mult_max` to create a fractional multiplier for the limit. Specifically, the server multiplies its base [transaction cost](transaction-cost.html) by `fee_mult_max`, then divides by this value (rounding down to an integer) to get a limit. If the automatically-provided `Fee` value would be over the limit, the submit command fails. [New in: rippled 0.30.1][] |
|
| `fee_div_max` | Integer | _(Optional)_ Sign-and-submit fails with the error `rpcHIGH_FEE` if the [auto-filled `Fee` value](transaction-common-fields.html#auto-fillable-fields) would be greater than the [reference transaction cost](transaction-cost.html#special-transaction-costs) × `fee_mult_max` ÷ `fee_div_max`. This field has no effect if you explicitly specify the `Fee` field of the transaction. The default is `1`. [New in: rippled 0.30.1][] |
|
||||||
|
|
||||||
See the [sign method][] for detailed information on how the server automatically fills in certain fields.
|
See the [sign method][] for detailed information on how the server automatically fills in certain fields.
|
||||||
|
|
||||||
@@ -158,15 +158,23 @@ An example of a successful response:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"status": "success",
|
"status": "success",
|
||||||
"type": "response",
|
"type": "response",
|
||||||
"result": {
|
"result": {
|
||||||
|
"accepted" : true,
|
||||||
|
"account_sequence_available" : 362,
|
||||||
|
"account_sequence_next" : 362,
|
||||||
|
"applied" : true,
|
||||||
|
"broadcast" : true,
|
||||||
"engine_result": "tesSUCCESS",
|
"engine_result": "tesSUCCESS",
|
||||||
"engine_result_code": 0,
|
"engine_result_code": 0,
|
||||||
"engine_result_message": "The transaction was applied. Only final in a validated ledger.",
|
"engine_result_message": "The transaction was applied. Only final in a validated ledger.",
|
||||||
|
"kept" : true,
|
||||||
|
"open_ledger_cost": "10",
|
||||||
|
"queued" : false,
|
||||||
"tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754",
|
"tx_blob": "1200002280000000240000016861D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F858081144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754",
|
||||||
"tx_json": {
|
"tx_json": {
|
||||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||||
@@ -183,20 +191,29 @@ An example of a successful response:
|
|||||||
"TransactionType": "Payment",
|
"TransactionType": "Payment",
|
||||||
"TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580",
|
"TxnSignature": "304402200E5C2DD81FDF0BE9AB2A8D797885ED49E804DBF28E806604D878756410CA98B102203349581946B0DDA06B36B35DBC20EDA27552C1F167BCF5C6ECFF49C6A46F8580",
|
||||||
"hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0"
|
"hash": "4D5D90890F8D49519E4151938601EF3D0B30B16CD6A519D9C99102C9FA77F7E0"
|
||||||
}
|
},
|
||||||
|
"validated_ledger_index" : 21184416
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"result": {
|
"result": {
|
||||||
|
"accepted" : true,
|
||||||
|
"account_sequence_available" : 362,
|
||||||
|
"account_sequence_next" : 362,
|
||||||
|
"applied" : true,
|
||||||
|
"broadcast" : true,
|
||||||
"engine_result": "tesSUCCESS",
|
"engine_result": "tesSUCCESS",
|
||||||
"engine_result_code": 0,
|
"engine_result_code": 0,
|
||||||
"engine_result_message": "The transaction was applied. Only final in a validated ledger.",
|
"engine_result_message": "The transaction was applied. Only final in a validated ledger.",
|
||||||
"status": "success",
|
"status": "success",
|
||||||
|
"kept" : true,
|
||||||
|
"open_ledger_cost": "10",
|
||||||
|
"queued" : false,
|
||||||
"tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754",
|
"tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754",
|
||||||
"tx_json": {
|
"tx_json": {
|
||||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||||
@@ -214,39 +231,50 @@ An example of a successful response:
|
|||||||
"TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1",
|
"TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1",
|
||||||
"hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847"
|
"hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"validated_ledger_index" : 21184416
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
*Commandline*
|
*Commandline*
|
||||||
|
|
||||||
```
|
```json
|
||||||
Loading: "/etc/rippled.cfg"
|
Loading: "/etc/rippled.cfg"
|
||||||
Connecting to 127.0.0.1:5005
|
Connecting to 127.0.0.1:5005
|
||||||
|
|
||||||
{
|
{
|
||||||
"result" : {
|
"result": {
|
||||||
"engine_result" : "tesSUCCESS",
|
"accepted" : true,
|
||||||
"engine_result_code" : 0,
|
"account_sequence_available" : 362,
|
||||||
"engine_result_message" : "The transaction was applied. Only final in a validated ledger.",
|
"account_sequence_next" : 362,
|
||||||
"status" : "success",
|
"applied" : true,
|
||||||
"tx_blob" : "1200002280000000240000016A61D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100FBBF74057359EC31C3647AD3B33D8954730E9879C35034374858A76B7CFA643102200EAA08C61071396E9CF0987FBEA16CF113CBD8068AA221214D165F151285EECD81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754",
|
"broadcast" : true,
|
||||||
"tx_json" : {
|
"engine_result": "tesSUCCESS",
|
||||||
"Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
"engine_result_code": 0,
|
||||||
"Amount" : {
|
"engine_result_message": "The transaction was applied. Only final in a validated ledger.",
|
||||||
"currency" : "USD",
|
"status": "success",
|
||||||
"issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
"kept" : true,
|
||||||
"value" : "1"
|
"open_ledger_cost": "10",
|
||||||
|
"queued" : false,
|
||||||
|
"tx_blob": "1200002280000000240000016961D4838D7EA4C6800000000000000000000000000055534400000000004B4E9C06F24296074F7BC48F92A97916C6DC5EA9684000000000002710732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB74473045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F181144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143E9D4A2B8AA0780F682D136F7A56D6724EF53754",
|
||||||
|
"tx_json": {
|
||||||
|
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||||
|
"Amount": {
|
||||||
|
"currency": "USD",
|
||||||
|
"issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||||
|
"value": "1"
|
||||||
},
|
},
|
||||||
"Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
"Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||||
"Fee" : "10000",
|
"Fee": "10000",
|
||||||
"Flags" : 2147483648,
|
"Flags": 2147483648,
|
||||||
"Sequence" : 362,
|
"Sequence": 361,
|
||||||
"SigningPubKey" : "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB",
|
"SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB",
|
||||||
"TransactionType" : "Payment",
|
"TransactionType": "Payment",
|
||||||
"TxnSignature" : "3045022100FBBF74057359EC31C3647AD3B33D8954730E9879C35034374858A76B7CFA643102200EAA08C61071396E9CF0987FBEA16CF113CBD8068AA221214D165F151285EECD",
|
"TxnSignature": "3045022100A7CCD11455E47547FF617D5BFC15D120D9053DFD0536B044F10CA3631CD609E502203B61DEE4AC027C5743A1B56AF568D1E2B8E79BB9E9E14744AC87F38375C3C2F1",
|
||||||
"hash" : "CB98A6FA1FAC47F9FCC6A233EB46F8F9AF59CC69BD69AE6D06F298F6FF52162A"
|
"hash": "5B31A7518DC304D5327B4887CD1F7DC2C38D5F684170097020C7C9758B973847"
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"validated_ledger_index" : 21184416
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -256,15 +284,24 @@ The response follows the [standard format][], with a successful result containin
|
|||||||
|
|
||||||
| `Field` | Type | Description |
|
| `Field` | Type | Description |
|
||||||
|:------------------------|:--------|:-----------------------------------------|
|
|:------------------------|:--------|:-----------------------------------------|
|
||||||
| `engine_result` | String | Code indicating the preliminary result of the transaction, for example `tesSUCCESS` |
|
| `engine_result` | String | Text [result code](transaction-results.html) indicating the preliminary result of the transaction, for example `tesSUCCESS` |
|
||||||
| `engine_result_code` | Integer | Numeric code indicating the preliminary result of the transaction, directly correlated to `engine_result` |
|
| `engine_result_code` | Integer | Numeric version of the [result code](transaction-results.html). **Not recommended.** |
|
||||||
| `engine_result_message` | String | Human-readable explanation of the transaction's preliminary result |
|
| `engine_result_message` | String | Human-readable explanation of the transaction's preliminary result |
|
||||||
| `tx_blob` | String | The complete transaction in hex string format |
|
| `tx_blob` | String | The complete transaction in hex string format |
|
||||||
| `tx_json` | Object | The complete transaction in JSON format |
|
| `tx_json` | Object | The complete transaction in JSON format |
|
||||||
|
| `accepted` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was applied, queued, broadcast, or kept for later. The value `false` indicates that none of those happened, so the transaction cannot possibly succeed as long as you do not submit it again and have not already submitted it another time. [New in: rippled 1.5.0][] |
|
||||||
|
| `account_sequence_available` | Number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] available for the sending account after all pending and [queued](transaction-queue.html) transactions. [New in: rippled 1.5.0][] |
|
||||||
|
| `account_sequence_next` | number | _(Omitted in sign-and-submit mode)_ The next [Sequence Number][] for the sending account after all transactions that have been provisionally applied, but not transactions in the [queue](transaction-queue.html). [New in: rippled 1.5.0][] |
|
||||||
|
| `applied` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that this transaction was applied to the open ledger. In this case, the transaction is likely, but not guaranteed, to be validated in the next ledger version. [New in: rippled 1.5.0][] |
|
||||||
|
| `broadcast` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates this transaction was broadcast to peer servers in the peer-to-peer XRP Ledger network. (Note: if the server has no peers, such as in [stand-alone mode](rippled-server-modes.html#reasons-to-run-a-rippled-server-in-stand-alone-mode), the server uses the value `true` for cases where it _would_ have broadcast the transaction.) The value `false` indicates the transaction was not broadcast to any other servers. [New in: rippled 1.5.0][] |
|
||||||
|
| `kept` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates that the transaction was kept to be retried later. [New in: rippled 1.5.0][] |
|
||||||
|
| `queued` | Boolean | _(Omitted in sign-and-submit mode)_ The value `true` indicates the transaction was put in the [Transaction Queue](transaction-queue.html), which means it is likely to be included in a future ledger version. [New in: rippled 1.5.0][] |
|
||||||
|
| `open_ledger_cost` | String | _(Omitted in sign-and-submit mode)_ The current [open ledger cost](transaction-cost.html#open-ledger-cost) before processing this transaction. Transactions with a lower cost are likely to be [queued](transaction-queue.html). [New in: rippled 1.5.0][] |
|
||||||
|
| `validated_ledger_index` | String | _(Omitted in sign-and-submit mode)_ The [ledger index][] of the newest validated ledger at the time of submission. This provides a lower bound on the ledger versions that the transaction can appear in as a result of this request. (The transaction could only have been validated in this ledger version or earlier if it had already been submitted before.) |
|
||||||
|
|
||||||
**Caution:** Even if the WebSocket response has `"status":"success"`, indicating that the command was successfully received, that does _not_ indicate that the transaction executed successfully. Many situations can prevent a transaction from processing successfully, such as a lack of trust lines connecting the two accounts in a payment, or changes in the state of the ledger since the time the transaction was constructed. Even if nothing is wrong, it may take several seconds to close and validate the ledger version that includes the transaction. See the [full list of transaction responses](transaction-results.html) for details, and do not consider the transaction's results final until they appear in a validated ledger version.
|
**Warning:** Even if the WebSocket response has `"status":"success"`, indicating that the command was successfully received, that does _not_ indicate that the transaction executed successfully. Many situations can prevent a transaction from processing successfully, such as a lack of trust lines connecting the two accounts in a payment, or changes in the state of the ledger since the time the transaction was constructed. Even if nothing is wrong, it may take several seconds to close and validate the ledger version that includes the transaction. See the [full list of transaction responses](transaction-results.html) for details, and do not consider the transaction's results final until they appear in a validated ledger version.
|
||||||
|
|
||||||
**Caution:** If this command results in an error messages, the message can contain the secret key from the request. (This is not a problem if the request contained a signed tx_blob instead.) Make sure that these errors are not visible to others.
|
**Caution:** If this command results in an error message, the message can contain the secret key from the request. (This can only happen in sign-and-submit mode.) Make sure that these errors are not visible to others.
|
||||||
|
|
||||||
* Do not write an error including your secret key to a log file that can be seen by multiple people.
|
* Do not write an error including your secret key to a log file that can be seen by multiple people.
|
||||||
* Do not paste an error including your secret key to a public place for debugging.
|
* Do not paste an error including your secret key to a public place for debugging.
|
||||||
@@ -285,5 +322,7 @@ The response follows the [standard format][], with a successful result containin
|
|||||||
* `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. (Sign-and-Submit mode only)
|
* `tooBusy` - The transaction did not include paths, but the server is too busy to do pathfinding right now. Does not occur if you are connected as an admin. (Sign-and-Submit mode only)
|
||||||
|
|
||||||
|
|
||||||
{% include '_snippets/rippled_versions.md' %}
|
<!--{# common link defs #}-->
|
||||||
{% include '_snippets/rippled-api-links.md' %}
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ An example of the request format:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"command": "tx",
|
"command": "tx",
|
||||||
@@ -21,7 +21,7 @@ An example of the request format:
|
|||||||
```
|
```
|
||||||
*JSON-RPC*
|
*JSON-RPC*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"method": "tx",
|
"method": "tx",
|
||||||
"params": [
|
"params": [
|
||||||
@@ -34,7 +34,7 @@ An example of the request format:
|
|||||||
```
|
```
|
||||||
*Commandline*
|
*Commandline*
|
||||||
|
|
||||||
```
|
```sh
|
||||||
#Syntax: tx transaction [binary]
|
#Syntax: tx transaction [binary]
|
||||||
rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 false
|
rippled tx E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7 false
|
||||||
```
|
```
|
||||||
@@ -48,7 +48,11 @@ The request includes the following parameters:
|
|||||||
| `Field` | Type | Description |
|
| `Field` | Type | Description |
|
||||||
|:--------------|:--------|:---------------------------------------------------|
|
|:--------------|:--------|:---------------------------------------------------|
|
||||||
| `transaction` | String | The 256-bit hash of the transaction, as hex. |
|
| `transaction` | String | The 256-bit hash of the transaction, as hex. |
|
||||||
| `binary` | Boolean | (Optional, defaults to false) If true, return transaction data and metadata as hex strings instead of JSON |
|
| `binary` | Boolean | _(Optional)_ If `true`, return transaction data and metadata as binary [serialized](serialization.html) to hexadecimal strings. If `false`, return transaction data and metadata as JSON. The default is `false`. |
|
||||||
|
| `min_ledger` | Number | _(Optional)_ Use this with `max_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], starting with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in this range. [New in: rippled 1.5.0][] |
|
||||||
|
| `max_ledger` | Number | _(Optional)_ Use this with `min_ledger` to specify a range of up to 1000 [ledger indexes][ledger index], ending with this ledger (inclusive). If the server [cannot find the transaction](#not-found-response), it confirms whether it was able to search all the ledgers in the requested range. [New in: rippled 1.5.0][] |
|
||||||
|
|
||||||
|
**Caution:** This command may successfully find the transaction even if it is included in a ledger _outside_ the range of `min_ledger` to `max_ledger`.
|
||||||
|
|
||||||
## Response Format
|
## Response Format
|
||||||
|
|
||||||
@@ -58,7 +62,7 @@ An example of a successful response:
|
|||||||
|
|
||||||
*WebSocket*
|
*WebSocket*
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"result": {
|
"result": {
|
||||||
@@ -197,11 +201,79 @@ The response follows the [standard format][], with a successful result containin
|
|||||||
| `validated` | Boolean | True if this data is from a validated ledger version; if omitted or set to false, this data is not final. |
|
| `validated` | Boolean | True if this data is from a validated ledger version; if omitted or set to false, this data is not final. |
|
||||||
| (Various) | (Various) | Other fields from the [Transaction object](transaction-formats.html) |
|
| (Various) | (Various) | Other fields from the [Transaction object](transaction-formats.html) |
|
||||||
|
|
||||||
|
### Not Found Response
|
||||||
|
|
||||||
|
If the server does not find the transaction, it returns a `txnNotFound` error, which could mean two things:
|
||||||
|
|
||||||
|
- The transaction has not been included in any ledger version, and has not been executed.
|
||||||
|
- The transaction was included in a ledger version that the server does not have available.
|
||||||
|
|
||||||
|
This means that a `txnNotFound` on its own is not sufficient to know the [final outcome of a transaction](finality-of-results.html).
|
||||||
|
|
||||||
|
To further narrow down the possibilities, you can provide a range of ledgers to search using the `min_ledger` and `max_ledger` fields in the request. If you provide **both** of those fields, the `txnNotFound` response includes the following field:
|
||||||
|
|
||||||
|
| `Field` | Type | Description |
|
||||||
|
|:---------------|:----------|:-----------------------------------------|
|
||||||
|
| `searched_all` | Boolean | _(Omitted unless the request provided `min_ledger` and `max_ledger`)_ If `true`, the server was able to search all of the specified ledger versions, and the transaction was in none of them. If `false`, the server did not have all of the specified ledger versions available, so it is not sure if one of them might contain the transaction. [New in: rippled 1.5.0][] |
|
||||||
|
|
||||||
|
An example of a `txnNotFound` response that fully searched a requested range of ledgers:
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_START -->
|
||||||
|
|
||||||
|
_WebSocket_
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"error": "txnNotFound",
|
||||||
|
"error_code": 29,
|
||||||
|
"error_message": "Transaction not found.",
|
||||||
|
"id": 1,
|
||||||
|
"request": {
|
||||||
|
"binary": false,
|
||||||
|
"command": "tx",
|
||||||
|
"id": 1,
|
||||||
|
"max_ledger": 54368673,
|
||||||
|
"min_ledger": 54368573,
|
||||||
|
"transaction": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7"
|
||||||
|
},
|
||||||
|
"searched_all": true,
|
||||||
|
"status": "error",
|
||||||
|
"type": "response"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
_JSON-RPC_
|
||||||
|
|
||||||
|
```json
|
||||||
|
200 OK
|
||||||
|
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"error": "txnNotFound",
|
||||||
|
"error_code": 29,
|
||||||
|
"error_message": "Transaction not found.",
|
||||||
|
"request": {
|
||||||
|
"binary": false,
|
||||||
|
"command": "tx",
|
||||||
|
"max_ledger": 54368673,
|
||||||
|
"min_ledger": 54368573,
|
||||||
|
"transaction": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BDDACFCD1698C7"
|
||||||
|
},
|
||||||
|
"searched_all": true,
|
||||||
|
"status": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- MULTICODE_BLOCK_END -->
|
||||||
|
|
||||||
## Possible Errors
|
## Possible Errors
|
||||||
|
|
||||||
* Any of the [universal error types][].
|
* Any of the [universal error types][].
|
||||||
* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing.
|
* `invalidParams` - One or more fields are specified incorrectly, or one or more required fields are missing.
|
||||||
* `txnNotFound` - Either the transaction does not exist, or it was part of an older ledger version that `rippled` does not have available.
|
* `txnNotFound` - Either the transaction does not exist, or it was part of an ledger version that `rippled` does not have available.
|
||||||
|
* `excessiveLgrRange` - The `min_ledger` and `max_ledger` fields of the request are more than 1000 apart.
|
||||||
|
* `invalidLgrRange` - The specified `min_ledger` is larger than the `max_ledger`, or one of those parameters is not a valid ledger index.
|
||||||
|
|
||||||
|
|
||||||
{% include '_snippets/rippled_versions.md' %}
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ The only flag that applies globally to all transactions is as follows:
|
|||||||
|
|
||||||
When using the [sign method][] (or [submit method][] in "sign-and-submit" mode), `rippled` adds a `Flags` field with `tfFullyCanonicalSig` enabled unless the `Flags` field is already present. The `tfFullyCanonicalSig` flag ***is not*** automatically enabled if `Flags` is explicitly specified. The flag ***is not*** automatically enabled when using the [sign_for method][] to add a signature to a multi-signed transaction.
|
When using the [sign method][] (or [submit method][] in "sign-and-submit" mode), `rippled` adds a `Flags` field with `tfFullyCanonicalSig` enabled unless the `Flags` field is already present. The `tfFullyCanonicalSig` flag ***is not*** automatically enabled if `Flags` is explicitly specified. The flag ***is not*** automatically enabled when using the [sign_for method][] to add a signature to a multi-signed transaction.
|
||||||
|
|
||||||
**Warning:** If you do not enable `tfFullyCanonicalSig`, it is theoretically possible for a malicious actor to modify your transaction signature so that the transaction may succeed with a different hash than expected. In the worst case, this could trick your integration into submitting the same payment multiple times. To avoid this problem, enable the `tfFullyCanonicalSig` flag on all transactions you sign.
|
**Warning:** If you do not enable `tfFullyCanonicalSig`, it is theoretically possible for a malicious actor to modify your transaction signature so that the transaction may succeed with a different hash than expected. In the worst case, this could [trick your integration into submitting the same payment multiple times](transaction-malleability.html#exploit-with-malleable-transactions). To avoid this problem, enable the `tfFullyCanonicalSig` flag on all transactions you sign. If the [RequireFullyCanonicalSig amendment][] :not_enabled: is enabled, all single-signed transactions are protected regardless of the tfFullyCanonicalSig flag.
|
||||||
|
|
||||||
### Flag Ranges
|
### Flag Ranges
|
||||||
|
|
||||||
|
|||||||
@@ -24,192 +24,70 @@ These public servers are not for sustained or business use, and they may become
|
|||||||
|
|
||||||
## Admin Access
|
## Admin Access
|
||||||
|
|
||||||
To use a `rippled` server's [Admin Methods](admin-rippled-methods.html). In this case, you should use whatever IP and port you configured the server to bind. (For example, `127.0.0.1:54321`) Additionally, to access admin functionality, you must connect from a port/IP address marked as admin in the config file.
|
`rippled` API methods are divided into [Public Methods](public-rippled-methods.html) and [Admin Methods](admin-rippled-methods.html) so that organizations can offer public servers for the benefit of the community. To access admin methods, or admin functionality of public methods, you must connect to the API on a **port and IP address marked as admin** in the server's config file.
|
||||||
|
|
||||||
The [example config file](https://github.com/ripple/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073) listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin.
|
The [example config file](https://github.com/ripple/rippled/blob/f00f263852c472938bf8e993e26c7f96f435935c/cfg/rippled-example.cfg#L1154-L1179) listens for connections on the local loopback network (127.0.0.1), with JSON-RPC (HTTP) on port 5005 and WebSocket (WS) on port 6006, and treats all connected clients as admin.
|
||||||
|
|
||||||
|
|
||||||
## WebSocket API
|
## WebSocket API
|
||||||
|
|
||||||
If you are looking to try out some methods on the XRP Ledger, you can skip writing your own WebSocket code and go straight to using the API at the [Ripple WebSocket API Tool](websocket-api-tool.html). Later on, when you want to connect to your own `rippled` server, you can [build your own client in the browser](monitor-incoming-payments-with-websocket.html) or [in Node.js](https://www.npmjs.com/package/ws).
|
If you are looking to try out some methods on the XRP Ledger, you can skip writing your own WebSocket code and go straight to using the API at the [Ripple WebSocket API Tool](websocket-api-tool.html). Later on, when you want to connect to your own `rippled` server, you can [build your own client in the browser](monitor-incoming-payments-with-websocket.html) or [in Node.js](https://www.npmjs.com/package/ws).
|
||||||
|
|
||||||
### Request Formatting
|
Example WebSocket API request:
|
||||||
|
|
||||||
After you open a WebSocket to the `rippled` server, you can send commands as a [JSON](https://en.wikipedia.org/wiki/JSON) object, with the following attributes:
|
```json
|
||||||
|
{
|
||||||
|
"id": "my_first_request",
|
||||||
|
"command": "server_info",
|
||||||
|
"api_version": 1
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
* Put command name in top-level `"command"` field
|
The response to [this command][server_info method] shows you the current status of the server. Or, read more about [Request Formatting](request-formatting.html) and [Response Formatting](response-formatting.html).
|
||||||
* All the relevant parameters for the command are also in the top level
|
|
||||||
* Optionally include an `"id"` field with an arbitrary value. The response to this request uses the same `"id"` field. This way, even if responses arrive out of order, you know which request prompted which response.
|
|
||||||
|
|
||||||
The response comes as a JSON object.
|
|
||||||
|
|
||||||
## JSON-RPC
|
## JSON-RPC
|
||||||
|
|
||||||
You can use any HTTP client (like [RESTED for Firefox](https://addons.mozilla.org/en-US/firefox/addon/rested/), [Postman for Chrome](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) or [Online HTTP client ExtendsClass](https://extendsclass.com/rest-client-online.html)) to make JSON-RPC calls a `rippled` server. Most programming languages have a library for making HTTP requests built in.
|
You can use any HTTP client (like [RESTED for Firefox](https://addons.mozilla.org/en-US/firefox/addon/rested/), [Postman for Chrome](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en) or [Online HTTP client ExtendsClass](https://extendsclass.com/rest-client-online.html)) to make JSON-RPC calls a `rippled` server. Most programming languages have a library for making HTTP requests built in.
|
||||||
|
|
||||||
### Request Formatting
|
Example JSON-RPC request:
|
||||||
|
|
||||||
To make a JSON-RPC request, send an HTTP **POST** request to the root path (`/`) on the port and IP where the `rippled` server is listening for JSON-RPC connections. You can use HTTP/1.0 or HTTP/1.1. If you use HTTPS, you should use TLS v1.2. For security reasons, `rippled` _does not support_ SSL v3 or earlier.
|
```json
|
||||||
|
|
||||||
Always include a `Content-Type` header with the value `application/json`.
|
|
||||||
|
|
||||||
If you plan on making multiple requests, use [Keep-Alives](http://tools.ietf.org/html/rfc7230#section-6.3) so that you do not have to close and re-open the connection in between requests.
|
|
||||||
|
|
||||||
Send request body as a [JSON](https://en.wikipedia.org/wiki/JSON) object with the following attributes:
|
|
||||||
|
|
||||||
* Put the command in the top-level `"method"` field
|
|
||||||
* Include a top-level `"params"` field. The contents of this field should be **a one-item array** containing only a nested JSON object with all the parameters for the command.
|
|
||||||
|
|
||||||
The response is also a JSON object.
|
|
||||||
|
|
||||||
|
|
||||||
## Commandline
|
|
||||||
|
|
||||||
The commandline interface connects to the same service as the JSON-RPC one, so the public servers and server configuration are the same. As a commandline client, `rippled` connects to the local instance. For example:
|
|
||||||
|
|
||||||
```
|
|
||||||
rippled --conf=/etc/rippled.cfg server_info
|
|
||||||
```
|
|
||||||
|
|
||||||
**Note:** The commandline interface is intended for administrative purposes only and is _not a supported API_.
|
|
||||||
|
|
||||||
|
|
||||||
### Request Formatting
|
|
||||||
|
|
||||||
The commandline puts the command after any normal (dash-prefaced) commandline options, followed by a limited set of parameters, separated by spaces. For any parameter values that might contain spaces or other unusual characters, use single-quotes to encapsulate them.
|
|
||||||
|
|
||||||
|
|
||||||
## Example Request
|
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_START -->
|
|
||||||
|
|
||||||
*WebSocket*
|
|
||||||
|
|
||||||
```
|
|
||||||
{
|
|
||||||
"id": 2,
|
|
||||||
"command": "account_info",
|
|
||||||
"account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
|
|
||||||
"strict": true,
|
|
||||||
"ledger_index": "validated"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
*JSON-RPC*
|
|
||||||
|
|
||||||
```
|
|
||||||
POST http://s1.ripple.com:51234/
|
POST http://s1.ripple.com:51234/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
{
|
{
|
||||||
"method": "account_info",
|
"method": "server_info",
|
||||||
"params": [
|
"params": [
|
||||||
{
|
{
|
||||||
"account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
|
"api_version": 1
|
||||||
"strict": true,
|
|
||||||
"ledger_index": "validated"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
*Commandline*
|
The response to this command shows you the current status of the server. For more information, see the [server_info method][].
|
||||||
|
|
||||||
|
## Commandline
|
||||||
|
|
||||||
|
The commandline interface connects to the same service as the JSON-RPC one, so the public servers and server configuration are the same. By default, the commandline connects to a `rippled` server running on the same machine.
|
||||||
|
|
||||||
|
Example commandline request:
|
||||||
|
|
||||||
```
|
```
|
||||||
rippled account_info r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 validated true
|
rippled --conf=/etc/opt/ripple/rippled.cfg server_info
|
||||||
```
|
```
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_END -->
|
For more information on `rippled`'s commandline usage, see [Commandline Usage Reference](https://xrpl.org/commandline-usage.html).
|
||||||
|
|
||||||
|
**Caution:** The commandline interface is intended for administrative purposes only and is _not a supported API_. New versions of `rippled` may introduce breaking changes to the commandline API without warning!
|
||||||
|
|
||||||
## Response Formatting
|
## Available Methods
|
||||||
|
|
||||||
### Example Successful Response
|
For a full list of API methods, see:
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_START -->
|
- [Public `rippled` Methods](public-rippled-methods.html): Methods available on public servers, including looking up data from the ledger and submitting transactions.
|
||||||
|
- [Admin `rippled` Methods](admin-rippled-methods.html): Methods for [managing](manage-the-rippled-server.html) the `rippled` server.
|
||||||
|
|
||||||
*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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
*Commandline*
|
|
||||||
|
|
||||||
```
|
|
||||||
{
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- MULTICODE_BLOCK_END -->
|
|
||||||
|
|
||||||
The fields of a successful response include:
|
|
||||||
|
|
||||||
| `Field` | Type | Description |
|
|
||||||
|:----------------|:---------|:------------------------------------------------|
|
|
||||||
| `id` | (Varies) | (WebSocket only) ID provided in the request that prompted this response |
|
|
||||||
| `status` | String | (WebSocket only) The value `success` indicates the request was successfully received and understood by the server. |
|
|
||||||
| `result.status` | String | (JSON-RPC and Commandline) The value `success` indicates the request was successfully received and understood by the server. |
|
|
||||||
| `type` | String | (WebSocket only) The value `response` indicates a successful response to a command. [Asynchronous notifications](subscribe.html) use a different value such as `ledgerClosed` or `transaction`. |
|
|
||||||
| `result` | Object | The result of the query; contents vary depending on the command. |
|
|
||||||
|
|
||||||
### Commandline
|
|
||||||
|
|
||||||
The response format for commandline methods is the same as JSON-RPC responses, because they use the same interface.
|
|
||||||
|
|
||||||
## See Also
|
## See Also
|
||||||
|
|
||||||
@@ -224,3 +102,8 @@ The response format for commandline methods is the same as JSON-RPC responses, b
|
|||||||
- **References:**
|
- **References:**
|
||||||
- [rippled API Reference](rippled-api.html)
|
- [rippled API Reference](rippled-api.html)
|
||||||
- [Ripple Data API v2](data-api.html)
|
- [Ripple Data API v2](data-api.html)
|
||||||
|
|
||||||
|
<!--{# common link defs #}-->
|
||||||
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# Configure gRPC
|
||||||
|
|
||||||
|
The `rippled` server has an experimental [gRPC API](https://grpc.io/). Currently, this API provides a subset of the full [`rippled` API](rippled-api.html). You can enable the gRPC API on your server with a new configuration stanza. [New in: rippled 1.5.0][]
|
||||||
|
|
||||||
|
**Caution:** gRPC support in `rippled` v1.5.0 is experimental. Configuration settings and API formats are likely to have breaking changes in forthcoming versions.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
To enable gRPC, you must meet the following prerequisites:
|
||||||
|
|
||||||
|
- You must have [installed rippled](install-rippled.html).
|
||||||
|
|
||||||
|
- Your server must be able to bind to the port you choose. The recommended port for gRPC is `50051`.
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
To enable gRPC on your server, complete the following steps:
|
||||||
|
|
||||||
|
1. In your `rippled`'s config file, add a `[port_grpc]` configuration stanza.
|
||||||
|
|
||||||
|
[port_grpc]
|
||||||
|
port = 50051
|
||||||
|
ip = 0.0.0.0
|
||||||
|
|
||||||
|
The configurable fields are as follows:
|
||||||
|
|
||||||
|
- `port` field defines the port the server listens on for gRPC connections from client applications. The recommended port is `50051`.
|
||||||
|
- `ip` defines which interfaces the server listens on. The value `0.0.0.0` listens on all available network interfaces. To limit connections to just the local loopback network (same machine), use `127.0.0.1` instead.
|
||||||
|
|
||||||
|
{% include '_snippets/conf-file-location.md' %}<!--_ -->
|
||||||
|
|
||||||
|
2. Start (or restart) the `rippled` service.
|
||||||
|
|
||||||
|
$ sudo systemctl restart rippled
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
<!-- TODO: add gRPC quickstart, overview docs here when available -->
|
||||||
|
|
||||||
|
- **Concepts:**
|
||||||
|
- [XRP Ledger Overview](xrp-ledger-overview.html)
|
||||||
|
- [Software Ecosystem](software-ecosystem.html)
|
||||||
|
- [Parallel Networks](parallel-networks.html)
|
||||||
|
- **Tutorials:**
|
||||||
|
- [Get Started with RippleAPI for JavaScript](get-started-with-rippleapi-for-javascript.html)
|
||||||
|
- [Reliable Transaction Submission](reliable-transaction-submission.html)
|
||||||
|
- [Manage the rippled Server](manage-the-rippled-server.html)
|
||||||
|
- **References:**
|
||||||
|
- [rippled API Reference](rippled-api.html)
|
||||||
|
- [Ripple Data API v2](data-api.html)
|
||||||
|
|
||||||
|
<!--{# common link defs #}-->
|
||||||
|
{% include '_snippets/rippled-api-links.md' %}
|
||||||
|
{% include '_snippets/tx-type-links.md' %}
|
||||||
|
{% include '_snippets/rippled_versions.md' %}
|
||||||
@@ -237,7 +237,7 @@ targets:
|
|||||||
"error-formatting.html#universal-errors": "error-formatting.html#汎用エラー"
|
"error-formatting.html#universal-errors": "error-formatting.html#汎用エラー"
|
||||||
# Fix 2 links from untranslated demurrage.html:
|
# Fix 2 links from untranslated demurrage.html:
|
||||||
"currency-formats.html#issued-currency-precision": "currency-formats.html#発行済み通貨の計算"
|
"currency-formats.html#issued-currency-precision": "currency-formats.html#発行済み通貨の計算"
|
||||||
# Fix 10 links from untranslated known-amendments.html:
|
# Fix links from untranslated known-amendments.html:
|
||||||
"accounts.html#permanence-of-accounts": "accounts.html#アカウントの永続性"
|
"accounts.html#permanence-of-accounts": "accounts.html#アカウントの永続性"
|
||||||
"paths.html#path-specifications": "paths.html#パスの仕様"
|
"paths.html#path-specifications": "paths.html#パスの仕様"
|
||||||
"rippling.html#the-noripple-flag": "rippling.html#norippleフラグ"
|
"rippling.html#the-noripple-flag": "rippling.html#norippleフラグ"
|
||||||
@@ -248,6 +248,8 @@ targets:
|
|||||||
"accountroot.html#accountroot-flags": "accountroot.html#accountrootのフラグ" # also used in untranslated require-destination-tags.html, become-an-xrp-ledger-gateway.html
|
"accountroot.html#accountroot-flags": "accountroot.html#accountrootのフラグ" # also used in untranslated require-destination-tags.html, become-an-xrp-ledger-gateway.html
|
||||||
"accountset.html#accountset-flags": "accountset.html#accountsetのフラグ"
|
"accountset.html#accountset-flags": "accountset.html#accountsetのフラグ"
|
||||||
"basic-data-types.html#ledger-index": "basic-data-types.html#レジャーインデックス"
|
"basic-data-types.html#ledger-index": "basic-data-types.html#レジャーインデックス"
|
||||||
|
"transaction-common-fields.html#global-flags": "transaction-common-fields.html#グローバルフラグ"
|
||||||
|
"transaction-malleability.html#malleability-with-multi-signatures": "transaction-malleability.html#マルチ署名の展性"
|
||||||
# Fix 2 links from untranslated data type snippets
|
# Fix 2 links from untranslated data type snippets
|
||||||
"basic-data-types.html#hashes": "basic-data-types.html#ハッシュ"
|
"basic-data-types.html#hashes": "basic-data-types.html#ハッシュ"
|
||||||
"basic-data-types.html#addresses": "basic-data-types.html#アドレス"
|
"basic-data-types.html#addresses": "basic-data-types.html#アドレス"
|
||||||
@@ -2506,6 +2508,17 @@ pages:
|
|||||||
targets:
|
targets:
|
||||||
- ja
|
- ja
|
||||||
|
|
||||||
|
- md: tutorials/manage-the-rippled-server/configuration/configure-grpc.md
|
||||||
|
html: configure-grpc.html
|
||||||
|
funnel: Docs
|
||||||
|
doc_type: Tutorials
|
||||||
|
category: Manage the rippled Server
|
||||||
|
subcategory: Configuration
|
||||||
|
blurb: Enable and configure the gRPC API.
|
||||||
|
targets:
|
||||||
|
- en
|
||||||
|
- ja
|
||||||
|
|
||||||
- md: tutorials/manage-the-rippled-server/configuration/enable-public-signing.md
|
- md: tutorials/manage-the-rippled-server/configuration/enable-public-signing.md
|
||||||
html: enable-public-signing.html
|
html: enable-public-signing.html
|
||||||
funnel: Docs
|
funnel: Docs
|
||||||
@@ -4502,6 +4515,18 @@ pages:
|
|||||||
targets:
|
targets:
|
||||||
- ja
|
- ja
|
||||||
|
|
||||||
|
- md: references/rippled-api/admin-rippled-methods/status-and-debugging-methods/manifest.md
|
||||||
|
html: manifest.html
|
||||||
|
blurb: Look up the public information about a known validator.
|
||||||
|
funnel: Docs
|
||||||
|
doc_type: References
|
||||||
|
supercategory: rippled API
|
||||||
|
category: Admin rippled Methods
|
||||||
|
subcategory: Status and Debugging Methods
|
||||||
|
targets:
|
||||||
|
- en
|
||||||
|
- ja
|
||||||
|
|
||||||
- md: references/rippled-api/admin-rippled-methods/status-and-debugging-methods/print.md
|
- md: references/rippled-api/admin-rippled-methods/status-and-debugging-methods/print.md
|
||||||
html: print.html
|
html: print.html
|
||||||
blurb: Get information about internal subsystems.
|
blurb: Get information about internal subsystems.
|
||||||
@@ -4524,6 +4549,18 @@ pages:
|
|||||||
targets:
|
targets:
|
||||||
- ja
|
- ja
|
||||||
|
|
||||||
|
- md: references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validator_info.md
|
||||||
|
html: validator_info.html
|
||||||
|
blurb: Get the server's validation settings, if configured as a validator.
|
||||||
|
funnel: Docs
|
||||||
|
doc_type: References
|
||||||
|
supercategory: rippled API
|
||||||
|
category: Admin rippled Methods
|
||||||
|
subcategory: Status and Debugging Methods
|
||||||
|
targets:
|
||||||
|
- en
|
||||||
|
- ja
|
||||||
|
|
||||||
- md: references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validator_list_sites.md
|
- md: references/rippled-api/admin-rippled-methods/status-and-debugging-methods/validator_list_sites.md
|
||||||
html: validator_list_sites.html
|
html: validator_list_sites.html
|
||||||
blurb: Get information about sites that publish validator lists.
|
blurb: Get information about sites that publish validator lists.
|
||||||
@@ -6035,6 +6072,10 @@ known_broken_links:
|
|||||||
- http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2006:345:0001:0009:EN:PDF
|
- http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2006:345:0001:0009:EN:PDF
|
||||||
# Dev blog link assumes relationship with xrpl.org
|
# Dev blog link assumes relationship with xrpl.org
|
||||||
- /blog/
|
- /blog/
|
||||||
|
# For some reason the Web Archive links are breaking in the link checker
|
||||||
|
# even though they still work in browser:
|
||||||
|
- https://web.archive.org/web/20161007113240/https://wiki.ripple.com/Ripple.txt
|
||||||
|
- http://web.archive.org/web/20171211225452/https://forum.ripple.com/viewtopic.php?f=2&t=3613
|
||||||
|
|
||||||
# Style Checker Config ------------------------------------------------------ #
|
# Style Checker Config ------------------------------------------------------ #
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user