There are 3 folders in src
, corresponding to the 3 processes that the VHS runs:
api
manages the VHS API endpoints.connection-manager
manages the connections to rippled, and listens to validation and manifest streams.crawler
finds validators and overlay nodes.
/
: Information about the endpoints.v1
/health
: A health check for the VHS. Returns the number of nodes that it is connected to./networks
: Returns the list of all networks on VHS database./network/validator_reports
: Returns scores for the nodes that it has crawled in the last day./network/topology
: Returns information about all the nodes that the crawler has crawled in the last hour./network/topology/nodes
: Same as above./network/topology/nodes/:network
: Same as above, filtered to only return the nodes that are a part ofnetwork
./network/topology/node/:publicKey
: Returns information about a specific node./network/validators
: Returns information about all the validators that the VHS is paying attention to./network/validators/:network
: Same as above, filtered to only return the validators that are a part ofnetwork
./network/validator/:publicKey
: Returns information about a specific validator./network/validator/:publicKey/manifests
: Returns the manifests of a specific validator./network/validator/:publicKey/reports
: Returns more detailed information about the reliability of a specific validator./network/amendments/info
: Returns general information about known amendments./network/amendments/vote/:network
: Returns list of enabled and in voting amendments on a specific network./network/amendment/info/:nameOrID
: Returns general information about a specific amendment by name or ID./network/amendment/vote/:network/:nameOrID
: Returns the voting status of a specific amendment by name or ID.
This table keeps track of the nodes in the network, which it finds via crawling the network.
Key | Definition |
---|---|
public_key |
The public key of the node. |
start |
When the node was first crawled. |
complete_ledgers |
The range of ledgers for which the node has data. |
complete_shards |
The history shards the node keeps track of. |
ip |
The IP address of the node. |
port |
The peer port of the node. |
ws_url |
The WS URL of the node. Optional. |
connected |
This appears to be false for every node. |
networks |
The network(s) that the node belongs to. |
type |
Whether the TCP connection to the peer is incoming or outgoing. |
uptime |
The uptime of the node. |
inbound_count |
How many inbound connections the node has. |
outbound_count |
How many outbound connections the node has. |
server_state |
The server_state of the server. |
io_latency_ms |
The io_latency_ms of the server. |
load_factor_server |
The load factor of the server (used for fees). |
version |
The version of rippled software that the node is running. |
This table keeps track of how reliable validators have been, on a 24-hour level.
Key | Definition |
---|---|
master_key |
The master key of the node. |
day |
The day that the data is for. |
agreement |
Data about the reliability of the node. |
This table keeps track of how reliable validators have been, on an hourly level.
Key | Definition |
---|---|
master_key |
The master key of the node. |
start |
The time that the data starts. |
agreement |
Data about the reliability of the node. |
This table keeps track of the physical location of all of the nodes that the network is aware of.
Key | Definition |
---|---|
public_key |
The public key of the node. |
ip |
The IP address of the node. |
lat |
The latitude of the node's location |
long |
The longitude of the node's location |
continent |
The continent where the node is located. |
country |
The country where the node is located. |
region |
The region where the node is located. |
city |
The city where the node is located. |
postal_code |
The postal code where the node is located. |
region_code |
The region code where the node is located. |
This table keeps track of the manifests of the validators.
Key | Definition |
---|---|
master_key |
The master key of the validator. |
signing_key |
The signing key of the validator. |
master_signature |
The master public key for this validator. |
signature |
The signature on the manifest. |
domain |
The domain name this validator claims to be associated with. |
domain_verified |
Whether the domain has been verified. |
revoked |
Whether the manifest has been revoked. |
seq |
The sequence number of this manifest. |
This table keeps track of the amendments status on each network when either the amendment has been enabled or has reached majority.
Key | Definition |
---|---|
amendment_id |
The amendment id. |
networks |
The network(s) where the amendment has been/ will be enabled. |
ledger_index |
The ledger where the amendment has been/ will be enabled. |
tx_hash |
The transaction hash where the amendment has been/ will be enabled. |
eta |
The estimated date and time when the amendment will be enabled. |
date |
The date and time when the amendment has been enabled. |
This table keeps track of the general information of all known amendments.
Key | Definition |
---|---|
id |
The amendment id. |
name |
The name of the amendment. |
rippled_version |
The rippled version when the amendment is first enabled |
deprecated |
Whether the amendment has been deprecated/retired |
This table keeps track of the most current voting data for the validators.
Key | Definition |
---|---|
signing_key |
The signing key of the validator. |
ledger_index |
The most recent ledger index where voting data was retrieved. |
amendments |
The amendments this validator wants to be added to the protocol. |
base_fee |
The unscaled transaction cost this validator wants to set. |
reserve_base |
The minimum reserve requirement this validator wants to set. |
reserve_inc |
The increment in the reserve requirement this validator wants to set. |
This table keeps track of the most current voting data for the validators.
Key | Definition |
---|---|
signing_key |
The signing key of the validator. |
ledger_index |
The most recent ledger index where voting data was retrieved. |
amendments |
The amendments this validator wants to be added to the protocol. |
base_fee |
The unscaled transaction cost this validator wants to set. |
reserve_base |
The minimum reserve requirement this validator wants to set. |
reserve_inc |
The increment in the reserve requirement this validator wants to set. |
This table keeps track of the validators on the networks.
Key | Definition |
---|---|
master_key |
The master key of the validator. |
signing_key |
The signing key of the validator. |
revoked |
Whether the signing key has been revoked. |
ledger_hash |
The hash of the last ledger the validator validated. |
current_index |
The current ledger index of the validator. |
load_fee |
The current transaction load fee on the validator. |
partial |
Whether the validation is a partial validation*. |
chain |
What chain** the validator is running on. |
domain |
The domain associated with the validator. |
domain_verified |
Whether the domain has been verified. |
last_ledger_time |
The last time the validator validated a ledger. |
agreement_1hour |
Data about the reliability of the validator over the last hour. |
agreement_24hour |
Data about the reliability of the validator over the last 24 hours. |
agreement_30day |
Data about the reliability of the validator over the 30 days. |
*Partial validations are not meant to vote for any particular ledger. A partial validation indicates that the validator is still online but not keeping up with consensus.
**A chain is a group of validators validating the same set of ledgers. main
, test
, and dev
represent the validated versions of mainnet, testnet, and devnet respectively. Validators on a fork/validating an alternate version of the ledger will have a different value, usually of the form chain.[num]
.