Skip to content

Releases: dashpay/dash

Dash Core v0.15.0.0 RC4

14 Feb 10:03
v0.15.0.0-rc4
87b6383
Compare
Choose a tag to compare
Pre-release

This is a release candidate and not meant for production. It is only meant for testnet deployments.

Dash Core v0.15.0.0 RC3

06 Feb 10:24
v0.15.0.0-rc3
1d507c9
Compare
Choose a tag to compare
Pre-release

This is a release candidate and not meant for production. It is only meant for testnet deployments.

Dash Core 0.14.0.5 Release Announcement

07 Dec 23:45
v0.14.0.5
2ae1ce4
Compare
Choose a tag to compare

We are happy to announce the release of 0.14.0.5. This release includes binaries, which can be downloaded above.

About this Release

Dash Core 0.14.0.5 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 node (including masternodes and non-masternode) operator to upgrade to 0.14.0.5 as this release contains a fix for a serious DoS vector.

Notable changes

Fix for a DoS vector

This release fixes a serious DoS vector which allows to cause memory exhaustion until the point of out-of-memory related crashes. We highly recommend upgrading all nodes. Thanks to Bitcoin ABC developers for finding and reporting this issue to us.

Better handling of non-locked transactions in mined blocks

We observed multiple cases of ChainLocks failing on mainnet. We tracked this down to a situation where PrivateSend mixing transactions were first rejected by parts of the network (0.14.0.4 nodes) while other parts (<=0.14.0.3) accepted the transaction into the mempool. This caused InstantSend locking to fail for these transactions, while non-upgraded miners still included the transactions into blocks after 10 minutes which in its turn caused blocks to not get ChainLocked for at least 10 minutes. This release improves an already existent fallback mechanism (retroactive InstantSend locking) to also work for transaction which are already partially known in the network. This should cause ChainLocks to succeed in such situations.

Credits

Thanks go out to all Dash Core contributors, everyone who submitted issues, reviewed pull requests or helped translating on Transifex and also to Bitcoin Core Developers.

Dash Core 0.14.0.4 Release Announcement

22 Nov 17:33
v0.14.0.4
Compare
Choose a tag to compare

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.

Notable changes

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.

Credits

Thanks go out to all Dash Core contributors, everyone who submitted issues, reviewed pull requests or helped translating on Transifex and also to Bitcoin Core Developers.

Dash Core 0.14.0.3 Release Announcement

15 Aug 17:35
v0.14.0.3
7d8eab2
Compare
Choose a tag to compare

We are happy to announce the release of 0.14.0.3. This release includes binaries, which can be downloaded above.

About this Release

Dash Core 0.14.0.3 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.3 as this release contains multiple improvements in regard to disk-space usage and banning behavior. These fixes and improvements are the results of the stress tests which were performed by an unknown actor in the last few weeks.

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

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.

Credits

Thanks go out to all Dash Core contributors, everyone who submitted issues, reviewed pull requests or helped translating on Transifex and also to Bitcoin Core Developers.

Dash Core 0.14.0.2 Release Announcement

04 Jul 14:06
v0.14.0.2
28a219f
Compare
Choose a tag to compare

We are happy to announce the release of 0.14.0.2. This release includes binaries, which can be downloaded above.

About this Release

Dash Core 0.14.0.2 is a minor release of the Dash Core 0.14.0.x series.

This is a new minor version release, bringing various bugfixes and we consider this a stable release.
We suggest everyone to upgrade who encounters issues with initial sync or reindexes being very slow or crashing.

Notable changes

Performance improvements

Slow startup times were observed in older versions. This was due to sub-optimal handling of old
deterministic masternode lists which caused the loading of too many lists into memory. This should be
fixed now.

Fixed excessive memory use

Multiple issues were found which caused excessive use of memory in some situations, especially when
a full reindex was performed, causing the node to crash even when enough RAM was available. This should
be fixed now.

Fixed out-of-sync masternode list UI

The masternode tab, which shows the masternode list, was not always up-to-date as it missed some internal
updates. This should be fixed now.

Release Notes

You can find detailed release notes at https://github.com/dashpay/dash/blob/v0.14.0.2/doc/release-notes.md. The release notes also contain instructions and links to further documentation for masternode operators and miners.

Credits

Thanks go out to all Dash Core contributors, everyone who submitted issues, reviewed pull requests or helped translating on Transifex and also to Bitcoin Core Developers.

Dash Core 0.14.0.1 Release Announcement

31 May 08:25
v0.14.0.1
Compare
Choose a tag to compare

Dash Core 0.14.0.1 Release Announcement

We are happy to announce the release of 0.14.0.1. This release includes binaries, which can be downloaded above.

About this Release

Dash Core 0.14.0.1 is a minor release of the Dash Core 0.14.0.x series.

This is a new minor version release, bringing various bugfixes and we consider this a stable release.

Notable changes

Fixed governance votes pruning for invalid masternodes

A community member reported a possible attack that involves DoSing masternodes to force the network
to prune all governance votes from this masternodes. This could be used to manipulate vote outcomes.

This vulnerability is currently not possible to execute as LLMQ DKGs and PoSe have not activated yet on
mainnet. This version includes a fix that requires to have at least 51% masternodes to upgrade to 0.14.0.1, after which superblock trigger voting will automatically fix the discrepancies between old and new nodes. This also means that we will postpone activation of LLMQ DKGs and thus PoSe until at least 51% of masternodes have upgraded to 0.14.0.1.

Fixed a rare memory/db leak in LLMQ based InstantSend

We fixed a rare memory/db leak in LLMQ based InstantSend leak which would only occur when reorganizations
would happen.

Release Notes

You can find detailed release notes at https://github.com/dashpay/dash/blob/v0.14.0.1/doc/release-notes.md. The release notes also contain instructions and links to further documentation for masternode operators and miners.

Credits

Thanks go out to all Dash Core contributors, everyone who submitted issues, reviewed pull requests or helped translating on Transifex and also to Bitcoin Core Developers.

Dash Core 0.14.0.0 Release Announcement

22 May 08:17
v0.14.0.0
8c74396
Compare
Choose a tag to compare

Dash Core 0.14.0.0 Release Announcement

We are happy to announce the release of 0.14.0.0. This release includes binaries, which can be downloaded above.

About this Release

Dash Core 0.14.0.0 is the first major release of the Dash Core 0.14.x.x series.

This major release contains new features, improvements and bugfixes and we consider this a stable release.

Notable changes

DIP0004 - Coinbase Payload v2

Coinbase Payload v2 introduces new field merkleRootQuorums which represents the merkle root of all the hashes of the final quorum commitments of all active LLMQ sets. This allows SPV clients to verify active LLMQ sets and use this information to further verify ChainLocks and LLMQ-based InstantSend messages. Coinbase Payload v2 relies on DIP0008 (bit 4) activation.

https://github.com/dashpay/dips/blob/master/dip-0004.md#calculating-the-merkle-root-of-the-active-llmqs

DIP0008 - ChainLocks

This version introduces ChainLocks, a technology for near-instant confirmation of blocks and finding near-instant consensus on the longest valid/accepted chain. ChainLocks leverages LLMQ Signing Requests/Sessions to accomplish this. ChainLocks relies on DIP0008 (bit 4) activation and SPORK_19_CHAINLOCKS_ENABLED spork.

Read more: https://github.com/dashpay/dips/blob/master/dip-0008.md

DIP0010 - LLMQ-based InstantSend

InstantSend is a feature to allow instant confirmations of payments. It works by locking transaction inputs through masternode quorums. It has been present in Dash for a few years and been proven to work. Nevertheless, there are some limits which could theoretically be removed in the old system but doing so would have created risks in terms of scalability and security.

We introduce LLMQ-based InstantSend which is designed to be much more scalable without sacrificing security and which allows all transactions to be treated as InstantSend transactions. The old system differentiated transactions as InstantSend transactions by using the P2P message “ix” instead of “tx”. Since this distinction is not required in the new system, the P2P message “ix” will be removed after DIP0008 deployment (for now, transactions sent via "ix" message will be relayed further via "tx" message).

Read more: https://github.com/dashpay/dips/blob/master/dip-0010.md

Network

Legacy messages mnw, mnwb, mnget, mnb, mnp, dseg, mnv, qdcommit and their corresponding inventory types (7, 10, 14, 15, 19, 22) are no longer suported.

Message version is extended with a 256 bit field - a challenge sent to a masternode. Masternode which received such a challenge must reply with new p2p message mnauth directly after verack. This mnauth message must include a signed challenge that was previously sent via version.

Mining

Due to changes in coinbase payload this version requires for miners to signal their readiness via BIP9-like mechanism - by setting bit 4 of the block version to 1. Note that if your mining software simply uses coinbase_payload field from getblocktemplate RPC and doesn't construct coinbase payload manually then there should be no changes to your mining software required. We however encourage pools and solo-miners to check their software compatibility on testnet to ensure flawless migration.

PrivateSend

The wallet will try to create and consume denoms a bit more accurately now. It will also only create a limited number of inputs for each denominated amount to prevent bloating itself with mostly the smallest denoms. You can control this number of inputs via new -privatesenddenoms cmd-line option (default is 300).

InstantSend

Legacy InstantSend is going to be superseded by the newly implemented LLMQ-based one once DIP0008 (bit 4) is active and SPORK_20_INSTANTSEND_LLMQ_BASED spork is ON.

Sporks

There are two new sporks introduced in this version - SPORK_19_CHAINLOCKS_ENABLED and SPORK_20_INSTANTSEND_LLMQ_BASED. SPORK_17_QUORUM_DKG_ENABLED was introduced in v0.13 but was kept OFF. It will be turned on once 80% masternodes are upgraded to v0.14 which will enable DKG and DKG-based PoSe.

QR codes

Wallet can now show QR codes for addresses in the address book, receiving addresses and addresses identified in transactions list (right click -> "Show QR-code").

RPC, ZMQ and command-line changes

This release introduced various changes to these subsystems, please see detailed release notes for more info.

Release Notes

You can find detailed release notes at https://github.com/dashpay/dash/blob/v0.14.0.0/doc/release-notes.md. The release notes also contain instructions and links to further documentation for masternode operators and miners.

Credits

Thanks go out to all Dash Core contributors, everyone who submitted issues, reviewed pull requests or helped translating on Transifex and also to Bitcoin Core Developers.

Dash Core v0.14.0.0 RC5

08 May 21:15
v0.14.0.0-rc5
Compare
Choose a tag to compare
Pre-release

This is a release candidate and not meant for production. It is only meant for testnet deployments.

Dash Core v0.14.0.0 RC4

12 Apr 16:06
v0.14.0.0-rc4
Compare
Choose a tag to compare
Pre-release

This is a release candidate and not meant for production. It is only meant for testnet deployments.