Releases: XRPLF/rippled
rippled (XRP Ledger server) Version 2.0.0-rc5 (release candidate)
This is a release candidate.
- Includes
api_version2 general availability.- The "DeliverMax" field reflects the maximum amount that the payment may deliver. To get the amount of a payment, use the "delivered_amount" field. "DeliverMax" is now provided for all Payment transactions, and successful transactions include "delivered_amount".
- In api_version: 2, the "Amount" field is removed. In most cases, the field you actually want is "delivered_amount". But if you really want the field formerly known as "Amount", then you can use "DeliverMax".
- In api_version: 2, "ledger_index" is always returned as an integer (not a string).
- Notable performance improvements in TPS (transactions per second).
- XLS-38 sidechains support.
- This is a large change and adds significant new functionality to the protocol.
- XLS-40 decentralized identity (DID) support.
- New
server_definitionsmethod. - Many aspects of the code have been refactored and changed since the previous major version.
Amendments
rippled 2.0.0 is expected to include the following new amendments:
XChainBridge: side chains (XLS-38) by @seelabs in #4292fixDisallowIncomingV1by @dangell7 in #4721DID: Decentralized identifiers (DIDs) (XLS-40) by @mvadari in #4636fixFillOrKill: fix offer crossing with tfFillOrKill #4694
Testing Credits
- Thanks to @sgramkumar and others for continued testing.
What's Changed
- Revert 4505 4760 by @sophiax851 in #4842
- [TRIVIAL] Workarounds for gcc-13 compatibility by @Bronek in #4817
- Proposed 2.0.0-rc5 by @intelliot in #4843
New Contributors
- @sophiax851 made their first contribution in #4842
Full Changelog: 2.0.0-rc4...2.0.0-rc5
rippled (XRP Ledger server) Version 2.0.0-rc4 (release candidate)
This is a release candidate.
- Includes
api_version2 general availability.- The "DeliverMax" field reflects the maximum amount that the payment may deliver. To get the amount of a payment, use the "delivered_amount" field. "DeliverMax" is now provided for all Payment transactions, and successful transactions include "delivered_amount".
- In api_version: 2, the "Amount" field is removed. In most cases, the field you actually want is "delivered_amount". But if you really want the field formerly known as "Amount", then you can use "DeliverMax".
- In api_version: 2, "ledger_index" is always returned as an integer (not a string).
- Notable performance improvements in TPS (transactions per second): up to 4,300 TPS.
- XLS-38 sidechains support.
- This is a large change and adds significant new functionality to the protocol.
- XLS-40 decentralized identity (DID) support.
- New
server_definitionsmethod. - Many aspects of the code have been refactored and changed since the previous major version.
Amendments
rippled 2.0.0 is expected to include the following new amendments:
XChainBridge: side chains (XLS-38) by @seelabs in #4292fixDisallowIncomingV1by @dangell7 in #4721DID: Decentralized identifiers (DIDs) (XLS-40) by @mvadari in #4636fixFillOrKill: fix offer crossing with tfFillOrKill #4694 (not in 2.0.0-b4)
Testing Credits
- Thanks to @sgramkumar and others for continued testing.
What's Changed
- Consistently show ledger_index as integer on JSON output by @Bronek in #4820
- Show DeliverMax in submit_multisigned etc if API v2 selected by @Bronek in #4827
- Proposed 2.0.0-rc4 by @intelliot in #4841
Full Changelog: 2.0.0-rc3...2.0.0-rc4
rippled (XRP Ledger server) Version 2.0.0-rc3 (release candidate)
This is a release candidate.
- Includes
api_version2 general availability.- The "DeliverMax" field name clarifies that the field is the maximum amount that the payment may deliver. To get the amount of a payment, use the "delivered_amount" field. "DeliverMax" is provided for all Payment transactions regardless of api_version.
- In api_version: 2, the "Amount" field is removed. In most cases, the field you want is "delivered_amount". But if you really, really want the field formerly known as "Amount", then look for "DeliverMax".
- Notable performance improvements in TPS (transactions per second): up to 4,300 TPS.
- XLS-38 sidechains support
- This is a large change and adds significant new functionality to the protocol.
- XLS-40 decentralized identity (DID) support
- New
server_definitionsmethod - Lastly, many aspects of the code have been refactored and changed since the previous major version.
Amendments
rippled 2.0.0 is expected to include the following new amendments:
XChainBridge: side chains (XLS-38) by @seelabs in #4292fixDisallowIncomingV1by @dangell7 in #4721DID: Decentralized identifiers (DIDs) (XLS-40) by @mvadari in #4636fixFillOrKill: fix offer crossing with tfFillOrKill #4694 (not in 2.0.0-b4)
What's Changed
- Clarify definition of "network health." by @mtrippled in #4729
- Remove tx_history and ledger_header in API version 2 by @Bronek in #4759
- Remove include by @Bronek in #4788
fixFillOrKill: fix OfferCreate with tfFillOrKill if offer is better than open offer rate (Amendment) by @gregtatcam in #4694- [TRIVIAL] fix clang unused-but-set-variable warning by @StefanVK in #4677
- Delete unused Dockerfile by @intelliot in #4791
- Fix unit test api_version to enable api_version 2 by @pwang200 in #4785
- fix: check for valid public key in attestations by @seelabs in #4798
- Unify JSON serialization format of transactions by @Bronek in #4775
- Proposed 2.0.0-rc1 by @manojsdoshi in #4809
- Support for the mold linker by @seelabs in #4807
- Promote API version 2 to supported by @Bronek in #4803
- Update Linux smoketest distros by @legleux in #4813
- Fix 2.0 regression in tx method with binary output by @Bronek in #4812
- Optimize calculation of close time to avoid impasse and minimize gratuitous proposal changes by @mtrippled in #4760
- Proposed 2.0.0-rc2 by @manojsdoshi in #4818
- Merging rc2 to develop by @manojsdoshi in #4824
- Proposed 2.0.0-rc1 by @manojsdoshi in #4810
- Merging release into develop by @manojsdoshi in #4823
- Merging rc2 to release branch by @manojsdoshi in #4825
- Add Debian 12 Bookworm to supported distro matrix by @legleux in #4836
- Update API-CHANGELOG.md for release 2.0 by @Bronek in #4828
- docs(API-CHANGELOG): add extra bullet about DeliverMax by @intelliot in #4784
- Proposed 2.0.0-rc3 by @manojsdoshi in #4840
- Merging release back to develop by @manojsdoshi in #4819
- Proposed 2.0.0-rc3 by @manojsdoshi in #4839
New Contributors
Testing Credits
- Thanks to @sgramkumar and others for testing this release.
Full Changelog: 2.0.0-b4...2.0.0-rc3
rippled (XRP Ledger server) Version 2.0.0-b4 (beta)
This is a beta for the next release.
When finalized, the next stable release of rippled is expected to be the last release for 2023 (given the holidays in Nov/Dec). The major version is bumped because:
api_version2 general availability is expected.- The "DeliverMax" field name clarifies that the field is the maximum amount that the payment may deliver. To get the amount of a payment, use the "delivered_amount" field. "DeliverMax" is provided for all Payment transactions regardless of api_version.
- In api_version: 2, the "Amount" field is removed. In most cases, the field you want is "delivered_amount". But if you really, really want the field formerly known as "Amount", then look for "DeliverMax".
- Notable performance improvements in TPS (transactions per second): up to 3,900 TPS.
- XLS-38 sidechains support
- This is a large change and adds significant new functionality to the protocol.
- XLS-40 decentralized identity (DID) support
- New
server_definitionsmethod - Lastly, many aspects of the code have been refactored and changed since the previous major version bump.
Amendments
rippled 2.0.0 is expected to include the following new amendments:
XChainBridge: side chains (XLS-38) by @seelabs in #4292fixDisallowIncomingV1by @dangell7 in #4721DID: Decentralized identifiers (DIDs) (XLS-40) by @mvadari in #4636fixFillOrKill: fix offer crossing with tfFillOrKill #4694 (not in 2.0.0-b4)
What's Changed
- [TRIVIAL] docs(pull_request_template): add API Impact section by @intelliot in #4757
- Replace some asserts in PeerFinder::Logic with LogicError by @scottschurr in #4562
- Update hooks reserved error code name by @dangell7 in #4559
DID: Decentralized identifiers (DIDs) (XLS-40): by @mvadari in #4636- Add RPC for
server_definitionsto rippled by @mvadari in #4703 - Network ID logic should not be applied to pseudo-transactions by @dangell7 in #4737
- set permission for doxygen workflow by @shichengsg002 in #4756
- Use unity builds to speed up Windows CI by @ximinez in #4780
- APIv2(DeliverMax): add alias for Amount in Payment transactions by @Bronek in #4733
- Proposed 2.0.0-b4 by @intelliot in #4782
New Contributors
- @shichengsg002 made their first contribution in #4756
Full Changelog: 2.0.0-b3...2.0.0-b4
rippled (XRP Ledger server) Version 2.0.0-b3 (beta)
This is a beta for the next release.
When finalized, the next stable release of rippled is expected to be the last release for 2023 (given the holidays in Nov/Dec). The major version is bumped because:
api_version2 general availability is expected.- Notable performance improvements in TPS (transactions per second): up to 3,900 TPS.
- XLS-38 sidechains support
- This is a large change and adds significant new functionality to the protocol.
- XLS-40 decentralized identity (DID) support
- New
server_definitionsmethod - Lastly, many aspects of the code have been refactored and changed since the previous major version bump.
What's Changed
- Eliminate built-in SNTP support (fixes #4207): by @nbougalis in #4628
- [TRIVIAL] Fix build error:
uintis not universally defined by @ximinez in #4731 - Fix amendment majority flapping: use a more stable threshold for the number of votes required; when missing
STValidation, use the last vote seen by @scottschurr in #4410 - Disallow the same bridge on one chain: by @seelabs in #4720
- Update minimum compiler requirements in BUILD.md by @ckeshava in #4700
- Fix asan stack use after scope (fix #4675) by @StefanVK in #4676
- [TRIVIAL] docs(API-CHANGELOG): clarify account_info response by @intelliot in #4724
- [TRIVIAL] fix typo in SECURITY.md by @sokkaofthewatertribe in #4662
- refactor: reunify common fields by @mDuo13 in #4715
- Reduce boilerplate in applySteps: by @seelabs in #4710
- fixDisallowIncomingV1 by @dangell7 in #4721
- [TRIVIAL] Link compression in example cfg by @florent-uzio in #4753
- Update API CHANGELOG for
XRPFeeschanges by @ximinez in #4741 - Reenable Windows CI build with Artifactory support by @ximinez in #4596
- Fix output of remote step in nix workflow by @ckeshava in #4746
- [TRIVIAL] Remove incorrect assert by @ximinez in #4743
- [TRIVIAL] docs: Fix broken
conanfile.pylink in build settings by @JST5000 in #4740 - Call python to upgrade pip in Windows CI by @ximinez in #4768
- Proposed 2.0.0-b3 by @intelliot in #4772
New Contributors
- @StefanVK made their first contribution in #4676
- @sokkaofthewatertribe made their first contribution in #4662
- @florent-uzio made their first contribution in #4753
- @JST5000 made their first contribution in #4740
Full Changelog: 2.0.0-b2...2.0.0-b3
rippled (XRP Ledger server) Version 2.0.0-b2 (beta)
This is a beta for the next release.
Highlights:
- APIv2(gateway_balances, channel_authorize): update errors (#4618)
- Accept all valid currency codes in API (#4566)
When finalized, the next stable release of rippled is expected to be the last release for 2023 (given the holidays in Nov/Dec). The major version is bumped because:
api_version2 general availability is expected.- This api_version is not available yet (except in beta, requiring a configuration change), but it will be in the next release.
- Notable performance improvements in TPS (transactions per second).
- XLS-38 sidechains support
- This is a large change and adds significant new functionality to the protocol.
- Lastly, many aspects of the code have been refactored and changed since the previous major version bump.
What's Changed
- docs(BUILD): make it easier to find environment.md by @intelliot in #4507
- [TRIVIAL] Remove unused variable flagged by clang 14 by @ximinez in #4672
- Update comment about return value of LedgerHistory::fixIndex by @ckeshava in #4574
- Update secp256k1 to 0.3.2 by @thejohnfreeman in #4653
- [TRIVIAL] docs(RELEASENOTES): improve 1.12.0 release notes by @intelliot in #4691
- docs(API-CHANGELOG): api_version 2 is expected with 2.0 by @intelliot in #4633
- docs(overlay): add URL of blog post and clarify wording by @ckeshava in #4635
- Link Boost.Json by @thejohnfreeman in #4632
- APIv2(gateway_balances, channel_authorize): update errors by @PeterChen13579 in #4618
- Fix typo in BUILD.md by @ForwardSlashBack in #4718
- Add ProtocolStart and GracefulClose messages by @gregtatcam in #3839
- Add .build to .gitignore by @Bronek in #4722
- Accept all valid currency codes in API by @thejohnfreeman in #4566
- Proposed 2.0.0-b2 by @intelliot in #4723
New Contributors
- @ForwardSlashBack made their first contribution in #4718
- @Bronek made their first contribution in #4722
Full Changelog: 2.0.0-b1...2.0.0-b2
rippled (XRP Ledger server) Version 2.0.0-b1 (beta)
This is a beta for the next release.
Highlights:
- Support for XLS-38 XChainBridge (side chains) (#4292)
- Several changes to improve performance
When finalized, the next stable release of rippled is expected to be the last release for 2023 (given the holidays in Nov/Dec). The major version is bumped for the following reasons:
api_version2 general availability- This api_version is not available yet (except in beta, requiring a configuration change), but it will be in the next release.
- Notable performance improvements in TPS (transactions per second).
- XLS-38 sidechains support
- This is a large change and adds significant new functionality to the protocol.
- Lastly, many aspects of the code have been refactored and changed since the previous major version bump.
(Note that the replacement for getting and setting thread name (#4312) was reverted, so it is not in this release.)
What's Changed
- [TRIVIAL] Update rippled-example.cfg docs to clarify usage of ssl_cert vs ssl_chain by @ggprod in #4667
- APIv2(ledger_entry) : check error by @PeterChen13579 in #4630
- refactor: simplify
TxFormatscommon fields logic by @mvadari in #4637 - Update SECURITY.md by @intelliot in #4338
- Asynchronously write batches to NuDB. by @mtrippled in #4503
- Apply transaction batches in periodic intervals. by @mtrippled in #4504
- Several changes to improve Consensus stability: by @mtrippled in #4505
- APIv2(account_tx, noripple_check): return error for invalid input (fix #4543) by @PeterChen13579 in #4620
- XLS-38d: XChainBridge (side chains) by @seelabs in #4292
- Match unit tests on start of test name, and split some test classes by @ximinez in #4634
- Remove two unused functions by @seelabs in #4708
New Contributors
Full Changelog: 1.12.0...2.0.0-b1
rippled (XRP Ledger server) Version 1.12.0
Version 1.12.0 of rippled, the reference server implementation of the XRP Ledger protocol, is now available. This release adds new features and bug fixes, and introduces these amendments:
AMMClawbackfixReducedOffersV1
AMM performance testing scripts are available at https://github.com/ripple/RX-Performance-Public.
Sign Up for Future Release Announcements
Action Required
Three 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.12.0 by September 20, 2023 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.
The XRPL Foundation publishes portable binaries, which are drop-in replacements for the rippled daemon. See information and downloads for the portable binaries. This will work on most distributions, including Ubuntu 16.04, 18.04, 20.04, and 22.04; CentOS; and others. Please test and open issues on GitHub if there are problems.
Changelog
Amendments, New Features, and Changes
(These are changes which may impact or be useful to end users. For example, you may be able to update your code/workflow to take advantage of these changes.)
-
AMM: Introduces an automated market maker (AMM) protocol to the XRP Ledger's decentralized exchange, enabling you to trade assets without a counterparty. For more information about AMMs, see: Automated Market Maker. #4294 -
Clawback(XLS-39): Adds a setting, Allow Clawback, which lets an issuer recover, or claw back, tokens that they previously issued. Issuers cannot enable this setting if they have issued tokens already. For additional documentation on this feature, see: #4553. -
fixReducedOffersV1: Reduces the occurrence of order books that are blocked by reduced offers. #4512 -
Added WebSocket and RPC port info to
server_inforesponses. #4427 -
Removed the deprecated
accepted,seqNum,hash, andtotalCoinsfields from theledgermethod. #4244
Bug Fixes and Performance Improvements
(These are behind-the-scenes improvements, such as internal changes to the code, which are not expected to impact end users.)
-
Added a pre-commit hook that runs the clang-format linter locally before committing changes. To install this feature, see: CONTRIBUTING. #4599
-
In order to make it more straightforward to catch and handle overflows: changed the output type of the
mulDiv()function fromstd::pair<bool, uint64_t>tostd::optional. #4243 -
Updated
Handler::Conditionenum values to make the code less brittle. #4239 -
Replaced hand-rolled code with
std::from_charsfor better maintainability. #4473 -
Removed an unused
TypedFieldmove constructor. #4567
Docs and Build System
-
Updated checkout versions to resolve warnings during GitHub jobs. #4598
-
Fixed an issue with the Debian package build. #4591
-
Updated build instructions with additional steps to take after updating dependencies. #4623
-
Updated contributing doc to clarify that beta releases should also be pushed to the
releasebranch. #4589 -
Enabled the
BETA_RPC_APIflag in the default unit tests config, making the API v2 (beta) available to unit tests. #4573 -
Conan dependency management.
-
Added binary hardening and linker flags to enhance security during the build process. #4603
-
Added an Artifactory to the
nixworkflow to improve build times. #4556 -
Added quality-of-life improvements to workflows, using new concurrency control features. #4597
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:
- Alphonse N. Mousse [email protected]
- Arihant Kothari [email protected]
- Chenna Keshava B S [email protected]
- Denis Angell [email protected]
- Ed Hennis [email protected]
- Elliot Lee [email protected]
- Gregory Tsipenyuk [email protected]
- Howard Hinnant [email protected]
- Ikko Eltociear Ashimine [email protected]
- John Freeman [email protected]
- Manoj Doshi [email protected]
- Mark Travis [email protected]
- Mayukha Vadari [email protected]
- Michael Legleux [email protected]
- Peter Chen [email protected]
- Ramkumar SG
- RichardAH [email protected]
- Rome Reginelli [email protected]
- Scott Schurr [email protected]
- Shawn Xie [email protected]
- drlongle [email protected]
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]
rippled (XRP Ledger server) Version 1.12.0-b2 (beta)
What's Changed
This release makes a breaking change to the Clawback amendment, and introduces a new amendment called AMM.
- replace hand-rolled lexicalCast by @dangell7 in #4473
- Fix package definition for Conan by @thejohnfreeman in #4485
- remove deprecated fields in ledger command, fix for #3214 by @ckeshava in #4244
- Trivial: Rename
ServerHandlerImptoServerHandlerby @scottschurr in #4516 - [Trivial] Fix build references to deleted ServerHandlerImp by @ximinez in #4592
- APIv2(AccountTx): Added error messages on AccountTx by @PeterChen13579 in #4571
- Change enum values to be powers of two (fix #3417) by @ckeshava in #4239
- Cancel overridden workflows by @thejohnfreeman in #4597
- Fix deb package build by @legleux in #4591
- APIv2(account_info): handle invalid "signer_lists" value by @PeterChen13579 in #4585
- [TRIVIAL] Update checkout action version to resolve warning by @ximinez in #4598
- add pre-commit hook for clang-format by @mvadari in #4599
- Add binary hardening compile and link flags by @thejohnfreeman in #4603
- Add allowClawback flag for
account_infoby @shawnxie999 in #4590 - Change the return type of mulDiv to std::optional by @ckeshava in #4243
- APIv2(ledger_entry): return "invalidParams" when fields missing by @arihantkothari in #4552
- docs(CONTRIBUTING): push beta releases to
releaseby @intelliot in #4589 - Adapt to change in Conan recipe for NuDB by @thejohnfreeman in #4615
- Introduce AMM support (XLS-30d) by @gregtatcam in #4294
- Update dependencies by @thejohnfreeman in #4595
- Rename
allowClawbackflag toallowTrustLineClawbackby @shawnxie999 in #4617 - BUILD: list steps after dependencies update by @intelliot in #4623
- Proposed 1.12.0-b2 by @intelliot in #4627
New Contributors
- @PeterChen13579 made their first contribution in #4571
- @mvadari made their first contribution in #4599
- @arihantkothari made their first contribution in #4552
- @gregtatcam made their first contribution in #4294
Full Changelog: 1.12.0-b1...1.12.0-b2
PR: #4627
rippled (XRP Ledger server) Version 1.12.0-b1 (beta)
What's Changed
This release introduces two new amendments: fixReducedOffersV1 and Clawback.
- Enable the Beta RPC API (v2) for all unit tests: by @ximinez in #4573
fixReducedOffersV1: curtail the occurrence of order books that are blocked by reduced offers by @scottschurr in #4512- Add RPC/WS ports to server_info by @drlongle in #4427
- Use Artifactory remote in nix workflow by @thejohnfreeman in #4556
- Typedfield has bad move constructor by @HowardHinnant in #4567
- XLS-39 Clawback: by @shawnxie999 in #4553
- Proposed 1.12.0-b1 by @intelliot in #4586
Full Changelog: 1.11.0...1.12.0-b1
PR: #4586