Last updated

server_info (rippled)

[Source]

The server_info command asks the server for a human-readable version of various information about the rippled server being queried. For Clio servers, see server_info (Clio) instead.

Request Format

An example of the request format:

  1. WebSocket
  2. JSON-RPC
  3. Commandline
{
  "id": 1,
  "command": "server_info",
  "counters": false
}

Try it! >

The request includes the following parameters:

FieldTypeRequired?Description
countersBooleanNoIf true, return metrics about the job queue, ledger store, and API method activity. The default is false.

Response Format

An example of a successful response:

  1. WebSocket
  2. JSON-RPC
  3. Commandline
{
    "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"
}

The response follows the standard format, with a successful result containing an info object as its only field.

The info object may have some arrangement of the following fields:

FieldTypeDescription
amendment_blockedBoolean(May be omitted) If true, this server is amendment blocked. If the server is not amendment blocked, the response omits this field.
build_versionStringThe version number of the running rippled server.
closed_ledgerObject(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_ledgersStringRange 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.
hostidStringOn 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.
io_latency_msNumberAmount 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_overflowString - NumberThe 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.
last_closeObjectInformation 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_sNumberThe amount of time it took to reach a consensus on the most recently validated ledger version, in seconds.
last_close.proposersNumberHow many trusted validators the server considered (including itself, if configured as a validator) in the consensus process for the most recently validated ledger version.
loadObject(Admin only) Detailed information about the current load state of the server.
load.job_typesArray(Admin only) Information about the rate of different types of jobs the server is doing and how much time it spends on each.
load.threadsNumber(Admin only) The number of threads in the server's main job pool.
load_factorNumberThe multiplier to the transaction cost the server is currently enforcing. 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, the cluster's load factor, the open ledger cost, and the overall network's load factor.
load_factor_localNumber(May be omitted) The current multiplier to the transaction cost based on load to this server.
load_factor_netNumber(May be omitted) The current multiplier to the transaction cost being used by the rest of the network (estimated from other servers' reported load values).
load_factor_clusterNumber(May be omitted) The current multiplier to the transaction cost based on load to servers in this cluster.
load_factor_fee_escalationNumber(May be omitted) The current multiplier to the transaction cost that a transaction must pay to get into the open ledger.
load_factor_fee_queueNumber(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_serverNumber(May be omitted) The current multiplier to the transaction cost based on load to the server, cluster, and network, but not factoring in the open ledger cost.
peersNumber(Omitted by reporting mode servers) How many other rippled servers this one is currently connected to.
portsArrayA list of ports where the server is listening for API commands. Each entry in the array is a Port Descriptor object. New in: rippled 1.12.0
pubkey_nodeStringPublic 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.
pubkey_validatorString(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.
reportingObject(Reporting mode servers only) Information about this server's reporting-mode specific configurations.
reporting.etl_sourcesArray(Reporting mode servers only) A list of P2P-mode servers this reporting mode is retrieving data from. Each entry in this array is an ETL Source object.
reporting.is_writerBoolean(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_timeString(Reporting mode servers only) An ISO 8601 timestamp indicating when this server last published a validated ledger to its subscription streams.
server_stateStringA string indicating to what extent the server is participating in the network. See Possible Server States for more details.
server_state_duration_usNumberThe number of consecutive microseconds the server has been in the current state.
state_accountingObjectA map of various server states 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_usStringThe number of microseconds the server has spent in this state. (This is updated whenever the server transitions into another state.)
state_accounting.*.transitionsStringThe number of times the server has changed into this state.
timeStringThe current time in UTC, according to the server's clock.
uptimeNumberNumber of consecutive seconds that the server has been operational.
validated_ledgerObject(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.ageNumberThe time since the ledger was closed, in seconds.
validated_ledger.base_fee_xrpNumberBase fee, in XRP. This may be represented in scientific notation such as 1e-05 for 0.00001.
validated_ledger.hashStringUnique hash for the ledger, as hexadecimal.
validated_ledger.reserve_base_xrpNumberMinimum amount of XRP (not drops) necessary for every account to keep in reserve
validated_ledger.reserve_inc_xrpNumberAmount of XRP (not drops) added to the account reserve for each object an account owns in the ledger.
validated_ledger.seqNumberThe ledger index of the latest validated ledger.
validation_quorumNumberMinimum number of trusted validations required to validate a ledger version. Some circumstances may cause the server to require more validations.
validator_list_expiresString(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.
countersObjectThis object contains performance metrics pertaining to the RPC calls (currently executing calls and completed calls) and the JobQueue. It also contains details of the nodestore like node_writes, node_reads_total, node_reads_hit, etc
current_activityObjectThis field lists the items currently being run in the job queue and contains two arrays for jobs and methods.

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.

ETL Source Object

On a reporting mode server, each member of the etl_sources field is an object with the following fields:

FieldTypeDescription
connectedBooleanIf true, the reporting mode server is connected to this P2P mode server. If false, the server is not connected. This could be due to misconfiguration, a network outage, or it could mean that the P2P mode server is down.
grpc_portStringThe port number on the P2P mode server where this reporting mode server is configured to connect and retrieve ledger data via gRPC.
ipStringThe IP address (IPv4 or IPv6) of the P2P mode server.
last_message_arrival_timeStringAn ISO 8601 timestamp indicating the most recent time the reporting mode server received a message from this P2P server.
validated_ledgers_rangeStringThe range of validated ledger versions this P2P mode server reports that it has available, in the same format as complete_ledgers.
websocket_portStringThe port number on the P2P server where this reporting mode server is configured to forward WebSocket requests that cannot be served directly from reporting mode.

Port Descriptor Object

Each member of the ports array is an object with the following fields:

FieldValueDescription
portString - NumberA port number where the server is listening.
protocolArray of StringA 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, and peer for the XRP Ledger Peer Protocol.

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.

Possible Errors