Files
xrpl-dev-portal/content/tutorial-build-run-rippled-ubuntu.md
2018-02-01 17:40:39 -08:00

6.1 KiB

Build and Run rippled on Ubuntu

rippled is the core peer-to-peer server that manages the XRP Ledger. A rippled server can connect to a network of peers, relay cryptographically signed transactions, and maintain a local copy of the complete shared global ledger.

For an overview of rippled, see Operating rippled Servers

Use these instructions to build a rippled binary file and run it as a stock rippled server on Ubuntu 15.04 or later. These instructions were tested on Ubuntu 16.04 LTS.

For information about building rippled for other platforms, see Builds in the rippled GitHub repository.

System Requirements

Ripple recommends meeting the following minimum system requirements for building and running rippled.

To build rippled:

  • RAM: 8GB

To run rippled:

  • RAM: 4GB
  • CPU: 64-bit x86_64, 2+ cores
  • Disk: 50GB SSD with 500 IOPS for the database partition
  • Network: A fast network connection is preferable.

If you are running rippled in an Amazon EC2 instance, Ripple recommends selecting a Type of m3.large. If you choose to run a validating rippled server, you may need more resources.

1. Build rippled

These instructions use Ubuntu's APT (Advanced Packaging Tool) to install software prerequisites that you'll need to build rippled.

  1. Update the list of packages that can be installed or upgraded.
sudo apt-get update
  1. Retrieve and upgrade currently installed packages.
sudo apt-get -y upgrade
  1. Install git.
sudo apt-get -y install git
  1. Install SCons.
sudo apt-get -y install scons
  1. Install Ctags.
sudo apt-get -y install ctags
  1. Install pkg-config.
sudo apt-get -y install pkg-config
  1. Install Protocol Buffers.
sudo apt-get -y install protobuf-compiler
sudo apt-get -y install libprotobuf-dev
  1. Install SSL.
sudo apt-get -y install libssl-dev
  1. Install python-software-properties.
sudo apt-get install -y python-software-properties
  1. Install Boost.
sudo add-apt-repository -y ppa:boost-latest/ppa
sudo apt-get -y update
sudo apt-get install -y libboost-all-dev
  1. Get rippled source code.
git clone https://github.com/ripple/rippled.git
cd rippled
git checkout master
  1. Build rippled binary executable from source code. This may take about 30 minutes.

    SCons saves the built executable in rippled/build.

scons

2. Configure rippled

  1. Configure rippled.cfg.

    rippled.cfg is the configuration file for rippled.

    You can find an example configuration file (rippled-example.cfg) in rippled/doc. See the file for a description of all configuration options. You should be able to connect to the XRP Ledger using the default configuration defined in the example file.

    Put rippled.cfg in etc/opt/ripple/.

  2. Configure validators.txt.

    When you start rippled for the first time, it uses an initial list of validators defined in validators.txt to retrieve validation information and form its UNL (unique node list). validators.txt also enables rippled clients to indirectly locate IPs they can use to contact the Ripple network.

    You can find an example validators file (validators-example.txt) in rippled/doc. See the file for a description of all validator options. You should be able to connect to the XRP Ledger using the default validators defined in the example file.

    Put validators.txt in etc/opt/ripple/.

3. Run rippled

To run your stock rippled server from the executable you built, using the configurations you defined:

cd build
sudo ./rippled

What to Expect

Once you've run rippled, here are excerpts of what you can expect to see in your terminal.

Loading: "/etc/opt/ripple/rippled.cfg"
Watchdog: Launching child 1
2017-Dec-15 18:27:37 JobQueue:NFO Auto-tuning to 4 validation/transaction/proposal threads for non-validator.
2017-Dec-15 18:27:37 Amendments:DBG Amendment C6970A8B603D8778783B61C0D445C23D1633CCFAEF0D43E7DBCD1521D34BD7C3 is supported.
2017-Dec-15 18:27:37 Amendments:DBG Amendment 4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373 is supported.
...
2017-Dec-15 18:27:37 ValidatorList:DBG Loading configured trusted validator list publisher keys
...
2017-Dec-15 18:27:37 ValidatorList:DBG Loading configured validator keys
...
2017-Dec-15 18:27:37 ValidatorSite:DBG Loading configured validator list sites
...
2017-Dec-15 18:27:38 LedgerConsensus:NFO Entering consensus process, watching, synced=no
...
2017-Dec-15 18:27:40 LedgerConsensus:WRN
{
	"accepted" : true,
	"account_hash" : "183D5235C7C1FB5AE67AD2F6CC3B28F5FB86E8C4F89DB50DD85641A96470534E",
	"close_flags" : 0,
	"close_time" : 566677650,
	"close_time_human" : "2017-Dec-15 18:27:30",
	"close_time_resolution" : 30,
	"closed" : true,
	"hash" : "014816C71F4B9AD5924AFBD7B02E0DF1522C4BC4BC45A69F97F51D4F2234FA10",
	"ledger_hash" : "014816C71F4B9AD5924AFBD7B02E0DF1522C4BC4BC45A69F97F51D4F2234FA10",
	"ledger_index" : "2",
	"parent_close_time" : 0,
	"parent_hash" : "AB868A6CFEEC779C2FF845C0AF00A642259986AF40C01976A7F842B6918936C7",
	"seqNum" : "2",
	"totalCoins" : "100000000000000000",
	"total_coins" : "100000000000000000",
	"transaction_hash" : "0000000000000000000000000000000000000000000000000000000000000000"
}
...
2017-Dec-15 18:27:50 NetworkOPs:WRN We are not running on the consensus ledger
2017-Dec-15 18:27:50 LedgerConsensus:WRN Need consensus ledger 8459443546CCBE4E89A41E1D0C17F24FBEA7B344C1ED6A26292B4C5CD19B4321
...
2017-Dec-15 18:38:28 OpenLedger:WRN Offer involves frozen asset
2017-Dec-15 18:38:31 LedgerConsensus:WRN Offer involves frozen asset

Explore Next Steps

Now that you have a 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 the rippled Setup Tutorial.

For information about updating and maintaining your rippled server, see Updating rippled.

For information about using the rippled API, see rippled.