Merge pull request #801 from mDuo13/server_info_time

Update time fields for server_info, add missing jq_trans_overflow field
This commit is contained in:
Rome Reginelli
2020-03-30 18:09:45 -07:00
committed by GitHub
3 changed files with 799 additions and 281 deletions

View File

@@ -10,7 +10,7 @@ An example of the request format:
*WebSocket*
```
```json
{
"id": 14,
"command": "ledger",
@@ -25,7 +25,7 @@ An example of the request format:
*JSON-RPC*
```
```json
{
"method": "ledger",
"params": [
@@ -47,7 +47,7 @@ An example of the request format:
#Syntax: ledger ledger_index|ledger_hash [full|tx]
# "full" is equivalent to "full": true
# "tx" is equivalent to "transactions": true
rippled ledger current
rippled ledger validated
```
<!-- MULTICODE_BLOCK_END -->
@@ -78,66 +78,101 @@ An example of a successful response:
*WebSocket*
```
```json
{
"id": 4,
"status": "success",
"type": "response",
"id": 14,
"result": {
"ledger": {
"accepted": true,
"account_hash": "FD2709F6C07284C3EE85EDE32AC452D9013A89D9B9E781D67D9784457E86A9BB",
"account_hash": "53BD4650A024E27DEB52DBB6A52EDB26528B987EC61C895C48D1EB44CEDD9AD3",
"close_flags": 0,
"close_time": 508541181,
"close_time_human": "2016-Feb-11 21:26:21",
"close_time": 638329241,
"close_time_human": "2020-Mar-24 01:40:41.000000000 UTC",
"close_time_resolution": 10,
"closed": true,
"hash": "F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E",
"ledger_hash": "F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E",
"ledger_index": "18851530",
"parent_close_time": 508541180,
"parent_hash": "8300B70AA5A865961DED7DAC5B88047028762D5946ECA887D09D32DE442E2305",
"seqNum": "18851530",
"totalCoins": "99998102799411646",
"total_coins": "99998102799411646",
"transaction_hash": "E0DB0471A1D198611E1C050ADA4AE74EEB38CEC26E0550663E0FCB1364212A3B"
"hash": "1723099E269C77C4BDE86C83FA6415D71CF20AA5CB4A94E5C388ED97123FB55B",
"ledger_hash": "1723099E269C77C4BDE86C83FA6415D71CF20AA5CB4A94E5C388ED97123FB55B",
"ledger_index": "54300932",
"parent_close_time": 638329240,
"parent_hash": "DF68B3BCABD31097634BABF0BDC87932D43D26E458BFEEFD36ADF2B3D94998C0",
"seqNum": "54300932",
"totalCoins": "99991024049648900",
"total_coins": "99991024049648900",
"transaction_hash": "50B3A8FE2C5620E43AA57564209AEDFEA3E868CFA2F6E4AB4B9E55A7A62AAF7B"
},
"ledger_hash": "F1433E9D15F33E746B8820DEEE4879F48181704364E459332561DF8E52E4EB7E",
"ledger_index": 18851530,
"ledger_hash": "1723099E269C77C4BDE86C83FA6415D71CF20AA5CB4A94E5C388ED97123FB55B",
"ledger_index": 54300932,
"validated": true
}
},
"status": "success",
"type": "response"
}
```
*JSON-RPC*
```
```json
200 OK
{
"result": {
"ledger": {
"accepted": true,
"account_hash": "B089E7CD4F5167249951611AAEC863D4BF84FF098500E9CB50561F1A89EED825",
"close_flags": 0,
"close_time": 508541222,
"close_time_human": "2016-Feb-11 21:27:02",
"close_time_resolution": 10,
"closed": true,
"hash": "85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157",
"ledger_hash": "85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157",
"ledger_index": "18851543",
"parent_close_time": 508541221,
"parent_hash": "C382DB117F2D5AAECFBFB43EA509F8E56D6E1D1297CE00C0D02A3EE695ABB78F",
"seqNum": "18851543",
"totalCoins": "99998102795090646",
"total_coins": "99998102795090646",
"transaction_hash": "BEC71A3CAD11BFC4E4013CD109F220E0850E9A3808B15FAA6DAE4D898970EFAF"
},
"ledger_hash": "85E6D422F1A3AE0BEA315C4F09CD0B45022312A4BBF0D308246E901536B61157",
"ledger_index": 18851543,
"status": "success",
"validated": true
}
"result": {
"ledger": {
"accepted": true,
"account_hash": "B258A8BB4743FB74CBBD6E9F67E4A56C4432EA09E5805E4CC2DA26F2DBE8F3D1",
"close_flags": 0,
"close_time": 638329271,
"close_time_human": "2020-Mar-24 01:41:11.000000000 UTC",
"close_time_resolution": 10,
"closed": true,
"hash": "3652D7FD0576BC452C0D2E9B747BDD733075971D1A9A1D98125055DEF428721A",
"ledger_hash": "3652D7FD0576BC452C0D2E9B747BDD733075971D1A9A1D98125055DEF428721A",
"ledger_index": "54300940",
"parent_close_time": 638329270,
"parent_hash": "AE996778246BC81F85D5AF051241DAA577C23BCA04C034A7074F93700194520D",
"seqNum": "54300940",
"totalCoins": "99991024049618156",
"total_coins": "99991024049618156",
"transaction_hash": "FC6FFCB71B2527DDD630EE5409D38913B4D4C026AA6C3B14A3E9D4ED45CFE30D"
},
"ledger_hash": "3652D7FD0576BC452C0D2E9B747BDD733075971D1A9A1D98125055DEF428721A",
"ledger_index": 54300940,
"status": "success",
"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
}
}
```
@@ -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.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_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.closed` | Boolean | Whether or not this ledger has been closed |
| `ledger.ledger_hash` | String | Unique identifying hash of the entire ledger. |

View File

@@ -49,225 +49,431 @@ An example of a successful response:
*WebSocket*
```
```json
{
"id": 1,
"status": "success",
"type": "response",
"result": {
"info": {
"build_version": "0.30.1-rc3",
"complete_ledgers": "18611104-18614732",
"build_version": "1.5.0-rc1",
"complete_ledgers": "54300020-54300717",
"hostid": "trace",
"io_latency_ms": 1,
"jq_trans_overflow": "0",
"last_close": {
"converge_time_s": 4.003,
"proposers": 5
"converge_time_s": 2.001,
"proposers": 34
},
"load": {
"job_types": [
{
"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,
"job_type": "clientCommand"
"job_type": "clientCommand",
"per_second": 8
},
{
"job_type": "transaction",
"per_second": 4
"per_second": 8
},
{
"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
},
{
"job_type": "trustedProposal",
"per_second": 1
"job_type": "fetchTxnData",
"per_second": 3
},
{
"job_type": "peerCommand",
"per_second": 108
},
{
"job_type": "diskAccess",
"per_second": 1
},
{
"job_type": "processTransaction",
"avg_time": 9,
"job_type": "trustedValidation",
"peak_time": 95,
"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",
"per_second": 63
"peak_time": 16,
"per_second": 416
}
],
"threads": 6
},
"load_factor": 1000,
"load_factor_net": 1000,
"peers": 10,
"pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa",
"pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
"load_factor": 1,
"peer_disconnects": "57",
"peer_disconnects_resources": "1",
"peers": 20,
"pubkey_node": "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
"pubkey_validator": "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
"server_state": "proposing",
"server_state_duration_us": 92762334,
"server_state_duration_us": "1807072679",
"state_accounting": {
"connected": {
"duration_us": "150510079",
"duration_us": "128124609",
"transitions": 1
},
"disconnected": {
"duration_us": "1827731",
"duration_us": "2290325",
"transitions": 1
},
"full": {
"duration_us": "166972201508",
"transitions": 1853
"duration_us": "1807072679",
"transitions": 1
},
"syncing": {
"duration_us": "6249156726",
"transitions": 1854
"duration_us": "3083023",
"transitions": 1
},
"tracking": {
"duration_us": "13035222",
"transitions": 1854
"duration_us": "0",
"transitions": 1
}
},
"uptime": 173379,
"time": "2020-Mar-24 01:26:58.250104 UTC",
"uptime": 1940,
"validated_ledger": {
"age": 3,
"age": 7,
"base_fee_xrp": 0.00001,
"hash": "04F7CF4EACC57140C8088F6BFDC8A824BB3ED5717C3DAA6642101F9FB446226C",
"hash": "2BA01CA6291E30CE9610EEE2E0A6E9CF12B8914B389509940E9D3B48E0DF008C",
"reserve_base_xrp": 20,
"reserve_inc_xrp": 5,
"seq": 18614732
"seq": 54300717
},
"validation_quorum": 4,
"validator_list_expires" : "2017-Oct-12 16:06:36"
"validation_quorum": 29,
"validator_list": {
"count": 1,
"expiration": "2020-Apr-10 00:00:00.000000000 UTC",
"status": "active"
}
}
}
},
"status": "success",
"type": "response"
}
```
*JSON-RPC*
```
```json
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" : {
"info" : {
"build_version" : "0.33.0-hf1",
"complete_ledgers" : "24900901-24900984,24901116-24901158",
"build_version" : "1.5.0-rc1",
"complete_ledgers" : "54300020-54300739",
"hostid" : "trace",
"io_latency_ms" : 1,
"jq_trans_overflow" : "0",
"last_close" : {
"converge_time_s" : 2.001,
"proposers" : 5
"converge_time_s" : 3,
"proposers" : 34
},
"load" : {
"job_types" : [
{
"job_type" : "untrustedProposal",
"per_second" : 36
},
{
"avg_time" : 2,
"job_type" : "ledgerData",
"peak_time" : 50
},
{
"in_progress" : 1,
"job_type" : "clientCommand"
"job_type" : "clientCommand",
"per_second" : 8
},
{
"job_type" : "transaction",
"per_second" : 6
"peak_time" : 1,
"per_second" : 8
},
{
"job_type" : "batch",
"peak_time" : 14,
"per_second" : 6
},
{
"in_progress" : 1,
"job_type" : "advanceLedger"
},
{
"job_type" : "trustedValidation",
"avg_time" : 3,
"job_type" : "advanceLedger",
"peak_time" : 48,
"per_second" : 1
},
{
"avg_time" : 77,
"job_type" : "writeObjects",
"over_target" : true,
"peak_time" : 2990,
"per_second" : 2
},
{
"job_type" : "trustedProposal",
"per_second" : 2
},
{
"job_type" : "peerCommand",
"per_second" : 205
},
{
"avg_time" : 771,
"job_type" : "diskAccess",
"over_target" : true,
"peak_time" : 1934
},
{
"job_type" : "processTransaction",
"per_second" : 6
},
{
"job_type" : "SyncReadNode",
"job_type" : "fetchTxnData",
"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",
"per_second" : 235
"peak_time" : 3,
"per_second" : 183
}
],
"threads" : 6
},
"load_factor" : 4.765625,
"load_factor_local" : 4.765625,
"peers" : 10,
"pubkey_node" : "n9McNsnzzXQPbg96PEUrrQ6z3wrvgtU4M7c97tncMpSoDzaQvPar",
"pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
"published_ledger" : 24901158,
"load_factor" : 1,
"peer_disconnects" : "60",
"peer_disconnects_resources" : "1",
"peers" : 21,
"pubkey_node" : "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
"pubkey_validator" : "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
"server_state" : "proposing",
"server_state_duration_us": 708078257,
"server_state_duration_us" : "1891111442",
"state_accounting" : {
"connected" : {
"duration_us" : "854824665",
"transitions" : 2
"duration_us" : "128124609",
"transitions" : 1
},
"disconnected" : {
"duration_us" : "2183055",
"duration_us" : "2290325",
"transitions" : 1
},
"full" : {
"duration_us" : "944104343",
"transitions" : 2
"duration_us" : "1891111442",
"transitions" : 1
},
"syncing" : {
"duration_us" : "9233178",
"duration_us" : "3083023",
"transitions" : 1
},
"tracking" : {
"duration_us" : "0",
"transitions" : 2
"transitions" : 1
}
},
"uptime" : 1792,
"time" : "2020-Mar-24 01:28:22.289087 UTC",
"uptime" : 2024,
"validated_ledger" : {
"age" : 1,
"age" : 2,
"base_fee_xrp" : 1e-05,
"hash" : "D2C122281EB72E64D19B9654A8D3D0FC4207373D3FE5D91AE516685A58874621",
"hash" : "8BE6E2792A1D27437ABAF25B42CD367474F1EC74F6E2F576A318270A825298E4",
"reserve_base_xrp" : 20,
"reserve_inc_xrp" : 5,
"seq" : 24901185
"seq" : 54300739
},
"validation_quorum" : 4,
"validator_list_expires" : "2017-Oct-12 16:06:36"
"validation_quorum" : 29,
"validator_list" : {
"count" : 1,
"expiration" : "2020-Apr-10 00:00:00.000000000 UTC",
"status" : "active"
}
},
"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][] |
| `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. |
| `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. |
| `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. |
| `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.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_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_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][] |
| `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_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.*.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][] |
| `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][] |
| `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.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_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.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. |
| `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.

View File

@@ -49,199 +49,472 @@ An example of a successful response:
*WebSocket*
```
```json
{
"id": 2,
"status": "success",
"type": "response",
"id": 1,
"result": {
"state": {
"build_version": "0.30.1-rc3",
"complete_ledgers": "18611104-18615049",
"build_version": "1.5.0-rc1",
"complete_ledgers": "54300020-54300697",
"io_latency_ms": 1,
"jq_trans_overflow": "0",
"last_close": {
"converge_time": 3003,
"proposers": 5
"converge_time": 3001,
"proposers": 34
},
"load": {
"job_types": [
{
"job_type": "untrustedProposal",
"peak_time": 1,
"avg_time": 5,
"job_type": "untrustedValidation",
"peak_time": 21
},
{
"job_type": "ledgerRequest",
"peak_time": 9,
"per_second": 3
},
{
"in_progress": 1,
"job_type": "clientCommand"
"job_type": "untrustedProposal",
"peak_time": 26,
"per_second": 45
},
{
"avg_time": 12,
"job_type": "writeObjects",
"peak_time": 345,
"per_second": 2
},
{
"job_type": "trustedProposal",
"avg_time": 15,
"job_type": "ledgerData",
"peak_time": 105,
"per_second": 1
},
{
"job_type": "peerCommand",
"per_second": 64
"in_progress": 1,
"job_type": "clientCommand",
"peak_time": 50,
"per_second": 8
},
{
"avg_time": 33,
"job_type": "diskAccess",
"peak_time": 526
"avg_time": 1,
"job_type": "transaction",
"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",
"per_second": 55
"peak_time": 12,
"per_second": 976
}
],
"threads": 6
},
"load_base": 256,
"load_factor": 256000,
"peers": 10,
"pubkey_node": "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa",
"pubkey_validator": "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
"load_factor": 256,
"load_factor_fee_escalation": 256,
"load_factor_fee_queue": 256,
"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_duration_us": 92762334,
"server_state_duration_us": "1727270915",
"state_accounting": {
"connected": {
"duration_us": "150510079",
"duration_us": "128124609",
"transitions": 1
},
"disconnected": {
"duration_us": "1827731",
"duration_us": "2290325",
"transitions": 1
},
"full": {
"duration_us": "168295542987",
"transitions": 1865
"duration_us": "1727270915",
"transitions": 1
},
"syncing": {
"duration_us": "6294237352",
"transitions": 1866
"duration_us": "3083023",
"transitions": 1
},
"tracking": {
"duration_us": "13035524",
"transitions": 1866
"duration_us": "0",
"transitions": 1
}
},
"uptime": 174748,
"time": "2020-Mar-24 01:25:38.448364 UTC",
"uptime": 1860,
"validated_ledger": {
"base_fee": 10,
"close_time": 507693650,
"hash": "FEB17B15FB64E3AF8D371E6AAFCFD8B92775BB80AB953803BD73EA8EC75ECA34",
"close_time": 638328331,
"hash": "A63E850343B9F06CFE637648FF3D46DBAB7B1E41BA6B9A26FA72AA706D82233D",
"reserve_base": 20000000,
"reserve_inc": 5000000,
"seq": 18615049
"seq": 54300697
},
"validation_quorum": 4,
"validator_list_expires": 561139596
"validation_quorum": 29,
"validator_list_expires": 639792000
}
}
},
"status": "success",
"type": "response"
}
```
*JSON-RPC*
```
```json
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" : {
"state" : {
"build_version" : "0.30.1-rc3",
"complete_ledgers" : "18611104-18615037",
"build_version" : "1.5.0-rc1",
"complete_ledgers" : "54300020-54300767",
"io_latency_ms" : 1,
"jq_trans_overflow" : "0",
"last_close" : {
"converge_time" : 2001,
"proposers" : 5
"converge_time" : 3143,
"proposers" : 34
},
"load" : {
"job_types" : [
{
"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,
"job_type" : "clientCommand"
},
{
"job_type" : "writeObjects",
"per_second" : 2
"job_type" : "clientCommand",
"peak_time" : 3,
"per_second" : 10
},
{
"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",
"peak_time" : 6
"peak_time" : 112
},
{
"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",
"per_second" : 80
"per_second" : 1594
},
{
"job_type" : "diskAccess",
"per_second" : 1
"job_type" : "processTransaction",
"per_second" : 10
},
{
"job_type" : "SyncReadNode",
"per_second" : 128
},
{
"job_type" : "AsyncReadNode",
"per_second" : 3346
},
{
"job_type" : "WriteNode",
"per_second" : 91
"per_second" : 2275
}
],
"threads" : 6
},
"load_base" : 256,
"load_factor" : 256000,
"peers" : 10,
"pubkey_node" : "n94UE1ukbq6pfZY9j54sv2A1UrEeHZXLbns3xK5CzU9NbNREytaa",
"pubkey_validator" : "n9KM73uq5BM3Fc6cxG3k5TruvbLc8Ffq17JZBmWC4uP4csL4rFST",
"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" : 21,
"pubkey_node" : "n9KUjqxCr5FKThSNXdzb7oqN8rYwScB2dUnNqxQxbEA17JkaWy5x",
"pubkey_validator" : "nHBk5DPexBjinXV8qHn7SEKzoxh2W92FxSbNTPgGtQYBzEF4msn9",
"server_state" : "proposing",
"server_state_duration_us": 708078257,
"server_state_duration_us" : "1997468900",
"state_accounting" : {
"connected" : {
"duration_us" : "150510079",
"duration_us" : "128124609",
"transitions" : 1
},
"disconnected" : {
"duration_us" : "1827731",
"duration_us" : "2290325",
"transitions" : 1
},
"full" : {
"duration_us" : "168241260112",
"transitions" : 1865
"duration_us" : "1997468900",
"transitions" : 1
},
"syncing" : {
"duration_us" : "6294237352",
"transitions" : 1866
"duration_us" : "3083023",
"transitions" : 1
},
"tracking" : {
"duration_us" : "13035524",
"transitions" : 1866
"duration_us" : "0",
"transitions" : 1
}
},
"uptime" : 174693,
"time" : "2020-Mar-24 01:30:08.646564 UTC",
"uptime" : 2130,
"validated_ledger" : {
"base_fee" : 10,
"close_time" : 507693592,
"hash" : "1C26209AE593C7EB5123363B3152D86514845FBD42CC6B05111D57F62D02B113",
"close_time" : 638328602,
"hash" : "835B1EDFA0D4B7BDE1F5030D1B5FBE98C122ABB9C34FE8889B77CD635766C1B5",
"reserve_base" : 20000000,
"reserve_inc" : 5000000,
"seq" : 18615037
"seq" : 54300767
},
"validation_quorum" : 4,
"validator_list_expires" : 561139596
"validation_quorum" : 29,
"validator_list_expires" : 639792000
},
"status" : "success"
}
}
```
<!-- MULTICODE_BLOCK_END -->
@@ -250,40 +523,42 @@ The response follows the [standard format][], with a successful result containin
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). 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. |
| `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. |
| `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 |
| `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` | 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_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_reference` | Integer | (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][] |
| `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_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. |
| `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` | Number | The number of times the server has transitioned into this state. [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.base_fee` | Unsigned Integer | 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.hash` | String | Unique hash of this ledger version, as hex |
| `validated_ledger.reserve_base` | Unsigned Integer | 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.seq` | Unsigned Integer | 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 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][] |
| `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][] |
| `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`. |
| `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][] |
| `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_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][] |
| `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_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. |
| `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` | 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][] |
| `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][]. |
| `validated_ledger.hash` | String | Unique hash of this ledger version, as hexadecimal. |
| `validated_ledger.reserve_base` | Number | The minimum [account reserve](reserves.html), 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` | 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 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][] |
## Possible Errors