diff --git a/doc/release-notes.md b/doc/release-notes.md index 005ea530f9..fbb1591345 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,11 +1,14 @@ -Dash Core version 0.15 +Dash Core version 0.16 ====================== Release is now available from: -This is a new major version release, bringing new features, various bugfixes and other improvements. +This is a new major version release, bringing new features, various bugfixes +and other improvements. + +This release is mandatory for all nodes. Please report bugs using the issue tracker at github: @@ -23,492 +26,578 @@ 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 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. +or -reindex) to make sure your wallet has all the new data synced. Upgrading +from version 0.13 should not require any additional actions. When upgrading from a version prior to 0.14.0.3, the -first startup of Dash Core will run a migration process which can take a few minutes -to finish. After the migration, a downgrade to an older version is only possible with -a reindex (or reindex-chainstate). +first startup of Dash Core will run a migration process which can take a few +minutes to finish. After the migration, a downgrade to an older version is only +possible with a reindex (or reindex-chainstate). Downgrade warning ----------------- ### Downgrade to a version < 0.14.0.3 -Downgrading to a version smaller than 0.14.0.3 is not supported anymore due to changes -in the "evodb" database format. If you need to use an older version, you have to perform -a reindex or re-sync the whole chain. +Downgrading to a version older than 0.14.0.3 is no longer supported due to +changes in the "evodb" database format. If you need to use an older version, +you must either reindex or re-sync the whole chain. + +### Downgrade of masternodes to < 0.16 + +Starting with this release, masternodes will verify the protocol version of other +masternodes. This will result in PoSe punishment/banning for outdated masternodes, +so downgrading is not recommended. Notable changes =============== -Removal of the p2p alert system -------------------------------- -The p2p alert system was designed to send messages to all nodes supporting it by someone who holds -so called alert keys to notify such nodes in case of severe network issues. This version removes -the `alert` p2p message and `--alert` option. Internal alerts, partition detection warnings and the -`--alertnotify` option features remain. - -Removal of the legacy InstantSend system ----------------------------------------- -Version 0.14 introduced the new LLMQ-based InstantSend system which is designed to be much more scalable -than the legacy one without sacrificing security. The new system also allows all transactions to be treated as -InstantSend transactions. The legacy system was disabled together with the successful deployment of ChainLocks, -but we had to keep supporting the legacy system for a while to ensure a smooth transition period. This version finally drops -the legacy system completely. - -Read more about ChainLocks: https://github.com/dashpay/dips/blob/master/dip-0008.md -Read more about LLMQ-based InstantSend: https://github.com/dashpay/dips/blob/master/dip-0010.md - -Sporks ------- -The security level of ChainLocks and LLMQ-based InstantSend made sporks `SPORK_5_INSTANTSEND_MAX_VALUE` and -`SPORK_12_RECONSIDER_BLOCKS` obsolete, so they are removed now. Sporks `SPORK_15_DETERMINISTIC_MNS_ENABLED`, -`SPORK_16_INSTANTSEND_AUTOLOCKS` and `SPORK_20_INSTANTSEND_LLMQ_BASED` have no code logic behind them anymore -because they were used as part of the DIP0003, DIP0008 and DIP0010 activation process which is finished now. -They are still kept and relayed only to ensure smooth operation of v0.14 clients and will be removed in some -future version. - -Mempool sync improvements +Block Reward Reallocation ------------------------- -Nodes joining the network will now try to sync their mempool from other v0.15+ peers via the `mempool` p2p message. -This behaviour can be disabled via the new `--syncmempool` option. Nodes serving such requests will now also push -`inv` p2p messages for InstandSend locks which are held for transactions in their mempool. These two changes -should help new nodes to quickly catchup on start and detect any potential double-spend as soon as possible. -This should also help wallets to slightly improve UX by showing the correct status of unconfirmed transactions -locked via InstandSend, if they were sent while the receiving wallet was offline. Note that bloom-filters -still apply to such `inv` messages, just like they do for transactions and locks that are relayed on a -regular basis. +This version implements Block Reward Reallocation which was proposed in order +to slow the growth rate of Dash’s circulating supply by encouraging the +formation of masternodes and was voted in by the network. The resulting allocation +will split all non-proposal block rewards 40% toward miners and 60% toward +masternodes in the end-state once the transition period is complete. -PrivateSend improvements ------------------------- -This version decouples the so called "Lite Mode" and client-side PrivateSend mixing, which allows client-side mixing -on pruned nodes running with `--litemode` option. Such nodes will have to also specify the newly redefined -`--enableprivatesend` option. Non-prunned nodes do not have to do this but they can use `--enableprivatesend` -option to disable mixing completely instead. Please note that specifying this option does not start mixing -automatically anymore (which was the case in previous versions). To automatically start mixing, use the new -`--privatesendautostart` option in addition to `--enableprivatesend`. Additionally, PrivateSend can always be -controlled with the `privatesend` RPC. +The reallocation will take place over 4.5 years with a total of 18 reallocation +periods between the start and end state. The transition is being made gradually +to avoid market volatility and minimize network disruption. -Thanks to LLMQ-based InstantSend and its ability to lock chains of unconfirmed transactions (and not only a single -one like in the legacy system), PrivateSend mixing speed has improved significantly. In such an environment -Liquidity Provider Mode, which was introduced a long time ago to support mixing volume, is no longer needed and -is removed now. As such the `--liquidityprovider` option is not available anymore. +Note that this is a hardfork which must be activated by miners. To do this they +should start creating blocks signalling bit 5 in the `version` field of the block header. -Some other improvements were also introduced to speed up mixing, e.g. by joining more queues or dropping potential -malicious mixing participants faster by checking some rules earlier etc. Lots of related code was refactored to -further improve its readability, which should make it easier for someone to re-implement PrivateSend -correctly in other wallets if there is a desire to do so. +### Reallocation periods -Wallet changes --------------- -Wallet internals were optimized to significantly improve performance which should be especially notable for huge -wallets with tens of thousands of transactions or more. The GUI for such wallets should be much more responsive too now. +Each reallocation period will last three superblock cycles (approximately one +quarter). The following table shows the split of the non-proposal block rewards during +each period. -Running Masternodes from local wallets was deprecated a long time ago and starting from this version we disable -wallet functionality on Masternodes completely. +|Event|Miner|Masternode| +|--|-----|-----| +|Now|50.0%|50.0%| +|1 |48.7%|51.3%| +|2 |47.4%|52.6%| +|3 |46.7%|53.3%| +|4 |46.0%|54.0%| +|5 |45.4%|54.6%| +|6 |44.8%|55.2%| +|7 |44.3%|55.7%| +|8 |43.8%|56.2%| +|9 |43.3%|56.7%| +|10|42.8%|57.2%| +|11|42.3%|57.7%| +|12|41.8%|58.2%| +|13|41.5%|58.5%| +|14|41.2%|58.8%| +|15|40.9%|59.1%| +|16|40.6%|59.4%| +|17|40.3%|59.7%| +|18|40.1%|59.9%| +|End|40.0%|60.0%| -GUI changes ------------ -The Qt GUI went through a refresh to follow branding color guides and to make it feel lighter. All old themes besides -the Traditional one (the one with a minimal styling) were removed and instead a new Dark theme was added. +Dynamic Activation Thresholds +----------------------------- +In Dash we have used lower thresholds (80% vs 95% in BTC) to activate upgrades +via a BIP9-like mechanism for quite some time. While it's preferable to have as much +of the network hashrate signal update readiness as possible, this can result in +quite lengthy upgrades if one large non-upgraded entity stalls +all progress. Simply lowering thresholds even further can result in network +upgrades occurring too quickly and potentially introducing network instability. This version +implements BIP9-like dynamic activation thresholds which drop from some initial +level to a minimally acceptable one over time at an increasing rate. This provides +a safe non-blocking way of activating proposals. -In this version we made a lot of optimizations to remove various lags and lockups, the GUI in general should feel -much more smoother now, especially for huge wallets or when navigating through the masternode list. The latter has -a few new columns (collateral, owner and voting addresses) which give more options to filter and/or sort the list. -All issues with hi-dpi monitors should also be fixed now. +This mechanism applies to the Block Reward Reallocation proposal mentioned above. +Its initial threshold is 80% and it will decrease to a minimum of 60% over the +course of 10 periods. Each period is 4032 blocks (approximately one week). -The "Send" popup dialog was slightly tweaked to improve the language and provide a bit more information about inputs -included in the transaction, its size and the actual resulting fee rate. It will also show the number of inputs -a PrivateSend transaction is going to consume and display a warning regarding sender privacy if this number is 10 -or higher. - -Changes in regtest and devnet p2p/rpc ports -------------------------------------------- -Default p2p and rpc ports for devnets and regtest were changed to ensure their consistency and to avoid -any potential interference with bitcoin's regtests. New default p2p/rpc ports for devnet are 19799/19798, -for regtest - 19899/19898 respectively. - -ZMQ changes ------------ -Added two new messages `rawchainlocksig` and `rawtxlocksig` which return the raw data of the block/transaction -concatenated with the corresponding `clsig`/`islock` message respectively. - -Crash reports and stack traces ------------------------------- -Binaries built with Gitian (including all official releases) will from now on always have crash reports and -crash hooks enabled. This means, that all binaries will print some information about the stack trace at the -time of a crash. If no debug information is present at crash time (which is usually the case), the binaries -will print a line that looks like this: -``` -2020-01-06 14:41:08 Windows Exception: EXCEPTION_ACCESS_VIOLATION -No debug information available for stacktrace. You should add debug information and then run: -dashd.exe -printcrashinfo=bvcgc43iinzgc43ijfxgm3yba.... -``` -If you encounter such a crash, include these lines when you report the crash and we will be able to debug it -further. Anyone interested in running the specified `-printcrashinfo` command can do so after copying the debug info -file from the Gitian build to the same place where the binary is located. This will then print a detailed stack -trace. - -RPC changes ------------ -There are a few changes in existing RPC interfaces in this release: -- no more `instantsend` field in various RPC commands -- `use-IS`, `use_is` and `instantsend` options are deprecated in various RPC commands and have no effect anymore -- added new `merkleRootQuorums` field in `getblock` RPC results -- individual Dash-specific fields which were used to display soft-fork progress in `getblockchaininfo` are replaced - with the backported `statistics` object -- `privatesend_balance` field is shown in all related RPC results regardless of the Lite Mode or PrivateSend state -- added `pubKeyOperator` field for each masternode in `quorum info` RPC response - -There are also new RPC commands: -- `getbestchainlock` -- `getmerkleblocks` -- `getprivatesendinfo` - -`getpoolinfo` was deprecated in favor of `getprivatesendinfo` and no longer returns any data. - -There are also new RPC commands backported from Bitcoin Core 0.15: -- `abortrescan` -- `combinerawtransaction` -- `getblockstats` -- `getchaintxstats` -- `listwallets` -- `logging` -- `uptime` - -Make sure to check Bitcoin Core 0.15 release notes in a [section](#backports-from-bitcoin-core-015) below -for more RPC changes. - -See `help command` in rpc for more info. - -Command-line options --------------------- -Changes in existing cmd-line options: -- `--enableprivatesend` option has a new meaning now, see [PrivateSend](#privatesend) section for more info - -New cmd-line options: -- `--printcrashinfo` -- `--syncmempool` -- `--privatesendautostart` - -Few cmd-line options are no longer supported: -- `--alerts` -- `--masternode`, deprecated, specifying `--masternodeblsprivkey` option alone is enough to enable masternode mode now -- `--liquidityprovider` -- `--enableinstantsend`, dropped due to removal of the Legacy InstantSend - -Make sure to check Bitcoin Core 0.15 release notes in a [section](#backports-from-bitcoin-core-015) below -for more changes in command-line options. - -See `Help -> Command-line options` in Qt wallet or `dashd --help` for more info. - -Build system ------------- -This version always includes stacktraces in binaries now, `--enable-stacktraces` option is no longer available. -Instead you can choose if you want to hook crash reporting into various types of crashes by using `--enable-crash-hooks` -option (default is `no`). When using this option on macOS make sure to build binaries with `make -C src osx_debug`. - -Backports from Bitcoin Core 0.15 --------------------------------- - -Most of the changes between Bitcoin Core 0.14 and Bitcoin Core 0.15 have been backported into Dash Core 0.15. -We only excluded backports which do not align with Dash, like SegWit or RBF related changes. - -You can read about changes brought by backporting from Bitcoin Core 0.15 in following docs: -- https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.15.0.md -- https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.15.1.md - -Some other individual PRs were backported from versions 0.16+, you can find the full list of backported PRs -and additional fixes in https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15-backports.md - -Miscellaneous -------------- -A lot of refactoring, backports, code cleanups and other small fixes were done in this release. Dash-specific -modules were reorganized in separate folders to make navigation through code a bit easier. - -0.15 Change log -=============== - -See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.14.0.5...dashpay:v0.15.0.0). - -- [`3c055bf79`](https://github.com/dashpay/dash/commit/3c055bf79) Bump nMinimumChainWork and defaultAssumeValid (#3336) -- [`818e7a6f7`](https://github.com/dashpay/dash/commit/818e7a6f7) Update release notes -- [`9d5c3d12e`](https://github.com/dashpay/dash/commit/9d5c3d12e) Try to actually accept newly created dstx-es into masternode's mempool (#3332) -- [`f23e722da`](https://github.com/dashpay/dash/commit/f23e722da) Switch CLIENT_VERSION_IS_RELEASE to `true` for v0.15 (#3306) -- [`b57f1dac8`](https://github.com/dashpay/dash/commit/b57f1dac8) Update release notes -- [`15c6df583`](https://github.com/dashpay/dash/commit/15c6df583) Bring back "about" menu icon (#3329) -- [`2c30818f7`](https://github.com/dashpay/dash/commit/2c30818f7) Add pubKeyOperator to `quorum info` rpc response (#3327) -- [`2bbf78c1b`](https://github.com/dashpay/dash/commit/2bbf78c1b) Update release-notes.md -- [`2c305d02d`](https://github.com/dashpay/dash/commit/2c305d02d) Update translations 2020-02-03 (#3322) -- [`672e18e48`](https://github.com/dashpay/dash/commit/672e18e48) Only sync mempool from v0.15+ (proto 70216+) nodes (#3321) -- [`829bde81e`](https://github.com/dashpay/dash/commit/829bde81e) Fix dark text on dark background in combobox dropdowns on windows (#3315) -- [`c0a671e84`](https://github.com/dashpay/dash/commit/c0a671e84) Fix node protection logic false positives (#3314) -- [`8d5fc6e0a`](https://github.com/dashpay/dash/commit/8d5fc6e0a) Merge #13162: [net] Don't incorrectly log that REJECT messages are unknown. -- [`9e711befd`](https://github.com/dashpay/dash/commit/9e711befd) More of 13946 -- [`e5e3572e9`](https://github.com/dashpay/dash/commit/e5e3572e9) Merge #13946: p2p: Clarify control flow in ProcessMessage -- [`dbbc51121`](https://github.com/dashpay/dash/commit/dbbc51121) Add `automake` package to dash-win-signer's packages list (#3307) -- [`fd0f24335`](https://github.com/dashpay/dash/commit/fd0f24335) [Trivial] Release note update (#3308) -- [`058872d4f`](https://github.com/dashpay/dash/commit/058872d4f) Update release-notes.md -- [`546e69f1a`](https://github.com/dashpay/dash/commit/546e69f1a) Fix CActiveMasternodeManager::GetLocalAddress to prefer IPv4 if multiple local addresses are known (#3304) -- [`e4ef7e8d0`](https://github.com/dashpay/dash/commit/e4ef7e8d0) Drop unused `invSet` in `CDKGSession` (#3303) -- [`da7686c93`](https://github.com/dashpay/dash/commit/da7686c93) Update translations 2020-01-23 (#3302) -- [`6b5d3edae`](https://github.com/dashpay/dash/commit/6b5d3edae) Fix dip4-coinbasemerkleroots.py race condition (#3297) -- [`a8213cadb`](https://github.com/dashpay/dash/commit/a8213cadb) Various fixes for DSTX-es (#3295) -- [`2c26bdf2d`](https://github.com/dashpay/dash/commit/2c26bdf2d) Update release-notes.md -- [`1d9adbe63`](https://github.com/dashpay/dash/commit/1d9adbe63) Replace generic CScopedDBTransaction with specialized CEvoDBScopedCommitter (#3292) -- [`8fd486c6b`](https://github.com/dashpay/dash/commit/8fd486c6b) Translations 2020-01 (#3192) -- [`3c54f6527`](https://github.com/dashpay/dash/commit/3c54f6527) Bump copyright year to 2020 (#3290) -- [`35d28c748`](https://github.com/dashpay/dash/commit/35d28c748) Update man pages (#3291) -- [`203cc9077`](https://github.com/dashpay/dash/commit/203cc9077) trivial: adding SVG and high contrast icons (#3209) -- [`e875d4925`](https://github.com/dashpay/dash/commit/e875d4925) Define defaultTheme and darkThemePrefix as constants and use them instead of plain strings (#3288) -- [`1d203b422`](https://github.com/dashpay/dash/commit/1d203b422) Bump PROTOCOL_VERSION to 70216 (#3287) -- [`b84482ac5`](https://github.com/dashpay/dash/commit/b84482ac5) Let regtest have its own qt settings (#3286) -- [`1c885bbed`](https://github.com/dashpay/dash/commit/1c885bbed) Only load valid themes, fallback to "Light" theme otherwise (#3285) -- [`ce924278d`](https://github.com/dashpay/dash/commit/ce924278d) Don't load caches when blocks/chainstate was deleted and also delete old caches (#3280) -- [`ebf529e8a`](https://github.com/dashpay/dash/commit/ebf529e8a) Drop new connection instead of old one when duplicate MNAUTH is received (#3272) -- [`817cd9a17`](https://github.com/dashpay/dash/commit/817cd9a17) AppInitMain should quit early and return `false` if shutdown was requested at some point (#3267) -- [`42e104932`](https://github.com/dashpay/dash/commit/42e104932) Tweak few more strings re mixing and balances (#3265) -- [`d30eeb6f8`](https://github.com/dashpay/dash/commit/d30eeb6f8) Use -Wno-psabi for arm builds on Travis/Gitlab (#3264) -- [`1df3c67a8`](https://github.com/dashpay/dash/commit/1df3c67a8) A few fixes for integration tests (#3263) -- [`6e50a7b2a`](https://github.com/dashpay/dash/commit/6e50a7b2a) Fix params.size() check in "protx list wallet" RPC (#3259) -- [`1a1cec224`](https://github.com/dashpay/dash/commit/1a1cec224) Fix pull request detection in .gitlab-ci.yml (#3256) -- [`31afa9c0f`](https://github.com/dashpay/dash/commit/31afa9c0f) Don't disconnect masternode connections when we have less then the desired amount of outbound nodes (#3255) -- [`cecbbab3c`](https://github.com/dashpay/dash/commit/cecbbab3c) move privatesend rpc methods from rpc/masternode.cpp to new rpc/privatesend.cpp (#3253) -- [`8e054f374`](https://github.com/dashpay/dash/commit/8e054f374) Sync mempool from other nodes on start (#3251) -- [`474f25b8d`](https://github.com/dashpay/dash/commit/474f25b8d) Push islock invs when syncing mempool (#3250) -- [`3b0f8ff8b`](https://github.com/dashpay/dash/commit/3b0f8ff8b) Skip mnsync restrictions for whitelisted and manually added nodes (#3249) -- [`fd94e9c38`](https://github.com/dashpay/dash/commit/fd94e9c38) Streamline, refactor and unify PS checks for mixing entries and final txes (#3246) -- [`c42b20097`](https://github.com/dashpay/dash/commit/c42b20097) Try to avoid being marked as a bad quorum member when we sleep for too long in SleepBeforePhase (#3245) -- [`db6ea1de8`](https://github.com/dashpay/dash/commit/db6ea1de8) Fix log output in CDKGPendingMessages::PushPendingMessage (#3244) -- [`416d85b29`](https://github.com/dashpay/dash/commit/416d85b29) Tolerate parent cache with empty cache-artifact directory (#3240) -- [`0c9c27c6f`](https://github.com/dashpay/dash/commit/0c9c27c6f) Add ccache to gitian packages lists (#3237) -- [`65206833e`](https://github.com/dashpay/dash/commit/65206833e) Fix menu bar text color in Dark theme (#3236) -- [`7331d4edd`](https://github.com/dashpay/dash/commit/7331d4edd) Bump wait_for_chainlocked_block_all_nodes timeout in llmq-is-retroactive.py to 30 sec when mining lots of blocks at once (#3238) -- [`dad102669`](https://github.com/dashpay/dash/commit/dad102669) Update static and dns seeds for mainnet and testnet (#3234) -- [`9378c271b`](https://github.com/dashpay/dash/commit/9378c271b) Modify makesseeds.py to work with "protx list valid 1" instead of "masternode list (#3235) -- [`91a996e32`](https://github.com/dashpay/dash/commit/91a996e32) Make sure mempool txes are properly processed by CChainLocksHandler despite node restarts (#3226) -- [`2b587f0eb`](https://github.com/dashpay/dash/commit/2b587f0eb) Slightly refactor CDKGSessionHandler::SleepBeforePhase (#3224) -- [`fdb05860e`](https://github.com/dashpay/dash/commit/fdb05860e) Don't join thread in CQuorum::~CQuorum when called from within the thread (#3223) -- [`4c00d98ea`](https://github.com/dashpay/dash/commit/4c00d98ea) Allow re-signing of IS locks when performing retroactive signing (#3219) -- [`b4b9d3467`](https://github.com/dashpay/dash/commit/b4b9d3467) Tests: Fix the way nodes are connected to each other in setup_network/start_masternodes (#3221) -- [`dfe99c950`](https://github.com/dashpay/dash/commit/dfe99c950) Decouple cs_mnauth/cs_main (#3220) -- [`08f447af9`](https://github.com/dashpay/dash/commit/08f447af9) Tests: Allow specifying different cmd-line params for each masternode (#3222) -- [`9dad60386`](https://github.com/dashpay/dash/commit/9dad60386) Tweak "Send" popup and refactor related code a bit (#3218) -- [`bb7a32d2e`](https://github.com/dashpay/dash/commit/bb7a32d2e) Add Dark theme (#3216) -- [`05ac4dbb4`](https://github.com/dashpay/dash/commit/05ac4dbb4) Dashify few strings (#3214) -- [`482a549a2`](https://github.com/dashpay/dash/commit/482a549a2) Add collateral, owner and voting addresses to masternode list table (#3207) -- [`37f96f5a3`](https://github.com/dashpay/dash/commit/37f96f5a3) Bump version to 0.15 and update few const-s/chainparams (#3204) -- [`9de994988`](https://github.com/dashpay/dash/commit/9de994988) Compliance changes to terminology (#3211) -- [`d475f17bc`](https://github.com/dashpay/dash/commit/d475f17bc) Fix styles for progress dialogs, shutdown window and text selection (#3212) -- [`df372ec5f`](https://github.com/dashpay/dash/commit/df372ec5f) Fix off-by-one error for coinbase txes confirmation icons (#3206) -- [`1e94e3333`](https://github.com/dashpay/dash/commit/1e94e3333) Fix styling for disabled buttons (#3205) -- [`7677b5578`](https://github.com/dashpay/dash/commit/7677b5578) Actually apply CSS styling to RPC console (#3201) -- [`63cc22d5e`](https://github.com/dashpay/dash/commit/63cc22d5e) More Qt tweaks (#3200) -- [`7aa9c43f8`](https://github.com/dashpay/dash/commit/7aa9c43f8) Few Qt tweaks (#3199) -- [`fd50c1c71`](https://github.com/dashpay/dash/commit/fd50c1c71) Hold cs_main/cs_wallet in main MakeCollateralAmounts (#3197) -- [`460e0f475`](https://github.com/dashpay/dash/commit/460e0f475) Fix locking of funds for mixing (#3194) -- [`415b81e41`](https://github.com/dashpay/dash/commit/415b81e41) Refactor some pow functions (#3198) -- [`b2fed3862`](https://github.com/dashpay/dash/commit/b2fed3862) A few trivial fixes for RPCs (#3196) -- [`f8296364a`](https://github.com/dashpay/dash/commit/f8296364a) Two trivial fixes for logs (#3195) -- [`d5cc88f00`](https://github.com/dashpay/dash/commit/d5cc88f00) Should mark tx as a PS one regardless of change calculations in CreateTransaction (#3193) -- [`e9235b9bb`](https://github.com/dashpay/dash/commit/e9235b9bb) trivial: Rename txid paramater for gobject voteraw (#3191) -- [`70b320bab`](https://github.com/dashpay/dash/commit/70b320bab) Detect masternode mode from masternodeblsprivkey arg (#3188) -- [`1091ab3c6`](https://github.com/dashpay/dash/commit/1091ab3c6) Translations201909 (#3107) -- [`251fb5e69`](https://github.com/dashpay/dash/commit/251fb5e69) Slightly optimize ApproximateBestSubset and its usage for PS txes (#3184) -- [`a55624b25`](https://github.com/dashpay/dash/commit/a55624b25) Fix 3182: Append scrollbar styles (#3186) -- [`1bbe1adb4`](https://github.com/dashpay/dash/commit/1bbe1adb4) Add a simple test for payoutAddress reuse in `protx update_registrar` (#3183) -- [`372389d23`](https://github.com/dashpay/dash/commit/372389d23) Disable styling for scrollbars on macos (#3182) -- [`e0781095f`](https://github.com/dashpay/dash/commit/e0781095f) A couple of fixes for additional indexes (#3181) -- [`d3ce0964b`](https://github.com/dashpay/dash/commit/d3ce0964b) Add Qt GUI refresh w/branding updates (#3000) -- [`9bc699ff2`](https://github.com/dashpay/dash/commit/9bc699ff2) Update activemn if protx info changed (#3176) -- [`bbd9b10d4`](https://github.com/dashpay/dash/commit/bbd9b10d4) Refactor nonLockedTxsByInputs (#3178) -- [`64a913d6f`](https://github.com/dashpay/dash/commit/64a913d6f) Allow empty strings in `protx update_registrar` as an option to re-use current values (#3177) -- [`3c21d2577`](https://github.com/dashpay/dash/commit/3c21d2577) Slightly adjust some README.md files (#3175) -- [`883fcbe8b`](https://github.com/dashpay/dash/commit/883fcbe8b) Always run extended tests in Gitlab CI (#3173) -- [`a7492c1d3`](https://github.com/dashpay/dash/commit/a7492c1d3) Handle coin type via CCoinControl (#3172) -- [`0d1a04905`](https://github.com/dashpay/dash/commit/0d1a04905) Don't show individual messages for each TX when too many come in at once (#3170) -- [`589c89250`](https://github.com/dashpay/dash/commit/589c89250) Fix 2 more bottlenecks causing GUI lockups (#3169) -- [`dfd6ee472`](https://github.com/dashpay/dash/commit/dfd6ee472) Actually update spent index on DisconnectBlock (#3167) -- [`3c818e95b`](https://github.com/dashpay/dash/commit/3c818e95b) Only track last seen time instead of first and last seen time (#3165) -- [`df3dbe85b`](https://github.com/dashpay/dash/commit/df3dbe85b) Wait for sporks to propagate in llmq-chainlocks.py before mining new blocks (#3168) -- [`8cbd63d9e`](https://github.com/dashpay/dash/commit/8cbd63d9e) Make HD wallet warning a bit more natural (#3164) -- [`001c4338b`](https://github.com/dashpay/dash/commit/001c4338b) Improved messaging for ip address errors (#3163) -- [`33d04ebf2`](https://github.com/dashpay/dash/commit/33d04ebf2) Disable move ctor/operator for CKeyHolder (#3162) -- [`da2f503a4`](https://github.com/dashpay/dash/commit/da2f503a4) Fix largest part of GUI lockups with large wallets (#3155) -- [`3c6b5f98e`](https://github.com/dashpay/dash/commit/3c6b5f98e) Use wallet UTXOs whenever possible to avoid looping through all wallet txes (#3156) -- [`4db91c605`](https://github.com/dashpay/dash/commit/4db91c605) Fix Gitlab cache issues (#3160) -- [`e9ed35482`](https://github.com/dashpay/dash/commit/e9ed35482) Partially revert 3061 (#3150) -- [`4b6af8f2c`](https://github.com/dashpay/dash/commit/4b6af8f2c) Few fixes related to SelectCoinsGroupedByAddresses (#3144) -- [`859d60f81`](https://github.com/dashpay/dash/commit/859d60f81) Don't use $CACHE_DIR in after_script (#3159) -- [`be127bc2e`](https://github.com/dashpay/dash/commit/be127bc2e) Replace vecAskFor with a priority queue (#3147) -- [`a13a9182d`](https://github.com/dashpay/dash/commit/a13a9182d) Add missing "notfound" and "getsporks" to messagemap (#3146) -- [`efd8d2c82`](https://github.com/dashpay/dash/commit/efd8d2c82) Avoid propagating InstantSend related old recovered sigs (#3145) -- [`24fee3051`](https://github.com/dashpay/dash/commit/24fee3051) Add support for Gitlab CI (#3149) -- [`1cbe280ad`](https://github.com/dashpay/dash/commit/1cbe280ad) Qt: Remove old themes (#3141) -- [`dcdf1f3a6`](https://github.com/dashpay/dash/commit/dcdf1f3a6) Some refactoring for spork related functionality in tests (#3137) -- [`411241471`](https://github.com/dashpay/dash/commit/411241471) Introduce getprivatesendinfo and deprecate getpoolinfo (#3140) -- [`152c10bc4`](https://github.com/dashpay/dash/commit/152c10bc4) Various fixes for mixing queues (#3138) -- [`e0c56246f`](https://github.com/dashpay/dash/commit/e0c56246f) Fixes and refactorings related to using mnsync in tests (#3136) -- [`f8e238c5b`](https://github.com/dashpay/dash/commit/f8e238c5b) [Trivial] RPC help updates (#3134) -- [`d49ee618f`](https://github.com/dashpay/dash/commit/d49ee618f) Add more logging to DashTestFramework (#3130) -- [`cd6c5b4b4`](https://github.com/dashpay/dash/commit/cd6c5b4b4) Multiple fixes for ChainLock tests (#3129) -- [`e06c116d2`](https://github.com/dashpay/dash/commit/e06c116d2) Actually pass extra_args to nodes in assumevalid.py (#3131) -- [`737ac967f`](https://github.com/dashpay/dash/commit/737ac967f) Refactor some Dash-specific `wait_for*` functions in tests (#3122) -- [`b4aefb513`](https://github.com/dashpay/dash/commit/b4aefb513) Also consider txindex for transactions in AlreadyHave() (#3126) -- [`d9e98e31e`](https://github.com/dashpay/dash/commit/d9e98e31e) Fix scripted diff check condition (#3128) -- [`bad3243b8`](https://github.com/dashpay/dash/commit/bad3243b8) Bump mocktime before generating new blocks and generate a few blocks at the end of `test_mempool_doublespend` in `p2p-instantsend.py` (#3125) -- [`82ebba18f`](https://github.com/dashpay/dash/commit/82ebba18f) Few fixes for `wait_for_instantlock` (#3123) -- [`a2fa9bb7e`](https://github.com/dashpay/dash/commit/a2fa9bb7e) Ignore recent rejects filter for locked txes (#3124) -- [`2ca2138fc`](https://github.com/dashpay/dash/commit/2ca2138fc) Whitelist nodes in llmq-dkgerrors.py (#3112) -- [`a8fa5cff9`](https://github.com/dashpay/dash/commit/a8fa5cff9) Make orphan TX map limiting dependent on total TX size instead of TX count (#3121) -- [`746b5f8cd`](https://github.com/dashpay/dash/commit/746b5f8cd) Remove commented out code (#3117) -- [`3ac583cce`](https://github.com/dashpay/dash/commit/3ac583cce) docs: Add packages for building in Alpine Linux (#3115) -- [`c5da93851`](https://github.com/dashpay/dash/commit/c5da93851) A couple of minor improvements in IS code (#3114) -- [`43b7c31d9`](https://github.com/dashpay/dash/commit/43b7c31d9) Wait for the actual best block chainlock in llmq-chainlocks.py (#3109) -- [`22ac6ba4e`](https://github.com/dashpay/dash/commit/22ac6ba4e) Make sure chainlocks and blocks are propagated in llmq-is-cl-conflicts.py before moving to next steps (#3108) -- [`9f1ee8c70`](https://github.com/dashpay/dash/commit/9f1ee8c70) scripted-diff: Refactor llmq type consensus param names (#3093) -- [`1c74b668b`](https://github.com/dashpay/dash/commit/1c74b668b) Introduce getbestchainlock rpc and fix llmq-is-cl-conflicts.py (#3094) -- [`ac0270871`](https://github.com/dashpay/dash/commit/ac0270871) Respect `logips` config option in few more log outputs (#3078) -- [`d26b6a84c`](https://github.com/dashpay/dash/commit/d26b6a84c) Fix a couple of issues with PS fee calculations (#3077) -- [`40399fd97`](https://github.com/dashpay/dash/commit/40399fd97) Circumvent BIP69 sorting in fundrawtransaction.py test (#3100) -- [`e2d651f60`](https://github.com/dashpay/dash/commit/e2d651f60) Add OpenSSL termios fix for musl libc (#3099) -- [`783653f6a`](https://github.com/dashpay/dash/commit/783653f6a) Ensure execinfo.h and linker flags set in autoconf (#3098) -- [`7320c3da2`](https://github.com/dashpay/dash/commit/7320c3da2) Refresh zmq 4.1.5 patches (#3092) -- [`822e617be`](https://github.com/dashpay/dash/commit/822e617be) Fix chia_bls include prefix (#3091) -- [`35f079cbf`](https://github.com/dashpay/dash/commit/35f079cbf) Remove unused code (#3097) -- [`1acde17e8`](https://github.com/dashpay/dash/commit/1acde17e8) Don't care about governance cache while the blockchain isn't synced yet (#3089) -- [`0d126c2ae`](https://github.com/dashpay/dash/commit/0d126c2ae) Use chainparams factory for devnet (#3087) -- [`ac90abe89`](https://github.com/dashpay/dash/commit/ac90abe89) When mixing, always try to join an exsisting queue, only fall back to starting a new queue (#3085) -- [`68d575dc0`](https://github.com/dashpay/dash/commit/68d575dc0) Masternodes should have no wallet enabled (#3084) -- [`6b5b70fab`](https://github.com/dashpay/dash/commit/6b5b70fab) Remove liquidity provider privatesend (#3082) -- [`0b2221ed6`](https://github.com/dashpay/dash/commit/0b2221ed6) Clarify default max peer connections (#3081) -- [`c22169d57`](https://github.com/dashpay/dash/commit/c22169d57) Reduce non-debug PS log output (#3076) -- [`41ae1c7e2`](https://github.com/dashpay/dash/commit/41ae1c7e2) Add LDFLAGS_WRAP_EXCEPTIONS to dash_fuzzy linking (#3075) -- [`77b88558e`](https://github.com/dashpay/dash/commit/77b88558e) Update/modernize macOS plist (#3074) -- [`f1ff14818`](https://github.com/dashpay/dash/commit/f1ff14818) Fix bip69 vs change position issue (#3063) -- [`9abc39383`](https://github.com/dashpay/dash/commit/9abc39383) Refactor few things here and there (#3066) -- [`3d5eabcfb`](https://github.com/dashpay/dash/commit/3d5eabcfb) Update/unify `debug` and `logging` rpc descriptions (#3071) -- [`0e94e97cc`](https://github.com/dashpay/dash/commit/0e94e97cc) Add missing tx `type` to `TxToUniv` (#3069) -- [`becca24fc`](https://github.com/dashpay/dash/commit/becca24fc) Few fixes in docs/comments (#3068) -- [`9d109d6a3`](https://github.com/dashpay/dash/commit/9d109d6a3) Add missing `instantlock`/`instantlock_internal` to `getblock`'s `verbosity=2` mode (#3067) -- [`0f088d03a`](https://github.com/dashpay/dash/commit/0f088d03a) Change regtest and devnet p2p/rpc ports (#3064) -- [`190542256`](https://github.com/dashpay/dash/commit/190542256) Rework govobject/trigger cleanup a bit (#3070) -- [`386de78bc`](https://github.com/dashpay/dash/commit/386de78bc) Fix SelectCoinsMinConf to allow instant respends (#3061) -- [`cbbeec689`](https://github.com/dashpay/dash/commit/cbbeec689) RPC Getrawtransaction fix (#3065) -- [`1e3496799`](https://github.com/dashpay/dash/commit/1e3496799) Added getmemoryinfo parameter string update (#3062) -- [`9d2d8cced`](https://github.com/dashpay/dash/commit/9d2d8cced) Add a few malleability tests for DIP2/3 transactions (#3060) -- [`4983f7abb`](https://github.com/dashpay/dash/commit/4983f7abb) RPC Fix typo in getmerkleblocks help (#3056) -- [`a78dcfdec`](https://github.com/dashpay/dash/commit/a78dcfdec) Add the public GPG key for Pasta for Gitian building (#3057) -- [`929c892c0`](https://github.com/dashpay/dash/commit/929c892c0) Remove p2p alert leftovers (#3050) -- [`dd7873857`](https://github.com/dashpay/dash/commit/dd7873857) Re-verify invalid IS sigs when the active quorum set rotated (#3052) -- [`13e023510`](https://github.com/dashpay/dash/commit/13e023510) Remove recovered sigs from the LLMQ db when corresponding IS locks get confirmed (#3048) -- [`4a7525da3`](https://github.com/dashpay/dash/commit/4a7525da3) Add "instantsendlocks" to getmempoolinfo RPC (#3047) -- [`fbb49f92d`](https://github.com/dashpay/dash/commit/fbb49f92d) Bail out properly on Evo DB consistency check failures in ConnectBlock/DisconnectBlock (#3044) -- [`8d89350b8`](https://github.com/dashpay/dash/commit/8d89350b8) Use less alarming fee warning note (#3038) -- [`02f6188e8`](https://github.com/dashpay/dash/commit/02f6188e8) Do not count 0-fee txes for fee estimation (#3037) -- [`f0c73f5ce`](https://github.com/dashpay/dash/commit/f0c73f5ce) Revert "Skip mempool.dat when wallet is starting in "zap" mode (#2782)" -- [`be3bc48c9`](https://github.com/dashpay/dash/commit/be3bc48c9) Fix broken link in PrivateSend info dialog (#3031) -- [`acab8c552`](https://github.com/dashpay/dash/commit/acab8c552) Add Dash Core Group codesign certificate (#3027) -- [`a1c4321e9`](https://github.com/dashpay/dash/commit/a1c4321e9) Fix osslsigncode compile issue in gitian-build (#3026) -- [`2f21e5551`](https://github.com/dashpay/dash/commit/2f21e5551) Remove legacy InstantSend code (#3020) -- [`7a440d626`](https://github.com/dashpay/dash/commit/7a440d626) Optimize on-disk deterministic masternode storage to reduce size of evodb (#3017) -- [`85fcf32c9`](https://github.com/dashpay/dash/commit/85fcf32c9) Remove support for InstantSend locked gobject collaterals (#3019) -- [`bdec34c94`](https://github.com/dashpay/dash/commit/bdec34c94) remove DS mixes once they have been included in a chainlocked block (#3015) -- [`ee9adb948`](https://github.com/dashpay/dash/commit/ee9adb948) Use std::unique_ptr for mnList in CSimplifiedMNList (#3014) -- [`b401a3baa`](https://github.com/dashpay/dash/commit/b401a3baa) Fix compilation on Ubuntu 16.04 (#3013) -- [`c6eededca`](https://github.com/dashpay/dash/commit/c6eededca) Add "isValidMember" and "memberIndex" to "quorum memberof" and allow to specify quorum scan count (#3009) -- [`b9aadc071`](https://github.com/dashpay/dash/commit/b9aadc071) Fix excessive memory use when flushing chainstate and EvoDB (#3008) -- [`780bffeb7`](https://github.com/dashpay/dash/commit/780bffeb7) Enable stacktrace support in gitian builds (#3006) -- [`5809c5c3d`](https://github.com/dashpay/dash/commit/5809c5c3d) Implement "quorum memberof" (#3004) -- [`63424fb26`](https://github.com/dashpay/dash/commit/63424fb26) Fix 2 common Travis failures which happen when Travis has network issues (#3003) -- [`09b017fc5`](https://github.com/dashpay/dash/commit/09b017fc5) Only load signingActiveQuorumCount + 1 quorums into cache (#3002) -- [`b75e1cebd`](https://github.com/dashpay/dash/commit/b75e1cebd) Decouple lite mode and client-side PrivateSend (#2893) -- [`b9a738528`](https://github.com/dashpay/dash/commit/b9a738528) Remove skipped denom from the list on tx commit (#2997) -- [`5bdb2c0ce`](https://github.com/dashpay/dash/commit/5bdb2c0ce) Revert "Show BIP9 progress in getblockchaininfo (#2435)" -- [`b62db7618`](https://github.com/dashpay/dash/commit/b62db7618) Revert " Add real timestamp to log output when mock time is enabled (#2604)" -- [`1f6e0435b`](https://github.com/dashpay/dash/commit/1f6e0435b) [Trivial] Fix a typo in a comment in mnauth.h (#2988) -- [`f84d5d46d`](https://github.com/dashpay/dash/commit/f84d5d46d) QT: Revert "Force TLS1.0+ for SSL connections" (#2985) -- [`2e13d1305`](https://github.com/dashpay/dash/commit/2e13d1305) Add some comments to make quorum merkle root calculation more clear+ (#2984) -- [`6677a614a`](https://github.com/dashpay/dash/commit/6677a614a) Run extended tests when Travis is started through cron (#2983) -- [`d63202bdc`](https://github.com/dashpay/dash/commit/d63202bdc) Should send "reject" when mixing queue is full (#2981) -- [`8d5781f40`](https://github.com/dashpay/dash/commit/8d5781f40) Stop reporting/processing the number of mixing participants in DSSTATUSUPDATE (#2980) -- [`7334aa553`](https://github.com/dashpay/dash/commit/7334aa553) adjust privatesend formatting and follow some best practices (#2979) -- [`f14179ca0`](https://github.com/dashpay/dash/commit/f14179ca0) [Tests] Remove unused variable and inline another variable in evo_deterministicmns_tests.cpp (#2978) -- [`2756cb795`](https://github.com/dashpay/dash/commit/2756cb795) remove spork 12 (#2754) -- [`633231092`](https://github.com/dashpay/dash/commit/633231092) Provide correct params to AcceptToMemoryPoolWithTime() in LoadMempool() (#2976) -- [`e03538778`](https://github.com/dashpay/dash/commit/e03538778) Back off for 1m when connecting to quorum masternodes (#2975) -- [`bfcfb70d8`](https://github.com/dashpay/dash/commit/bfcfb70d8) Ignore blocks that do not match the filter in getmerkleblocks rpc (#2973) -- [`4739daddc`](https://github.com/dashpay/dash/commit/4739daddc) Process/keep messages/connections from PoSe-banned MNs (#2967) -- [`864856688`](https://github.com/dashpay/dash/commit/864856688) Multiple speed optimizations for deterministic MN list handling (#2972) -- [`d931cb723`](https://github.com/dashpay/dash/commit/d931cb723) Update copyright date (2019) (#2970) -- [`a83b63186`](https://github.com/dashpay/dash/commit/a83b63186) Fix UI masternode list (#2966) -- [`85c9ea400`](https://github.com/dashpay/dash/commit/85c9ea400) Throw a bit more descriptive error message on UpgradeDB failure on pruned nodes (#2962) -- [`2c5e2bc6c`](https://github.com/dashpay/dash/commit/2c5e2bc6c) Inject custom specialization of std::hash for SporkId enum into std (#2960) -- [`809aae73a`](https://github.com/dashpay/dash/commit/809aae73a) RPC docs helper updates (#2949) -- [`09d66c776`](https://github.com/dashpay/dash/commit/09d66c776) Fix compiler warning (#2956) -- [`26bd0d278`](https://github.com/dashpay/dash/commit/26bd0d278) Fix bls and bls_dkg bench (#2955) -- [`d28d318aa`](https://github.com/dashpay/dash/commit/d28d318aa) Remove logic for handling objects and votes orphaned by not-yet-known MNs (#2954) -- [`e02c562aa`](https://github.com/dashpay/dash/commit/e02c562aa) [RPC] Remove check for deprecated `masternode start-many` command (#2950) -- [`fc73b4d6e`](https://github.com/dashpay/dash/commit/fc73b4d6e) Refactor sporks to get rid of repeated if/else blocks (#2946) -- [`a149ca747`](https://github.com/dashpay/dash/commit/a149ca747) Remove references to instantx and darksend in sendcoinsdialog.cpp (#2936) -- [`b74cd3e10`](https://github.com/dashpay/dash/commit/b74cd3e10) Only require valid collaterals for votes and triggers (#2947) -- [`66b336c93`](https://github.com/dashpay/dash/commit/66b336c93) Use Travis stages instead of custom timeouts (#2948) -- [`5780fa670`](https://github.com/dashpay/dash/commit/5780fa670) Remove duplicate code from src/Makefile.am (#2944) -- [`428f30450`](https://github.com/dashpay/dash/commit/428f30450) Implement `rawchainlocksig` and `rawtxlocksig` (#2930) -- [`c08e76101`](https://github.com/dashpay/dash/commit/c08e76101) Tighten rules for DSVIN/DSTX (#2897) -- [`f1fe24b67`](https://github.com/dashpay/dash/commit/f1fe24b67) Only gracefully timeout Travis when integration tests need to be run (#2933) -- [`7c05aa821`](https://github.com/dashpay/dash/commit/7c05aa821) Also gracefully timeout Travis builds when building source takes >30min (#2932) -- [`5652ea023`](https://github.com/dashpay/dash/commit/5652ea023) Show number of InstantSend locks in Debug Console (#2919) -- [`a3f030609`](https://github.com/dashpay/dash/commit/a3f030609) Implement getmerkleblocks rpc (#2894) -- [`32aa229c7`](https://github.com/dashpay/dash/commit/32aa229c7) Reorganize Dash Specific code into folders (#2753) -- [`acbf0a221`](https://github.com/dashpay/dash/commit/acbf0a221) Bump version to 0.14.1 (#2928) - -External wallet files +Concentrated Recovery --------------------- +In the current system, signature shares are propagated to all LLMQ members +until one of them has collected enough shares to recover the signature. All +members keep propagating and verifying each share until this recovered signature +is propagated in the LLMQ. This causes significant load on the LLMQ and results +in decreased throughput. -The `-wallet=` option now accepts full paths instead of requiring wallets -to be located in the -walletdir directory. +This new system initially sends all shares to a single deterministically selected node, +so that this node can recover the signature and propagate the recovered signature. +This way only the recovered signature needs to be propagated and verified by all +members. After sending their share to this node, each member waits for a +timeout and then sends their share to another deterministically selected member. +This process is repeated until a recovered signature is finally created and propagated. -Newly created wallet format ---------------------------- +This timeout begins at two seconds and increases exponentially up to ten seconds +(i.e. `2,4,8,10,10`) for each node that times out. This is to minimize the time +taken to generate a signature if the recovery node is down, while also +minimizing the traffic generated when the network is under stress. -If `-wallet=` is specified with a path that does not exist, it will now -create a wallet directory at the specified location (containing a wallet.dat -data file, a db.log file, and database/log.?????????? files) instead of just +The new system is activated with the newly added `SPORK_21_QUORUM_ALL_CONNECTED` +which has two hardcoded values with a special meaning: `0` activates Concentrated +Recovery for every LLMQ and `1` excludes `400_60` and `400_85` quorums. + +Increased number of masternode connections +------------------------------------------ +To implement "Concentrated Recovery", it is now necessary for all members of a LLMQ +to connect to all other members of the same LLMQ. This significantly increases the general +connection count for masternodes. Although these intra-quorum connections are less resource +intensive than normal p2p connections (as they only exchange LLMQ/masternode related +messages), masternode hardware and network requirements will still be higher than before. + +Initially this change will only be activated for the smaller LLMQs (50 members). +Eventually it may be activated for larger quorums (400 members). + +This is also controlled via `SPORK_21_QUORUM_ALL_CONNECTED`. + +Masternode Connection Probing +----------------------------- +While each LLMQ member must have a connection to each other member, it's not necessary +for all members to actually connect to all other members. This is because only +one of a pair of two masternodes need to initiate the connection while the other one can +wait for an incoming connection. Probing is done in the case where a masternode doesn't +really need an outbound connection, but still wants to verify that the other side +has its port open. This is done by initiating a short lived connection, waiting +for `MNAUTH` to succeed and then disconnecting again. + +After this process, each member of a LLMQ knows which members are unable to accept +connections, after which they will vote on these members to be "bad". + +Masternode Minimum Protocol Version Checks +------------------------------------------ +Members of LLMQs will now also check all other members for minimum protocol versions +while in DKG. If a masternode determines that another LLMQ member has a protocol +version that is too low, it will vote for the other member to be "bad". + +PoSe punishment/banning +----------------------- +If 80% of all LLMQ members voted for the same member to be bad, it is excluded +in the final stages of the DKG. This causes the bad masternode to get PoSe punished +and then eventually PoSe banned. + +Network performance improvements +-------------------------------- +This version of Dash Core includes multiple optimizations to the network and p2p message +handling code. The most important one is the introduction of `epoll` on linux-based +systems. This removes most of the CPU overhead caused by the sub-optimal use of `select`, +which could easily use up 50-80% of the CPU time spent in the network thread when many +connections were involved. + +Since these optimizations are exclusive to linux, it is possible that masternodes hosted +on windows servers will be unable to handle the network load and should consider migrating +to a linux based operating system. + +Other improvements were made to the p2p message handling code, so that LLMQ +related connections do less work than full/normal p2p connections. + +Wallet files +------------ +The `--wallet=` option now accepts full paths instead of requiring +wallets to be located in the `-walletdir` directory. + +If `--wallet=` is specified with a path that does not exist, it will now +create a wallet directory at the specified location (containing a `wallet.dat` +data file, a `db.log` file, and `database/log.??????????` files) instead of just creating a data file at the path and storing log files in the parent directory. This should make backing up wallets more straightforward than before because the specified wallet path can just be directly archived without having to look in the parent directory for transaction log files. For backwards compatibility, wallet paths that are names of existing data files -in the `-walletdir` directory will continue to be accepted and interpreted the +in the `--walletdir` directory will continue to be accepted and interpreted the same as before. -Low-level RPC changes ---------------------- +When Dash Core is not started with any `--wallet=` options, the name of +the default wallet returned by `getwalletinfo` and `listwallets` RPCs is +now the empty string `""` instead of `"wallet.dat"`. If Dash Core is started +with any `--wallet=` options, there is no change in behavior, and the +name of any wallet is just its `` string. -- When Dash Core is not started with any `-wallet=` options, the name of - the default wallet returned by `getwalletinfo` and `listwallets` RPCs is - now the empty string `""` instead of `"wallet.dat"`. If Dash Core is started - with any `-wallet=` options, there is no change in behavior, and the - name of any wallet is just its `` string. +PrivateSend coin management improvements +---------------------------------------- +A new algorithm for the creation of mixing denominations was implemented which +should reduce the number of the smallest inputs created and give users more +control on soft and hard caps. A much more accurate fee management algorithm was +also implemented which should fix issues for users who have custom fees +specified in wallet config or in times when network is under load. + +There is a new "PrivateSend" tab in the GUI which allows spending fully +mixed coins only. The CoinControl feature was also improved to display coins +based on the tab it was opened in, to protect users from accidentally spending +mixed and non-mixed coins in the same transaction and to give better overview of +spendable mixed coins. + +PrivateSend Random Round Mixing +------------------------------- +Some potential attacks on PrivateSend assume that all inputs had been mixed +for the same number of rounds (up to 16). While this assumption alone is not +enough to break PrivateSend privacy, it could still provide some additional +information for other methods like cluster analysis and help to narrow results. + +With Random Round Mixing, an input will be mixed to N rounds like prior. However, +at this point, a salted hash of each input is used to pick ~50% of inputs to +be mixed for another round. This rule is then executed again on the new inputs. +This results in an exponential decay where if you mix a set +of inputs, half of those inputs will be mixed for N rounds, 1/4 will be mixed N+1, +1/8 will be mixed N+2, etc. Current implementation caps it at N+3 which results +in mixing an average of N+0.875 rounds and sounds like a reasonable compromise +given the privacy gains. + +GUI changes +----------- +All dialogs, tabs, icons, colors and interface elements were reworked to improve +user experience, let the wallet look more consistent and to make the GUI more +flexible. There is a new "Appearance setup" dialog that will show up on the first start +of this version and a corresponding tab has been added to the options which allows the +user to pick a theme and to tweak the font family, the font weight and the font size. +This feature specifically should help users who had font size/scaling issues previously. + +For advanced users and developers there is a new way to control the wallet's look +by specifying a path to custom css files via `--custom-css-dir`. Additionally, the new +`--debug-ui` will force Dash Core to reload the custom css files as soon as they get updated +which makes it possible to see and debug all css adjustments live in the running GUI. + +From now on the "Pay To" field in "Send" and "PrivateSend" tabs also accepts Dash URIs. +The Dash address and the amount from the URI are assigned to corresponding fields automatically +if a Dash URI gets pasted into the field. + +Sporks +------ +Two new sporks were introduced in this version: +- `SPORK_21_QUORUM_ALL_CONNECTED` allows to control Concentrated Recovery and +Masternode Probing activation; +- `SPORK_22_PS_MORE_PARTICIPANTS` raises the number of users that can participate +in a single PrivateSend mixing transaction to 20. + +Sporks `SPORK_15_DETERMINISTIC_MNS_ENABLED`, `SPORK_16_INSTANTSEND_AUTOLOCKS` +and `SPORK_20_INSTANTSEND_LLMQ_BASED` which were previously deprecated in v0.15 +are completely removed now. `SPORK_6_NEW_SIGS` was never activated on mainnet +and was also removed in this version. + +Build system +------------ +The minimum version of the GCC compiler required to compile Dash Core is now 4.8. +The minimum version of Qt is now 5.5.1. Some packages in `depends/` as well as +`secp256k1` and `leveldb` subtrees were updated to newer versions. + +RPC changes +----------- +There are a few changes in existing RPC interfaces in this release: +- `getpeerinfo` has new field `masternode` to indicate whether connection was + due to masternode connection attempt +- `getprivatesendinfo` `denoms` field was replaced by `denoms_goal` and + `denoms_hardcap` +- `listunspent` has new filter option `coinType` to be able to filter different + types of coins (all, mixed etc.) +- `protx diff` returns more detailed information about new quorums +- `quorum dkgstatus` shows `quorumConnections` for each LLMQ with detailed + information about each participating masternode +- `quorum sign` has an optional `quorumHash` argument to pick the exact quorum +- `socketevents` in `getnetworkinfo` rpc shows the socket events mode, + either `epoll`, `poll` or `select` + +There are also new RPC commands: +- `quorum selectquorum` returns the quorum that would/should sign a request + +There are also new RPC commands backported from Bitcoin Core 0.16: +- `help-console` for more info about using console in Qt +- `loadwallet` loads a wallet from a wallet file or directory +- `rescanblockchain` rescans the local blockchain for wallet related transactions +- `savemempool` dumps the mempool to disk + +Please check Bitcoin Core 0.16 release notes in a [section](#backports-from-bitcoin-core-016) +below and `help ` in rpc for more information. + +Command-line options +-------------------- +Changes in existing cmd-line options: + +New cmd-line options: +- `--custom-css-dir` +- `--debug-ui` +- `--disablegovernance` +- `--font-family` +- `--font-scale` +- `--font-weight-bold` +- `--font-weight-normal` +- `--llmqdevnetparams` +- `--llmqtestparams` +- `--privatesenddenomsgoal` +- `--privatesenddenomshardcap` +- `--socketevents` + +Few cmd-line options are no longer supported: +- `--litemode` +- `--privatesenddenoms` + +There are also new command-line options backported from Bitcoin Core 0.16: +- `--addrmantest` +- `--debuglogfile` +- `--deprecatedrpc` +- `--enablebip61` +- `--getinfo` +- `--stdinrpcpass` + +Please check Bitcoin Core 0.16 release notes in a [section](#backports-from-bitcoin-core-016) +below and `Help -> Command-line options` in Qt wallet or `dashd --help` for more information. + +Backports from Bitcoin Core 0.16 +-------------------------------- + +Most of the changes between Bitcoin Core 0.15 and Bitcoin Core 0.16 have been +backported into Dash Core 0.16. We only excluded backports which do not align +with Dash, like SegWit or RBF related changes. + +You can read about changes brought by backporting from Bitcoin Core 0.16 in +following docs: +- https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.16.0.md +- https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.16.1.md +- https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.16.2.md + +Some other individual PRs were backported from versions 0.17+, you can find the +full list of backported PRs and additional fixes in [release-notes-0.16-backports.md](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16-backports.md) + +Miscellaneous +------------- +A lot of refactoring, code cleanups and other small fixes were done in this release. + +0.16 Change log +=============== + +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.15.0.0...dashpay:v0.16.0.1). + +- [`37fe9a6e2f`](https://github.com/dashpay/dash/commit/37fe9a6e2f) Fix mempool sync (#3725) +- [`69b77765ba`](https://github.com/dashpay/dash/commit/69b77765ba) qt: Fix font family updates (#3746) +- [`cf2da32ffe`](https://github.com/dashpay/dash/commit/cf2da32ffe) qt: Fix font size and scaling issues (#3734) +- [`586f166499`](https://github.com/dashpay/dash/commit/586f166499) qt: Fix Recent transactions list height (#3744) +- [`12d0782071`](https://github.com/dashpay/dash/commit/12d0782071) Translations 2020-09 (#3736) +- [`fc8ca6ad50`](https://github.com/dashpay/dash/commit/fc8ca6ad50) Bump few things and update man pages for v0.16 (#3737) +- [`8e6706dede`](https://github.com/dashpay/dash/commit/8e6706dede) qt: Add PrivateSend tab in OptionsDialog, allow to show/hide PS UI (#3717) +- [`dbfdf8cb15`](https://github.com/dashpay/dash/commit/dbfdf8cb15) qt: Finetune OverviewPage (#3715) +- [`9028712b60`](https://github.com/dashpay/dash/commit/9028712b60) qt: Finetune TransactionsView (#3710) +- [`f4e3bf95d0`](https://github.com/dashpay/dash/commit/f4e3bf95d0) qt: Finetune CoinControlDialog + bitcoin#14828 (#3701) +- [`e405f553b9`](https://github.com/dashpay/dash/commit/e405f553b9) RPC: Update getprivatesendinfo help (#3727) +- [`b4a78fb285`](https://github.com/dashpay/dash/commit/b4a78fb285) Fix testnet icon (#3726) +- [`3650ee6556`](https://github.com/dashpay/dash/commit/3650ee6556) qt: Remove unused assets (#3721) +- [`cb078422cd`](https://github.com/dashpay/dash/commit/cb078422cd) qt: Finetune RPCConsole (#3720) +- [`a198a74a4f`](https://github.com/dashpay/dash/commit/a198a74a4f) privatesend: Avoid interacting with keypool in CTransactionBuilder ctor (#3723) +- [`f601122cbd`](https://github.com/dashpay/dash/commit/f601122cbd) qt: Hide remaining PrivateSend UI if PrivateSend is not enabled (#3716) +- [`c7896eb657`](https://github.com/dashpay/dash/commit/c7896eb657) qt: Disable missing macOS focus rects in AddressBookPage (#3711) +- [`c136522e84`](https://github.com/dashpay/dash/commit/c136522e84) qt: Finetune Options Dialog (#3709) +- [`bb0d5d4808`](https://github.com/dashpay/dash/commit/bb0d5d4808) qt: Make sure send confirmation dialog uses correct font settings (#3714) +- [`ab5ffe3c11`](https://github.com/dashpay/dash/commit/ab5ffe3c11) qt: Use scaled font size for all QToolTip instances (#3708) +- [`42b606ea76`](https://github.com/dashpay/dash/commit/42b606ea76) qt: Make sure font size in TransactionDescDialog is adjusted properly (#3707) +- [`8fa280140a`](https://github.com/dashpay/dash/commit/8fa280140a) qt: Tweak few strings (#3706) +- [`a70056c5a8`](https://github.com/dashpay/dash/commit/a70056c5a8) privatesend: Implement Random Round Mixing (#3661) +- [`eb163c53a5`](https://github.com/dashpay/dash/commit/eb163c53a5) Implement dynamic activation thresholds (#3692) +- [`7d6aba47cf`](https://github.com/dashpay/dash/commit/7d6aba47cf) Implement Block Reward Reallocation (#3691) +- [`19aab3a1d8`](https://github.com/dashpay/dash/commit/19aab3a1d8) qt|wallet: Fix "Use available balance" for PrivateSend (#3700) +- [`37af70a188`](https://github.com/dashpay/dash/commit/37af70a188) Merge #13622: Remove mapRequest tracking that just effects Qt display. (#3694) +- [`e13c746a7d`](https://github.com/dashpay/dash/commit/e13c746a7d) chainparams: Remove llmq_50_60 from regtest (#3696) +- [`f2c1a9213c`](https://github.com/dashpay/dash/commit/f2c1a9213c) Fix two potential issues in the way pending islocks are processed (#3678) +- [`01a3a6c81a`](https://github.com/dashpay/dash/commit/01a3a6c81a) qt: Finetune ModalOverlay (#3699) +- [`16f9d94404`](https://github.com/dashpay/dash/commit/16f9d94404) qt: Make sure the statusbar reflects internal states correct (#3698) +- [`9e425d66c6`](https://github.com/dashpay/dash/commit/9e425d66c6) Partially merge #3604: +- [`2bb94c73eb`](https://github.com/dashpay/dash/commit/2bb94c73eb) masternode|net|rpc: Improve masternode sync process (#3690) +- [`aa81a06264`](https://github.com/dashpay/dash/commit/aa81a06264) masternode|rpc: Remove unused code (#3689) +- [`2e92237865`](https://github.com/dashpay/dash/commit/2e92237865) qt: Improved status bar (#3688) +- [`54ed089f97`](https://github.com/dashpay/dash/commit/54ed089f97) test: Implement unit tests for CTransactionBuilder (#3677) +- [`ab0f789be6`](https://github.com/dashpay/dash/commit/ab0f789be6) wallet: Fix and improve CWallet::CreateTransaction (#3668) +- [`dd55609d6b`](https://github.com/dashpay/dash/commit/dd55609d6b) test: Implement unit tests for CWallet::CreateTransaction (#3667) +- [`9c988d5b5a`](https://github.com/dashpay/dash/commit/9c988d5b5a) privatesend|wallet|qt: Improve calculations in CreateDenominated/MakeCollateralAmounts (#3657) +- [`ba2dcb0399`](https://github.com/dashpay/dash/commit/ba2dcb0399) qt: Update assets and colorize them theme related (#3574) +- [`50d7a2fecf`](https://github.com/dashpay/dash/commit/50d7a2fecf) qt: Ignore GUIUtil::updateFont calls until GUIUtil::loadFonts was called (#3687) +- [`608f481a9c`](https://github.com/dashpay/dash/commit/608f481a9c) qt: Fix block update signals/slots in BitcoinGUI and SendCoinsDialog (#3685) +- [`25e4fed75b`](https://github.com/dashpay/dash/commit/25e4fed75b) QT: add last block hash to debug ui (#3672) +- [`195dcad1ee`](https://github.com/dashpay/dash/commit/195dcad1ee) trivial/docs: minor adjustments to PrivateSend help text (#3669) +- [`b1a35b2d32`](https://github.com/dashpay/dash/commit/b1a35b2d32) Merge #13007: test: Fix dangling wallet pointer in vpwallets (#3666) +- [`f9bf42cb90`](https://github.com/dashpay/dash/commit/f9bf42cb90) Harden spork6 logic then remove spork6 (#3662) +- [`604d6a4225`](https://github.com/dashpay/dash/commit/604d6a4225) Fix some translation issues (#3656) +- [`60d298376b`](https://github.com/dashpay/dash/commit/60d298376b) Fix crash on splash screen when wallet fails to load (#3629) +- [`ca76dd0868`](https://github.com/dashpay/dash/commit/ca76dd0868) qt: Give PrivateSend separate instances of SendCoinsDialog + CCoinControl (#3625) +- [`0969c2d268`](https://github.com/dashpay/dash/commit/0969c2d268) qt: Splashscreen redesign (#3613) +- [`966be38c79`](https://github.com/dashpay/dash/commit/966be38c79) qt: Make sure stylesheet updates of -debug-ui are activated (#3623) +- [`0ed7f1672c`](https://github.com/dashpay/dash/commit/0ed7f1672c) qt: Add missing placeholders (#3575) +- [`103fda2cb7`](https://github.com/dashpay/dash/commit/103fda2cb7) qt: Fix appearancewidget.h to make lint-include-guards.sh happy (#3627) +- [`2cc36dffde`](https://github.com/dashpay/dash/commit/2cc36dffde) qt: Drop PlatformStyle (#3573) +- [`b073ae9853`](https://github.com/dashpay/dash/commit/b073ae9853) qt: Redesign scrollbar styles (#3571) +- [`1a2867f886`](https://github.com/dashpay/dash/commit/1a2867f886) qt: Introduce appearance tab and setup dialog (#3568) +- [`d44611bc2b`](https://github.com/dashpay/dash/commit/d44611bc2b) qt: General qt/c++ related fixes and updates (#3562) +- [`d22ab43910`](https://github.com/dashpay/dash/commit/d22ab43910) qt: Introduce platform specific css sections (#3570) +- [`a16cfa77de`](https://github.com/dashpay/dash/commit/a16cfa77de) qt: Redesign BitcoinAmountField (#3569) +- [`7db9909a17`](https://github.com/dashpay/dash/commit/7db9909a17) qt: Introduce runtime theme changes (#3559) +- [`b3738648d6`](https://github.com/dashpay/dash/commit/b3738648d6) qt: General CSS related redesigns (#3563) +- [`1dea248d0d`](https://github.com/dashpay/dash/commit/1dea248d0d) qt: Make use of GUIUtil themed colors/styles (#3561) +- [`06d69d74c2`](https://github.com/dashpay/dash/commit/06d69d74c2) qt: Replace usage of QTabBar with custom replacement (#3560) +- [`edfc3a4646`](https://github.com/dashpay/dash/commit/edfc3a4646) qt: Call GUIUtil::loadFonts earlier (#3593) +- [`f371e4771c`](https://github.com/dashpay/dash/commit/f371e4771c) qt: Add -debug-ui command line parameter (#3558) +- [`dde4ab5f84`](https://github.com/dashpay/dash/commit/dde4ab5f84) qt: Add -custom-css-dir commmand line parameter (#3557) +- [`067622764c`](https://github.com/dashpay/dash/commit/067622764c) qt: Disable macOS system focus rectangles for dash themes (#3556) +- [`d296cbdca1`](https://github.com/dashpay/dash/commit/d296cbdca1) qt: Implement application wide font management (#3555) +- [`b409254587`](https://github.com/dashpay/dash/commit/b409254587) qt: Redesign of the main toolbar (#3554) +- [`c5fcc811d6`](https://github.com/dashpay/dash/commit/c5fcc811d6) qt: Generalized css files, simple design changes, added scripts to keep track of color usage (#3508) +- [`8aeeb97995`](https://github.com/dashpay/dash/commit/8aeeb97995) Print exception origin in crash messages (#3653) +- [`bd5c047e28`](https://github.com/dashpay/dash/commit/bd5c047e28) Implement a safer version of GetCrashInfoFromException (#3652) +- [`4414b5c3c7`](https://github.com/dashpay/dash/commit/4414b5c3c7) llmq: Fix spork check in CSigSharesManager::ForceReAnnouncement (#3650) +- [`c232f2a12d`](https://github.com/dashpay/dash/commit/c232f2a12d) [RPC] Show address of fundDest when no funds (#3649) +- [`abe3d578b2`](https://github.com/dashpay/dash/commit/abe3d578b2) Include protocol version into MNAUTH (#3631) +- [`4db8968d4a`](https://github.com/dashpay/dash/commit/4db8968d4a) rpc: update help text for BLS operator key arguments (#3628) +- [`bbb0064b60`](https://github.com/dashpay/dash/commit/bbb0064b60) init: Fix crash due to -litemode and improve its deprecation warning (#3626) +- [`8d99e7836c`](https://github.com/dashpay/dash/commit/8d99e7836c) Fix `-resetguisettings` (#3624) +- [`508fc2db4b`](https://github.com/dashpay/dash/commit/508fc2db4b) privatesend: Increase max participants to 20 (#3610) +- [`f425316eed`](https://github.com/dashpay/dash/commit/f425316eed) util: Change TraceThread's "name" type: "const char*" -> "const std::string" (#3609) +- [`a170c649b8`](https://github.com/dashpay/dash/commit/a170c649b8) Fail GetTransaction when the block from txindex is not in mapBlockIndex (#3606) +- [`62c3fb5748`](https://github.com/dashpay/dash/commit/62c3fb5748) llmq: Fix thread handling in CDKGSessionManager and CDKGSessionHandler (#3601) +- [`aa3bec6106`](https://github.com/dashpay/dash/commit/aa3bec6106) evo: Avoid some unnecessary copying in BuildNewListFromBlock (#3594) +- [`6a249f59b6`](https://github.com/dashpay/dash/commit/6a249f59b6) Merge #13564: [wallet] loadwallet shouldn't create new wallets. (#3592) +- [`b45b1373a0`](https://github.com/dashpay/dash/commit/b45b1373a0) Prefer creating larger denoms at the second step of CreateDenominated (#3589) +- [`bac02d0c9a`](https://github.com/dashpay/dash/commit/bac02d0c9a) More accurate fee calculation in CreateDenominated (#3588) +- [`baf18a35d5`](https://github.com/dashpay/dash/commit/baf18a35d5) More pruning improvements (#3579) +- [`0297eb428a`](https://github.com/dashpay/dash/commit/0297eb428a) Change litemode to disablegovernance (#3577) +- [`da38e2bf83`](https://github.com/dashpay/dash/commit/da38e2bf83) Change litemode from disabling all Dash specific features to disabling governance validation (#3488) +- [`772b6bfe7c`](https://github.com/dashpay/dash/commit/772b6bfe7c) Disable new connection handling and concentrated recovery for large LLMQs (#3548) +- [`c72bc354f8`](https://github.com/dashpay/dash/commit/c72bc354f8) contrib: Move dustinface.pgp into contrib/gitian-keys (#3547) +- [`0b70380fff`](https://github.com/dashpay/dash/commit/0b70380fff) Fix argument handling for devnets (#3549) +- [`5f9fc5edb6`](https://github.com/dashpay/dash/commit/5f9fc5edb6) Fix CSigningManager::VerifyRecoveredSig (#3546) +- [`00486eca06`](https://github.com/dashpay/dash/commit/00486eca06) Use exponential backoff timeouts for recovery (#3535) +- [`34c354eaad`](https://github.com/dashpay/dash/commit/34c354eaad) Dont skip sendmessages (#3534) +- [`40814d945e`](https://github.com/dashpay/dash/commit/40814d945e) Avoid overriding validation states, return more specific states in some cases (#3541) +- [`139f589b6f`](https://github.com/dashpay/dash/commit/139f589b6f) Don'd send SENDXXX messages to fMasternode connections (#3537) +- [`f064964678`](https://github.com/dashpay/dash/commit/f064964678) Only relay DKG messages to intra quorum connection members (#3536) +- [`d08b971ddb`](https://github.com/dashpay/dash/commit/d08b971ddb) Use correct CURRENT_VERSION constants when creating ProTx-es via rpc (#3524) +- [`4ae57a2276`](https://github.com/dashpay/dash/commit/4ae57a2276) qt: Fix label updates in SendCoinsEntry (#3523) +- [`1a54f0392d`](https://github.com/dashpay/dash/commit/1a54f0392d) Revert "implemented labeler which automatically adds RPC label to anything modifying RPC files (#3499)" (#3517) +- [`acff9998e1`](https://github.com/dashpay/dash/commit/acff9998e1) UpgradeDBIfNeeded failure should require reindexing (#3516) +- [`1163fc70a2`](https://github.com/dashpay/dash/commit/1163fc70a2) Use correct CURRENT_VERSION constants when checking ProTx version (#3515) +- [`0186fdfe60`](https://github.com/dashpay/dash/commit/0186fdfe60) Fix chainlock scheduler handling (#3514) +- [`b4008ee4fc`](https://github.com/dashpay/dash/commit/b4008ee4fc) Some Dashification (#3513) +- [`ab5aeed920`](https://github.com/dashpay/dash/commit/ab5aeed920) Optimize MN lists cache (#3506) +- [`91d9329093`](https://github.com/dashpay/dash/commit/91d9329093) Make CDeterministicMN::internalId private to make sure it's set/accessed properly (#3505) +- [`232430fac9`](https://github.com/dashpay/dash/commit/232430fac9) Fix ProcessNewBlock vs EnforceBestChainLock deadlocks in ActivateBestChain (#3492) +- [`fe98b81b80`](https://github.com/dashpay/dash/commit/fe98b81b80) implemented labeler which automatically adds RPC label to anything modifying RPC files (#3499) +- [`ae5faf23da`](https://github.com/dashpay/dash/commit/ae5faf23da) Better error handling while processing special txes (#3504) +- [`13a45ec323`](https://github.com/dashpay/dash/commit/13a45ec323) rpc: Validate provided keys for query_options parameter in listunspent (#3507) +- [`9b47883884`](https://github.com/dashpay/dash/commit/9b47883884) contrib: Added dustinface.pgp (#3502) +- [`048503bcb5`](https://github.com/dashpay/dash/commit/048503bcb5) qt: Some UI fixes and improvements (#3500) +- [`8fcda67a54`](https://github.com/dashpay/dash/commit/8fcda67a54) Remove spork 15, 16, 20 (#3493) +- [`9d3546baee`](https://github.com/dashpay/dash/commit/9d3546baee) Reintroduce mixing hard cap for all but the largest denom (#3489) +- [`397630a82c`](https://github.com/dashpay/dash/commit/397630a82c) CI: Fix Gitlab nowallet and release builds (#3491) +- [`a9fc40fb0a`](https://github.com/dashpay/dash/commit/a9fc40fb0a) add "Verifying a Rebase" section to CONTRIBUTING.md (#3487) +- [`0c5c99243a`](https://github.com/dashpay/dash/commit/0c5c99243a) rpc/wallet: Add coinType to queryOptions of listunspent (#3483) +- [`3a56ed9ca6`](https://github.com/dashpay/dash/commit/3a56ed9ca6) Fix NO_WALLET=1 build (#3490) +- [`926087aac6`](https://github.com/dashpay/dash/commit/926087aac6) Implement significantly improved createdenominations algorithm (#3479) +- [`fe208c98e3`](https://github.com/dashpay/dash/commit/fe208c98e3) Feat. request for Dash Platform: `quorum sign` rpc command with additional quorumHash #3424 (#3446) +- [`4c1f65baae`](https://github.com/dashpay/dash/commit/4c1f65baae) Fix #3241 UX/UI - Introduce PrivateSend tab which allows to spend fully mixed coins only (#3442) +- [`f46617dbab`](https://github.com/dashpay/dash/commit/f46617dbab) add litemode information to help texts regarding CL/IS and change getbestchainlock to throw an error if running in litemode (#3478) +- [`5cabc8f5ca`](https://github.com/dashpay/dash/commit/5cabc8f5ca) Introduce ONLY_PRIVATESEND coin type to select fully mixed coins only (#3459) +- [`e0ff9af2b0`](https://github.com/dashpay/dash/commit/e0ff9af2b0) qt: Allow and process URIs pasted to the payTo field of SendCoinsEntry (#3475) +- [`1c20160933`](https://github.com/dashpay/dash/commit/1c20160933) Fix `gobject submit`: replace request params with txidFee (#3471) +- [`970c23d6e6`](https://github.com/dashpay/dash/commit/970c23d6e6) Remove logic for forcing chainlocks without DIP8 activation on testnet (#3470) +- [`ae15299117`](https://github.com/dashpay/dash/commit/ae15299117) Feature request #3425 - Add information to "protx diff" (#3468) +- [`017c4779ca`](https://github.com/dashpay/dash/commit/017c4779ca) Fix recovery from coin db crashes (and dbcrash.py test) (#3467) +- [`d5f403d3fd`](https://github.com/dashpay/dash/commit/d5f403d3fd) Refactor and fix GetRealOutpointPrivateSendRounds (#3460) +- [`c06838e205`](https://github.com/dashpay/dash/commit/c06838e205) Streamline processing of pool state updates (#3458) +- [`538fcf2f1b`](https://github.com/dashpay/dash/commit/538fcf2f1b) Disable qt menu heuristics for openConfEditorAction (#3466) +- [`6e1c5480cd`](https://github.com/dashpay/dash/commit/6e1c5480cd) qt: Maximize the window if the dock icon gets clicked on macOS (#3465) +- [`3960d622c5`](https://github.com/dashpay/dash/commit/3960d622c5) Fix incorrect nTimeFirstKey reset due to missing count of hd pubkeys (#3461) +- [`d0bb30838b`](https://github.com/dashpay/dash/commit/d0bb30838b) Various (mostly trivial) PS fixes (#3457) +- [`b0963b079e`](https://github.com/dashpay/dash/commit/b0963b079e) Fix deadlocks (#3456) +- [`bdce58756a`](https://github.com/dashpay/dash/commit/bdce58756a) Remove duplicated condition check (#3464) +- [`10baa4a857`](https://github.com/dashpay/dash/commit/10baa4a857) Update Windows build instructions (#3453) +- [`7fdc4c7b0d`](https://github.com/dashpay/dash/commit/7fdc4c7b0d) change miniupnp lib server (#3452) +- [`911b5580e4`](https://github.com/dashpay/dash/commit/911b5580e4) Fix typo in error log when EPOLL_CTL_ADD fails for wakeup pipe (#3451) +- [`b775fa263f`](https://github.com/dashpay/dash/commit/b775fa263f) Lower DEFAULT_PRIVATESEND_DENOMS (#3434) +- [`d59deea77b`](https://github.com/dashpay/dash/commit/d59deea77b) Implement epoll support (#3445) +- [`96faa8155e`](https://github.com/dashpay/dash/commit/96faa8155e) Don't disconnect masternode probes for a few seconds (#3449) +- [`608aed3d85`](https://github.com/dashpay/dash/commit/608aed3d85) Don't try to connect to itself through CLLMQUtils::GetQuorumConnections (#3448) +- [`d663f48085`](https://github.com/dashpay/dash/commit/d663f48085) Lower SELECT_TIMEOUT_MILLISECONDS for USE_WAKEUP_PIPE case (#3444) +- [`f5f4ccbf24`](https://github.com/dashpay/dash/commit/f5f4ccbf24) Refactor/Prepare CConnman for upcoming epoll support (#3432) +- [`93aa640af8`](https://github.com/dashpay/dash/commit/93aa640af8) Fix #3248: use blue logo for Traditional theme (#3441) +- [`3d24290bcb`](https://github.com/dashpay/dash/commit/3d24290bcb) Take all nodes into account in check_sigs instead of just just masternodes (#3437) +- [`d06597a421`](https://github.com/dashpay/dash/commit/d06597a421) [Trivial] Adjust some text in mnauth.cpp (#3413) +- [`de931a25a3`](https://github.com/dashpay/dash/commit/de931a25a3) Wakeup wakeup-pipe when new peers are added (#3433) +- [`75a1968c96`](https://github.com/dashpay/dash/commit/75a1968c96) Fix abandonconflict.py (#3436) +- [`2610e718cd`](https://github.com/dashpay/dash/commit/2610e718cd) Don't delete MN list snapshots and diffs from DB when reorgs take place (#3435) +- [`6d83b0a053`](https://github.com/dashpay/dash/commit/6d83b0a053) Make socketevents mode (poll vs select) configurable via parameter (#3431) +- [`9a8caf0986`](https://github.com/dashpay/dash/commit/9a8caf0986) Remove fix for fNetworkActive vs OpenNetworkConnection race (#3430) +- [`96ed9fae39`](https://github.com/dashpay/dash/commit/96ed9fae39) Fix flushing of rejects before disconnecting (#3429) +- [`0cb385c567`](https://github.com/dashpay/dash/commit/0cb385c567) Improve network connections related logging (#3428) +- [`d5092c44cb`](https://github.com/dashpay/dash/commit/d5092c44cb) Make sure that cleanup is not triggered too early in llmq-signing.py (#3427) +- [`402b13907d`](https://github.com/dashpay/dash/commit/402b13907d) Only call DisconnectNodes once per second (#3421) +- [`ee995ef02a`](https://github.com/dashpay/dash/commit/ee995ef02a) Implement more reliable wait_for_masternode_probes in test framework (#3422) +- [`755a23ca00`](https://github.com/dashpay/dash/commit/755a23ca00) Always pass current mocktime to started nodes (#3423) +- [`1e30054b9e`](https://github.com/dashpay/dash/commit/1e30054b9e) Avoid calling SendMessages (and others) for all nodes all the time (#3420) +- [`8aa85c084b`](https://github.com/dashpay/dash/commit/8aa85c084b) Deterministically choose which peers to drop on duplicate MNAUTH (#3419) +- [`79f0bb1033`](https://github.com/dashpay/dash/commit/79f0bb1033) Fix crash in validateaddress (#3418) +- [`d032d02f10`](https://github.com/dashpay/dash/commit/d032d02f10) Multiple fixes for failing tests (#3410) +- [`e20c63f535`](https://github.com/dashpay/dash/commit/e20c63f535) A few simple/trivial optimizations (#3398) +- [`9bcdeaea57`](https://github.com/dashpay/dash/commit/9bcdeaea57) Avoid unnecessary processing/verification of reconstructed recovered signatures (#3399) +- [`38556a3d49`](https://github.com/dashpay/dash/commit/38556a3d49) Don't try to connect to masternodes that we already have a connection to (#3401) +- [`0e56e32c22`](https://github.com/dashpay/dash/commit/0e56e32c22) Add cache for CBlockTreeDB::HasTxIndex (#3402) +- [`2dff0501e9`](https://github.com/dashpay/dash/commit/2dff0501e9) Remove semaphore for masternode connections (#3403) +- [`c1d9dd553a`](https://github.com/dashpay/dash/commit/c1d9dd553a) FindDevNetGenesisBlock remove unused arg (#3405) +- [`c7b6eb851d`](https://github.com/dashpay/dash/commit/c7b6eb851d) Implement "concentrated recovery" of LLMQ signatures (#3389) +- [`e518ce4e13`](https://github.com/dashpay/dash/commit/e518ce4e13) Increase DIP0008 bip9 window by 10 years (#3391) +- [`1aba86567b`](https://github.com/dashpay/dash/commit/1aba86567b) Implement checking of open ports and min proto versions in DKGs (#3390) +- [`f43cdbc586`](https://github.com/dashpay/dash/commit/f43cdbc586) Gradually bump mocktime in wait_for_quorum_connections (#3388) +- [`3b904a0fa1`](https://github.com/dashpay/dash/commit/3b904a0fa1) Add a note about dash_hash under dependencies in test/README.md (#3386) +- [`b0668028b6`](https://github.com/dashpay/dash/commit/b0668028b6) Implement more randomized behavior in GetQuorumConnections (#3385) +- [`27dfb5a34d`](https://github.com/dashpay/dash/commit/27dfb5a34d) Move wait_proc into wait_for_quorum_connections (#3384) +- [`ff6f391aea`](https://github.com/dashpay/dash/commit/ff6f391aea) Refactor Gitlab builds to use multiple stages (#3377) +- [`a5a3e51554`](https://github.com/dashpay/dash/commit/a5a3e51554) Let all LLMQ members connect to each other instead of only a few ones (#3380) +- [`8ab1a3734a`](https://github.com/dashpay/dash/commit/8ab1a3734a) Bump mocktime each time waiting for phase1 fails (#3383) +- [`c68b5f68aa`](https://github.com/dashpay/dash/commit/c68b5f68aa) Hold CEvoDB lock while iterating mined commitments (#3379) +- [`deba865b17`](https://github.com/dashpay/dash/commit/deba865b17) Also verify quorumHash when waiting for DKG phases (#3382) +- [`17ece14f40`](https://github.com/dashpay/dash/commit/17ece14f40) Better/more logging for DKGs (#3381) +- [`80be2520a2`](https://github.com/dashpay/dash/commit/80be2520a2) Call FlushBackgroundCallbacks before resetting CConnman (#3378) +- [`b6bdb8be9e`](https://github.com/dashpay/dash/commit/b6bdb8be9e) Faster opening of masternode connections (#3375) +- [`94bcf85347`](https://github.com/dashpay/dash/commit/94bcf85347) Refactor and unify quorum connection handling #(3367) +- [`c0bb06e766`](https://github.com/dashpay/dash/commit/c0bb06e766) Multiple fixes for masternode connection handling (#3366) +- [`f2ece1031f`](https://github.com/dashpay/dash/commit/f2ece1031f) Remove logging for waking of select() (#3370) +- [`cf1f8c3825`](https://github.com/dashpay/dash/commit/cf1f8c3825) Support devnets in mininode (#3364) +- [`f7ddee13a1`](https://github.com/dashpay/dash/commit/f7ddee13a1) Fix possible segfault (#3365) +- [`40cdfe8662`](https://github.com/dashpay/dash/commit/40cdfe8662) Add peer id to "socket send error" logs (#3363) +- [`0fa2e14065`](https://github.com/dashpay/dash/commit/0fa2e14065) Fix issues introduced with asynchronous signal handling (#3369) +- [`b188c5c25e`](https://github.com/dashpay/dash/commit/b188c5c25e) Refactor some PrivateSend related code to use WalletModel instead of accessing the wallet directly from qt (#3345) +- [`05c134c783`](https://github.com/dashpay/dash/commit/05c134c783) Fix litemode vs txindex check (#3355) +- [`c9881d0fc7`](https://github.com/dashpay/dash/commit/c9881d0fc7) Masternodes must have required services enabled (#3350) +- [`c6911354a1`](https://github.com/dashpay/dash/commit/c6911354a1) Few tweaks for MakeCollateralAmounts (#3347) +- [`56b8e97ab0`](https://github.com/dashpay/dash/commit/56b8e97ab0) Refactor and simplify PrivateSend based on the fact that we only mix one single denom at a time now (#3346) +- [`af7cfd6a3f`](https://github.com/dashpay/dash/commit/af7cfd6a3f) Define constants for keys in CInstantSendDb and use them instead of plain strings (#3352) +- [`d52020926c`](https://github.com/dashpay/dash/commit/d52020926c) Fix undefined behaviour in stacktrace printing. (#3357) +- [`4c01ca4573`](https://github.com/dashpay/dash/commit/4c01ca4573) Fix undefined behaviour in unordered_limitedmap and optimise it. (#3349) +- [`2521970a50`](https://github.com/dashpay/dash/commit/2521970a50) Add configurable devnet quorums (#3348) +- [`7075083f07`](https://github.com/dashpay/dash/commit/7075083f07) Detect mixing session readiness based on the current pool state (#3328) +- [`dff9430c5e`](https://github.com/dashpay/dash/commit/dff9430c5e) A couple of fixes for CActiveMasternodeManager::Init() (#3326) +- [`4af4432cb9`](https://github.com/dashpay/dash/commit/4af4432cb9) Add unit tests for CPrivateSend::IsCollateralAmount (#3310) +- [`e1fc378ffd`](https://github.com/dashpay/dash/commit/e1fc378ffd) Refactor PS a bit and make it so that the expected flow for mixing is to time out and fallback (#3309) +- [`39b17fd5a3`](https://github.com/dashpay/dash/commit/39b17fd5a3) Fix empty TRAVIS_COMMIT_RANGE for one-commit-branch builds in Travis (#3299) +- [`f4f9f918dc`](https://github.com/dashpay/dash/commit/f4f9f918dc) [Pretty Trivial] Adjust some comments (#3252) +- [`26fb682e91`](https://github.com/dashpay/dash/commit/26fb682e91) Speed up prevector initialization and vector assignment from prevectors (#3274) +- [`9c9cac6d67`](https://github.com/dashpay/dash/commit/9c9cac6d67) Show quorum connections in "quorum dkgstatus" and use it in mine_quorum (#3271) +- [`aca6af0a0e`](https://github.com/dashpay/dash/commit/aca6af0a0e) Use smaller LLMQs in regtest (#3269) +- [`88da298082`](https://github.com/dashpay/dash/commit/88da298082) Add -whitelist to all nodes in smartfees.py (#3273) +- [`7e3ed76e54`](https://github.com/dashpay/dash/commit/7e3ed76e54) Make a deep copy of extra_args before modifying it in set_dash_test_params (#3270) +- [`75bb7ec022`](https://github.com/dashpay/dash/commit/75bb7ec022) A few optimizations/speedups for Dash related tests (#3268) +- [`2afdc8c6f6`](https://github.com/dashpay/dash/commit/2afdc8c6f6) Add basic PrivateSend RPC Tests (#3254) +- [`dc656e3236`](https://github.com/dashpay/dash/commit/dc656e3236) Bump version to 0.16 on develop (#3239) +- [`c182c6ca14`](https://github.com/dashpay/dash/commit/c182c6ca14) Upgrade Travis to use Bionic instead of Trusty (#3143) Credits ======= Thanks to everyone who directly contributed to this release: +- 10xcryptodev +- Akshay CM (akshaynexus) - Alexander Block (codablock) -- Amir Abrams (AmirAbrams) -- -k (charlesrocket) - Cofresi -- Nathan Marley (nmarley) +- CryptoTeller +- dustinface (xdustinface) +- konez2k +- Oleg Girko (OlegGirko) - PastaPastaPasta -- Riku (rikublock) -- strophy -- taw00 +- Piter Bushnell (Bushstar) +- sc-9310 - thephez - UdjinM6 @@ -537,6 +626,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.15.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15.0.0.md) released Febrary/18/2020 - [v0.14.0.5](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.5.md) released December/08/2019 - [v0.14.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.4.md) released November/22/2019 - [v0.14.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.3.md) released August/15/2019 diff --git a/doc/release-notes/dash/release-notes-0.15.0.md b/doc/release-notes/dash/release-notes-0.15.0.md new file mode 100644 index 0000000000..fbb7448ce5 --- /dev/null +++ b/doc/release-notes/dash/release-notes-0.15.0.md @@ -0,0 +1,533 @@ +Dash Core version 0.15 +====================== + +Release is now available from: + + + +This is a new major version release, bringing new features, 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 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. + +When upgrading from a version prior to 0.14.0.3, the +first startup of Dash Core will run a migration process which can take a few minutes +to finish. After the migration, a downgrade to an older version is only possible with +a reindex (or reindex-chainstate). + +Downgrade warning +----------------- + +### Downgrade to a version < 0.14.0.3 + +Downgrading to a version smaller than 0.14.0.3 is not supported anymore due to changes +in the "evodb" database format. If you need to use an older version, you have to perform +a reindex or re-sync the whole chain. + +Notable changes +=============== + +Removal of the p2p alert system +------------------------------- +The p2p alert system was designed to send messages to all nodes supporting it by someone who holds +so called alert keys to notify such nodes in case of severe network issues. This version removes +the `alert` p2p message and `--alert` option. Internal alerts, partition detection warnings and the +`--alertnotify` option features remain. + +Removal of the legacy InstantSend system +---------------------------------------- +Version 0.14 introduced the new LLMQ-based InstantSend system which is designed to be much more scalable +than the legacy one without sacrificing security. The new system also allows all transactions to be treated as +InstantSend transactions. The legacy system was disabled together with the successful deployment of ChainLocks, +but we had to keep supporting the legacy system for a while to ensure a smooth transition period. This version finally drops +the legacy system completely. + +Read more about ChainLocks: https://github.com/dashpay/dips/blob/master/dip-0008.md +Read more about LLMQ-based InstantSend: https://github.com/dashpay/dips/blob/master/dip-0010.md + +Sporks +------ +The security level of ChainLocks and LLMQ-based InstantSend made sporks `SPORK_5_INSTANTSEND_MAX_VALUE` and +`SPORK_12_RECONSIDER_BLOCKS` obsolete, so they are removed now. Sporks `SPORK_15_DETERMINISTIC_MNS_ENABLED`, +`SPORK_16_INSTANTSEND_AUTOLOCKS` and `SPORK_20_INSTANTSEND_LLMQ_BASED` have no code logic behind them anymore +because they were used as part of the DIP0003, DIP0008 and DIP0010 activation process which is finished now. +They are still kept and relayed only to ensure smooth operation of v0.14 clients and will be removed in some +future version. + +Mempool sync improvements +------------------------- +Nodes joining the network will now try to sync their mempool from other v0.15+ peers via the `mempool` p2p message. +This behaviour can be disabled via the new `--syncmempool` option. Nodes serving such requests will now also push +`inv` p2p messages for InstandSend locks which are held for transactions in their mempool. These two changes +should help new nodes to quickly catchup on start and detect any potential double-spend as soon as possible. +This should also help wallets to slightly improve UX by showing the correct status of unconfirmed transactions +locked via InstandSend, if they were sent while the receiving wallet was offline. Note that bloom-filters +still apply to such `inv` messages, just like they do for transactions and locks that are relayed on a +regular basis. + +PrivateSend improvements +------------------------ +This version decouples the so called "Lite Mode" and client-side PrivateSend mixing, which allows client-side mixing +on pruned nodes running with `--litemode` option. Such nodes will have to also specify the newly redefined +`--enableprivatesend` option. Non-prunned nodes do not have to do this but they can use `--enableprivatesend` +option to disable mixing completely instead. Please note that specifying this option does not start mixing +automatically anymore (which was the case in previous versions). To automatically start mixing, use the new +`--privatesendautostart` option in addition to `--enableprivatesend`. Additionally, PrivateSend can always be +controlled with the `privatesend` RPC. + +Thanks to LLMQ-based InstantSend and its ability to lock chains of unconfirmed transactions (and not only a single +one like in the legacy system), PrivateSend mixing speed has improved significantly. In such an environment +Liquidity Provider Mode, which was introduced a long time ago to support mixing volume, is no longer needed and +is removed now. As such the `--liquidityprovider` option is not available anymore. + +Some other improvements were also introduced to speed up mixing, e.g. by joining more queues or dropping potential +malicious mixing participants faster by checking some rules earlier etc. Lots of related code was refactored to +further improve its readability, which should make it easier for someone to re-implement PrivateSend +correctly in other wallets if there is a desire to do so. + +Wallet changes +-------------- +Wallet internals were optimized to significantly improve performance which should be especially notable for huge +wallets with tens of thousands of transactions or more. The GUI for such wallets should be much more responsive too now. + +Running Masternodes from local wallets was deprecated a long time ago and starting from this version we disable +wallet functionality on Masternodes completely. + +GUI changes +----------- +The Qt GUI went through a refresh to follow branding color guides and to make it feel lighter. All old themes besides +the Traditional one (the one with a minimal styling) were removed and instead a new Dark theme was added. + +In this version we made a lot of optimizations to remove various lags and lockups, the GUI in general should feel +much more smoother now, especially for huge wallets or when navigating through the masternode list. The latter has +a few new columns (collateral, owner and voting addresses) which give more options to filter and/or sort the list. +All issues with hi-dpi monitors should also be fixed now. + +The "Send" popup dialog was slightly tweaked to improve the language and provide a bit more information about inputs +included in the transaction, its size and the actual resulting fee rate. It will also show the number of inputs +a PrivateSend transaction is going to consume and display a warning regarding sender privacy if this number is 10 +or higher. + +Changes in regtest and devnet p2p/rpc ports +------------------------------------------- +Default p2p and rpc ports for devnets and regtest were changed to ensure their consistency and to avoid +any potential interference with bitcoin's regtests. New default p2p/rpc ports for devnet are 19799/19798, +for regtest - 19899/19898 respectively. + +ZMQ changes +----------- +Added two new messages `rawchainlocksig` and `rawtxlocksig` which return the raw data of the block/transaction +concatenated with the corresponding `clsig`/`islock` message respectively. + +Crash reports and stack traces +------------------------------ +Binaries built with Gitian (including all official releases) will from now on always have crash reports and +crash hooks enabled. This means, that all binaries will print some information about the stack trace at the +time of a crash. If no debug information is present at crash time (which is usually the case), the binaries +will print a line that looks like this: +``` +2020-01-06 14:41:08 Windows Exception: EXCEPTION_ACCESS_VIOLATION +No debug information available for stacktrace. You should add debug information and then run: +dashd.exe -printcrashinfo=bvcgc43iinzgc43ijfxgm3yba.... +``` +If you encounter such a crash, include these lines when you report the crash and we will be able to debug it +further. Anyone interested in running the specified `-printcrashinfo` command can do so after copying the debug info +file from the Gitian build to the same place where the binary is located. This will then print a detailed stack +trace. + +RPC changes +----------- +There are a few changes in existing RPC interfaces in this release: +- no more `instantsend` field in various RPC commands +- `use-IS`, `use_is` and `instantsend` options are deprecated in various RPC commands and have no effect anymore +- added new `merkleRootQuorums` field in `getblock` RPC results +- individual Dash-specific fields which were used to display soft-fork progress in `getblockchaininfo` are replaced + with the backported `statistics` object +- `privatesend_balance` field is shown in all related RPC results regardless of the Lite Mode or PrivateSend state +- added `pubKeyOperator` field for each masternode in `quorum info` RPC response + +There are also new RPC commands: +- `getbestchainlock` +- `getmerkleblocks` +- `getprivatesendinfo` + +`getpoolinfo` was deprecated in favor of `getprivatesendinfo` and no longer returns any data. + +There are also new RPC commands backported from Bitcoin Core 0.15: +- `abortrescan` +- `combinerawtransaction` +- `getblockstats` +- `getchaintxstats` +- `listwallets` +- `logging` +- `uptime` + +Make sure to check Bitcoin Core 0.15 release notes in a [section](#backports-from-bitcoin-core-015) below +for more RPC changes. + +See `help command` in rpc for more info. + +Command-line options +-------------------- +Changes in existing cmd-line options: +- `--enableprivatesend` option has a new meaning now, see [PrivateSend](#privatesend) section for more info + +New cmd-line options: +- `--printcrashinfo` +- `--syncmempool` +- `--privatesendautostart` + +Few cmd-line options are no longer supported: +- `--alerts` +- `--masternode`, deprecated, specifying `--masternodeblsprivkey` option alone is enough to enable masternode mode now +- `--liquidityprovider` +- `--enableinstantsend`, dropped due to removal of the Legacy InstantSend + +Make sure to check Bitcoin Core 0.15 release notes in a [section](#backports-from-bitcoin-core-015) below +for more changes in command-line options. + +See `Help -> Command-line options` in Qt wallet or `dashd --help` for more info. + +Build system +------------ +This version always includes stacktraces in binaries now, `--enable-stacktraces` option is no longer available. +Instead you can choose if you want to hook crash reporting into various types of crashes by using `--enable-crash-hooks` +option (default is `no`). When using this option on macOS make sure to build binaries with `make -C src osx_debug`. + +Backports from Bitcoin Core 0.15 +-------------------------------- + +Most of the changes between Bitcoin Core 0.14 and Bitcoin Core 0.15 have been backported into Dash Core 0.15. +We only excluded backports which do not align with Dash, like SegWit or RBF related changes. + +You can read about changes brought by backporting from Bitcoin Core 0.15 in following docs: +- https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.15.0.md +- https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.15.1.md + +Some other individual PRs were backported from versions 0.16+, you can find the full list of backported PRs +and additional fixes in https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15-backports.md + +Miscellaneous +------------- +A lot of refactoring, backports, code cleanups and other small fixes were done in this release. Dash-specific +modules were reorganized in separate folders to make navigation through code a bit easier. + +0.15 Change log +=============== + +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.14.0.5...dashpay:v0.15.0.0). + +- [`3c055bf79`](https://github.com/dashpay/dash/commit/3c055bf79) Bump nMinimumChainWork and defaultAssumeValid (#3336) +- [`818e7a6f7`](https://github.com/dashpay/dash/commit/818e7a6f7) Update release notes +- [`9d5c3d12e`](https://github.com/dashpay/dash/commit/9d5c3d12e) Try to actually accept newly created dstx-es into masternode's mempool (#3332) +- [`f23e722da`](https://github.com/dashpay/dash/commit/f23e722da) Switch CLIENT_VERSION_IS_RELEASE to `true` for v0.15 (#3306) +- [`b57f1dac8`](https://github.com/dashpay/dash/commit/b57f1dac8) Update release notes +- [`15c6df583`](https://github.com/dashpay/dash/commit/15c6df583) Bring back "about" menu icon (#3329) +- [`2c30818f7`](https://github.com/dashpay/dash/commit/2c30818f7) Add pubKeyOperator to `quorum info` rpc response (#3327) +- [`2bbf78c1b`](https://github.com/dashpay/dash/commit/2bbf78c1b) Update release-notes.md +- [`2c305d02d`](https://github.com/dashpay/dash/commit/2c305d02d) Update translations 2020-02-03 (#3322) +- [`672e18e48`](https://github.com/dashpay/dash/commit/672e18e48) Only sync mempool from v0.15+ (proto 70216+) nodes (#3321) +- [`829bde81e`](https://github.com/dashpay/dash/commit/829bde81e) Fix dark text on dark background in combobox dropdowns on windows (#3315) +- [`c0a671e84`](https://github.com/dashpay/dash/commit/c0a671e84) Fix node protection logic false positives (#3314) +- [`8d5fc6e0a`](https://github.com/dashpay/dash/commit/8d5fc6e0a) Merge #13162: [net] Don't incorrectly log that REJECT messages are unknown. +- [`9e711befd`](https://github.com/dashpay/dash/commit/9e711befd) More of 13946 +- [`e5e3572e9`](https://github.com/dashpay/dash/commit/e5e3572e9) Merge #13946: p2p: Clarify control flow in ProcessMessage +- [`dbbc51121`](https://github.com/dashpay/dash/commit/dbbc51121) Add `automake` package to dash-win-signer's packages list (#3307) +- [`fd0f24335`](https://github.com/dashpay/dash/commit/fd0f24335) [Trivial] Release note update (#3308) +- [`058872d4f`](https://github.com/dashpay/dash/commit/058872d4f) Update release-notes.md +- [`546e69f1a`](https://github.com/dashpay/dash/commit/546e69f1a) Fix CActiveMasternodeManager::GetLocalAddress to prefer IPv4 if multiple local addresses are known (#3304) +- [`e4ef7e8d0`](https://github.com/dashpay/dash/commit/e4ef7e8d0) Drop unused `invSet` in `CDKGSession` (#3303) +- [`da7686c93`](https://github.com/dashpay/dash/commit/da7686c93) Update translations 2020-01-23 (#3302) +- [`6b5d3edae`](https://github.com/dashpay/dash/commit/6b5d3edae) Fix dip4-coinbasemerkleroots.py race condition (#3297) +- [`a8213cadb`](https://github.com/dashpay/dash/commit/a8213cadb) Various fixes for DSTX-es (#3295) +- [`2c26bdf2d`](https://github.com/dashpay/dash/commit/2c26bdf2d) Update release-notes.md +- [`1d9adbe63`](https://github.com/dashpay/dash/commit/1d9adbe63) Replace generic CScopedDBTransaction with specialized CEvoDBScopedCommitter (#3292) +- [`8fd486c6b`](https://github.com/dashpay/dash/commit/8fd486c6b) Translations 2020-01 (#3192) +- [`3c54f6527`](https://github.com/dashpay/dash/commit/3c54f6527) Bump copyright year to 2020 (#3290) +- [`35d28c748`](https://github.com/dashpay/dash/commit/35d28c748) Update man pages (#3291) +- [`203cc9077`](https://github.com/dashpay/dash/commit/203cc9077) trivial: adding SVG and high contrast icons (#3209) +- [`e875d4925`](https://github.com/dashpay/dash/commit/e875d4925) Define defaultTheme and darkThemePrefix as constants and use them instead of plain strings (#3288) +- [`1d203b422`](https://github.com/dashpay/dash/commit/1d203b422) Bump PROTOCOL_VERSION to 70216 (#3287) +- [`b84482ac5`](https://github.com/dashpay/dash/commit/b84482ac5) Let regtest have its own qt settings (#3286) +- [`1c885bbed`](https://github.com/dashpay/dash/commit/1c885bbed) Only load valid themes, fallback to "Light" theme otherwise (#3285) +- [`ce924278d`](https://github.com/dashpay/dash/commit/ce924278d) Don't load caches when blocks/chainstate was deleted and also delete old caches (#3280) +- [`ebf529e8a`](https://github.com/dashpay/dash/commit/ebf529e8a) Drop new connection instead of old one when duplicate MNAUTH is received (#3272) +- [`817cd9a17`](https://github.com/dashpay/dash/commit/817cd9a17) AppInitMain should quit early and return `false` if shutdown was requested at some point (#3267) +- [`42e104932`](https://github.com/dashpay/dash/commit/42e104932) Tweak few more strings re mixing and balances (#3265) +- [`d30eeb6f8`](https://github.com/dashpay/dash/commit/d30eeb6f8) Use -Wno-psabi for arm builds on Travis/Gitlab (#3264) +- [`1df3c67a8`](https://github.com/dashpay/dash/commit/1df3c67a8) A few fixes for integration tests (#3263) +- [`6e50a7b2a`](https://github.com/dashpay/dash/commit/6e50a7b2a) Fix params.size() check in "protx list wallet" RPC (#3259) +- [`1a1cec224`](https://github.com/dashpay/dash/commit/1a1cec224) Fix pull request detection in .gitlab-ci.yml (#3256) +- [`31afa9c0f`](https://github.com/dashpay/dash/commit/31afa9c0f) Don't disconnect masternode connections when we have less then the desired amount of outbound nodes (#3255) +- [`cecbbab3c`](https://github.com/dashpay/dash/commit/cecbbab3c) move privatesend rpc methods from rpc/masternode.cpp to new rpc/privatesend.cpp (#3253) +- [`8e054f374`](https://github.com/dashpay/dash/commit/8e054f374) Sync mempool from other nodes on start (#3251) +- [`474f25b8d`](https://github.com/dashpay/dash/commit/474f25b8d) Push islock invs when syncing mempool (#3250) +- [`3b0f8ff8b`](https://github.com/dashpay/dash/commit/3b0f8ff8b) Skip mnsync restrictions for whitelisted and manually added nodes (#3249) +- [`fd94e9c38`](https://github.com/dashpay/dash/commit/fd94e9c38) Streamline, refactor and unify PS checks for mixing entries and final txes (#3246) +- [`c42b20097`](https://github.com/dashpay/dash/commit/c42b20097) Try to avoid being marked as a bad quorum member when we sleep for too long in SleepBeforePhase (#3245) +- [`db6ea1de8`](https://github.com/dashpay/dash/commit/db6ea1de8) Fix log output in CDKGPendingMessages::PushPendingMessage (#3244) +- [`416d85b29`](https://github.com/dashpay/dash/commit/416d85b29) Tolerate parent cache with empty cache-artifact directory (#3240) +- [`0c9c27c6f`](https://github.com/dashpay/dash/commit/0c9c27c6f) Add ccache to gitian packages lists (#3237) +- [`65206833e`](https://github.com/dashpay/dash/commit/65206833e) Fix menu bar text color in Dark theme (#3236) +- [`7331d4edd`](https://github.com/dashpay/dash/commit/7331d4edd) Bump wait_for_chainlocked_block_all_nodes timeout in llmq-is-retroactive.py to 30 sec when mining lots of blocks at once (#3238) +- [`dad102669`](https://github.com/dashpay/dash/commit/dad102669) Update static and dns seeds for mainnet and testnet (#3234) +- [`9378c271b`](https://github.com/dashpay/dash/commit/9378c271b) Modify makesseeds.py to work with "protx list valid 1" instead of "masternode list (#3235) +- [`91a996e32`](https://github.com/dashpay/dash/commit/91a996e32) Make sure mempool txes are properly processed by CChainLocksHandler despite node restarts (#3226) +- [`2b587f0eb`](https://github.com/dashpay/dash/commit/2b587f0eb) Slightly refactor CDKGSessionHandler::SleepBeforePhase (#3224) +- [`fdb05860e`](https://github.com/dashpay/dash/commit/fdb05860e) Don't join thread in CQuorum::~CQuorum when called from within the thread (#3223) +- [`4c00d98ea`](https://github.com/dashpay/dash/commit/4c00d98ea) Allow re-signing of IS locks when performing retroactive signing (#3219) +- [`b4b9d3467`](https://github.com/dashpay/dash/commit/b4b9d3467) Tests: Fix the way nodes are connected to each other in setup_network/start_masternodes (#3221) +- [`dfe99c950`](https://github.com/dashpay/dash/commit/dfe99c950) Decouple cs_mnauth/cs_main (#3220) +- [`08f447af9`](https://github.com/dashpay/dash/commit/08f447af9) Tests: Allow specifying different cmd-line params for each masternode (#3222) +- [`9dad60386`](https://github.com/dashpay/dash/commit/9dad60386) Tweak "Send" popup and refactor related code a bit (#3218) +- [`bb7a32d2e`](https://github.com/dashpay/dash/commit/bb7a32d2e) Add Dark theme (#3216) +- [`05ac4dbb4`](https://github.com/dashpay/dash/commit/05ac4dbb4) Dashify few strings (#3214) +- [`482a549a2`](https://github.com/dashpay/dash/commit/482a549a2) Add collateral, owner and voting addresses to masternode list table (#3207) +- [`37f96f5a3`](https://github.com/dashpay/dash/commit/37f96f5a3) Bump version to 0.15 and update few const-s/chainparams (#3204) +- [`9de994988`](https://github.com/dashpay/dash/commit/9de994988) Compliance changes to terminology (#3211) +- [`d475f17bc`](https://github.com/dashpay/dash/commit/d475f17bc) Fix styles for progress dialogs, shutdown window and text selection (#3212) +- [`df372ec5f`](https://github.com/dashpay/dash/commit/df372ec5f) Fix off-by-one error for coinbase txes confirmation icons (#3206) +- [`1e94e3333`](https://github.com/dashpay/dash/commit/1e94e3333) Fix styling for disabled buttons (#3205) +- [`7677b5578`](https://github.com/dashpay/dash/commit/7677b5578) Actually apply CSS styling to RPC console (#3201) +- [`63cc22d5e`](https://github.com/dashpay/dash/commit/63cc22d5e) More Qt tweaks (#3200) +- [`7aa9c43f8`](https://github.com/dashpay/dash/commit/7aa9c43f8) Few Qt tweaks (#3199) +- [`fd50c1c71`](https://github.com/dashpay/dash/commit/fd50c1c71) Hold cs_main/cs_wallet in main MakeCollateralAmounts (#3197) +- [`460e0f475`](https://github.com/dashpay/dash/commit/460e0f475) Fix locking of funds for mixing (#3194) +- [`415b81e41`](https://github.com/dashpay/dash/commit/415b81e41) Refactor some pow functions (#3198) +- [`b2fed3862`](https://github.com/dashpay/dash/commit/b2fed3862) A few trivial fixes for RPCs (#3196) +- [`f8296364a`](https://github.com/dashpay/dash/commit/f8296364a) Two trivial fixes for logs (#3195) +- [`d5cc88f00`](https://github.com/dashpay/dash/commit/d5cc88f00) Should mark tx as a PS one regardless of change calculations in CreateTransaction (#3193) +- [`e9235b9bb`](https://github.com/dashpay/dash/commit/e9235b9bb) trivial: Rename txid paramater for gobject voteraw (#3191) +- [`70b320bab`](https://github.com/dashpay/dash/commit/70b320bab) Detect masternode mode from masternodeblsprivkey arg (#3188) +- [`1091ab3c6`](https://github.com/dashpay/dash/commit/1091ab3c6) Translations201909 (#3107) +- [`251fb5e69`](https://github.com/dashpay/dash/commit/251fb5e69) Slightly optimize ApproximateBestSubset and its usage for PS txes (#3184) +- [`a55624b25`](https://github.com/dashpay/dash/commit/a55624b25) Fix 3182: Append scrollbar styles (#3186) +- [`1bbe1adb4`](https://github.com/dashpay/dash/commit/1bbe1adb4) Add a simple test for payoutAddress reuse in `protx update_registrar` (#3183) +- [`372389d23`](https://github.com/dashpay/dash/commit/372389d23) Disable styling for scrollbars on macos (#3182) +- [`e0781095f`](https://github.com/dashpay/dash/commit/e0781095f) A couple of fixes for additional indexes (#3181) +- [`d3ce0964b`](https://github.com/dashpay/dash/commit/d3ce0964b) Add Qt GUI refresh w/branding updates (#3000) +- [`9bc699ff2`](https://github.com/dashpay/dash/commit/9bc699ff2) Update activemn if protx info changed (#3176) +- [`bbd9b10d4`](https://github.com/dashpay/dash/commit/bbd9b10d4) Refactor nonLockedTxsByInputs (#3178) +- [`64a913d6f`](https://github.com/dashpay/dash/commit/64a913d6f) Allow empty strings in `protx update_registrar` as an option to re-use current values (#3177) +- [`3c21d2577`](https://github.com/dashpay/dash/commit/3c21d2577) Slightly adjust some README.md files (#3175) +- [`883fcbe8b`](https://github.com/dashpay/dash/commit/883fcbe8b) Always run extended tests in Gitlab CI (#3173) +- [`a7492c1d3`](https://github.com/dashpay/dash/commit/a7492c1d3) Handle coin type via CCoinControl (#3172) +- [`0d1a04905`](https://github.com/dashpay/dash/commit/0d1a04905) Don't show individual messages for each TX when too many come in at once (#3170) +- [`589c89250`](https://github.com/dashpay/dash/commit/589c89250) Fix 2 more bottlenecks causing GUI lockups (#3169) +- [`dfd6ee472`](https://github.com/dashpay/dash/commit/dfd6ee472) Actually update spent index on DisconnectBlock (#3167) +- [`3c818e95b`](https://github.com/dashpay/dash/commit/3c818e95b) Only track last seen time instead of first and last seen time (#3165) +- [`df3dbe85b`](https://github.com/dashpay/dash/commit/df3dbe85b) Wait for sporks to propagate in llmq-chainlocks.py before mining new blocks (#3168) +- [`8cbd63d9e`](https://github.com/dashpay/dash/commit/8cbd63d9e) Make HD wallet warning a bit more natural (#3164) +- [`001c4338b`](https://github.com/dashpay/dash/commit/001c4338b) Improved messaging for ip address errors (#3163) +- [`33d04ebf2`](https://github.com/dashpay/dash/commit/33d04ebf2) Disable move ctor/operator for CKeyHolder (#3162) +- [`da2f503a4`](https://github.com/dashpay/dash/commit/da2f503a4) Fix largest part of GUI lockups with large wallets (#3155) +- [`3c6b5f98e`](https://github.com/dashpay/dash/commit/3c6b5f98e) Use wallet UTXOs whenever possible to avoid looping through all wallet txes (#3156) +- [`4db91c605`](https://github.com/dashpay/dash/commit/4db91c605) Fix Gitlab cache issues (#3160) +- [`e9ed35482`](https://github.com/dashpay/dash/commit/e9ed35482) Partially revert 3061 (#3150) +- [`4b6af8f2c`](https://github.com/dashpay/dash/commit/4b6af8f2c) Few fixes related to SelectCoinsGroupedByAddresses (#3144) +- [`859d60f81`](https://github.com/dashpay/dash/commit/859d60f81) Don't use $CACHE_DIR in after_script (#3159) +- [`be127bc2e`](https://github.com/dashpay/dash/commit/be127bc2e) Replace vecAskFor with a priority queue (#3147) +- [`a13a9182d`](https://github.com/dashpay/dash/commit/a13a9182d) Add missing "notfound" and "getsporks" to messagemap (#3146) +- [`efd8d2c82`](https://github.com/dashpay/dash/commit/efd8d2c82) Avoid propagating InstantSend related old recovered sigs (#3145) +- [`24fee3051`](https://github.com/dashpay/dash/commit/24fee3051) Add support for Gitlab CI (#3149) +- [`1cbe280ad`](https://github.com/dashpay/dash/commit/1cbe280ad) Qt: Remove old themes (#3141) +- [`dcdf1f3a6`](https://github.com/dashpay/dash/commit/dcdf1f3a6) Some refactoring for spork related functionality in tests (#3137) +- [`411241471`](https://github.com/dashpay/dash/commit/411241471) Introduce getprivatesendinfo and deprecate getpoolinfo (#3140) +- [`152c10bc4`](https://github.com/dashpay/dash/commit/152c10bc4) Various fixes for mixing queues (#3138) +- [`e0c56246f`](https://github.com/dashpay/dash/commit/e0c56246f) Fixes and refactorings related to using mnsync in tests (#3136) +- [`f8e238c5b`](https://github.com/dashpay/dash/commit/f8e238c5b) [Trivial] RPC help updates (#3134) +- [`d49ee618f`](https://github.com/dashpay/dash/commit/d49ee618f) Add more logging to DashTestFramework (#3130) +- [`cd6c5b4b4`](https://github.com/dashpay/dash/commit/cd6c5b4b4) Multiple fixes for ChainLock tests (#3129) +- [`e06c116d2`](https://github.com/dashpay/dash/commit/e06c116d2) Actually pass extra_args to nodes in assumevalid.py (#3131) +- [`737ac967f`](https://github.com/dashpay/dash/commit/737ac967f) Refactor some Dash-specific `wait_for*` functions in tests (#3122) +- [`b4aefb513`](https://github.com/dashpay/dash/commit/b4aefb513) Also consider txindex for transactions in AlreadyHave() (#3126) +- [`d9e98e31e`](https://github.com/dashpay/dash/commit/d9e98e31e) Fix scripted diff check condition (#3128) +- [`bad3243b8`](https://github.com/dashpay/dash/commit/bad3243b8) Bump mocktime before generating new blocks and generate a few blocks at the end of `test_mempool_doublespend` in `p2p-instantsend.py` (#3125) +- [`82ebba18f`](https://github.com/dashpay/dash/commit/82ebba18f) Few fixes for `wait_for_instantlock` (#3123) +- [`a2fa9bb7e`](https://github.com/dashpay/dash/commit/a2fa9bb7e) Ignore recent rejects filter for locked txes (#3124) +- [`2ca2138fc`](https://github.com/dashpay/dash/commit/2ca2138fc) Whitelist nodes in llmq-dkgerrors.py (#3112) +- [`a8fa5cff9`](https://github.com/dashpay/dash/commit/a8fa5cff9) Make orphan TX map limiting dependent on total TX size instead of TX count (#3121) +- [`746b5f8cd`](https://github.com/dashpay/dash/commit/746b5f8cd) Remove commented out code (#3117) +- [`3ac583cce`](https://github.com/dashpay/dash/commit/3ac583cce) docs: Add packages for building in Alpine Linux (#3115) +- [`c5da93851`](https://github.com/dashpay/dash/commit/c5da93851) A couple of minor improvements in IS code (#3114) +- [`43b7c31d9`](https://github.com/dashpay/dash/commit/43b7c31d9) Wait for the actual best block chainlock in llmq-chainlocks.py (#3109) +- [`22ac6ba4e`](https://github.com/dashpay/dash/commit/22ac6ba4e) Make sure chainlocks and blocks are propagated in llmq-is-cl-conflicts.py before moving to next steps (#3108) +- [`9f1ee8c70`](https://github.com/dashpay/dash/commit/9f1ee8c70) scripted-diff: Refactor llmq type consensus param names (#3093) +- [`1c74b668b`](https://github.com/dashpay/dash/commit/1c74b668b) Introduce getbestchainlock rpc and fix llmq-is-cl-conflicts.py (#3094) +- [`ac0270871`](https://github.com/dashpay/dash/commit/ac0270871) Respect `logips` config option in few more log outputs (#3078) +- [`d26b6a84c`](https://github.com/dashpay/dash/commit/d26b6a84c) Fix a couple of issues with PS fee calculations (#3077) +- [`40399fd97`](https://github.com/dashpay/dash/commit/40399fd97) Circumvent BIP69 sorting in fundrawtransaction.py test (#3100) +- [`e2d651f60`](https://github.com/dashpay/dash/commit/e2d651f60) Add OpenSSL termios fix for musl libc (#3099) +- [`783653f6a`](https://github.com/dashpay/dash/commit/783653f6a) Ensure execinfo.h and linker flags set in autoconf (#3098) +- [`7320c3da2`](https://github.com/dashpay/dash/commit/7320c3da2) Refresh zmq 4.1.5 patches (#3092) +- [`822e617be`](https://github.com/dashpay/dash/commit/822e617be) Fix chia_bls include prefix (#3091) +- [`35f079cbf`](https://github.com/dashpay/dash/commit/35f079cbf) Remove unused code (#3097) +- [`1acde17e8`](https://github.com/dashpay/dash/commit/1acde17e8) Don't care about governance cache while the blockchain isn't synced yet (#3089) +- [`0d126c2ae`](https://github.com/dashpay/dash/commit/0d126c2ae) Use chainparams factory for devnet (#3087) +- [`ac90abe89`](https://github.com/dashpay/dash/commit/ac90abe89) When mixing, always try to join an exsisting queue, only fall back to starting a new queue (#3085) +- [`68d575dc0`](https://github.com/dashpay/dash/commit/68d575dc0) Masternodes should have no wallet enabled (#3084) +- [`6b5b70fab`](https://github.com/dashpay/dash/commit/6b5b70fab) Remove liquidity provider privatesend (#3082) +- [`0b2221ed6`](https://github.com/dashpay/dash/commit/0b2221ed6) Clarify default max peer connections (#3081) +- [`c22169d57`](https://github.com/dashpay/dash/commit/c22169d57) Reduce non-debug PS log output (#3076) +- [`41ae1c7e2`](https://github.com/dashpay/dash/commit/41ae1c7e2) Add LDFLAGS_WRAP_EXCEPTIONS to dash_fuzzy linking (#3075) +- [`77b88558e`](https://github.com/dashpay/dash/commit/77b88558e) Update/modernize macOS plist (#3074) +- [`f1ff14818`](https://github.com/dashpay/dash/commit/f1ff14818) Fix bip69 vs change position issue (#3063) +- [`9abc39383`](https://github.com/dashpay/dash/commit/9abc39383) Refactor few things here and there (#3066) +- [`3d5eabcfb`](https://github.com/dashpay/dash/commit/3d5eabcfb) Update/unify `debug` and `logging` rpc descriptions (#3071) +- [`0e94e97cc`](https://github.com/dashpay/dash/commit/0e94e97cc) Add missing tx `type` to `TxToUniv` (#3069) +- [`becca24fc`](https://github.com/dashpay/dash/commit/becca24fc) Few fixes in docs/comments (#3068) +- [`9d109d6a3`](https://github.com/dashpay/dash/commit/9d109d6a3) Add missing `instantlock`/`instantlock_internal` to `getblock`'s `verbosity=2` mode (#3067) +- [`0f088d03a`](https://github.com/dashpay/dash/commit/0f088d03a) Change regtest and devnet p2p/rpc ports (#3064) +- [`190542256`](https://github.com/dashpay/dash/commit/190542256) Rework govobject/trigger cleanup a bit (#3070) +- [`386de78bc`](https://github.com/dashpay/dash/commit/386de78bc) Fix SelectCoinsMinConf to allow instant respends (#3061) +- [`cbbeec689`](https://github.com/dashpay/dash/commit/cbbeec689) RPC Getrawtransaction fix (#3065) +- [`1e3496799`](https://github.com/dashpay/dash/commit/1e3496799) Added getmemoryinfo parameter string update (#3062) +- [`9d2d8cced`](https://github.com/dashpay/dash/commit/9d2d8cced) Add a few malleability tests for DIP2/3 transactions (#3060) +- [`4983f7abb`](https://github.com/dashpay/dash/commit/4983f7abb) RPC Fix typo in getmerkleblocks help (#3056) +- [`a78dcfdec`](https://github.com/dashpay/dash/commit/a78dcfdec) Add the public GPG key for Pasta for Gitian building (#3057) +- [`929c892c0`](https://github.com/dashpay/dash/commit/929c892c0) Remove p2p alert leftovers (#3050) +- [`dd7873857`](https://github.com/dashpay/dash/commit/dd7873857) Re-verify invalid IS sigs when the active quorum set rotated (#3052) +- [`13e023510`](https://github.com/dashpay/dash/commit/13e023510) Remove recovered sigs from the LLMQ db when corresponding IS locks get confirmed (#3048) +- [`4a7525da3`](https://github.com/dashpay/dash/commit/4a7525da3) Add "instantsendlocks" to getmempoolinfo RPC (#3047) +- [`fbb49f92d`](https://github.com/dashpay/dash/commit/fbb49f92d) Bail out properly on Evo DB consistency check failures in ConnectBlock/DisconnectBlock (#3044) +- [`8d89350b8`](https://github.com/dashpay/dash/commit/8d89350b8) Use less alarming fee warning note (#3038) +- [`02f6188e8`](https://github.com/dashpay/dash/commit/02f6188e8) Do not count 0-fee txes for fee estimation (#3037) +- [`f0c73f5ce`](https://github.com/dashpay/dash/commit/f0c73f5ce) Revert "Skip mempool.dat when wallet is starting in "zap" mode (#2782)" +- [`be3bc48c9`](https://github.com/dashpay/dash/commit/be3bc48c9) Fix broken link in PrivateSend info dialog (#3031) +- [`acab8c552`](https://github.com/dashpay/dash/commit/acab8c552) Add Dash Core Group codesign certificate (#3027) +- [`a1c4321e9`](https://github.com/dashpay/dash/commit/a1c4321e9) Fix osslsigncode compile issue in gitian-build (#3026) +- [`2f21e5551`](https://github.com/dashpay/dash/commit/2f21e5551) Remove legacy InstantSend code (#3020) +- [`7a440d626`](https://github.com/dashpay/dash/commit/7a440d626) Optimize on-disk deterministic masternode storage to reduce size of evodb (#3017) +- [`85fcf32c9`](https://github.com/dashpay/dash/commit/85fcf32c9) Remove support for InstantSend locked gobject collaterals (#3019) +- [`bdec34c94`](https://github.com/dashpay/dash/commit/bdec34c94) remove DS mixes once they have been included in a chainlocked block (#3015) +- [`ee9adb948`](https://github.com/dashpay/dash/commit/ee9adb948) Use std::unique_ptr for mnList in CSimplifiedMNList (#3014) +- [`b401a3baa`](https://github.com/dashpay/dash/commit/b401a3baa) Fix compilation on Ubuntu 16.04 (#3013) +- [`c6eededca`](https://github.com/dashpay/dash/commit/c6eededca) Add "isValidMember" and "memberIndex" to "quorum memberof" and allow to specify quorum scan count (#3009) +- [`b9aadc071`](https://github.com/dashpay/dash/commit/b9aadc071) Fix excessive memory use when flushing chainstate and EvoDB (#3008) +- [`780bffeb7`](https://github.com/dashpay/dash/commit/780bffeb7) Enable stacktrace support in gitian builds (#3006) +- [`5809c5c3d`](https://github.com/dashpay/dash/commit/5809c5c3d) Implement "quorum memberof" (#3004) +- [`63424fb26`](https://github.com/dashpay/dash/commit/63424fb26) Fix 2 common Travis failures which happen when Travis has network issues (#3003) +- [`09b017fc5`](https://github.com/dashpay/dash/commit/09b017fc5) Only load signingActiveQuorumCount + 1 quorums into cache (#3002) +- [`b75e1cebd`](https://github.com/dashpay/dash/commit/b75e1cebd) Decouple lite mode and client-side PrivateSend (#2893) +- [`b9a738528`](https://github.com/dashpay/dash/commit/b9a738528) Remove skipped denom from the list on tx commit (#2997) +- [`5bdb2c0ce`](https://github.com/dashpay/dash/commit/5bdb2c0ce) Revert "Show BIP9 progress in getblockchaininfo (#2435)" +- [`b62db7618`](https://github.com/dashpay/dash/commit/b62db7618) Revert " Add real timestamp to log output when mock time is enabled (#2604)" +- [`1f6e0435b`](https://github.com/dashpay/dash/commit/1f6e0435b) [Trivial] Fix a typo in a comment in mnauth.h (#2988) +- [`f84d5d46d`](https://github.com/dashpay/dash/commit/f84d5d46d) QT: Revert "Force TLS1.0+ for SSL connections" (#2985) +- [`2e13d1305`](https://github.com/dashpay/dash/commit/2e13d1305) Add some comments to make quorum merkle root calculation more clear+ (#2984) +- [`6677a614a`](https://github.com/dashpay/dash/commit/6677a614a) Run extended tests when Travis is started through cron (#2983) +- [`d63202bdc`](https://github.com/dashpay/dash/commit/d63202bdc) Should send "reject" when mixing queue is full (#2981) +- [`8d5781f40`](https://github.com/dashpay/dash/commit/8d5781f40) Stop reporting/processing the number of mixing participants in DSSTATUSUPDATE (#2980) +- [`7334aa553`](https://github.com/dashpay/dash/commit/7334aa553) adjust privatesend formatting and follow some best practices (#2979) +- [`f14179ca0`](https://github.com/dashpay/dash/commit/f14179ca0) [Tests] Remove unused variable and inline another variable in evo_deterministicmns_tests.cpp (#2978) +- [`2756cb795`](https://github.com/dashpay/dash/commit/2756cb795) remove spork 12 (#2754) +- [`633231092`](https://github.com/dashpay/dash/commit/633231092) Provide correct params to AcceptToMemoryPoolWithTime() in LoadMempool() (#2976) +- [`e03538778`](https://github.com/dashpay/dash/commit/e03538778) Back off for 1m when connecting to quorum masternodes (#2975) +- [`bfcfb70d8`](https://github.com/dashpay/dash/commit/bfcfb70d8) Ignore blocks that do not match the filter in getmerkleblocks rpc (#2973) +- [`4739daddc`](https://github.com/dashpay/dash/commit/4739daddc) Process/keep messages/connections from PoSe-banned MNs (#2967) +- [`864856688`](https://github.com/dashpay/dash/commit/864856688) Multiple speed optimizations for deterministic MN list handling (#2972) +- [`d931cb723`](https://github.com/dashpay/dash/commit/d931cb723) Update copyright date (2019) (#2970) +- [`a83b63186`](https://github.com/dashpay/dash/commit/a83b63186) Fix UI masternode list (#2966) +- [`85c9ea400`](https://github.com/dashpay/dash/commit/85c9ea400) Throw a bit more descriptive error message on UpgradeDB failure on pruned nodes (#2962) +- [`2c5e2bc6c`](https://github.com/dashpay/dash/commit/2c5e2bc6c) Inject custom specialization of std::hash for SporkId enum into std (#2960) +- [`809aae73a`](https://github.com/dashpay/dash/commit/809aae73a) RPC docs helper updates (#2949) +- [`09d66c776`](https://github.com/dashpay/dash/commit/09d66c776) Fix compiler warning (#2956) +- [`26bd0d278`](https://github.com/dashpay/dash/commit/26bd0d278) Fix bls and bls_dkg bench (#2955) +- [`d28d318aa`](https://github.com/dashpay/dash/commit/d28d318aa) Remove logic for handling objects and votes orphaned by not-yet-known MNs (#2954) +- [`e02c562aa`](https://github.com/dashpay/dash/commit/e02c562aa) [RPC] Remove check for deprecated `masternode start-many` command (#2950) +- [`fc73b4d6e`](https://github.com/dashpay/dash/commit/fc73b4d6e) Refactor sporks to get rid of repeated if/else blocks (#2946) +- [`a149ca747`](https://github.com/dashpay/dash/commit/a149ca747) Remove references to instantx and darksend in sendcoinsdialog.cpp (#2936) +- [`b74cd3e10`](https://github.com/dashpay/dash/commit/b74cd3e10) Only require valid collaterals for votes and triggers (#2947) +- [`66b336c93`](https://github.com/dashpay/dash/commit/66b336c93) Use Travis stages instead of custom timeouts (#2948) +- [`5780fa670`](https://github.com/dashpay/dash/commit/5780fa670) Remove duplicate code from src/Makefile.am (#2944) +- [`428f30450`](https://github.com/dashpay/dash/commit/428f30450) Implement `rawchainlocksig` and `rawtxlocksig` (#2930) +- [`c08e76101`](https://github.com/dashpay/dash/commit/c08e76101) Tighten rules for DSVIN/DSTX (#2897) +- [`f1fe24b67`](https://github.com/dashpay/dash/commit/f1fe24b67) Only gracefully timeout Travis when integration tests need to be run (#2933) +- [`7c05aa821`](https://github.com/dashpay/dash/commit/7c05aa821) Also gracefully timeout Travis builds when building source takes >30min (#2932) +- [`5652ea023`](https://github.com/dashpay/dash/commit/5652ea023) Show number of InstantSend locks in Debug Console (#2919) +- [`a3f030609`](https://github.com/dashpay/dash/commit/a3f030609) Implement getmerkleblocks rpc (#2894) +- [`32aa229c7`](https://github.com/dashpay/dash/commit/32aa229c7) Reorganize Dash Specific code into folders (#2753) +- [`acbf0a221`](https://github.com/dashpay/dash/commit/acbf0a221) Bump version to 0.14.1 (#2928) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Alexander Block (codablock) +- Amir Abrams (AmirAbrams) +- -k (charlesrocket) +- Cofresi +- Nathan Marley (nmarley) +- PastaPastaPasta +- Riku (rikublock) +- strophy +- taw00 +- thephez +- 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.14.0.5](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.5.md) released December/08/2019 +- [v0.14.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.4.md) released November/22/2019 +- [v0.14.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.3.md) released August/15/2019 +- [v0.14.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.2.md) released July/4/2019 +- [v0.14.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.1.md) released May/31/2019 +- [v0.14.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md) released May/22/2019 +- [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 +- [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 diff --git a/doc/release-notes/dash/release-notes-0.16-backports.md b/doc/release-notes/dash/release-notes-0.16-backports.md new file mode 100644 index 0000000000..242f945c1d --- /dev/null +++ b/doc/release-notes/dash/release-notes-0.16-backports.md @@ -0,0 +1,489 @@ +### 0.16 backports and related fixes: +- [`0662f170f0`](https://github.com/dashpay/dash/commit/0662f170f0) Merge #12836: Make WalletInitInterface and DummyWalletInit private, fix nullptr deref (#3498) +- [`0b3c3e8406`](https://github.com/dashpay/dash/commit/0b3c3e8406) Merge bitcoin#11415: [RPC] Disallow using addresses in createmultisig (#3482) +- [`505542663d`](https://github.com/dashpay/dash/commit/505542663d) Merge #12384: [Docs] Add version footnote to tor.md (#3473) +- [`124824da41`](https://github.com/dashpay/dash/commit/124824da41) Backport bitcoin#14123 and bitcoin#16720 (#3463) +- [`ed7d8c883c`](https://github.com/dashpay/dash/commit/ed7d8c883c) Fix autobackup +- [`cd42171a4f`](https://github.com/dashpay/dash/commit/cd42171a4f) bitcoind -> dashd +- [`b1c26d4aae`](https://github.com/dashpay/dash/commit/b1c26d4aae) qt: Disconnect CClientUIInterface from SplashScreen::ConnectWallet +- [`b0c1406bee`](https://github.com/dashpay/dash/commit/b0c1406bee) End Merge #11851: Add m_ prefix to WalletBatch::m_batch +- [`1cf961182f`](https://github.com/dashpay/dash/commit/1cf961182f) Update walletdb comment after renaming. +- [`b1c8875579`](https://github.com/dashpay/dash/commit/b1c8875579) scripted-diff: Rename wallet database classes (begin bitcoin#11851) +- [`8ebbdfe805`](https://github.com/dashpay/dash/commit/8ebbdfe805) Merge #10740: [wallet] `loadwallet` RPC - load wallet at runtime +- [`3d73de3381`](https://github.com/dashpay/dash/commit/3d73de3381) Merge #13028: Make vpwallets usage thread safe +- [`b0dc2ab3c1`](https://github.com/dashpay/dash/commit/b0dc2ab3c1) Merge #11862: Network specific conf sections +- [`aaf5bf1a7e`](https://github.com/dashpay/dash/commit/aaf5bf1a7e) Merge #12878: [refactor] Config handling refactoring in preparation for network-specific sections +- [`7a89b916d1`](https://github.com/dashpay/dash/commit/7a89b916d1) Merge #12713: Track negated options in the option parser +- [`8700f460e3`](https://github.com/dashpay/dash/commit/8700f460e3) Merge #12305: [docs] [refactor] Add help messages for datadir path mangling +- [`28a8db3ca7`](https://github.com/dashpay/dash/commit/28a8db3ca7) Fix sourceFile +- [`97907b051f`](https://github.com/dashpay/dash/commit/97907b051f) Fix autobackup functionality +- [`6f4260f860`](https://github.com/dashpay/dash/commit/6f4260f860) bitcoin -> Dash Core +- [`02dfb89b02`](https://github.com/dashpay/dash/commit/02dfb89b02) fix test 50 -> 500 +- [`4aa8a9a206`](https://github.com/dashpay/dash/commit/4aa8a9a206) resolve DEFAULT_WALLET_DAT being removed +- [`7999080c04`](https://github.com/dashpay/dash/commit/7999080c04) Merge #11687: External wallet files +- [`6db01000cf`](https://github.com/dashpay/dash/commit/6db01000cf) 13017 continued +- [`4dcd8d1bea`](https://github.com/dashpay/dash/commit/4dcd8d1bea) Merge #13017: Add wallets management functions +- [`087d98477b`](https://github.com/dashpay/dash/commit/087d98477b) Merge bitcoin#10387: Eventually connect to NODE_NETWORK_LIMITED peers (#3417) +- [`08477899b4`](https://github.com/dashpay/dash/commit/08477899b4) Merge #13522: [tests] Fix p2p_sendheaders race (#3438) +- [`d804a753af`](https://github.com/dashpay/dash/commit/d804a753af) Merge bitcoin#13134: net: Add option `-enablebip61` to configure sending of BIP61 notifications (#3414) +- [`3d175aa2e5`](https://github.com/dashpay/dash/commit/3d175aa2e5) Merge bitcoin#13151: net: Serve blocks directly from disk when possible (#3408) +- [`97742a14d8`](https://github.com/dashpay/dash/commit/97742a14d8) Merge bitcoin#10762: [wallet] Remove Wallet dependencies from init.cpp (#3412) +- [`782ee1a3cf`](https://github.com/dashpay/dash/commit/782ee1a3cf) Merge #10677: RPC Docs: addmultisigaddress is intended for non-watchonly addresses +- [`a13e2f4355`](https://github.com/dashpay/dash/commit/a13e2f4355) Merge #13123: net: Add Clang thread safety annotations for guarded variables in the networking code +- [`b215a1f005`](https://github.com/dashpay/dash/commit/b215a1f005) Merge #12986: Trivial: Corrected comment array name from pnSeeds6 to pnSeed6 +- [`bbce45d8bd`](https://github.com/dashpay/dash/commit/bbce45d8bd) Merge #13652: rpc: Fix that CWallet::AbandonTransaction would leave the grandchildren, etc. active +- [`5aee3ef4e9`](https://github.com/dashpay/dash/commit/5aee3ef4e9) Merge bitcoin#12617: gui: Show messages as text not html +- [`d7cbaec108`](https://github.com/dashpay/dash/commit/d7cbaec108) Merge #12432: [qt] send: Clear All also resets coin control options +- [`e480ae9fa8`](https://github.com/dashpay/dash/commit/e480ae9fa8) Merge #12743: Fix csBestBlock/cvBlockChange waiting in rpc/mining +- [`2a3df4d54c`](https://github.com/dashpay/dash/commit/2a3df4d54c) Merge #12573: Fix compilation when compiler do not support __builtin_clz* +- [`7c5319f032`](https://github.com/dashpay/dash/commit/7c5319f032) Partial Merge #13545: tests: Fix test case streams_serializedata_xor. Remove Boost dependency. +- [`23704daaf0`](https://github.com/dashpay/dash/commit/23704daaf0) Merge #13437: wallet: Erase wtxOrderd wtx pointer on removeprunedfunds +- [`15fb6dbf05`](https://github.com/dashpay/dash/commit/15fb6dbf05) Merge #13061: Make tests pass after 2020 +- [`424bbc3425`](https://github.com/dashpay/dash/commit/424bbc3425) Merge #12837: rpc: fix type mistmatch in `listreceivedbyaddress` +- [`29a0865df3`](https://github.com/dashpay/dash/commit/29a0865df3) Merge #13304: qa: Fix wallet_listreceivedby race +- [`6dfb5a7377`](https://github.com/dashpay/dash/commit/6dfb5a7377) Merge #13192: [tests] Fixed intermittent failure in p2p_sendheaders.py. +- [`b08a1f9ec1`](https://github.com/dashpay/dash/commit/b08a1f9ec1) Merge #12793: qt: Avoid reseting on resetguisettigs=0 +- [`d4065e79ac`](https://github.com/dashpay/dash/commit/d4065e79ac) Merge #15324: test: Make bloom tests deterministic +- [`c52c1e1ce5`](https://github.com/dashpay/dash/commit/c52c1e1ce5) Merge #17243: p2p: add PoissonNextSend method that returns mockable time +- [`ea9f97c53b`](https://github.com/dashpay/dash/commit/ea9f97c53b) Merge #13298: Net: Bucketing INV delays (1 bucket) for incoming connections to hide tx time +- [`8ade2f7957`](https://github.com/dashpay/dash/commit/8ade2f7957) Merge bitcoin#11281: Avoid permanent cs_main/cs_wallet lock during RescanFromTime (#3411) +- [`54198ce739`](https://github.com/dashpay/dash/commit/54198ce739) Backport bitcoin#15773: test: Add BitcoinTestFramework::sync_* methods (incomplete backport) (#3409) +- [`93513d1296`](https://github.com/dashpay/dash/commit/93513d1296) Backport 10279 (#3394) +- [`6724a1ba64`](https://github.com/dashpay/dash/commit/6724a1ba64) Merge #13507: RPC: Fix parameter count check for importpubkey +- [`f7d5e538df`](https://github.com/dashpay/dash/commit/f7d5e538df) Merge #13451: rpc: expose CBlockIndex::nTx in getblock(header) +- [`11b6221b80`](https://github.com/dashpay/dash/commit/11b6221b80) Merge #13131: Add Windows shutdown handler +- [`38ccf6f628`](https://github.com/dashpay/dash/commit/38ccf6f628) Bugfix: Include for std::unique_ptr +- [`01d3f009c5`](https://github.com/dashpay/dash/commit/01d3f009c5) Merge #12089: qa: Make TestNodeCLI command optional in send_cli +- [`5bb47a6d91`](https://github.com/dashpay/dash/commit/5bb47a6d91) Merge #12198: rpc: Add deprecation error for `getinfo` +- [`d6c36124c0`](https://github.com/dashpay/dash/commit/d6c36124c0) Merge #12227: test_runner: Readable output if create_cache.py fails +- [`8e1484fc62`](https://github.com/dashpay/dash/commit/8e1484fc62) continued +- [`1ab6447f10`](https://github.com/dashpay/dash/commit/1ab6447f10) Merge #11791: [tests] Rename NodeConn and NodeConnCB +- [`43c33aa719`](https://github.com/dashpay/dash/commit/43c33aa719) fix +- [`a9ac795173`](https://github.com/dashpay/dash/commit/a9ac795173) Merge #11293: Deduplicate CMerkleBlock construction code, add test coverage +- [`5cf417bc3a`](https://github.com/dashpay/dash/commit/5cf417bc3a) Bump mocktime while syncing mempools +- [`24b25e13da`](https://github.com/dashpay/dash/commit/24b25e13da) Add wait_func to sync_mempool +- [`6d93b33f48`](https://github.com/dashpay/dash/commit/6d93b33f48) Fix compilation of util_time.cpp +- [`6b32192bdc`](https://github.com/dashpay/dash/commit/6b32192bdc) Fix compilation +- [`775e4ba823`](https://github.com/dashpay/dash/commit/775e4ba823) transactions -> objects +- [`a7b38efb98`](https://github.com/dashpay/dash/commit/a7b38efb98) Fix GetObjectInterval and EraseObjectRequest +- [`8e5fbedf21`](https://github.com/dashpay/dash/commit/8e5fbedf21) net: Use mockable time for tx download +- [`a76bafb98c`](https://github.com/dashpay/dash/commit/a76bafb98c) Merge #16046: util: Add type safe GetTime +- [`2d4cc8a19e`](https://github.com/dashpay/dash/commit/2d4cc8a19e) More logging for object request handling +- [`81503598b9`](https://github.com/dashpay/dash/commit/81503598b9) No inbound delay for non-TX objects and masternodes +- [`26fcd3f0bf`](https://github.com/dashpay/dash/commit/26fcd3f0bf) Also remove m_tx_announced and m_tx_in_flight entries when EraseObjectRequest is called +- [`4bfc20cb67`](https://github.com/dashpay/dash/commit/4bfc20cb67) Force re-requesting of IS locked TXs +- [`ef14b19f05`](https://github.com/dashpay/dash/commit/ef14b19f05) Don't re-request erased object requests +- [`2443c8f582`](https://github.com/dashpay/dash/commit/2443c8f582) Replace uses of CNode::AskFor with RequestObject +- [`004d9224c4`](https://github.com/dashpay/dash/commit/004d9224c4) Replace uses of CConnman::RemoveAskFor with EraseObjectRequest +- [`414943b611`](https://github.com/dashpay/dash/commit/414943b611) Make interval and timeout dependend on INV type +- [`56da433bd9`](https://github.com/dashpay/dash/commit/56da433bd9) Fix governance.cpp +- [`29d3b75f28`](https://github.com/dashpay/dash/commit/29d3b75f28) Generalize TX request code +- [`8c11a8e698`](https://github.com/dashpay/dash/commit/8c11a8e698) Remove MSG_WITNESS_TX +- [`74eabc23e5`](https://github.com/dashpay/dash/commit/74eabc23e5) Merge #15834: Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map +- [`8c0ff34ccd`](https://github.com/dashpay/dash/commit/8c0ff34ccd) Merge #14897: randomize GETDATA(tx) request order and introduce bias toward outbound +- [`9401366e8e`](https://github.com/dashpay/dash/commit/9401366e8e) Set wakeupSelectNeeded=true while poll() is running +- [`1524185462`](https://github.com/dashpay/dash/commit/1524185462) Merge #13212: Net: Fixed a race condition when disabling the network. +- [`f2364b7e5c`](https://github.com/dashpay/dash/commit/f2364b7e5c) Wait for ping/pong before starting testing in net.py +- [`351ddf938d`](https://github.com/dashpay/dash/commit/351ddf938d) Merge #15069: test: Fix rpc_net.py "pong" race condition +- [`62dc0bbdae`](https://github.com/dashpay/dash/commit/62dc0bbdae) Merge #16459: [qa] Fix race condition in example_test.py +- [`575d89fcf4`](https://github.com/dashpay/dash/commit/575d89fcf4) Introduce USE_WAKEUP_PIPE +- [`bc2c70f44a`](https://github.com/dashpay/dash/commit/bc2c70f44a) Increase maxconnections limit when using poll. +- [`efec6cc409`](https://github.com/dashpay/dash/commit/efec6cc409) Implement wakeup pipe handling in poll based SocketEvents +- [`c0b10497bf`](https://github.com/dashpay/dash/commit/c0b10497bf) Implement poll() on systems which support it properly. +- [`8481d6c110`](https://github.com/dashpay/dash/commit/8481d6c110) --- Begin backporting bitcoin#14336 +- [`7c022a20a1`](https://github.com/dashpay/dash/commit/7c022a20a1) Move SocketEvents logic to private method. +- [`ccc3f267ba`](https://github.com/dashpay/dash/commit/ccc3f267ba) Move GenerateSelectSet logic to private method. +- [`7a38df4f76`](https://github.com/dashpay/dash/commit/7a38df4f76) Introduce and use constant SELECT_TIMEOUT_MILLISECONDS. +- [`4e00e435e9`](https://github.com/dashpay/dash/commit/4e00e435e9) Move SocketHandler logic to private method. +- [`cbb6c9a4f9`](https://github.com/dashpay/dash/commit/cbb6c9a4f9) Move InactivityCheck logic to private method. +- [`07f6d92e36`](https://github.com/dashpay/dash/commit/07f6d92e36) Move DisconnectNodes logic to private method. +- [`6eef194443`](https://github.com/dashpay/dash/commit/6eef194443) Move NotifyNumConnectionsChanged logic to private method. +- [`f9bf204829`](https://github.com/dashpay/dash/commit/f9bf204829) --- Begin backporting bitcoin#14335 +- [`9591199629`](https://github.com/dashpay/dash/commit/9591199629) Merge #13503: Document FreeBSD quirk. Fix FreeBSD build: Use std::min(...) to allow for compilation under certain FreeBSD versions. +- [`544552e749`](https://github.com/dashpay/dash/commit/544552e749) bench_bitcoin -> bench_dash +- [`af1dc378cd`](https://github.com/dashpay/dash/commit/af1dc378cd) More of 11220 +- [`48f8f4c353`](https://github.com/dashpay/dash/commit/48f8f4c353) Fix 11867 +- [`561451810e`](https://github.com/dashpay/dash/commit/561451810e) Merge #11867: Improve node network test +- [`6e78ccc09d`](https://github.com/dashpay/dash/commit/6e78ccc09d) Merge #11946: tests: Remove unused variable (firstAddrnServices) +- [`b25eec73ed`](https://github.com/dashpay/dash/commit/b25eec73ed) Merge #11220: Check specific validation error in miner tests +- [`61d12fd5bb`](https://github.com/dashpay/dash/commit/61d12fd5bb) remove witness +- [`5757e0d9e3`](https://github.com/dashpay/dash/commit/5757e0d9e3) Merge #10699: Make all script validation flags backward compatible +- [`7c79c480d7`](https://github.com/dashpay/dash/commit/7c79c480d7) Merge #11804: [docs] Fixed outdated link with archive.is +- [`a4bdc16b10`](https://github.com/dashpay/dash/commit/a4bdc16b10) Merge #11683: tests: Remove unused mininode functions {ser,deser}_int_vector(...). Remove unused imports. +- [`af2cf2028e`](https://github.com/dashpay/dash/commit/af2cf2028e) fix +- [`625142bfa0`](https://github.com/dashpay/dash/commit/625142bfa0) Merge #12327: [gui] Defer coin control instancing +- [`a09e1c9b7e`](https://github.com/dashpay/dash/commit/a09e1c9b7e) Merge #12187: [Docs] Updating benchmarkmarking.md with an updated sample output +- [`7fb5b5b3a5`](https://github.com/dashpay/dash/commit/7fb5b5b3a5) Merge #12173: [Qt] Use flexible font size for QRCode image address +- [`52bf616cc4`](https://github.com/dashpay/dash/commit/52bf616cc4) Merge #11712: [tests] Split NodeConn from NodeConnCB (#3373) +- [`73cc3d786b`](https://github.com/dashpay/dash/commit/73cc3d786b) Merge #12093: Fix incorrect Markdown link +- [`bf7cb2dfcc`](https://github.com/dashpay/dash/commit/bf7cb2dfcc) Merge #12075: [scripts] Add missing univalue file to copyright_header.py +- [`0f937164eb`](https://github.com/dashpay/dash/commit/0f937164eb) Merge #11965: qa: Note on test order in test_runner +- [`6377f5064c`](https://github.com/dashpay/dash/commit/6377f5064c) Merge #11916: Typo fix +- [`bf2d66823a`](https://github.com/dashpay/dash/commit/bf2d66823a) Merge #11842: [build] Add missing stuff to clean-local +- [`47be3441b0`](https://github.com/dashpay/dash/commit/47be3441b0) Merge #11903: [trivial] Add required package dependencies for depends cross compilation +- [`3567f7b399`](https://github.com/dashpay/dash/commit/3567f7b399) Merge #13184: RPC Docs: gettxout*: clarify bestblock and unspent counts +- [`9d269073de`](https://github.com/dashpay/dash/commit/9d269073de) Merge #13201: [qa] Handle disconnect_node race +- [`232bd29936`](https://github.com/dashpay/dash/commit/232bd29936) Merge #12999: qt: Show the Window when double clicking the taskbar icon +- [`f6bbb2c16a`](https://github.com/dashpay/dash/commit/f6bbb2c16a) Merge #12998: Default to defining endian-conversion DECLs in compat w/o config +- [`fa652559f0`](https://github.com/dashpay/dash/commit/fa652559f0) Merge #12985: Windows: Avoid launching as admin when NSIS installer ends. +- [`547aef1b0b`](https://github.com/dashpay/dash/commit/547aef1b0b) Merge #12650: gui: Fix issue: "default port not shown correctly in settings dialog" +- [`89bc82625b`](https://github.com/dashpay/dash/commit/89bc82625b) test: Add missing signal.h header +- [`40e4a1a45c`](https://github.com/dashpay/dash/commit/40e4a1a45c) Merge #12422: util: Make LockDirectory thread-safe, consistent, and fix OpenBSD 6.2 build +- [`45844dc002`](https://github.com/dashpay/dash/commit/45844dc002) Merge #12241: [trivial][docs] Fix incorrect link in /test/ README.md +- [`7d75dbda22`](https://github.com/dashpay/dash/commit/7d75dbda22) More of 10773 +- [`f4d6d370f0`](https://github.com/dashpay/dash/commit/f4d6d370f0) Fix 11854 +- [`97f1661853`](https://github.com/dashpay/dash/commit/97f1661853) fix test failure and fix indentation +- [`9bedb900a9`](https://github.com/dashpay/dash/commit/9bedb900a9) Merge #11904: Add a lock to the wallet directory +- [`9d3c7c3ca6`](https://github.com/dashpay/dash/commit/9d3c7c3ca6) Merge #11854: Split up key and script metadata for better type safety +- [`02ab2efe4a`](https://github.com/dashpay/dash/commit/02ab2efe4a) Merge #11667: Add scripts to dumpwallet RPC +- [`adec6e262e`](https://github.com/dashpay/dash/commit/adec6e262e) Merge #11997: [tests] util_tests.cpp: actually check ignored args +- [`58422516d0`](https://github.com/dashpay/dash/commit/58422516d0) Merge #10874: [RPC] getblockchaininfo: Loop through the bip9 soft fork deployments instead of hard coding +- [`7b1f32082c`](https://github.com/dashpay/dash/commit/7b1f32082c) Merge #11981: Fix gitian build after libzmq bump +- [`fe8c18ca77`](https://github.com/dashpay/dash/commit/fe8c18ca77) Merge #10574: Remove includes in .cpp files for things the corresponding .h file already included +- [`a7a3ecc354`](https://github.com/dashpay/dash/commit/a7a3ecc354) Merge #10773: Shell script cleanups +- [`a98db86ada`](https://github.com/dashpay/dash/commit/a98db86ada) Merge #10493: Use range-based for loops (C++11) when looping over map elements +- [`306390abac`](https://github.com/dashpay/dash/commit/306390abac) Merge #11746: trivial: Fix unsuccessful typo +- [`3f16ebd70a`](https://github.com/dashpay/dash/commit/3f16ebd70a) Merge #11738: Fix sendrawtransaction hang when sending a tx already in mempool +- [`1587728345`](https://github.com/dashpay/dash/commit/1587728345) Merge #11690: [trivial] Fix the StartupWMClass for bitoin-qt, so gnome-shell can recognize it +- [`975f73be7a`](https://github.com/dashpay/dash/commit/975f73be7a) Merge #11648: [tests] Add messages.py (#3372) +- [`6e54327ef2`](https://github.com/dashpay/dash/commit/6e54327ef2) Apply suggestions from code review +- [`d94dd15de7`](https://github.com/dashpay/dash/commit/d94dd15de7) Merge #11718: tests: move pwalletMain to wallet test fixture +- [`9b1ebdb161`](https://github.com/dashpay/dash/commit/9b1ebdb161) Merge #12902: [qa] Handle potential cookie race when starting node +- [`7afc672d80`](https://github.com/dashpay/dash/commit/7afc672d80) Merge #12904: [qa] Ensure bitcoind processes are cleaned up when tests end +- [`5fc1686919`](https://github.com/dashpay/dash/commit/5fc1686919) Merge #12843: [tests] Test starting bitcoind with -h and -version +- [`57d82cf722`](https://github.com/dashpay/dash/commit/57d82cf722) Merge #12638: qa: Cache only chain and wallet for regtest datadir +- [`8bf0a5c3c7`](https://github.com/dashpay/dash/commit/8bf0a5c3c7) Merge #12553: Prefer wait_until over polling with time.sleep +- [`62bbabb6ac`](https://github.com/dashpay/dash/commit/62bbabb6ac) Merge #12475: qa: Fix python TypeError in script.py +- [`fa59296e74`](https://github.com/dashpay/dash/commit/fa59296e74) Merge #12486: [test] Round target fee to 8 decimals in assert_fee_amount +- [`d3e5f8ead7`](https://github.com/dashpay/dash/commit/d3e5f8ead7) Merge #12518: [0.16] Bump leveldb subtree +- [`1e41cf9f3d`](https://github.com/dashpay/dash/commit/1e41cf9f3d) Merge #11722: Switched sync.{cpp,h} to std threading primitives. +- [`411c57995b`](https://github.com/dashpay/dash/commit/411c57995b) Merge #11884: Remove unused include in hash.cpp +- [`791719ea3d`](https://github.com/dashpay/dash/commit/791719ea3d) Merge #11839: don't attempt mempool entry for wallet transactions on startup if alr… +- [`f798771323`](https://github.com/dashpay/dash/commit/f798771323) Merge #11707: [tests] Fix sendheaders +- [`b1dff227cb`](https://github.com/dashpay/dash/commit/b1dff227cb) Apply some review suggestions +- [`871b8585ca`](https://github.com/dashpay/dash/commit/871b8585ca) Merge #11824: Block ActivateBestChain to empty validationinterface queue +- [`d8121bba29`](https://github.com/dashpay/dash/commit/d8121bba29) Apply suggestions from code review +- [`35b041ed14`](https://github.com/dashpay/dash/commit/35b041ed14) Merge #13894: shutdown: Stop threads before resetting ptrs +- [`c01e39d610`](https://github.com/dashpay/dash/commit/c01e39d610) Merge #12266: Move scheduler/threadGroup into common-init instead of per-app +- [`b46693eaf7`](https://github.com/dashpay/dash/commit/b46693eaf7) Apply the same fix to evoDb and deterministicMNManager as pblocktree +- [`9a2fa43455`](https://github.com/dashpay/dash/commit/9a2fa43455) Remove "> 0" from IsArgSet call +- [`75f32fb50f`](https://github.com/dashpay/dash/commit/75f32fb50f) Merge #11309: Minor cleanups for AcceptToMemoryPool +- [`ce08ccec2c`](https://github.com/dashpay/dash/commit/ce08ccec2c) Merge #12556: [Trivial] fix version typo in getpeerinfo RPC call help +- [`b447c5a0c6`](https://github.com/dashpay/dash/commit/b447c5a0c6) Merge #12349: shutdown: fix crash on shutdown with reindex-chainstate +- [`99caed29f1`](https://github.com/dashpay/dash/commit/99caed29f1) Merge #12415: Interrupt loading thread after shutdown request +- [`5e19f32b6b`](https://github.com/dashpay/dash/commit/5e19f32b6b) Merge #12401: Reset pblocktree before deleting LevelDB file +- [`78d303c3fd`](https://github.com/dashpay/dash/commit/78d303c3fd) Merge #12368: Hold mempool.cs for the duration of ATMP. +- [`aa34483efd`](https://github.com/dashpay/dash/commit/aa34483efd) Merge #12374: qt: Make sure splash screen is freed on AppInitMain fail +- [`7e5c5d40d1`](https://github.com/dashpay/dash/commit/7e5c5d40d1) Merge #12377: qt: Poll ShutdownTimer after init is done +- [`8095699575`](https://github.com/dashpay/dash/commit/8095699575) Merge #12367: Fix two fast-shutdown bugs +- [`1948435b4a`](https://github.com/dashpay/dash/commit/1948435b4a) Merge #12302: test: Make ua_comment test pass on 0.16.0 +- [`d8d18d6657`](https://github.com/dashpay/dash/commit/d8d18d6657) Merge #11714: [tests] Test that mempool rejects coinbase transactions +- [`e2c7d1f55a`](https://github.com/dashpay/dash/commit/e2c7d1f55a) add include +- [`62987bee8c`](https://github.com/dashpay/dash/commit/62987bee8c) Merge #11191: RPC: Improve help text and behavior of RPC-logging. +- [`26281c023a`](https://github.com/dashpay/dash/commit/26281c023a) Merge #10154: init: Remove redundant logging code +- [`0c97cd5cee`](https://github.com/dashpay/dash/commit/0c97cd5cee) Merge #11710: cli: Reject arguments to -getinfo +- [`a4dfd54ecf`](https://github.com/dashpay/dash/commit/a4dfd54ecf) Merge #17324: Update univalue subtree +- [`0d49c6fa00`](https://github.com/dashpay/dash/commit/0d49c6fa00) Merge #15703: Update secp256k1 subtree to latest upstream +- [`139108aba5`](https://github.com/dashpay/dash/commit/139108aba5) Merge #15270: Pull leveldb subtree +- [`ce0118b613`](https://github.com/dashpay/dash/commit/ce0118b613) Merge #9254: [depends] ZeroMQ 4.2.2 +- [`8a1ec935a0`](https://github.com/dashpay/dash/commit/8a1ec935a0) Backport 11651 (#3358) +- [`ff5540bf73`](https://github.com/dashpay/dash/commit/ff5540bf73) Fix walletpassphrase +- [`0d42fa00ce`](https://github.com/dashpay/dash/commit/0d42fa00ce) Use mocktime in wallet-encryption.py +- [`be35371de7`](https://github.com/dashpay/dash/commit/be35371de7) More of 12079 +- [`079dbbc393`](https://github.com/dashpay/dash/commit/079dbbc393) Fix 11883 +- [`0c3df75e62`](https://github.com/dashpay/dash/commit/0c3df75e62) More of 11740 +- [`131d8f5cf5`](https://github.com/dashpay/dash/commit/131d8f5cf5) More of 11836 +- [`64e33f715f`](https://github.com/dashpay/dash/commit/64e33f715f) Merge #12220: Error if relative -walletdir is specified +- [`cc2cd7291b`](https://github.com/dashpay/dash/commit/cc2cd7291b) Merge #11970: Add test coverage for bitcoin-cli multiwallet calls +- [`be7bf2e9d8`](https://github.com/dashpay/dash/commit/be7bf2e9d8) Merge #11726: Cleanups + nit fixes for walletdir PR +- [`b24951bc78`](https://github.com/dashpay/dash/commit/b24951bc78) Merge #12905: [rpcwallet] Clamp walletpassphrase value at 100M seconds +- [`2a8040cebb`](https://github.com/dashpay/dash/commit/2a8040cebb) Merge #12101: Clamp walletpassphrase timeout to 2^30 seconds and check its bounds +- [`c4ffc620d0`](https://github.com/dashpay/dash/commit/c4ffc620d0) Merge #12118: Sort mempool by min(feerate, ancestor_feerate) +- [`9cc5078218`](https://github.com/dashpay/dash/commit/9cc5078218) Partial Merge #11403: [refactor] GetAccount{PubKey,Address} -> GetAccountDestination +- [`c02a1239b7`](https://github.com/dashpay/dash/commit/c02a1239b7) Merge #12079: Improve prioritisetransaction test coverage +- [`67cf9591c4`](https://github.com/dashpay/dash/commit/67cf9591c4) Merge #12001: [RPC] Adding ::minRelayTxFee amount to getmempoolinfo and updating help +- [`dbbeb0aee4`](https://github.com/dashpay/dash/commit/dbbeb0aee4) Merge #10657: Utils: Improvements to ECDSA key-handling code +- [`4a7a7cdfa2`](https://github.com/dashpay/dash/commit/4a7a7cdfa2) Merge #11951: Remove dead feeest-file read code for old versions +- [`df30971371`](https://github.com/dashpay/dash/commit/df30971371) Merge #11883: Add configuration file/argument testing +- [`4dd3124245`](https://github.com/dashpay/dash/commit/4dd3124245) Merge #11273: Ignore old format estimation file +- [`b446236e25`](https://github.com/dashpay/dash/commit/b446236e25) Merge #11923: Wallet : remove unused fNoncriticalErrors variable from CWalletDB::FindWalletTx +- [`e077cfd010`](https://github.com/dashpay/dash/commit/e077cfd010) Merge #11864: Make CWallet::FundTransaction atomic +- [`39a8e20de6`](https://github.com/dashpay/dash/commit/39a8e20de6) Merge #11558: Minimal code changes to allow msvc compilation +- [`3855979343`](https://github.com/dashpay/dash/commit/3855979343) Merge #11831: Always return true if AppInitMain got to the end +- [`07316dda2c`](https://github.com/dashpay/dash/commit/07316dda2c) Merge #11836: Rename rpcuser.py to rpcauth.py +- [`f175a2e351`](https://github.com/dashpay/dash/commit/f175a2e351) Merge #11740: Implement BIP159 NODE_NETWORK_LIMITED (pruned peers) *signaling only* +- [`315504c8c3`](https://github.com/dashpay/dash/commit/315504c8c3) Merge #11809: gui: Fix proxy setting options dialog crash +- [`6cf2ea19b2`](https://github.com/dashpay/dash/commit/6cf2ea19b2) Merge #11838: qa: Add getrawtransaction in_active_chain=False test +- [`8e8e06a597`](https://github.com/dashpay/dash/commit/8e8e06a597) Merge #10275: [rpc] Allow fetching tx directly from specified block in getrawtransaction +- [`85ccc76615`](https://github.com/dashpay/dash/commit/85ccc76615) Merge #11830: rpcuser.py: Use 'python' not 'python2' +- [`3d6713d651`](https://github.com/dashpay/dash/commit/3d6713d651) Merge #11729: [docs] links to code style guides +- [`f7f33091e1`](https://github.com/dashpay/dash/commit/f7f33091e1) Merge #10838: (finally) remove getinfo +- [`1c0acbefe1`](https://github.com/dashpay/dash/commit/1c0acbefe1) More of 10286 +- [`381f43a431`](https://github.com/dashpay/dash/commit/381f43a431) More of 11677 +- [`515b9b513b`](https://github.com/dashpay/dash/commit/515b9b513b) More of 10871 +- [`37580b0ba3`](https://github.com/dashpay/dash/commit/37580b0ba3) fix validationinterface.cpp +- [`3eb80fdcd5`](https://github.com/dashpay/dash/commit/3eb80fdcd5) Merge #10286: Call wallet notify callbacks in scheduler thread (without cs_main) +- [`4ec4e349d2`](https://github.com/dashpay/dash/commit/4ec4e349d2) Merge #11677: qa: Remove unused NodeConn members +- [`c1897a6f14`](https://github.com/dashpay/dash/commit/c1897a6f14) Merge #11043: Use std::unique_ptr (C++11) where possible +- [`a42d62d89e`](https://github.com/dashpay/dash/commit/a42d62d89e) Merge #11638: [tests] Dead mininode code +- [`08171fb386`](https://github.com/dashpay/dash/commit/08171fb386) Merge #11513: [trivial] [tests] A few Python3 tidy ups +- [`f2024366d8`](https://github.com/dashpay/dash/commit/f2024366d8) Merge #10871: Handle getinfo in bitcoin-cli w/ -getinfo (revival of #8843) +- [`a321e6195f`](https://github.com/dashpay/dash/commit/a321e6195f) Merge #11259: Remove duplicate destination decoding +- [`52a6c4e336`](https://github.com/dashpay/dash/commit/52a6c4e336) Apply suggestions from code review +- [`2c7b29bac5`](https://github.com/dashpay/dash/commit/2c7b29bac5) Merge #11466: Specify custom wallet directory with -walletdir param +- [`b84b36f228`](https://github.com/dashpay/dash/commit/b84b36f228) Merge #11621: [build] Add temp_bitcoin_locale_qrc to CLEAN_QT to fix make distcheck +- [`5f4770dc33`](https://github.com/dashpay/dash/commit/5f4770dc33) Merge #11654: tests: Initialize recently introduced non-static class member lastCycles to zero in constructor +- [`523ecf915b`](https://github.com/dashpay/dash/commit/523ecf915b) Merge #11646: Require a steady clock for bench with at least micro precision +- [`2a018f8807`](https://github.com/dashpay/dash/commit/2a018f8807) Merge #11221: Refactor: simpler read +- [`304f012632`](https://github.com/dashpay/dash/commit/304f012632) Merge #11562: bench: use std::chrono rather than gettimeofday +- [`06c90e5a83`](https://github.com/dashpay/dash/commit/06c90e5a83) Merge #10866: Fix -Wthread-safety-analysis warnings. Compile with -Wthread-safety-analysis if available. +- [`c9c67ea578`](https://github.com/dashpay/dash/commit/c9c67ea578) Merge #11620: [build] .gitignore: add background.tiff +- [`a592123640`](https://github.com/dashpay/dash/commit/a592123640) Merge #11460: [depends] mac_alias 2.0.6, ds_store 1.1.2 +- [`8a944a1a1a`](https://github.com/dashpay/dash/commit/8a944a1a1a) Merge #10961: Improve readability of DecodeBase58Check(...) +- [`fe333e188a`](https://github.com/dashpay/dash/commit/fe333e188a) Merge #10440: [tests] Add libFuzzer support +- [`09184fc89c`](https://github.com/dashpay/dash/commit/09184fc89c) Merge #10939: [init] Check non-emptiness of -blocknotify command prior to executing +- [`fb18f2664f`](https://github.com/dashpay/dash/commit/fb18f2664f) Merge #11443: [qa] Allow "make cov" out-of-tree; Fix rpc mapping check +- [`1017bbb84e`](https://github.com/dashpay/dash/commit/1017bbb84e) Merge #11419: Utils: Fix launchctl not being able to stop bitcoind +- [`3c5bd7708b`](https://github.com/dashpay/dash/commit/3c5bd7708b) Merge #11421: Merge current secp256k1 subtree +- [`581626f23b`](https://github.com/dashpay/dash/commit/581626f23b) Merge #11024: tests: Remove OldSetKeyFromPassphrase/OldEncrypt/OldDec… (#3320) +- [`052e7fcffd`](https://github.com/dashpay/dash/commit/052e7fcffd) Merge #10952: [wallet] Remove vchDefaultKey and have better first run… (#3319) +- [`0294caac0a`](https://github.com/dashpay/dash/commit/0294caac0a) Merge #11272: CKeystore/CCrypter: move relevant implementation out of… (#3318) +- [`3a83c3ada0`](https://github.com/dashpay/dash/commit/3a83c3ada0) Partial Merge #10420: Add Qt tests for wallet spends (#3317) +- [`00895b9dcb`](https://github.com/dashpay/dash/commit/00895b9dcb) Fix rawtransactions.py +- [`a3f779d08f`](https://github.com/dashpay/dash/commit/a3f779d08f) Fix `qt/test/wallettests.cpp` +- [`6d8738eb9e`](https://github.com/dashpay/dash/commit/6d8738eb9e) Merge #11365: [Tests] Add Qt GUI tests to Overview and ReceiveCoin Page +- [`21b7d3e81c`](https://github.com/dashpay/dash/commit/21b7d3e81c) Merge #11193: [Qt] Terminate string *pszExePath after readlink and without using memset +- [`eddba9c974`](https://github.com/dashpay/dash/commit/eddba9c974) Merge #11284: Fix invalid memory access in CScript::operator+= (guidovranken, ajtowns) +- [`74c5415a28`](https://github.com/dashpay/dash/commit/74c5415a28) Merge #11303: Fix estimatesmartfee rounding display issue +- [`f25f00aac1`](https://github.com/dashpay/dash/commit/f25f00aac1) Merge #10953: [Refactor] Combine scriptPubKey and amount as CTxOut in CScriptCheck +- [`db23d27e8a`](https://github.com/dashpay/dash/commit/db23d27e8a) test_bitcoin -> test_dash +- [`8f2d96c88f`](https://github.com/dashpay/dash/commit/8f2d96c88f) Merge #12276: Remove duplicate mapWallet lookups +- [`5e6f784df8`](https://github.com/dashpay/dash/commit/5e6f784df8) Merge #12278: Add special error for genesis coinbase to getrawtransaction +- [`4e230811b6`](https://github.com/dashpay/dash/commit/4e230811b6) Merge #11711: bitcoin_qt.m4: Minor fixes and clean-ups. +- [`2f8888a86e`](https://github.com/dashpay/dash/commit/2f8888a86e) Merge #12159: Use the character based overload for std::string::find. +- [`8462ae91aa`](https://github.com/dashpay/dash/commit/8462ae91aa) Merge #12108: [Refactor] Remove unused fQuit var from checkqueue.h +- [`f5fbfdefd5`](https://github.com/dashpay/dash/commit/f5fbfdefd5) Merge #12250: Make CKey::Load references const +- [`ea9db38b08`](https://github.com/dashpay/dash/commit/ea9db38b08) Merge #12212: Trivial: Fix spelling in zapwallettxes test description +- [`e158f1ad5b`](https://github.com/dashpay/dash/commit/e158f1ad5b) Merge #12127: Remove unused mempool index +- [`923126a663`](https://github.com/dashpay/dash/commit/923126a663) Merge #12168: Trivial: Fix #include sys/fcntl.h to just fcntl.h (without sys/) +- [`291051f209`](https://github.com/dashpay/dash/commit/291051f209) Merge #12074: [qt] Optimizes boolean expression model && model->haveWatchOnly() +- [`d086f160b5`](https://github.com/dashpay/dash/commit/d086f160b5) Merge #11291: Fix string concatenation to os.path.join and add exception case +- [`e288330e03`](https://github.com/dashpay/dash/commit/e288330e03) Merge #11748: [Tests] Adding unit tests for GetDifficulty in blockchain.cpp. +- [`b8c5d5d7ea`](https://github.com/dashpay/dash/commit/b8c5d5d7ea) Merge #11475: [rpc] mempoolinfo should take ::minRelayTxFee into account +- [`3654f15c91`](https://github.com/dashpay/dash/commit/3654f15c91) Merge #11879: [tests] remove redundant univalue_tests.cpp +- [`f4ed206352`](https://github.com/dashpay/dash/commit/f4ed206352) Merge #11952: [qa] univalue: Bump subtree +- [`ec35169d92`](https://github.com/dashpay/dash/commit/ec35169d92) Merge #11936: [build] Warn that only libconsensus can be built without Boost +- [`c60ba06bd0`](https://github.com/dashpay/dash/commit/c60ba06bd0) Merge #11886: Clarify getbalance meaning a tiny bit in response to questions. +- [`b9e3ae689a`](https://github.com/dashpay/dash/commit/b9e3ae689a) Merge #11616: Update ban-state in case of dirty-state during periodic sweep +- [`49825231fb`](https://github.com/dashpay/dash/commit/49825231fb) Merge #10839: Don't use pass by reference to const for cheaply-copied types (bool, char, etc.) +- [`212496c202`](https://github.com/dashpay/dash/commit/212496c202) Merge #11877: Improve createrawtransaction functional tests +- [`4b0a860f8f`](https://github.com/dashpay/dash/commit/4b0a860f8f) Merge #11870: wallet: Remove unnecessary mempool lock in ReacceptWalletTransactions +- [`b695b67d5f`](https://github.com/dashpay/dash/commit/b695b67d5f) Merge #11516: crypto: Add test cases covering the relevant HMAC-SHA{256,512} key length boundaries +- [`1a754b5d7b`](https://github.com/dashpay/dash/commit/1a754b5d7b) Merge #11829: Test datadir specified in conf file exists +- [`f16a0f79aa`](https://github.com/dashpay/dash/commit/f16a0f79aa) bitcoin -> Dash +- [`42583216fe`](https://github.com/dashpay/dash/commit/42583216fe) addressWidget -> search_widget +- [`f32949fa91`](https://github.com/dashpay/dash/commit/f32949fa91) Merge #11834: [verify-commits] Fix gpg.sh's echoing for commits with '\n' +- [`608fad56a0`](https://github.com/dashpay/dash/commit/608fad56a0) Merge #11781: Add `-debuglogfile` option +- [`48ed520f10`](https://github.com/dashpay/dash/commit/48ed520f10) Merge #11337: Fix code constness in CBlockIndex::GetAncestor() overloads +- [`610b3e1b06`](https://github.com/dashpay/dash/commit/610b3e1b06) Merge #11794: Prefix leveldb debug logging +- [`5091ab5bcc`](https://github.com/dashpay/dash/commit/5091ab5bcc) Merge #11783: Fix shutdown in case of errors during initialization +- [`4f2fcbd1a3`](https://github.com/dashpay/dash/commit/4f2fcbd1a3) Merge #11395: Qt: Enable searching by transaction id +- [`ff20819773`](https://github.com/dashpay/dash/commit/ff20819773) Merge #11753: clarify abortrescan rpc use +- [`151e9209cf`](https://github.com/dashpay/dash/commit/151e9209cf) Merge #11737: Document partial validation in ConnectBlock() +- [`1e2b2b11d5`](https://github.com/dashpay/dash/commit/1e2b2b11d5) Merge #11747: Fix: Open files read only if requested +- [`baadb52aef`](https://github.com/dashpay/dash/commit/baadb52aef) Merge #11603: Move RPC registration out of AppInitParameterInteraction +- [`a97ac0f09a`](https://github.com/dashpay/dash/commit/a97ac0f09a) Merge #11743: qa: Add multiwallet prefix test +- [`c7b8b2b35c`](https://github.com/dashpay/dash/commit/c7b8b2b35c) Merge #11698: [Docs] [Qt] RPC-Console nested commands documentation +- [`27d325eaea`](https://github.com/dashpay/dash/commit/27d325eaea) Merge #11713: Fix for mismatched extern definition in wallet tests +- [`eed401312e`](https://github.com/dashpay/dash/commit/eed401312e) Merge #11140: Trivial: Improve #endif comments +- [`11d59e785d`](https://github.com/dashpay/dash/commit/11d59e785d) Merge #10920: [qt] Fix potential memory leak in newPossibleKey(ChangeCWallet *wallet) +- [`a76a3b72db`](https://github.com/dashpay/dash/commit/a76a3b72db) Merge #11087: Diagnose unsuitable outputs in lockunspent(). +- [`0dbfdad044`](https://github.com/dashpay/dash/commit/0dbfdad044) Merge #11655: net: Assert state.m_chain_sync.m_work_header in ConsiderEviction +- [`5bbbce30eb`](https://github.com/dashpay/dash/commit/5bbbce30eb) Merge #11680: [docs] Add instructions for lcov report generation +- [`46d2cc6159`](https://github.com/dashpay/dash/commit/46d2cc6159) Merge #11035: [contrib] Add Valgrind suppressions file +- [`67c8484e20`](https://github.com/dashpay/dash/commit/67c8484e20) More of 11583 for Dash-specific code +- [`6eb6298bc2`](https://github.com/dashpay/dash/commit/6eb6298bc2) More of 12218 for Dash-specific code +- [`0255027fb6`](https://github.com/dashpay/dash/commit/0255027fb6) Fix "\n"s +- [`e7beff5bcd`](https://github.com/dashpay/dash/commit/e7beff5bcd) Merge #12855: net: Minor accumulated cleanups +- [`a3ea0e93ef`](https://github.com/dashpay/dash/commit/a3ea0e93ef) Merge #12626: Limit the number of IPs addrman learns from each DNS seeder +- [`12a9809824`](https://github.com/dashpay/dash/commit/12a9809824) Merge #12342: Extend #11583 to include "version handshake timeout" message +- [`03576217e5`](https://github.com/dashpay/dash/commit/03576217e5) Merge #12329: net: don't retry failed oneshot connections forever +- [`211c8a3a5b`](https://github.com/dashpay/dash/commit/211c8a3a5b) Merge #12326: net: initialize socket to avoid closing random fd's +- [`49549390af`](https://github.com/dashpay/dash/commit/49549390af) Merge #12218: net: Move misbehaving logging to net logging category +- [`500a60a8fe`](https://github.com/dashpay/dash/commit/500a60a8fe) Merge #11744: net: Add missing locks in net.{cpp,h} +- [`f4fb2c1906`](https://github.com/dashpay/dash/commit/f4fb2c1906) Merge #11583: Do not make it trivial for inbound peers to generate log entries +- [`fccf28b6a0`](https://github.com/dashpay/dash/commit/fccf28b6a0) Merge #11577: Fix warnings (-Wsign-compare) when building with DEBUG_ADDRMAN +- [`94e99441c5`](https://github.com/dashpay/dash/commit/94e99441c5) Merge #11512: Use GetDesireableServiceFlags in seeds, dnsseeds, fixing static seed adding +- [`88197c7414`](https://github.com/dashpay/dash/commit/88197c7414) Merge #11448: [gui] reset addrProxy/addrSeparateProxyTor if colon char missing +- [`7f88a67d5b`](https://github.com/dashpay/dash/commit/7f88a67d5b) Merge #11363: net: Split socket create/connect +- [`87b999011f`](https://github.com/dashpay/dash/commit/87b999011f) Merge branch 'backports-0.16-pr5' of github.com:PastaPastaPasta/dash into backports-0.16-pr5 +- [`e21129552d`](https://github.com/dashpay/dash/commit/e21129552d) fix test/functional/receivedby.py +- [`0ca31d12ed`](https://github.com/dashpay/dash/commit/0ca31d12ed) Fix tests +- [`7bbe84b3cb`](https://github.com/dashpay/dash/commit/7bbe84b3cb) Revert "remove explicit on FreespaceChecker" +- [`62e947dfb9`](https://github.com/dashpay/dash/commit/62e947dfb9) fix receivedby.py +- [`aeaf3c5ef9`](https://github.com/dashpay/dash/commit/aeaf3c5ef9) Merge #10749: Use compile-time constants instead of unnamed enumerations (remove "enum hack") +- [`abc0fb08be`](https://github.com/dashpay/dash/commit/abc0fb08be) Merge #3716: GUI: Receive: Remove option to reuse a previous address +- [`cc5b2f163c`](https://github.com/dashpay/dash/commit/cc5b2f163c) Merge #11055: [wallet] [rpc] getreceivedbyaddress should return error if called with address not owned by the wallet +- [`c5a7046e93`](https://github.com/dashpay/dash/commit/c5a7046e93) Merge #11258: [rpc] Add initialblockdownload to getblockchaininfo +- [`1990f11450`](https://github.com/dashpay/dash/commit/1990f11450) Merge #11269: [Mempool] CTxMemPoolEntry::UpdateAncestorState: modifySiagOps param type +- [`a969c8d0be`](https://github.com/dashpay/dash/commit/a969c8d0be) Merge #11353: Small refactor of CCoinsViewCache::BatchWrite() +- [`767030b9ca`](https://github.com/dashpay/dash/commit/767030b9ca) remove test_bitcoin.cpp +- [`be98dc3894`](https://github.com/dashpay/dash/commit/be98dc3894) test_dash continued +- [`efea72890c`](https://github.com/dashpay/dash/commit/efea72890c) Merge #11623: tests: Add missing locks to tests +- [`bb43baf7c4`](https://github.com/dashpay/dash/commit/bb43baf7c4) Merge #11316: [qt] Add use available balance in send coins dialog (CryptAxe, promag) +- [`134392f421`](https://github.com/dashpay/dash/commit/134392f421) Merge #11074: Assert that CWallet::SyncMetaData finds oldest transaction. +- [`354f57a838`](https://github.com/dashpay/dash/commit/354f57a838) Merge #10368: [wallet] Remove helper conversion operator from wallet +- [`3bae57af8d`](https://github.com/dashpay/dash/commit/3bae57af8d) Merge #10696: Remove redundant nullptr checks before deallocation +- [`79e841fac7`](https://github.com/dashpay/dash/commit/79e841fac7) Merge #11594: Improve -disablewallet parameter interaction +- [`9c914a1c14`](https://github.com/dashpay/dash/commit/9c914a1c14) Merge #10529: Improve bitcoind systemd service file +- [`6d4839fd89`](https://github.com/dashpay/dash/commit/6d4839fd89) Merge #11552: Improve wallet-accounts test +- [`aef1eb00a4`](https://github.com/dashpay/dash/commit/aef1eb00a4) remove explicit on FreespaceChecker +- [`980a053af8`](https://github.com/dashpay/dash/commit/980a053af8) Merge #11107: Fix races in AppInitMain and others with lock and atomic bools +- [`0160203306`](https://github.com/dashpay/dash/commit/0160203306) Merge #11435: build: Make "make clean" remove all files created when running "make check" +- [`72d8f89c91`](https://github.com/dashpay/dash/commit/72d8f89c91) Merge #10409: [tests] Add fuzz testing for BlockTransactions and BlockTransactionsRequest +- [`948863c5b3`](https://github.com/dashpay/dash/commit/948863c5b3) Merge #11499: [Qt] Add upload and download info to the peerlist (debug menu) +- [`78cd1f0677`](https://github.com/dashpay/dash/commit/78cd1f0677) Merge #11635: trivial: Fix typo – alreardy → already +- [`2db55b476f`](https://github.com/dashpay/dash/commit/2db55b476f) Merge #11524: [net] De-duplicate connection eviction logic +- [`1dd2b11000`](https://github.com/dashpay/dash/commit/1dd2b11000) Backport bitcoin#11027: [RPC] Only return hex field once in getrawtransaction (#3298) +- [`19b39167e8`](https://github.com/dashpay/dash/commit/19b39167e8) Remove use of NULL in wallet.cpp +- [`364cc42edb`](https://github.com/dashpay/dash/commit/364cc42edb) Fix 11486 +- [`cff940c288`](https://github.com/dashpay/dash/commit/cff940c288) Fix 11541 +- [`682b59a262`](https://github.com/dashpay/dash/commit/682b59a262) Fix 11452 +- [`b9e76deb10`](https://github.com/dashpay/dash/commit/b9e76deb10) Fix 7061 +- [`eb9263f046`](https://github.com/dashpay/dash/commit/eb9263f046) Merge #11624: Docs: Change formatting for sequence of steps +- [`e1cbdef16c`](https://github.com/dashpay/dash/commit/e1cbdef16c) Merge #11585: addrman: Add missing lock in Clear() (CAddrMan) +- [`458db168d4`](https://github.com/dashpay/dash/commit/458db168d4) Merge #11618: rpc: Lock cs_main in blockToJSON/blockheaderToJSON +- [`40410ede66`](https://github.com/dashpay/dash/commit/40410ede66) Merge #11626: rpc: Make `logging` RPC public +- [`c85b038beb`](https://github.com/dashpay/dash/commit/c85b038beb) Merge #11480: [ui] Add toggle for unblinding password fields +- [`bbd89c54f1`](https://github.com/dashpay/dash/commit/bbd89c54f1) Merge #11611: [build] Don't fail when passed --disable-lcov and lcov isn't available +- [`5f7eebec51`](https://github.com/dashpay/dash/commit/5f7eebec51) Merge #11511: [Init] Remove redundant exit(EXIT_FAILURE) instances and replace with return false +- [`ce381d0826`](https://github.com/dashpay/dash/commit/ce381d0826) Merge #11571: Fixed a couple small grammatical errors. +- [`7b26c638c7`](https://github.com/dashpay/dash/commit/7b26c638c7) Merge #11573: [Util] Update tinyformat.h +- [`2f61a2007a`](https://github.com/dashpay/dash/commit/2f61a2007a) Merge #11541: Build: Fix Automake warnings when running autogen.sh +- [`81ebfb7f76`](https://github.com/dashpay/dash/commit/81ebfb7f76) Merge #11452: Improve ZMQ functional test +- [`e357bda75b`](https://github.com/dashpay/dash/commit/e357bda75b) Merge #11467: Fix typos. Use nullptr instead of NULL. +- [`186edbeeeb`](https://github.com/dashpay/dash/commit/186edbeeeb) Merge #11495: [trivial] Make namespace explicit for is_regular_file +- [`21514ceb50`](https://github.com/dashpay/dash/commit/21514ceb50) Merge #11486: [tests] Add uacomment tests +- [`467c52c75f`](https://github.com/dashpay/dash/commit/467c52c75f) Merge #11508: Fix crash via division by zero assertion +- [`4cdb8f143c`](https://github.com/dashpay/dash/commit/4cdb8f143c) Merge #11062: [mempool] Mark mempool import fails that were found in mempool as 'already there' +- [`3c8a15f697`](https://github.com/dashpay/dash/commit/3c8a15f697) add second arg for ScanForWalletTransactions +- [`4b200baf35`](https://github.com/dashpay/dash/commit/4b200baf35) Merge #11496: [Trivial] Add missing comma from rescanblockchain example +- [`93ebbc866e`](https://github.com/dashpay/dash/commit/93ebbc866e) Merge #7061: [Wallet] Add RPC call "rescanblockchain " +- [`1e2ab7633f`](https://github.com/dashpay/dash/commit/1e2ab7633f) Merge #10099: Slightly Improve Unit Tests for Checkqueue +- [`e7c27f3b77`](https://github.com/dashpay/dash/commit/e7c27f3b77) Merge #10898: Fix invalid checks (NULL checks after dereference, redundant checks, etc.) +- [`78c06fa838`](https://github.com/dashpay/dash/commit/78c06fa838) More of bitcoin#10888 +- [`cdf68a9eb8`](https://github.com/dashpay/dash/commit/cdf68a9eb8) Have to prepare the chain manually in blockchain.py +- [`e031cf4572`](https://github.com/dashpay/dash/commit/e031cf4572) bitcoind->dashd +- [`8d2cf6b82e`](https://github.com/dashpay/dash/commit/8d2cf6b82e) assert_raises_jsonrpc -> assert_raises_rpc_error +- [`fb2cd99f94`](https://github.com/dashpay/dash/commit/fb2cd99f94) Merge #10672: Avoid division by zero in the case of a corrupt estimates file +- [`df109ec118`](https://github.com/dashpay/dash/commit/df109ec118) Merge #11073: Remove dead store in ecdsa_signature_parse_der_lax. +- [`93e979e4d4`](https://github.com/dashpay/dash/commit/93e979e4d4) Merge #11133: Document assumptions that are being made to avoid division by zero +- [`36bb302f80`](https://github.com/dashpay/dash/commit/36bb302f80) Merge #11420: Bump univalue subtree and fix json formatting in tests +- [`7f2ebba617`](https://github.com/dashpay/dash/commit/7f2ebba617) Merge #10941: Add blocknotify and walletnotify functional tests +- [`23ec9e7cc8`](https://github.com/dashpay/dash/commit/23ec9e7cc8) Merge #11367: [rpc] getblockchaininfo: add size_on_disk, prune_target_size +- [`f6f94ee47e`](https://github.com/dashpay/dash/commit/f6f94ee47e) Merge #11411: script: Change SignatureHash input index check to an assert. +- [`5329aba10d`](https://github.com/dashpay/dash/commit/5329aba10d) Merge #11021: [rpc] fix getchaintxstats() +- [`46a1ad7939`](https://github.com/dashpay/dash/commit/46a1ad7939) Merge #11432: Remove unused fTry from push_lock +- [`c08b54d7b6`](https://github.com/dashpay/dash/commit/c08b54d7b6) Merge #11418: Add error string for CLEANSTACK script violation +- [`19180b3357`](https://github.com/dashpay/dash/commit/19180b3357) Merge #10663: net: split resolve out of connect +- [`a287d84b82`](https://github.com/dashpay/dash/commit/a287d84b82) Merge #10858: [RPC] Add "errors" field to getblockchaininfo and unify "errors" field in get*info RPCs +- [`4af8db6d33`](https://github.com/dashpay/dash/commit/4af8db6d33) Merge #11031: [rpc] deprecate estimatefee +- [`8af0f8e2d8`](https://github.com/dashpay/dash/commit/8af0f8e2d8) Merge #11288: More user-friendly error message when partially signing +- [`4b6d804d64`](https://github.com/dashpay/dash/commit/4b6d804d64) Merge #11370: [test] Add getblockchaininfo functional test +- [`3ba12f24a1`](https://github.com/dashpay/dash/commit/3ba12f24a1) Merge #11301: add m_added_nodes to connman options +- [`df1366f384`](https://github.com/dashpay/dash/commit/df1366f384) Merge #11380: Remove outdated share/certs/ directory +- [`d6c4485412`](https://github.com/dashpay/dash/commit/d6c4485412) Merge #11351: Refactor: Modernize disallowed copy constructors/assignment +- [`6cf675807e`](https://github.com/dashpay/dash/commit/6cf675807e) Merge #10888: range-based loops and const qualifications in net.cpp +- [`dac2112dd0`](https://github.com/dashpay/dash/commit/dac2112dd0) Merge #11323: mininode: add an optimistic write and disable nagle +- [`9aac579ade`](https://github.com/dashpay/dash/commit/9aac579ade) [tests] Remove Comparison Test Framework +- [`02f1e98b50`](https://github.com/dashpay/dash/commit/02f1e98b50) [tests] Remove bip9-softforks.py +- [`d570557920`](https://github.com/dashpay/dash/commit/d570557920) Fix whitespaces to make linter happy +- [`ffcb2f63a1`](https://github.com/dashpay/dash/commit/ffcb2f63a1) More of 11300 +- [`7f14febfb4`](https://github.com/dashpay/dash/commit/7f14febfb4) Fixes after 10753 +- [`66dd61d54d`](https://github.com/dashpay/dash/commit/66dd61d54d) More of 10753 +- [`5f8bcacd7f`](https://github.com/dashpay/dash/commit/5f8bcacd7f) More of 10793 +- [`5857ec7154`](https://github.com/dashpay/dash/commit/5857ec7154) More of 10969 +- [`0b15551e3d`](https://github.com/dashpay/dash/commit/0b15551e3d) More of 10680 +- [`b03608d5c2`](https://github.com/dashpay/dash/commit/b03608d5c2) Merge #11469: fix typo in comment of chain.cpp +- [`07de9ee889`](https://github.com/dashpay/dash/commit/07de9ee889) Merge #11408: Trivial: Fix parameter name typo in ErasePurpose walletdb method +- [`177b520b38`](https://github.com/dashpay/dash/commit/177b520b38) Merge #11392: Fix stale link in gitian-building.md +- [`f9b5bae111`](https://github.com/dashpay/dash/commit/f9b5bae111) Merge #11390: [docs] document scripted-diff +- [`44b47017ef`](https://github.com/dashpay/dash/commit/44b47017ef) Merge #11385: Remove some unused functions and methods +- [`c8081ae192`](https://github.com/dashpay/dash/commit/c8081ae192) Merge #11132: Document assumptions that are being made to avoid NULL pointer dereferences +- [`218f65d208`](https://github.com/dashpay/dash/commit/218f65d208) Merge #11340: Trivial: Fix validation comments +- [`45d1923490`](https://github.com/dashpay/dash/commit/45d1923490) Merge #11330: Trivial: Fix comments for DEFAULT_WHITELIST[FORCE]RELAY +- [`99ccb6ebdd`](https://github.com/dashpay/dash/commit/99ccb6ebdd) Merge #10767: [wallet] Clarify wallet initialization / destruction interface +- [`ec496efdb9`](https://github.com/dashpay/dash/commit/ec496efdb9) Merge #11238: Add assertions before potential null deferences +- [`5d4e6dc9ae`](https://github.com/dashpay/dash/commit/5d4e6dc9ae) keep nVersion as 16 byte integer +- [`6962568009`](https://github.com/dashpay/dash/commit/6962568009) Merge #8330: Structure Packing Optimizations in C{,Mutable}Transaction +- [`b1774d8735`](https://github.com/dashpay/dash/commit/b1774d8735) Merge #11246: github-merge: Coalesce git fetches +- [`9f672f82a1`](https://github.com/dashpay/dash/commit/9f672f82a1) Merge #11173: RPC: Fix currency unit string in the help text +- [`fc4ab83c83`](https://github.com/dashpay/dash/commit/fc4ab83c83) Merge #10976: [MOVEONLY] Move some static functions out of wallet.h/cpp #10976 Move some static functions out of wallet.h/cpp +- [`fdf3f25a0a`](https://github.com/dashpay/dash/commit/fdf3f25a0a) Merge #10969: Declare single-argument (non-converting) constructors "explicit" +- [`b5e2f73fee`](https://github.com/dashpay/dash/commit/b5e2f73fee) contrib: Ignore historical release notes for whitespace check +- [`80f4de55fd`](https://github.com/dashpay/dash/commit/80f4de55fd) Merge #11300: Tests: Add a lint check for trailing whitespace *dash* no travis +- [`3ca3c65897`](https://github.com/dashpay/dash/commit/3ca3c65897) Merge #10753: test: Check RPC argument mapping *dash* no travis +- [`00167dea54`](https://github.com/dashpay/dash/commit/00167dea54) Merge #11078: [tests] Make p2p-leaktests.py more robust +- [`094298d187`](https://github.com/dashpay/dash/commit/094298d187) Merge #10691: Trivial: Properly comment about shutdown process in init.cpp file. +- [`b515e7c120`](https://github.com/dashpay/dash/commit/b515e7c120) Merge #11268: [macOS] remove Growl support, remove unused code +- [`b74f55143f`](https://github.com/dashpay/dash/commit/b74f55143f) Merge #11286: [depends] Don't build libevent sample code +- [`75ec11ee93`](https://github.com/dashpay/dash/commit/75ec11ee93) Merge #10793: Changing &var[0] to var.data() +- [`d7a2232103`](https://github.com/dashpay/dash/commit/d7a2232103) Merge #10916: add missing lock to crypter GetKeys() +- [`84e5b323b2`](https://github.com/dashpay/dash/commit/84e5b323b2) Merge #11232: Ensure that data types are consistent +- [`b1af3b8db9`](https://github.com/dashpay/dash/commit/b1af3b8db9) Merge #10680: Fix inconsistencies and grammar in various files +- [`e890851e7d`](https://github.com/dashpay/dash/commit/e890851e7d) Backport bitcoin#11817: [tests] Change feature_csv_activation.py to use BitcoinTestFramework (#3278) +- [`91b4a38398`](https://github.com/dashpay/dash/commit/91b4a38398) Backport bitcoin#11773: [tests] Change feature_block.py to use BitcoinTestFramework (#3277) +- [`ef59dce92e`](https://github.com/dashpay/dash/commit/ef59dce92e) Merge #14630: test_runner: Remove travis specific code +- [`430c0380fa`](https://github.com/dashpay/dash/commit/430c0380fa) Merge #13105: [qa] Add --failfast option to functional test runner +- [`6ac36b8865`](https://github.com/dashpay/dash/commit/6ac36b8865) Fix log output after backporting 10303 (#3275) +- [`2aa7ca5723`](https://github.com/dashpay/dash/commit/2aa7ca5723) Merge #10770: Drop upgrade-cancel callback registration for a generic "cancelable" +- [`e4fef1fd33`](https://github.com/dashpay/dash/commit/e4fef1fd33) Merge #10596: Add vConnect to CConnman::Options +- [`742d6e99fa`](https://github.com/dashpay/dash/commit/742d6e99fa) Merge #10303: [bench] Include ms/blk stats in Connect* benchmarks. +- [`c15a442663`](https://github.com/dashpay/dash/commit/c15a442663) Merge #10843: Add attribute [[noreturn]] (C++11) to functions that will not return +- [`4a8349e93f`](https://github.com/dashpay/dash/commit/4a8349e93f) Merge #11039: Avoid second mapWallet lookup +- [`50ea6c719c`](https://github.com/dashpay/dash/commit/50ea6c719c) PARTIAL Merge #12917: qa: Windows fixups for functional tests +- [`7214f07e78`](https://github.com/dashpay/dash/commit/7214f07e78) Merge #11125: Add bitcoin-cli -stdin and -stdinrpcpass functional tests +- [`59e212eaf8`](https://github.com/dashpay/dash/commit/59e212eaf8) Merge #11099: [RPC][mempool]: Add savemempool RPC +- [`09ed6a45e1`](https://github.com/dashpay/dash/commit/09ed6a45e1) Merge #11179: rpc: Push down safe mode checks +- [`3b620c356c`](https://github.com/dashpay/dash/commit/3b620c356c) Merge #10997: RPC: Add option -stdinrpcpass to bitcoin-cli to allow RPC password to be read from standard input +- [`7f1f623787`](https://github.com/dashpay/dash/commit/7f1f623787) Merge #11050: Avoid treating null RPC arguments different from missing arguments +- [`9044d5315b`](https://github.com/dashpay/dash/commit/9044d5315b) Merge #11156: Fix memory leaks in qt/guiutil.cpp +- [`1d2cd24824`](https://github.com/dashpay/dash/commit/1d2cd24824) Merge #10911: [qt] Fix typo and access key in optionsdialog.ui +- [`73eac47d3c`](https://github.com/dashpay/dash/commit/73eac47d3c) Merge #10845: Remove unreachable code +- [`ce2eeaef5f`](https://github.com/dashpay/dash/commit/ce2eeaef5f) Merge #10777: [tests] Avoid redundant assignments. Remove unused variables +- [`561ec27683`](https://github.com/dashpay/dash/commit/561ec27683) Merge #10781: Python cleanups +- [`62b2f3a317`](https://github.com/dashpay/dash/commit/62b2f3a317) Merge #10809: optim: mark a few classes final +- [`7954cc3dbd`](https://github.com/dashpay/dash/commit/7954cc3dbd) Merge #10901: Fix constness of ArgsManager methods +- [`6984c98882`](https://github.com/dashpay/dash/commit/6984c98882) Merge #10645: Use nullptr (C++11) instead of zero (0) as the null pointer constant +- [`013de95158`](https://github.com/dashpay/dash/commit/013de95158) Merge #10965: Replace deprecated throw() with noexcept specifier (C++11) +- [`8302bd5479`](https://github.com/dashpay/dash/commit/8302bd5479) Merge #9964: Add const to methods that do not modify the object for which it is called +- [`67073009f3`](https://github.com/dashpay/dash/commit/67073009f3) Merge #10964: Pass SendCoinsRecipient (208 bytes) by reference +- [`73c1cc6674`](https://github.com/dashpay/dash/commit/73c1cc6674) Merge #10682: Trivial: Move the AreInputsStandard documentation next to its implementation +- [`4789d90589`](https://github.com/dashpay/dash/commit/4789d90589) Merge #11219: [docs] explain how to recompile a modified unit test +- [`10f7c5f066`](https://github.com/dashpay/dash/commit/10f7c5f066) Merge #11135: Update developer notes with RPC response guidelines +- [`c9dbb1325b`](https://github.com/dashpay/dash/commit/c9dbb1325b) Merge #11143: Fix include path for bitcoin-config.h +- [`806849470b`](https://github.com/dashpay/dash/commit/806849470b) Merge #11164: Fix boost headers included as user instead of system headers +- [`e14eb40b50`](https://github.com/dashpay/dash/commit/e14eb40b50) Merge #11236: Add note on translations to CONTRIBUTING.md +- [`c30597daed`](https://github.com/dashpay/dash/commit/c30597daed) Merge #10701: Remove the virtual specifier for functions with the override specifier +- [`3954aa4f9f`](https://github.com/dashpay/dash/commit/3954aa4f9f) Merge #11144: Move local include to before system includes +- [`f659cc97ac`](https://github.com/dashpay/dash/commit/f659cc97ac) Merge #11161: Remove redundant explicitly defined copy ctors +- [`5f42ab3858`](https://github.com/dashpay/dash/commit/5f42ab3858) Merge #11138: Compat: Simplify bswap_16 implementation +- [`ba2ed60c34`](https://github.com/dashpay/dash/commit/ba2ed60c34) Merge #11169: [GUI] Make tabs toolbar no longer have a context menu +- [`eb0de04d62`](https://github.com/dashpay/dash/commit/eb0de04d62) Merge #11160: Improve versionbits_computeblockversion test code consistency +- [`0486e5796f`](https://github.com/dashpay/dash/commit/0486e5796f) Merge #11155: Trivial: Documentation fixes for CVectorWriter ctors +- [`101ee66073`](https://github.com/dashpay/dash/commit/101ee66073) Merge #11151: Fix header guards using reserved identifiers +- [`d33ee8b1cd`](https://github.com/dashpay/dash/commit/d33ee8b1cd) Merge #11112: [developer-notes] By default, declare single-argument constructors "explicit" +- [`e58fed348f`](https://github.com/dashpay/dash/commit/e58fed348f) Merge #10679: Document the non-DER-conformance of one test in tx_valid.json. +- [`1273fc2795`](https://github.com/dashpay/dash/commit/1273fc2795) Merge #11007: wallet: Fix potential memory leak when loading a corrupted wallet file +- [`7253eb2829`](https://github.com/dashpay/dash/commit/7253eb2829) Merge #11058: Comments: More comments on functions/globals in standard.h. +- [`6095fcc653`](https://github.com/dashpay/dash/commit/6095fcc653) Merge #11026: Bugfix: Use testnet RequireStandard for -acceptnonstdtxn default +- [`7654c786b6`](https://github.com/dashpay/dash/commit/7654c786b6) Merge #11094: Docs: Hash in ZMQ hash is raw bytes, not hex +- [`9d58c98753`](https://github.com/dashpay/dash/commit/9d58c98753) Merge #11066: Document the preference of nullptr over NULL or (void*)0 +- [`95e494983c`](https://github.com/dashpay/dash/commit/95e494983c) Merge #10878: Docs: Fix Markdown formatting issues in init.md +- [`16b1585d50`](https://github.com/dashpay/dash/commit/16b1585d50) Merge #11071: Use static_assert(…, …) (C++11) instead of assert(…) where appropriate +- [`972a0498e7`](https://github.com/dashpay/dash/commit/972a0498e7) Merge #11011: [Trivial] Add a comment on the use of prevector in script. +- [`c9b20f027f`](https://github.com/dashpay/dash/commit/c9b20f027f) Merge #10956: Fix typos +- [`1ba944c55e`](https://github.com/dashpay/dash/commit/1ba944c55e) Merge #10705: Trivial: spelling fixes +- [`cca4376fbd`](https://github.com/dashpay/dash/commit/cca4376fbd) Merge #10917: developer-notes: add reference to snake_case and PascalCase +- [`191a6d9431`](https://github.com/dashpay/dash/commit/191a6d9431) Merge #10461: Update style guide +- [`1972089df1`](https://github.com/dashpay/dash/commit/1972089df1) Merge #11008: Enable disablesafemode by default.