Skip to content

Commit

Permalink
Merge pull request dashpay#5437 from UdjinM6/release_notes_19.2.0
Browse files Browse the repository at this point in the history
backport: final v19.2 backports, v19.2.0 release notes and version bump
  • Loading branch information
PastaPastaPasta authored Jun 17, 2023
2 parents 44cd30f + b98d5ac commit 549e347
Show file tree
Hide file tree
Showing 11 changed files with 278 additions and 86 deletions.
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 19)
define(_CLIENT_VERSION_MINOR, 2)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 1)
define(_CLIENT_VERSION_IS_RELEASE, false)
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2023)
define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Dash Core]])
Expand Down
8 changes: 4 additions & 4 deletions doc/man/dash-cli.1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH DASH-CLI "1" "April 2023" "dash-cli v19.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH DASH-CLI "1" "June 2023" "dash-cli v19.2.0" "User Commands"
.SH NAME
dash-cli \- manual page for dash-cli v19.0.0
dash-cli \- manual page for dash-cli v19.2.0
.SH SYNOPSIS
.B dash-cli
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Dash Core\/\fR
Expand All @@ -15,7 +15,7 @@ dash-cli \- manual page for dash-cli v19.0.0
.B dash-cli
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
.SH DESCRIPTION
Dash Core RPC client version v19.0.0
Dash Core RPC client version v19.2.0
.SH OPTIONS
.HP
\-?
Expand Down
12 changes: 6 additions & 6 deletions doc/man/dash-qt.1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH DASH-QT "1" "April 2023" "dash-qt v19.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH DASH-QT "1" "June 2023" "dash-qt v19.2.0" "User Commands"
.SH NAME
dash-qt \- manual page for dash-qt v19.0.0
dash-qt \- manual page for dash-qt v19.2.0
.SH SYNOPSIS
.B dash-qt
[\fI\,command-line options\/\fR]
.SH DESCRIPTION
Dash Core version v19.0.0
Dash Core version v19.2.0
.SH OPTIONS
.HP
\-?
Expand All @@ -23,9 +23,9 @@ message)
If this block is in the chain assume that it and its ancestors are valid
and potentially skip their script verification (0 to verify all,
default:
00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3,
00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7,
testnet:
0000005c35514190ef3c38d322f69412553dc7e1107ed5f92adc2935b90acc51)
0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02)
.HP
\fB\-blockfilterindex=\fR<type>
.IP
Expand Down
8 changes: 4 additions & 4 deletions doc/man/dash-tx.1
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH DASH-TX "1" "April 2023" "dash-tx v19.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH DASH-TX "1" "June 2023" "dash-tx v19.2.0" "User Commands"
.SH NAME
dash-tx \- manual page for dash-tx v19.0.0
dash-tx \- manual page for dash-tx v19.2.0
.SH SYNOPSIS
.B dash-tx
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded dash transaction\/\fR
.br
.B dash-tx
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded dash transaction\/\fR
.SH DESCRIPTION
Dash Core dash\-tx utility version v19.0.0
Dash Core dash\-tx utility version v19.2.0
.SH OPTIONS
.HP
\-?
Expand Down
8 changes: 4 additions & 4 deletions doc/man/dash-wallet.1
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH DASH-WALLET "1" "April 2023" "dash-wallet v19.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH DASH-WALLET "1" "June 2023" "dash-wallet v19.2.0" "User Commands"
.SH NAME
dash-wallet \- manual page for dash-wallet v19.0.0
dash-wallet \- manual page for dash-wallet v19.2.0
.SH DESCRIPTION
Dash Core dash\-wallet version v19.0.0
Dash Core dash\-wallet version v19.2.0
.PP
dash\-wallet is an offline tool for creating and interacting with Dash Core wallet files.
By default dash\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
Expand Down
12 changes: 6 additions & 6 deletions doc/man/dashd.1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
.TH DASHD "1" "April 2023" "dashd v19.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH DASHD "1" "June 2023" "dashd v19.2.0" "User Commands"
.SH NAME
dashd \- manual page for dashd v19.0.0
dashd \- manual page for dashd v19.2.0
.SH SYNOPSIS
.B dashd
[\fI\,options\/\fR] \fI\,Start Dash Core Daemon\/\fR
.SH DESCRIPTION
Dash Core Daemon version v19.0.0
Dash Core Daemon version v19.2.0
.SH OPTIONS
.HP
\-?
Expand All @@ -23,9 +23,9 @@ message)
If this block is in the chain assume that it and its ancestors are valid
and potentially skip their script verification (0 to verify all,
default:
00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3,
00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7,
testnet:
0000005c35514190ef3c38d322f69412553dc7e1107ed5f92adc2935b90acc51)
0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02)
.HP
\fB\-blockfilterindex=\fR<type>
.IP
Expand Down
106 changes: 82 additions & 24 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# Dash Core version v19.1.0
# Dash Core version v19.2.0

Release is now available from:

<https://www.dash.org/downloads/#wallets>

This is a new minor version release, bringing various bugfixes and other improvements.
This is a new minor version release, bringing various bugfixes and other
improvements.

This release is mandatory for all nodes. This release delays v19 hard fork activation and
will effectively hard fork the network. v19.0.0 nodes must upgrade to continue syncing properly.
This release is mandatory for all nodes. This release resolves issues around the
v19 Hard Fork activation. All nodes must upgrade to continue syncing properly.

Please report bugs using the issue tracker at GitHub:

Expand All @@ -26,46 +27,102 @@ 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 18.0.1, the
first startup of Dash Core will run a migration process which can take anywhere
from a few minutes to thirty minutes to finish. After the migration, a
downgrade to an older version is only possible with a reindex
(or reindex-chainstate).
At the first startup Dash Core will run a migration process which can take
anywhere from a few minutes to thirty minutes to finish. After the migration,
a downgrade to an older version is only possible with a reindex.

Please note that seamless migration is only possible on nodes which did not
reach the v19 fork block. Nodes that reached it can either rewind a couple
of blocks back to a pre-v19 block using `invalidateblock` RPC while still
running the old version or they can reindex instead.

## Downgrade warning

### Downgrade to a version < v19.1.0
Downgrading below v19.1.0 is not supported as v19.0.0 will attempt to hard fork, however this hardfork is problematic
and is being delayed with this version
### Downgrade to a version < v19.2.0

### Downgrade to a version < v19.0.0
Downgrading to a version older than v19.0.0 is not supported due to changes in the evodb database. If you need to use an older version, you must either reindex or re-sync the whole chain.
Downgrading to a version older than v19.2.0 is not supported due to changes
in the evodb database. If you need to use an older version, you must either
reindex or re-sync the whole chain.

# Notable changes

## Delaying v19 Hard Fork
## Resolve v19 Hard Fork Issues

One of the goals for the v19 Hard Fork was to activate basic BLS scheme and
start using it in various on-chain and p2p messages. The motivation behind this
change is the need to be aligned with IETF standards. Unfortunately, a few edge
cases were missed in our functional tests and were not caught on testnet either.
v19 activation attempt on mainnet hit one of these edge cases and mainnet
stopped producing blocks. As an intermediate solution v19.1.0 was released which
delayed the start of the signaling for the v19 Hard Fork until June 14th.

To resolve these issues we had to rework the way BLS public keys are handled
including the way they are serialized in the internal database. This made it
incompatible with older versions of Dash Core, so a db migration path was
implemented for all recent versions.

## Improve migration and historical data support on light clients

As a side-effect, the solution implemented to resolve v19 Hard Fork issues
opened a path to simplify v19 migration for mobile wallets.

With previous implementation mobile wallets would have to convert 4k+ pubkeys
at the v19 fork point and that can easily take 10-15 seconds if not more.
Also, after the v19 Hard Fork, if a masternode list is requested from a block
before the v19 Hard Fork, the operator keys were coming in basic BLS scheme,
but the masternode merkleroot hash stored in coinbase transaction at that time
was calculated with legacy BLS scheme. Hence it was impossible to verify the
merkleroot hash.

To fix these issues a new field `nVersion` was introduced for every entry in
`mnlistdiff` p2p message. This field indicates which BLS scheme should be used
when deserialising the message - legacy or basic. `nVersion` of the `mnlistdiff`
message itself will no longer indicate the scheme and must always be set to `1`.

## Improve mixing support on light clients

Recent changes to `dsq` and `dstx` messages allowed mobile clients that get
masternode lists from `mnlistdiff` message to determine the masternode related
to these messages because the `proTxHash` was used instead of the
`masternodeOutpoint`. Once the v19 Hard Fork activates the signature of `dsq`
and `dstx` messages will be based on the `proTxHash` which should make it
possible for mobile clients to verify it.

## Allow keeping Chainlocks enabled without signing new ones

Before this version Chainlocks were either enabled or disabled. Starting with
this version it's possible to set `SPORK_19_CHAINLOCKS_ENABLED` to a non-zero
value to disable the signing of new Chainlocks while still enforcing the best
known one.

## Other changes

The start date for the v19 Hard Fork has been delayed until June 14th. The earliest hard fork date will be roughly two
weeks after that date. A new version will be required before this date to ensure a smooth hard fork.
There were a few other minor changes too, specifically:
- reindex on DB corruption should now start properly in Qt
- a mnemonic passphrase longer than 256 symbols no longer crashes the wallet
- a Qt node running with `-disablewawllet` flag should not crash in Settings now
- `-masternodeblsprivkey` and `-sporkkey` values are no longer printed in
`debug.log`
- should use less memory in the long run comparing to older versions
- gmp library detection should work better on macos
- fixed a couple of typos

# v19.1.0 Change log
# v19.2.0 Change log

See detailed [set of changes](https://github.com/dashpay/dash/compare/v19.0.0...dashpay:v19.1.0).
See detailed [set of changes](https://github.com/dashpay/dash/compare/v19.1.0...dashpay:v19.2.0).

# Credits

Thanks to everyone who directly contributed to this release:

- Kittywhiskers Van Gogh (kittywhiskers)
- Konstantin Akimov (knst)
- Odysseas Gabrielides (ogabrielides)
- Oleg Girko (OlegGirko)
- Nathan Marley (nmarley)
- PastaPastaPasta
- thephez
- UdjinM6
- Vijay Das Manikpuri (vijaydasmp)

As well as everyone that submitted issues, reviewed pull requests, helped debug the release candidates, and write DIPs that were implemented in this release.
As well as everyone that submitted issues, reviewed pull requests and helped
debug the release candidates.

# Older releases

Expand All @@ -89,6 +146,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:

- [v19.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.0.0.md) released May/22/2023
- [v19.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.0.0.md) released Apr/14/2023
- [v18.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.2.md) released Mar/21/2023
- [v18.2.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.1.md) released Jan/17/2023
Expand Down
Loading

0 comments on commit 549e347

Please sign in to comment.