From 2516a6e19bd797b0f671b3450b4742273956555a Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Fri, 8 Mar 2019 06:57:51 +0100 Subject: [PATCH 1/5] Bump version to 0.13.2 --- configure.ac | 2 +- doc/Doxyfile | 2 +- src/clientversion.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index b875969814f4..65d7051337f7 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N) AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 13) -define(_CLIENT_VERSION_REVISION, 1) +define(_CLIENT_VERSION_REVISION, 2) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2018) diff --git a/doc/Doxyfile b/doc/Doxyfile index 4cad2d4a44a8..7b6f9021c617 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -41,7 +41,7 @@ PROJECT_NAME = "Dash Core" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.13.1.0 +PROJECT_NUMBER = 0.13.2.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/src/clientversion.h b/src/clientversion.h index 599b8c26110f..575fffb5174e 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -16,7 +16,7 @@ //! These need to be macros, as clientversion.cpp's and dash*-res.rc's voodoo requires it #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 13 -#define CLIENT_VERSION_REVISION 1 +#define CLIENT_VERSION_REVISION 2 #define CLIENT_VERSION_BUILD 0 //! Set to true for release, false for prerelease or test build From 8b2cffc0b2453d65b1ee71288d77b99d2b075bf3 Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Fri, 8 Mar 2019 07:46:00 +0100 Subject: [PATCH 2/5] Add release notes for 0.13.2.0 --- doc/release-notes.md | 100 +++++++----- .../dash/release-notes-0.13.1.md | 144 ++++++++++++++++++ 2 files changed, 206 insertions(+), 38 deletions(-) create mode 100644 doc/release-notes/dash/release-notes-0.13.1.md diff --git a/doc/release-notes.md b/doc/release-notes.md index 84c033707e82..39f729c19f2f 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,4 +1,4 @@ -Dash Core version 0.13.1.0 +Dash Core version 0.13.2.0 ========================== Release is now available from: @@ -26,7 +26,7 @@ have to reindex (start with -reindex-chainstate or -reindex) to make sure your wallet has all the new data synced (only if you were using version < 0.13). Note that there is no protocol bump in this version and thus active masternodes -updating from v0.13.0.0 do not require any additional actions (no need to issue +updating from v0.13.0.0 or v0.13.1.0 do not require any additional actions (no need to issue `masternode start` command). Downgrade warning @@ -34,64 +34,87 @@ Downgrade warning ### Downgrade to a version < 0.13.0.0 -Downgrading to a version smaller than 0.13 is only supported as long as DIP2/DIP3 -has not been activated. Activation will happen when enough miners signal compatibility -through a BIP9 (bit 3) deployment. +Downgrading to a version smaller than 0.13 is not supported anymore as DIP2/DIP3 has activated +on mainnet and testnet. -### Downgrade to 0.13.0.0 +### Downgrade to 0.13.0.0 or 0.13.1.0 -Downgrading to 0.13.0.0 is fully supported but is not recommended unless you have some serious issues with 0.13.1.0. +Downgrading to 0.13.0.0 is fully supported but is not recommended unless you have some serious issues with 0.13.2.0. Notable changes =============== -DIP0003 block signaling ------------------------ -Miners running v0.13.1.0 are going to signal DIP3 regardles of the readiness of the corresponding masternode. -With 70%+ masternodes already running on v0.13.0.0 we believe it's safe to slightly speed up the migration -this way. This is fully backwards compatible and no update is required for (non-mining) nodes running on v0.13.0.0. - -GUI changes ------------ -Masternodes tab has a new checkbox that should filter masternode list by using keys stored in the wallet. -This should make it much easier for masternode owners to find their masternodes in the list. +Providing "masternodeblsprivkey" is now mandatory when "masternode" is 1 +------------------------------------------------------------------------ +In previous versions, "masternodeblsprivkey" was not mandatory as these versions had to function with and without DIP3 +activation. Now that DIP3 has activated on mainnet and testnet, we can make "masternodeblsprivkey" mandatory when +configuring and running a masternode. Please note that your masternode will fail to start when "masternodeblsprivkey" +is not specified. This also means that 0.13.2.0 will only work with masternodes which have already registered their +DIP3 masternode. This enforcement was added to catch misconfigurations of masternodes which would otherwise stay +unnoticed until spork 15 activation and thus surprise and hurt masternode owners. + +Fix for consistency issues after sudden stopping of node +-------------------------------------------------------- +Previous versions resulted in inconsistency between the chainstate and evodb when the node crashed or otherwise suddenly +stopped (e.g. power failure). This should be fixed in 0.13.2.0. + +Fix for litemode nodes to not reject specific DIP3 transactions +--------------------------------------------------------------- +Previous versions might cause litemode nodes to reject the mainnet chain after spork 15 activation. This is due to a +consensus rule being less strict in one specific case when spork 15 is active. Litemode nodes can not know about the +change in consensus rules as they have no knowledge about sporks. In 0.13.2.0, when litemode is enabled, we default to the +behaviour of activated spork15 in this specific case, which fixes the issue. The restriction will be completely removed +in the next major release. + +Fix incorrect behavior for "protx diff" and the P2P message "GETMNLISTDIFF" +--------------------------------------------------------------------------- +Both were responding with errors when "0" was used as base block hash. DIP4 defines "0" to be equivalent with the +genesis block, so that it's easy for peers to request the full masternode list. +This is mostly important for SPV nodes (e.g. mobile wallets) which need the masternode list. Right now, all nodes in +the network will respond with an error when "0" is provided in "GETMNLISTDIFF". Until enough masternodes have upgraded +to 0.13.2.0, SPV nodes should use the full genesis hash to circumvent the error. + +Exclusion of LLMQ quorum commitments from partial blocks +-------------------------------------------------------- +SPV nodes are generally not interested in non-financial special transactions in blocks, so we're omitting them now when +sending partial/filtered blocks to SPV clients. This currently only filters LLMQ quorum commitments, which also caused +some SPV implementations to ban nodes as they were not able to process these. DIP3 transactions (ProRegTx, ProUpRegTx, ...) +are not affected and are still included in partial/filtered blocks as these might also move funds. RPC changes ----------- -There is a new RPC command `getspecialtxes` which returns an array of special transactions found in the specified -block with different level of verbosity. Also, various `protx` commands show extended help text for each parameter -now (instead of referencing `protx register`). +`masternode list json` and `protx list` will now include the collateral address of masternodes. Bug fixes/Other improvements ---------------------------- There are few bug fixes in this release: -- Block size should be calculated correctly for blocks with quorum commitments when constructing new block; -- Special transactions should be checked for mempool acceptance at the right time (nodes could ban each other -in some rare cases otherwise); -- Signature verification and processing of special transactions is decoupled to avoid any potential issues. +- Fixed a crash on shutdown +- Fixed a misleading error message in the RPC "protx update_registrar" +- Slightly speed up initial sync by not running DIP3 logic in old blocks +- Add build number (CLIENT_VERSION_BUILD) to MacOS bundle information - 0.13.1.0 Change log + 0.13.2.0 Change log =================== -See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.13.0.0...dashpay:v0.13.1.0). +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.13.1.0...dashpay:v0.13.2.0). ### Backports -- [`da5a861c0`](https://github.com/dashpay/dash/commit/da5a861c0) Change the way invalid ProTxes are handled in `addUnchecked` and `existsProviderTxConflict` (#2691) -- [`6ada90c11`](https://github.com/dashpay/dash/commit/6ada90c11) Call existsProviderTxConflict after CheckSpecialTx (#2690) -- [`23eb70cb7`](https://github.com/dashpay/dash/commit/23eb70cb7) Add getspecialtxes rpc (#2668) -- [`023f8a01a`](https://github.com/dashpay/dash/commit/023f8a01a) Fix bench log for payee and special txes (#2678) -- [`8961a6acc`](https://github.com/dashpay/dash/commit/8961a6acc) Stop checking MN protocol version before signalling DIP3 (#2684) -- [`e18916386`](https://github.com/dashpay/dash/commit/e18916386) Add missing help text for `operatorPayoutAddress` (#2679) -- [`0d8cc0761`](https://github.com/dashpay/dash/commit/0d8cc0761) Invoke CheckSpecialTx after all normal TX checks have passed (#2673) -- [`592210daf`](https://github.com/dashpay/dash/commit/592210daf) Bump block stats when adding commitment tx into block (#2654) -- [`070ad103f`](https://github.com/dashpay/dash/commit/070ad103f) Wait for script checks to finish before messing with txes in Dash-specific way (#2652) -- [`3a3586d5a`](https://github.com/dashpay/dash/commit/3a3586d5a) Use helper function to produce help text for params of `protx` rpcs (#2649) -- [`332e0361c`](https://github.com/dashpay/dash/commit/332e0361c) Add checkbox to show only masternodes the wallet has keys for (#2627) +- [`2516a6e19`](https://github.com/dashpay/dash/commit/2516a6e19) Bump version to 0.13.2 +- [`6374dce99`](https://github.com/dashpay/dash/commit/6374dce99) Fix error message for invalid voting addresses (#2747) +- [`25222b378`](https://github.com/dashpay/dash/commit/25222b378) Make -masternodeblsprivkey mandatory when -masternode is given (#2745) +- [`0364e033a`](https://github.com/dashpay/dash/commit/0364e033a) Implement 2-stage commit for CEvoDB to avoid inconsistencies after crashes (#2744) +- [`a11e2f9eb`](https://github.com/dashpay/dash/commit/a11e2f9eb) Add collateraladdress into masternode/protx list rpc output (#2740) +- [`43612a272`](https://github.com/dashpay/dash/commit/43612a272) Only include selected TX types into CMerkleBlock (#2737) +- [`f868fbc78`](https://github.com/dashpay/dash/commit/f868fbc78) Stop g_connman first before deleting it (#2734) +- [`9e233f391`](https://github.com/dashpay/dash/commit/9e233f391) Fix incorrect usage of begin() when genesis block is requested in "protx diff" (#2699) +- [`e75f971b9`](https://github.com/dashpay/dash/commit/e75f971b9) Do not process blocks in CDeterministicMNManager before dip3 activation (#2698) +- [`1cc47ebcd`](https://github.com/dashpay/dash/commit/1cc47ebcd) Backport #14701: build: Add CLIENT_VERSION_BUILD to CFBundleGetInfoString (#2687) ### Other -- [`bd0de4876`](https://github.com/dashpay/dash/commit/bd0de4876) Bump version to 0.13.1 (#2686) +- [`18f087b27`](https://github.com/dashpay/dash/commit/18f087b27) Fix some typos in doc/guide-startmany.md (#2711) +- [`709ab6d3e`](https://github.com/dashpay/dash/commit/709ab6d3e) Minimal fix for litemode vs bad-protx-key-not-same issue (#2694) Credits ======= @@ -126,6 +149,7 @@ Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12. These release are considered obsolete. Old release notes can be found here: +- [v0.13.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.0.md) released Feb/9/2019 - [v0.13.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.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 diff --git a/doc/release-notes/dash/release-notes-0.13.1.md b/doc/release-notes/dash/release-notes-0.13.1.md new file mode 100644 index 000000000000..84c033707e82 --- /dev/null +++ b/doc/release-notes/dash/release-notes-0.13.1.md @@ -0,0 +1,144 @@ +Dash Core version 0.13.1.0 +========================== + +Release is now available from: + + + +This is a new minor version release, bringing various bugfixes and other improvements. + +Please report bugs using the issue tracker at github: + + + + +Upgrading and downgrading +========================= + +How to Upgrade +-------------- + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or +dashd/dash-qt (on Linux). If you upgrade after DIP0003 activation you will +have to reindex (start with -reindex-chainstate or -reindex) to make sure +your wallet has all the new data synced (only if you were using version < 0.13). + +Note that there is no protocol bump in this version and thus active masternodes +updating from v0.13.0.0 do not require any additional actions (no need to issue +`masternode start` command). + +Downgrade warning +----------------- + +### Downgrade to a version < 0.13.0.0 + +Downgrading to a version smaller than 0.13 is only supported as long as DIP2/DIP3 +has not been activated. Activation will happen when enough miners signal compatibility +through a BIP9 (bit 3) deployment. + +### Downgrade to 0.13.0.0 + +Downgrading to 0.13.0.0 is fully supported but is not recommended unless you have some serious issues with 0.13.1.0. + +Notable changes +=============== + +DIP0003 block signaling +----------------------- +Miners running v0.13.1.0 are going to signal DIP3 regardles of the readiness of the corresponding masternode. +With 70%+ masternodes already running on v0.13.0.0 we believe it's safe to slightly speed up the migration +this way. This is fully backwards compatible and no update is required for (non-mining) nodes running on v0.13.0.0. + +GUI changes +----------- +Masternodes tab has a new checkbox that should filter masternode list by using keys stored in the wallet. +This should make it much easier for masternode owners to find their masternodes in the list. + +RPC changes +----------- +There is a new RPC command `getspecialtxes` which returns an array of special transactions found in the specified +block with different level of verbosity. Also, various `protx` commands show extended help text for each parameter +now (instead of referencing `protx register`). + +Bug fixes/Other improvements +---------------------------- +There are few bug fixes in this release: +- Block size should be calculated correctly for blocks with quorum commitments when constructing new block; +- Special transactions should be checked for mempool acceptance at the right time (nodes could ban each other +in some rare cases otherwise); +- Signature verification and processing of special transactions is decoupled to avoid any potential issues. + + 0.13.1.0 Change log +=================== + +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.13.0.0...dashpay:v0.13.1.0). + +### Backports + +- [`da5a861c0`](https://github.com/dashpay/dash/commit/da5a861c0) Change the way invalid ProTxes are handled in `addUnchecked` and `existsProviderTxConflict` (#2691) +- [`6ada90c11`](https://github.com/dashpay/dash/commit/6ada90c11) Call existsProviderTxConflict after CheckSpecialTx (#2690) +- [`23eb70cb7`](https://github.com/dashpay/dash/commit/23eb70cb7) Add getspecialtxes rpc (#2668) +- [`023f8a01a`](https://github.com/dashpay/dash/commit/023f8a01a) Fix bench log for payee and special txes (#2678) +- [`8961a6acc`](https://github.com/dashpay/dash/commit/8961a6acc) Stop checking MN protocol version before signalling DIP3 (#2684) +- [`e18916386`](https://github.com/dashpay/dash/commit/e18916386) Add missing help text for `operatorPayoutAddress` (#2679) +- [`0d8cc0761`](https://github.com/dashpay/dash/commit/0d8cc0761) Invoke CheckSpecialTx after all normal TX checks have passed (#2673) +- [`592210daf`](https://github.com/dashpay/dash/commit/592210daf) Bump block stats when adding commitment tx into block (#2654) +- [`070ad103f`](https://github.com/dashpay/dash/commit/070ad103f) Wait for script checks to finish before messing with txes in Dash-specific way (#2652) +- [`3a3586d5a`](https://github.com/dashpay/dash/commit/3a3586d5a) Use helper function to produce help text for params of `protx` rpcs (#2649) +- [`332e0361c`](https://github.com/dashpay/dash/commit/332e0361c) Add checkbox to show only masternodes the wallet has keys for (#2627) + +### Other + +- [`bd0de4876`](https://github.com/dashpay/dash/commit/bd0de4876) Bump version to 0.13.1 (#2686) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Alexander Block +- UdjinM6 + +As well as everyone that submitted issues and reviewed pull requests. + +Older releases +============== + +Dash was previously known as Darkcoin. + +Darkcoin tree 0.8.x was a fork of Litecoin tree 0.8, original name was XCoin +which was first released on Jan/18/2014. + +Darkcoin tree 0.9.x was the open source implementation of masternodes based on +the 0.8.x tree and was first released on Mar/13/2014. + +Darkcoin tree 0.10.x used to be the closed source implementation of Darksend +which was released open source on Sep/25/2014. + +Dash Core tree 0.11.x was a fork of Bitcoin Core tree 0.9, +Darkcoin was rebranded to Dash. + +Dash Core tree 0.12.0.x was a fork of Bitcoin Core tree 0.10. + +Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12. + +These release are considered obsolete. Old release notes can be found here: + +- [v0.13.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.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 + From e9e363d5bb6fd6573797655af3d1bd5215795499 Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Fri, 8 Mar 2019 08:24:33 +0100 Subject: [PATCH 3/5] Update credits --- doc/release-notes.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 39f729c19f2f..7201148395d8 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -121,7 +121,9 @@ Credits Thanks to everyone who directly contributed to this release: -- Alexander Block +- Alexander Block (codablock) +- Felix Yan (felixonmars) +- PastaPastaPasta - UdjinM6 As well as everyone that submitted issues and reviewed pull requests. From f67e452dad934c4ed8eb77c4120db8058eccbfdc Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Fri, 8 Mar 2019 08:27:13 +0100 Subject: [PATCH 4/5] Add #2750 to changelog --- doc/release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 7201148395d8..a1a7decb19b5 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -113,6 +113,7 @@ See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.13.1.0. ### Other +- [`9dd16cdbe`](https://github.com/dashpay/dash/commit/9dd16cdbe) Bump minChainWork and AssumeValid to block #1033120 (#2750) - [`18f087b27`](https://github.com/dashpay/dash/commit/18f087b27) Fix some typos in doc/guide-startmany.md (#2711) - [`709ab6d3e`](https://github.com/dashpay/dash/commit/709ab6d3e) Minimal fix for litemode vs bad-protx-key-not-same issue (#2694) From 123141a904d53b19adc49fba74fd9e0d2685baf0 Mon Sep 17 00:00:00 2001 From: PastaPastaPasta Date: Fri, 8 Mar 2019 08:27:36 +0100 Subject: [PATCH 5/5] Update doc/release-notes.md Co-Authored-By: codablock --- doc/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index a1a7decb19b5..7b4c9ae46e04 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -44,7 +44,7 @@ Downgrading to 0.13.0.0 is fully supported but is not recommended unless you hav Notable changes =============== -Providing "masternodeblsprivkey" is now mandatory when "masternode" is 1 +Providing "masternodeblsprivkey" is now mandatory when the node is launched as a masternode ("masternode=1") ------------------------------------------------------------------------ In previous versions, "masternodeblsprivkey" was not mandatory as these versions had to function with and without DIP3 activation. Now that DIP3 has activated on mainnet and testnet, we can make "masternodeblsprivkey" mandatory when