Last updated

Introducing XRP Ledger version 2.0.0

Version 2.0.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:

  • DID
  • XChainBridge
  • fixDisallowIncomingV1
  • fixFillOrKill

Sign Up for Future Release Announcements

Action Required

Four 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 2.0.0 by January 22, 2024 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.

PackageSHA-256
RPM for Red Hat / CentOS (x86-64)4f765d2f38c2b2ef4825fb715b1dfcbb8ecaef0063ef99005f54252c90a29cab
DEB for Ubuntu / Debian (x86-64)69568c467a5291b441ce6f1385bd20cdfaf02e4496ca9043441fdb842d9975dc
Portable Builds (Linux x86-64)(Use signature verification)

For other platforms, please build from source. The most recent commit in the git log should be the change setting the version:

commit 2b0313d60c4226cc98ad39fe8eb659deca48f32a
Author: Elliot Lee <[email protected]>
Date:   Mon Jan 8 13:13:37 2024 -0800

    Set version to 2.0.0

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.)

  • XChainBridge: Introduces cross-chain bridges, enabling interoperability between the XRP Ledger and sidechains. #4292

  • DID: Introduces decentralized identifiers. #4636

  • fixDisallowIncomingV1: Fixes an issue that occurs when users try to authorize a trustline while the lsfDisallowIncomingTrustline flag is enabled on their account. #4721

  • fixFillOrKill: Fixes an issue introduced in the flowCross amendment. The tfFillOrKill and tfSell flags are now properly handled to allow offers to cross in certain scenarios. #4694

  • API v2 released with these changes:

    • Bumped API support to v2, but kept the command-line interface for rippled and unit tests at v1. #4803
    • Accepts currency codes in ASCII, using the full alphabet. #4566
    • Added test to verify the check field is a string. #4630
    • Added errors for malformed account_tx and noripple_check fields. #4620
    • Added errors for malformed gateway_balances and channel_authorize requests. #4618
    • Added a DeliverMax alias to Amount and removed Amount. #4733
    • Removed tx_history and ledger_header methods. Also updated RPC::Handler to allow for version-specific methods. #4759
    • Standardized the JSON serialization format of transactions. #4727
    • Standardized ledger_index to return as a number. #4820
  • Added a server_definitions command that returns an SDK-compatible definitions.json file, generated from the rippled instance currently running. #4703

  • Improved unit test command line input and run times. #4634

  • Added the link compression setting to the the rippled-example.cfg file. #4753

  • Changed the reserved hook error code name from tecHOOK_ERROR to tecHOOK_REJECTED. #4559

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.)

  • Simplified TxFormats common fields logic. #4637

  • Improved transaction throughput by asynchronously writing batches to NuDB. #4503

  • Removed 2 unused functions. #4708

  • Removed an unused variable that caused clang 14 build errors. #4672

  • Fixed comment about return value of LedgerHistory::fixIndex. #4574

  • Updated secp256k1 to 0.3.2. #4653

  • Removed built-in SNTP clock issues. #4628

  • Fixed amendment flapping. This issue usually occurred when an amendment was on the verge of gaining majority, but a validator not in favor of the amendment went offline. #4410

  • Fixed asan stack-use-after-scope issue. #4676

  • Transactions and pseudo-transactions share the same commonFields again. #4715

  • Reduced boilerplate in applySteps.cpp. When a new transactor is added, only one function needs to be modified now. #4710

  • Removed an incorrect assert. #4743

  • Replaced some asserts in PeerFinder::Logic with LogicError to better indicate the nature of server crashes. #4562

  • Fixed an issue with enabling new amendments on a network with an ID greater than 1024. #4737

Docs and Build System

  • Updated rippled-example.cfg docs to clarify usage of ssl_cert vs ssl_chain. #4667

  • Updated SECURITY.md:

    • Clarified bug bounty program info. #4338
    • Fixed typo. #4662
  • Updated BUILD.md:

    • Made the environment.md link easier to find. Also made it easier to find platform-specific info. #4507
    • Fixed typo. #4718
    • Updated the minimum compiler requirements. #4700
    • Added note about enabling XRPFees. #4741
  • Updated RELEASENOTES.md to match 1.12.0 release notes to the dev blog.

  • Updated API-CHANGELOG.md:

    • Explained API v2 is releasing with rippled 2.0.0. #4633
    • Clarified the location of the signer_lists field in the account_info response for API v2. #4724
    • Added documentation for the new DeliverMax field. #4784
    • Removed references to API v2 being "in progress" and "in beta". #4828
    • Clarified that all breaking API changes will now occur in API v3 or later. #4773
  • Fixed a mistake in the overlay README. #4635

  • Fixed an early return from RippledRelease.cmake that prevented targets from being created during packaging. #4707

  • Fixed a build error with Intel Macs. #4632

  • Added .build to .gitignore. #4722

  • Fixed a uint is not universally defined Windows build error. #4731

  • Reenabled Windows CI build with Artifactory support. #4596

  • Fixed output of remote step in Nix workflow. #4746

  • Fixed a broken link in conan.md. #4740

  • Added a python call to fix the pip upgrade command in Windows CI. #4768

  • Added an API Impact section to pull_request_template.md. #4757

  • Set permissions for the Doxygen workflow. #4756

  • Switched to Unity builds to speed up Windows CI. #4780

  • Clarified what makes concensus healthy in FeeEscalation.md. #4729

  • Removed a dependency on the <ranges> header for unit tests. #4788

  • Fixed a clang unused-but-set-variable warning. #4677

  • Removed an unused Dockerfile. #4791

  • Fixed unit tests to work with API v2. #4785

  • Added support for the mold linker on Linux. #4807

  • Updated Linux distribtuions rippled smoke tests run on. #4813

  • Added codename bookworm to the distribution matrix during Artifactory uploads, enabling Debian 12 clients to install rippled packages. #4836

  • Added a workaround for compilation errors with GCC 13 and other compilers relying on libstdc++ version 13. #4817

  • Fixed a minor typo in the code comments of AMMCreate.h. 4821

Full Commit Log

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:

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]