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.7.0-b5 #3684

Merged
merged 16 commits into from
Dec 5, 2020
Merged

Proposed 1.7.0-b5 #3684

merged 16 commits into from
Dec 5, 2020

Commits on Dec 4, 2020

  1. Use macros to instantiate most SField instances:

    There have been cases in the past where SFields have been defined
    in such a way that they did not follow our conventions.  In
    particular, the string representation of an SField should match
    the in-code name of the SField.
    
    This change leverages the preprocessor to encourage SFields to
    be properly constructed.
    
    The suffixes of SField types are changed to be the same as
    the suffixes of corresponding SerializedTypeIDs.  This allows
    The preprocessor to match types using simple name pasting.
    
    Since the string representation of the SField is part of our
    stable API, the name of sfPayChannel was changed to sfChannel.
    This change allows sfChannel to follow our conventions while
    making no changes to our external API.
    scottschurr authored and nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    17abca1 View commit details
    Browse the repository at this point in the history
  2. Switch to boost::shared_mutex:

    * Avoid std::shared_mutex bug on ubuntu 18.04
    * Fixes #3663
    HowardHinnant authored and nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    a3915fa View commit details
    Browse the repository at this point in the history
  3. Temper excessive warnings about historical shard

    capacity
    undertome authored and nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    7ddf856 View commit details
    Browse the repository at this point in the history
  4. Add finer-grained control for incoming & outgoing peer limits:

    This commit replaces the `peers_max` configuration element which had
    a predetermined split between incoming and outgoing connections with
    two new configuration options, `peers_in_max` and `peers_out_max`,
    which server operators can use to explicitly control the number of
    incoming and outgoing peer slots.
    gregtatcam authored and nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    bec6c62 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9bd6b24 View commit details
    Browse the repository at this point in the history
  6. Update Travis build matrix:

    The Travis build matrix included builds for gcc 7 and clang 7 which
    do not appear to have sufficient C++17 support to compile rippled
    any longer.
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    64191a4 View commit details
    Browse the repository at this point in the history
  7. Improve handling of peers that aren't synced:

    When evaluating the fitness and usefulness of an outbound peer, the code
    would incorrectly calculate the amount of time that the peer spent in
    a non-useful state.
    
    This commit, if merged, corrects the calculation and makes the timeout
    values configurable by server operators.
    
    Two new options are introduced in the 'overlay' stanza of the config
    file. The default values, in seconds, are:
    
    [overlay]
    max_unknown_time = 600
    max_diverged_time = 300
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    cba6b4a View commit details
    Browse the repository at this point in the history
  8. Reduce PING frequency and simplify logic:

    The existing code issues a PING to each peer every 8 seconds. While
    frequent PINGs allow us to estimate a peer's latency with a high
    degree of accuracy, this "inter-server polka dance" is inefficient
    and not useful. This commit, if merged, reduces the PING frequency
    to once every 60 seconds.
    
    Additionally, this commit simplifies the PING handling logic and
    merges the code used to check and disconnect peers which fail to
    track the network directly into the timer callback.
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    8c386ae View commit details
    Browse the repository at this point in the history
  9. Optimize peer I/O:

    - Limit the lifetime of a buffer that was only used in the early
      phases of peer connection establishment but which lived on as
      long as the peer was active.
    - Cache the message used to transfer manifests, so it can be reused
      instead of recreated for every peer connection.
    - Improve the reading of partial messages by passing a hint to the
      I/O layer if the number of bytes needed to complete the message
      is known.
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    57ffc58 View commit details
    Browse the repository at this point in the history
  10. Simplify SHAMapNodeID:

    The existing SHAMapNodeID object has both a valid and an invalid state
    and requirs callers to verify the state of an instance prior to using
    it. A simple set of changes removes that restriction and ensures that
    all instances are valid, making the code more robust.
    
    This change also:
    
    1. Introduces a new function to construct a SHAMapNodeID from a
       serialized blob; and
    2. Reduces the amount of constructors the class exposes.
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    ab77444 View commit details
    Browse the repository at this point in the history
  11. Simplify SHAMapTreeNode APIs:

    - Provide separate functions for serializing depending on whether
      one wants a "wire" version of a node, or one suitable for hashing.
    - Remove unused functions
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    4a444f7 View commit details
    Browse the repository at this point in the history
  12. Simplify & modernize code:

    - Simplify and consolidate code for parsing hex input.
    - Replace beast::endian::order with boost::endian::order.
    - Simplify CountedObject code.
    - Remove pre-C++17 workarounds in favor of C++17 based solutions.
    - Improve `base_uint` and simplify its hex-parsing interface by
      consolidating the `SexHex` and `SetHexExact` methods into one
      API: `parseHex` which forces callers to verify the result of
      the operation; as a result some public-facing API endpoints
      may now return errors when passed values that were previously
      accepted.
    - Remove the simple fallback implementations of SHA2 and RIPEMD
      introduced to reduce our dependency on OpenSSL. The code is
      slow and rarely, if ever, exercised and we rely on OpenSSL
      functionality for Boost.ASIO as well.
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    f072469 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    5def79e View commit details
    Browse the repository at this point in the history
  14. Refactor and improve the SHAMap code:

    This commit combines a number of cleanups, targeting both the
    code structure and the code logic. Large changes include:
    
     - Using more strongly-typed classes for SHAMap nodes, instead of relying
       on runtime-time detection of class types. This change saves 16 bytes
       of memory per node.
     - Improving the interface of SHAMap::addGiveItem and SHAMap::addItem to
       avoid the need for passing two bool arguments.
     - Documenting the "copy-on-write" semantics that SHAMap uses to
       efficiently track changes in individual nodes.
     - Removing unused code and simplifying several APIs.
     - Improving function naming.
    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    1bb294a View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    e39c452 View commit details
    Browse the repository at this point in the history
  16. Set version to 1.7.0-b5

    nbougalis committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    5c8e072 View commit details
    Browse the repository at this point in the history