From bf7b3b8f714cec4d18f7f4da6855f43f294554b1 Mon Sep 17 00:00:00 2001 From: CJ Cobb <46455409+cjcobb23@users.noreply.github.com> Date: Wed, 16 Jun 2021 20:40:04 -0400 Subject: [PATCH] Update README.md --- README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2b440ea86..bc956d2c9 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,22 @@ 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). +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. clio extracts data from a specified rippled node. Running clio requires access to a rippled node +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 become the writer. -This process is automatic. -The database itself can be scaled up or down as well, vertically or horizontally. +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.