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 validator_info
and manifest
, augmented submit
method, improved tx
method, improved CLI parsing, improved protocol-level handshaking protocol, improved package building and various other minor bug fixes and improvements.
Action Required
This release introduces two new amendments: fixQualityUpperBound
and 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.
Upgrading
For instructions on updating XRP Ledger on supported platforms, see here:
The SHA-256 hashes for the official packages are as follows:
Package | SHA-256 |
---|---|
Red Hat RPM (x86-64) | fe6b5ba0958fd4531a917af4ba58efecf51c951e534f06e025a684c2777aa7f8 |
Ubuntu DEB (x86-64) | 4ed13ab7cd65fcfe95d2ea85522414509b13e49f8a1633ac51b3457974cad6c6 |
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 <[email protected]> Date: Mon Mar 30 13:59:28 2020 -0400 Set version to 1.5.0
Learn, ask questions, and discuss
Related documentation is available in the XRP Ledger Dev Portal, including detailed example API calls and web tools for API testing, at https://xrpl.org.
Other resources:
Other Information
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
Compiling 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
- The
RequireFullyCanonicalSig
amendment 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.ec137044a
- Native gRPC API support. Currently, this API provides a subset of the full
rippled
API. You can enable the gRPC API on your server with a new configuration stanza.7d867b806
- API Versioning which allows for future breaking change of RPC methods to co-exist with existing versions.
2aa11fa41
- Nodes now receive and broadcast UNLs over the peer network under various conditions.
2c71802e3
- Augmented
submit
method to include additional details on the status of the command.79e9085dd
- Improved
tx
method response with additional details on ledgers searched.47501b7f9
- New
validator_info
method which returns information pertaining to the current validator's keys, manifest sequence, and domain.3578acaf0
- New
manifest
method which looks up manifest information for the specified key (either master or ephemeral).3578acaf0
- Introduce handshake protocol for compression negotiation (compression is not implemented at this point) and other minor improvements.
f6916bfd4
- Remove various old conditionals introduced by amendments.
(51ed7db00
,6e4945c56)
- Add
getRippledInfo
info gathering script torippled
Linux packages.acf4b7889
Bug Fixes
- The
fixQualityUpperBound
amendment which fixes a bug in unused code for estimating the ratio of input to output of individual steps in cross-currency payments.9d3626fec
tx
method now properly fetches all historical tx if they are incorporated into a validated ledger under rules that applied at the time.11cf27e00
- Fix to how
fail_hard
flag is handled with thesubmit
method - transactions that are submitted with thefail_hard
flag that result in any TER code besides tesSUCCESS are neither queued nor held.cd9732b47
- Remove unused
Beast
code.172ead822
- Lag ratchet code fix to use proper ephemeral public keys instead of the long-term master public keys.
6529d3e6f
Contributions
GitHub
The public git repository for rippled
is hosted on GitHub:
https://github.com/ripple/rippled
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.
Credits
The following people contributed directly to this release:
- Carl Hua [email protected]
- CJ Cobb [email protected]
- Devon White [email protected]
- Edward Hennis [email protected]
- Elliot Lee [email protected]
- Howard Hinnant [email protected]
- Jeroen Meulemeester [email protected]
- John Freeman [email protected]
- John Northrup [email protected]
- Manoj doshi [email protected]
- Mark Travis [email protected]
- mbhandary [email protected]
- Miguel Portilla [email protected]
- Mike Ellery [email protected]
- Mo Morsi [email protected]
- Nik Bougalis [email protected]
- p2peer [email protected]
- Peng Wang [email protected]
- Scott Schurr [email protected]
- seelabs [email protected]
- ShangyanLi [email protected]
Lifetime Contributors
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.