We are happy to announce the release of 0.14.0.4. This release includes binaries, which can be downloaded above.
About this Release
Dash Core 0.14.0.4 is a minor release of the Dash Core 0.14.0.x series.
This is a new minor version release, bringing various bugfixes and improvements. We consider this a stable release. We suggest every masternode operator to upgrade to 0.14.0.4 as this release contains multiple improvements in regard to mempool consistency and orphan handling, which is important for InstantSend stability. These fixes and improvements are the results of the stress tests which were performed by an unknown actor in the last few weeks.
We also suggest to upgrade regular nodes as this release also includes a fix to CVE-2017-18350.
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 in Bitcoin v0.15.1. This release of Dash Core includes a backport of this fix.