Skip to content

Commit

Permalink
[v0.14.0.x] Bump version to 0.14.0.4 and draft release notes (dashpay…
Browse files Browse the repository at this point in the history
…#3203)

* Bump version to 0.14.0.4

* Run gen-manpages.sh to update versions

* Prepare release notes for 0.14.0.4

* Add first draft of "Notable Changes"

* Handle review comments
  • Loading branch information
codablock authored and UdjinM6 committed Nov 21, 2019
1 parent c7630f0 commit 5f98ed7
Show file tree
Hide file tree
Showing 9 changed files with 239 additions and 81 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Expand Up @@ -3,7 +3,7 @@ AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 0)
define(_CLIENT_VERSION_MINOR, 14)
define(_CLIENT_VERSION_REVISION, 0)
define(_CLIENT_VERSION_BUILD, 3)
define(_CLIENT_VERSION_BUILD, 4)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2019)
define(_COPYRIGHT_HOLDERS,[The %s developers])
Expand Down
2 changes: 1 addition & 1 deletion doc/Doxyfile
Expand Up @@ -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.14.0.3
PROJECT_NUMBER = 0.14.0.4

# 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
Expand Down
6 changes: 3 additions & 3 deletions doc/man/dash-cli.1
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
.TH DASH-CLI "1" "June 2019" "dash-cli v0.14.0.2" "User Commands"
.TH DASH-CLI "1" "November 2019" "dash-cli v0.14.0.4" "User Commands"
.SH NAME
dash-cli \- manual page for dash-cli v0.14.0.2
dash-cli \- manual page for dash-cli v0.14.0.4
.SH DESCRIPTION
Dash Core RPC client version v0.14.0.2
Dash Core RPC client version v0.14.0.4
.SS "Usage:"
.TP
dash\-cli [options] <command> [params]
Expand Down
6 changes: 3 additions & 3 deletions doc/man/dash-qt.1
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
.TH DASH-QT "1" "June 2019" "dash-qt v0.14.0.2" "User Commands"
.TH DASH-QT "1" "November 2019" "dash-qt v0.14.0.4" "User Commands"
.SH NAME
dash-qt \- manual page for dash-qt v0.14.0.2
dash-qt \- manual page for dash-qt v0.14.0.4
.SH DESCRIPTION
Dash Core version v0.14.0.2 (64\-bit)
Dash Core version v0.14.0.4 (64\-bit)
Usage:
.IP
dash\-qt [command\-line options]
Expand Down
6 changes: 3 additions & 3 deletions doc/man/dash-tx.1
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
.TH DASH-TX "1" "June 2019" "dash-tx v0.14.0.2" "User Commands"
.TH DASH-TX "1" "November 2019" "dash-tx v0.14.0.4" "User Commands"
.SH NAME
dash-tx \- manual page for dash-tx v0.14.0.2
dash-tx \- manual page for dash-tx v0.14.0.4
.SH DESCRIPTION
Dash Core dash\-tx utility version v0.14.0.2
Dash Core dash\-tx utility version v0.14.0.4
.SS "Usage:"
.TP
dash\-tx [options] <hex\-tx> [commands]
Expand Down
6 changes: 3 additions & 3 deletions doc/man/dashd.1
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
.TH DASHD "1" "June 2019" "dashd v0.14.0.2" "User Commands"
.TH DASHD "1" "November 2019" "dashd v0.14.0.4" "User Commands"
.SH NAME
dashd \- manual page for dashd v0.14.0.2
dashd \- manual page for dashd v0.14.0.4
.SH DESCRIPTION
Dash Core Daemon version v0.14.0.2
Dash Core Daemon version v0.14.0.4
.SS "Usage:"
.TP
dashd [options]
Expand Down
121 changes: 55 additions & 66 deletions doc/release-notes.md
@@ -1,4 +1,4 @@
Dash Core version 0.14.0.3
Dash Core version 0.14.0.4
==========================

Release is now available from:
Expand Down Expand Up @@ -26,7 +26,7 @@ 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.

Due to the changes in the "evodb" database format introduced in this release, the
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).
Expand All @@ -43,71 +43,60 @@ a reindex or re-sync the whole chain.
Notable changes
===============

Database space usage improvements
--------------------------------
Version 0.13.0.0 introduced a new database (evodb) which is found in the datadir of Dash Core. It turned
out that this database grows quite fast when a lot of changes inside the deterministic masternode list happen,
which is for example the case when a lot PoSe punishing/banning is happening. Such a situation happened
immediately after the activation LLMQ DKGs, causing the database to grow a lot. This release introduces
a new format in which information in "evodb" is stored, which causes it grow substantially slower.

Version 0.14.0.0 also introduced a new database (llmq) which is also found in the datadir of Dash Core.
This database stores all LLMQ signatures for 7 days. After 7 days, a cleanup task removes old signatures.
The idea was that the "llmq" database would grow in the beginning and then stay at an approximately constant
size. The recent stress test on mainnet has however shown that the database grows too much and causes a risk
of out-of-space situations. This release will from now also remove signatures when the corresponding InstantSend
lock is fully confirmed on-chain (superseded by a ChainLock). This should remove >95% of all signatures from
the database. After the upgrade, no space saving will be observed however as this logic is only applied to new
signatures, which means that it will take 7 days until the whole "llmq" database gets to its minimum size.

DKG and LLMQ signing failures fixed
-----------------------------------
Recent stress tests have shown that masternodes start to ban each other under high load and specific situations.
This release fixes this and thus makes it a highly recommended upgrade for masternodes.

MacOS: macOS: disable AppNap during sync and mixing
---------------------------------------------------
AppNap is disabled now when Dash Core is syncing/reindexing or mixing.

Signed binaries for Windows
---------------------------
This release is the first one to include signed binaries for Windows.

New RPC command: quorum memberof <proTxHash>
--------------------------------------------
This RPC allows you to verify which quorums a masternode is supposed to be a member of. It will also show
if the masternode succesfully participated in the DKG process.

More information about number of InstantSend locks
--------------------------------------------------
The debug console will now show how many InstantSend locks Dash Core knows about. Please note that this number
does not necessarily equal the number of mempool transactions.

The "getmempoolinfo" RPC also has a new field now which shows the same information.

0.14.0.3 Change log
Fix respends of freshly received InstantSend transactions
---------------------------------------------------------

A bug in Dash Core caused respends to not work before a received InstantSend transaction was confirmed in at least
one block. This is fixed in this release, so that InstantSend locked mempool transactions can be
respent immediately in Dash Core (other wallets were not affected).

Deprecation of SPORK_16_INSTANTSEND_AUTOLOCKS
---------------------------------------------

With the activation of SPORK_20_INSTANTSEND_LLMQ_BASED a few month ago, all transactions started to be locked via
InstantSend, which already partly deprecated SPORK_16_INSTANTSEND_AUTOLOCKS. This release removes the last use
of SPORK_16_INSTANTSEND_AUTOLOCKS, which caused InstantSend to stop working when the mempool got too large.

Improve orphan transaction limit handling
-----------------------------------------

Instead of limiting orphan transaction by number of transaction, we limit orphans by total size in bytes
now. This allows to have thousands of orphan transactions before hitting the limit.

Discrepancies in orphan sets between nodes and handling of those was one of the major limiting factors in
the stress tests performed by an unknown entity on mainnet.

Improve re-requesting for already known transactions
----------------------------------------------------

Previously, Dash would re-request old transactions even though they were already known locally. This
happened when the outputs were respent very shortly after confirmation of the transaction. This lead to
wrongly handling these transactions as orphans, filling up the orphan set and hitting limits very fast.
This release fixes this for nodes which have txindex enabled, which is the case for all masternodes. Normal
nodes (without txindex) can ignore the issue as they are not involved in active InstantSend locking.

Another issue fixed in this release is the re-requesting of transactions after an InstantSend lock invalidated
a conflicting transaction.

Multiple improvements to PrivateSend
------------------------------------

Multiple improvements to PrivateSend are introduced in this release, leading to faster mixing and more
reasonable selection of UTXOs when sending PrivateSend funds.

Fix for CVE-2017-18350
----------------------

Bitcoin silently implemented a hidden fix for [CVE-2017-18350](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-November/017453.html).
in Bitcoin v0.15.1. This release of Dash Core includes a backport of this fix.


0.14.0.4 Change log
===================

See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.14.0.2...dashpay:v0.14.0.3).

- [`f2443709b`](https://github.com/dashpay/dash/commit/f2443709b) Update release-notes.md for 0.14.0.3 (#3054)
- [`17ba23871`](https://github.com/dashpay/dash/commit/17ba23871) Re-verify invalid IS sigs when the active quorum set rotated (#3052)
- [`8c49d9b54`](https://github.com/dashpay/dash/commit/8c49d9b54) Remove recovered sigs from the LLMQ db when corresponding IS locks get confirmed (#3048)
- [`2e0cf8a30`](https://github.com/dashpay/dash/commit/2e0cf8a30) Add "instantsendlocks" to getmempoolinfo RPC (#3047)
- [`a8fb8252e`](https://github.com/dashpay/dash/commit/a8fb8252e) Use fEnablePrivateSend instead of fPrivateSendRunning
- [`a198a04e0`](https://github.com/dashpay/dash/commit/a198a04e0) Show number of InstantSend locks in Debug Console (#2919)
- [`013169d63`](https://github.com/dashpay/dash/commit/013169d63) Optimize on-disk deterministic masternode storage to reduce size of evodb (#3017)
- [`9ac7a998b`](https://github.com/dashpay/dash/commit/9ac7a998b) Add "isValidMember" and "memberIndex" to "quorum memberof" and allow to specify quorum scan count (#3009)
- [`99824a879`](https://github.com/dashpay/dash/commit/99824a879) Implement "quorum memberof" (#3004)
- [`7ea319fd2`](https://github.com/dashpay/dash/commit/7ea319fd2) Bail out properly on Evo DB consistency check failures in ConnectBlock/DisconnectBlock (#3044)
- [`b1ffedb2d`](https://github.com/dashpay/dash/commit/b1ffedb2d) Do not count 0-fee txes for fee estimation (#3037)
- [`974055a9b`](https://github.com/dashpay/dash/commit/974055a9b) Fix broken link in PrivateSend info dialog (#3031)
- [`781b16579`](https://github.com/dashpay/dash/commit/781b16579) Merge pull request #3028 from PastaPastaPasta/backport-12588
- [`5af6ce91d`](https://github.com/dashpay/dash/commit/5af6ce91d) Add Dash Core Group codesign certificate (#3027)
- [`873ab896c`](https://github.com/dashpay/dash/commit/873ab896c) Fix osslsigncode compile issue in gitian-build (#3026)
- [`ea8569e97`](https://github.com/dashpay/dash/commit/ea8569e97) Backport #12783: macOS: disable AppNap during sync (and mixing) (#3024)
- [`4286dde49`](https://github.com/dashpay/dash/commit/4286dde49) Remove support for InstantSend locked gobject collaterals (#3019)
- [`788d42dbc`](https://github.com/dashpay/dash/commit/788d42dbc) Bump version to 0.14.0.3 and copy release notes (#3053)
See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.14.0.3...dashpay:v0.14.0.4).

TODO

Credits
=======
Expand All @@ -117,7 +106,6 @@ Thanks to everyone who directly contributed to this release:
- Alexander Block (codablock)
- Nathan Marley (nmarley)
- PastaPastaPasta
- strophy
- UdjinM6

As well as everyone that submitted issues and reviewed pull requests.
Expand Down Expand Up @@ -145,6 +133,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.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
Expand Down

0 comments on commit 5f98ed7

Please sign in to comment.