mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
342 lines
15 KiB
Markdown
342 lines
15 KiB
Markdown
Dash Core version 0.17.0.2
|
||
==========================
|
||
|
||
Release is now available from:
|
||
|
||
<https://www.dash.org/downloads/#wallets>
|
||
|
||
This is a new major version release, bringing new features, various bugfixes
|
||
and other improvements.
|
||
|
||
This release is mandatory for all nodes.
|
||
|
||
Please report bugs using the issue tracker at github:
|
||
|
||
<https://github.com/dashpay/dash/issues>
|
||
|
||
|
||
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 and you were
|
||
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.
|
||
|
||
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).
|
||
|
||
Downgrade warning
|
||
-----------------
|
||
|
||
### Downgrade to a version < 0.14.0.3
|
||
|
||
Downgrading to a version older than 0.14.0.3 is no longer supported due to
|
||
changes in the "evodb" database format. If you need to use an older version,
|
||
you must either reindex or re-sync the whole chain.
|
||
|
||
### Downgrade of masternodes to < 0.17.0.2
|
||
|
||
Starting with the 0.16 release, masternodes verify the protocol version of other
|
||
masternodes. This results in PoSe punishment/banning for outdated masternodes,
|
||
so downgrading even prior to the activation of the introduced hard-fork changes
|
||
is not recommended.
|
||
|
||
Notable changes
|
||
===============
|
||
|
||
Opcode updates
|
||
--------------
|
||
Several opcodes have been reactivated/introduced to broaden the functionality
|
||
of the system and enable developers to build new solutions. These opcodes are
|
||
a combination of previously disabled ones that have been found to be safe and
|
||
new ones previously introduced by Bitcoin Cash. Details of the opcodes are
|
||
provided in [DIP-0020](https://github.com/dashpay/dips/blob/master/dip-0020.md).
|
||
|
||
These opcodes are activated via a BIP9 style hard fork that will begin
|
||
signalling on July 1st using bit 6. Any nodes that do not upgrade by the time
|
||
this feature is activated will diverge from the rest of the network.
|
||
|
||
DKG Data Sharing
|
||
----------------
|
||
Quorum resilience has been improved by enabling masternodes to request DKG data
|
||
from other quorum members. This allows Dash Platform to obtain required
|
||
information while also making it possible for corrupted masternodes to recover
|
||
the DKG data they need to participate in quorums they are part of. Details are
|
||
provided in [DIP-0021](https://github.com/dashpay/dips/blob/master/dip-0021.md).
|
||
|
||
Platform support
|
||
----------------
|
||
Support for Dash Platform has been expanded through the addition of a new
|
||
quorum type `LLMQ_100_67`, several RPCs, and a way to limit Platform RPC access
|
||
to a subset of allowed RPCs, specifically:
|
||
- `getbestblockhash`
|
||
- `getbestchainlock`
|
||
- `getblockcount`
|
||
- `getblockhash`
|
||
- `quorum sign` (for platform quorums only)
|
||
- `quorum verify`
|
||
- `verifyislock`
|
||
|
||
These changes provide necessary Platform capabilities while maximizing the
|
||
isolation between Core and Platform. New quorum type will be activated using
|
||
the same bit 6 introduced to activate new opcodes.
|
||
|
||
BLS update
|
||
----------
|
||
Dash Core’s BLS signature library has been updated based on v1.0 of the
|
||
Chia BLS library to support migration to a new BLS signature scheme which will
|
||
be implemented in a future version of DashCore. These changes will be made to
|
||
align with standards and improve security.
|
||
|
||
Network performance improvements
|
||
--------------------------------
|
||
This version of Dash Core includes multiple optimizations to the network and
|
||
p2p message handling code.
|
||
|
||
We reintroduced [Intra-Quorum Connections](https://github.com/dashpay/dips/blob/master/dip-0006.md#intra-quorum-communication)
|
||
which were temporary disabled with the introduction of
|
||
`SPORK_21_QUORUM_ALL_CONNECTED`. This should make communications for masternodes
|
||
belonging to the same quorum more robust and improve network connectivity in
|
||
general.
|
||
|
||
FreeBSD and MacOS machines will now default to the new `kqueue` network mode
|
||
which is similar to `epoll` mode on linux-based. It removes most of the CPU
|
||
overhead caused by the sub-optimal use of `select` in the network thread when
|
||
many connections were involved.
|
||
|
||
Wallet changes
|
||
--------------
|
||
Upgrading a non-Hierarchical Deterministic (HD) wallet to an HD wallet is now
|
||
possible. Previously new HD wallets could be created, but non-HD wallets could
|
||
not be upgraded. This update will enable existing non-HD wallets to upgrade to
|
||
take advantage of HD wallet features. Upgrades can be done via either the debug
|
||
console or command line and a new backup must be made when this upgrade is
|
||
performed.
|
||
|
||
Users can now load and unload wallets dynamically via RPC and GUI console.
|
||
It's now possible to have multiple wallets loaded at the same time, however only
|
||
one of them is going to be active and receive updates or be used for sending
|
||
trasactions at a specific point in time.
|
||
|
||
Also, enabling wallet encryption no longer requires a wallet restart.
|
||
|
||
Sporks
|
||
------
|
||
Several spork changes have been made to streamline code and improve system
|
||
reliability. Activation of `SPORK_22_PS_MORE_PARTICIPANTS` in DashCore v0.16
|
||
has rendered that spork unnecessary. The associated logic has been hardened
|
||
and the spork removed. `SPORK_21_QUORUM_ALL_CONNECTED` logic has been split
|
||
into two sporks, `SPORK_21_QUORUM_ALL_CONNECTED` and `SPORK_23_QUORUM_POSE`,
|
||
so that masternode quorum connectivity and quorum Proof of Service (PoSe) can
|
||
be controlled independently. Finally, `SPORK_2_INSTANTSEND_ENABLED` has a new
|
||
mode (value: 1) that enables a smooth transition in case InstantSend needs to
|
||
be disabled.
|
||
|
||
Statoshi backport
|
||
------------------
|
||
This version includes a [backport](https://github.com/dashpay/dash/pull/2515)
|
||
of [Statoshi functionality](https://github.com/jlopp/statoshi) which allows
|
||
nodes to emit metrics to a StatsD instance. This can help node operators to
|
||
learn more about node performance and network state in general. We added
|
||
several command line options to give node operators more control, see options
|
||
starting with `-stats` prefix.
|
||
|
||
PrivateSend rename
|
||
------------------
|
||
PrivateSend has been renamed to CoinJoin to better reflect the functionality
|
||
it provides and align with industry standard terminology. The renaming only
|
||
applies to the UI and RPCs but does not change functionality.
|
||
|
||
Build system
|
||
------------
|
||
Multiple packaged in `depends` were updated. Current versions are:
|
||
- biplist 1.0.3
|
||
- bls-dash 1.0.1
|
||
- boost 1.70.0
|
||
- cmake 3.14.7
|
||
- expat 2.2.5
|
||
- mac alias 2.0.7
|
||
- miniupnpc 2.0.20180203
|
||
- qt 5.9.6
|
||
- zeromq 4.2.3
|
||
|
||
Packages libX11, libXext, xextproto and xtrans are no longer used.
|
||
|
||
Minimum supported macOS version was bumped to 10.10.
|
||
|
||
RPC changes
|
||
-----------
|
||
There are seven new RPC commands which are Dash specific and seven new RPC
|
||
commands introduced through Bitcoin backports. One previously deprecated RPC,
|
||
`estimatefee`, was removed and several RPCs have been deprecated.
|
||
|
||
The new RPCs are:
|
||
- `createwallet`
|
||
- `getaddressesbylabel`
|
||
- `getaddressinfo`
|
||
- `getzmqnotifications`
|
||
- `gobject list-prepared`
|
||
- `listlabels`
|
||
- `masternode payments`
|
||
- `quorum getdata`
|
||
- `quorum verify`
|
||
- `signrawtransactionwithkey`
|
||
- `signrawtransactionwithwallet`
|
||
- `unloadwallet`
|
||
- `verifychainlock`
|
||
- `verifyislock`
|
||
- `upgradetohd`
|
||
|
||
The deprecated RPCs are all related to the deprecation of wallet accounts and
|
||
will be removed in DashCore v0.18. Note that the deprecation of wallet accounts
|
||
means that any RPCs that previously accepted an “account” parameter are
|
||
affected — please refer to the RPC help for details about specific RPCs.
|
||
|
||
The deprecated RPCs are:
|
||
- `getaccount`
|
||
- `getaccountaddress`
|
||
- `getaddressbyaccount`
|
||
- `getreceivedbyaccount`
|
||
- `listaccounts`
|
||
- `listreceivedbyaccount`
|
||
- `masternode current`
|
||
- `masternode winner`
|
||
- `move`
|
||
- `sendfrom`
|
||
- `setaccount`
|
||
|
||
`protx register` and `protx register_fund` RPCs now accept an additional `submit` parameter
|
||
which allows producing and printing ProRegTx-es without relaying them
|
||
to the network.
|
||
|
||
Also, please note that all mixing-related RPCs have been renamed to replace
|
||
“PrivateSend” with “CoinJoin” (e.g. `setprivatesendrounds` -> `setcoinjoinrounds`).
|
||
|
||
Please check `help <command>` for more detailed information on specific RPCs.
|
||
|
||
Command-line options
|
||
--------------------
|
||
Changes in existing cmd-line options:
|
||
|
||
New cmd-line options:
|
||
- `-dip8params`
|
||
- `-llmq-data-recovery`
|
||
- `-llmq-qvvec-sync`
|
||
- `-llmqinstantsend`
|
||
- `-platform-user`
|
||
- `-statsenabled`
|
||
- `-statshost`
|
||
- `-statshostname`
|
||
- `-statsport`
|
||
- `-statsns`
|
||
- `-statsperiod`
|
||
- `-zmqpubhashrecoveredsig`
|
||
- `-zmqpubrawrecoveredsig`
|
||
|
||
Also, please note that all mixing-related command-line options have been
|
||
renamed to replace “PrivateSend” with “CoinJoin” (e.g. `setprivatesendrounds`
|
||
-> `setcoinjoinrounds`).
|
||
|
||
Please check `Help -> Command-line options` in Qt wallet or `dashd --help` for
|
||
more information.
|
||
|
||
Backports from Bitcoin Core 0.17
|
||
--------------------------------
|
||
|
||
This release also introduces over 450 updates from Bitcoin v0.17 as well as
|
||
some updates from Bitcoin v0.18 and more recent versions. This includes a
|
||
number of performance improvements, dynamic loading of wallets via RPC, support
|
||
for signalling pruned nodes, and a number of other updates that will benefit
|
||
Dash users. Bitcoin changes that do not align with Dash’s product needs, such
|
||
as SegWit and RBF, are excluded from our backporting. For additional detail on
|
||
what’s included in Bitcoin v0.17, please refer to [their release notes](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md).
|
||
|
||
Miscellaneous
|
||
-------------
|
||
A lot of refactoring, code cleanups and other small fixes were done in this release.
|
||
|
||
0.17.0.2 Change log
|
||
===================
|
||
|
||
See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.16.1.1...dashpay:v0.17.0.2).
|
||
|
||
Credits
|
||
=======
|
||
|
||
Thanks to everyone who directly contributed to this release:
|
||
|
||
- 10xcryptodev
|
||
- dustinface (xdustinface)
|
||
- Kittywhiskers Van Gogh (kittywhiskers)
|
||
- Kolby Moroz Liebl (KolbyML)
|
||
- Konstantin Shuplenkov (shuplenkov)
|
||
- Minh20
|
||
- PastaPastaPasta
|
||
- strophy
|
||
- thephez
|
||
- tomthoros
|
||
- 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.16.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.1.md) released November/17/2020
|
||
- [v0.16.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.0.md) released November/14/2020
|
||
- [v0.16.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.0.1.md) released September/30/2020
|
||
- [v0.15.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15.0.0.md) released Febrary/18/2020
|
||
- [v0.14.0.5](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.5.md) released December/08/2019
|
||
- [v0.14.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.4.md) released November/22/2019
|
||
- [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
|
||
- [v0.13.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.3.md) released Apr/04/2019
|
||
- [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019
|
||
- [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019
|
||
- [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.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
|