mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 11:32:46 +01:00
Merge pull request #5437 from UdjinM6/release_notes_19.2.0
backport: final v19.2 backports, v19.2.0 release notes and version bump
This commit is contained in:
commit
549e347b74
@ -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]])
|
||||
|
@ -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
|
||||
@ -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
|
||||
\-?
|
||||
|
@ -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
|
||||
\-?
|
||||
@ -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
|
||||
|
@ -1,7 +1,7 @@
|
||||
.\" 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
|
||||
@ -9,7 +9,7 @@ dash-tx \- manual page for dash-tx v19.0.0
|
||||
.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
|
||||
\-?
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
\-?
|
||||
@ -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
|
||||
|
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
# v19.1.0 Change log
|
||||
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.
|
||||
|
||||
See detailed [set of changes](https://github.com/dashpay/dash/compare/v19.0.0...dashpay:v19.1.0).
|
||||
## 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
|
||||
|
||||
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.2.0 Change log
|
||||
|
||||
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
|
||||
|
||||
@ -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
|
||||
|
129
doc/release-notes/dash/release-notes-19.1.0.md
Normal file
129
doc/release-notes/dash/release-notes-19.1.0.md
Normal file
@ -0,0 +1,129 @@
|
||||
# Dash Core version v19.1.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 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.
|
||||
|
||||
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 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).
|
||||
|
||||
## 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.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.
|
||||
|
||||
# Notable changes
|
||||
|
||||
## Delaying v19 Hard Fork
|
||||
|
||||
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.
|
||||
|
||||
# v19.1.0 Change log
|
||||
|
||||
See detailed [set of changes](https://github.com/dashpay/dash/compare/v19.0.0...dashpay:v19.1.0).
|
||||
|
||||
# Credits
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- Kittywhiskers Van Gogh (kittywhiskers)
|
||||
- Konstantin Akimov (knst)
|
||||
- Odysseas Gabrielides (ogabrielides)
|
||||
- Oleg Girko (OlegGirko)
|
||||
- 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.
|
||||
|
||||
# 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:
|
||||
|
||||
- [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
|
||||
- [v18.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.0.md) released Jan/01/2023
|
||||
- [v18.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.1.md) released January/08/2023
|
||||
- [v18.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.0.md) released October/09/2022
|
||||
- [v18.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.2.md) released October/09/2022
|
||||
- [v18.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.1.md) released August/17/2022
|
||||
- [v0.17.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.3.md) released June/07/2021
|
||||
- [v0.17.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.2.md) released May/19/2021
|
||||
- [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
|
@ -246,10 +246,10 @@ public:
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nFalloffCoeff = 5; // this corresponds to 10 periods
|
||||
|
||||
// The best chain should have at least this much work.
|
||||
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000082094584a23266cbb5f8"); // 1850400
|
||||
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000008677827656704520eb39"); // 1889000
|
||||
|
||||
// By default assume that the signatures in ancestors of this block are valid.
|
||||
consensus.defaultAssumeValid = uint256S("0x00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3"); // 1850400
|
||||
consensus.defaultAssumeValid = uint256S("0x00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7"); // 1889000
|
||||
|
||||
/**
|
||||
* The message start string is designed to be unlikely to occur in normal data.
|
||||
@ -355,15 +355,16 @@ public:
|
||||
{1450000, uint256S("0x00000000000000105cfae44a995332d8ec256850ea33a1f7b700474e3dad82bc")},
|
||||
{1796500, uint256S("0x000000000000001d531f36005159f19351bd49ca676398a561e55dcccb84eacd")},
|
||||
{1850400, uint256S("0x00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3")},
|
||||
{1889000, uint256S("0x00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7")},
|
||||
}
|
||||
};
|
||||
|
||||
// getchaintxstats 17280 00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3
|
||||
// getchaintxstats 17280 00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7
|
||||
chainTxData = ChainTxData{
|
||||
1680866408, // * UNIX timestamp of last known number of transactions (Block 1718597)
|
||||
47139357, // * total number of transactions between genesis and that timestamp
|
||||
1687008680, // * UNIX timestamp of last known number of transactions (Block 1889000)
|
||||
48071282, // * total number of transactions between genesis and that timestamp
|
||||
// (the tx=... number in the ChainStateFlushed debug.log lines)
|
||||
0.168014362704521, // * estimated number of transactions per second after that timestamp
|
||||
0.1420701358442986, // * estimated number of transactions per second after that timestamp
|
||||
};
|
||||
}
|
||||
};
|
||||
@ -485,10 +486,10 @@ public:
|
||||
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nFalloffCoeff = 5; // this corresponds to 10 periods
|
||||
|
||||
// The best chain should have at least this much work.
|
||||
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000002d68c6dc9ca04f3"); // 840000
|
||||
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000002d68c8cc1b8e54b"); // 851000
|
||||
|
||||
// By default assume that the signatures in ancestors of this block are valid.
|
||||
consensus.defaultAssumeValid = uint256S("0x000000cd7c3084499912ae893125c13e8c3c656abb6e511dcec6619c3d65a510"); // 840000
|
||||
consensus.defaultAssumeValid = uint256S("0x0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02"); // 851000
|
||||
|
||||
pchMessageStart[0] = 0xce;
|
||||
pchMessageStart[1] = 0xe2;
|
||||
@ -569,15 +570,16 @@ public:
|
||||
{794950, uint256S("0x000001860e4c7248a9c5cc3bc7106041750560dc5cd9b3a2641b49494bcff5f2")},
|
||||
{808000, uint256S("0x00000104cb60a2b5e00a8a4259582756e5bf0dca201c0993c63f0e54971ea91a")},
|
||||
{840000, uint256S("0x000000cd7c3084499912ae893125c13e8c3c656abb6e511dcec6619c3d65a510")},
|
||||
{851000, uint256S("0x0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02")},
|
||||
}
|
||||
};
|
||||
|
||||
// getchaintxstats 17280 000000cd7c3084499912ae893125c13e8c3c656abb6e511dcec6619c3d65a510
|
||||
// getchaintxstats 17280 0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02
|
||||
chainTxData = ChainTxData{
|
||||
1676885923, // * UNIX timestamp of last known number of transactions (Block 840000)
|
||||
5776047, // * total number of transactions between genesis and that timestamp
|
||||
1686952567, // * UNIX timestamp of last known number of transactions (Block 851000)
|
||||
5800114, // * total number of transactions between genesis and that timestamp
|
||||
// (the tx=... number in the ChainStateFlushed debug.log lines)
|
||||
0.01120953982471268, // * estimated number of transactions per second after that timestamp
|
||||
0.003166265599662275, // * estimated number of transactions per second after that timestamp
|
||||
};
|
||||
}
|
||||
};
|
||||
|
@ -67,14 +67,13 @@ void CSimplifiedMNListEntry::ToJson(UniValue& obj, bool extended) const
|
||||
obj.clear();
|
||||
obj.setObject();
|
||||
obj.pushKV("nVersion", nVersion);
|
||||
obj.pushKV("nType", ToUnderlying(nType));
|
||||
obj.pushKV("proRegTxHash", proRegTxHash.ToString());
|
||||
obj.pushKV("confirmedHash", confirmedHash.ToString());
|
||||
obj.pushKV("service", service.ToString(false));
|
||||
obj.pushKV("pubKeyOperator", pubKeyOperator.ToString());
|
||||
obj.pushKV("votingAddress", EncodeDestination(PKHash(keyIDVoting)));
|
||||
obj.pushKV("isValid", isValid);
|
||||
obj.pushKV("nVersion", nVersion);
|
||||
obj.pushKV("nType", ToUnderlying(nType));
|
||||
if (nType == MnType::HighPerformance) {
|
||||
obj.pushKV("platformHTTPPort", platformHTTPPort);
|
||||
obj.pushKV("platformNodeID", platformNodeID.ToString());
|
||||
@ -185,6 +184,7 @@ void CSimplifiedMNListDiff::ToJson(UniValue& obj, bool extended) const
|
||||
{
|
||||
obj.setObject();
|
||||
|
||||
obj.pushKV("nVersion", nVersion);
|
||||
obj.pushKV("baseBlockHash", baseBlockHash.ToString());
|
||||
obj.pushKV("blockHash", blockHash.ToString());
|
||||
|
||||
@ -207,7 +207,6 @@ void CSimplifiedMNListDiff::ToJson(UniValue& obj, bool extended) const
|
||||
mnListArr.push_back(eObj);
|
||||
}
|
||||
obj.pushKV("mnList", mnListArr);
|
||||
obj.pushKV("nVersion", nVersion);
|
||||
|
||||
UniValue deletedQuorumsArr(UniValue::VARR);
|
||||
for (const auto& e : deletedQuorums) {
|
||||
|
@ -70,8 +70,12 @@ static RPCArg GetRpcArg(const std::string& strParamName)
|
||||
},
|
||||
{"ipAndPort",
|
||||
{"ipAndPort", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"IP and port in the form \"IP:PORT\".\n"
|
||||
"Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards."}
|
||||
"IP and port in the form \"IP:PORT\". Must be unique on the network.\n"
|
||||
"Can be set to an empty string, which will require a ProUpServTx afterwards."}
|
||||
},
|
||||
{"ipAndPort_update",
|
||||
{"ipAndPort", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"IP and port in the form \"IP:PORT\". Must be unique on the network."}
|
||||
},
|
||||
{"operatorKey",
|
||||
{"operatorKey", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
@ -85,31 +89,31 @@ static RPCArg GetRpcArg(const std::string& strParamName)
|
||||
"If set to an empty string, the currently active payout address is reused."}
|
||||
},
|
||||
{"operatorPubKey_register",
|
||||
{"operatorPubKey_register", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
{"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The operator BLS public key. The BLS private key does not have to be known.\n"
|
||||
"It has to match the BLS private key which is later used when operating the masternode."}
|
||||
},
|
||||
{"operatorPubKey_register_legacy",
|
||||
{"operatorPubKey_register", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n"
|
||||
"It has to match the BLS private key which is later used when operating the masternode.\n"}
|
||||
{"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n"
|
||||
"It has to match the BLS private key which is later used when operating the masternode.\n"}
|
||||
},
|
||||
{"operatorPubKey_update",
|
||||
{"operatorPubKey_update", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
{"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The operator BLS public key. The BLS private key does not have to be known.\n"
|
||||
"It has to match the BLS private key which is later used when operating the masternode.\n"
|
||||
"If set to an empty string, the currently active operator BLS public key is reused."}
|
||||
},
|
||||
{"operatorPubKey_update_legacy",
|
||||
{"operatorPubKey_update", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n"
|
||||
"It has to match the BLS private key which is later used when operating the masternode.\n"
|
||||
"If set to an empty string, the currently active operator BLS public key is reused."}
|
||||
{"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n"
|
||||
"It has to match the BLS private key which is later used when operating the masternode.\n"
|
||||
"If set to an empty string, the currently active operator BLS public key is reused."}
|
||||
},
|
||||
{"operatorReward",
|
||||
{"operatorReward", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The fraction in %% to share with the operator. The value must be\n"
|
||||
"between 0.00 and 100.00."}
|
||||
"The fraction in %% to share with the operator.\n"
|
||||
"The value must be between 0 and 10000."}
|
||||
},
|
||||
{"ownerAddress",
|
||||
{"ownerAddress", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
@ -118,11 +122,11 @@ static RPCArg GetRpcArg(const std::string& strParamName)
|
||||
"The address must be unused and must differ from the collateralAddress."}
|
||||
},
|
||||
{"payoutAddress_register",
|
||||
{"payoutAddress_register", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
{"payoutAddress", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The dash address to use for masternode reward payments."}
|
||||
},
|
||||
{"payoutAddress_update",
|
||||
{"payoutAddress_update", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
{"payoutAddress", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The dash address to use for masternode reward payments.\n"
|
||||
"If set to an empty string, the currently active payout address is reused."}
|
||||
},
|
||||
@ -139,13 +143,13 @@ static RPCArg GetRpcArg(const std::string& strParamName)
|
||||
"If true, the resulting transaction is sent to the network."}
|
||||
},
|
||||
{"votingAddress_register",
|
||||
{"votingAddress_register", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
{"votingAddress", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The voting key address. The private key does not have to be known by your wallet.\n"
|
||||
"It has to match the private key which is later used when voting on proposals.\n"
|
||||
"If set to an empty string, ownerAddress will be used."}
|
||||
},
|
||||
{"votingAddress_update",
|
||||
{"votingAddress_update", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
{"votingAddress", RPCArg::Type::STR, RPCArg::Optional::NO,
|
||||
"The voting key address. The private key does not have to be known by your wallet.\n"
|
||||
"It has to match the private key which is later used when voting on proposals.\n"
|
||||
"If set to an empty string, the currently active voting key address is reused."}
|
||||
@ -504,7 +508,7 @@ static void protx_register_fund_hpmn_help(const JSONRPCRequest& request)
|
||||
RPCResult::Type::STR_HEX, "hex", "The serialized signed ProTx in hex format"},
|
||||
},
|
||||
RPCExamples{
|
||||
HelpExampleCli("protx", "register_fund_hpmn \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" 1000 \"1.2.3.4:1234\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" \"93746e8731c57f87f79b3620a7982924e2931717d49540a85864bd543de11c43fb868fd63e501a1db37e19ed59ae6db4\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" 0 \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" \"f2dbd9b0a1f541a7c44d34a58674d0262f5feca5\" 22821 22822")},
|
||||
HelpExampleCli("protx", "register_fund_hpmn \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" \"1.2.3.4:1234\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" \"93746e8731c57f87f79b3620a7982924e2931717d49540a85864bd543de11c43fb868fd63e501a1db37e19ed59ae6db4\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" 0 \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" \"f2dbd9b0a1f541a7c44d34a58674d0262f5feca5\" 22821 22822")},
|
||||
}.Check(request);
|
||||
}
|
||||
|
||||
@ -671,7 +675,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request,
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "operatorReward must be a number");
|
||||
}
|
||||
if (operatorReward < 0 || operatorReward > 10000) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "operatorReward must be between 0.00 and 100.00");
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "operatorReward must be between 0 and 10000");
|
||||
}
|
||||
ptx.nOperatorReward = operatorReward;
|
||||
|
||||
@ -843,7 +847,7 @@ static void protx_update_service_help(const JSONRPCRequest& request)
|
||||
+ HELP_REQUIRING_PASSPHRASE,
|
||||
{
|
||||
GetRpcArg("proTxHash"),
|
||||
GetRpcArg("ipAndPort"),
|
||||
GetRpcArg("ipAndPort_update"),
|
||||
GetRpcArg("operatorKey"),
|
||||
GetRpcArg("operatorPayoutAddress"),
|
||||
GetRpcArg("feeSourceAddress"),
|
||||
@ -867,7 +871,7 @@ static void protx_update_service_hpmn_help(const JSONRPCRequest& request)
|
||||
HELP_REQUIRING_PASSPHRASE,
|
||||
{
|
||||
GetRpcArg("proTxHash"),
|
||||
GetRpcArg("ipAndPort"),
|
||||
GetRpcArg("ipAndPort_update"),
|
||||
GetRpcArg("operatorKey"),
|
||||
GetRpcArg("platformNodeID"),
|
||||
GetRpcArg("platformP2PPort"),
|
||||
|
Loading…
Reference in New Issue
Block a user