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

[v0.14.0.x] Backport pending PRs #3046

Merged
merged 16 commits into from
Aug 13, 2019

Commits on Aug 7, 2019

  1. Configuration menu
    Copy the full SHA
    4286dde View commit details
    Browse the repository at this point in the history
  2. Backport bitcoin#12783: macOS: disable AppNap during sync (and mixing) (

    dashpay#3024)
    
    * Merge bitcoin#12783: macOS: disable AppNap during sync
    
    1e0f3c4 macOS: disable AppNap during sync (Alexey Ivanov)
    
    Pull request description:
    
      Code based on pull/5804. Tested only on macOS 10.13.3 and should support 10.9+.
    
      What macOS versions bitcoin core currently supports?
    
    Tree-SHA512: 85809b8d8d8a05169437b4268988da0b7372c29c6da3223ebdc106dc16dcb6d3caa5c52ace3591467005b50a63fd8b2ab1cb071cb4f450032932df25d5063315
    
    * Refactor
    
    * Drop `#include <memory>` from `src/qt/bitcoingui.h`
    
    Was included by mistake.
    UdjinM6 authored and codablock committed Aug 7, 2019
    Configuration menu
    Copy the full SHA
    ea8569e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    873ab89 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5af6ce9 View commit details
    Browse the repository at this point in the history
  5. Merge pull request dashpay#3028 from PastaPastaPasta/backport-12588

    Backport a couple of ZMQ fixes
    UdjinM6 authored and codablock committed Aug 7, 2019
    Configuration menu
    Copy the full SHA
    781b165 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    974055a View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    b1ffedb View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7ea319f View commit details
    Browse the repository at this point in the history
  9. Implement "quorum memberof" (dashpay#3004)

    * Implement BuildQuorumInfo and call it from quorum_info
    
    * Add type to result of BuildQuorumInfo
    
    * Implement "quorum memberof"
    codablock committed Aug 7, 2019
    Configuration menu
    Copy the full SHA
    99824a8 View commit details
    Browse the repository at this point in the history
  10. Add "isValidMember" and "memberIndex" to "quorum memberof" and allow …

    …to specify quorum scan count (dashpay#3009)
    
    * Add "isValidMember" and "memberIndex" to output of "quorum memberof"
    
    * Allow to specify how many quorums to scan for in "quorum memberof"
    codablock committed Aug 7, 2019
    Configuration menu
    Copy the full SHA
    9ac7a99 View commit details
    Browse the repository at this point in the history
  11. Optimize on-disk deterministic masternode storage to reduce size of e…

    …vodb (dashpay#3017)
    
    * Implement CompactFull() in CDBWrapper
    
    This allows to compact the whole DB in one go.
    
    * Implement more compact version of CDeterministicMNListDiff
    
    This introduces CDeterministicMNStateDiff which requires to only store
    fields on-disk which actually changed.
    
    * Avoid writing mnUniquePropertyMap to disk when storing snapshots
    
    This map can be rebuilt by simply using AddMN for each deserialized MN.
    
    * Implement Serialize/Unserialize in CScript
    
    This allows us to directly use READWRITE() on scripts and removes the need
    for the ugly cast to CScriptBase. This commit also changes all Dash specific
    uses of CScript to not use the cast.
    
    * Keep track of registeration counts and introduce internalID for masternodes
    
    The "internalId" is simply the number of MNs registered so far when the
    new MN is added. It is deterministic and stays the same forever.
    
    * Use internalId as keys in MN list diffs
    
    This reduces the used size on-disk.
    
    * Two simple speedups in MN list diff handling
    
    1. Avoid full compare if dmn or state pointers match in BuildDiff
    2. Use std::move when adding diff to listDiff in GetListForBlock
    
    * Implement upgrade code for old CDeterministicMNListDiff format to new format
    
    * Track tipIndex instead of tipHeight/tipBlockHash
    
    * Store and pass around CBlockIndex* instead of block hash and height
    
    This allows us to switch CDeterministicMNManager::GetListForBlock to work
    with CBlockIndex.
    
    * Refactor CDeterministicMNManager::GetListForBlock to require CBlockIndex*
    
    Instead of requiring a block hash. This allows us to remove blockHash and
    prevBlockHash from CDeterministicMNListDiff without the use of cs_main
    locks in GetListForBlock.
    
    * Remove prevBlockHash, blockHash and nHeight from CDeterministicMNListDiff
    
    * Remove access to determinisitcMNManager in CMasternodeMetaMan::ToString()
    
    The deterministic MN manager is not fully initialized yet at the time this
    is called, which results in an empty list being returned everytime.
    
    * Better logic to determine if an upgrade is needed
    
    Reuse the "best block" logic to figure out if an upgrade is needed. Also
    use it to ensure that older nodes are unable to start after the upgrade
    was performed.
    
    * Return null block hash if it was requested with getmnlistdiff
    
    * bump CGovernanceManager::SERIALIZATION_VERSION_STRING
    
    * Check SERIALIZATION_VERSION_STRING before deserializing anything else
    
    * Invoke Clear() before deserializing just to be sure
    codablock committed Aug 7, 2019
    Configuration menu
    Copy the full SHA
    013169d View commit details
    Browse the repository at this point in the history
  12. Show number of InstantSend locks in Debug Console (dashpay#2919)

    * Implement GetInstantSendLockCount in CInstantSendManager
    
    * Add islockCountChanged signal to client model
    
    * Show number of InstantSend locks in debug console
    codablock committed Aug 7, 2019
    Configuration menu
    Copy the full SHA
    a198a04 View commit details
    Browse the repository at this point in the history
  13. Use fEnablePrivateSend instead of fPrivateSendRunning

    Required due missing refactorings.
    codablock committed Aug 7, 2019
    Configuration menu
    Copy the full SHA
    a8fb825 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    2e0cf8a View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2019

  1. Remove recovered sigs from the LLMQ db when corresponding IS locks ge…

    …t confirmed (dashpay#3048)
    
    * Remove unused overload of RemoveInstantSendLock
    
    * Move deletion of recovered sigs into own method
    
    * Remove recovered sigs for fully confirmed IS locks
    
    * Also remove rs_t entries when removing recovered sigs from the outside
    
    CleanupOldRecoveredSigs already does this as the last step, but when
    RemoveRecoveredSig is called from the outside (e.g. from InstantSend),
    these keys are not removed. This PR fixes this by storing the write time
    into rs_r and later uses it to remove the rs_t entry.
    
    Old entries will be incompatible with this (1 byte written in the past,
    4 bytes written now). This checked by comparing the data size with
    sizeof(uint32_t).
    
    * Add TODO
    codablock committed Aug 12, 2019
    Configuration menu
    Copy the full SHA
    8c49d9b View commit details
    Browse the repository at this point in the history
  2. Re-verify invalid IS sigs when the active quorum set rotated (dashpay…

    …#3052)
    
    * Split ProcessPendingInstantSendLocks into two methods
    
    * Split SelectQuorumForSigning into SelectQuorumForSigning and GetActiveQuorumSet
    
    * Implement retrying of IS lock verification when the LLMQ active set rotates
    codablock committed Aug 12, 2019
    Configuration menu
    Copy the full SHA
    17ba238 View commit details
    Browse the repository at this point in the history