Introducing XRP Ledger version 1.5.0
XRP Ledger (
rippled server) version 1.5.0 has been released. The
rippled 1.5.0 release introduces several improvements and new features, including support for gRPC API, API versioning, UNL propagation via the peer network, new RPC methods
submit method, improved
tx method, improved CLI parsing, improved protocol-level handshaking protocol, improved package building and various other minor bug fixes and improvements.
This release introduces two new amendments:
RequireFullyCanonicalSig. These amendments are now open for voting according to the XRP Ledger's amendment process, which enables protocol changes following two weeks of >80% support from trusted validators.
If you operate an XRP Ledger server, then you should upgrade to version 1.5.0 by 2020-04-13, to ensure service continuity. The exact time that protocol changes take effect could be on that date or later, depending on the voting decisions of the decentralized network.
If you operate an XRP Ledger validator, please learn more about these amendments so you can make informed decisions about if and when your validator should support them. If you take no action, your validator begins voting in favor of the new amendments as soon as it has been upgraded.
Impact of Not Upgrading
When one or both of the new amendments become enabled, any server on a version earlier than 1.5.0 will become amendment blocked, meaning that it:
- Cannot determine the validity of a ledger;
- Cannot submit or process transactions;
- Cannot participate in the consensus process;
- Cannot vote on future amendments; and
- Could rely on potentially invalid data.
If the amendments do not become enabled, then your XRP Ledger server will not become amendment blocked and should continue to operate.
For instructions on updating XRP Ledger on supported platforms, see here:
The SHA-256 hashes for the official packages are as follows:
|Red Hat RPM (x86-64)||
|Ubuntu DEB (x86-64)||
For other platforms, please compile version 1.5.0 from source.
The first log entry should be the change setting the version:
commit f00f263852c472938bf8e993e26c7f96f435935c Author: Carl Hua <firstname.lastname@example.org> Date: Mon Mar 30 13:59:28 2020 -0400 Set version to 1.5.0
Learn, ask questions, and discuss
Bug Bounties and Responsible Disclosures
As always, Ripple welcomes reviews of the XRP Ledger open source codebase and urges reviewers to responsibly disclose any issues that they may find. For more on Ripple's Bug Bounty program, please visit https://ripple.com/bug-bounty/.
Compilation Requirements & Compatibility
rippled 1.5.0 from source on any platform requires a compiler that supports the C++17 ISO standard and a compatible edition of the Boost C++ libraries. Version 1.5.0 of
rippled is compatible with Boost versions 1.70.0 through 1.72.0.
1.5.0 Change Log
New and Updated Features
RequireFullyCanonicalSigamendment which changes the signature requirements for the XRP Ledger protocol so that non-fully-canonical signatures are no longer valid. This protects against transaction malleability on all transactions, instead of just transactions with the tfFullyCanonicalSig flag enabled. Without this amendment, a transaction is malleable if it uses a secp256k1 signature and does not have tfFullyCanonicalSig enabled. Most signing utilities enable tfFullyCanonicalSig by default, but there are exceptions. With this amendment, no single-signed transactions are malleable. (Multi-signed transactions may still be malleable if signers provide more signatures than are necessary.) All transactions must use the fully canonical form of the signature, regardless of the tfFullyCanonicalSig flag. Signing utilities that do not create fully canonical signatures are not supported. All of Ripple's signing utilities have been providing fully-canonical signatures exclusively since at least 2014. For more information.
- Native gRPC API support. Currently, this API provides a subset of the full
rippledAPI. You can enable the gRPC API on your server with a new configuration stanza.
- API Versioning which allows for future breaking change of RPC methods to co-exist with existing versions.
- Nodes now receive and broadcast UNLs over the peer network under various conditions.
submitmethod to include additional details on the status of the command.
txmethod response with additional details on ledgers searched.
validator_infomethod which returns information pertaining to the current validator's keys, manifest sequence, and domain.
manifestmethod which looks up manifest information for the specified key (either master or ephemeral).
- Introduce handshake protocol for compression negotiation (compression is not implemented at this point) and other minor improvements.
- Remove various old conditionals introduced by amendments.
getRippledInfoinfo gathering script to
fixQualityUpperBoundamendment which fixes a bug in unused code for estimating the ratio of input to output of individual steps in cross-currency payments.
txmethod now properly fetches all historical tx if they are incorporated into a validated ledger under rules that applied at the time.
- Fix to how
fail_hardflag is handled with the
submitmethod - transactions that are submitted with the
fail_hardflag that result in any TER code besides tesSUCCESS are neither queued nor held.
- Remove unused
- Lag ratchet code fix to use proper ephemeral public keys instead of the long-term master public keys.
The public git repository for
rippled is hosted on GitHub:
We welcome contributions, big and small, and invite everyone to join the community of XRP Ledger developers and help us build the Internet of Value.
The following people contributed directly to this release:
- Carl Hua email@example.com
- CJ Cobb firstname.lastname@example.org
- Devon White email@example.com
- Edward Hennis firstname.lastname@example.org
- Elliot Lee email@example.com
- Howard Hinnant firstname.lastname@example.org
- Jeroen Meulemeester email@example.com
- John Freeman firstname.lastname@example.org
- John Northrup email@example.com
- Manoj doshi firstname.lastname@example.org
- Mark Travis email@example.com
- mbhandary firstname.lastname@example.org
- Miguel Portilla email@example.com
- Mike Ellery firstname.lastname@example.org
- Mo Morsi email@example.com
- Nik Bougalis firstname.lastname@example.org
- p2peer email@example.com
- Peng Wang firstname.lastname@example.org
- Scott Schurr email@example.com
- seelabs firstname.lastname@example.org
- ShangyanLi email@example.com
The following is the list of people who made code contributions, large and small, to XRP Ledger prior to the release of 1.5.0:
Aishraj Dahal, Alex Chung, Alex Dupre, Alloy Networks, Andrey Fedorov, Arthur Britto, Bharath Chari, Bob Way, Brad Chase, Brandon Wilson, Bryce Lynch, Casey Bodley, Christian Ramseier, crazyquark, Crypto Brad Garlinghouse, David Grogan, David 'JoelKatz' Schwartz, Devon White, Donovan Hide, Edward Hennis, Elliot Lee, Eric Lombrozo, Ethan MacBrough, Evan Hubinger, Frank Cash, Howard Hinnant, Ian Roskam, invalidator, Jack Bond-Preston, James Fryman, jatchili, Jcar, Jed McCaleb, Jeff Trull, Jesper Wallin, Joe Loser, Johanna Griffin, John Freeman, John Northrup, Joseph Busch, Josh Juran, Justin Lynn, Keaton Okkonen, Lazaridis, Lieefu Way, Luke Cyca, Manoj Doshi, Mark Travis, Markus Teufelberger, Miguel Portilla, Mike Ellery, MJK, Mo Morsi, Nicholas Dudfield, Nikolaos D. Bougalis, Niraj Pant, Patrick Dehne, Roberto Catini, Rome Reginelli, Scott Determan, Scott Schurr, S. Matthew English, Stefan Thomas, The Gitter Badger, Ties Jan Hefting, Tim Lewkow, Tom 'Swirly' Ritchford, Torrie Fischer, Vahe Hovhannisyan, Vinnie Falco, Vishwas Patil, Warren Paul Anderson, Will, wltsmrz, Wolfgang Spraul, Yana Novikova and Yusuf Sahin HAMZA.
For a real-time view of all contributors, including links to the commits made by each, please visit the "Contributors" section of the GitHub repository: https://github.com/ripple/rippled/graphs/contributors.
As XRP Ledger continues to move through the 1.0 series, we look forward to more external contributions and are excited to see the broader XRP Ledger community grow and thrive.