From e982520c4b26418d4ad8cadd41f95d28574c9c1e Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Wed, 19 Sep 2018 01:17:09 +0300 Subject: [PATCH 1/4] Bump to 0.12.3.3 --- 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 fe73828912..e43c9f172c 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 12) define(_CLIENT_VERSION_REVISION, 3) -define(_CLIENT_VERSION_BUILD, 2) +define(_CLIENT_VERSION_BUILD, 3) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2018) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/doc/Doxyfile b/doc/Doxyfile index 3dc283de44..586064e206 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.12.3.2 +PROJECT_NUMBER = 0.12.3.3 # 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 0a890f9e43..4e4d864ea7 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -17,7 +17,7 @@ #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 12 #define CLIENT_VERSION_REVISION 3 -#define CLIENT_VERSION_BUILD 2 +#define CLIENT_VERSION_BUILD 3 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true From d3b30e9b2fefb33db03d034d883ff3e598d7797f Mon Sep 17 00:00:00 2001 From: Suhas Daftuar Date: Mon, 17 Sep 2018 15:50:55 -0400 Subject: [PATCH 2/4] Fix crash bug with duplicate inputs within a transaction Introduced by #9049 --- src/validation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/validation.cpp b/src/validation.cpp index d5d9f4d0fc..41702d568b 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -3366,7 +3366,7 @@ bool CheckBlock(const CBlock& block, CValidationState& state, const Consensus::P // Check transactions for (const auto& tx : block.vtx) - if (!CheckTransaction(*tx, state, false)) + if (!CheckTransaction(*tx, state, true)) return state.Invalid(false, state.GetRejectCode(), state.GetRejectReason(), strprintf("Transaction check failed (tx hash %s) %s", tx->GetHash().ToString(), state.GetDebugMessage())); From f9e49c0c863c23373cd1d2410fb5d692b692343e Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Wed, 19 Sep 2018 00:29:35 +0300 Subject: [PATCH 3/4] Remove redundant parameter fCheckDuplicateInputs from CheckTransaction --- src/validation.cpp | 18 ++++++++---------- src/validation.h | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/validation.cpp b/src/validation.cpp index 41702d568b..6ed0c9e510 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -507,7 +507,7 @@ int GetUTXOConfirmations(const COutPoint& outpoint) } -bool CheckTransaction(const CTransaction& tx, CValidationState &state, bool fCheckDuplicateInputs) +bool CheckTransaction(const CTransaction& tx, CValidationState &state) { // Basic checks that don't depend on any context if (tx.vin.empty()) @@ -531,14 +531,12 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state, bool fChe return state.DoS(100, false, REJECT_INVALID, "bad-txns-txouttotal-toolarge"); } - // Check for duplicate inputs - note that this check is slow so we skip it in CheckBlock - if (fCheckDuplicateInputs) { - std::set vInOutPoints; - for (const auto& txin : tx.vin) - { - if (!vInOutPoints.insert(txin.prevout).second) - return state.DoS(100, false, REJECT_INVALID, "bad-txns-inputs-duplicate"); - } + // Check for duplicate inputs + std::set vInOutPoints; + for (const auto& txin : tx.vin) + { + if (!vInOutPoints.insert(txin.prevout).second) + return state.DoS(100, false, REJECT_INVALID, "bad-txns-inputs-duplicate"); } if (tx.IsCoinBase()) @@ -3366,7 +3364,7 @@ bool CheckBlock(const CBlock& block, CValidationState& state, const Consensus::P // Check transactions for (const auto& tx : block.vtx) - if (!CheckTransaction(*tx, state, true)) + if (!CheckTransaction(*tx, state)) return state.Invalid(false, state.GetRejectCode(), state.GetRejectReason(), strprintf("Transaction check failed (tx hash %s) %s", tx->GetHash().ToString(), state.GetDebugMessage())); diff --git a/src/validation.h b/src/validation.h index 18d7b8b888..6ddb205c31 100644 --- a/src/validation.h +++ b/src/validation.h @@ -386,7 +386,7 @@ void UpdateCoins(const CTransaction& tx, CCoinsViewCache& inputs, int nHeight); /** Transaction validation functions */ /** Context-independent validity checks */ -bool CheckTransaction(const CTransaction& tx, CValidationState& state, bool fCheckDuplicateInputs=true); +bool CheckTransaction(const CTransaction& tx, CValidationState& state); namespace Consensus { From c600487cc954a861641847543f95914d460322e3 Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Wed, 19 Sep 2018 01:17:44 +0300 Subject: [PATCH 4/4] Release notes 0.12.3.3 --- doc/release-notes.md | 60 ++------ .../dash/release-notes-0.12.3.2.md | 135 ++++++++++++++++++ 2 files changed, 147 insertions(+), 48 deletions(-) create mode 100644 doc/release-notes/dash/release-notes-0.12.3.2.md diff --git a/doc/release-notes.md b/doc/release-notes.md index a44a8789e2..3657617439 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,12 +1,11 @@ -Dash Core version 0.12.3.2 +Dash Core version 0.12.3.3 ========================== Release is now available from: -This is a new minor version release, bringing various bugfixes and other -improvements. +This is a critical bugfix release. Please report bugs using the issue tracker at github: @@ -35,7 +34,7 @@ the database if you decide to use any pre-0.12.2.2 version. Wallet forward or backward compatibility was not affected. -### Downgrade to 0.12.2.2/3, 0.12.3.1 +### Downgrade to 0.12.2.2/3, 0.12.3.1/2 Downgrading to these versions does not require any additional actions, should be fully compatible. @@ -44,58 +43,22 @@ fully compatible. Notable changes =============== -Improve initial sync --------------------- +Fix crash bug with duplicate inputs within a transaction +-------------------------------------------------------- -Some users had problems getting their nodes synced. The issue occured due to nodes trying to -get additional data from each available peer but not being able to process this data fast enough. -This was recognized as a stalled sync process and thus the process was reset. To address the issue -we limited sync process to 3 peers max now and the issue should no longer appear as long as there -are at least 4 connections. +There was a critical bug discovered in Bitcoin Core's codebase recently which +can cause node receiving a block to crash https://github.com/bitcoin/bitcoin/pull/14247 -Testnet/Devnet fixes --------------------- - -Turned out that a low-diff rule for slow blocks backported from Bitcoin works a bit too aggressive for -a blockchain which uses a dynamic per-block difficulty adjustment algorithm (DGW). While blocks are still -produced at a more or less constant rate on average, the rate however is way too high. - -We also lifted multiple ports restriction on devnet and also incuded other fixes which should improve -connectivity on devnets which are using nodes with multiple different ports. - - -0.12.3.2 Change log +0.12.3.3 Change log =================== -See detailed [change log](https://github.com/dashpay/dash/compare/v0.12.3.1...dashpay:v0.12.3.2) below. - -### Network: -- [`2474d9cb8`](https://github.com/dashpay/dash/commit/2474d9cb8) Sync mn list and mnw list from 3 peers max (#2169) -- [`2c303cdb1`](https://github.com/dashpay/dash/commit/2c303cdb1) A few devnet related fixes (#2168) - -### Mining: -- [`2ba0c7760`](https://github.com/dashpay/dash/commit/2ba0c7760) Add tests for special rules for slow blocks on devnet/testnet (#2176) -- [`b9a83d2ae`](https://github.com/dashpay/dash/commit/b9a83d2ae) Allow mining min diff for very slow (2h+) blocks (#2175) -- [`050cabdf5`](https://github.com/dashpay/dash/commit/050cabdf5) Adjust diff for slow testnet/devnet blocks a bit smoother (#2161) - -### GUI: -- [`7b9919d18`](https://github.com/dashpay/dash/commit/7b9919d18) Fix issues with selections on Masternode tab (#2170) -- [`c4698d5f3`](https://github.com/dashpay/dash/commit/c4698d5f3) Make PS Buttons not react to spacebar (#2154) - -### Other: -- [`f833e2ed6`](https://github.com/dashpay/dash/commit/f833e2ed6) Bump to 0.12.3.2 (#2173) - +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.12.3.2...dashpay:v0.12.3.3). Credits ======= -Thanks to everyone who directly contributed to this release: - -- Alexander Block -- PaulieD -- UdjinM6 - -As well as everyone who submitted issues and reviewed pull requests. +Thanks to everyone who directly contributed to this release, +as well as everyone who submitted issues and reviewed pull requests. Older releases @@ -121,6 +84,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.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 diff --git a/doc/release-notes/dash/release-notes-0.12.3.2.md b/doc/release-notes/dash/release-notes-0.12.3.2.md new file mode 100644 index 0000000000..a44a8789e2 --- /dev/null +++ b/doc/release-notes/dash/release-notes-0.12.3.2.md @@ -0,0 +1,135 @@ +Dash Core version 0.12.3.2 +========================== + +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). + +Downgrade warning +----------------- + +### Downgrade to a version < 0.12.2.2 + +Because release 0.12.2.2 included the [per-UTXO fix](release-notes/dash/release-notes-0.12.2.2.md#per-utxo-fix) +which changed the structure of the internal database, you will have to reindex +the database if you decide to use any pre-0.12.2.2 version. + +Wallet forward or backward compatibility was not affected. + +### Downgrade to 0.12.2.2/3, 0.12.3.1 + +Downgrading to these versions does not require any additional actions, should be +fully compatible. + + +Notable changes +=============== + +Improve initial sync +-------------------- + +Some users had problems getting their nodes synced. The issue occured due to nodes trying to +get additional data from each available peer but not being able to process this data fast enough. +This was recognized as a stalled sync process and thus the process was reset. To address the issue +we limited sync process to 3 peers max now and the issue should no longer appear as long as there +are at least 4 connections. + +Testnet/Devnet fixes +-------------------- + +Turned out that a low-diff rule for slow blocks backported from Bitcoin works a bit too aggressive for +a blockchain which uses a dynamic per-block difficulty adjustment algorithm (DGW). While blocks are still +produced at a more or less constant rate on average, the rate however is way too high. + +We also lifted multiple ports restriction on devnet and also incuded other fixes which should improve +connectivity on devnets which are using nodes with multiple different ports. + + +0.12.3.2 Change log +=================== + +See detailed [change log](https://github.com/dashpay/dash/compare/v0.12.3.1...dashpay:v0.12.3.2) below. + +### Network: +- [`2474d9cb8`](https://github.com/dashpay/dash/commit/2474d9cb8) Sync mn list and mnw list from 3 peers max (#2169) +- [`2c303cdb1`](https://github.com/dashpay/dash/commit/2c303cdb1) A few devnet related fixes (#2168) + +### Mining: +- [`2ba0c7760`](https://github.com/dashpay/dash/commit/2ba0c7760) Add tests for special rules for slow blocks on devnet/testnet (#2176) +- [`b9a83d2ae`](https://github.com/dashpay/dash/commit/b9a83d2ae) Allow mining min diff for very slow (2h+) blocks (#2175) +- [`050cabdf5`](https://github.com/dashpay/dash/commit/050cabdf5) Adjust diff for slow testnet/devnet blocks a bit smoother (#2161) + +### GUI: +- [`7b9919d18`](https://github.com/dashpay/dash/commit/7b9919d18) Fix issues with selections on Masternode tab (#2170) +- [`c4698d5f3`](https://github.com/dashpay/dash/commit/c4698d5f3) Make PS Buttons not react to spacebar (#2154) + +### Other: +- [`f833e2ed6`](https://github.com/dashpay/dash/commit/f833e2ed6) Bump to 0.12.3.2 (#2173) + + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Alexander Block +- PaulieD +- UdjinM6 + +As well as everyone who 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.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 Jun/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 +