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

[release-v2.0] main: Use backported mixing updates. #3431

Merged
merged 11 commits into from
Aug 28, 2024

Commits on Aug 28, 2024

  1. Configuration menu
    Copy the full SHA
    df7dfb4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    64837cf View commit details
    Browse the repository at this point in the history
  3. [release-v2.0] mixclient: Dont append to slice with non-zero length.

    Immediately appending to a slice initialized with a non-zero length will
    lead to a slice which is twice as large as intended, with the initial
    half of the entries being left at their zero value.
    
    This is fixed by initializing the slice with **capacity** instead of
    length.
    jholdstock authored and davecgh committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    931b851 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    55a0739 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d5dee23 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1f889ff View commit details
    Browse the repository at this point in the history
  7. [release-v2.0] mixclient: Remove submit queue channel

    The submit queue channel was not actually increasing any performance.
    (*peer).submit() would synchronously wait for all error results, and the call
    to (*Wallet).SubmitMixMessage was already synchronized by the mixpool mutex.
    
    Furthermore, this also fixes a deadlock that was observed after a mixing
    wallet with the RPC syncer mode reconnected to a restarted dcrd.  Pair request
    messages were being submitted onto the channel with the client mutex held in
    (*Client).Dicemix.  However, handleSubmitQueue had already exited and the
    client had not yet been restarted after dcrd reconnect, and was unable to be
    started due to the locked mutex.
    jrick authored and davecgh committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    31b72c3 View commit details
    Browse the repository at this point in the history
  8. [release-v2.0] mixclient: Do not submit PRs holding client mutex

    The client mutex was being held during the initial publishing of pair request
    messages to prevent a situation where a submit errored but the peer was still
    associated with the client, or the message was submitted to mixpool and sent
    to other peers but our local peer had not yet been associated to the client at
    the time an epoch tick occurred.  This should not be a situation we will
    encounter anymore, since the PR submissions are spaced out intentionally to
    avoid sending them close to the epoch.
    jrick authored and davecgh committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    7677cc9 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    b4e2266 View commit details
    Browse the repository at this point in the history
  10. [release-v2.0] mixclient: Use newest (fewest-PR) KEs to form alt sess…

    …ions
    
    The alternate session forming only incrementally removes PRs from the
    currently considered PR set.  Even if a PR by a responsive peer is known, if
    it was removed due to not passing the majority checks earlier, it will never
    be used by our peers during this epoch.  With that in mind, we should only use
    the most recent KEs with the lowest referenced PR counts when trying to form
    an alternate session, as the additional PRs from earlier KEs will never be
    reconsidered by that KE's identity.
    jrick authored and davecgh committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    b06a262 View commit details
    Browse the repository at this point in the history
  11. [release-v2.0] main: Use backported mixing updates.

    This updates the 2.0 release branch to use the latest version of the
    mixing module which includes updates to improve session formation and
    increase performance.
    
    In particular, the following updated module version is used:
    
    - github.com/decred/dcrd/mixing@v0.4.1
    davecgh committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    9b28257 View commit details
    Browse the repository at this point in the history