Releases: XRPLF/rippled
rippled Version 0.22.0
rippled version 0.22.0 has been released. This release is currently the tip of the develop/ branch and can be found on GitHub at: https://github.com/ripple/rippled/tree/develop The tag is 0.22.0 and can be found on GitHub at: https://github.com/ripple/rippled/tree/0.22.0
This is a critical release affecting transaction processing. 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:
This release incorporates significant improvements which may not warrant separate entries but are incorporated into the feature changes as summary lines. Please refer to the Git commit history for more information.
Toolchain support
The minimum supported version of GCC used to compile rippled is v4.8. Please follow these instructions if you have not upgraded already.
A minimum of 4GB of RAM are required to successfully compile this release.
The minimum supported version of libBOOST is v1.55. You must upgrade to this release or later to successfully compile this release. Please follow these instructions if you have not upgraded already.
Key release features
- PeerFinder
- Actively guides network topology.
- Scrubs listening advertisements based on connectivity checks.
- Redirection for new nodes when existing nodes are full.
- Memos
- Transactions can optionally include a short text message, which optionally can be encrypted.
- Database
- Improved management of I/O resources.
- Better performance accessing historical data.
- PathFinding
- More efficient search algorithm when computing paths
Major Partner Issues Fixed
- Transactions
- Malleability: Ability to ensure that signatures are fully canonical.
- PathFinding
- Less time needed to get the first path result!
- Database
- Eliminated "meltdowns" caused when fetching historical ledger data.
Significant Changes
- Cleaned up logic which controls when ledgers are fetched and under what conditions.
- Cleaned up file path calculation for database files.
- Changed dispatcher for WebSocket requests.
- Cleaned up multithreading mechanisms.
- Fixed custom currency code parsing.
- Optimized transaction node lookup circumstances in the node store.
rippled Version 0.21.0
rippled version 0.21.0 has been released. This release is currently the tip of the develop/ branch and can be found on GitHub at 1. The tag is 0.21.0-rc2 and can be found on GitHub at 2.
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 f295bb20a16d1d2999f606c1297c8930d8e33c40
Author: JoelKatz <DavidJoelSchwartz@GMail.com>
Date: Fri Jan 24 11:17:16 2014 -0800
Set version to 0.21.0.rc2
Major Partner Issues Fixed
- Order book issues
- Ensure all crossing offers are taken
- Ensure order book is not left crossed
- Added DeliveredAmount field to transaction metadata
- Reports amount delivered in partial payments
Toolchain support
As with the previous release, the minimum supported version of GCC used to compile rippled is v4.8.
Significant Changes
- Pairwise no-ripple
- Permits trust lines to be protected from rippling
- Operates on protected pairs
- Performance improvements
- Improve I/O latency
- Improve fetching ledgers
- Improve pathfinding
- Features for robust transaction submission
- LastLedgerSeq for transaction expiration
- AccountTxnID for transaction chaining
- Fix some cases where an invalid transaction would stay in limbo
- Code cleanups
- Better reporting of invalid parameters
Release Candidates
RC1 fixed performance problems with order book retrieval.
RC2 fixed a bug that caused crashes in order processing and a bug in parsing order book requests.
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]
184.73.226.101 51235
23.23.201.55 51235
54.200.43.173 51235
184.73.57.84 51235
54.234.249.55 51235
54.200.86.110 51235
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=128
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.20.1
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 <vinnie.falco@gmail.com>
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
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 <vinnie.falco@gmail.com>
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
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
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
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 <DavidJoelSchwartz@GMail.com>
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.