Merge pull request #471 from mDuo13/rippled_tutorials_reorg

Reorg tutorials for managing rippled
This commit is contained in:
Rome Reginelli
2018-11-08 14:09:48 -08:00
committed by GitHub
30 changed files with 557 additions and 341 deletions

View File

@@ -0,0 +1 @@
The [recommended installation](install-rippled.html) uses the config file `/etc/opt/ripple/rippled.cfg` by default. Other places you can put a config file include `$HOME/.config/ripple/rippled.cfg` (where `$HOME` is the home directory of the user running `rippled`), `$HOME/.local/ripple/rippled.cfg`, or the current working directory from where you start `rippled`.

View File

@@ -0,0 +1,51 @@
It can take several minutes for `rippled` to sync with the rest of the network, during which time it outputs warnings about missing ledgers.
For information about `rippled` log messages, see [Understanding Log Messages](understanding-log-messages.html).
After your `rippled` has synchronized with the rest of the network, you have a fully functional stock `rippled` server that you can use for local signing and API access to the XRP Ledger. Use [`rippled` server states](rippled-server-states.html) to tell whether your `rippled` server has synchronized with the network. You can use the [`rippled` commandline interface](get-started-with-the-rippled-api.html#commandline) to test this quickly:
{% if currentpage.md == "tutorials/manage-the-rippled-server/installation/build-run-rippled-ubuntu.md" or
currentpage.md == "tutorials/manage-the-rippled-server/installation/build-run-rippled-macos.md" %}
$ ./rippled server_info
{% else %}
$ /opt/ripple/bin/rippled server_info
{% endif %}
For more information about communicating with your `rippled` server using the rippled APIs, see the [rippled API reference](rippled-api.html).
Once you have your stock `rippled` server running, you may want to consider running it as a validating server. For information about validating servers and why you might want to run one, see [Run rippled as a Validator](run-rippled-as-a-validator.html).
Having trouble getting your `rippled` server started? See [rippled Server Won't Start](server-wont-start.html).
### Additional Configuration
`rippled` should connect to the XRP Ledger with the default configuration. However, you can change your settings by editing the `rippled.cfg` file. For recommendations about configuration settings, see [Capacity Planning](capacity-planning.html).
{% include '_snippets/conf-file-location.md' %}<!--_ -->
See [the `rippled` GitHub repository](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg) for a description of all configuration options.
You must restart `rippled` for any configuration changes to take effect:
{% if currentpage.md == "tutorials/manage-the-rippled-server/installation/install-rippled-on-ubuntu-with-alien.md" or
currentpage.md == "tutorials/manage-the-rippled-server/installation/install-rippled-on-centos-rhel-with-yum" %}
$ sudo systemctl restart rippled.service
{% elif currentpage.md == "tutorials/manage-the-rippled-server/installation/build-run-rippled-ubuntu.md" or
currentpage.md == "tutorials/manage-the-rippled-server/installation/build-run-rippled-macos.md" %}
* Use Ctrl-C to stop `rippled`, then start it again:
$ ./rippled
{% endif %}
If you change the `[debug_logfile]` or `[database_path]` sections, you may need to grant ownership of the new configured path to the user you run `rippled` as.
### Updates
You must update `rippled` regularly to remain synced with the rest of the XRP Ledger network. You can subscribe to the [rippled Google Group](https://groups.google.com/forum/#!forum/ripple-server) to receive notifications of new `rippled` releases.
The `rippled` package for Red Hat Enterprise Linux and CentOS includes a script you can use to [enable automatic updates](update-rippled-automatically-on-centos-rhel.html) on those platforms. On other platforms, you must update manually.

View File

@@ -90,7 +90,7 @@ Becoming amendment blocked is a security feature to protect applications that de
The amendments that a `rippled` server is configured to vote for or against have no impact on whether the server becomes amendment blocked. A `rippled` server always follows the set of amendments enabled by the rest of the network, to the extent possible. A server only becomes amendment blocked if an enabled amendment is not included in the amendment definitions compiled into the server's source code -- in other words, if the amendment is newer than the server.
If your server is amendment blocked, you must [upgrade to a new version](update-rippled.html) to sync with the network.
If your server is amendment blocked, you must [upgrade to a new version](install-rippled.html) to sync with the network.
#### How to Tell If Your `rippled` Server Is Amendment Blocked
@@ -149,7 +149,7 @@ If your server is not amendment blocked, the `amendment_blocked` field is not re
#### How to Unblock an Amendment-Blocked `rippled` Server
Upgrade to the `rippled` version that supports the amendments that are causing your server to be amendment blocked. Ripple recommends that you [upgrade to the newest `rippled` version](update-rippled.html) to unblock your server and enable it to sync with the network again.
Upgrade to the `rippled` version that supports the amendments that are causing your server to be amendment blocked. Ripple recommends that you [upgrade to the newest `rippled` version](install-rippled.html) to unblock your server and enable it to sync with the network again.
Depending on the scenario, you may be able to (and want to) unblock your server by upgrading to a `rippled` version that is older than the newest version. This is possible if the older version supports the amendments that are blocking your `rippled` server.

View File

@@ -24,34 +24,12 @@ If a `rippled` server runs out of space before completely acquiring a shard, it
The history of all ledgers is shared by servers agreeing to keep particular ranges of historical ledgers. This makes it possible for servers to confirm that they have all the data they agreed to maintain, and produce proof trees or ledger deltas. Since `rippled` servers that are configured with history sharding randomly select the shards that they store, the entire history of all closed ledgers is stored in a normal distribution curve, increasing the probability that the XRP Ledger Network evenly maintains the history.
## Shard Store Configuration
## See Also
To configure your `rippled` to store shards of ledger history, add a `shard_db` section to your `rippled.cfg` file.
### Shard Configuration Example
The following snippet from an example `rippled.cfg` file shows the configuration fields for adding sharding to a `rippled` server:
```
[shard_db]
type=NuDB
path=/var/lib/rippled/db/shards/nudb
max_size_gb=50
```
**Tip:** Ripple recommends using NuDB for the shard store (`type=NuDB`). NuDB uses fewer file handles per shard than RocksDB. RocksDB uses memory that scales with the size of data it stores, which may require excessive memory overhead.
**Tip:** While both validator and tracking (or stock) `rippled` servers can be configured to use history shard stores, Ripple recommends adding history sharding only for non-validator `rippled` servers to reduce overhead for validators. If you run a validator and want to manage ledger history using sharding, run a separate `rippled` server with sharding enabled.
For more information, reference the `[shard_db]` example in the [rippled.cfg configuration example](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg).
### Sizing the Shard Store
Determining a suitable size for the shard store involves careful consideration. You should consider the following when deciding what size your shard store should be:
- Although redundant, it is possible to hold full ledger history in the ledger store and the history shard store.
- An effective configuration might limit the ledger store only to recent history.
- The ledger store history size should at minimum be twice the ledgers per shard, due to the fact that the current shard may be chosen to be stored and it would be wasteful to reacquire that data.
- The time to acquire, number of file handles, and memory cache usage is directly affected by sizing.
- Each shard contains 2^14 ledgers (16384).
- A shard occupies approximately 200 MB to 4 GB based on the age of the shard. Older shards are smaller because there was less activity in the XRP Ledger at the time.
- [Configure History Sharding](configure-history-sharding.html)
<!--{# - [download_shard method][] #}-->
<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}

View File

@@ -412,7 +412,7 @@ When this amendment is activated, the XRP Ledger will undergo a brief scheduled
Sorts the entries in [DirectoryNode ledger objects](directorynode.html) and fixes a bug that occasionally caused pages of owner directories not to be deleted when they should have been.
**Warning:** Older versions of `rippled` that do not know about this amendment may crash when they encounter a DirectoryNode sorted by the new rules. To avoid this problem, [upgrade](update-rippled.html) to `rippled` version 0.80.0 or later.
**Warning:** Older versions of `rippled` that do not know about this amendment may crash when they encounter a DirectoryNode sorted by the new rules. To avoid this problem, [upgrade](install-rippled.html) to `rippled` version 0.80.0 or later.
## SusPay

View File

@@ -117,7 +117,7 @@ In addition to RippleAPI-specific code, this script uses syntax and conventions
const RippleAPI = require('ripple-lib').RippleAPI;
```
The opening line enables [strict mode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode). This is purely optional, but it helps you avoid some common pitfalls of JavaScript. See also: [Restrictions on Code in Strict Mode](https://msdn.microsoft.com/library/br230269%28v=vs.94%29.aspx#Anchor_1).
The opening line enables [strict mode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode). This is purely optional, but it helps you avoid some common pitfalls of JavaScript.
The second line imports RippleAPI into the current scope using Node.js's require function. RippleAPI is one of [the modules `ripple-lib` exports](https://github.com/ripple/ripple-lib/blob/develop/src/index.ts).

View File

@@ -0,0 +1,54 @@
# Configure History Sharding
[History Sharding](history-sharding.html) lets servers contribute to preserving historical XRP Ledger data without each server needing to store the full history. By default, `rippled` servers do not store history shards.
**Tip:** While both validator and tracking (or stock) `rippled` servers can be configured to store history shards, Ripple recommends _not_ configuring validator `rippled` servers to store shards, to reduce overhead on those servers. If you run a validator and want to contribute to storing XRP Ledger history, Ripple recommends you run a separate `rippled` server with history sharding enabled.
To configure your `rippled` to store shards of ledger history, complete the following steps:
## 1. Determine how much space to allocate for the shard store
Before you configure your `rippled` server to store history shards, you must decide how much disk space to allocate to the history shard store. This also affects how much history you keep in the default ledger store. You should consider the following when deciding what size to configure your shard store:
- The ledger store (defined by the `[node_db]` stanza) is separate from the history shard store. The ledger store is required for all servers and _must_ contain a range of recent history, defined by how many ledgers to keep available in the `online_delete` parameter. (The default configuration stores the most recent 2000 ledgers.)
- If you keep at least 2^15 ledgers (32768) in the ledger store, you can efficiently import chunks of recent history from the ledger store into the shard store.
- The history shard store (defined by the `[shard_db]` stanza) is only required for storing history shards. The configuration stanza should be omitted from servers that do not store history shards. The size of the history shard store is defined in gigabytes in the `max_size_gb` parameter; the server attempts to use as much of this space as possible to store complete shards.
- A shard consists of 2^14 ledgers (16384) and occupies approximately 200 MB to 4 GB based on the age of the shard. Older shards are smaller because there was less activity in the XRP Ledger at the time.
- The history shard store and the ledger store _must_ be stored at different file paths. You can configure the ledger store and history store to be on different disks or partitions if desired.
- It is possible but redundant to hold full ledger history in both the ledger store and the history shard store.
- The time to acquire a shard, number of file handles needed by the `rippled` server, and memory cache usage is directly affected by the size of the shard.
## 2. Edit rippled.cfg
Edit your `rippled.cfg` file to add a `[shard_db]` stanza.
{% include '_snippets/conf-file-location.md' %}<!--_ -->
The following snippet shows an example of a `[shard_db]` stanza:
```
[shard_db]
type=NuDB
path=/var/lib/rippled/db/shards/nudb
max_size_gb=50
```
**Tip:** Ripple recommends using NuDB for the shard store (`type=NuDB`). NuDB uses fewer file handles per shard than RocksDB. RocksDB uses memory that scales with the size of data it stores, which may require excessive memory overhead. However, NuDB is designed to be used with SSD drives and does not work with rotational disks.
**Caution:** If you enable history sharding, then later change the database type of your shard store, you must also change the path or delete the existing data from the configured path. If `rippled` detects the wrong type of data in the shard store path, it may [fail to start](server-wont-start.html).
For more information, reference the `[shard_db]` example in the [rippled.cfg configuration example](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg).
## 3. Restart the server
```
systemctl restart rippled
```
## 4. Wait for shards to download
After your server syncs to the network, it automatically starts downloading history shards to fill the available space in the shard store. You can see which shards are being downloaded by looking at which folders are created in the folder where you configured your shard store. (This is defined by the `path` field of the `[shard_db]` stanza in the `rippled.cfg` file.)
This folder should contain a numbered folder for each shard your server has. At any given time, up to one folder may contain a `control.txt` file, indicating it is incomplete.
<!-- TODO: add download_shard and crawl_shards commands when they get added. -->

View File

@@ -0,0 +1,56 @@
# Connect Your rippled to the XRP Test Net
Ripple has created the [XRP Test Network](https://ripple.com/build/xrp-test-net/) to provide a testing platform for the XRP Ledger. XRP Test Net funds are not real funds and are intended for testing only. You can connect your `rippled` server to the XRP Test Net to test out and understand `rippled` functionality before connecting to the production XRP Ledger Network. You can also use the XRP Test Net to verify that your own code interacts correctly with `rippled`.
**Note:** The XRP Test Net ledger and balances are reset on a regular basis.
To connect your `rippled` server to the XRP Test Net, set the following configurations:
1. In your `rippled.cfg` file:
a. Uncomment the following section, as follows:
[ips]
r.altnet.rippletest.net 51235
b. Comment out the following section, as follows:
# [ips]
# r.ripple.com 51235
2. In your `validators.txt` file:
a. Uncomment the following sections, as follows:
[validator_list_sites]
https://vl.altnet.rippletest.net
[validator_list_keys]
ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860
b. Comment out the following sections, as follows:
# [validator_list_sites]
# https://vl.ripple.com
#
# [validator_list_keys]
# ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734
3. Restart `rippled`.
4. To verify that your `rippled` is connected to the XRP Test Net, use the [server_info method][] on your server and compare it to the results from a public server on the Test Net. The `seq` field of the `validated_ledger` object should be the same on both servers (possibly off by one or two, if it changed as you were checking).
The following command checks the latest validated ledger of a Test Net server at `s.altnet.rippletest.net`:
$ ./rippled --rpc_ip 34.210.87.206:51234 server_info | grep seq
The following command checks your local `rippled`'s latest validated ledger sequence:
$ ./rippled server_info | grep seq
<!--{# common link defs #}-->
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
{% include '_snippets/rippled_versions.md' %}

View File

@@ -18,7 +18,7 @@ To enable public signing, perform the following steps:
vim /etc/opt/ripple/rippled.cfg
The [recommended installation](install-rippled.html) uses the config file `/etc/opt/ripple/rippled.cfg` by default. Other places you can put a config file include `$HOME/.config/ripple/rippled.cfg` (where `$HOME` is the home directory of the user running `rippled`) or
{% include '_snippets/conf-file-location.md' %}<!--_ -->
2. Add the following stanza to your config file, and save the changes:

View File

@@ -1,104 +1,10 @@
# Install rippled
# Build and Run rippled on macOS
For production, you can install a `rippled` instance using Ripple's binary executable for [Ubuntu](#installation-on-ubuntu-with-alien) or [CentOS/Red Hat](#installation-on-centosred-hat-with-yum).
At this time, Ripple doesn't recommend using the macOS platform for `rippled` production use. For production, consider using the [Ubuntu platform](install-rippled-on-ubuntu-with-alien.html), which has received the highest level of quality assurance and testing.
For development, you can install a `rippled` instance using Ripple's binary executable for [macOS](#installation-on-macos), or you can build and run `rippled` from source for [Ubuntu](build-run-rippled-ubuntu.html).
That said, macOS is suitable for many development and testing tasks. `rippled` has been tested for use with macOS up to 10.13 High Sierra.
For installation information for other platforms, see the [rippled repository](https://github.com/ripple/rippled/tree/develop/Builds).
## Minimum System Requirements
A `rippled` server should run comfortably on commodity hardware, to make it inexpensive to participate in the network. At present, we recommend the following minimum requirements:
- Operating System:
- Production: CentOS or RedHat Enterprise Linux (latest release) or Ubuntu (16.04+) supported
- Development: Mac OS X, Windows (64-bit), or most Linux distributions
- CPU: 64-bit x86_64, 2+ cores
- Disk: Minimum 50GB SSD recommended (1000 IOPS, more is better) for the database partition
- RAM:
- Testing: 8GB+
- Production: 32 GB
Amazon EC2's `m3.large` VM size may be appropriate depending on your workload. A fast network connection is preferable. Any increase in a server's client-handling load increases resources needs.
**Tip:** For recommendations beyond the minimum requirements, see [Capacity Planning](capacity-planning.html).
## Installation on Ubuntu with alien
This section assumes that you are using Ubuntu 15.04 or later.
1. Install yum-utils and alien:
$ sudo apt-get update
$ sudo apt-get install yum-utils alien
2. Install the Ripple RPM repository:
$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
3. Download the `rippled` software package:
$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
4. Verify the signature on the `rippled` software package:
$ sudo rpm --import https://mirrors.ripple.com/rpm/RPM-GPG-KEY-ripple-release && rpm -K rippled*.rpm
5. Install the `rippled` software package:
$ sudo alien -i --scripts rippled*.rpm && rm rippled*.rpm
6. Configure the `rippled` service to start on system boot:
$ sudo systemctl enable rippled.service
7. Start the `rippled` service
$ sudo systemctl start rippled.service
8. Verify that `rippled` has started.
$ sudo systemctl status rippled
For next steps, see [Postinstall](#postinstall) and [Additional Configuration](#additional-configuration).
## Installation on CentOS/Red Hat with yum
This section assumes that you are using CentOS 7 or Red Hat Enterprise Linux 7.
1. Install the Ripple RPM repository:
$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
2. Install the `rippled` software package:
$ sudo yum install --enablerepo=ripple-stable rippled
3. Configure the `rippled` service to start on system boot:
$ sudo systemctl enable rippled.service
4. Start the `rippled` service
$ sudo systemctl start rippled.service
5. Verify that `rippled` has started.
$ sudo systemctl status rippled
For next steps, see [Postinstall](#postinstall) and [Additional Configuration](#additional-configuration).
## Installation on macOS
At this time, Ripple doesn't recommend using the macOS platform for `rippled` production use. For production, consider using the [Ubuntu platform](#installation-on-ubuntu-with-alien), which has received the highest level of quality assurance and testing.
That said, macOS is suitable for many development and testing tasks. `rippled` has been tested for use with macOS High Sierra up to 10.13.
Ripple recommends running `rippled` as your own user.
For development purposes Ripple recommends running `rippled` as your own user, not using `sudo`.
1. Install [Xcode](https://developer.apple.com/download/).
@@ -245,85 +151,12 @@ Ripple recommends running `rippled` as your own user.
For information about `rippled` log messages, see [Understanding Log Messages](understanding-log-messages.html).
For next steps, see [Postinstall](#postinstall) and [Additional Configuration](#additional-configuration).
## Next Steps
{% include '_snippets/post-rippled-install.md' %}<!--_ -->
## Postinstall
## See Also
It can take several minutes for `rippled` to sync with the rest of the network, during which time it outputs warnings about missing ledgers.
For information about `rippled` log messages, see [Understanding Log Messages](understanding-log-messages.html).
Once your `rippled` has synchronized with the rest of the network, you have a fully functional stock `rippled` server that you can use for local signing and API access to the XRP Ledger. Use [`rippled` server states](rippled-server-states.html) to tell whether your `rippled` server has synchronized with the network.
For information about communicating with your `rippled` server using the rippled API, see the [rippled API reference](rippled-api.html).
Once you have your stock `rippled` server running, you may want to consider running it as a validating server. For information about validating servers and why you might want to run one, see [Run rippled as a Validator](run-rippled-as-a-validator.html).
Having trouble getting your `rippled` server started? See [rippled Server Won't Start](server-wont-start.html).
## Additional Configuration
<!--{# TODO: Once post-rippled-install.md PR is merged, include it here to get latest, consistent info. #}-->
`rippled` should connect to the XRP Ledger with the default configurations. However, you can change your settings by editing the `rippled.cfg` file.
For recommendations about configuration settings, see [Capacity Planning](capacity-planning.html).
You must restart `rippled` for any configuration changes to take effect:
* For Ubuntu and CentOS/Red Hat:
$ sudo systemctl restart rippled.service
* For macOS, use Ctrl-C to stop `rippled` and then start it again:
$ ./rippled
### Connect Your `rippled` to the XRP Test Net
Ripple has created the [XRP Test Network](https://ripple.com/build/xrp-test-net/) to provide a testing platform for the XRP Ledger. XRP Test Net funds are not real funds and are intended for testing only. You can connect your `rippled` server to the XRP Test Net to test out and understand `rippled` functionality before connecting to the production XRP Ledger Network. You can also use the XRP Test Net to verify that your own code interacts correctly with `rippled`.
**Note:** The XRP Test Net ledger and balances are reset on a regular basis.
_**To connect your `rippled` server to the XRP Test Net, set the following configurations:**_
1. In your `rippled.cfg` file:
a. Uncomment the following section, as follows:
[ips]
r.altnet.rippletest.net 51235
b. Comment out the following section, as follows:
# [ips]
# r.ripple.com 51235
2. In your `validators.txt` file:
a. Uncomment the following sections, as follows:
[validator_list_sites]
https://vl.altnet.rippletest.net
[validator_list_keys]
ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860
b. Comment out the following sections, as follows:
# [validator_list_sites]
# https://vl.ripple.com
#
# [validator_list_keys]
# ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734
3. Restart `rippled`.
4. To verify that your `rippled` is connected to the XRP Test Net, go to the [XRP Test Net Faucet](https://developers.ripple.com/xrp-test-net-faucet.html) and click **Generate credentials**. Make a note of the **Address** value. Make the [`account_info`](https://developers.ripple.com/account_info.html) request to your `rippled` server.
If the request returns account information, your `rippled` is connected to the XRP Test Net. If the request cannot find the account, your `rippled` is not connected to the XRP Test Net. Check your `rippled.cfg` and `validators.txt` configurations.
Ripple recommends that you generate new test credentials each time you want to perform this verification. Using an old XRP Test Net **Address** value may not provide accurate results.
- [Install rippled on Ubuntu Linux](install-rippled-on-ubuntu-with-alien.html) (Pre-built binary on Ubuntu for production use)
- [Build and Run `rippled` on Ubuntu](build-run-rippled-ubuntu.html) (Compile `rippled` yourself on Ubuntu)
- [Compilation instructions for other platforms](https://github.com/ripple/rippled/tree/develop/Builds)

View File

@@ -9,16 +9,9 @@ Use these instructions to build a `rippled` executable from source version 1.1.0
For information about building `rippled` for other platforms, see [Builds](https://github.com/ripple/rippled/tree/develop/Builds) in the `rippled` GitHub repository.
## System Requirements
**_To build `rippled`:_**
You need a **minimum** of 8GB of RAM.
**_To run `rippled`:_**
Meet these [system requirements](install-rippled.html#minimum-system-requirements).
## Prerequisites
Before you compile or install `rippled`, you must meet the [System Requirements](system-requirements.html).
## 1. Build `rippled`

View File

@@ -0,0 +1,41 @@
# Install on CentOS/Red Hat with yum
This page describes the recommended instructions for installing the latest stable version of `rippled` on **CentOS 7** or **Red Hat Enterprise Linux 7**, using Ripple's [yum](https://en.wikipedia.org/wiki/Yellowdog_Updater,_Modified) repository.
These instructions install a binary that has been compiled by Ripple.
## Prerequisites
Before you install `rippled`, you must meet the [System Requirements](system-requirements.html).
## Installation Steps
1. Install the Ripple RPM repository:
$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
2. Install the `rippled` software package:
$ sudo yum install --enablerepo=ripple-stable rippled
3. Configure the `rippled` service to start on system boot:
$ sudo systemctl enable rippled.service
4. Start the `rippled` service
$ sudo systemctl start rippled.service
## Next Steps
{% include '_snippets/post-rippled-install.md' %}<!--_ -->
## See Also
- [Update Automatically on CentOS/Red Hat](update-rippled-automatically-on-centos-rhel.html)
- [Install rippled on Ubuntu Linux](install-rippled-on-ubuntu-with-alien.html) (Pre-built binary on Ubuntu)
- [Build and Run `rippled` on Ubuntu](build-run-rippled-ubuntu.html) (Compile `rippled` yourself on Ubuntu)
- [Compilation instructions for other platforms](https://github.com/ripple/rippled/tree/develop/Builds)

View File

@@ -0,0 +1,47 @@
# Install on Ubuntu with Alien
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux 16.04 or higher**, using the [Alien](https://help.ubuntu.com/community/RPM/AlienHowto) utility to install from Ripple's [yum](https://en.wikipedia.org/wiki/Yellowdog_Updater,_Modified) repository.
These instructions install a binary that has been compiled by Ripple.
## Prerequisites
Before you install `rippled`, you must meet the [System Requirements](system-requirements.html).
## Installation Steps
1. Install yum-utils and alien:
$ sudo apt-get update
$ sudo apt-get install yum-utils alien
2. Install the Ripple RPM repository:
$ sudo rpm -Uvh https://mirrors.ripple.com/ripple-repo-el7.rpm
3. Download the `rippled` software package:
$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
4. Verify the signature on the `rippled` software package:
$ sudo rpm --import https://mirrors.ripple.com/rpm/RPM-GPG-KEY-ripple-release && rpm -K rippled*.rpm
5. Install the `rippled` software package:
$ sudo alien -i --scripts rippled*.rpm && rm rippled*.rpm
6. Configure the `rippled` service to start on system boot:
$ sudo systemctl enable rippled.service
7. Start the `rippled` service
$ sudo systemctl start rippled.service
## Next Steps
{% include '_snippets/post-rippled-install.md' %}

View File

@@ -0,0 +1,30 @@
# System Requirements
## Minimum Specifications
A `rippled` server should run comfortably on commodity hardware, to make it inexpensive to participate in the network. At present, Ripple recommends the following minimum requirements:
- Operating System:
- Production: CentOS or RedHat Enterprise Linux (latest release) or Ubuntu (16.04+) supported
- Development: Mac OS X, Windows (64-bit), or most Linux distributions
- CPU: 64-bit x86_64, 2+ cores
- Disk: Minimum 50GB for the database partition. SSD strongly recommended (minimum 1000 IOPS, more is better)
- RAM: 8GB+
Amazon EC2's `m3.large` VM size may be appropriate depending on your workload. A fast network connection is preferable. Any increase in a server's client-handling load increases resources needs.
## Recommended Specifications
For best performance in enterprise production environments, Ripple recommends running `rippled` on bare metal with the following characteristics:
- Operating System: Ubuntu 16.04+
- CPU: Intel Xeon 3+ GHz processor with 4 cores and hyperthreading enabled
- Disk: SSD (7000+ writes/second, 10,000+ reads/second)
- RAM:
- For testing: 8GB+
- For production: 32GB
- Network: Enterprise data center network with a gigabit network interface on the host
## See Also
For more information on the recommended specifications and planning for production needs, see [Capacity Planning](capacity-planning.html).

View File

@@ -0,0 +1,25 @@
# Update Automatically on CentOS/Red Hat
On CentOS and Red Hat Enterprise Linux, you can set up `rippled` to automatically upgrade to the latest version with a one-time `cron` configuration. Ripple recommends enabling automatic updates if possible.
These instructions assume you have already [installed `rippled` from the `yum` repository](install-rippled-on-centos-rhel-with-yum.html).
To set up automatic updates, complete the following steps:
1. Check that `/opt/ripple/bin/update-rippled.sh` exists. If it does not, [update manually](update-rippled-manually-on-centos-rhel.html).
2. Install `crond`:
$ sudo yum install cronie
3. Open the crontab file for editing
$ sudo crontab -e
4. Add the following to the crontab file. Be sure to add a blank line at the end of the file.
RANDOM_DELAY=59
0 * * * * /opt/ripple/bin/update-rippled.sh
The script updates the installed `rippled` package within an hour of each new release. To reduce the chance of outages from all servers updating simultaneously, the script delays the update for a random number of minutes, up to 59.

View File

@@ -0,0 +1,23 @@
# Update Manually on CentOS/Red Hat
This page describes how to update manually to the latest release of `rippled` on CentOS or Red Hat Enterprise Linux. Ripple recommends setting up [automatic updates](update-rippled-automatically-on-centos-rhel.html) instead, where possible.
These instructions assume you have already [installed `rippled` from the `yum` repository](install-rippled-on-centos-rhel-with-yum.html).
To update manually, complete the following steps:
1. Update the package list from Ripple's yum repository:
$ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
2. Download and install the latest `rippled` package:
$ sudo yum update --enablerepo=ripple-stable rippled
3. Reload the `systemd` unit files:
$ sudo systemctl daemon-reload
4. Restart the `rippled` service:
$ sudo service rippled restart

View File

@@ -0,0 +1,29 @@
# Update Manually on Ubuntu
This page describes how to update manually to the latest release of `rippled` on Ubuntu Linux. These instructions assume you have already [installed `rippled` using Alien](install-rippled-on-ubuntu-with-alien.html).
To update manually, complete the following steps:
1. Update the package list from Ripple's yum repository:
$ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
2. Download the latest `rippled` package:
$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
3. Verify the signatures on the downloaded packages:
$ rpm -K rippled*.rpm
4. Use Alien to upgrade to the new `rippled` package:
$ sudo alien -i --scripts rippled*.rpm
5. Reload the `systemd` unit files:
$ sudo systemctl daemon-reload
6. Restart the `rippled` service:
$ sudo service rippled restart

View File

@@ -1,37 +0,0 @@
# Manage the `rippled` Server
<!--{# There may be a better way to present the info on this page - especially once we have more tutorials per platform. Also, how about the sequence -- which tasks are required/commonly performed/highest priority? Which tasks are advanced/optional/lower priority? #}-->
The tutorials in this section walk you through the ins-and-outs of maintaining a `rippled` server.
* **[Install `rippled`](x)**
Install `rippled` from a binary executable on CentOS/RedHat and Ubuntu.
* **[Build and Run `rippled` on Ubuntu](x)**
Build `rippled` from source and run it on Ubuntu.
* **[Configure and Scale `rippled`](x)**
Configure and scale your `rippled` to meet the needs of your use case, whether you need a test server or a robust production-grade server.
* **[Run `rippled` in Validator Mode](x)**
Configure `rippled` to run in validator mode. In this mode, your `rippled` server participates in the XRP Ledger consensus process.
* **[Run `rippled` in Stand-Alone Mode](x)**
Configure `rippled` to run in stand-alone mode. In this mode, your `rippled` server is not connected to the live XRP Ledger network, which is a great mode to use for testing and development.
* **[Run `rippled` in a Cluster](x)**
Run `rippled` in a cluster to maximize efficiency.
* **[Troubleshoot `rippled`](x)**
Troubleshoot your `rippled`, whether you are just trying to get it running, or if it's been up and running for a while.
* **[Configure the Peer Protocol](x)**
Configure your `rippled` to use the peer protocol to send and receive connections on the peer port.
<!--{# TODO: Not sure about this phrasing -- wondering if this should just be a part of the "Configure and Scale" rippled.cfg tutorial? #}-->

View File

@@ -30,7 +30,7 @@ For troubleshooting purposes, the most important fields are (from most commonly
[ips_fixed]
s2.ripple.com 51235
- **`amendment_blocked`** - This field is normally omitted from the `server_info` response. If this field appears with the value `true`, then the network has approved an [amendment](amendments.html) for which your server doesn't have an implementation. Most likely, you can fix this by [updating rippled](update-rippled.html) to the latest version. You can also use the [feature method][] to see what amendment IDs are currently enabled and which one(s) your server does and does not support.
- **`amendment_blocked`** - This field is normally omitted from the `server_info` response. If this field appears with the value `true`, then the network has approved an [amendment](amendments.html) for which your server doesn't have an implementation. Most likely, you can fix this by [updating rippled](install-rippled.html) to the latest version. You can also use the [feature method][] to see what amendment IDs are currently enabled and which one(s) your server does and does not support.
- **`peers`** - This field indicates how many other servers in the XRP Ledger peer-to-peer network your server is connected to. Healthy servers typically show between 5 and 50 peers, unless explicitly configured to connect only to certain peers.

View File

@@ -71,7 +71,7 @@ You can fix this issue using `rippled` on supported Linux systems according to t
- You must be running **[rippled version 1.1.0][New in: rippled 1.1.0] or later**.
- [Upgrade rippled](update-rippled.html) to the latest stable version before starting this process.
- [Upgrade rippled](install-rippled.html) to the latest stable version before starting this process.
- You can check what version of `rippled` you have installed locally by running the following command:

View File

@@ -166,4 +166,19 @@ An error such as the following indicates that the `rippled.cfg` has an incomplet
Terminating thread rippled: main: unhandled St13runtime_error 'shard path missing'
```
If your config includes a `[shard_db]` stanza, it must contain a `path` field, which points to a directory where `rippled` can write the data for the shard store. This error means the `path` field is missing or located in the wrong place. Check for extra whitespace or typos in your config file, and compare against the [Shard Configuration Example](history-sharding.html#shard-configuration-example).
If your config includes a `[shard_db]` stanza, it must contain a `path` field, which points to a directory where `rippled` can write the data for the shard store. This error means the `path` field is missing or located in the wrong place. Check for extra whitespace or typos in your config file, and compare against the [Shard Configuration Example](configure-history-sharding.html#2-edit-rippledcfg).
## ShardStore unable to open/create RocksDB
If you enable [history sharding](history-sharding.html), then later change the configuration to use RocksDB instead of NuDB, the server may try to read the existing NuDB data as RocksDB data and fail to start. In this case, the server writes an error such as the following:
```text
ShardStore:ERR shard 504 error: Unable to open/create RocksDB: Invalid argument: /var/lib/rippled/db/shards/504: does not exist (create_if_missing is false)
```
To fix this problem, do one of the following:
- Move or delete the existing shard data from the configured folder
- Change where the shard store is located on disk by changing the `path` of the `[shard_db]` stanza in the `rippled.cfg` file.
- Change the shard store back to using NuDB.

View File

@@ -18,11 +18,11 @@ Terminating thread rippled: main: unhandled St13runtime_error
If your server always crashes on startup, see [Server Won't Start](server-wont-start.html) for possible cases.
If your server crashes randomly during operation or as a result of particular commands, make sure you are [updated](update-rippled.html) to the latest `rippled` version. If you are on the latest version and your server is still crashing, check the following:
If your server crashes randomly during operation or as a result of particular commands, make sure you are [updated](install-rippled.html) to the latest `rippled` version. If you are on the latest version and your server is still crashing, check the following:
- Is your server running out of memory? On some systems, `rippled` may be terminated by the Out Of Memory (OOM) Killer or another monitor process.
- If your server is running in a shared environment, are other users or administrators causing the machine or service to be restarted? For example, some hosted providers automatically kill any service that uses a large amount of a shared machine's resources for an extended period of time.
- Does your server meet the [minimum requirements](install-rippled.html#minimum-system-requirements) to run `rippled`? What about the [recommendations for production servers](capacity-planning.html#recommendation-1)?
- Does your server meet the [minimum requirements](system-requirements.html) to run `rippled`? What about the [recommendations for production servers](system-requirements.html#recommended-specifications)?
If none of the above apply, please report the issue to Ripple as a security-sensitive bug. If Ripple can reproduce the crash, you may be eligible for a bounty. See <https://ripple.com/bug-bounty/> for details.

View File

@@ -1,45 +0,0 @@
# Update rippled
You can subscribe to the [rippled Google Group](https://groups.google.com/forum/#!forum/ripple-server) to receive notifications of new `rippled` releases.
## Automatic Update on CentOS/Red Hat
Automatic rippled updates can be enabled with a one-time Cron configuration:
1. Check that `/opt/ripple/bin/update-rippled.sh` exists. If it does not, [update manually](#manual-update-on-centosred-hat).
2. Install `crond`:
$ sudo yum install cronie
3. Open the crontab file for editing
$ sudo crontab -e
4. Add the following to the crontab file. Be sure to add a blank line at the end of the file.
RANDOM_DELAY=59
0 * * * * /opt/ripple/bin/update-rippled.sh
The script updates the installed `rippled` package within an hour of each new release.
## Manual Update on CentOS/Red Hat
Run the following commands to update to the latest release of `rippled`:
$ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
$ sudo yum update --enablerepo=ripple-stable rippled
$ sudo systemctl daemon-reload
$ sudo service rippled restart
## Manual Update on Ubuntu
Run the following commands to update to the latest release of `rippled`:
$ sudo rpm -Uvh --replacepkgs https://mirrors.ripple.com/ripple-repo-el7.rpm
$ yumdownloader --enablerepo=ripple-stable --releasever=el7 rippled
$ rpm -K rippled*.rpm
$ sudo alien -i --scripts rippled*.rpm
$ sudo systemctl daemon-reload
$ sudo service rippled restart

View File

@@ -876,92 +876,215 @@ pages:
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
blurb: Build, install, configure, and run the rippled server.
blurb: A system admin's guide to setting up and maintaining the rippled server.
template: template-landing-children.html
targets:
- local
- md: tutorials/manage-the-rippled-server/capacity-planning.md
html: capacity-planning.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
targets:
- local
- md: tutorials/manage-the-rippled-server/install-rippled.md
- name: Install rippled
html: install-rippled.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Set up and update the rippled server.
template: template-landing-children.html
targets:
- local
- md: tutorials/manage-the-rippled-server/update-rippled.md
html: update-rippled.html
- md: tutorials/manage-the-rippled-server/installation/system-requirements.md
html: system-requirements.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Hardware and software requirements for running rippled.
targets:
- local
- md: tutorials/manage-the-rippled-server/cluster-rippled-servers.md
html: cluster-rippled-servers.html
- md: tutorials/manage-the-rippled-server/installation/install-rippled-on-centos-rhel-with-yum.md
html: install-rippled-on-centos-rhel-with-yum.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Install a precompiled rippled binary on CentOS or Red Hat Enterprise Linux.
targets:
- local
- md: tutorials/manage-the-rippled-server/enable-public-signing.md
html: enable-public-signing.html
- md: tutorials/manage-the-rippled-server/installation/install-rippled-on-ubuntu-with-alien.md
html: install-rippled-on-ubuntu-with-alien.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Install a precompiled rippled binary on Ubuntu Linux.
targets:
- local
- md: tutorials/manage-the-rippled-server/run-rippled-as-a-validator.md
html: run-rippled-as-a-validator.html
- md: tutorials/manage-the-rippled-server/installation/update-rippled-automatically-on-centos-rhel.md
html: update-rippled-automatically-on-centos-rhel.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Set up automatic updates for rippled on CentOS or Red Hat Enterprise Linux.
targets:
- local
- md: tutorials/manage-the-rippled-server/start-a-new-genesis-ledger-in-stand-alone-mode.md
html: start-a-new-genesis-ledger-in-stand-alone-mode.html
- md: tutorials/manage-the-rippled-server/installation/update-rippled-manually-on-centos-rhel.md
html: update-rippled-manually-on-centos-rhel.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Manually update rippled on CentOS or Red Hat Enterprise Linux.
targets:
- local
- md: tutorials/manage-the-rippled-server/load-a-saved-ledger-in-stand-alone-mode.md
html: load-a-saved-ledger-in-stand-alone-mode.html
- md: tutorials/manage-the-rippled-server/installation/update-rippled-manually-on-ubuntu.md
html: update-rippled-manually-on-ubuntu.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Manually update rippled on Ubuntu Linux.
targets:
- local
- md: tutorials/manage-the-rippled-server/advance-the-ledger-in-stand-alone-mode.md
html: advance-the-ledger-in-stand-alone-mode.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
targets:
- local
- md: tutorials/manage-the-rippled-server/build-run-rippled-ubuntu.md
- md: tutorials/manage-the-rippled-server/installation/build-run-rippled-ubuntu.md
html: build-run-rippled-ubuntu.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Compile rippled yourself on Ubuntu Linux.
targets:
- local
- md: tutorials/manage-the-rippled-server/installation/build-run-rippled-macos.md
html: build-run-rippled-macos.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Compile rippled yourself on macOS.
targets:
- local
- md: tutorials/manage-the-rippled-server/installation/capacity-planning.md
html: capacity-planning.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Installation
blurb: Plan system specs and tune configuration for rippled in production environments.
targets:
- local
- name: Configure rippled
html: configure-rippled.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Configuration
blurb: Customize your rippled server configuration.
template: template-landing-children.html
targets:
- local
- md: tutorials/manage-the-rippled-server/configuration/run-rippled-as-a-validator.md
html: run-rippled-as-a-validator.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Configuration
blurb: Have your server vote on the consensus ledger.
targets:
- local
- md: tutorials/manage-the-rippled-server/configuration/connect-your-rippled-to-the-xrp-test-net.md
html: connect-your-rippled-to-the-xrp-test-net.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Configuration
blurb: Connect your rippled server to the test net to try out new features or test functionality with fake money.
targets:
- local
- md: tutorials/manage-the-rippled-server/configuration/cluster-rippled-servers.md
html: cluster-rippled-servers.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Configuration
blurb: Set up a group of servers that share work for higher efficiency.
targets:
- local
- md: tutorials/manage-the-rippled-server/configuration/configure-history-sharding.md
html: configure-history-sharding.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Configuration
blurb: Set up a server to contribute to preserving shards of historical XRP Ledger data.
targets:
- local
- md: tutorials/manage-the-rippled-server/configuration/enable-public-signing.md
html: enable-public-signing.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Configuration
blurb: Allow others to use your server to sign transactions. (Not recommended)
targets:
- local
- name: Use rippled in Stand-Alone Mode
html: use-stand-alone-mode.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Stand-Alone Mode
blurb: Use rippled's Stand Alone Mode for testing new features or configurations.
template: template-landing-children.html
targets:
- local
- md: tutorials/manage-the-rippled-server/stand-alone-mode/start-a-new-genesis-ledger-in-stand-alone-mode.md
html: start-a-new-genesis-ledger-in-stand-alone-mode.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Stand-Alone Mode
blurb: Start from a fresh genesis ledger in stand-alone mode.
targets:
- local
- md: tutorials/manage-the-rippled-server/stand-alone-mode/load-a-saved-ledger-in-stand-alone-mode.md
html: load-a-saved-ledger-in-stand-alone-mode.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Stand-Alone Mode
blurb: Start in stand-alone mode from a specific saved ledger to test or replay transactions.
targets:
- local
- md: tutorials/manage-the-rippled-server/stand-alone-mode/advance-the-ledger-in-stand-alone-mode.md
html: advance-the-ledger-in-stand-alone-mode.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Stand-Alone Mode
blurb: Make progress in stand-alone mode by manually closing the ledger.
targets:
- local
# TODO: run a validator, run in stand-alone mode, set up private peers
- name: Troubleshooting rippled
html: troubleshoot-the-rippled-server.html
@@ -1004,13 +1127,12 @@ pages:
targets:
- local
# TODO: more troubleshooting rippled articles
- md: tutorials/manage-the-rippled-server/fix-sqlite-tx-db-page-size-issue.md
- md: tutorials/manage-the-rippled-server/troubleshooting/fix-sqlite-tx-db-page-size-issue.md
html: fix-sqlite-tx-db-page-size-issue.html
funnel: Docs
doc_type: Tutorials
category: Manage the rippled Server
subcategory: Troubleshooting rippled
targets:
- local