Incorporate review comments and include missing dactly config updates

This commit is contained in:
Amarantha Kulkarni
2022-06-28 00:48:03 -07:00
parent 2f9f349fea
commit 3930840506
4 changed files with 46 additions and 64 deletions

View File

@@ -18,12 +18,16 @@ While Clio offers the complete `rippled` API, by default, it only returns valida
## Why Should I Run a Clio Server?
There are two main reasons to run a Clio server: lower latency for API requests and lower memory usage.
There are lots of reasons you might want to run your own Clio server, but most of them can be summarized as: reduced load on `rippled` server(s) connected to the P2P network, lower memory usage and storage overhead, easier horizontal scaling, and higher throughput for API requests.
A Clio server does not connect to the peer-to-peer network. Instead, it uses gRPC to get validated data from one or more trusted servers that are connected to the P2P network and stores it in a persistent data store. As a result, a Clio server handles requests more efficiently with a lower latency and reduces the load on `rippled` servers running in P2P mode.
* Reduced load on `rippled` server(s) - A Clio server does not connect to the peer-to-peer network. It uses gRPC to get validated data from one or more trusted `rippled` servers that are connected to the P2P network. Thus, a Clio server handles requests more efficiently and reduces the load on `rippled` servers running in P2P mode.
* Lower memory usage and storage overhead - Clio uses Cassandra as the backend database and stores data in a space efficient format, using up to 4 times less space than `rippled`.
* Easier horizontal scaling - Multiple Clio servers can share access to the same dataset, thus enabling you to build a highly available cluster of Clio servers.
* Higher throughput for API requests - A Clio server extracts validated data from one or more trusted `rippled` servers and stores this data efficiently. Thus, handling API calls efficiently, resulting in a higher throughput and in some cases, lower latency as well.
By using Cassandra or ScyllaDB as the database, the disk requirements for a Clio server are lower as the data is not stored on your local disk.
## How does a Clio Server Work?
@@ -41,4 +45,4 @@ When a Clio server receives an API request, it looks up data from these data sto
- [server_info][clio-server-info.html] - API method to retrieve the status of the Clio server.
- **Tutorials:**
- [Build and Run a Clio node](build-run-clio-node.html)
- [Install Clio server on Ubuntu](install-clio-on-ubuntu.html)
- [Install Clio server on Ubuntu](install-clio-on-ubuntu.html)

View File

@@ -1,9 +1,7 @@
---
html: build-run-rippled-ubuntu.html
parent: install-rippled.html
blurb: Compile rippled yourself on Ubuntu Linux.
labels:
- Core Server
html: build-run-clio-ubuntu.html
parent: install-clio.html
blurb: Compile Clio yourself on Ubuntu Linux.
---
# Build and Run rippled on Ubuntu

View File

@@ -86,7 +86,7 @@ Before you install Clio, you must meet the following requirements.
7. Run `./clio_server config.json`.
8. A Clio server needs to access a `rippled` server to run succesfully. To enable communication between the servers, the config files of Clio and `rippled` need to share the following information.
8. A Clio server needs to access a `rippled` server to run succesfully. To enable communication between the servers, the config files of Clio and `rippled` need to share the following information.
1. Update the Clio server's config file with the following information:
@@ -105,15 +105,23 @@ Before you install Clio, you must meet the following requirements.
**Note** You can use multiple `rippled` servers as a data source by add more entries to the `etl_sources` section. Clio will load balance requests across the servers specified in the list. As long as one `rippled` server is up and synced, Clio will continue to extract validated ledgers.
The [example-config](https://github.com/XRPLF/clio/blob/develop/example-config.json) file accesses the `rippled` server running on the local loopback network (127.0.0.1), with the WebSocket (WS) on port 6006 and gRPC on port 50051.
2. Update the `rippled` server's config file with the following information:
* Open a port to accept unencrypted websocket connections.
[port_ws_public]
port = 6005
ip = 0.0.0.0
protocol = ws
* Open a port to handle gRPC requests and specify the IP(s) of Clio server(s) in the `secure_gateway` entry.
"server":{
"ip":"0.0.0.0",
"port":51233
}
[port_grpc]
port = 50051
ip = 0.0.0.0
secure_gateway = <clio_ip_address>
9. Start the `rippled` and Clio servers.
@@ -132,53 +140,4 @@ Before you install Clio, you must meet the following requirements.
- **Tutorials:**
- [Build and Run Clio Server](build-run-clio-ubuntu.html)
- **References:**
- [rippled and Clio API Reference](rippled-api.html)
<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}
{
"database":
{
"type":"cassandra",
"cassandra":
{
"contact_points":"127.0.0.1",
"port":9042,
"keyspace":"clio",
"replication_factor":1,
"table_prefix":"",
"max_requests_outstanding":25000,
"threads":8
}
},
"etl_sources":
[
{
"ip":"127.0.0.1",
"ws_port":"6006",
"grpc_port":"50051"
}
],
"dos_guard":
{
"whitelist":["127.0.0.1"]
},
"server":{
"ip":"0.0.0.0",
"port":51233
},
"log_level":"debug",
"log_to_console": true,
"log_to_file": true,
"log_directory":"./clio_log",
"log_rotation_size": 2048,
"log_directory_max_size": 51200,
"log_rotation_hour_interval": 12,
"online_delete":0,
"extractor_threads":8,
"read_only":false
}
- [rippled and Clio API Reference](rippled-api.html)

View File

@@ -1039,6 +1039,16 @@ pages:
targets:
- ja
- md: concepts/nodes-and-clients/the-clio-server.md
targets:
- en
- name: The Clio Server
html: the-clio-server.html
parent: concepts.html
template: pagetype-category.html.jinja
blurb: Clio is an XRP Ledger API server optimized for WebSocket or HTTP API calls.
# Redirect old NFT articles
- name: Non-fungible Tokens (NFTs)
html: nft-concepts.html
@@ -2014,6 +2024,17 @@ pages:
targets:
- ja
- name: Manage the Clio Server
html: manage-the-clio-server.html
parent: tutorials.html
blurb: Install, configure, and manage the Clio server.
template: pagetype-category.html.jinja
targets:
- en
- md: tutorials/manage-the-clio-server/install-clio-on-ubuntu.md
targets:
- en
# References -------------------------------------------------------------------