From 2ec0b0489d697131871df16f3e41ea446411b1ef Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Wed, 13 Sep 2023 16:36:45 -0700 Subject: [PATCH] server_info/state: document new ports field --- .../server_info/jsonrpc-response.json | 84 +++++++ .../server_info/ws-response.json | 86 +++++++ content/_snippets/port-descriptor-object.md | 11 + .../server-info-methods/server_info.md | 210 ++---------------- .../server-info-methods/server_state.md | 30 +-- dactyl-config.yml | 6 +- 6 files changed, 220 insertions(+), 207 deletions(-) create mode 100644 content/_api-examples/server_info/jsonrpc-response.json create mode 100644 content/_api-examples/server_info/ws-response.json create mode 100644 content/_snippets/port-descriptor-object.md diff --git a/content/_api-examples/server_info/jsonrpc-response.json b/content/_api-examples/server_info/jsonrpc-response.json new file mode 100644 index 0000000000..17090e9ba6 --- /dev/null +++ b/content/_api-examples/server_info/jsonrpc-response.json @@ -0,0 +1,84 @@ +{ + "result": { + "info": { + "build_version": "1.12.0", + "complete_ledgers": "32570-82521761", + "hostid": "LEST", + "initial_sync_duration_us": "190181187", + "io_latency_ms": 1, + "jq_trans_overflow": "0", + "last_close": { + "converge_time_s": 3, + "proposers": 35 + }, + "load_factor": 1, + "network_id": 0, + "peer_disconnects": "5", + "peer_disconnects_resources": "0", + "peers": 22, + "ports": [ + { + "port": "7777", + "protocol": [ + "ws" + ] + }, + { + "port": "8080", + "protocol": [ + "ws" + ] + }, + { + "port": "80", + "protocol": [ + "http" + ] + }, + { + "port": "51235", + "protocol": [ + "peer" + ] + } + ], + "pubkey_node": "n9KQK8yvTDcZdGyhu2EGdDnFPEBSsY5wEgpU5GgpygTgLFsjQyPt", + "server_state": "full", + "server_state_duration_us": "91758491912", + "state_accounting": { + "connected": { + "duration_us": "83091928", + "transitions": "2" + }, + "disconnected": { + "duration_us": "104836801", + "transitions": "2" + }, + "full": { + "duration_us": "91758491912", + "transitions": "1" + }, + "syncing": { + "duration_us": "2252409", + "transitions": "1" + }, + "tracking": { + "duration_us": "48", + "transitions": "1" + } + }, + "time": "2023-Sep-13 22:12:31.377492 UTC", + "uptime": 91948, + "validated_ledger": { + "age": 1, + "base_fee_xrp": 0.00001, + "hash": "6872A6612DCEBCFC717FEBC66EB8CC2A4D5EEB2B0F15FC3DCD060049FCA47F31", + "reserve_base_xrp": 10, + "reserve_inc_xrp": 2, + "seq": 82521761 + }, + "validation_quorum": 28 + }, + "status": "success" + } +} diff --git a/content/_api-examples/server_info/ws-response.json b/content/_api-examples/server_info/ws-response.json new file mode 100644 index 0000000000..e02cfdb5f8 --- /dev/null +++ b/content/_api-examples/server_info/ws-response.json @@ -0,0 +1,86 @@ +{ + "id": 1, + "result": { + "info": { + "build_version": "1.12.0", + "complete_ledgers": "32570-82521701", + "hostid": "LEST", + "initial_sync_duration_us": "190181187", + "io_latency_ms": 1, + "jq_trans_overflow": "0", + "last_close": { + "converge_time_s": 3.001, + "proposers": 35 + }, + "load_factor": 1, + "network_id": 0, + "peer_disconnects": "5", + "peer_disconnects_resources": "0", + "peers": 22, + "ports": [ + { + "port": "7777", + "protocol": [ + "ws" + ] + }, + { + "port": "8080", + "protocol": [ + "ws" + ] + }, + { + "port": "80", + "protocol": [ + "http" + ] + }, + { + "port": "51235", + "protocol": [ + "peer" + ] + } + ], + "pubkey_node": "n9KQK8yvTDcZdGyhu2EGdDnFPEBSsY5wEgpU5GgpygTgLFsjQyPt", + "server_state": "full", + "server_state_duration_us": "91535211664", + "state_accounting": { + "connected": { + "duration_us": "83091928", + "transitions": "2" + }, + "disconnected": { + "duration_us": "104836801", + "transitions": "2" + }, + "full": { + "duration_us": "91535211664", + "transitions": "1" + }, + "syncing": { + "duration_us": "2252409", + "transitions": "1" + }, + "tracking": { + "duration_us": "48", + "transitions": "1" + } + }, + "time": "2023-Sep-13 22:08:48.097189 UTC", + "uptime": 91725, + "validated_ledger": { + "age": 4, + "base_fee_xrp": 0.00001, + "hash": "5825332DC66029ECCD896CACB3BBB79E4F5372A8DCA91AA2874A1A1A87B79F84", + "reserve_base_xrp": 10, + "reserve_inc_xrp": 2, + "seq": 82521701 + }, + "validation_quorum": 28 + } + }, + "status": "success", + "type": "response" +} diff --git a/content/_snippets/port-descriptor-object.md b/content/_snippets/port-descriptor-object.md new file mode 100644 index 0000000000..3d134b473e --- /dev/null +++ b/content/_snippets/port-descriptor-object.md @@ -0,0 +1,11 @@ +### Port Descriptor Object + + +Each member of the `ports` array is an object with the following fields: + +| Field | Value | Description | +|------------|-----------------|-------------| +| `port` | String - Number | A port number where the server is listening. | +| `protocol` | Array of String | A list of protocols being served on this port. Valid protocols include `http` or `https` for JSON-RPC, `ws`, `ws2`, `wss`, `wss2` for WebSocket, `grpc` for [gRPC](configure-grpc.html), and `peer` for the [XRP Ledger Peer Protocol](peer-protocol.html). | + +**Note:** Depending on network infrastructure, the ports and protocols reported here may not match how the server can be reached from the outside network. For example, if TLS terminates at a load balancer or proxy, the server may report `http` on one port, but might only be reachable through `https` on port 443 from outside. \ No newline at end of file diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md index 756a8b5205..2370733b28 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_info.md @@ -57,66 +57,7 @@ An example of a successful response: *WebSocket* ```json -{ - "id": 1, - "result": { - "info": { - "build_version": "1.9.4", - "complete_ledgers": "32570-75801736", - "hostid": "ARMY", - "initial_sync_duration_us": "273518294", - "io_latency_ms": 1, - "jq_trans_overflow": "2282", - "last_close": { - "converge_time_s": 3.002, - "proposers": 35 - }, - "load_factor": 1, - "network_id": 0, - "peer_disconnects": "3194", - "peer_disconnects_resources": "3", - "peers": 20, - "pubkey_node": "n9KKBZvwPZ95rQi4BP3an1MRctTyavYkZiLpQwasmFYTE6RYdeX3", - "server_state": "full", - "server_state_duration_us": "69205850392", - "state_accounting": { - "connected": { - "duration_us": "141058919", - "transitions": "7" - }, - "disconnected": { - "duration_us": "514136273", - "transitions": "3" - }, - "full": { - "duration_us": "4360230140761", - "transitions": "32" - }, - "syncing": { - "duration_us": "50606510", - "transitions": "30" - }, - "tracking": { - "duration_us": "40245486", - "transitions": "34" - } - }, - "time": "2022-Nov-16 21:50:22.711679 UTC", - "uptime": 4360976, - "validated_ledger": { - "age": 1, - "base_fee_xrp": 0.00001, - "hash": "3147A41F5F013209581FCDCBBB7A87A4F01EF6842963E13B2B14C8565E00A22B", - "reserve_base_xrp": 10, - "reserve_inc_xrp": 2, - "seq": 75801736 - }, - "validation_quorum": 28 - } - }, - "status": "success", - "type": "response" -} +{% include '_api-examples/server_info/ws-response.json' %} ``` *JSON-RPC* @@ -124,130 +65,16 @@ An example of a successful response: ```json 200 OK -{ - "result": { - "info": { - "build_version": "1.9.4", - "complete_ledgers": "32570-75801747", - "hostid": "ABET", - "initial_sync_duration_us": "566800928", - "io_latency_ms": 1, - "jq_trans_overflow": "47035", - "last_close": { - "converge_time_s": 3, - "proposers": 35 - }, - "load_factor": 1, - "network_id": 0, - "peer_disconnects": "542", - "peer_disconnects_resources": "1", - "peers": 24, - "pubkey_node": "n9LvjJyaYHBWUvQUat632RrnpS7UHVLW2tLUGXSZ2yXouh4goDHX", - "server_state": "full", - "server_state_duration_us": "3612238603", - "state_accounting": { - "connected": { - "duration_us": "125498126", - "transitions": "67" - }, - "disconnected": { - "duration_us": "473415516", - "transitions": "2" - }, - "full": { - "duration_us": "4365855930299", - "transitions": "337" - }, - "syncing": { - "duration_us": "1383837914", - "transitions": "311" - }, - "tracking": { - "duration_us": "518995710", - "transitions": "374" - } - }, - "time": "2022-Nov-16 21:51:03.737667 UTC", - "uptime": 4368357, - "validated_ledger": { - "age": 1, - "base_fee_xrp": 0.00001, - "hash": "D54A94D5EF620DC212EAB5958D592EC641FC94ED92146477A04DCE5B006DFF05", - "reserve_base_xrp": 10, - "reserve_inc_xrp": 2, - "seq": 75801747 - }, - "validation_quorum": 28 - }, - "status": "success" - } -} +{% include '_api-examples/server_info/jsonrpc-response.json' %} ``` *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 +2023-Sep-13 22:19:39.404596100 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005 -{ - "result": { - "info": { - "build_version": "1.9.4", - "complete_ledgers": "32570-75801747", - "hostid": "ABET", - "initial_sync_duration_us": "566800928", - "io_latency_ms": 1, - "jq_trans_overflow": "47035", - "last_close": { - "converge_time_s": 3, - "proposers": 35 - }, - "load_factor": 1, - "network_id": 0, - "peer_disconnects": "542", - "peer_disconnects_resources": "1", - "peers": 24, - "pubkey_node": "n9LvjJyaYHBWUvQUat632RrnpS7UHVLW2tLUGXSZ2yXouh4goDHX", - "server_state": "full", - "server_state_duration_us": "3612238603", - "state_accounting": { - "connected": { - "duration_us": "125498126", - "transitions": "67" - }, - "disconnected": { - "duration_us": "473415516", - "transitions": "2" - }, - "full": { - "duration_us": "4365855930299", - "transitions": "337" - }, - "syncing": { - "duration_us": "1383837914", - "transitions": "311" - }, - "tracking": { - "duration_us": "518995710", - "transitions": "374" - } - }, - "time": "2022-Nov-16 21:51:03.737667 UTC", - "uptime": 4368357, - "validated_ledger": { - "age": 1, - "base_fee_xrp": 0.00001, - "hash": "D54A94D5EF620DC212EAB5958D592EC641FC94ED92146477A04DCE5B006DFF05", - "reserve_base_xrp": 10, - "reserve_inc_xrp": 2, - "seq": 75801747 - }, - "validation_quorum": 28 - }, - "status": "success" - } -} +{% include '_api-examples/server_info/jsonrpc-response.json' %} ``` @@ -258,27 +85,28 @@ The `info` object may have some arrangement of the following fields: | `Field` | Type | Description | |:------------------------------------|:----------------|:---------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked-servers). 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-servers). If the server is not amendment blocked, the response omits this field. | | `build_version` | String | The version number of the running `rippled` server. | | `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 such as `24900901-24900984,24901116-24901158`. If the server does not have any complete ledgers (for example, it recently 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 [RFC-1751][] word based on the [node public key](peer-protocol.html#node-key-pair). | | `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][] | +| `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). | | `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.converge_time_s` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in seconds. | | `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | | `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.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. | | `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_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_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_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the [transaction cost][] that a transaction must pay to get into the open ledger. | +| `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. | +| `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). | | `peers` | Number | _(Omitted by [reporting mode][Reporting mode] servers)_ How many other `rippled` servers this one is currently connected to. | +| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). [New in: rippled 1.12.0][] | | `pubkey_node` | String | Public key used to verify this server for peer-to-peer communications. This [_node key pair_](peer-protocol.html#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. | | `reporting` | Object | _([Reporting mode](rippled-server-modes.html) servers only)_ Information about this server's reporting-mode specific configurations. | @@ -286,12 +114,12 @@ The `info` object may have some arrangement of the following fields: | `reporting.is_writer` | Boolean | _([Reporting mode](rippled-server-modes.html) servers only)_ If `true`, this server is writing to the external database with ledger data. If `false`, it is not currently writing, possibly because another reporting mode server is currently populating a shared database, or because it's configured as read-only.| | `reporting.last_publish_time` | String | _([Reporting mode](rippled-server-modes.html) servers only)_ An ISO 8601 timestamp indicating when this server last published a validated ledger to its [subscription streams](subscribe.html). | | `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](rippled-server-states.html) for more details. | -| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. [New in: rippled 1.2.0][] | -| `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.*.transitions` | String | The number of times the server has changed 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][] | +| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | +| `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. | +| `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.) | +| `state_accounting.*.transitions` | String | The number of times the server has changed into this state. | +| `time` | String | The current time in UTC, according to the server's clock. | +| `uptime` | Number | Number of consecutive seconds that the server has been operational. | | `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.base_fee_xrp` | Number | Base fee, in XRP. This may be represented in scientific notation such as `1e-05` for 0.00001. | @@ -300,12 +128,14 @@ The `info` object may have some arrangement of the following fields: | `validated_ledger.reserve_inc_xrp` | Number | Amount of XRP (not drops) added to the account reserve for each object an account owns in the ledger. | | `validated_ledger.seq` | Number | The [ledger index][] of the latest validated 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. | -| `validator_list_expires` | String | _(Admin only)_ Either the human readable time, in UTC, when the current validator list expires, 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][] | +| `validator_list_expires` | String | _(Admin only)_ Either the human readable time, in UTC, when the current validator list expires, 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. | **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. {% include '_snippets/etl-source-object.md' %} +{% include '_snippets/port-descriptor-object.md' %} + ## Possible Errors * Any of the [universal error types][]. diff --git a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md index 003eb6252e..aa048f14c3 100644 --- a/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md +++ b/content/references/http-websocket-apis/public-api-methods/server-info-methods/server_state.md @@ -268,12 +268,12 @@ The `state` object may have some arrangement of the following fields: | `Field` | Type | Description | |:---------------------------------|:----------------|:------------------------| -| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, this server is [amendment blocked](amendments.html#amendment-blocked-servers). 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-servers). If the server is not amendment blocked, the response omits this field. | | `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 recently 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. | | `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 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][] | +| `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). | | `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.converge_time` | Number | The amount of time it took to reach a consensus on the most recently validated ledger version, in milliseconds. | | `last_close.proposers` | Number | How many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version. | @@ -281,12 +281,13 @@ The `state` object may have some arrangement of the following fields: | `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_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_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` | 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` | 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` | 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. | +| `load_factor_fee_escalation` | Number | _(May be omitted)_ The current multiplier to the [transaction cost][] to get into the open ledger, in [fee levels][]. | +| `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][]. | +| `load_factor_fee_reference` | Number | _(May be omitted)_ The [transaction cost][] with no load scaling, in [fee levels][]. | +| `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). | | `peers` | Number | _(Omitted by [reporting mode][Reporting mode] servers)_ How many other `rippled` servers this one is currently connected to. | +| `ports` | Array | A list of ports where the server is listening for API commands. Each entry in the array is a [Port Descriptor object](#port-descriptor-object). [New in: rippled 1.12.0][] | | `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. | | `reporting` | Object | _([Reporting mode][] servers only)_ Information about this server's reporting-mode specific configurations. | @@ -294,12 +295,12 @@ The `state` object may have some arrangement of the following fields: | `reporting.is_writer` | Boolean | _([Reporting mode][] servers only)_ If `true`, this server is writing to the external database with ledger data. If `false`, it is not currently writing, possibly because another reporting mode server is currently populating a shared database, or because it's configured as read-only. | | `reporting.last_publish_time` | String | _([Reporting mode][] servers only)_ An ISO 8601 timestamp indicating when this server last saw a new validated ledger from any of its P2P mode sources. | | `server_state` | String | A string indicating to what extent the server is participating in the network. See [Possible Server States](rippled-server-states.html) for more details. | -| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. [New in: rippled 1.2.0][] | -| `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.*.transitions` | String | The number of times the server has changed 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][] | +| `server_state_duration_us` | Number | The number of consecutive microseconds the server has been in the current state. | +| `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. | +| `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.) | +| `state_accounting.*.transitions` | String | The number of times the server has changed into this state. | +| `time` | String | The current time in UTC, according to the server's clock. | +| `uptime` | Number | Number of consecutive seconds that the server has been operational. | | `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` | 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][]. | @@ -308,12 +309,13 @@ The `state` object may have some arrangement of the following fields: | `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` | 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. | -| `validator_list_expires` | Number | _(Admin only)_ When the current validator list expires, 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 expires, in [seconds since the Ripple Epoch][], or 0 if the server has yet to load a published validator list. | [Reporting mode]: rippled-server-modes.html {% include '_snippets/etl-source-object.md' %} +{% include '_snippets/port-descriptor-object.md' %} ## Possible Errors diff --git a/dactyl-config.yml b/dactyl-config.yml index 4e071529b2..04fa7b1b92 100644 --- a/dactyl-config.yml +++ b/dactyl-config.yml @@ -2437,7 +2437,7 @@ pages: - md: references/protocol-reference/transactions/transaction-types/clawback.md targets: - en - - ja + - ja - md: references/protocol-reference/ledger-data/ledger-object-types/depositpreauth.md targets: @@ -3517,7 +3517,7 @@ pages: targets: - en - # TODO: update translation with reporting fields, ETL source object, corrected state_account.*.transitions field + # TODO: update translation with reporting fields, ports field, ETL source object, corrected state_account.*.transitions field - md: references/http-websocket-apis/public-api-methods/server-info-methods/server_info.ja.md outdated_translation: true targets: @@ -3527,7 +3527,7 @@ pages: targets: - en - # TODO: update translation with reporting fields, ETL source object, corrected state_account.*.transitions field + # TODO: update translation with reporting fields, ports field, ETL source object, corrected state_account.*.transitions field - md: references/http-websocket-apis/public-api-methods/server-info-methods/server_state.ja.md outdated_translation: true targets: