Introducing XRP Ledger version 1.10.0
Version 1.10.0 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release introduces six new amendments and cleans up code to improve performance.
Sign Up for Future Release Announcements
Action Required
Six new 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, upgrade to version 1.10.0 by March 28 to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
Install / Upgrade
On supported platforms, see the instructions on installing or updating rippled
.
Package | SHA-256 |
---|---|
RPM for Red Hat / CentOS (x86-64) | 568ee33b4560be0505a0be0966f9ca1f477444a60c2632eff8ab71864c6b020b |
DEB for Ubuntu / Debian (x86-64) | 5015efad92743a57cfdba573cf968b740b2418360034c6c6e8d3a514d60b6a89 |
For other platforms, please build from source. The most recent commit in the git log should be the change setting the version:
commit 07f047b1e260e5b937af28e8f8da9c360ea832b9 Author: Elliot Lee <[email protected]> Date: Tue Mar 14 09:30:22 2023 -0700 Set version to 1.10.0 Merge #4451
New Amendments
featureImmediateOfferKilled
: Changes the response code of anOfferCreate
transaction with thetfImmediateOrCancel
flag to returntecKILLED
when no funds are moved. The previous return code oftecSUCCESS
was unintuitive. #4157featureDisallowIncoming
: Enables an account to block incoming checks, payment channels, NFToken offers, and trust lines. #4336featureXRPFees
: Simplifies transaction cost calculations to use XRP directly, rather than calculating indirectly in "fee units" and translating the results to XRP. Updates all instances of "fee units" in the protocol and ledger data to be drops of XRP instead. #4247fixUniversalNumber
: Simplifies and unifies the code for decimal floating point math. In some cases, this provides slightly better accuracy than the previous code, resulting in calculations whose least significant digits are different than when calculated with the previous code. The different results may cause other edge case differences where precise calculations are used, such as ranking of offers or processing of payments that use several different paths. #4192fixNonFungibleTokensV1_2
: This amendment is a combination of NFToken fixes. #4417fixTrustLinesToSelf
: Trust lines must be between two different accounts, but two exceptions exist because of a bug that briefly existed. This amendment removes those trust lines. 69bb2be
Changelog
New Features and Improvements
Improve Handshake in the peer protocol: Switched to using a cryptographically secure PRNG for the Instance Cookie.
rippled
now uses hex encoding for theClosed-Ledger
andPrevious-Ledger
fields in the Handshake. Also added--newnodeid
and--nodeid
command line options. 5a15229RPC tooBusy response now has 503 HTTP status code: Added ripplerpc 3.0, enabling RPC tooBusy responses to return relevant HTTP status codes. This is a non-breaking change that only applies to JSON-RPC when you include
"ripplerpc": "3.0"
in the request. #4143Use the Conan package manager: Added a
conanfile.py
and Conan recipe for Snappy. Removed the RocksDB recipe from the repo; you can now get it from Conan Center. #4367, c2b03feUpdate Build Instructions: Updated the build instructions to build with the Conan package manager and restructured info for easier comprehension. #4376, #4383
Revise CONTRIBUTING: Updated code contribution guidelines.
rippled
is an open source project and contributions are very welcome. #4382Update documented pathfinding configuration defaults:
417cfc2
changed the default Path Finding configuration values, but missed updating the values documented in rippled-example.cfg. Updated those defaults and added recommended values for nodes that want to support advanced pathfinding. #4409Remove gRPC code previously used for the Xpring SDK: Removed gRPC code used for the Xpring SDK. The gRPC API is also enabled locally by default in
rippled-example.cfg
. This API is used for Reporting Mode and Clio. 28f4cc7Switch from C++17 to C++20: Updated
rippled
to use C++20. 92d35e5Support for Boost 1.80.0:: 04ef885
Reduce default reserves to 10/2: Updated the hard-coded default reserves to match the current settings on Mainnet. #4329
Improve self-signed certificate generation: Improved speed and security of TLS certificate generation on fresh startup. 0ecfc7c
Bug Fixes
Update command-line usage help message: Added
manifest
andvalidator_info
to therippled
CLI usage statement. b88ed5aWork around gdb bug by changing a template parameter: Added a workaround for a bug in gdb, where unsigned template parameters caused issues with RTTI. #4332
Fix clang 15 warnings: #4325
Catch transaction deserialization error in doLedgerGrpc: Fixed an issue in the gRPC API, so
Clio
can extract ledger headers and state objects from specific transactions that can't be deserialized byrippled
code. #4323Update dependency: gRPC: New Conan recipes broke the old version of gRPC, so the dependency was updated. #4407
Fix Doxygen workflow: Added options to build documentation that don't depend on the library dependencies of
rippled
. #4372Don't try to read SLE with key 0 from the ledger: Fixed the
preclaim
function to check for 0 inNFTokenSellOffer
andNFTokenBuyOffer
before callingLedger::read
. This issue only affected debug builds. #4351Update broken link to hosted Doxygen content: 5e1cb09
Code Cleanup
Prevent unnecessary
shared_ptr
copies by accepting a value inSHAMapInnerNode::setChild
: #4266Release TaggedCache object memory outside the lock: 3726f8b
Rename SHAMapStoreImp::stopping() to healthWait(): 7e9e910
Improve wrapper around OpenSSL RAND: 7b3507b
Improve AccountID string conversion caching: Improved memory cache usage. e2eed96
Build the command map at compile time: 9aaa0df
Avoid unnecessary copying and dynamic memory allocations: d318ab6
Use constexpr to check memo validity: e67f905
Remove charUnHex: 83ac141
Remove deprecated AccountTxOld.cpp: ce64f7a
Remove const_cast usage: 23ce431
Remove inaccessible code paths and outdated data format wchar_t: 95fabd5
Improve move semantics in Expected: #4326
GitHub
The public source code repository for rippled
is hosted on GitHub at https://github.com/XRPLF/rippled.
We welcome all contributions and invite everyone to join the community of XRP Ledger developers to help build the Internet of Value.
Credits
The following people contributed directly to this release:
- Alexander Kremer [email protected]
- Alloy Networks [email protected]
- CJ Cobb [email protected]
- Chenna Keshava B S [email protected]
- Crypto Brad Garlinghouse [email protected]
- Denis Angell [email protected]
- Ed Hennis [email protected]
- Elliot Lee [email protected]
- Gregory Popovitch [email protected]
- Howard Hinnant [email protected]
- J. Scott Branson [email protected]
- John Freeman [email protected]
- ledhed2222 [email protected]
- Levin Winter [email protected]
- manojsdoshi [email protected]
- Nik Bougalis [email protected]
- RichardAH [email protected]
- Scott Determan [email protected]
- Scott Schurr [email protected]
- Shawn Xie [email protected]
Security Bug Bounty Acknowledgements:
- Aaron Hook
- Levin Winter
Bug Bounties and Responsible Disclosures:
We welcome reviews of the rippled
code and urge researchers to responsibly disclose any issues they may find.
To report a bug, please send a detailed report to: [email protected]