Releases: XRPLF/rippled
rippled (XRP Ledger server) Version 2.0.0-rc3 (release candidate)
This is a release candidate.
- Includes
api_version
2 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_definitions
method - 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 #4292fixDisallowIncomingV1
by @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_version
2 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_definitions
method - 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 #4292fixDisallowIncomingV1
by @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_definitions
to 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_version
2 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_definitions
method - 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:
uint
is 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
XRPFees
changes 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.py
link 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_version
2 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_version
2 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
TxFormats
common 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:
AMM
Clawback
fixReducedOffersV1
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_info
responses. #4427 -
Removed the deprecated
accepted
,seqNum
,hash
, andtotalCoins
fields from theledger
method. #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::Condition
enum values to make the code less brittle. #4239 -
Replaced hand-rolled code with
std::from_chars
for better maintainability. #4473 -
Removed an unused
TypedField
move 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
release
branch. #4589 -
Enabled the
BETA_RPC_API
flag 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
nix
workflow 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
ServerHandlerImp
toServerHandler
by @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_info
by @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
release
by @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
allowClawback
flag toallowTrustLineClawback
by @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
rippled (XRP Ledger server) Version 1.11.0
Version 1.11.0 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available.
This release reduces memory usage, introduces the fixNFTokenRemint
amendment, and adds new features and bug fixes. For example, the new NetworkID field in transactions helps to prevent replay attacks with side-chains.
Sign Up for Future Release Announcements
Action Required
The fixNFTokenRemint
amendment is 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.11.0 by July 5 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
.
What's Changed
New Features and Improvements
- Allow port numbers be be specified using a either a colon or a space by @RichardAH in #4328
- Eliminate memory allocation from critical path: by @nbougalis in #4353
- Make it easy for projects to depend on libxrpl by @thejohnfreeman in #4449
- Add the ability to mark amendments as obsolete by @ximinez in #4291
- Always create the FeeSettings object in genesis ledger by @ximinez in #4319
- Log exception messages in several locations by @drlongle in #4400
- Parse flags in account_info method by @drlongle in #4459
- Add NFTokenPages to account_objects RPC by @RichardAH in #4352
- add jss fields used by clio
nft_info
by @ledhed2222 in #4320 - Introduce a slab-based memory allocator and optimize SHAMapItem by @nbougalis in #4218
- Add NetworkID field to transactions to help prevent replay attacks on and from side-chains by @RichardAH in #4370
- If present, set quorum based on command line. by @mtrippled in #4489
- API does not accept seed or public key for account by @drlongle in #4404
- Add
nftoken_id
,nftoken_ids
andoffer_id
meta fields into NFTTx
responses by @shawnxie999 in #4447
Bug Fixes
- fix(gateway_balances): handle overflow exception by @RichardAH in #4355
- fix(ValidatorSite): handle rare null pointer dereference in timeout by @ximinez in #4420
- RPC commands understand markers derived from all ledger object types by @ximinez in #4361
fixNFTokenRemint
: prevent NFT re-mint: by @shawnxie999 in #4406- Fix a case where ripple::Expected returned a json array, not a value by @scottschurr in #4401
- fix: Ledger data returns an empty list (instead of null) when all entries are filtered out by @drlongle in #4398
- Fix unit test ripple.app.LedgerData by @drlongle in #4484
- Fix the fix for std::result_of by @thejohnfreeman in #4496
- Fix errors for Clang 16 by @thejohnfreeman in #4501
- Ensure that switchover vars are initialized before use: by @seelabs in #4527
- Move faulty assert by @ximinez in #4533
- Fix unaligned load and stores: (#4528) by @seelabs in #4531
- fix node size estimation by @dangell7 in #4536
- fix: remove redundant moves by @ckeshava in #4565
Code Cleanup and Testing
- Replace compare() with the three-way comparison operator in base_uint, Issue and Book by @drlongle in #4411
- Rectify the import paths of boost::function_output_iterator by @ckeshava in #4293
- Expand Linux test matrix by @thejohnfreeman in #4454
- Add patched recipe for SOCI by @thejohnfreeman in #4510
- Switch to self-hosted runners for macOS by @thejohnfreeman in #4511
- [TRIVIAL] Add missing includes by @seelabs in #4555
Docs
- Refactor build instructions by @thejohnfreeman in #4381
- Add install instructions for package managers by @thejohnfreeman in #4472
- Fix typo by @solmsted in #4508
- Update environment.md by @sappenin in #4498
- Update BUILD.md by @oeggert in #4514
- Trivial: add comments for NFToken-related invariants by @scottschurr in #4558
New Contributors
- @drlongle made their first contribution in #4411
- @ckeshava made their first contribution in #4293
- @solmsted made their first contribution in #4508
- @sappenin made their first contribution in #4498
- @oeggert made their first contribution in #4514
Full Changelog: 1.10.1...1.11.0
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:
- Alloy Networks [email protected]
- Brandon Wilson [email protected]
- Chenna Keshava B S [email protected]
- David Fuelling [email protected]
- Denis Angell [email protected]
- Ed Hennis [email protected]
- Elliot Lee [email protected]
- John Freeman [email protected]
- Mark Travis [email protected]
- Nik Bougalis [email protected]
- RichardAH [email protected]
- Scott Determan [email protected]
- Scott Schurr [email protected]
- Shawn Xie [email protected]
- drlongle [email protected]
- ledhed2222 [email protected]
- oeggert [email protected]
- solmsted [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:
rippled (XRP Ledger server) Version 1.10.1
Version 1.10.1 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release restores packages for Ubuntu 18.04.
Compared to version 1.10.0, the only C++ code change fixes an edge case in Reporting Mode.
If you are already running version 1.10.0, then upgrading to version 1.10.1 is generally not required.
Sign Up for Future Release Announcements
Install / Upgrade
On supported platforms, see the instructions on installing or updating rippled
.
Changelog
da18c86cbf
Build packages with Ubuntu 18.04f7b3ddd87b
Reporting Mode: Do not attempt to acquire missing data from peer network (#4458)
Full Changelog: 1.10.0...1.10.1
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:
- John Freeman [email protected]
- Mark Travis [email protected]
- Michael Legleux [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: