diff --git a/doc/release-notes.md b/doc/release-notes.md index 7795dbf8d22b8..b2f454addc92f 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,11 +1,11 @@ -Dash Core version 0.13.3.0 +Dash Core version 0.14.0.0 ========================== Release is now available from: -This is a new minor version release, bringing various bugfixes and other improvements. +This is a new major version release, bringing new features, various bugfixes and other improvements. Please report bugs using the issue tracker at github: @@ -21,70 +21,670 @@ How to Upgrade If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or -dashd/dash-qt (on Linux). If you upgrade after DIP0003 activation you will -have to reindex (start with -reindex-chainstate or -reindex) to make sure -your wallet has all the new data synced (only if you were using version < 0.13). - -As spork15 has been activated on mainnet, there is no need for `masternode start` -anymore. Upgrading a masternode now only involves replacing binaries and restarting -the node. +dashd/dash-qt (on Linux). If you upgrade after DIP0003 activation and you were +using version < 0.13 you will have to reindex (start with -reindex-chainstate +or -reindex) to make sure your wallet has all the new data synced. Upgrading from +version 0.13 should not require any additional actions. Downgrade warning ----------------- ### Downgrade to a version < 0.13.0.0 -Downgrading to a version smaller than 0.13 is not supported anymore as DIP2/DIP3 has activated -on mainnet and testnet. +Downgrading to a version smaller than 0.13 is not supported anymore as DIP2/DIP3 has +activated on mainnet and testnet. -### Downgrade to a version < 0.13.3.0 +### Downgrade to versions 0.13.0.0 - 0.13.3.0 -Downgrading to previous 0.13 releases is fully supported but is not recommended unless you have some serious issues with 0.13.3.0. +Downgrading to 0.13 releases is fully supported until DIP0008 activation but is not +recommended unless you have some serious issues with version 0.14. Notable changes =============== -Number of false-positives from anti virus software should be reduced --------------------------------------------------------------------- -We have removed all mining code from Windows and Mac binaries, which should avoid most of the false-positive alerts -from anti virus software. Linux builds are not affected. The mining code found in `dash-qt` and `dashd` are only meant -for regression/integration tests and devnets, so there is no harm in removing this code from non-linux builds. - -Fixed an issue with invalid merkle blocks causing SPV nodes to ban other nodes ------------------------------------------------------------------------------- -A fix that was introduces in the last minor version caused creation of invalid merkle blocks, which in turn cause SPV -nodes to ban 0.13.2 nodes. This can be observed on mobile clients which have troubles maintaining connections. This -release fixes this issue and should allow SPV/mobile clients to sync with upgraded nodes. - -Hardened spork15 value to 1047200 ---------------------------------- -We've hardened the spork15 block height to 1047200, which makes sure that syncing from scratch will always work, no -matter if spork15 is received in-time or not. - -Bug fixes/Other improvements ----------------------------- -There are few bug fixes in this release: -- Fixed an issue with transaction sometimes not being fully zapped when `-zapwallettxes` is used -- Fixed an issue with the `protx revoke` RPC and REASON_CHANGE_OF_KEYS - - 0.13.3.0 Change log +DIP0004 - Coinbase Payload v2 +----------------------------- +Coinbase Payload v2 introduces new field `merkleRootQuorums` which represents the merkle root of +all the hashes of the final quorum commitments of all active LLMQ sets. This allows SPV clients +to verify active LLMQ sets and use this information to further verify ChainLocks and LLMQ-based +InstantSend messages. Coinbase Payload v2 relies on DIP0008 (bit 4) activation. + +https://github.com/dashpay/dips/blob/master/dip-0004.md#calculating-the-merkle-root-of-the-active-llmqs + +DIP0008 - ChainLocks +-------------------- +This version introduces ChainLocks, a technology for near-instant confirmation of blocks and +finding near-instant consensus on the longest valid/accepted chain. ChainLocks leverages LLMQ +Signing Requests/Sessions to accomplish this. ChainLocks relies on DIP0008 (bit 4) activation and +`SPORK_19_CHAINLOCKS_ENABLED` spork. + +Read more: https://github.com/dashpay/dips/blob/master/dip-0008.md + +DIP0010 - LLMQ-based InstantSend +-------------------------------- +InstantSend is a feature to allow instant confirmations of payments. It works by locking transaction +inputs through masternode quorums. It has been present in Dash for a few years and been proven to work. +Nevertheless, there are some limits which could theoretically be removed in the old system but doing so +would have created risks in terms of scalability and security. + +We introduce LLMQ-based InstantSend which is designed to be much more scalable without sacrificing +security and which allows all transactions to be treated as InstantSend transactions. The old system +differentiated transactions as InstantSend transactions by using the P2P message “ix” instead of “tx”. +Since this distinction is not required in the new system, the P2P message “ix” will be removed after +DIP0008 deployment (for now, transactions sent via "ix" message will be relayed further via "tx" message). + +Read more: https://github.com/dashpay/dips/blob/master/dip-0010.md + +Network +------ +Legacy messages `mnw`, `mnwb`, `mnget`, `mnb`, `mnp`, `dseg`, `mnv`, `qdcommit` and their corresponding +inventory types (7, 10, 14, 15, 19, 22) are no longer suported. + +Message `version` is extended with a 256 bit field - a challenge sent to a masternode. Masternode which +received such a challenge must reply with new p2p message `mnauth` directly after `verack`. This `mnauth` +message must include a signed challenge that was previously sent via `version`. + +Mining +------ +Due to changes in coinbase payload this version requires for miners to signal their readiness via +BIP9-like mechanism - by setting bit 4 of the block version to 1. Note that if your mining software +simply uses `coinbase_payload` field from `getblocktemplate` RPC and doesn't construct coinbase payload +manually then there should be no changes to your mining software required. We however encourage pools +and solo-miners to check their software compatibility on testnet to ensure flawless migration. + +PrivateSend +----------- +The wallet will try to create and consume denoms a bit more accurately now. It will also only create a +limited number of inputs for each denominated amount to prevent bloating itself with mostly the smallest +denoms. You can control this number of inputs via new `-privatesenddenoms` cmd-line option (default is 300). + +InstantSend +----------- +Legacy InstantSend is going to be superseded by the newly implemented LLMQ-based one once DIP0008 (bit 4) +is active and `SPORK_20_INSTANTSEND_LLMQ_BASED` spork is ON. + +Sporks +------ +There are two new sporks introduced in this version - `SPORK_19_CHAINLOCKS_ENABLED` and +`SPORK_20_INSTANTSEND_LLMQ_BASED`. `SPORK_17_QUORUM_DKG_ENABLED` was introduced in v0.13 but was kept OFF. +It will be turned on once 80% masternodes are upgraded to v0.14 which will enable DKG and DKG-based PoSe. + +QR codes +-------- +Wallet can now show QR codes for addresses in the address book, receiving addresses and addresses identified +in transactions list (right click -> "Show QR-code"). + +RPC changes +----------- +There are a few changes in existing RPC interfaces in this release: +- for blockchain based RPC commands `instantlock` will say `true` if the transaction +was locked via LLMQ based ChainLocks (for backwards compatibility reasons) +- `prioritisetransaction` no longer allows adjusting priority +- `getgovernanceinfo` no longer has `masternodewatchdogmaxseconds` and `sentinelpingmaxseconds` fields +- `masternodelist` no longer supports `activeseconds`, `daemon`, `lastseen`, `protocol`, `keyid`, `rank` +and `sentinel` modes, new mode - `pubkeyoperator` +- `masternode count` no longer has `ps_compatible` and `qualify` fields and `ps` and `qualify` modes +- `masternode winner` and `masternode current` no longer have `protocol`, `lastseen` and `activeseconds` +fields, new field - `proTxHash` +- `debug` supports new categories: `chainlocks`, `llmq`, `llmq-dkg`, `llmq-sigs` +- `mnsync` no longer has `IsMasternodeListSynced` and `IsWinnersListSynced` fields +- various RPCs that had `instantlock` field have `chainlock` (excluding mempool RPCs) and +`instantlock_internal` fields now + +There are also new RPC commands: +- `bls fromsecret` parses a BLS secret key and returns the secret/public key pair +- `quorum` is a set of commands for quorums/LLMQs e.g. `list` to show active quorums (by default, +can specify different `count`) or `info` to shows detailed information about some specific quorum +etc., see `help quorum` + +Few RPC commands are no longer supported: `estimatepriority`, `estimatesmartpriority`, +`gobject getvotes`, `masternode start-*`, `masternode genkey`, `masternode list-conf`, `masternode check`, +`masternodebroadcast`, `sentinelping` + +See `help command` in rpc for more info. + +ZMQ changes +----------- +Added two new messages `hashchainlock` and `rawchainlock` which return the hash of the chainlocked block +or the raw block itself respectively. + +Command-line options +-------------------- + +Changes in existing cmd-line options: +- `-bip9params` supports optional `window` and `threshold` values now + +New cmd-line options: +- `-watchquorums` +- `-privatesenddenoms` +- `-dip3params` (regtest-only) +- `-llmqchainlocks` (devnet-only) + +Few cmd-line options are no longer supported: `-limitfreerelay`, `-relaypriority`, `-blockprioritysize`, +`-sendfreetransactions`, `-mnconf`, `-mnconflock`, `-masternodeprivkey` + +See `Help -> Command-line options` in Qt wallet or `dashd --help` for more info. + +Miscellaneous +------------- + +A lot of refactoring, backports, code cleanups and other small fixes were done in this release. + + 0.14.0.0 Change log =================== -See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.13.2.0...dashpay:v0.13.3.0). - -### Backports - -- [`575cafc01`](https://github.com/dashpay/dash/commit/575cafc01) Do not skip pushing of vMatch and vHashes in CMerkleBlock (#2826) -- [`8c58799d8`](https://github.com/dashpay/dash/commit/8c58799d8) There can be no two votes which differ by the outcome only (#2819) -- [`66c2f3953`](https://github.com/dashpay/dash/commit/66c2f3953) Fix vote ratecheck (#2813) -- [`b52d0ad19`](https://github.com/dashpay/dash/commit/b52d0ad19) Fix revoke reason check for ProUpRevTx (#2787) -- [`35914e084`](https://github.com/dashpay/dash/commit/35914e084) Skip mempool.dat when wallet is starting in "zap" mode (#2782) -- [`46d875100`](https://github.com/dashpay/dash/commit/46d875100) Disable in-wallet miner for win/macos Travis/Gitian builds (#2778) - -### Other - -- [`25038ff36`](https://github.com/dashpay/dash/commit/25038ff36) Bump version to 0.13.3.0 -- [`53b2162e2`](https://github.com/dashpay/dash/commit/53b2162e2) Harden spork15 value to 1047200 when on mainnet (#2830) +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.13.3.0...dashpay:v0.14.0.0). + +- [`394bec483`](https://github.com/dashpay/dash/commit/394bec483) Skip processing in SyncTransaction when chain is not synced yet (#2920) +- [`c8a80b279`](https://github.com/dashpay/dash/commit/c8a80b279) Set DIP0008 mainnet activation params (#2915) +- [`040abafe3`](https://github.com/dashpay/dash/commit/040abafe3) [0.14] Bump chainparams (#2910) +- [`240238b19`](https://github.com/dashpay/dash/commit/240238b19) Fix db leaks in LLMQ db (#2914) +- [`56f31195d`](https://github.com/dashpay/dash/commit/56f31195d) Fall back to ReadBlockFromDisk when blockTxs is not filled yet (#2908) +- [`4dc5c0e9e`](https://github.com/dashpay/dash/commit/4dc5c0e9e) Bump "keepOldConnections" by one for all LLMQ types (#2909) +- [`7696a6fc8`](https://github.com/dashpay/dash/commit/7696a6fc8) Print inputs on which we voted and quorums used for signing (#2907) +- [`a173e6836`](https://github.com/dashpay/dash/commit/a173e6836) Implement integration tests for DKG error handling (#2905) +- [`89f6f7591`](https://github.com/dashpay/dash/commit/89f6f7591) Implement zmq notifications for chainlocked blocks (#2899) +- [`66a2cdeaf`](https://github.com/dashpay/dash/commit/66a2cdeaf) Properly handle conflicts between ChainLocks and InstantSend (#2904) +- [`b63f7dd39`](https://github.com/dashpay/dash/commit/b63f7dd39) Fix a crash in `masternode winners` when `count` is too large (#2902) +- [`357b7279d`](https://github.com/dashpay/dash/commit/357b7279d) Implement isolate_node/reconnect_isolated_node in tests (#2901) +- [`7fdc66dd8`](https://github.com/dashpay/dash/commit/7fdc66dd8) Ask for locked TXs after removing conflicting TXs (#2898) +- [`5d05ab17a`](https://github.com/dashpay/dash/commit/5d05ab17a) Fix PrivateSend log (#2892) +- [`53827a376`](https://github.com/dashpay/dash/commit/53827a376) Remove code for QDEBUGSTATUS propagation (#2891) +- [`783cb9ca6`](https://github.com/dashpay/dash/commit/783cb9ca6) Skip CheckCbTxMerkleRoots until assumeValid block (#2890) +- [`4dee7c4a2`](https://github.com/dashpay/dash/commit/4dee7c4a2) Cache heavy parts of `CalcCbTxMerkleRoot*` (#2885) +- [`b3ed6410f`](https://github.com/dashpay/dash/commit/b3ed6410f) Be more accurate with denom creation/consumption (#2853) +- [`3d993ee8f`](https://github.com/dashpay/dash/commit/3d993ee8f) Translations v14 (#2638) +- [`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) +- [`03021fa53`](https://github.com/dashpay/dash/commit/03021fa53) Harden DIP3 activation (#2881) +- [`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) +- [`82a47f543`](https://github.com/dashpay/dash/commit/82a47f543) Allow testing ChainLocks enforcement with spork19 == 1 (#2854) +- [`e67618ac5`](https://github.com/dashpay/dash/commit/e67618ac5) Clean up a few GUI related items (#2846) +- [`225c3898d`](https://github.com/dashpay/dash/commit/225c3898d) Don't skip "safe TX" check when ChainLocks are not enforced yet (#2851) +- [`27b2cd2cc`](https://github.com/dashpay/dash/commit/27b2cd2cc) Skip required services and port checks when outgoing connections is a MN (#2847) +- [`aeb4c60c8`](https://github.com/dashpay/dash/commit/aeb4c60c8) Reimplement CMNAuth::NotifyMasternodeListChanged to work with new interface +- [`fa90c0204`](https://github.com/dashpay/dash/commit/fa90c0204) Also call NotifyMasternodeListChanged when MNs have been updated +- [`db781b32d`](https://github.com/dashpay/dash/commit/db781b32d) Pass oldList and diff instead of newList into NotifyMasternodeListChanged +- [`b0260e970`](https://github.com/dashpay/dash/commit/b0260e970) Do not maintain CService in masternodeQuorumNodes +- [`60788ce32`](https://github.com/dashpay/dash/commit/60788ce32) Connect to most recently updated address in ThreadOpenMasternodeConnections +- [`93b1b3d73`](https://github.com/dashpay/dash/commit/93b1b3d73) Fix shadowing of "addr" +- [`5bebdda71`](https://github.com/dashpay/dash/commit/5bebdda71) Add GetValidMNByService to CDeterministicMNList +- [`5d94d6bdf`](https://github.com/dashpay/dash/commit/5d94d6bdf) Remove unused CConnman::ForEachQuorumMember +- [`1ba8694cd`](https://github.com/dashpay/dash/commit/1ba8694cd) Various fixes for RemoveInvalidVotes() (#2845) +- [`b5bc7c9da`](https://github.com/dashpay/dash/commit/b5bc7c9da) Call HandleFullyConfirmedBlock when ChainLocks are enabled but not enforced (#2844) +- [`9fa09b974`](https://github.com/dashpay/dash/commit/9fa09b974) CBLSWrapper::SetHexStr() should not accept non-hex strings (#2843) +- [`0f0d8eaf4`](https://github.com/dashpay/dash/commit/0f0d8eaf4) Add RPC for BLS secret to public key (#2841) +- [`6982d9854`](https://github.com/dashpay/dash/commit/6982d9854) Ignore cache files on reindex (#2840) +- [`f8bedba7c`](https://github.com/dashpay/dash/commit/f8bedba7c) Don't retry locks when new IS system is disabled (#2837) +- [`92feade81`](https://github.com/dashpay/dash/commit/92feade81) Remove unused forward declaration (#2838) +- [`206e5a1b4`](https://github.com/dashpay/dash/commit/206e5a1b4) Use big endian inversed height in CInstantSendDb +- [`4b9f6cd3a`](https://github.com/dashpay/dash/commit/4b9f6cd3a) Use big endian inversed height in BuildInversedHeightKey +- [`53656b3e8`](https://github.com/dashpay/dash/commit/53656b3e8) Compare CDataStream internal vector with unsigned comparison +- [`dd21d046f`](https://github.com/dashpay/dash/commit/dd21d046f) Avoid unnecessary calls to parentIt->GetKey +- [`d34ec7866`](https://github.com/dashpay/dash/commit/d34ec7866) Update wallet transactions when confirmed IS locks are removed +- [`b897505f8`](https://github.com/dashpay/dash/commit/b897505f8) Remove the need for maintaining the last ChainLocked block in the DB +- [`8e7083cb8`](https://github.com/dashpay/dash/commit/8e7083cb8) Use db.RemoveConfirmedISLocks() in NotifyChainLock to remove confirmed locks +- [`4577438e8`](https://github.com/dashpay/dash/commit/4577438e8) Implement RemoveConfirmedInstantSendLocks to prune confirmed IS locks from DB +- [`d6e775851`](https://github.com/dashpay/dash/commit/d6e775851) Keep track of when IS locks were mined +- [`0a6416e06`](https://github.com/dashpay/dash/commit/0a6416e06) Wipe llmq db on reindex (#2835) +- [`4af5ea8a7`](https://github.com/dashpay/dash/commit/4af5ea8a7) Remove netfulfilledman.h duplicate (#2834) +- [`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 +- [`b67f6a0dc`](https://github.com/dashpay/dash/commit/b67f6a0dc) Implement CDBTransactionIterator +- [`6d1599bc6`](https://github.com/dashpay/dash/commit/6d1599bc6) Change CDBTransaction to compare keys by their serialized form +- [`5482083eb`](https://github.com/dashpay/dash/commit/5482083eb) Support passing CDataStream as key into CDBWrapper/CDBBatch/CDBIterator +- [`c23dfaf57`](https://github.com/dashpay/dash/commit/c23dfaf57) Update qa/rpc-tests/dip4-coinbasemerkleroots.py +- [`9f2e5d085`](https://github.com/dashpay/dash/commit/9f2e5d085) Use FromHex to deserialize block header +- [`999848432`](https://github.com/dashpay/dash/commit/999848432) Implement dip4-coinbasemerkleroots.py integration tests +- [`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) +- [`9f04855ae`](https://github.com/dashpay/dash/commit/9f04855ae) Fix blsWorker (#2820) +- [`377dd3b82`](https://github.com/dashpay/dash/commit/377dd3b82) There can be no two votes which differ by the outcome only (#2819) +- [`a87909ec3`](https://github.com/dashpay/dash/commit/a87909ec3) Keep the most recent gobject votes only (#2815) +- [`010752d4e`](https://github.com/dashpay/dash/commit/010752d4e) Set fAllowMultiplePorts to true for testnet (#2817) +- [`74d999e56`](https://github.com/dashpay/dash/commit/74d999e56) Remove watchdogs from existence (#2816) +- [`bfc288afb`](https://github.com/dashpay/dash/commit/bfc288afb) Update getblock rpc help text (#2814) +- [`aeba4afce`](https://github.com/dashpay/dash/commit/aeba4afce) Fix vote ratecheck (#2813) +- [`ad7defba9`](https://github.com/dashpay/dash/commit/ad7defba9) Drop all kind of invalid votes from all types of gobjects (#2812) +- [`e75760fa7`](https://github.com/dashpay/dash/commit/e75760fa7) Update "listtransactions" and "listsinceblock" RPC help (#2811) +- [`8987a6c3e`](https://github.com/dashpay/dash/commit/8987a6c3e) Update "debug" rpc help text (#2810) +- [`4b4234f39`](https://github.com/dashpay/dash/commit/4b4234f39) Refactor: fix layer violation for LLMQ based IS in UI (#2808) +- [`614cb6c2e`](https://github.com/dashpay/dash/commit/614cb6c2e) Fix getgovernanceinfo rpc help text (#2809) +- [`39ba45f3c`](https://github.com/dashpay/dash/commit/39ba45f3c) Show chainlocked txes as fully confirmed (#2807) +- [`f87035d14`](https://github.com/dashpay/dash/commit/f87035d14) Fix qt tests and actually run them (#2801) +- [`162acc5a0`](https://github.com/dashpay/dash/commit/162acc5a0) Fix potential deadlock in LoadWallet() (#2806) +- [`81eeff1c5`](https://github.com/dashpay/dash/commit/81eeff1c5) Fix devnet genesis check in InitBlockIndex() (#2805) +- [`4d8ef3512`](https://github.com/dashpay/dash/commit/4d8ef3512) Reset local/static cache in LogAcceptCategory when categories change (#2804) +- [`4a79f7a70`](https://github.com/dashpay/dash/commit/4a79f7a70) Few trivial cleanups (#2803) +- [`5057ad511`](https://github.com/dashpay/dash/commit/5057ad511) Drop DBG macros uses from governance modules (#2802) +- [`29a9e24b4`](https://github.com/dashpay/dash/commit/29a9e24b4) Prepare Dash-related stuff before starting ThreadImport (#2800) +- [`8f280f346`](https://github.com/dashpay/dash/commit/8f280f346) Split "llmq" debug category into "llmq", "llmq-dkg" and "llmq-sigs" (#2799) +- [`15c720dd4`](https://github.com/dashpay/dash/commit/15c720dd4) Stop tracking interested/participating nodes and send/announce to MNAUTH peers (#2798) +- [`f20620b0a`](https://github.com/dashpay/dash/commit/f20620b0a) Also handle MNAUTH on non-masternodes (#2797) +- [`b18f8cb77`](https://github.com/dashpay/dash/commit/b18f8cb77) Implement MNAUTH and allow unlimited inbound MN connections (#2790) +- [`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) +- [`6350adf1b`](https://github.com/dashpay/dash/commit/6350adf1b) Slightly refactor ProcessInstantSendLock (#2767) +- [`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 +- [`e763310b5`](https://github.com/dashpay/dash/commit/e763310b5) Add missing LOCK(cs_main) +- [`3a5e7c433`](https://github.com/dashpay/dash/commit/3a5e7c433) Do not hold cs_vNodes in CSigSharesManager::SendMessages() for too long (#2758) +- [`fbf0dcb08`](https://github.com/dashpay/dash/commit/fbf0dcb08) Various small cleanups (#2761) +- [`588eb30b8`](https://github.com/dashpay/dash/commit/588eb30b8) Fix deadlock in CSigSharesManager::SendMessages (#2757) +- [`7b24f9b8b`](https://github.com/dashpay/dash/commit/7b24f9b8b) Drop --c++11 brew flag in build-osx.md (#2755) +- [`ac00c6628`](https://github.com/dashpay/dash/commit/ac00c6628) Make InstantSend locks persistent +- [`293c9ad6a`](https://github.com/dashpay/dash/commit/293c9ad6a) Use unordered_lru_cache in CRecoveredSigsDb +- [`9e4aa1f98`](https://github.com/dashpay/dash/commit/9e4aa1f98) Implement unordered_lru_cache +- [`609114a80`](https://github.com/dashpay/dash/commit/609114a80) Code review: re-add string cast in mininode.py +- [`85ffc1d64`](https://github.com/dashpay/dash/commit/85ffc1d64) drop `swap_outputs_in_rawtx` and `DecimalEncoder` in smartfees.py +- [`bc593c84b`](https://github.com/dashpay/dash/commit/bc593c84b) Revert "Fix use of missing self.log in blockchain.py" +- [`0e91ebcf4`](https://github.com/dashpay/dash/commit/0e91ebcf4) Use logging framework in Dash specific tests +- [`dd1245c2a`](https://github.com/dashpay/dash/commit/dd1245c2a) Update dnsseed-policy.md (#2751) +- [`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 +- [`baf8b81c4`](https://github.com/dashpay/dash/commit/baf8b81c4) Fix no-wallet build +- [`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 +- [`55a6182b1`](https://github.com/dashpay/dash/commit/55a6182b1) Introduce QSIGSESANN/CSigSesAnn P2P message +- [`80375a0b4`](https://github.com/dashpay/dash/commit/80375a0b4) Change CSigSharesInv and CBatchedSigShares to be sessionId based +- [`9b4285b1c`](https://github.com/dashpay/dash/commit/9b4285b1c) Use salted hashing for keys for unordered maps/sets in LLMQ code +- [`b5462f524`](https://github.com/dashpay/dash/commit/b5462f524) Implement std::unordered_map/set compatible hasher classes for salted hashes +- [`c52e8402c`](https://github.com/dashpay/dash/commit/c52e8402c) Remove now obsolete TODO comment above CRecoveredSigsDb +- [`e83e32b95`](https://github.com/dashpay/dash/commit/e83e32b95) Add in-memory cache for CRecoveredSigsDb::HasRecoveredSigForHash +- [`677c0040c`](https://github.com/dashpay/dash/commit/677c0040c) Add in-memory cache to CQuorumBlockProcessor::HasMinedCommitment +- [`f305cf77b`](https://github.com/dashpay/dash/commit/f305cf77b) Multiple fixes and optimizations for LLMQs and ChainLocks (#2724) +- [`c3eb0c788`](https://github.com/dashpay/dash/commit/c3eb0c788) reset file perms +- [`c17356efc`](https://github.com/dashpay/dash/commit/c17356efc) Merge #9970: Improve readability of segwit.py, smartfees.py +- [`ee6e5654e`](https://github.com/dashpay/dash/commit/ee6e5654e) Merge #9505: Prevector Quick Destruct +- [`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 +- [`914bd7877`](https://github.com/dashpay/dash/commit/914bd7877) Merge #9972: Fix extended rpc tests broken by #9768 +- [`dad8c67d3`](https://github.com/dashpay/dash/commit/dad8c67d3) Merge #9768: [qa] Add logging to test_framework.py +- [`c75d7dc83`](https://github.com/dashpay/dash/commit/c75d7dc83) Merge #9962: [trivial] Fix typo in rpc/protocol.h +- [`49b743e39`](https://github.com/dashpay/dash/commit/49b743e39) Merge #9538: [util] Remove redundant call to get() on smart pointer (thread_specific_ptr) +- [`e5c4a67a2`](https://github.com/dashpay/dash/commit/e5c4a67a2) Merge #9916: Fix msvc compiler error C4146 (minus operator applied to unsigned type) +- [`fcd3b4fd4`](https://github.com/dashpay/dash/commit/fcd3b4fd4) Disallow new proposals using legacy serialization (#2722) +- [`668b84b1e`](https://github.com/dashpay/dash/commit/668b84b1e) Fix stacktraces compilation issues (#2721) +- [`0fd1fb7d5`](https://github.com/dashpay/dash/commit/0fd1fb7d5) Don't build docker image when running Travis job on some another repo (#2718) +- [`48d92f116`](https://github.com/dashpay/dash/commit/48d92f116) Implement optional pretty printed stacktraces (#2420) +- [`0b552be20`](https://github.com/dashpay/dash/commit/0b552be20) Fix file permissions broken in 2682 (#2717) +- [`74bb23cac`](https://github.com/dashpay/dash/commit/74bb23cac) Add link to bugcrowd in issue template (#2716) +- [`252ee89c3`](https://github.com/dashpay/dash/commit/252ee89c3) Implement new algo for quorum connections (#2710) +- [`104c6e776`](https://github.com/dashpay/dash/commit/104c6e776) Cleanup successful sessions before doing timeout check (#2712) +- [`26db020d1`](https://github.com/dashpay/dash/commit/26db020d1) Separate init/destroy and start/stop steps in LLMQ flow (#2709) +- [`9f5869032`](https://github.com/dashpay/dash/commit/9f5869032) Avoid using ordered maps in LLMQ signing code (#2708) +- [`bb90eb4bf`](https://github.com/dashpay/dash/commit/bb90eb4bf) backports-0.15-pr6 code review +- [`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) +- [`a31b2de7a`](https://github.com/dashpay/dash/commit/a31b2de7a) Merge #9906: Disallow copy constructor CReserveKeys +- [`22cda1a92`](https://github.com/dashpay/dash/commit/22cda1a92) Merge #9929: tests: Delete unused function `_rpchost_to_args` +- [`6addbe074`](https://github.com/dashpay/dash/commit/6addbe074) Merge #9880: Verify Tree-SHA512s in merge commits, enforce sigs are not SHA1 +- [`29bbfc58f`](https://github.com/dashpay/dash/commit/29bbfc58f) Merge #8574: [Wallet] refactor CWallet/CWalletDB/CDB +- [`67a86091a`](https://github.com/dashpay/dash/commit/67a86091a) Implement and use secure BLS batch verification (#2681) +- [`e2ae2ae63`](https://github.com/dashpay/dash/commit/e2ae2ae63) Update misspelled Synchronizing in GetSyncStatus (#2680) +- [`721965990`](https://github.com/dashpay/dash/commit/721965990) Add missing help text for `operatorPayoutAddress` (#2679) +- [`68c0de4ba`](https://github.com/dashpay/dash/commit/68c0de4ba) Do not send excessive messages in governance sync (#2124) +- [`09e71de80`](https://github.com/dashpay/dash/commit/09e71de80) Fix bench log for payee and special txes (#2678) +- [`03fa11550`](https://github.com/dashpay/dash/commit/03fa11550) Speed up CQuorumManager::ScanQuorums (#2677) +- [`071035b93`](https://github.com/dashpay/dash/commit/071035b93) Apply code review suggestions #2647 +- [`501227dee`](https://github.com/dashpay/dash/commit/501227dee) Merge #9333: Document CWalletTx::mapValue entries and remove erase of nonexistent "version" entry. +- [`a61b747a2`](https://github.com/dashpay/dash/commit/a61b747a2) Merge #9547: bench: Assert that division by zero is unreachable +- [`b821dfa7d`](https://github.com/dashpay/dash/commit/b821dfa7d) Merge #9739: Fix BIP68 activation test +- [`56890f98f`](https://github.com/dashpay/dash/commit/56890f98f) Merge #9832: [qa] assert_start_raises_init_error +- [`31755267a`](https://github.com/dashpay/dash/commit/31755267a) Missing `=` characters (#2676) +- [`088525bde`](https://github.com/dashpay/dash/commit/088525bde) Multiple fixes for LLMQs and BLS batch verification (#2674) +- [`ae70e8a34`](https://github.com/dashpay/dash/commit/ae70e8a34) Fix negative "keys left since backup" (#2671) +- [`2a330f17a`](https://github.com/dashpay/dash/commit/2a330f17a) Fix endless wait in RenameThreadPool (#2675) +- [`1400df2e5`](https://github.com/dashpay/dash/commit/1400df2e5) Invoke CheckSpecialTx after all normal TX checks have passed (#2673) +- [`18950f923`](https://github.com/dashpay/dash/commit/18950f923) Optimize DKG debug message processing for performance and lower bandwidth (#2672) +- [`4615da99f`](https://github.com/dashpay/dash/commit/4615da99f) Merge #9576: [wallet] Remove redundant initialization +- [`8944b5a78`](https://github.com/dashpay/dash/commit/8944b5a78) Merge #9905: [contrib] gh-merge: Move second sha512 check to the end +- [`8dfddf503`](https://github.com/dashpay/dash/commit/8dfddf503) Merge #9910: Docs: correct and elaborate -rpcbind doc +- [`395b53716`](https://github.com/dashpay/dash/commit/395b53716) Merge #9774: Enable host lookups for -proxy and -onion parameters +- [`2c3dde75c`](https://github.com/dashpay/dash/commit/2c3dde75c) Merge #9828: Avoid -Wshadow warnings in wallet_tests +- [`3d3443b6a`](https://github.com/dashpay/dash/commit/3d3443b6a) Merge #8808: Do not shadow variables (gcc set) +- [`053b97c94`](https://github.com/dashpay/dash/commit/053b97c94) Merge #9903: Docs: add details to -rpcclienttimeout doc +- [`5d1c97da1`](https://github.com/dashpay/dash/commit/5d1c97da1) Add getspecialtxes rpc (#2668) +- [`ca6c8f547`](https://github.com/dashpay/dash/commit/ca6c8f547) Add missing default value for SPORK_19_CHAINLOCKS_ENABLED (#2670) +- [`6da341379`](https://github.com/dashpay/dash/commit/6da341379) Use smaller LLMQs for ChainLocks on testnet and devnet (#2669) +- [`54f576ea7`](https://github.com/dashpay/dash/commit/54f576ea7) Fix LLMQ related test failures on Travis (#2666) +- [`6fe479aa1`](https://github.com/dashpay/dash/commit/6fe479aa1) Don't leak skShare in logs (#2662) +- [`559bdfc6e`](https://github.com/dashpay/dash/commit/559bdfc6e) ProcessSpecialTxsInBlock should respect fJustCheck (#2653) +- [`805aeaa16`](https://github.com/dashpay/dash/commit/805aeaa16) Drop cs_main from UpdatedBlockTip in CDKGSessionManager/CDKGSessionHandler (#2655) +- [`2a4fbb6e4`](https://github.com/dashpay/dash/commit/2a4fbb6e4) Bump block stats when adding commitment tx into block (#2654) +- [`25cb14b61`](https://github.com/dashpay/dash/commit/25cb14b61) Fix confusion between dip3 activation and enforcement (#2651) +- [`7caf9394e`](https://github.com/dashpay/dash/commit/7caf9394e) drop dash-docs folder and instead link to dash-docs.github.io in README (#2650) +- [`70a9e905c`](https://github.com/dashpay/dash/commit/70a9e905c) Use helper function to produce help text for params of `protx` rpcs (#2649) +- [`f123248f1`](https://github.com/dashpay/dash/commit/f123248f1) update copyright (#2648) +- [`d398bf052`](https://github.com/dashpay/dash/commit/d398bf052) reverse order from jsonRequest, strSubCommand +- [`ad4b3cda3`](https://github.com/dashpay/dash/commit/ad4b3cda3) Instead of asserting signatures once, wait for them to change to the expected state +- [`3237668b1`](https://github.com/dashpay/dash/commit/3237668b1) Rename inInvalidate->inEnforceBestChainLock and make it atomic +- [`5033d5ef4`](https://github.com/dashpay/dash/commit/5033d5ef4) Don't check for conflicting ChainLocks when phashBlock is not set +- [`08d915dc2`](https://github.com/dashpay/dash/commit/08d915dc2) Increase waiting time in LLMQ signing tests +- [`886299a40`](https://github.com/dashpay/dash/commit/886299a40) Implement llmq-chainlocks.py integration tests +- [`3413ff917`](https://github.com/dashpay/dash/commit/3413ff917) Add info about ChainLocks to block and transaction RPCs +- [`135829dc4`](https://github.com/dashpay/dash/commit/135829dc4) Add SPORK_19_CHAINLOCKS_ENABLED +- [`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 +- [`c094d4bbe`](https://github.com/dashpay/dash/commit/c094d4bbe) fix #8775 backport +- [`f9147466f`](https://github.com/dashpay/dash/commit/f9147466f) remove other rpc references to pwalletMain +- [`d7474fd56`](https://github.com/dashpay/dash/commit/d7474fd56) remove all references to pwalletMain in rpc folder +- [`87af11781`](https://github.com/dashpay/dash/commit/87af11781) Merge #8775: RPC refactoring: Access wallet using new GetWalletForJSONRPCRequest +- [`1fa7f7e74`](https://github.com/dashpay/dash/commit/1fa7f7e74) stop test failures +- [`444f671ab`](https://github.com/dashpay/dash/commit/444f671ab) Update src/miner.cpp +- [`514769940`](https://github.com/dashpay/dash/commit/514769940) fix 9868 +- [`7ee31cbd6`](https://github.com/dashpay/dash/commit/7ee31cbd6) Speed up integration tests with masternodes (#2642) +- [`fda16f1fe`](https://github.com/dashpay/dash/commit/fda16f1fe) Fix off-by-1 in phase calculations and the rest of llmq-signing.py issues (#2641) +- [`b595f9e6a`](https://github.com/dashpay/dash/commit/b595f9e6a) Fix LLMQ signing integration tests (#2640) +- [`597748689`](https://github.com/dashpay/dash/commit/597748689) Bring back ResetLocalSessionStatus call (#2639) +- [`682a3b993`](https://github.com/dashpay/dash/commit/682a3b993) Merge #9904: test: Fail if InitBlockIndex fails +- [`55a656c24`](https://github.com/dashpay/dash/commit/55a656c24) Merge #9359: Add test for CWalletTx::GetImmatureCredit() returning stale values. +- [`68f6b43d1`](https://github.com/dashpay/dash/commit/68f6b43d1) fix #9143 backport +- [`bba55e262`](https://github.com/dashpay/dash/commit/bba55e262) Merge #9143: Refactor ZapWalletTxes to avoid layer violations +- [`02f4661b3`](https://github.com/dashpay/dash/commit/02f4661b3) fix #9894 backport +- [`07b50aefa`](https://github.com/dashpay/dash/commit/07b50aefa) Merge #9894: remove 'label' filter for rpc command help +- [`8035769d4`](https://github.com/dashpay/dash/commit/8035769d4) remove removed argument from #9834 +- [`904e56fb1`](https://github.com/dashpay/dash/commit/904e56fb1) Merge #9834: qt: clean up initialize/shutdown signals +- [`2df84c6f1`](https://github.com/dashpay/dash/commit/2df84c6f1) fix merge error from #9821 +- [`21e00e905`](https://github.com/dashpay/dash/commit/21e00e905) Merge #9821: util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD +- [`f9c585776`](https://github.com/dashpay/dash/commit/f9c585776) manual fixes on #9868 +- [`3ddf3dc62`](https://github.com/dashpay/dash/commit/3ddf3dc62) Merge #9868: Abstract out the command line options for block assembly +- [`397792355`](https://github.com/dashpay/dash/commit/397792355) Merge #9861: Trivial: Debug log ambiguity fix for peer addrs +- [`3d1a0b3ab`](https://github.com/dashpay/dash/commit/3d1a0b3ab) Merge #9871: Add a tree sha512 hash to merge commits +- [`8264e15cd`](https://github.com/dashpay/dash/commit/8264e15cd) Merge #9822: Remove block file location upgrade code +- [`f51d2e094`](https://github.com/dashpay/dash/commit/f51d2e094) Merge #9732: [Trivial] Remove nonsense #undef foreach +- [`3e10ff63f`](https://github.com/dashpay/dash/commit/3e10ff63f) Merge #9867: Replace remaining sprintf with snprintf +- [`0d38c16e7`](https://github.com/dashpay/dash/commit/0d38c16e7) Merge #9350: [Trivial] Adding label for amount inside of tx_valid/tx_invalid.json +- [`d2ddc2a00`](https://github.com/dashpay/dash/commit/d2ddc2a00) A couple of fixes/refactorings for CDKGSessionHandler (#2637) +- [`b2b97f258`](https://github.com/dashpay/dash/commit/b2b97f258) Fix some strings, docs and cmd-line/rpc help messages (#2632) +- [`e7981e468`](https://github.com/dashpay/dash/commit/e7981e468) Remove fLLMQAllowDummyCommitments from consensus params (#2636) +- [`8cd7287ba`](https://github.com/dashpay/dash/commit/8cd7287ba) Fix missing lupdate in depends (#2633) +- [`b0ad1425e`](https://github.com/dashpay/dash/commit/b0ad1425e) Review fixes (mostly if/else related but no change in logic) +- [`c905f1fe1`](https://github.com/dashpay/dash/commit/c905f1fe1) Initialize g_connman before initializing the LLMQ system +- [`b8d069bcd`](https://github.com/dashpay/dash/commit/b8d069bcd) fix/cleanup qt rpcnestedtests +- [`b970c20a9`](https://github.com/dashpay/dash/commit/b970c20a9) Avoid using immature coinbase UTXOs for dummy TXins +- [`4d25148c0`](https://github.com/dashpay/dash/commit/4d25148c0) Add llmq-signing.py tests +- [`d020ffa00`](https://github.com/dashpay/dash/commit/d020ffa00) Add wait_for_sporks_same and mine_quorum to DashTestFramework +- [`0cc1cf279`](https://github.com/dashpay/dash/commit/0cc1cf279) Add receivedFinalCommitment flag to CDKGDebugSessionStatus +- [`23d7ed80d`](https://github.com/dashpay/dash/commit/23d7ed80d) Implement "quorum sign/hasrecsig/isconflicting" RPCs +- [`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 +- [`e1901d24a`](https://github.com/dashpay/dash/commit/e1901d24a) Handle review suggestions +- [`352edbd33`](https://github.com/dashpay/dash/commit/352edbd33) Introduce SPORK_18_QUORUM_DEBUG_ENABLED to enable/disable LLMQ debug messages +- [`324406bfe`](https://github.com/dashpay/dash/commit/324406bfe) Implement debugging messages and RPC for LLMQ DKGs +- [`098b09495`](https://github.com/dashpay/dash/commit/098b09495) Pass scheduler to InitLLMQSystem +- [`a1f4853d6`](https://github.com/dashpay/dash/commit/a1f4853d6) Use LLMQ DKGs for PoSe testing in DIP3 tests +- [`6836f8c38`](https://github.com/dashpay/dash/commit/6836f8c38) Implement LLMQ DKG +- [`318b59813`](https://github.com/dashpay/dash/commit/318b59813) Prepare inter-quorum masternode connections +- [`4bf736f33`](https://github.com/dashpay/dash/commit/4bf736f33) Add cxxtimer header only libraries +- [`c6be8cfcd`](https://github.com/dashpay/dash/commit/c6be8cfcd) Allow to skip malleability check when deserializing BLS primitives +- [`9d25bb1d8`](https://github.com/dashpay/dash/commit/9d25bb1d8) Add batched logger +- [`0df3871d1`](https://github.com/dashpay/dash/commit/0df3871d1) Remove dummy DKG +- [`55f205eba`](https://github.com/dashpay/dash/commit/55f205eba) A couple of fixes for `masternode list` rpc (#2615) +- [`fa18d3e10`](https://github.com/dashpay/dash/commit/fa18d3e10) More fixes for PrivateSend after 2612 (#2614) +- [`bade33273`](https://github.com/dashpay/dash/commit/bade33273) Fix 2612 (#2613) +- [`5c5932eb9`](https://github.com/dashpay/dash/commit/5c5932eb9) [PrivateSend] Allow more than 3 mixing participants (#2612) +- [`0acfbf640`](https://github.com/dashpay/dash/commit/0acfbf640) Gracefully shutdown on evodb inconsistency instead of crashing (#2611) +- [`07dcddb4c`](https://github.com/dashpay/dash/commit/07dcddb4c) Backports 0.15 pr2 (#2597) +- [`04d1671b9`](https://github.com/dashpay/dash/commit/04d1671b9) armv7l build support (#2601) +- [`7d58d87f4`](https://github.com/dashpay/dash/commit/7d58d87f4) Remove a few sporks which are not used anymore (#2607) +- [`d1910eaff`](https://github.com/dashpay/dash/commit/d1910eaff) Refactor remains of CMasternode/-Man into CMasternodeMeta/-Man (#2606) +- [`cdc8ae943`](https://github.com/dashpay/dash/commit/cdc8ae943) Don't hold CDeterministicMNManager::cs while calling signals (#2608) +- [`968eb3fc5`](https://github.com/dashpay/dash/commit/968eb3fc5) Add real timestamp to log output when mock time is enabled (#2604) +- [`0648496e2`](https://github.com/dashpay/dash/commit/0648496e2) Fix flaky p2p-fullblocktest (#2605) +- [`96d4f7459`](https://github.com/dashpay/dash/commit/96d4f7459) Try to fix flaky IX tests in DIP3 tests (#2602) +- [`896733223`](https://github.com/dashpay/dash/commit/896733223) Dashify copyright_header.py (#2598) +- [`c58f775cc`](https://github.com/dashpay/dash/commit/c58f775cc) De-dashify env vars and dashify help text in tests instead (#2603) +- [`a49f4123e`](https://github.com/dashpay/dash/commit/a49f4123e) Backports 0.15 pr1 (#2590) +- [`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) Credits ======= @@ -92,7 +692,17 @@ Credits Thanks to everyone who directly contributed to this release: - Alexander Block (codablock) +- Amir Abrams (AmirAbrams) +- Daniel Hoffmann (dhoffmann) +- Duke Leto (leto) +- fish-en - gladcow +- -k (charlesrocket) +- Nathan Marley (nmarley) +- PastaPastaPasta +- Peter Bushnell (Bushstar) +- strophy +- thephez - UdjinM6 As well as everyone that submitted issues and reviewed pull requests. @@ -120,6 +730,7 @@ Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12. These release are considered obsolete. Old release notes can be found here: +- [v0.13.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.3.md) released Apr/04/2019 - [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019 - [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019 - [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.md) released Jan/14/2019 diff --git a/doc/release-notes/dash/release-notes-0.13.3.md b/doc/release-notes/dash/release-notes-0.13.3.md new file mode 100644 index 0000000000000..7795dbf8d22b8 --- /dev/null +++ b/doc/release-notes/dash/release-notes-0.13.3.md @@ -0,0 +1,140 @@ +Dash Core version 0.13.3.0 +========================== + +Release is now available from: + + + +This is a new minor version release, bringing various bugfixes and other improvements. + +Please report bugs using the issue tracker at github: + + + + +Upgrading and downgrading +========================= + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or +dashd/dash-qt (on Linux). If you upgrade after DIP0003 activation you will +have to reindex (start with -reindex-chainstate or -reindex) to make sure +your wallet has all the new data synced (only if you were using version < 0.13). + +As spork15 has been activated on mainnet, there is no need for `masternode start` +anymore. Upgrading a masternode now only involves replacing binaries and restarting +the node. + +Downgrade warning +----------------- + +### Downgrade to a version < 0.13.0.0 + +Downgrading to a version smaller than 0.13 is not supported anymore as DIP2/DIP3 has activated +on mainnet and testnet. + +### Downgrade to a version < 0.13.3.0 + +Downgrading to previous 0.13 releases is fully supported but is not recommended unless you have some serious issues with 0.13.3.0. + +Notable changes +=============== + +Number of false-positives from anti virus software should be reduced +-------------------------------------------------------------------- +We have removed all mining code from Windows and Mac binaries, which should avoid most of the false-positive alerts +from anti virus software. Linux builds are not affected. The mining code found in `dash-qt` and `dashd` are only meant +for regression/integration tests and devnets, so there is no harm in removing this code from non-linux builds. + +Fixed an issue with invalid merkle blocks causing SPV nodes to ban other nodes +------------------------------------------------------------------------------ +A fix that was introduces in the last minor version caused creation of invalid merkle blocks, which in turn cause SPV +nodes to ban 0.13.2 nodes. This can be observed on mobile clients which have troubles maintaining connections. This +release fixes this issue and should allow SPV/mobile clients to sync with upgraded nodes. + +Hardened spork15 value to 1047200 +--------------------------------- +We've hardened the spork15 block height to 1047200, which makes sure that syncing from scratch will always work, no +matter if spork15 is received in-time or not. + +Bug fixes/Other improvements +---------------------------- +There are few bug fixes in this release: +- Fixed an issue with transaction sometimes not being fully zapped when `-zapwallettxes` is used +- Fixed an issue with the `protx revoke` RPC and REASON_CHANGE_OF_KEYS + + 0.13.3.0 Change log +=================== + +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.13.2.0...dashpay:v0.13.3.0). + +### Backports + +- [`575cafc01`](https://github.com/dashpay/dash/commit/575cafc01) Do not skip pushing of vMatch and vHashes in CMerkleBlock (#2826) +- [`8c58799d8`](https://github.com/dashpay/dash/commit/8c58799d8) There can be no two votes which differ by the outcome only (#2819) +- [`66c2f3953`](https://github.com/dashpay/dash/commit/66c2f3953) Fix vote ratecheck (#2813) +- [`b52d0ad19`](https://github.com/dashpay/dash/commit/b52d0ad19) Fix revoke reason check for ProUpRevTx (#2787) +- [`35914e084`](https://github.com/dashpay/dash/commit/35914e084) Skip mempool.dat when wallet is starting in "zap" mode (#2782) +- [`46d875100`](https://github.com/dashpay/dash/commit/46d875100) Disable in-wallet miner for win/macos Travis/Gitian builds (#2778) + +### Other + +- [`25038ff36`](https://github.com/dashpay/dash/commit/25038ff36) Bump version to 0.13.3.0 +- [`53b2162e2`](https://github.com/dashpay/dash/commit/53b2162e2) Harden spork15 value to 1047200 when on mainnet (#2830) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Alexander Block (codablock) +- gladcow +- UdjinM6 + +As well as everyone that submitted issues and reviewed pull requests. + +Older releases +============== + +Dash was previously known as Darkcoin. + +Darkcoin tree 0.8.x was a fork of Litecoin tree 0.8, original name was XCoin +which was first released on Jan/18/2014. + +Darkcoin tree 0.9.x was the open source implementation of masternodes based on +the 0.8.x tree and was first released on Mar/13/2014. + +Darkcoin tree 0.10.x used to be the closed source implementation of Darksend +which was released open source on Sep/25/2014. + +Dash Core tree 0.11.x was a fork of Bitcoin Core tree 0.9, +Darkcoin was rebranded to Dash. + +Dash Core tree 0.12.0.x was a fork of Bitcoin Core tree 0.10. + +Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12. + +These release are considered obsolete. Old release notes can be found here: + +- [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019 +- [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019 +- [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.md) released Jan/14/2019 +- [v0.12.3.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.4.md) released Dec/14/2018 +- [v0.12.3.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.3.md) released Sep/19/2018 +- [v0.12.3.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.2.md) released Jul/09/2018 +- [v0.12.3.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.1.md) released Jul/03/2018 +- [v0.12.2.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.3.md) released Jan/12/2018 +- [v0.12.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.2.md) released Dec/17/2017 +- [v0.12.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.md) released Nov/08/2017 +- [v0.12.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.1.md) released Feb/06/2017 +- [v0.12.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.0.md) released Aug/15/2015 +- [v0.11.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.2.md) released Mar/04/2015 +- [v0.11.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.1.md) released Feb/10/2015 +- [v0.11.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.0.md) released Jan/15/2015 +- [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 +- [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 +