Published by intelliot 11 months ago
This is a release candidate.
api_version
2 general availability.
server_definitions
method.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)Full Changelog: https://github.com/XRPLF/rippled/compare/2.0.0-rc4...2.0.0-rc5
Published by intelliot 11 months ago
This is a release candidate.
api_version
2 general availability.
server_definitions
method.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)Full Changelog: https://github.com/XRPLF/rippled/compare/2.0.0-rc3...2.0.0-rc4
Published by intelliot 11 months ago
This is a release candidate.
api_version
2 general availability.
server_definitions
methodrippled
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)fixFillOrKill
: fix OfferCreate with tfFillOrKill if offer is better than open offer rate (Amendment) by @gregtatcam in https://github.com/XRPLF/rippled/pull/4694
Full Changelog: https://github.com/XRPLF/rippled/compare/2.0.0-b4...2.0.0-rc3
Published by intelliot almost 1 year ago
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.
server_definitions
methodDID
: Decentralized identifiers (DIDs) (XLS-40): by @mvadari in https://github.com/XRPLF/rippled/pull/4636
server_definitions
to rippled by @mvadari in https://github.com/XRPLF/rippled/pull/4703
Full Changelog: https://github.com/XRPLF/rippled/compare/2.0.0-b3...2.0.0-b4
Published by intelliot about 1 year ago
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.server_definitions
methoduint
is not universally defined by @ximinez in https://github.com/XRPLF/rippled/pull/4731
STValidation
, use the last vote seen by @scottschurr in https://github.com/XRPLF/rippled/pull/4410
XRPFees
changes by @ximinez in https://github.com/XRPLF/rippled/pull/4741
conanfile.py
link in build settings by @JST5000 in https://github.com/XRPLF/rippled/pull/4740
Full Changelog: https://github.com/XRPLF/rippled/compare/2.0.0-b2...2.0.0-b3
Published by intelliot about 1 year ago
This is a beta for the next release.
Highlights:
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.
Full Changelog: https://github.com/XRPLF/rippled/compare/2.0.0-b1...2.0.0-b2
Published by intelliot about 1 year ago
This is a beta for the next release.
Highlights:
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
(Note that the replacement for getting and setting thread name (#4312) was reverted, so it is not in this release.)
TxFormats
common fields logic by @mvadari in https://github.com/XRPLF/rippled/pull/4637
Full Changelog: https://github.com/XRPLF/rippled/compare/1.12.0...2.0.0-b1
Published by manojsdoshi about 1 year ago
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
Sign Up for Future Release Announcements
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.
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.
(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
: 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
, and totalCoins
fields from the ledger
method. #4244
(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 from std::pair<bool, uint64_t>
to std::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
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
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.
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]
Published by intelliot about 1 year ago
ServerHandlerImp
to ServerHandler
by @scottschurr in https://github.com/XRPLF/rippled/pull/4516
account_info
by @shawnxie999 in https://github.com/XRPLF/rippled/pull/4590
release
by @intelliot in https://github.com/XRPLF/rippled/pull/4589
allowClawback
flag to allowTrustLineClawback
by @shawnxie999 in https://github.com/XRPLF/rippled/pull/4617
Full Changelog: https://github.com/XRPLF/rippled/compare/1.12.0-b1...1.12.0-b2
Published by intelliot about 1 year ago
fixReducedOffersV1
: curtail the occurrence of order books that are blocked by reduced offers by @scottschurr in https://github.com/XRPLF/rippled/pull/4512
Full Changelog: https://github.com/XRPLF/rippled/compare/1.11.0...1.12.0-b1
Published by intelliot over 1 year ago
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
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.
On supported platforms, see the instructions on installing or updating rippled
.
nft_info
by @ledhed2222 in https://github.com/XRPLF/rippled/pull/4320
nftoken_id
, nftoken_ids
and offer_id
meta fields into NFT Tx
responses by @shawnxie999 in https://github.com/XRPLF/rippled/pull/4447
fixNFTokenRemint
: prevent NFT re-mint: by @shawnxie999 in https://github.com/XRPLF/rippled/pull/4406
Full Changelog: https://github.com/XRPLF/rippled/compare/1.10.1...1.11.0
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.
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]
Published by intelliot over 1 year ago
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
On supported platforms, see the instructions on installing or updating rippled
.
da18c86cbf
Build packages with Ubuntu 18.04f7b3ddd87b
Reporting Mode: Do not attempt to acquire missing data from peer network (#4458)Full Changelog: https://github.com/XRPLF/rippled/compare/1.10.0...1.10.1
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.
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]
Published by intelliot over 1 year ago
Version 1.10.0 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release introduces six new amendments, detailed below, and cleans up code to improve performance.
Sign Up for Future Release Announcements
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 21 to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
On supported platforms, see the instructions on installing or updating rippled
.
featureImmediateOfferKilled
: Changes the response code of an OfferCreate
transaction with the tfImmediateOrCancel
flag to return tecKILLED
when no funds are moved. The previous return code of tecSUCCESS
was unintuitive. #4157
featureDisallowIncoming
: Enables an account to block incoming checks, payment channels, NFToken offers, and trust lines. #4336
featureXRPFees
: 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. #4247
fixUniversalNumber
: 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. #4192
fixNonFungibleTokensV1_2
: This amendment is a combination of NFToken fixes. #4417
fixTrustLinesToSelf
: 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
Improve Handshake in the peer protocol: Switched to using a cryptographically secure PRNG for the Instance Cookie. rippled
now uses hex encoding for the Closed-Ledger
and Previous-Ledger
fields in the Handshake. Also added --newnodeid
and --nodeid
command line options. 5a15229
RPC 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. #4143
Use 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, c2b03fe
Update 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. #4382
Update 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. #4409
Remove 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. 28f4cc7
Switch from C++17 to C++20: Updated rippled
to use C++20. 92d35e5
Support 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
Update command-line usage help message: Added manifest
and validator_info
to the rippled
CLI usage statement. b88ed5a
Work 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 by rippled
code. #4323
Update 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
. #4372
Don't try to read SLE with key 0 from the ledger: Fixed the preclaim
function to check for 0 in NFTokenSellOffer
and NFTokenBuyOffer
before calling Ledger::read
. This issue only affected debug builds. #4351
Update broken link to hosted Doxygen content: 5e1cb09
Prevent unnecessary shared_ptr
copies by accepting a value in SHAMapInnerNode::setChild
: #4266
Release 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
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.
The following people contributed directly to this release:
Security Bug Bounty Acknowledgements:
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]
Published by intelliot over 1 year ago
Version 1.10.0-rc4 (release candidate) of rippled
, the reference implementation of the XRP Ledger protocol is now available. The 1.10.0 release line introduces six new amendments:
fixTrustLinesToSelf
featureImmediateOfferKilled
featureDisallowIncoming
featureXRPFees
fixUniversalNumber
fixNonFungibleTokensV1_2
Information about these amendments can be found on Known Amendments.
Published by manojsdoshi about 2 years ago
Version 1.9.4 of rippled
, the reference implementation of the XRP Ledger protocol is now available. This release introduces an amendment that removes the ability for an NFT issuer to indicate that trust lines should be automatically created for royalty payments from secondary sales of NFTs, in response to a bug report that indicated how this functionality could be abused to mount a denial of service attack against the issuer.
This release introduces a new amendment to the XRP Ledger protocol, fixRemoveNFTokenAutoTrustLine
to mitigate a potential denial-of-service attack against NFT issuers that minted NFTs and allowed secondary trading of those NFTs to create trust lines for any asset.
This amendment is 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.9.4 within two weeks, to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
For more information about NFTs on the XRP Ledger, see NFT Conceptual Overview.
On supported platforms, see the instructions on installing or updating rippled
.
The primary change in this release is the following bug fix:
fixRemoveNFTokenAutoTrustLine
amendment, which disables the tfTrustLine
flag, which a malicious attacker could exploit to mount denial-of-service attacks against NFT issuers that specified the flag on their NFTs. (#4301)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 and help us build the Internet of Value.
The following people contributed directly to this release:
Published by manojsdoshi about 2 years ago
Version 1.9.3 of rippled
, the reference server implementation of the XRP Ledger protocol is now available. This release corrects minor technical flaws with the code that loads configured amendment votes after a startup and the copy constructor of PublicKey
.
On supported platforms, see the instructions on installing or updating rippled
.
This releases contains the following bug fixes:
PublicKey
copy assignment operator mishandled the case where a PublicKey
would be assigned to itself, and could result in undefined behavior.The public source code repository for rippled
is hosted on GitHub at https://github.com/XRPLF/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.
The following people contributed directly to this release:
Published by manojsdoshi about 2 years ago
Version 1.9.2 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release includes several fixes and improvements, including a second new fix amendment to correct a bug in Non-Fungible Tokens (NFTs) code, a new API method for order book changes, less noisy logging, and other small fixes.
This release introduces a two new amendments to the XRP Ledger protocol. The first, fixNFTokenNegOffer, fixes a bug in code associated with the NonFungibleTokensV1 amendment, originally introduced in version 1.9.0. The second, NonFungibleTokensV1_1, is a "roll-up" amendment that enables the NonFungibleTokensV1 feature plus the two fix amendments associated with it, fixNFTokenDirV1 and fixNFTokenNegOffer.
If you want to enable NFT code on the XRP Ledger Mainnet, you can vote in favor of only the NonFungibleTokensV1_1 amendment to support enabling the feature and fixes together, without risk that the unfixed NFT code may become enabled first.
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.9.2 within two weeks, to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
For more information about NFTs on the XRP Ledger, see NFT Conceptual Overview.
On supported platforms, see the instructions on installing or updating rippled
.
This release contains the following features and improvements.
NonFungibleTokensV1_1
amendment. This amendment encompasses three NFT-related amendments: the original NonFungibleTokensV1 amendment (from version 1.9.0), the fixNFTokenDirV1 amendment (from version 1.9.1), and the new fixNFTokenNegOffer amendment from this release. This amendment contains no changes other than enabling those three amendments together; this allows validators to vote in favor of only enabling the feature and fixes at the same time. (59326bb)SHAMapInnerNode
child lists, had a mistake that allowed the same child to be repeatedly locked under some circumstances. Fixed this bug and improved the spinlock code to make it easier to use correctly and easier to verify that the code works correctly. (#4201)The public source code repository for rippled
is hosted on GitHub at 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.
The following people contributed directly to this release:
For a real-time view of all lifetime 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.
Published by manojsdoshi over 2 years ago
Version 1.9.1 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release includes several important fixes, including a fix for a syncing issue from 1.9.0, a new fix amendment to correct a bug in the new Non-Fungible Tokens (NFTs) code, and a new amendment to allow multi-signing by up to 32 signers.
This release introduces two new amendments to the XRP Ledger protocol. 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.9.1 within two weeks, to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
The fixNFTokenDirV1 amendment fixes a bug in code associated with the NonFungibleTokensV1 amendment, so the fixNFTokenDirV1 amendment should be enabled first. All validator operators are encouraged to configure amendment voting to oppose the NonFungibleTokensV1 amendment until after the fixNFTokenDirV1 amendment has become enabled. For more information about NFTs on the XRP Ledger, see NFT Conceptual Overview.
The ExpandedSignerList amendment extends the ledger's built-in multi-signing functionality so that each list can contain up to 32 entries instead of the current limit of 8. Additionally, this amendment allows each signer to have an arbitrary 256-bit data field associated with it. This data can be used to identify the signer or provide other metadata that is useful for organizations, smart contracts, or other purposes.
On supported platforms, see the instructions on installing or updating rippled
.
This release contains the following features and improvements.
Introduce fixNFTokenDirV1 Amendment - This amendment fixes an off-by-one error that occurred in some corner cases when determining which NFTokenPage
an NFToken
object belongs on. It also adjusts the constraints of NFTokenPage
invariant checks, so that certain error cases fail with a suitable error code such as tecNO_SUITABLE_TOKEN_PAGE
instead of failing with a tecINVARIANT_FAILED
error code. (#4155)
Introduce ExpandedSignerList Amendment - This amendment expands the maximum signer list size to 32 entries and allows each signer to have an optional 256-bit WalletLocator
field containing arbitrary data. (#4097)
Pause online deletion rather than canceling it if the server fails health check - The server stops performing online deletion of old ledger history if the server fails its internal health check during this time. Online deletion can now resume after the server recovers, rather than having to start over. (#4139)
Fix performance issues introduced in 1.9.0 - Readjusts some parameters of the ledger acquisition engine to revert some changes introduced in 1.9.0 that had adverse effects on some systems, including causing some systems to fail to sync to the network. (#4152)
Improve Memory Efficiency of Path Finding - Finding paths for cross-currency payments is a resource-intensive operation. While that remains true, this fix improves memory usage of pathfinding by discarding trust line results that cannot be used before those results are fully loaded or cached. (#4111)
Fix incorrect CMake behavior on Windows when platform is unspecified or x64 - Fixes handling of platform selection when using the cmake-gui tool to build on Windows. The generator expects Win64
but the GUI only provides x64
as an option, which raises an error. This fix only raises an error if the platform is Win32
instead, allowing the generation of solution files to succeed. (#4150)
Fix test failures with newer MSVC compilers on Windows - Fixes some cases where the API handler code used string pointer comparisons, which may not work correctly with some versions of the MSVC compiler. (#4149)
Update minimum Boost version to 1.71.0 - This release is compatible with Boost library versions 1.71.0 through 1.77.0. The build configuration and documentation have been updated to reflect this. (#4134)
Fix unit test failures for DatabaseDownloader - Increases a timeout in the DatabaseDownloader
code and adjusts unit tests so that the code does not return spurious failures, and more data is logged if it does fail. (#4021)
Refactor relational database interface - Improves code comments, naming, and organization of the module that interfaces with relational databases (such as the SQLite database used for tracking transaction history). (#3965)
The public source code repository for rippled
is hosted on GitHub at 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.
The following people contributed directly to this release:
For a real-time view of all lifetime 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.
We welcome external contributions and are excited to see the broader XRP Ledger community continue to grow and thrive.
Published by manojsdoshi over 2 years ago
This is the 1.9.0 release of rippled
, the reference implementation of the XRP Ledger protocol. This release brings several features and improvements.
Introduce NFT support (XLS-20): This release introduces support for non-fungible tokens, currently available to the developer community for broader review and testing. Developers can create applications that allow users to mint, transfer, and ultimately burn (if desired) NFTs on the XRP Ledger. You can try out the new NFT transactions using the nft-devnet. Note that some fields and error codes from earlier releases of the supporting code have been refactored for this release, shown in the Code Refactoring section, below. (70779f)
Simplify the Job Queue: This is a refactor aimed at cleaning up and simplifying the existing job queue. Currently, all jobs are canceled at the same time and in the same way, so this commit removes the unnecessary per-job cancellation token. (#3656)
Optimize trust line caching: The existing trust line caching code was suboptimal in that it stored redundant information, pinned SLEs into memory, and required multiple memory allocations per cached object. This commit eliminates redundant data, reduces the size of cached objects and unpinning SLEs from memory, and uses value types to avoid the need for std::shared_ptr
. As a result of these changes, the effective size of a cached object includes the overhead of the memory allocator, and the std::shared_ptr
should be reduced by at least 64 bytes. This is significant, as there can easily be tens of millions of these objects. (4d5459)
Incremental improvements to pathfinding memory usage: This commit aborts background pathfinding when closed or disconnected, exits the pathfinding job thread if there are no requests left, does not create the path find a job if there are no requests, and refactors to remove the circular dependency between InfoSub and PathRequest. (#4111)
Improve deterministic transaction sorting in TxQ: This commit ensures that transactions with the same fee level are sorted by TxID XORed with the parent ledger hash, the TxQ is re-sorted after every ledger, and attempts to future-proof the TxQ tie-breaking test. (#4077)
Improve stop signaling for Application: (34ca45)
Eliminate SHAMapInnerNode lock contention: The SHAMapInnerNode
class had a global mutex to protect the array of node children. Profiling suggested that around 4% of all attempts to lock the global would block. This commit removes that global mutex, and replaces it with a new per-node 16-way spinlock (implemented so as not to affect the size of an inner node object), effectively eliminating the lock contention. (1b9387)
Improve ledger-fetching logic: When fetching ledgers, the existing code would isolate the peer that sent the most useful responses, and issue follow-up queries only to that peer. This commit increases the query aggressiveness, and changes the mechanism used to select which peers to issue follow-up queries to so as to more evenly spread the load among those peers that provided useful responses. (48803a)
Simplify and improve order book tracking: The order book tracking code would use std::shared_ptr
to track the lifetime of objects. This commit changes the logic to eliminate the overhead of std::shared_ptr
by using value types, resulting in significant memory savings. (b9903b)
Negative cache support for node store: This commit allows the cache to service requests for nodes that were previously looked up but not found, reducing the need to perform I/O in several common scenarios. (3eb8aa)
Improve asynchronous database handlers: This commit optimizes the way asynchronous node store operations are processed, both by reducing the number of times locks are held and by minimizing the number of memory allocations and data copying. (6faaa9)
Cleanup AcceptedLedger and AcceptedLedgerTx: This commit modernizes the AcceptedLedger
and AcceptedLedgerTx
classes, reduces their memory footprint, and reduces unnecessary dynamic memory allocations. (8f5868)
This release includes name changes in the NFToken API for SFields, RPC return labels, and error codes for clarity and consistency. To refactor your code, migrate the names of these items to the new names as listed below.
SField
name changes:TokenTaxon -> NFTokenTaxon
MintedTokens -> MintedNFTokens
BurnedTokens -> BurnedNFTokens
TokenID -> NFTokenID
TokenOffers -> NFTokenOffers
BrokerFee -> NFTokenBrokerFee
Minter -> NFTokenMinter
NonFungibleToken -> NFToken
NonFungibleTokens -> NFTokens
BuyOffer -> NFTokenBuyOffer
SellOffer -> NFTokenSellOffer
OfferNode -> NFTokenOfferNode
tokenid -> nft_id
index -> nft_offer_index
temBAD_TRANSFER_FEE -> temBAD_NFTOKEN_TRANSFER_FEE
tefTOKEN_IS_NOT_TRANSFERABLE -> tefNFTOKEN_IS_NOT_TRANSFERABLE
tecNO_SUITABLE_PAGE -> tecNO_SUITABLE_NFTOKEN_PAGE
tecBUY_SELL_MISMATCH -> tecNFTOKEN_BUY_SELL_MISMATCH
tecOFFER_TYPE_MISMATCH -> tecNFTOKEN_OFFER_TYPE_MISMATCH
tecCANT_ACCEPT_OWN_OFFER -> tecCANT_ACCEPT_OWN_NFTOKEN_OFFER
Published by manojsdoshi over 2 years ago
This is the 1.8.5 release of rippled
, the reference implementation of the XRP Ledger protocol. This release includes fixes and updates for stability and security, and improvements to build scripts. There are no user-facing API or protocol changes in this release.
This release contains the following bug fixes and under-the-hood improvements:
Correct TaggedPointer move constructor: Fixes a bug in unused code for the TaggedPointer class. The old code would fail if a caller explicitly tried to remove a child that is not actually part of the node. (61389a8)
Ensure protocol buffer prerequisites are present: The build scripts and packages now properly handle Protobuf packages and various packages. Prior to this change, building on Ubuntu 21.10 Impish Indri would fail unless the libprotoc-dev
package was installed. (b7e0306)
Improve handling of endpoints during peer discovery. This hardens and improves handling of incoming messages on the peer protocol. (289bc0a)
Run tests on updated linux distros: Test builds now run on Rocky Linux 8, Fedora 34 and 35, Ubuntu 18, 20, and 22, and Debian 9, 10, and 11. (a9ee802)
Avoid dereferencing empty optional in ReportingETL: Fixes a bug in Reporting Mode that could dereference an empty optional value when throwing an error. (5b085a7)
Correctly add GIT_COMMIT_HASH into version string: When building the server from a non-tagged release, the build files now add the commit ID in a way that follows the semantic-versioning standard, and correctly handle the case where the commit hash ID cannot be retrieved. (d23d37f)
Update RocksDB to version 6.27.3: Updates the version of RocksDB included in the server from 6.7.3 (which was released on 2020-03-18) to 6.27.3 (released 2021-12-10). (c5dc00a)