Published by manojsdoshi over 2 years ago
This is the 1.8.4 release of rippled
, the reference implementation of the XRP Ledger protocol.
This release corrects a technical flaw introduced with 1.8.3 that may result in failures if the newly-introduced 'fast loading' is enabled. The release also adjusts default parameters used to configure the pathfinding engine to reduce resource usage.
Adjust mutex scope in walkMapParallel
: This commit corrects a technical flaw introduced with commit 7c12f0135897361398917ad2c8cda888249d42ae that would result in undefined behavior if the server operator configured their server to use the 'fast loading' mechanism introduced with 1.8.3.
Adjust pathfinding configuration defaults: This commit adjusts the default configuration of the pathfinding engine, to account for the size of the XRP Ledger mainnet. Unless explicitly overriden, the changes mean that pathfinding operations will return fewer, shallower paths than previous releases.
This is the 1.8.3 release of rippled
, the reference implementation of the XRP Ledger protocol.
This release implements changes that improve the syncing performance of peers on the network, adds countermeasures to several routines involving LZ4 to defend against CVE-2021-3520, corrects a minor technical flaw that would result in the server not using a cache for nodestore operations, and adjusts tunable values to optimize disk I/O.
Recently, servers in the XRP Ledger network have been taking an increasingly long time to sync back to the network after restartiningg. This is one of several releases which will be made to improve on this issue.
Parallel ledger loader & I/O performance improvements: This commit makes several changes that, together, should decrease the time needed for a server to sync to the network. To make full use of this change, rippled
needs to be using storage with high IOPS and operators need to explicitly enable this behavior by adding the following to their config file, under the [node_db]
stanza:
[node_db]
...
fast_load=1
Note that when 'fast loading' is enabled the server will not open RPC and WebSocket interfaces until after the initial load is completed. Because of this, it may appear unresponsive or down.
Detect CVE-2021-3520 when decompressing using LZ4: This commit adds code to detect LZ4 payloads that may result in out-of-bounds memory accesses.
Provide sensible default values for nodestore cache:: The nodestore includes a built-in cache to reduce the disk I/O load but, by default, this cache was not initialized unless it was explicitly configured by the server operator. This commit introduces sensible defaults based on the server's configured node size.
Adjust the number of concurrent ledger data jobs: Processing a large amount of data at once can effectively bottleneck a server's I/O subsystem. This commits helps optimize I/O performance by controlling how many jobs can concurrently process ledger data.
Two small SHAMapSync improvements: This commit makes minor changes to optimize the way memory is used and control the amount of background I/O performed when attempting to fetch missing SHAMap
nodes.
Published by manojsdoshi almost 3 years ago
Ripple has released version 1.8.2 of rippled, the reference server implementation of the XRP Ledger protocol. This release addresses the full transaction queues and elevated transaction fees issue observed on the XRP ledger, and also provides some optimizations and small fixes to improve the server's performance overall.
Recently, servers in the XRP Ledger network have had full transaction queues and transactions paying low fees have mostly not been able to be confirmed through the queue. After investigation, it was discovered that a large influx of transactions to the network caused it to raise the transaction costs to be proposed in the next ledger block, and defer transactions paying lower costs to later ledgers. The first part worked as designed, but deferred transactions were not being confirmed as the ledger had capacity to process them.
The root cause was that there were very many low-cost transactions that different servers in the network received in a different order due to incidental differences in timing or network topology, which caused validators to propose different sets of low-cost transactions from the queue. Since none of these transactions had support from a majority of validators, they were removed from the proposed transaction set. Normally, any transactions removed from a proposed transaction set are supposed to be retried in the next ledger, but servers attempted to put these deferred transactions into their transaction queues first, which had filled up. As a result, the deferred transactions were discarded, and the network was only able to confirm transactions that paid high costs.
Address elevated transaction fees: This change addresses the full queue problems in two ways. First, it puts deferred transactions directly into the open ledger, rather than transaction queue. This reverts a subset of the changes from ximinez@62127d7. A transaction that is in the open ledger but doesn't get validated should stay in the open ledger so that it can be proposed again right away. Second, it changes the order in which transactions are pulled from the transaction queue to increase the overlap in servers' initial transaction consensus proposals. Like the old rules, transactions paying higher fee levels are selected first. Unlike the old rules, transactions paying the same fee level are ordered by transaction ID / hash ascending. (Previously, transactions paying the same fee level were unsorted, resulting in each server having a different order.)
Add ignore_default option to account_lines API: This flag, if present, suppresses the output of incoming trust lines in the default state. This is primarily motivated by observing that users often have many unwanted incoming trust lines in a default state, which are not useful in the vast majority of cases. Being able to suppress those when doing account_lines
saves bandwidth and resources. (#3980)
Make I/O and prefetch worker threads configurable: This commit adds the ability to specify io_workers and prefetch_workers in the config file which can be used to specify the number of threads for processing raw inbound and outbound IO and configure the number of threads for performing node store prefetching. (#3994)
Enforce account RPC limits by objects traversed: This changes the way the account_objects API method counts and limits the number of objects it returns. Instead of limiting results by the number of objects found, it counts by the number of objects traversed. Additionally, the default and maximum limits for non-admin connections have been decreased. This reduces the amount of work that one API call can do so that public API servers can share load more effectively. (#4032)
Fix a crash on shutdown: The NuDB backend class could throw an error in its destructor, resulting in a crash while the server was shutting down gracefully. This crash was harmless but resulted in false alarms and noise when tracking down other possible crashes. (#4017)
Improve reporting of job queue in admin server_info: The server_info command, when run with admin permissions, provides information about jobs in the server's job queue. This commit provides more descriptive names and more granular categories for many jobs that were previously all identified as "clientCommand". (#4031)
Improve full & compressed inner node deserialization: Remove a redundant copy operation from low-level SHAMap deserialization. (#4004)
Reporting mode: only forward to P2P nodes that are synced: Previously, reporting mode servers forwarded to any of their configured P2P nodes at random. This commit improves the selection so that it only chooses from P2P nodes that are fully synced with the network. (#4028)
Improve handling of HTTP X-Forwarded-For and Forwarded headers: Fixes the way the server handles IPv6 addresses in these HTTP headers. (#4009, #4030)
Other minor improvements to logging and Reporting Mode.
Published by manojsdoshi almost 3 years ago
Ripple has released version 1.8.0 of rippled, the reference server implementation of the XRP Ledger protocol. This release brings several features and improvements.
[node_size]
configuration value by default if it is not explicitly specified. This parameter tunes various settings to the specs of the hardware that the server is running on, especially the amount of RAM and the number of CPU threads available in the system. Previously the server always chose the smallest value by default.validations
stream: The validations
subscription stream in the API now reports additional fields that were added to validation messages by the HardenedValidations amendment. These fields make it easier to detect misconfigurations such as multiple servers sharing a validation key pair. (#3865)validations
and manifests
streams: In the API it is now possible to connect to these streams when connected to a servers running in reporting. Previously, attempting to subscribe to these streams on a reporting server failed with the error reportingUnsupported
. (#3905)Slice
. The internal buffer is switched from std::vector
to Buffer
to save a minimum of 8 bytes (plus the buffer slack that is inherent in std::vector
) per SHAMapItem instance.std::thread
. The immediate benefits are less code, less synchronization, less runtime work, and (subjectively) more readable code. The end goal is to adhere to RAII in our object design, and this is one necessary step on that path.Published by manojsdoshi about 3 years ago
This is the 1.7.3 release of rippled, the reference implementation of the XRP Ledger protocol. This release addresses an OOB memory read identified by Guido Vranken, as well as an unrelated issue identified by the Ripple C++ team that could result in incorrect use of SLEs. Additionally, this version also introduces the NegativeUNL amendment, which corresponds to the feature which was introduced with the 1.6.0 release.
If you operate an XRP Ledger server, then you should upgrade to version 1.7.3 at your earliest convenience to mitigate the issues addressed in this hotfix. If a sufficient majority of servers on the network upgrade, the NegativeUNL amendment may gain a majority, at which point a two week activation countdown will begin. If the NegativeUNL amendment activates, servers running versions of rippled prior to 1.7.3 will become amendment blocked.
Improve SLE usage in check cashing: Fixes a situation which could result in the incorrect use of SLEs.
Address OOB in base58 decoder: Corrects a technical flaw that could allow an out-of-bounds memory read in the Base58 decoder.
Add NegativeUNL as a supported amendment: Introduces an amendment for the Negative UNL feature introduced in rippled 1.6.0.
Published by manojsdoshi over 3 years ago
This the 1.7.2 release of rippled, the reference server implementation of the XRP Ledger protocol. This release protects against the security issue CVE-2021-3499 affecting OpenSSL, adds an amendment to fix an issue with small offers not being properly removed from order books in some cases, and includes various other minor fixes. Version 1.7.2 supersedes version 1.7.1 and adds fixes for more issues that were discovered during the release cycle.
This release introduces a new amendment to the XRP Ledger protocol: fixRmSmallIncreasedQOffers. This 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, then you should upgrade to version 1.7.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. If you operate an XRP Ledger validator, please learn more about this amendment so you can make informed decisions about how your validator votes. If you take no action, your validator begins voting in favor of any new amendments as soon as it has been upgraded.
fixRmSmallIncreasedQOffers Amendment: This amendment fixes an issue where certain small offers can be left at the tip of an order book without being consumed or removed when appropriate and causes some payments and Offers to fail when they should have succeeded (#3827).
Adjust OpenSSL defaults and mitigate CVE-2021-3499: Prior to this fix, servers compiled against a vulnerable version of OpenSSL could have a crash triggered by a malicious network connection. This fix disables renegotiation support in OpenSSL so that the rippled server is not vulnerable to this bug regardless of the OpenSSL version used to compile the server. This also removes support for deprecated TLS versions 1.0 and 1.1 and ciphers that are not part of TLS 1.2 (#79e69da).
Support HTTP health check-in reporting mode: Enables the Health Check special method when running the server in the new Reporting Mode introduced in 1.7.0 (9c8cadd).
Maintain compatibility for forwarded RPC responses: Fixes a case in API responses from servers in Reporting Mode, where requests that were forwarded to a P2P-mode server would have the result field nested inside another result field (8579eb0).
Add load_factor in reporting mode: Adds a load_factor value to the server info method response when running the server in Reporting Mode so that the response is compatible with the format returned by servers in P2P mode (the default) (430802c).
Properly encode metadata from tx RPC command: Fixes a problem where transaction metadata in the tx API method response would be in JSON format even when the binary was requested (7311629).
Updates to Windows builds: When building on Windows, use vcpkg 2021 by default and add compatibility with MSVC 2019 (36fe196), (30fd458).
Published by manojsdoshi over 3 years ago
Ripple has released version 1.7.0 of rippled, the reference server implementation of the XRP Ledger protocol. This release significantly improves memory usage, introduces a protocol amendment to allow out-of-order transaction execution with Tickets, and brings several other features and improvements.
Upgrading (SPECIAL ACTION REQUIRED)
If you use the precompiled binaries of rippled that Ripple publishes for supported platforms, please note that Ripple has renewed the GPG key used to sign these packages. If you are upgrading from a previous install, you must download and trust the renewed key. Automatic upgrades will not work until you have re-trusted the key.
Red Hat Enterprise Linux / CentOS
(These instructions have been updated.) First, re-add the repository to get the updated key.
cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
[ripple-stable]
name=XRP Ledger Packages
enabled=1
gpgcheck=0
repo_gpgcheck=1
baseurl=https://repos.ripple.com/repos/rippled-rpm/stable
gpgkey=https://repos.ripple.com/repos/rippled-rpm/stable/repodata/repomd.xml.key
REPOFILE
Then perform a manual upgrade. When prompted, confirm that the key's fingerprint matches the following example, then press y to accept the updated key:
$ sudo yum install rippled
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.web-ster.com
* epel: mirrors.syringanetworks.net
* extras: ftp.osuosl.org
* updates: mirrors.vcea.wsu.edu
ripple-nightly/signature
| 650 B 00:00:00
Retrieving key from https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key
Importing GPG key 0xCCAFD9A2:
Userid : "TechOps Team at Ripple <[email protected]>"
Fingerprint: c001 0ec2 05b3 5a33 10dc 90de 395f 97ff ccaf d9a2
From : https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key
Is this ok [y/N]: y
Ubuntu / Debian
Download and trust the updated public key, then perform a manual upgrade as follows:
wget -q -O - "https://repos.ripple.com/repos/api/gpg/key/public" | \
sudo apt-key add -
sudo apt -y update
sudo apt -y install rippled
New and Improved Features
Bug Fixes
Published by manojsdoshi about 4 years ago
This rippled
1.6.0 release introduces several new features including changes to the XRP Ledger's consensus mechanism to make it even more robust in adverse conditions, as well as numerous bug fixes and optimizations.
New and Improved Features
Bug Fixes
Published by carlhua over 4 years ago
The rippled
1.5.0 release introduces several improvements and new features, including support for gRPC API, API versioning, UNL propagation via the peer network, new RPC methods validator_info
and manifest
, augmented submit
method, improved tx
method response, improved command line parsing, improved handshake protocol, improved package building and various other minor bug fixes and improvements.
This release also introduces two new amendments: fixQualityUpperBound
and RequireFullyCanonicalSig
.
Several improvements to the sharding system are currently being evaluated for inclusion into the upcoming 1.6 release of rippled
. These changes are incompatible with shards generated by previous versions of the code.
Additionally, an issue with the existing sharding engine can result in a server running versions 1.4 or 1.5 of the software to experience a deadlock and automatically restart when running with the sharding feature enabled.
At this time, the developers recommend running with sharding disabled, pending the improvements scheduled to be introduced with 1.6. For more information on how to disable sharding, please visit https://xrpl.org/configure-history-sharding.html
New and Updated Features
RequireFullyCanonicalSig
amendment which changes the signature requirements for the XRP Ledger protocol so that non-fully-canonical signatures are no longer valid. This protects against transaction malleability on all transactions, instead of just transactions with the tfFullyCanonicalSig flag enabled. Without this amendment, a transaction is malleable if it uses a secp256k1 signature and does not have tfFullyCanonicalSig enabled. Most signing utilities enable tfFullyCanonicalSig by default, but there are exceptions. With this amendment, no single-signed transactions are malleable. (Multi-signed transactions may still be malleable if signers provide more signatures than are necessary.) All transactions must use the fully canonical form of the signature, regardless of the tfFullyCanonicalSig flag. Signing utilities that do not create fully canonical signatures are not supported. All of Ripple's signing utilities have been providing fully-canonical signatures exclusively since at least 2014. For more information. ec137044a
rippled
API. You can enable the gRPC API on your server with a new configuration stanza. 7d867b806
2aa11fa41
2c71802e3
submit
method to include additional details on the status of the command. 79e9085dd
tx
method response with additional details on ledgers searched. 47501b7f9
validator_info
method which returns information pertaining to the current validator's keys, manifest sequence, and domain. 3578acaf0
manifest
method which looks up manifest information for the specified key (either master or ephemeral). 3578acaf0
f6916bfd4
(51ed7db00
, 6e4945c56)
getRippledInfo
info gathering script to rippled
Linux packages. acf4b7889
Bug Fixes and Improvements
fixQualityUpperBound
amendment which fixes a bug in unused code for estimating the ratio of input to output of individual steps in cross-currency payments. 9d3626fec
tx
method now properly fetches all historical tx if they are incorporated into a validated ledger under rules that applied at the time. 11cf27e00
fail_hard
flag is handled with the submit
method - transactions that are submitted with the fail_hard
flag that result in any TER code besides tesSUCCESS is neither queued nor held. cd9732b47
Beast
code. 172ead822
6529d3e6f
Published by mDuo13 almost 5 years ago
Ripple has released version 1.4.0 of rippled
, the reference implementation of the core XRP Ledger protocol. To learn more about how to build and run a rippled
server, see Manage the rippled
Server.
The DeletableAccounts amendment which, if enabled, allow users to delete their XRP Ledger accounts and recover some of their base reserve.
Support for improved management of peer slots and the ability to add and remove reserved connections without requiring a restart of the server.
Tracking and reporting of cumulative and instantaneous peer bandwidth usage.
Preliminary support for post-processing historical shards after downloading to index their contents.
Reporting the master public key alongside the ephemeral public key in the validation stream subscriptions.
Reporting consensus phase changes in the server stream subscription.
The fixPayChanRecipientOwnerDir Amendment which corrects a minor technical flaw that would cause a payment channel to not appear in the recipient's owner directory, which made it unnecessarily difficult for users to enumerate all their payment channels.
The fixCheckThreading Amendment which corrects a minor technical flaw that caused checks to not be properly threaded against the account of the check's recipient.
Respect the ssl_verify
configuration option in the SSLHTTPDownloader
and HTTPClient
classes.
Properly update the server_state
when a server detects a disagreement between itself and the network.
Allow Ed25519 keys to be used with the channel_authorize
command.
Published by mDuo13 about 5 years ago
Ripple has released version 1.3.1 of rippled
, the reference implementation of the core XRP Ledger protocol. To learn more about how to build and run a rippled
server, see Manage the Rippled Server.
This release supersedes version 1.3.0. Version 1.3.1 addresses deadlock conditions reported by some users late in the release cycle for 1.3.0.
rippled
The installation instructions on supported platforms have changed for rippled
1.3.x.
rippled
.rippled
installed using the previous method (installing RPMs with Alien), see Migration Instructions for Ubuntu Linux for steps to migrate to the new, native packages. Additionally, it is now possible to enable automatic updates on Ubuntu.The rippled
1.3.1 release introduces several new features and overall improvements to the codebase, including the fixMasterKeyAsRegularKey
amendment, code to adjust the timing of the consensus process and support for decentralized validator domain verification. The release also includes miscellaneous improvements including in the transaction censorship detection code, transaction validation code, manifest parsing code, config file parsing code, log file rotation code, and in the build, continuous integration, testing and package building pipelines.
New and Updated Features
fixMasterKeyAsRegularKey
amendment which, if enabled, will correct a technical flaw that allowed setting an account's regular key to the account's master key.Bug Fixes
Published by mellery451 over 5 years ago
The rippled
1.2.4 release improves the way that shard crawl requests are routed and the robustness of configured validator list retrieval by imposing a 20 second timeout.
New and Updated Features
This release has no new features.
Bug Fixes
Published by seelabs over 5 years ago
The rippled
1.2.3 release corrects a technical flaw which in some circumstances can cause a null pointer dereference that can crash the server.
New and Updated Features
This release has no new features.
Bug Fixes
Published by seelabs over 5 years ago
The rippled
1.2.2 release corrects a technical flaw in the fee escalation engine which could cause some fee metrics to be calculated incorrectly. In some circumstances this can potentially cause the server to crash.
New and Updated Features
This release has no new features.
Bug Fixes
Published by seelabs over 5 years ago
The rippled
1.2.1 release introduces several fixes including a change in the
information reported via the enhanced crawl functionality introduced in the
1.2.0 release, a fix for a potential race condition when processing a status
change message for a peer, and for a technical flaw that could cause a server
to not properly detect that it had lost all its peers.
The release also adds the delivered_amount
field to more responses to simplify
the handling of payment or check cashing transactions.
New and Updated Features
This release has no new features.
Bug Fixes
TMStatusChange
handling (c8249981)delivered_amount
to more RPC commands (f2756914)Published by mellery451 over 5 years ago
The rippled
1.2.0 release introduces the MultisignReserve Amendment, which
reduces the reserve requirement associated with signer lists. This release also
includes incremental improvements to the code that handles offers. Furthermore,
rippled
now also has the ability to automatically detect transaction
censorship attempts and issue warnings of increasing severity for transactions
that should have been included in a closed ledger after several rounds of
consensus.
New and Updated Features
Bug Fixes
Published by mDuo13 almost 6 years ago
The rippled
1.1.2 release introduces a fix for an issue that could have
prevented cluster peers from successfully bypassing connection limits when
connecting to other servers on the same cluster. Additionally, it improves
logic used to determine what the preferred ledger is during suboptimal
network conditions.
New and Updated Features
This release has no new features.
Bug Fixes
Published by seelabs almost 6 years ago
New and Updated Features
server_info
and validators
commands (#2734)Bug Fixes
Published by mDuo13 about 6 years ago
The rippled
1.1.0 release release includes the DepositPreAuth
amendment, which combined with the previously released DepositAuth
amendment, allows users to pre-authorize incoming transactions to accounts, by whitelisting sender addresses. The 1.1.0 release also includes incremental improvements to several previously released features (fix1515
amendment), deprecates support for the sign
and sign_for
commands from the rippled API and improves invariant checking for enhanced security.
Ripple recommends that all server operators upgrade to XRP Ledger version 1.1.0 by Thursday, 2018-09-27, to ensure service continuity.
New and Updated Features
DepositPreAuth
ledger type and transaction (#2513)Bug Fixes
The rippled
1.0.0 release includes incremental improvements to several previously released features.
New and Updated Features
Bug Fixes
check
, escrow
, and pay_chan
to ledger_entry
(RIPD-1600)Published by seelabs over 6 years ago
The rippled
0.90.1 release includes fixes for issues reported by external security researchers. These issues, when exploited, could cause a rippled instance to restart or, in some circumstances, stop executing. While these issues can result in a denial of service attack, none affect the integrity of the XRP Ledger and no user funds, including XRP, are at risk.
New and Updated Features
This release has no new features.
Bug Fixes