Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposed 1.8.0-b3 #3858

Merged
merged 38 commits into from
Jun 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
9c8cadd
Support HTTP health check in reporting mode.
mtrippled Mar 29, 2021
8579eb0
Maintain compatibility for forwarded RPC responses:
Mar 29, 2021
7311629
Properly encode results from the `tx` RPC command:
Mar 10, 2021
79e69da
Adjust OpenSSL defaults and mitigate CVE-2021-3499:
nbougalis Mar 30, 2021
9106a06
Set version to 1.7.1
nbougalis Apr 1, 2021
430802c
Add load_factor to server_info in reporting mode
Apr 9, 2021
1bb99e5
Rm some offers where the quality is reduced:
seelabs Apr 20, 2021
36fe196
Update version of vcpkg for Windows builds
ximinez May 10, 2021
30fd458
Create comparator wrapper classes for MSVC 2019 build issues:
ximinez Mar 5, 2021
34ee4ca
Set version to 1.7.2
manojsdoshi May 7, 2021
c10c0be
Merge master (1.7.2) into develop (1.8.0-b2)
manojsdoshi May 26, 2021
a2a37a9
Redesign stoppable object pattern
thejohnfreeman May 26, 2021
14b2f27
Remove dead code
thejohnfreeman May 26, 2021
38f954f
Improve NodeStore to ShardStore imports
undertome Dec 18, 2020
80c2302
Extend peer shard info
miguelportilla Oct 9, 2020
d95aab1
Add lookup DBs to the Relational DB Interface
undertome Feb 12, 2021
62d2b76
Advance shard store unittests
undertome May 25, 2021
fa9ecae
Update doc specifying min gcc version:
seelabs Apr 9, 2021
04ff624
Support boost 1.76:
seelabs Apr 11, 2021
9fd5cd3
Do not use __func__ inside lambdas
seelabs Jun 1, 2021
7717056
Add higher bound to validations to keep
pwang200 Apr 29, 2021
2eb1c6a
Enable testing beta RPC API version with config
pwang200 Jun 23, 2020
6298dab
Support dns in gRPC connection for reporting ETL
Feb 22, 2021
9eb9b8f
Fix reporting mode build issue
Jun 3, 2021
09ae916
Remove some "Env::close" noise from unit test output
scottschurr Mar 13, 2021
22cc9a2
Maintenance of Offer and PayStrand unit tests
scottschurr Mar 25, 2021
2a7c573
Fix clang warnings about copies vs references:
scottschurr May 20, 2021
dcba79b
Only warn on non-pseudo transactions without accounts:
scottschurr Apr 19, 2021
7822a28
Replace dirAdd() calls with dirAppend() or dirInsert():
scottschurr Apr 20, 2021
ff3d2e7
Use jtx::offer_cancel more places:
scottschurr Apr 13, 2021
10e4608
Improve unit test coverage of AccountDelete transactor
scottschurr Apr 19, 2021
433fead
Automatically determine the node size:
nbougalis Apr 12, 2021
4bedbd1
Remove unused code
nbougalis Mar 19, 2021
2c55911
Remove unneeded header includes.
HowardHinnant Apr 8, 2021
f1a9e88
Add scope_exit utilities
HowardHinnant May 6, 2021
2f02310
Future proof rippled by changing variable name 'requires' to 'require'
r0bertz Apr 14, 2021
d4d937c
Correct typos in documentation
plan-do-break-fix Apr 24, 2021
7bd5d51
Set version to 1.8.0-b3
manojsdoshi Jun 1, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ assignees: ''

## Environment
<!--Please describe your environment setup (such as Ubuntu 18.04 with Boost 1.70).-->
<!-- If you are using a formal release, please use the version returned by './rippled --version' as the verison number-->
<!-- If you are using a formal release, please use the version returned by './rippled --version' as the version number-->
<!-- If you are working off of develop, please add the git hash via 'git rev-parse HEAD'-->

## Supporting Files
Expand Down
5 changes: 3 additions & 2 deletions Builds/CMake/RippledCore.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,6 @@ target_sources (rippled PRIVATE
src/ripple/core/impl/LoadMonitor.cpp
src/ripple/core/impl/SNTPClock.cpp
src/ripple/core/impl/SociDB.cpp
src/ripple/core/impl/Stoppable.cpp
src/ripple/core/impl/TimeKeeper.cpp
src/ripple/core/impl/Workers.cpp
src/ripple/core/Pg.cpp
Expand Down Expand Up @@ -521,6 +520,7 @@ target_sources (rippled PRIVATE
src/ripple/nodestore/impl/ManagerImp.cpp
src/ripple/nodestore/impl/NodeObject.cpp
src/ripple/nodestore/impl/Shard.cpp
src/ripple/nodestore/impl/ShardInfo.cpp
src/ripple/nodestore/impl/TaskQueue.cpp
#[===============================[
main sources:
Expand Down Expand Up @@ -592,6 +592,7 @@ target_sources (rippled PRIVATE
src/ripple/rpc/handlers/LogLevel.cpp
src/ripple/rpc/handlers/LogRotate.cpp
src/ripple/rpc/handlers/Manifest.cpp
src/ripple/rpc/handlers/NodeToShardStatus.cpp
src/ripple/rpc/handlers/NoRippleCheck.cpp
src/ripple/rpc/handlers/OwnerInfo.cpp
src/ripple/rpc/handlers/PathFind.cpp
Expand Down Expand Up @@ -711,6 +712,7 @@ target_sources (rippled PRIVATE
src/test/basics/KeyCache_test.cpp
src/test/basics/PerfLog_test.cpp
src/test/basics/RangeSet_test.cpp
src/test/basics/scope_test.cpp
src/test/basics/Slice_test.cpp
src/test/basics/StringUtilities_test.cpp
src/test/basics/TaggedCache_test.cpp
Expand Down Expand Up @@ -765,7 +767,6 @@ target_sources (rippled PRIVATE
src/test/core/CryptoPRNG_test.cpp
src/test/core/JobQueue_test.cpp
src/test/core/SociDB_test.cpp
src/test/core/Stoppable_test.cpp
src/test/core/Workers_test.cpp
#[===============================[
test sources:
Expand Down
2 changes: 1 addition & 1 deletion Builds/CMake/deps/cassandra.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ if(reporting)
GIT_REPOSITORY https://github.com/krb5/krb5.git
GIT_TAG master
UPDATE_COMMAND ""
CONFIGURE_COMMAND autoreconf src && ./src/configure --enable-static --disable-shared > /dev/null
CONFIGURE_COMMAND autoreconf src && CFLAGS=-fcommon ./src/configure --enable-static --disable-shared > /dev/null
BUILD_IN_SOURCE 1
BUILD_COMMAND make
INSTALL_COMMAND ""
Expand Down
4 changes: 2 additions & 2 deletions Builds/levelization/results/loops.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Loop: ripple.app ripple.net
ripple.app > ripple.net

Loop: ripple.app ripple.nodestore
ripple.app > ripple.nodestore
ripple.nodestore ~= ripple.app

Loop: ripple.app ripple.overlay
ripple.overlay ~= ripple.app
Expand Down Expand Up @@ -41,7 +41,7 @@ Loop: ripple.net ripple.rpc
ripple.rpc > ripple.net

Loop: ripple.nodestore ripple.overlay
ripple.overlay == ripple.nodestore
ripple.overlay ~= ripple.nodestore

Loop: ripple.overlay ripple.rpc
ripple.rpc ~= ripple.overlay
Expand Down
6 changes: 3 additions & 3 deletions Builds/linux/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ management tools.

## Dependencies

gcc-7 or later is required.
gcc-8 or later is required.

Use `apt-get` to install the dependencies provided by the distribution

Expand Down Expand Up @@ -144,7 +144,7 @@ testing and running.
* `-Dsan=thread` to enable the thread sanitizer with clang
* `-Dsan=address` to enable the address sanitizer with clang
* `-Dstatic=ON` to enable static linking library dependencies
* `-Dreporting=ON` to build code neccessary for reporting mode (defaults to OFF)
* `-Dreporting=ON` to build code necessary for reporting mode (defaults to OFF)

Several other infrequently used options are available - run `ccmake` or
`cmake-gui` for a list of all options.
Expand All @@ -161,7 +161,7 @@ the `-j` parameter in this example tells the build tool to compile several
files in parallel. This value should be chosen roughly based on the number of
cores you have available and/or want to use for building.

When the build completes succesfully, you will have a `rippled` executable in
When the build completes successfully, you will have a `rippled` executable in
the current directory, which can be used to connect to the network (when
properly configured) or to run unit tests.

Expand Down
2 changes: 1 addition & 1 deletion Builds/macos/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ the `-j` parameter in this example tells the build tool to compile several
files in parallel. This value should be chosen roughly based on the number of
cores you have available and/or want to use for building.

When the build completes succesfully, you will have a `rippled` executable in
When the build completes successfully, you will have a `rippled` executable in
the current directory, which can be used to connect to the network (when
properly configured) or to run unit tests.

Expand Down
23 changes: 22 additions & 1 deletion RELEASENOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,34 @@

![XRP](docs/images/[email protected])

This document contains the release notes for `rippled`, the reference server implementation of the Ripple protocol. To learn more about how to build, run or update a `rippled` server, visit https://xrpl.org/install-rippled.html
This document contains the release notes for `rippled`, the reference server implementation of the XRP Ledger protocol. To learn more about how to build, run or update a `rippled` server, visit https://xrpl.org/install-rippled.html


Have new ideas? Need help with setting up your node? Come visit us [here](https://github.com/ripple/rippled/issues/new/choose)

# Releases

## Version 1.7.2

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](https://www.openssl.org/news/secadv/20210325.txt) 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.

## Action Required

This release introduces a new amendment to the XRP Ledger protocol: `fixRmSmallIncreasedQOffers`. This amendments 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.

### Bug Fixes

- **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)](https://github.com/ripple/rippled/pull/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)](https://github.com/ripple/rippled/pull/3843/commits/79e69da3647019840dca49622621c3d88bc3883f).
- **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)](https://github.com/ripple/rippled/pull/3843/commits/9c8caddc5a197bdd642556f8beb14f06d53cdfd3).
- **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)](https://github.com/ripple/rippled/pull/3843/commits/8579eb0c191005022dcb20641444ab471e277f67).
- **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)](https://github.com/ripple/rippled/pull/3843/commits/430802c1cf6d4179f2249a30bfab9eff8e1fa748).
- **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 binary was requested [(7311629)](https://github.com/ripple/rippled/pull/3843/commits/73116297aa94c4acbfc74c2593d1aa2323b4cc52).
- **Updates to Windows builds:** When building on Windows, use vcpkg 2021 by default and add compatibility with MSVC 2019 [(36fe196)](https://github.com/ripple/rippled/pull/3843/commits/36fe1966c3cd37f668693b5d9910fab59c3f8b1f), [(30fd458)](https://github.com/ripple/rippled/pull/3843/commits/30fd45890b1d3d5f372a2091d1397b1e8e29d2ca).

## Version 1.7.0

Ripple has released version 1.7.0 of `rippled`, the reference server implementation of the XRP Ledger protocol.
Expand Down
2 changes: 1 addition & 1 deletion bin/sh/install-vcpkg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ else
if [[ -d "${VCPKG_DIR}" ]] ; then
rm -rf "${VCPKG_DIR}"
fi
git clone --branch 2019.12 https://github.com/Microsoft/vcpkg.git ${VCPKG_DIR}
git clone --branch 2021.04.30 https://github.com/Microsoft/vcpkg.git ${VCPKG_DIR}
pushd ${VCPKG_DIR}
BSARGS=()
if [[ "$(uname)" == "Darwin" ]] ; then
Expand Down
30 changes: 24 additions & 6 deletions cfg/rippled-example.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -867,7 +867,7 @@
#
# source_ip = <IP-address>
#
# Required. IP address of the ETL source
# Required. IP address of the ETL source. Can also be a DNS record.
#
# source_ws_port = <number>
#
Expand Down Expand Up @@ -1426,8 +1426,20 @@
# Tunes the servers based on the expected load and available memory. Legal
# sizes are "tiny", "small", "medium", "large", and "huge". We recommend
# you start at the default and raise the setting if you have extra memory.
# If no value is specified, the code assumes the proper size is "tiny". The
# default configuration file explicitly specifies "medium" as the size.
#
# The code attempts to automatically determine the appropriate size for
# this parameter based on the amount of RAM and the number of execution
# cores availabe to the server. The current decision matrix is:
#
# | | Cores |
# |---------|------------------------|
# | RAM | 1 | 2 or 3 | ≥ 4 |
# |---------|------|--------|--------|
# | < ~8GB | tiny | tiny | tiny |
# | < ~12GB | tiny | small | small |
# | < ~16GB | tiny | small | medium |
# | < ~24GB | tiny | small | large |
# | < ~32GB | tiny | small | huge |
#
# [signing_support]
#
Expand Down Expand Up @@ -1502,6 +1514,15 @@
# Enable or disable access to /vl requests. Default is '1' which
# enables access.
#
# [beta_rpc_api]
#
# 0 or 1.
#
# 0: Disable the beta API version for JSON-RPC and WebSocket [default]
# 1: Enable the beta API version for testing. The beta API version
# contains breaking changes that require a new API version number.
# They are not ready for public consumption.
#
#-------------------------------------------------------------------------------
#
# 10. Example Settings
Expand Down Expand Up @@ -1589,9 +1610,6 @@ protocol = ws

#-------------------------------------------------------------------------------

[node_size]
medium

# This is primary persistent datastore for rippled. This includes transaction
# metadata, account states, and ledger headers. Helpful information can be
# found at https://xrpl.org/capacity-planning.html#node-db-type
Expand Down
11 changes: 0 additions & 11 deletions src/ripple/app/ledger/AcceptedLedger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,4 @@ AcceptedLedger::insert(AcceptedLedgerTx::ref at)
mMap.insert(std::make_pair(at->getIndex(), at));
}

AcceptedLedgerTx::pointer
AcceptedLedger::getTxn(int i) const
{
map_t::const_iterator it = mMap.find(i);

if (it == mMap.end())
return AcceptedLedgerTx::pointer();

return it->second;
}

} // namespace ripple
3 changes: 0 additions & 3 deletions src/ripple/app/ledger/AcceptedLedger.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,6 @@ class AcceptedLedger
return mMap.size();
}

AcceptedLedgerTx::pointer
getTxn(int) const;

AcceptedLedger(
std::shared_ptr<ReadView const> const& ledger,
Application& app);
Expand Down
4 changes: 1 addition & 3 deletions src/ripple/app/ledger/InboundLedgers.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
#define RIPPLE_APP_LEDGER_INBOUNDLEDGERS_H_INCLUDED

#include <ripple/app/ledger/InboundLedger.h>
#include <ripple/core/Stoppable.h>
#include <ripple/protocol/RippleLedgerHash.h>
#include <memory>

Expand Down Expand Up @@ -83,14 +82,13 @@ class InboundLedgers
sweep() = 0;

virtual void
onStop() = 0;
stop() = 0;
};

std::unique_ptr<InboundLedgers>
make_InboundLedgers(
Application& app,
InboundLedgers::clock_type& clock,
Stoppable& parent,
beast::insight::Collector::ptr const& collector);

} // namespace ripple
Expand Down
5 changes: 3 additions & 2 deletions src/ripple/app/ledger/InboundTransactions.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
#define RIPPLE_APP_LEDGER_INBOUNDTRANSACTIONS_H_INCLUDED

#include <ripple/beast/clock/abstract_clock.h>
#include <ripple/core/Stoppable.h>
#include <ripple/overlay/Peer.h>
#include <ripple/shamap/SHAMap.h>
#include <memory>
Expand Down Expand Up @@ -85,12 +84,14 @@ class InboundTransactions
*/
virtual void
newRound(std::uint32_t seq) = 0;

virtual void
stop() = 0;
};

std::unique_ptr<InboundTransactions>
make_InboundTransactions(
Application& app,
Stoppable& parent,
beast::insight::Collector::ptr const& collector,
std::function<void(std::shared_ptr<SHAMap> const&, bool)> gotSet);

Expand Down
24 changes: 14 additions & 10 deletions src/ripple/app/ledger/LedgerCleaner.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,41 +23,45 @@
#include <ripple/app/main/Application.h>
#include <ripple/beast/utility/Journal.h>
#include <ripple/beast/utility/PropertyStream.h>
#include <ripple/core/Stoppable.h>
#include <ripple/json/json_value.h>
#include <memory>

namespace ripple {
namespace detail {

/** Check the ledger/transaction databases to make sure they have continuity */
class LedgerCleaner : public Stoppable, public beast::PropertyStream::Source
class LedgerCleaner : public beast::PropertyStream::Source
{
protected:
explicit LedgerCleaner(Stoppable& parent);
LedgerCleaner() : beast::PropertyStream::Source("ledgercleaner")
{
}

public:
/** Destroy the object. */
virtual ~LedgerCleaner() = 0;
virtual ~LedgerCleaner() = default;

virtual void
start() = 0;

virtual void
stop() = 0;

/** Start a long running task to clean the ledger.
The ledger is cleaned asynchronously, on an implementation defined
thread. This function call does not block. The long running task
will be stopped if the Stoppable stops.
will be stopped by a call to stop().

Thread safety:
Safe to call from any thread at any time.

@param parameters A Json object with configurable parameters.
*/
virtual void
doClean(Json::Value const& parameters) = 0;
clean(Json::Value const& parameters) = 0;
};

std::unique_ptr<LedgerCleaner>
make_LedgerCleaner(Application& app, Stoppable& parent, beast::Journal journal);
make_LedgerCleaner(Application& app, beast::Journal journal);

} // namespace detail
} // namespace ripple

#endif
Loading