3404fa0247
docs: add release notes for v22.0.0 (pasta)
Pull request description:
## Issue being fixed or feature implemented
Release notes for v22
## What was done?
## How Has This Been Tested?
## Breaking Changes
## Checklist:
_Go over all the following points, and put an `x` in all the boxes that apply._
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e tests
- [ ] I have made corresponding changes to the documentation
- [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
Top commit has no ACKs.
Tree-SHA512: b1fca9297814ab3497cc87512eb2a66daff22a17802c6cd87ef9af75c48fbecda8963c332191c3e3e7abdf495817da3e505b12baa646e97d388cb1aee74a67a7
17 KiB
Dash Core version v22.0.0
This is a new major version release, bringing new features, various bugfixes and other improvements.
This release is mandatory for all nodes, as it includes a hard fork.
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).
Downgrade warning
Downgrade to a version < v22.0.0
Downgrading to a version older than v22.0.0 may not be supported, and will likely require a reindex.
Release Notes
Notable Changes
- Asset Unlock Transactions (Platform Transfer)
- Introduces a new fork,
withdrawals
, that changes consensus rules. - Validation Logic Update:
- Allows using all 24 active quorums and the most recent inactive quorum.
- Previous versions may refuse withdrawals with
bad-assetunlock-not-active-quorum
even if the quorum is active.
- Withdrawal Limits Increased:
- Flat 2000 Dash per 576 latest blocks. The previous limit was 1000 Dash.
- Introduces a new fork,
- Increased Minimum Protocol Version
- The minimum protocol version has been increased to 70216.
- Masternode minimum protocol version has increased to 70235.
P2P and Network Changes
-
Improved Onion Connectivity
- Nodes with onion connectivity will attempt to maintain at least two outbound onion connections and will protect these connections from eviction.
- Benefit: Ensures nodes capable of accessing the onion network maintain a few onion connections, allowing network messages to propagate even if non-onion IPv4 traffic is blocked.
- Security Enhancement: Enables P2P encryption for these peers.
-
DSQ Message Broadcast Update
- Starting in protocol version 70234, DSQ messages are broadcast using the inventory system instead of relaying to all connected peers.
- Benefit: Reduces bandwidth needs for all nodes, especially noticeable on highly connected masternodes.
-
Compressed Block Headers Request Limit
- Starting in protocol version 70235, the maximum number of compressed block headers that can be requested at once has been increased from 2000 to 8000.
- Applies to: Compressed block headers only.
- Benefit: Potential for improved header sync performance.
-
Multi-Network Connectivity Enhancement
- Nodes with multiple reachable networks will actively try to maintain at least one outbound connection to each network.
- Benefits:
- Improves resistance to eclipse attacks.
- Enhances network-level resistance to partition attacks.
- User Impact: Users no longer need to perform active measures to ensure connections to multiple enabled networks.
-
BIP324 Encrypted Communication (Experimental)
- Dash Core now experimentally implements BIP324, introducing encrypted communication for P2P network traffic.
- Opt-In Adoption
- Enable Encryption: Users can opt-in to use BIP324 by adding
v2transport=1
to their Dash Core configuration. - Default Behavior: Encryption is disabled by default as this is currently experimental.
- Enable Encryption: Users can opt-in to use BIP324 by adding
- Benefits
- Enhanced Privacy: Encrypts P2P messages for v2 connections, reducing the risk of traffic analysis and eavesdropping.
- Improved Security: Protects against certain types of network attacks by ensuring that communication between nodes is confidential and tamper-proof.
- Limitations and Considerations
- Compatibility: Encrypted connections may only be established between nodes that have BIP324 enabled. Nodes without encryption support will continue to communicate over unencrypted channels.
- Status and Future Plans
- Experimental Phase: This feature is currently in an experimental phase. Users are encouraged to test and provide feedback to ensure stability.
- Future Development: BIP324 will likely be enabled by default in the next minor version, v22.1.0.
Compatibility
-
Dark Mode Appearance
- Dash Core changes appearance when macOS "dark mode" is activated.
-
glibc Requirement
- The minimum required glibc to run Dash Core is now 2.31. This means that RHEL 8 and Ubuntu 18.04 (Bionic) are no longer supported.
New RPCs
-
quorum platformsign
- A new subcommand has been introduced, offering a structured way to perform platform-related quorum signing operations.
-
coinjoinsalt
- Allows manipulation of a CoinJoin salt stored in a wallet.
coinjoinsalt get
: Fetches an existing salt.coinjoinsalt set
: Allows setting a custom salt.coinjoinsalt generate
: Sets a random hash as the new salt.
- Allows manipulation of a CoinJoin salt stored in a wallet.
Updated RPCs
-
getpeerinfo
Changesgetpeerinfo
no longer returns the following fields:addnode
andwhitelisted
, which were previously deprecated in v21.- Instead of
addnode
, theconnection_type
field returnsmanual
. - Instead of
whitelisted
, thepermissions
field indicates if the peer has special privileges.
- Instead of
-
getblockfrompeer
Parameter Renaming- The named argument
block_hash
has been renamed toblockhash
to align with the rest of the codebase. - Breaking Change: If using named parameters, make sure to update them accordingly.
- The named argument
-
coinjoin stop
Error Handlingcoinjoin stop
will now return an error if there is no CoinJoin mixing session to stop.
-
getcoinjoininfo
Adjustmentsgetcoinjoininfo
will no longer reportkeys_left
and will not incorrectly warn about keypool depletion with descriptor wallets.
-
creditOutputs
Format ChangecreditOutputs
entries in various RPCs that output transactions as JSON are now shown as objects instead of strings.
-
quorum dkgsimerror
Argument Updatequorum dkgsimerror
will no longer accept a decimal value between 0 and 1 for therate
argument.- It will now expect an integer between 0 to 100.
-
Deprecated
protx *_hpmn
RPC Endpoints- Deprecated
protx *_hpmn
RPC entry points have been dropped in favor ofprotx *_evo
. - Removed Endpoints:
protx register_fund_hpmn
protx register_hpmn
protx register_prepare_hpmn
protx update_service_hpmn
- Deprecated
-
governance
Descriptor Wallet Support- The
governance votemany
andgovernance votealias
RPC commands now support descriptor-based wallets.
- The
-
createwallet
Behavior for Descriptor Wallets- When creating descriptor wallets,
createwallet
now requires explicitly settingload_on_startup
.
- When creating descriptor wallets,
Command-line Options
Changes in Existing Command-line Options
-
-walletnotify=<cmd>
Enhancements- Introduces new format options
%h
and%b
.%b
: Replaced by the hash of the block including the transaction (set to'unconfirmed'
if the transaction is not included).%h
: Replaced by the block height (-1 if not included).
- Introduces new format options
-
-maxuploadtarget
Format Update- Now allows human-readable byte units
[k|K|m|M|g|G|t|T]
.- Example:
-maxuploadtarget=500g
. - Constraints: No whitespace,
+
,-
, or fractions allowed. - Default:
M
if no suffix is provided.
- Example:
- Now allows human-readable byte units
Devnet Breaking Changes
-
Hardfork Activation Changes
BRR
(realloc
),DIP0020
,DIP0024
,V19
,V20
, andMN_R
hardforks are now activated at block 2 instead of block 300 on devnets.- Implications:
- Breaking change.
- Inability to sync on devnets created with earlier Dash Core versions and vice versa.
-
LLMQ Type Enhancement
- LLMQ_50_60 is enabled for Devnet networks.
- Necessary for testing on a large Devnet.
Tests
- Regtest Network Softfork Activation Heights
- For the
regtest
network, the activation heights of several softforks have been set to block height 1. - Customization: Can be changed using the runtime setting
-testactivationheight=name@height
. - (dash#6214)
- For the
Statistics
New Features
-
Statsd Client Enhancements
- Supports queueing and batching messages.
- Benefits:
- Reduces the number of packets.
- Lowers the rate at which messages are sent to the Statsd daemon.
- Benefits:
- Supports queueing and batching messages.
-
Batch Configuration Options
- Maximum Batch Size:
- Adjustable using
-statsbatchsize
(in bytes). - Default: 1KiB.
- Adjustable using
- Batch Send Frequency:
- Adjustable using
-statsduration
(in milliseconds). - Default: 1 second.
- Note:
-statsduration
does not affect-statsperiod
, which dictates how frequently some stats are collected.
- Adjustable using
- Maximum Batch Size:
Deprecations
-
Deprecation of
-platform-user
-platform-user
is deprecated in favor of the whitelist feature.- In releases 22.x of Dash Core, it has been renamed to
-deprecated-platform-user
. - It will be removed in version 23.x.
-
-statsenabled
Deprecation- Now implied by the presence of
-statshost
. - It will be removed in version 23.x.
- Now implied by the presence of
-
-statshostname
Replacement- Deprecated and replaced with
-statssuffix
for better representation of the argument's purpose. - Behavior: Behave identically to each other.
- It will be removed in version 23.x.
- Deprecated and replaced with
-
-statsns
Replacement- Deprecated and replaced with
-statsprefix
for better representation of the argument's purpose. - Behavior:
-statsprefix
enforces the usage of a delimiter between the prefix and key. - It will be removed in version 23.x.
- Deprecated and replaced with
GUI Changes
- RPC Server Functionality Option
- A new option has been added to the "Main" tab in "Options" that allows users to enable RPC server functionality.
v22.0.0 Change log
See detailed set of changes.
Credits
Thanks to everyone who directly contributed to this release:
- AJ ONeal
- Kittywhiskers Van Gogh
- Konstantin Akimov
- Odysseas Gabrielides
- PastaPastaPasta
- UdjinM6
- Vijaydasmp
As well as everyone that submitted issues, reviewed pull requests and helped debug the release candidates.
Older releases
These releases are considered obsolete. Old release notes can be found here:
- v21.1.1 released Oct/22/2024
- v21.1.0 released Aug/8/2024
- v21.0.2 released Aug/1/2024
- v21.0.0 released Jul/25/2024
- v20.1.1 released April/3/2024
- v20.1.0 released March/5/2024
- v20.0.4 released Jan/13/2024
- v20.0.3 released December/26/2023
- v20.0.2 released December/06/2023
- v20.0.1 released November/18/2023
- v20.0.0 released November/15/2023
- v19.3.0 released July/31/2023
- v19.2.0 released June/19/2023
- v19.1.0 released May/22/2023
- v19.0.0 released Apr/14/2023
- v18.2.2 released Mar/21/2023
- v18.2.1 released Jan/17/2023
- v18.2.0 released Jan/01/2023
- v18.1.1 released January/08/2023
- v18.1.0 released October/09/2022
- v18.0.2 released October/09/2022
- v18.0.1 released August/17/2022
- v0.17.0.3 released June/07/2021
- v0.17.0.2 released May/19/2021
- v0.16.1.1 released November/17/2020
- v0.16.1.0 released November/14/2020
- v0.16.0.1 released September/30/2020
- v0.15.0.0 released Febrary/18/2020
- v0.14.0.5 released December/08/2019
- v0.14.0.4 released November/22/2019
- v0.14.0.3 released August/15/2019
- v0.14.0.2 released July/4/2019
- v0.14.0.1 released May/31/2019
- v0.14.0 released May/22/2019
- v0.13.3 released Apr/04/2019
- v0.13.2 released Mar/15/2019
- v0.13.1 released Feb/9/2019
- v0.13.0 released Jan/14/2019
- v0.12.3.4 released Dec/14/2018
- v0.12.3.3 released Sep/19/2018
- v0.12.3.2 released Jul/09/2018
- v0.12.3.1 released Jul/03/2018
- v0.12.2.3 released Jan/12/2018
- v0.12.2.2 released Dec/17/2017
- v0.12.2 released Nov/08/2017
- v0.12.1 released Feb/06/2017
- v0.12.0 released Aug/15/2015
- v0.11.2 released Mar/04/2015
- v0.11.1 released Feb/10/2015
- v0.11.0 released Jan/15/2015
- v0.10.x released Sep/25/2014
- v0.9.x released Mar/13/2014