diff --git a/content/concepts/nodes-and-clients/the-clio-server.md b/content/concepts/nodes-and-clients/the-clio-server.md index 6841465f5c..f459297cd9 100644 --- a/content/concepts/nodes-and-clients/the-clio-server.md +++ b/content/concepts/nodes-and-clients/the-clio-server.md @@ -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) \ No newline at end of file diff --git a/content/tutorials/manage-the-clio-server/build-run-clio-ubuntu.md b/content/tutorials/manage-the-clio-server/build-run-clio-ubuntu.md index 02f3e87095..cbd5d4f034 100644 --- a/content/tutorials/manage-the-clio-server/build-run-clio-ubuntu.md +++ b/content/tutorials/manage-the-clio-server/build-run-clio-ubuntu.md @@ -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 diff --git a/content/tutorials/manage-the-clio-server/install-clio-on-ubuntu.md b/content/tutorials/manage-the-clio-server/install-clio-on-ubuntu.md index a5c4628be5..f8b08ada6f 100644 --- a/content/tutorials/manage-the-clio-server/install-clio-on-ubuntu.md +++ b/content/tutorials/manage-the-clio-server/install-clio-on-ubuntu.md @@ -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 = 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) - - - -{% 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 -} \ No newline at end of file + - [rippled and Clio API Reference](rippled-api.html) \ No newline at end of file diff --git a/dactyl-config.yml b/dactyl-config.yml index cb39f2c1e0..d39fe9e8a3 100644 --- a/dactyl-config.yml +++ b/dactyl-config.yml @@ -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 -------------------------------------------------------------------