- [`fbd244dde`](https://github.com/dashpay/dash/commit/fbd244dde) Bail out in few more places when blockchain is not synced yet (#2888)
- [`fd6aaae7f`](https://github.com/dashpay/dash/commit/fd6aaae7f) Add proTxHash to masternode list rpc response (#2887)
- [`dd3977523`](https://github.com/dashpay/dash/commit/dd3977523) More "bench" log for Dash specific parts (#2884)
- [`8ffdcbf99`](https://github.com/dashpay/dash/commit/8ffdcbf99) A bunch of mostly trivial tweaks/fixes (#2889)
- [`195100161`](https://github.com/dashpay/dash/commit/195100161) New LLMQ-based IS should have no legacy IS strings in UI and no legacy restrictions (#2883)
- [`7f419ae7f`](https://github.com/dashpay/dash/commit/7f419ae7f) Accept non-spent LLMQ IS locked outpoints from mempool in PS mixing (#2878)
- [`2652030a2`](https://github.com/dashpay/dash/commit/2652030a2) Use larger nPruneAfterSizeIn parameter for mapAlreadyAskedFor (#2882)
- [`dcdb9dba1`](https://github.com/dashpay/dash/commit/dcdb9dba1) Add NotifyMasternodeListChanged signal to CClientUIInterface (#2880)
- [`19a9e2f4c`](https://github.com/dashpay/dash/commit/19a9e2f4c) Report `instantlock: true` for transactions locked via ChainLocks (#2877)
- [`5cfceab86`](https://github.com/dashpay/dash/commit/5cfceab86) Refactor IS-lock GUI notification and implement a similar one for ChainLocks (#2875)
- [`ed30db713`](https://github.com/dashpay/dash/commit/ed30db713) Ensure wallet is available and unlocked for some `governance` and `evo` RPCs (#2874)
- [`0c2fdf4da`](https://github.com/dashpay/dash/commit/0c2fdf4da) Refactor some Dash/mixing-specific wallet functions (#2850)
- [`22ae0bc21`](https://github.com/dashpay/dash/commit/22ae0bc21) Archive islock hashes when removing confirmed islocks (#2872)
- [`b322b4828`](https://github.com/dashpay/dash/commit/b322b4828) Wait longer until re-requesting recovered sigs and ISLOCKs from other peers (#2871)
- [`2502aadd7`](https://github.com/dashpay/dash/commit/2502aadd7) Fix infinite loop in CDBTransactionIterator::SkipDeletedAndOverwritten (#2870)
- [`cd94cbe6f`](https://github.com/dashpay/dash/commit/cd94cbe6f) Track which TXs are not locked yet and use this info in ProcessPendingRetryLockTxs (#2869)
- [`c4549aca2`](https://github.com/dashpay/dash/commit/c4549aca2) Change `quorum list` behaviour to list active quorums by default (#2866)
- [`cff9f9717`](https://github.com/dashpay/dash/commit/cff9f9717) Prefix all bls/quorum threads with `dash-` (#2865)
- [`5e865f9c8`](https://github.com/dashpay/dash/commit/5e865f9c8) Bump mempool counter on each successful IS lock (#2864)
- [`a67e66143`](https://github.com/dashpay/dash/commit/a67e66143) Don't disconnect peers on MNAUTH verification failure (#2868)
- [`1d8c7226d`](https://github.com/dashpay/dash/commit/1d8c7226d) Fix race condition in sendheaders.py (#2862)
- [`0c54e41f2`](https://github.com/dashpay/dash/commit/0c54e41f2) Retry locking of child TXs in batches instead of per locked parent (#2858)
- [`fbe44761c`](https://github.com/dashpay/dash/commit/fbe44761c) Don't wake up select if it was already woken up (#2863)
- [`7fe1a4a78`](https://github.com/dashpay/dash/commit/7fe1a4a78) Also invoke WriteInstantSendLockMined when IS lock comes after the mined block (#2861)
- [`f32f9523b`](https://github.com/dashpay/dash/commit/f32f9523b) Use lazy BLS signatures more often and don't always verify self-recovered sigs (#2860)
- [`5e8ae2ceb`](https://github.com/dashpay/dash/commit/5e8ae2ceb) Disable optimistic send in PushMessage by default (#2859)
- [`90b1b7196`](https://github.com/dashpay/dash/commit/90b1b7196) Move processing of InstantSend locks into its own worker thread (#2857)
- [`ae78360e5`](https://github.com/dashpay/dash/commit/ae78360e5) Add cache to CQuorumManager::ScanQuorums (#2856)
- [`241f76f9b`](https://github.com/dashpay/dash/commit/241f76f9b) Collection of minor performance optimizations (#2855)
- [`208406df7`](https://github.com/dashpay/dash/commit/208406df7) Re-introduce nInstantSendKeepLock check for LLMQ-based IS when spork19 is OFF (#2829)
- [`7d765a0fc`](https://github.com/dashpay/dash/commit/7d765a0fc) Track best block to later know if a DB upgrade is needed
- [`1a25c2084`](https://github.com/dashpay/dash/commit/1a25c2084) Apply suggestions from code review
- [`282cb697a`](https://github.com/dashpay/dash/commit/282cb697a) Use version 2 CCbTx in create_coinbase to fix test failures
- [`adc101a11`](https://github.com/dashpay/dash/commit/adc101a11) Implement quorum commitment merkle root tests in dip4-coinbasemerkleroots.py
- [`40ad06e77`](https://github.com/dashpay/dash/commit/40ad06e77) Return the fresh quorum hash from mine_quorum
- [`17b9318a0`](https://github.com/dashpay/dash/commit/17b9318a0) Mine SIGN_HEIGHT_OFFSET additional blocks after the quorum commitment
- [`5e832e2fa`](https://github.com/dashpay/dash/commit/5e832e2fa) Implement support for CbTx version 2 (with quorum merkle root)
- [`b1b41f02a`](https://github.com/dashpay/dash/commit/b1b41f02a) Fix a crash in mininode.py when inventory type is unknown
- [`44a3b9c90`](https://github.com/dashpay/dash/commit/44a3b9c90) Don't use pindex->GetBlockHash() in ProcessCommitment
- [`f9dbe3ed5`](https://github.com/dashpay/dash/commit/f9dbe3ed5) Track in which block a quorum commitment was mined
- [`ba459663b`](https://github.com/dashpay/dash/commit/ba459663b) Add deletedQuorums and newQuorums to CSimplifiedMNListEntry
- [`8f7929bed`](https://github.com/dashpay/dash/commit/8f7929bed) Implement and enforce quorum commitment merkle roots in coinbases
- [`07620746a`](https://github.com/dashpay/dash/commit/07620746a) Implement GetMined(AndActive)CommitmentsUntilBlock and use it in ScanQuorums
- [`d5250a333`](https://github.com/dashpay/dash/commit/d5250a333) Track at which height a quorum commitment was mined
- [`806948f90`](https://github.com/dashpay/dash/commit/806948f90) Store the full commitment in CQuorum
- [`ade5760a9`](https://github.com/dashpay/dash/commit/ade5760a9) Allow registering MNs without actually starting them
- [`ef6b6a1e6`](https://github.com/dashpay/dash/commit/ef6b6a1e6) Implement support for GETMNLISTD and MNLISTDIFF P2P message in mininode.py
- [`585b9c281`](https://github.com/dashpay/dash/commit/585b9c281) Make CBlock.get_merkle_root static
- [`1e0bdbc9b`](https://github.com/dashpay/dash/commit/1e0bdbc9b) Implement CPartialMerkleTree and CMerkleBlock in mininode.py
- [`d8778f555`](https://github.com/dashpay/dash/commit/d8778f555) Implement CService in mininode.py
- [`02480402b`](https://github.com/dashpay/dash/commit/02480402b) Implement deser_dyn_bitset and ser_dyn_bitset in mininode.py
- [`b0850fad0`](https://github.com/dashpay/dash/commit/b0850fad0) Do not skip pushing of vMatch and vHashes in CMerkleBlock (#2826)
- [`58589fb50`](https://github.com/dashpay/dash/commit/58589fb50) Trivial: Fix a couple typos (#2818)
- [`992922c49`](https://github.com/dashpay/dash/commit/992922c49) Specify DIP3 enforcement block height/hash for mainnet params
- [`a370bbfe3`](https://github.com/dashpay/dash/commit/a370bbfe3) Update immer library to current master (0a718d2d76bab6ebdcf43de943bd6c7d2dbfe2f9) (#2821)
- [`aae985746`](https://github.com/dashpay/dash/commit/aae985746) Update log categories in help message and in decomposition of "dash" category (#2792)
- [`7b76e7abb`](https://github.com/dashpay/dash/commit/7b76e7abb) Implement BIP9 style deployment for DIP8/ChainLocks and fix a bug with late headers (#2793)
- [`3ead8cd85`](https://github.com/dashpay/dash/commit/3ead8cd85) Fix potential travis failures due to network failures (#2795)
- [`02db06658`](https://github.com/dashpay/dash/commit/02db06658) Fix loop in CLLMQUtils::GetQuorumConnections to add at least 2 connections (#2796)
- [`071b60ded`](https://github.com/dashpay/dash/commit/071b60ded) Bump MAX_OUTBOUND_MASTERNODE_CONNECTIONS to 250 on masternodes (#2791)
- [`0ed5ae05a`](https://github.com/dashpay/dash/commit/0ed5ae05a) Fix bug in GetNextMasternodeForPayment (#2789)
- [`7135f01a1`](https://github.com/dashpay/dash/commit/7135f01a1) Fix revoke reason check for ProUpRevTx (#2787)
- [`658ce9eff`](https://github.com/dashpay/dash/commit/658ce9eff) Apply Bloom filters to DIP2 transactions extra payload (#2786)
- [`a1e4ac21f`](https://github.com/dashpay/dash/commit/a1e4ac21f) Disable logging of libevent debug messages (#2794)
- [`9a1362abd`](https://github.com/dashpay/dash/commit/9a1362abd) Introduce SENDDSQUEUE to indicate that a node is interested in DSQ messages (#2785)
- [`9e70209e4`](https://github.com/dashpay/dash/commit/9e70209e4) Honor bloom filters when announcing LLMQ based IS locks (#2784)
- [`12274e578`](https://github.com/dashpay/dash/commit/12274e578) Introduce "qsendrecsigs" to indicate that plain recovered sigs should be sent (#2783)
- [`60a91848a`](https://github.com/dashpay/dash/commit/60a91848a) Skip mempool.dat when wallet is starting in "zap" mode (#2782)
- [`b87821047`](https://github.com/dashpay/dash/commit/b87821047) Make LLMQ/InstantSend/ChainLocks code less spammy (#2781)
- [`591b0185c`](https://github.com/dashpay/dash/commit/591b0185c) Bump proto version and only send LLMQ related messages to v14 nodes (#2780)
- [`c3602372c`](https://github.com/dashpay/dash/commit/c3602372c) Implement retroactive IS locking of transactions first seen in blocks instead of mempool (#2770)
- [`9df6acdc2`](https://github.com/dashpay/dash/commit/9df6acdc2) Disable in-wallet miner for win/macos Travis/Gitian builds (#2778)
- [`5299d3933`](https://github.com/dashpay/dash/commit/5299d3933) Multiple refactorings/fixes for LLMQ bases InstantSend and ChainLocks (#2779)
- [`a5d2edbe0`](https://github.com/dashpay/dash/commit/a5d2edbe0) Relay spork after updating internal spork maps (#2777)
- [`e52763d21`](https://github.com/dashpay/dash/commit/e52763d21) Refactor and fix instantsend tests/utils (#2776)
- [`25205fd46`](https://github.com/dashpay/dash/commit/25205fd46) RPC - Remove P2PKH message from protx help (#2773)
- [`a69a5cf4a`](https://github.com/dashpay/dash/commit/a69a5cf4a) Use smaller (3 out of 5) quorums for regtest/Travis (#2774)
- [`396ebc2dc`](https://github.com/dashpay/dash/commit/396ebc2dc) Fix tests after 2768 (#2772)
- [`6f90cf7a1`](https://github.com/dashpay/dash/commit/6f90cf7a1) Merge bitcoin#9602: Remove coin age priority and free transactions - implementation (#2768)
- [`3a1aeb000`](https://github.com/dashpay/dash/commit/3a1aeb000) Multiple fixes/refactorings for ChainLocks (#2765)
- [`152a78eab`](https://github.com/dashpay/dash/commit/152a78eab) Add compatibility code to P2PFingerprintTest until we catch up with backports
- [`72af215a3`](https://github.com/dashpay/dash/commit/72af215a3) Fix CreateNewBlock_validity by not holding cs_main when calling createAndProcessEmptyBlock
- [`95192d5b5`](https://github.com/dashpay/dash/commit/95192d5b5) Require no cs_main lock for ProcessNewBlock/ActivateBestChain
- [`2eb553174`](https://github.com/dashpay/dash/commit/2eb553174) Avoid cs_main in net_processing ActivateBestChain calls
- [`f69c4370d`](https://github.com/dashpay/dash/commit/f69c4370d) Refactor ProcessGetData in anticipation of avoiding cs_main for ABC
- [`7f54372bb`](https://github.com/dashpay/dash/commit/7f54372bb) Create new mutex for orphans, no cs_main in PLV::BlockConnected
- [`6085de378`](https://github.com/dashpay/dash/commit/6085de378) Add ability to assert a lock is not held in DEBUG_LOCKORDER
- [`9344dee8a`](https://github.com/dashpay/dash/commit/9344dee8a) Merge #11580: Do not send (potentially) invalid headers in response to getheaders
- [`d1a602260`](https://github.com/dashpay/dash/commit/d1a602260) Merge #11113: [net] Ignore getheaders requests for very old side blocks
- [`d1db98c67`](https://github.com/dashpay/dash/commit/d1db98c67) Merge #9665: Use cached [compact] blocks to respond to getdata messages
- [`0905b911d`](https://github.com/dashpay/dash/commit/0905b911d) Actually use cached most recent compact block
- [`cd0f94fb5`](https://github.com/dashpay/dash/commit/cd0f94fb5) Give wait_for_quorum_phase more time
- [`4ae52758b`](https://github.com/dashpay/dash/commit/4ae52758b) Remove size check in CDKGSessionManager::GetVerifiedContributions
- [`e21da2d99`](https://github.com/dashpay/dash/commit/e21da2d99) Move simple PoSe tests into llmq-simplepose.py
- [`6488135f4`](https://github.com/dashpay/dash/commit/6488135f4) Track index into self.nodes in mninfo
- [`f30ea6dfd`](https://github.com/dashpay/dash/commit/f30ea6dfd) Replace BITCOIN_UNORDERED_LRU_CACHE_H with DASH_UNORDERED_LRU_CACHE_H
- [`f351145e6`](https://github.com/dashpay/dash/commit/f351145e6) Use GetVoteForId instead of maintaining votes on inputs
- [`d4cf78fe2`](https://github.com/dashpay/dash/commit/d4cf78fe2) Add HasVotedOnId/GetVoteForId to CSigningManager
- [`43e1bf674`](https://github.com/dashpay/dash/commit/43e1bf674) Add key prefix to "rs_" for CRecoveredSigsDb keys
- [`61e10f651`](https://github.com/dashpay/dash/commit/61e10f651) Use llmqDb for CRecoveredSigsDb
- [`b2cd1db40`](https://github.com/dashpay/dash/commit/b2cd1db40) Don't use CEvoDB in CDKGSessionManager and instead use llmqDb
- [`e2cad1bd6`](https://github.com/dashpay/dash/commit/e2cad1bd6) Introduce global llmq::llmqDb instance of CDBWrapper
- [`acb52f6ec`](https://github.com/dashpay/dash/commit/acb52f6ec) Don't pass CEvoDB to CDKGSessionHandler and CDKGSession
- [`06fc65559`](https://github.com/dashpay/dash/commit/06fc65559) Actually remove from finalInstantSendLocks in CInstantSendManager::RemoveFinalISLock
- [`041a1c26d`](https://github.com/dashpay/dash/commit/041a1c26d) Move safe TX checks into TestForBlock and TestPackageTransactions
- [`4d3365ddb`](https://github.com/dashpay/dash/commit/4d3365ddb) Completely disable InstantSend while filling mempool in autoix-mempool.py
- [`fae33e03a`](https://github.com/dashpay/dash/commit/fae33e03a) Let ProcessPendingReconstructedRecoveredSigs return void instead of bool
- [`f8f867a6b`](https://github.com/dashpay/dash/commit/f8f867a6b) Sync blocks after generating in mine_quorum()
- [`3e60d2d2d`](https://github.com/dashpay/dash/commit/3e60d2d2d) Adjust LLMQ based InstantSend tests for new spork20
- [`41a71fe44`](https://github.com/dashpay/dash/commit/41a71fe44) update autoix-mempool.py to test both "old" and "new" InstantSend (and fix CheckCanLock to respect mempool limits)
- [`843b6d7a9`](https://github.com/dashpay/dash/commit/843b6d7a9) update p2p-autoinstantsend.py to test both "old" and "new" InstantSend
- [`a8da11ac5`](https://github.com/dashpay/dash/commit/a8da11ac5) update p2p-instantsend.py to test both "old" and "new" InstantSend
- [`55152cb31`](https://github.com/dashpay/dash/commit/55152cb31) Move IS block filtering into ConnectBlock
- [`2299ee283`](https://github.com/dashpay/dash/commit/2299ee283) Rename IXLOCK to ISLOCK and InstantX to InstantSend
- [`f5dcb00ac`](https://github.com/dashpay/dash/commit/f5dcb00ac) Introduce spork SPORK_20_INSTANTSEND_LLMQ_BASED to switch between new/old system
- [`280690792`](https://github.com/dashpay/dash/commit/280690792) Combine loops in CChainLocksHandler::NewPoWValidBlock
- [`9e9081110`](https://github.com/dashpay/dash/commit/9e9081110) Add override keywork to CDSNotificationInterface::NotifyChainLock
- [`e2f99f4ae`](https://github.com/dashpay/dash/commit/e2f99f4ae) Set llmqForInstantSend for mainnet and testnet
- [`5b8344e8f`](https://github.com/dashpay/dash/commit/5b8344e8f) Use scheduleFromNow instead of schedule+boost::chrono
- [`f44f09ca0`](https://github.com/dashpay/dash/commit/f44f09ca0) Fix crash in BlockAssembler::addPackageTxs
- [`2a7a5c633`](https://github.com/dashpay/dash/commit/2a7a5c633) Only sign ChainLocks when all included TXs are "safe"
- [`96291e7a0`](https://github.com/dashpay/dash/commit/96291e7a0) Cheaper/Faster bailout from TrySignChainTip when already signed before
- [`0a5e8eb86`](https://github.com/dashpay/dash/commit/0a5e8eb86) Move ChainLock signing into TrySignChainTip and call it periodically
- [`bd7edc8ae`](https://github.com/dashpay/dash/commit/bd7edc8ae) Track txids of new blocks and first-seen time of TXs in CChainLocksHandler
- [`7945192ff`](https://github.com/dashpay/dash/commit/7945192ff) Enforce IX locks from the new system
- [`dc97835ec`](https://github.com/dashpay/dash/commit/dc97835ec) Disable explicit lock requests when the new IX system is active
- [`68cfdc932`](https://github.com/dashpay/dash/commit/68cfdc932) Also call ProcessTx from sendrawtransaction and RelayWalletTransaction
- [`1d2d370cd`](https://github.com/dashpay/dash/commit/1d2d370cd) Whenever we check for locked TXs, also check for the new system having a lock
- [`3a6cc2cc1`](https://github.com/dashpay/dash/commit/3a6cc2cc1) Show "verified via LLMQ based InstantSend" in GUI TX status
- [`34a8b2997`](https://github.com/dashpay/dash/commit/34a8b2997) Disable old IX code when the new system is active
- [`5ff4db0a0`](https://github.com/dashpay/dash/commit/5ff4db0a0) Downgrade TXLOCKREQUEST to TX when new IX system is active
- [`1959f3e4a`](https://github.com/dashpay/dash/commit/1959f3e4a) Handle incoming TXs by calling CInstantXManager::ProcessTx
- [`83dbcc483`](https://github.com/dashpay/dash/commit/83dbcc483) Implement CInstantSendManager and related P2P messages
- [`5bbc12274`](https://github.com/dashpay/dash/commit/5bbc12274) Implement PushReconstructedRecoveredSig in CSigningManager
- [`2bbac8ff7`](https://github.com/dashpay/dash/commit/2bbac8ff7) Introduce NotifyChainLock signal and invoke it when CLSIGs get processed
- [`e47af29d4`](https://github.com/dashpay/dash/commit/e47af29d4) Fix "chainlock" in WalletTxToJSON (#2748)
- [`e21d8d6b9`](https://github.com/dashpay/dash/commit/e21d8d6b9) Fix error message for invalid voting addresses (#2747)
- [`80891ee6f`](https://github.com/dashpay/dash/commit/80891ee6f) Make -masternodeblsprivkey mandatory when -masternode is given (#2745)
- [`521d4ae08`](https://github.com/dashpay/dash/commit/521d4ae08) Implement 2-stage commit for CEvoDB to avoid inconsistencies after crashes (#2744)
- [`e63cdadc9`](https://github.com/dashpay/dash/commit/e63cdadc9) Add a button/context menu items to show QR codes for addresses (#2741)
- [`b6177740c`](https://github.com/dashpay/dash/commit/b6177740c) Add collateraladdress into masternode/protx list rpc output (#2740)
- [`b5466e20a`](https://github.com/dashpay/dash/commit/b5466e20a) Add "chainlock" field to more rpcs (#2743)
- [`8dd934922`](https://github.com/dashpay/dash/commit/8dd934922) Don't be too harsh for invalid CLSIGs (#2742)
- [`a34fb6d6f`](https://github.com/dashpay/dash/commit/a34fb6d6f) Fix banning when local node doesn't have the vvec (#2739)
- [`4a495c6b4`](https://github.com/dashpay/dash/commit/4a495c6b4) Only include selected TX types into CMerkleBlock (#2737)
- [`0db2d1596`](https://github.com/dashpay/dash/commit/0db2d1596) code review and reset file perms
- [`f971da831`](https://github.com/dashpay/dash/commit/f971da831) Stop g_connman first before deleting it (#2734)
- [`9eb0ca704`](https://github.com/dashpay/dash/commit/9eb0ca704) Ignore sig share inv messages when we don't have the quorum vvec (#2733)
- [`080b59a57`](https://github.com/dashpay/dash/commit/080b59a57) Backport bitcoin#14385: qt: avoid system harfbuzz and bz2 (#2732)
- [`2041186f4`](https://github.com/dashpay/dash/commit/2041186f4) On timeout, print members proTxHashes from members which did not send a share (#2731)
- [`ea90296b6`](https://github.com/dashpay/dash/commit/ea90296b6) Actually start the timers for sig share and recSig verification (#2730)
- [`5c84cab0f`](https://github.com/dashpay/dash/commit/5c84cab0f) Send/Receive multiple messages as part of one P2P message in CSigSharesManager (#2729)
- [`d2573c43b`](https://github.com/dashpay/dash/commit/d2573c43b) Only return from wait_for_chainlock when the block is actually processed (#2728)
- [`6ac49da24`](https://github.com/dashpay/dash/commit/6ac49da24) Send QSIGSESANN messages when sending first message for a session
- [`8ce8cb9ca`](https://github.com/dashpay/dash/commit/8ce8cb9ca) Remove MarkXXX methods from CSigSharesNodeState
- [`fa25728ca`](https://github.com/dashpay/dash/commit/fa25728ca) Use new sessionId based session management in CSigSharesManager
- [`34e3f8eb5`](https://github.com/dashpay/dash/commit/34e3f8eb5) Implement session management based on session ids and announcements
- [`7372f6f10`](https://github.com/dashpay/dash/commit/7372f6f10) Move RebuildSigShare from CBatchedSigShares to CSigSharesManager
- [`c4a3cd6a1`](https://github.com/dashpay/dash/commit/c4a3cd6a1) Merge #8665: Assert all the things!
- [`b09e3e080`](https://github.com/dashpay/dash/commit/b09e3e080) Merge #9977: QA: getblocktemplate_longpoll.py should always use >0 fee tx
- [`e8df27f8e`](https://github.com/dashpay/dash/commit/e8df27f8e) Merge #9984: devtools: Make github-merge compute SHA512 from git, instead of worktree
- [`c55e019bf`](https://github.com/dashpay/dash/commit/c55e019bf) Merge #9940: Fix verify-commits on OSX, update for new bad Tree-SHA512, point travis to different keyservers
- [`f9a2e4c4f`](https://github.com/dashpay/dash/commit/f9a2e4c4f) Merge #9514: release: Windows signing script
- [`ee2048ae4`](https://github.com/dashpay/dash/commit/ee2048ae4) Merge #9830: Add safe flag to listunspent result
- [`7a192e2e4`](https://github.com/dashpay/dash/commit/7a192e2e4) Optimize sleeping behavior in CSigSharesManager::WorkThreadMain (#2707)
- [`d7bd0954f`](https://github.com/dashpay/dash/commit/d7bd0954f) Use pipe() together with fcntl instead of pipe2()
- [`742a25898`](https://github.com/dashpay/dash/commit/742a25898) Implement caching in CRecoveredSigsDb
- [`500b9c89a`](https://github.com/dashpay/dash/commit/500b9c89a) Use CBLSLazySignature in CBatchedSigShares
- [`02b68885a`](https://github.com/dashpay/dash/commit/02b68885a) Implement CBLSLazySignature for lazy serialization/deserialization
- [`6e8f50aa5`](https://github.com/dashpay/dash/commit/6e8f50aa5) Faster default-initialization of BLS primitives by re-using the null-hash
- [`c03480d20`](https://github.com/dashpay/dash/commit/c03480d20) Disable optimistic sending when pushing sig share related messages
- [`acb87895f`](https://github.com/dashpay/dash/commit/acb87895f) Implement WakeupSelect() to allow preliminary wakeup after message push
- [`cf2932098`](https://github.com/dashpay/dash/commit/cf2932098) Allow to disable optimistic send in PushMessage()
- [`bedfc262e`](https://github.com/dashpay/dash/commit/bedfc262e) Rework handling of CSigSharesManager worker thread (#2703)
- [`3e4286a58`](https://github.com/dashpay/dash/commit/3e4286a58) Less cs_main locks in quorums (#2702)
- [`3bbc75fc4`](https://github.com/dashpay/dash/commit/3bbc75fc4) Reintroduce spork15 so that it's relayed by 0.14 nodes (#2701)
- [`b71a3f48d`](https://github.com/dashpay/dash/commit/b71a3f48d) Remove not used and not implemented methods from net.h (#2700)
- [`c0cb27465`](https://github.com/dashpay/dash/commit/c0cb27465) Fix incorrect usage of begin() when genesis block is requested in "protx diff" (#2699)
- [`b239bb24a`](https://github.com/dashpay/dash/commit/b239bb24a) Do not process blocks in CDeterministicMNManager before dip3 activation (#2698)
- [`86fc05049`](https://github.com/dashpay/dash/commit/86fc05049) Drop no longer used code and bump min protos (#2697)
- [`fef8e5d45`](https://github.com/dashpay/dash/commit/fef8e5d45) A small overhaul of the way MN list/stats UI and data are tied together (#2696)
- [`90bb3ca2f`](https://github.com/dashpay/dash/commit/90bb3ca2f) Backport #14701: build: Add CLIENT_VERSION_BUILD to CFBundleGetInfoString (#2687)
- [`00f904ec7`](https://github.com/dashpay/dash/commit/00f904ec7) Change the way invalid ProTxes are handled in `addUnchecked` and `existsProviderTxConflict` (#2691)
- [`5478183e7`](https://github.com/dashpay/dash/commit/5478183e7) Call existsProviderTxConflict after CheckSpecialTx (#2690)
- [`1be5a72a9`](https://github.com/dashpay/dash/commit/1be5a72a9) Merge #9853: Fix error codes from various RPCs
- [`1bfc069e3`](https://github.com/dashpay/dash/commit/1bfc069e3) Merge #9575: Remove unused, non-working RPC PostCommand signal
- [`e53da66b2`](https://github.com/dashpay/dash/commit/e53da66b2) Merge #9936: [trivial] Fix three typos introduced into walletdb.h in commit 7184e25
- [`2121ba776`](https://github.com/dashpay/dash/commit/2121ba776) Merge #9945: Improve logging in bctest.py if there is a formatting mismatch
- [`b1d64f3a1`](https://github.com/dashpay/dash/commit/b1d64f3a1) Merge #9548: Remove min reasonable fee
- [`1c08f9a5f`](https://github.com/dashpay/dash/commit/1c08f9a5f) Merge #9369: Factor out CWallet::nTimeSmart computation into a method.
- [`9a3067115`](https://github.com/dashpay/dash/commit/9a3067115) fix compile error caused by #9605
- [`7e4257254`](https://github.com/dashpay/dash/commit/7e4257254) Allow to override llmqChainLocks with "-llmqchainlocks" on devnet (#2683)
- [`bed57cfbf`](https://github.com/dashpay/dash/commit/bed57cfbf) Stop checking MN protocol version before signalling DIP3 (#2684)
- [`8d249d4df`](https://github.com/dashpay/dash/commit/8d249d4df) Merge #9605: Use CScheduler for wallet flushing, remove ThreadFlushWalletDB
- [`9c8c12ed4`](https://github.com/dashpay/dash/commit/9c8c12ed4) devtools: Fix a syntax error typo
- [`8a436ec36`](https://github.com/dashpay/dash/commit/8a436ec36) Merge #9932: Fix verify-commits on travis and always check top commit's tree
- [`31267f4c8`](https://github.com/dashpay/dash/commit/31267f4c8) Merge #9555: [test] Avoid reading a potentially uninitialized variable in tx_invalid-test (transaction_tests.cpp)
- [`29532ba19`](https://github.com/dashpay/dash/commit/29532ba19) Implement and enforce ChainLocks
- [`2bf6eb1c7`](https://github.com/dashpay/dash/commit/2bf6eb1c7) Track parent->child relations for blocks
- [`04a51c9ef`](https://github.com/dashpay/dash/commit/04a51c9ef) Use a block that is 8 blocks in the past for SelectQuorumForSigning
- [`cf33efc9e`](https://github.com/dashpay/dash/commit/cf33efc9e) Move SelectQuorumForSigning into CSigningManager and make it height based
- [`4026ea203`](https://github.com/dashpay/dash/commit/4026ea203) Implement VerifyRecoveredSig to allow verifcation of sigs found in P2P messages
- [`9f211ef12`](https://github.com/dashpay/dash/commit/9f211ef12) Add listener interface to listen for recovered sigs
- [`189cee210`](https://github.com/dashpay/dash/commit/189cee210) Don't pass poolSize to SelectQuorum and instead use consensus params
- [`13855674d`](https://github.com/dashpay/dash/commit/13855674d) Add missing new-line character in log output
- [`d31edf66a`](https://github.com/dashpay/dash/commit/d31edf66a) Wait for script checks to finish before messing with txes in Dash-specific way (#2652)
- [`2c477b0d4`](https://github.com/dashpay/dash/commit/2c477b0d4) Fix no_wallet for rpcmasternode/rpcevo
- [`fc00b7bae`](https://github.com/dashpay/dash/commit/fc00b7bae) add import to rpcevo fixing backport 8775
- [`30b03863e`](https://github.com/dashpay/dash/commit/30b03863e) Apply suggestions from code review #2646
- [`c70aa6079`](https://github.com/dashpay/dash/commit/c70aa6079) change #8775 to keep dash codebase improvement, but still backport #9908
- [`afdb0a267`](https://github.com/dashpay/dash/commit/afdb0a267) Merge #9908: Define 7200 second timestamp window constant
- [`316b6bf0d`](https://github.com/dashpay/dash/commit/316b6bf0d) Faster re-requesting of recovered sigs
- [`c38f889e7`](https://github.com/dashpay/dash/commit/c38f889e7) Implement processing, verifcation and propagation of signature shares
- [`43fd1b352`](https://github.com/dashpay/dash/commit/43fd1b352) Implement CSigningManager to process and propagage recovered signatures
- [`56ee83a76`](https://github.com/dashpay/dash/commit/56ee83a76) Add ReadDataStream to CDBWrapper to allow manual deserialization
- [`b6346a2f6`](https://github.com/dashpay/dash/commit/b6346a2f6) Implement CBLSInsecureBatchVerifier for convenient batch verification
- [`dd8f24588`](https://github.com/dashpay/dash/commit/dd8f24588) Implement IsBanned to allow checking for banned nodes outside of net_processing.cpp
- [`49de41726`](https://github.com/dashpay/dash/commit/49de41726) Implement CFixedVarIntsBitSet and CAutoBitSet
- [`76a58f5a4`](https://github.com/dashpay/dash/commit/76a58f5a4) Add `src/bls/*.h` and .cpp to CMakeLists.txt
- [`b627528ce`](https://github.com/dashpay/dash/commit/b627528ce) Use void as return type for WriteContributions
- [`edac100f5`](https://github.com/dashpay/dash/commit/edac100f5) Fix "quorum" RPCs help and unify logic in the sub-commands RPC entry point
- [`217f3941d`](https://github.com/dashpay/dash/commit/217f3941d) Skip starting of cache populator thread in case we don't have a valid vvec
- [`679a9895b`](https://github.com/dashpay/dash/commit/679a9895b) Add comments about why it's ok to ignore some failures
- [`15c34ccbd`](https://github.com/dashpay/dash/commit/15c34ccbd) Implement CQuorum and CQuorumManager
- [`8e4fe3660`](https://github.com/dashpay/dash/commit/8e4fe3660) [PrivateSend] Fallback to less participants if possible, fix too long timeouts on server side (#2616)
- [`ee808d819`](https://github.com/dashpay/dash/commit/ee808d819) Add checkbox to show only masternodes the wallet has keys for (#2627)
- [`fff50af3c`](https://github.com/dashpay/dash/commit/fff50af3c) Revert "Set CLIENT_VERSION_IS_RELEASE to true (#2591)"
- [`fed4716c0`](https://github.com/dashpay/dash/commit/fed4716c0) Remove support for "0" as an alternative to "" when the default is requested (#2622)
- [`8b7771a31`](https://github.com/dashpay/dash/commit/8b7771a31) Add some `const`s
- [`0b1347c0d`](https://github.com/dashpay/dash/commit/0b1347c0d) Pass self-created message to CDKGPendingMessages instead of processing them
- [`02c7932f4`](https://github.com/dashpay/dash/commit/02c7932f4) Add owner and voting addresses to rpc output, unify it across different methods (#2618)
- [`c948c0ff3`](https://github.com/dashpay/dash/commit/c948c0ff3) Fix help for optional parameters in "quorum dkgstatus"
- [`957652bf3`](https://github.com/dashpay/dash/commit/957652bf3) Fix help for "quorum dkgstatus" and remove support for "0" proTxHash
- [`b7b436b7d`](https://github.com/dashpay/dash/commit/b7b436b7d) Apply review suggestions to rpcquorums.cpp
- [`3fe991063`](https://github.com/dashpay/dash/commit/3fe991063) Drop unused overload of GetMasternodeQuorums
- [`5daeedabf`](https://github.com/dashpay/dash/commit/5daeedabf) Batched logger should not break log parsing
- [`2aed51c55`](https://github.com/dashpay/dash/commit/2aed51c55) Give nodes more time per phase when doing PoSe tests
- [`5958f8b81`](https://github.com/dashpay/dash/commit/5958f8b81) Remove dkgRndSleepTime from consensus params and make sleeping it non-random
- [`0dae46c2f`](https://github.com/dashpay/dash/commit/0dae46c2f) Move RandBool() into random.h/cpp
- [`f95aae2b3`](https://github.com/dashpay/dash/commit/f95aae2b3) Remove all legacy/compatibility MN code (#2600)
- [`0e28f0aa9`](https://github.com/dashpay/dash/commit/0e28f0aa9) Fix flaky autoix tests by disabling autoix while filling mempool (#2595)
- [`78c22ad0f`](https://github.com/dashpay/dash/commit/78c22ad0f) Multiple fixes for "masternode list"
- [`e54f6b274`](https://github.com/dashpay/dash/commit/e54f6b274) Use ban score of 10 for invalid DSQ sigs
- [`536229d17`](https://github.com/dashpay/dash/commit/536229d17) Apply suggestions from code review
- [`75024e117`](https://github.com/dashpay/dash/commit/75024e117) Merge #10365: [tests] increase timeouts in sendheaders test
- [`1efd77358`](https://github.com/dashpay/dash/commit/1efd77358) Remove non-DIP3 code path in CMasternodePayments::IsScheduled
- [`4c749b7e9`](https://github.com/dashpay/dash/commit/4c749b7e9) Directly use deterministicMNManager in "masternode list"
- [`0fe97a045`](https://github.com/dashpay/dash/commit/0fe97a045) Remove support for "masternode list rank"
- [`adc2ec225`](https://github.com/dashpay/dash/commit/adc2ec225) Remove unsupported types/fields from "masternode list"
- [`4b150e72f`](https://github.com/dashpay/dash/commit/4b150e72f) Directly use deterministicMNManager instead of mnodeman.CountXXX
- [`4c3bb7304`](https://github.com/dashpay/dash/commit/4c3bb7304) Remove call to mnodeman.PoSeBan
- [`0594cd719`](https://github.com/dashpay/dash/commit/0594cd719) Remove code that is incompatible now due to GetMasternodeRanks returning DMNs now
- [`37541ee00`](https://github.com/dashpay/dash/commit/37541ee00) Change GetMasternodeScores and GetMasternodeRank/s to use CDeterministicMNCPtr
- [`17c792cd3`](https://github.com/dashpay/dash/commit/17c792cd3) Remove MN upgrade check in ComputeBlockVersion
- [`71a695100`](https://github.com/dashpay/dash/commit/71a695100) Move logic from FindRandomNotInVec into GetRandomNotUsedMasternode
- [`2f66d6ada`](https://github.com/dashpay/dash/commit/2f66d6ada) Replace uses of mnodeman in PS code when deterministicMNManager can be used directly
- [`eedb15845`](https://github.com/dashpay/dash/commit/eedb15845) Remove use of mnodeman.GetMasternodeInfo from IX code
- [`fb13b000b`](https://github.com/dashpay/dash/commit/fb13b000b) Remove support for legacy operator keys in CPrivateSendBroadcastTx
- [`5f5fcc49c`](https://github.com/dashpay/dash/commit/5f5fcc49c) Remove legacy signatures support in CPrivateSendQueue
- [`da924519a`](https://github.com/dashpay/dash/commit/da924519a) Remove support for legacy signatures in CTxLockVote
- [`2b2e4f45d`](https://github.com/dashpay/dash/commit/2b2e4f45d) Remove a few uses of mnodeman from governance code
- [`14d8ce03c`](https://github.com/dashpay/dash/commit/14d8ce03c) Don't use GetMasternodeInfo in CTxLockVote::IsValid
- [`1ff241881`](https://github.com/dashpay/dash/commit/1ff241881) Directly use deterministicMNManager in some places
- [`45f34e130`](https://github.com/dashpay/dash/commit/45f34e130) Implement HasValidMN, HasValidMNByCollateral and GetValidMNByCollateral
- [`bc29fe160`](https://github.com/dashpay/dash/commit/bc29fe160) Remove compatibility code from governance RPCs and directly use deterministicMNManager
- [`b49ef5d71`](https://github.com/dashpay/dash/commit/b49ef5d71) Directly use deterministicMNManager when processing DSTX
- [`ae229e283`](https://github.com/dashpay/dash/commit/ae229e283) Directly use deterministicMNManager in CGovernanceManager::GetCurrentVotes
- [`96e0385db`](https://github.com/dashpay/dash/commit/96e0385db) Let "masternode winner/current" directly use deterministicMNManager
- [`82745dd07`](https://github.com/dashpay/dash/commit/82745dd07) Use DIP3 MNs in auto-IX tests (#2588)
- [`ce5a51134`](https://github.com/dashpay/dash/commit/ce5a51134) Speed up stopping of nodes in tests by splitting up stop and wait (#2587)
- [`0c9fb6968`](https://github.com/dashpay/dash/commit/0c9fb6968) Harden spork15 on testnet (#2586)
- [`361900e46`](https://github.com/dashpay/dash/commit/361900e46) Bump version to 0.14 (#2589)