mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-18 10:45:51 +00:00
26 lines
2.0 KiB
Markdown
26 lines
2.0 KiB
Markdown
# clio
|
|
clio is an XRP ledger history server.
|
|
|
|
clio is designed to store historical ledger and transaction data in a more space efficient format, using up to 4 times less space than rippled.
|
|
|
|
clio offers the full rippled API (this is still in development at the time of writing), with the caveat that clio by default only returns validated data.
|
|
This means that `ledger_index` defaults to `validated` instead of `current` for all requests.
|
|
Other non-validated data is also not returned, such as information about queued transactions.
|
|
For requests that require access to the p2p network, such as `fee` or `submit`, clio automatically forwards the request to a rippled node, and propagates the response back to the client. To access non-validated data for *any* request, simply add `ledger_index: "current"` to the request, and clio will forward the request to rippled.
|
|
|
|
clio does not connect to the peer to peer network. Instead, clio extracts data from a specified rippled node. Running clio requires access to a rippled node
|
|
from which data can be extracted. The rippled node does not need to be running on the same machine as clio.
|
|
clio can operate in read-only mode in the absence of a rippled node, where clio can answer RPC requests for the data already in the database.
|
|
|
|
|
|
clio is designed with scalability and availability as a first principle.
|
|
Data is stored in either Postgres or Cassandra,
|
|
and multiple clio servers can share access to the same dataset.
|
|
The different clio servers that are using the same dataset do not know about each other or talk to each other.
|
|
At any given time, there is only one writer, and any synchronization happens via the data model at the database level.
|
|
If the writer for a given dataset fails for any reason, one of the other clio nodes will automatically become the writer.
|
|
|
|
## Building
|
|
clio is built with cmake. clio requires c++20, and boost 1.75.0 (for boost json). clio includes rippled as a submodule.
|
|
Before building, run `git submodule update --init --recursive`
|