first draft of build and run on ubuntu

This commit is contained in:
Jennifer Hasegawa
2017-12-15 17:08:44 -08:00
parent 2a216b3e93
commit 6197192f39
2 changed files with 83 additions and 110 deletions

View File

@@ -1,14 +1,15 @@
#Build and Run `rippled` on Ubuntu 15.04 and Later
# 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](tutorial-rippled-setup.html)
Use these instructions to build a `rippled` binary file and run it as a stock `rippled` server on Ubuntu. These instructions use Ubuntu's APT (Advanced Packaging Tool) to install software prerequisites. These instructions were tested on Ubuntu 16.04 LTS.
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](https://github.com/ripple/rippled/tree/develop/Builds) in the `rippled` GitHub repository.
##System Requirements
## System Requirements
Ripple recommends meeting the following **minimum** system requirements for building and running `rippled`.
@@ -18,118 +19,107 @@ Ripple recommends meeting the following **minimum** system requirements for buil
**_To run rippled:_**
* RAM: 4GB
* CPU: 64-bit x86_64, 2+ cores
* Disk: 50GB SSD with 500 IOPS for the database partition
* RAM: 4GB
* 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_**. Keep in mind that if you choose to run a validating `rippled` server, you may need more resources. Naturally, your server's workload determines the resources it requires.
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.
##Build and Run `rippled`
<ol>
<li><p>Update list of packages that can be installed or upgraded.</p>
<pre>
## 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
</pre>
<br/>
</li>
<li><p>Retrieve and upgrade currently installed packages.</p>
<pre>
```
2. Retrieve and upgrade currently installed packages.
```
sudo apt-get -y upgrade
</pre>
<br/>
</li>
<li>
<p>Install git.</p>
<pre>
```
3. Install git.
```
sudo apt-get -y install git
</pre>
<br/></li>
<li><p>Install SCons.</p>
<pre>
```
4. Install SCons.
```
sudo apt-get -y install scons
</pre>
<br/></li>
<li>
<p>Install Ctags.</p>
<pre>
```
5. Install Ctags.
```
sudo apt-get -y install ctags
</pre>
<br/></li>
<li>
<p>Install <code>pkg-config</code>.</p>
<pre>
```
6. Install `pkg-config`.
```
sudo apt-get -y install pkg-config
</pre>
<br/></li>
<li>
<p>Install Protocol Buffers.</p>
<pre>
```
7. Install Protocol Buffers.
```
sudo apt-get -y install protobuf-compiler
sudo apt-get -y install libprotobuf-dev
</pre>
<br/></li>
<li>
<p>
Install SSL.</p>
<pre>
```
8. Install SSL.
```
sudo apt-get -y install libssl-dev
</pre>
<br/></li>
<li>
<p>Install <code>python-software properties</code>. Provides the <code>add-apt-repository</code> binary that you'll need to install Boost.</p>
<pre>
```
9. Install `python-software-properties`.
```
sudo apt-get install -y python-software-properties
</pre>
<br/></li>
<li>
<p>Install Boost.</p>
<pre>
```
10. Install Boost.
```
sudo add-apt-repository -y ppa:boost-latest/ppa
sudo apt-get -y update
sudo apt-get install -y libboost-all-dev
</pre>
<br/></li>
<li>
<p>Get <code>rippled</code> source code.</p>
<pre>
```
11. Get `rippled` source code.
```
git clone https://github.com/ripple/rippled.git
cd rippled
git checkout master
</pre>
<br/></li>
<li>
<p>Build <code>rippled</code> binary executable from source code. This may take about 30 minutes.</p>
<pre>
```
12. Build `rippled` binary executable from source code. This may take about 30 minutes.
SCons saves the built executable in `rippled/build`.
```
scons
</pre>
<br/></li>
<li>
<p>Configure <code>rippled.cfg</code>.</p>
<p><code>rippled.cfg</code> is the configuration file for <code>rippled</code>.</p>
<p>You can find an example configuration file (<code>rippled-example.cfg</code>) in <code>rippled/doc</code>. 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.</p>
<p>Put <code>rippled.cfg</code> in <code>etc/opt/ripple/</code>.</p>
</li>
<li>
<p>Configure <code>validators.txt</code>.</p>
<p>When you start <code>rippled</code> for the first time, it uses an initial list of validators defined in <code>validators.txt</code> to retrieve validation information and form its UNL (unique node list). <code>validators.txt</code> also enables <code>rippled</code> clients to indirectly locate IPs they can use to contact the Ripple network.</p>
<p>You can find an example validators file (<code>validators-example.txt</code>) in <code>rippled/doc</code>. 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.</p>
<p>Put <code>validators.txt</code> in <code>etc/opt/ripple/</code>.</p>
</li>
<li>
<p>Run <code>rippled</code>.</p>
<pre>
```
## 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
</pre>
<p>You are now running a stock <code>rippled</code> server.</p>
</li>
</ol>
```
##Verify Your Running Instance
Here are excerpts of what you can expect to see in your terminal once `rippled` is running and connected to the XRP Ledger:
### 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"
@@ -137,25 +127,15 @@ 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,
@@ -175,25 +155,18 @@ Watchdog: Launching child 1
"total_coins" : "100000000000000000",
"transaction_hash" : "0000000000000000000000000000000000000000000000000000000000000000"
}
...
2017-Dec-15 18:27:48 LedgerConsensus:WRN Need consensus ledger BD5DA7BE8633FCBBBBD58BA62569397BCEE73848FD6068581F5E795243FDFF0B
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:27:53 NetworkOPs:WRN We are not running on the consensus ledger
...
2017-Dec-15 18:38:28 OpenLedger:WRN Offer involves frozen asset
2017-Dec-15 18:38:28 OpenLedger:WRN Offer involves frozen asset
2017-Dec-15 18:38:31 LedgerConsensus: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. See the [rippled Setup Tutorial](tutorial-rippled-setup.html) for information about validating servers and why you might want to run one.
## 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](tutorial-rippled-setup.html).
For information about updating and maintaining your `rippled` server, see [Updating rippled](tutorial-rippled-setup.html#updating-rippled).