Skip to content

rippled Version 0.21.0

Compare
Choose a tag to compare
@mDuo13 mDuo13 released this 23 May 23:49
· 5226 commits to develop since this release

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.