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-b9 #3708

Merged
merged 9 commits into from
Dec 21, 2020
Merged

Proposed 1.7.0-b9 #3708

merged 9 commits into from
Dec 21, 2020

Commits on Dec 17, 2020

  1. Persist API-configured voting settings:

    Prior to this commit, the amendments that a server would vote in support
    of or against could be configured both via the configuration file and
    via the command line "feature" command. Changes made in the configuration
    file would only be loaded once at server startup and changes made via the
    command line take effect immediately but are not persisted across
    restarts.
    
    This commit deprecates management of amendments via the configuration
    file and stores the relevant information in the `wallet.db` database
    file.
    
    1. On startup, the new code parses the configuration file.
    2. If the `[veto_amendments]` or `[amendments]` sections are present,
       we check if the `FeatureVotes` table is present in `wallet.db`.
    3. If it is not, we create the `FeatureVotes` table and transfer the
       settings from the config file.
    4. Proceed normally but only reference the `FeatureVotes` table instead
       of the config file.
    5. Warns if the voting table already exists in `wallet.db` and there
       exists voting sections in the config file. The config file is ignored
       in this case.
    
    This change addresses & closes #3366
    HowardHinnant authored and nbougalis committed Dec 17, 2020
    1 Configuration menu
    Copy the full SHA
    28ed2b9 View commit details
    Browse the repository at this point in the history
  2. Replace std::pmr with boost::pmr:

    gcc's implementation of `prm::synchronized_pool_resource` showed
    extremely poor performance compared with
    `boost::synchronized_pool_resouece`. Boost's implementation of pmr is
    now used in all cases (previously it was only used when a standard
    lib, like clang's, lacked an implementation of pmr).
    
    This patch also makes a minor change where inner nodes are constructed
    with sparse arrays, unless "dense" is explicitly requested.
    seelabs authored and nbougalis committed Dec 17, 2020
    Configuration menu
    Copy the full SHA
    7b19294 View commit details
    Browse the repository at this point in the history
  3. Rework deferred node logic and async fetch behavior

    This comment explains this patch and the associated patches
    that should be folded into it. This paragraph should be removed
    when the patches are folded after review.
    
    This change significantly improves ledger sync and fetch
    times while reducing memory consumption. The change affects
    the code from that begins with SHAMap::getMissingNodes and runs
    through to Database::threadEntry.
    
    The existing code issues a number of async fetches which are then
    handed off to the Database's pool of read threads to execute.
    The results of each read are placed in the Database's positive
    and negative caches. The caller waits for all reads to complete
    and then retrieves the results out of these caches.
    
    Among other issues, this means that the results of the first read
    cannot be processed until the last read completes. Additionally,
    all the results must sit in memory.
    
    This patch changes the behavior so that each read operation has a
    completion handler associated with it. The completion of the read
    calls the handler, allowing the results of each read to be
    processed as it completes. As this was the only reason the
    negative and positive caches were needed, they can now be removed.
    
    The read generation code is also no longer needed and is removed.
    The batch fetch logic was never implemented or supported and is
    removed.
    JoelKatz authored and nbougalis committed Dec 17, 2020
    Configuration menu
    Copy the full SHA
    02ccdeb View commit details
    Browse the repository at this point in the history

Commits on Dec 18, 2020

  1. Adjust time resolution of genesis ledger:

    Due to some quirky emergent behavior, the server can't really begin
    synching until twice the default close time resolution of the genesis
    ledger, which is 30 seconds, has passed. In effect, this causes a one
    minute delay.
    
    This commit adjusts the default close time resolution down to the
    minimum allowed resoluion of 10 seconds, so the corresponding delay
    is reduced by 67% down to 20 seconds. This should be enough time to
    ensure the server has reasonable connectivity without unduly delaying
    initial synch times.
    JoelKatz authored and nbougalis committed Dec 18, 2020
    Configuration menu
    Copy the full SHA
    6dd3d82 View commit details
    Browse the repository at this point in the history
  2. Reset corrupt / inconsistent dependency source folders:

    * Also display some more information about the build
    ximinez authored and nbougalis committed Dec 18, 2020
    Configuration menu
    Copy the full SHA
    1aaafeb View commit details
    Browse the repository at this point in the history
  3. Simplify travis config:

    * Move all the vcpkg windows dependency installations into one step.
    * Move the unmodified `before_install` step above the matrix to improve
      readability, because this step runs before any of the matrix steps.
    ximinez authored and nbougalis committed Dec 18, 2020
    Configuration menu
    Copy the full SHA
    6f7d413 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    42a068a View commit details
    Browse the repository at this point in the history
  5. Properly handle the "compression" flag:

    - Fix compression enable flag in the inbound peer
    - Fix compression algorithm fetching in protocol message
    gregtatcam authored and nbougalis committed Dec 18, 2020
    Configuration menu
    Copy the full SHA
    4159b02 View commit details
    Browse the repository at this point in the history
  6. Set version to 1.7.0-b9

    nbougalis committed Dec 18, 2020
    Configuration menu
    Copy the full SHA
    54da532 View commit details
    Browse the repository at this point in the history