Skip to content

Releases: XRPLF/rippled

rippled Version 0.20.1

23 May 23:50
Compare
Choose a tag to compare

rippled version 0.20.1 has been released. This release is currently the tip of the develop branch and the tag is 0.20.1.

This is a critical release. All partners should update immediately.

Prior to building, please confirm you have the correct source tree with the git log command. The first log entry should be the change setting the version:

commit 95a573b755219d7e1e078d53b8e11a8f0d7cade1
Author: Vinnie Falco <[email protected]>
Date:   Wed Jan 8 17:08:27 2014 -0800

   Set version to 0.20.1

Major Partner Issues Fixed

  • rippled will crash randomly.
  • Entries in the three parts of the order book are missing or do not match. In such a case, rippled will crash.
  • Server loses sync randomly.
  • This is due to rippled restarting after it crashes. That the server restarted is not obvious and appears to be something else.
  • Server goes 'offline' randomly.
  • This is due to rippled restarting after it crashes. That the server restarted is not obvious and appears to be something else.
  • complete_ledgers part of server_info output says "None".
  • This is due to rippled restarting and reconstructing the ledger after it crashes.
  • If the node back end is corrupted or has been moved without being renamed in rippled.cfg, this can cause rippled to crash and restart.

Toolchain support

Starting with this release, the minimum supported version of GCC used to compile rippled is v4.8.

Significant Changes

  • Don't log StatsD messages to the console by default.
  • Fixed missing jtACCEPT job limit.
  • Removed dead code to clean up the codebase.
  • Reset liquidity before retrying rippleCalc.
  • Made improvements becuase items in SHAMaps are immutable.
  • Multiple pathfinding bugfixes:
  • Make each path request track whether it needs updating.
  • Improve new request handling, reverse order for processing requests.
  • Break to handle new requests immediately.
  • Make mPathFindThread an integer rather than a bool. Allow two threads.
  • Suspend processing requests if server is backed up.
  • Multiple performance improvements and enhancements.
  • Fixed locking.
  • Refactored codebase to make it C++11 compliant.
  • Multiple fixes to ledger acquisition, cleanup, and logging.
  • Made multiple improvements to WebSockets server.
  • Added Debian-style initscript (doc/rippled.init).
  • Updated default config file (doc/rippled-example.cfg) to reflect best practices.
  • Made changes to SHAMapTreeNode and visitLeavesInternal to conserve memory.
  • Implemented new fee schedule:
  • Transaction fee: 10 drops
  • Base reserve: 20 XRP
  • Incremental reserve: 5 XRP
  • Fixed bug #211 (getTxsAccountB in NetworkOPs).
  • Fixed a store/fetch race condition in ther node back end.
  • Fixed multiple comparison operations.
  • Removed Sophia and Lightning databases.

Notice

If you are upgrading from version 0.12 or earlier of rippled, these next sections apply to you because the format of the rippled.cfg file changed around that time. If you have upgraded since that time and you have applied the configuration file fixes, you can safely ignore them.

Validators

Ripple Labs is now running five validators. You can use this template for your validators.txt file (or place this in your config file):

[validators]
n9KPnVLn7ewVzHvn218DcEYsnWLzKerTDwhpofhk4Ym1RUq4TeGw    RIP1
n9LFzWuhKNvXStHAuemfRKFVECLApowncMAM5chSCL9R5ECHGN4V    RIP2
n94rSdgTyBNGvYg8pZXGuNt59Y5bGAZGxbxyvjDaqD9ceRAgD85P    RIP3
n9LeQeDcLDMZKjx1TZtrXoLBLo5q1bR1sUQrWG7tEADFU6R27UBp    RIP4
n9KF6RpvktjNs2MDBkmxpJbup4BKrKeMKDXPhaXkq7cKTwLmWkFr    RIP5

You should also raise your quorum to at least three by putting the following in your rippled.cfg file:

[validation_quorum]
3

If you are a validator, you should set your quorum to at least four.

IPs

A list of Ripple Labs server IP addresses can be found by resolving r.ripple.com. You can also add this to your rippled.cfg file to ensure you always have several peer connections to Ripple Labs servers:

[ips]
54.225.112.220 51235
54.225.123.13  51235
54.227.239.106 51235
107.21.251.218 51235
184.73.226.101 51235
23.23.201.55   51235

New RocksDB back end

RocksDB is based on LevelDB with improvements from Facebook and the community. Preliminary tests show that it stalls less often than HyperLevelDB for our use cases.

If you are switching over from an existing back end, you have two options. You can remove your old database and let rippled recreate it as it re-syncs, or you can import your old database into the new one.

To remove your old database, make sure the server is shut down (rippled stop). Remove the db/ledger.db and db/transaction.db files. Remove all the files in your back end store directory (db/hashnode by default). Then change your configuration file to use the RocksDB back end and restart.

To import your old database, start by shutting the server down. Then modify the configuration file by renaming your [node_db] stanza to [import_db]. Create a new [node_db] stanza and specify a RocksDB back end with a different directory. Start the server with the command rippled --import. When the import finishes gracefully stop the server (rippled stop). Please wait for rippled to stop on its own because it can take several minutes for it to shut down after an import. Remove the old database, put the new database into place, remove the [import_db] section, change the [node_db] section to refer to the final location, and restart the server.

The recommended RocksDB configuration is:

[node_db]
type=RocksDB
path=db/hashnode
open_files=1200
filter_bits=12
cache_mb=256
file_size_mb=8
file_size_mult=2

Configuring your Node DB

You need to configure the NodeBackEnd that you want the server to use. See above for an example RocksDB configuration.

  • Note: HyperLevelDB and RocksDB are not available on Windows platform.

rippled Version 0.19

23 May 23:51
Compare
Choose a tag to compare

rippled version 0.19 has now been released. This release is currently the tip of the release branch and the tag is 0.19.0.

Prior to building, please confirm you have the correct source tree with the git log command. The first log entry should be the change setting the version:

commit 26783607157a8b96e6e754f71565f4eb0134efc1
Author: Vinnie Falco <[email protected]>
Date:   Fri Nov 22 23:36:50 2013 -0800

    Set version to 0.19.0

Significant Changes

  • Bugfixes and improvements in path finding, path filtering, and payment execution.
  • Updates to HyperLevelDB and LevelDB node storage back ends.
  • Addition of RocksDB node storage back end.
  • New resource manager for tracking server load.
  • Fixes for a few bugs that can crashes or inability to serve client requests.

Validators

Ripple Labs is now running five validators. You can use this template for your validators.txt file (or place this in your config file):

[validators]
n9KPnVLn7ewVzHvn218DcEYsnWLzKerTDwhpofhk4Ym1RUq4TeGw    RIP1
n9LFzWuhKNvXStHAuemfRKFVECLApowncMAM5chSCL9R5ECHGN4V    RIP2
n94rSdgTyBNGvYg8pZXGuNt59Y5bGAZGxbxyvjDaqD9ceRAgD85P    RIP3
n9LeQeDcLDMZKjx1TZtrXoLBLo5q1bR1sUQrWG7tEADFU6R27UBp    RIP4
n9KF6RpvktjNs2MDBkmxpJbup4BKrKeMKDXPhaXkq7cKTwLmWkFr    RIP5

You should also raise your quorum to at least three by putting the following in your rippled.cfg file:

[validation_quorum]
3

If you are a validator, you should set your quorum to at least four.

IPs

A list of Ripple Labs server IP addresses can be found by resolving r.ripple.com. You can also add this to your rippled.cfg file to ensure you always have several peer connections to Ripple Labs servers:

[ips]
54.225.112.220 51235
54.225.123.13  51235
54.227.239.106 51235
107.21.251.218 51235
184.73.226.101 51235
23.23.201.55   51235

New RocksDB back end

RocksDB is based on LevelDB with improvements from Facebook and the community. Preliminary tests show that it stall less often than HyperLevelDB.

If you are switching over from an existing back end, you have two choices. You can remove your old database or you can import it.

To remove your old database, make sure the server is shutdown. Remove the db/ledger.db and db/transaction.db files. Remove all the files in your back end store directory, db/hashnode by default. Then you can change your configuration file to use the RocksDB back end and restart.

To import your old database, start by shutting the server down. Then modify the configuration file by renaming your [node_db] portion to [import_db]. Create a new [node_db] section specify a RocksDB back end and a different directory. Start the server with rippled --import. When the import finishes, stop the server (it can take several minutes to shut down after an import), remove the old database, put the new database into place, remove the [import_db] section, change the [node_db] section to refer to the final location, and restart the server.

The recommended RocksDB configuration is:

[node_db]
type=RocksDB
path=db/hashnode
open_files=1200
filter_bits=12
cache_mb=256
file_size_mb=8
file_size_mult=2

Configuring your Node DB

You need to configure the NodeBackEnd that you want the server to use. See above for an example RocksDB configuration.

  • Note: HyperLevelDB and RocksDB are not available on Windows platform.

rippled Version 0.16

23 May 23:51
Compare
Choose a tag to compare

rippled version 0.16 has now been released. This release is currently the tip of the master branch and the tag is v0.16.0.

Prior to building, please confirm you have the correct source tree with the git log command. The first log entry should be the change setting the version:

commit 15ef43505473225af21bb7b575fb0b628d5e7f73
Author: vinniefalco
Date:   Wed Oct 2 2013

   Set version to 0.16.0

Significant Changes

  • Improved peer discovery
  • Improved pathfinding
  • Ledger speed improvements
  • Reduced memory consumption
  • Improved server stability
  • rippled no longer throws and exception on exiting
  • Better error reporting
  • Ripple-lib tests have been ported to use the Mocha testing framework

Validators

Ripple Labs is now running five validators. You can use this template for your validators.txt file:

[validators]
n9KPnVLn7ewVzHvn218DcEYsnWLzKerTDwhpofhk4Ym1RUq4TeGw    RIP1
n9LFzWuhKNvXStHAuemfRKFVECLApowncMAM5chSCL9R5ECHGN4V    RIP2
n94rSdgTyBNGvYg8pZXGuNt59Y5bGAZGxbxyvjDaqD9ceRAgD85P    RIP3
n9LeQeDcLDMZKjx1TZtrXoLBLo5q1bR1sUQrWG7tEADFU6R27UBp    RIP4
n9KF6RpvktjNs2MDBkmxpJbup4BKrKeMKDXPhaXkq7cKTwLmWkFr    RIP5

You should also raise your quorum to at least three by putting the following in your rippled.cfg file:

[validation_quorum]
3

If you are a validator, you should set your quorum to at least four.

IPs

A list of Ripple Labs server IP addresses can be found by resolving r.ripple.com. You can also add this to your rippled.cfg file to ensure you always have several peer connections to Ripple Labs servers:

[ips]
54.225.112.220 51235
54.225.123.13  51235
54.227.239.106 51235
107.21.251.218 51235
184.73.226.101 51235
23.23.201.55   51235

Node DB

You need to configure the NodeBackEnd that you want the server to use. In most cases, that will mean adding this to your configuration file:

[node_db]
type=HyperLevelDB
path=db/hashnode
  • NOTE HyperLevelDB is not available on Windows platforms.

Release Candidates

Issues

None known

rippled Version 0.14

23 May 23:52
Compare
Choose a tag to compare

rippled version 0.14 has now been released. This release is currently the tip of the master branch and the tag is v0.12.0.

Prior to building, please confirm you have the correct source tree with the git log command. The first log entry should be the change setting the version:

commit b6d11c08d0245ee9bafbb97143f5d685dd2979fc
Author: vinniefalco
Date:   Wed Oct 2 2013

   Set version to 0.14.0

Significant Changes

  • Improved peer discovery
  • Improved pathfinding
  • Ledger speed improvements
  • Reduced memory consumption
  • Improved server stability
  • rippled no longer throws and exception on exiting
  • Better error reporting
  • Ripple-lib tests have been ported to use the Mocha testing framework

Validators

Ripple Labs is now running five validators. You can use this template for your validators.txt file:

[validators]
n9KPnVLn7ewVzHvn218DcEYsnWLzKerTDwhpofhk4Ym1RUq4TeGw    RIP1
n9LFzWuhKNvXStHAuemfRKFVECLApowncMAM5chSCL9R5ECHGN4V    RIP2
n94rSdgTyBNGvYg8pZXGuNt59Y5bGAZGxbxyvjDaqD9ceRAgD85P    RIP3
n9LeQeDcLDMZKjx1TZtrXoLBLo5q1bR1sUQrWG7tEADFU6R27UBp    RIP4
n9KF6RpvktjNs2MDBkmxpJbup4BKrKeMKDXPhaXkq7cKTwLmWkFr    RIP5

You should also raise your quorum to at least three by putting the following in your rippled.cfg file:

[validation_quorum]
3

If you are a validator, you should set your quorum to at least four.

IPs

A list of Ripple Labs server IP addresses can be found by resolving r.ripple.com. You can also add this to your rippled.cfg file to ensure you always have several peer connections to Ripple Labs servers:

[ips]
54.225.112.220 51235
54.225.123.13  51235
54.227.239.106 51235
107.21.251.218 51235
184.73.226.101 51235
23.23.201.55   51235

Node DB

You need to configure the NodeBackEnd that you want the server to use. In most cases, that will mean adding this to your configuration file:

[node_db]
type=HyperLevelDB
path=db/hashnode
  • NOTE HyperLevelDB is not available on Windows platforms.

Release Candidates

Issues

None known

rippled Version 0.12

23 May 23:53
Compare
Choose a tag to compare

rippled version 0.12 has now been released. This release is currently the tip of the master branch and can be found on GitHub. The tag is v0.12.0.

Prior to building, please confirm you have the correct source tree with the git log command. The first log entry should be the change setting the version:

commit d0a9da6f16f4083993e4b6c5728777ffebf80f3a
Author: JoelKatz <[email protected]>
Date:   Mon Aug 26 12:08:05 2013 -0700

    Set version to v0.12.0

Major Partner Issues Fixed

  • Server Showing "Offline"

This issue was caused by LevelDB periodically compacting its internal data structure. While compacting, rippled's processing would stall causing the node to lose sync with the rest of the network. This issue was solved by switching from LevelDB to HyperLevelDB. rippled operators will need to change their ripple.cfg file. See below for configuration details.

  • Premature Validation of Transactions

On rare occasions, a transaction would show as locally validated before the full network consensus was confirmed. This issue was resolved by changing the way transactions are saved.

  • Missing Ledgers

Occasionally, some rippled servers would fail to fetch all ledgers. This left gaps in the local history and caused some API calls to report incomplete results. The ledger fetch code was rewritten to both prevent this and to repair any existing gaps.

Significant Changes

  • The way transactions are saved has been changed. This fixes a number of ways transactions can incorrectly be reported as fully-validated.
  • doTransactionEntry now works against open ledgers.
  • doLedgerEntry now supports a binary option.
  • A bug in getBookPage that caused it to skip offers is fixed.
  • getNodeFat now returns deeper chains, reducing ledger acquire latency.
  • Catching up if the (published ledger stream falls behind the network) is now more aggressive.
  • I/O stalls are drastically reduced by using the HyperLevelDB node back end.
  • Persistent ledger gaps should no longer occur.
  • Clusters now exchange load information.

Validators

Ripple Labs is now running five validators. You can use this template for your validators.txt file:

[validators]
n9KPnVLn7ewVzHvn218DcEYsnWLzKerTDwhpofhk4Ym1RUq4TeGw    RIP1
n9LFzWuhKNvXStHAuemfRKFVECLApowncMAM5chSCL9R5ECHGN4V    RIP2
n94rSdgTyBNGvYg8pZXGuNt59Y5bGAZGxbxyvjDaqD9ceRAgD85P    RIP3
n9LeQeDcLDMZKjx1TZtrXoLBLo5q1bR1sUQrWG7tEADFU6R27UBp    RIP4
n9KF6RpvktjNs2MDBkmxpJbup4BKrKeMKDXPhaXkq7cKTwLmWkFr    RIP5

Update April 2014 - Due to a vulnerability in OpenSSL the validator keys above have been cycled out, the five validators by RippleLabs use the following keys now:

[validators]
n949f75evCHwgyP4fPVgaHqNHxUVN15PsJEZ3B3HnXPcPjcZAoy7     RL1
n9MD5h24qrQqiyBC8aeqqCWvpiBiYQ3jxSr91uiDvmrkyHRdYLUj     RL2
n9L81uNCaPgtUJfaHh89gmdvXKAmSt5Gdsw2g1iPWaPkAHW5Nm4C     RL3
n9KiYM9CgngLvtRCQHZwgC2gjpdaZcCcbt3VboxiNFcKuwFVujzS     RL4
n9LdgEtkmGB9E2h3K4Vp7iGUaKuq23Zr32ehxiU8FWY7xoxbWTSA     RL5

You should also raise your quorum to at least three by putting the following in your rippled.cfg file:

[validation_quorum]
3

If you are a validator, you should set your quorum to at least four.

IPs

A list of Ripple Labs server IP addresses can be found by resolving r.ripple.com. You can also add this to your rippled.cfg file to ensure you always have several peer connections to Ripple Labs servers:

[ips]
54.225.112.220 51235
54.225.123.13  51235
54.227.239.106 51235
107.21.251.218 51235
184.73.226.101 51235
23.23.201.55   51235

Node DB

You need to configure the NodeBackEnd that you want the server to use. In most cases, that will mean adding this to your configuration file:

[node_db]
type=HyperLevelDB
path=db/hashnode
  • NOTE HyperLevelDB is not available on Windows platforms.

Release Candidates

RC1 was the first release candidate.

RC2 fixed a bug that could cause ledger acquires to stall.

RC3 fixed compilation under OSX.

RC4 includes performance improvements in countAccountTx and numerous small fixes to ledger acquisition.

RC5 changed the peer low water mark from 4 to 10 to acquire more server connections.

RC6 fixed some possible load issues with the network state timer and cluster reporting timers.

Issues

Fetching of historical ledgers is slower in this build than in previous builds. This is being investigated.