From e770c251f155959bba213963ddbabf9025dbedbd Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 29 Oct 2025 08:57:34 -0500 Subject: [PATCH 01/15] docs: add v23.0.0 release notes and archive v22.1.3 --- doc/release-notes.md | 240 ++++++++++++++++-- .../dash/release-notes-22.1.3.md | 127 +++++++++ 2 files changed, 345 insertions(+), 22 deletions(-) create mode 100644 doc/release-notes/dash/release-notes-22.1.3.md diff --git a/doc/release-notes.md b/doc/release-notes.md index 77795582bc0f4..ac81f87f3ef18 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,7 +1,8 @@ -# Dash Core version v22.1.3 +# Dash Core version v23.0.0 -This is a new minor version release, bringing various bugfixes and performance improvements. -This release is **optional** for all nodes, although recommended. +This is a new major version release, bringing new features, various bugfixes and other improvements. +This release is **mandatory** for all masternodes. +This release is optional but recommended for all other nodes. Please report bugs using the issue tracker at GitHub: @@ -19,34 +20,229 @@ dashd/dash-qt (on Linux). ## Downgrade warning -### Downgrade to a version < v22.0.0 +### Downgrade to a version < v23.0.0 -Downgrading to a version older than v22.0.0 may not be supported, and will +Downgrading to a version older than v23.0.0 may not be supported, and will likely require a reindex. -# Release Notes +# Notable changes -Bug Fixes ----------- +EvoDB migration +--------------- + +This release introduces a new internal format for masternode state data to support extended addresses and make future updates of this data seamless. Nodes will automatically migrate to the new format. Downgrading to an earlier version would require a full reindex. #6813 -- Fixed crash when processing invalid masternode payment destinations, replacing unsafe assertion with proper error handling (dash#6740). +Breaking Change: Block Filter Index Format Update +------------------------------------------------- -RPC and Logging Improvements ----------------------------- +The compact block filter index format has been updated to include Dash special transaction data, providing feature parity with bloom filters for SPV client support. This change is incompatible with existing blockfilter indexes. Existing blockfilter indexes will automatically be re-created with the new version. -- Fixed misleading error logs that were triggered by legitimate RPC queries for non-existent transaction data, reducing log noise and preventing false alarms (dash#6744). +- The blockfilter index now includes fields from Dash special transactions: + - ProRegTx (masternode registration) + - ProUpServTx (masternode service updates) + - ProUpRegTx (masternode operator updates) + - ProUpRevTx (masternode revocation) + - AssetLockTx (platform credit outputs) +- A versioning system has been added to detect incompatible indexes on startup +- The index version is now 2 (previously unversioned) -Performance Improvements ------------------------- +### Benefits -- Optimized versionbits calculation to avoid unnecessary computations during block operations, significantly improving performance during blockchain reorganizations (dash#6632). +- SPV clients can now detect and track Dash-specific transactions +- Feature parity between bloom filters and compact block filters +- Protection against serving incorrect filter data to light clients -Documentation Updates +Other notable changes --------------------- -- Updated translation documentation with current Transifex links and fixed typos to help contributors properly access translation resources (dash#6739). +* Dash Core will no longer permit the registration of new legacy scheme masternodes after the deployment of the v24 + fork. Existing basic scheme masternodes will also be prohibited from downgrading to the legacy scheme after the + deployment is active. (#6729) +* To help prevent fingerprinting transactions created by the Dash Core wallet, change output + amounts are now randomized. (#6685) +* Dash Core will no longer migrate EvoDb databases generated in v19 and v20, users upgrading + from these versions are recommended to run `-reindex` to rebuild all databases and indexes. (#6579) + +Updated REST APIs +----------------- + +- The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use + a query parameter instead of path parameter to specify the result count. The + count parameter is now optional, and defaults to 5 for both endpoints. The old + endpoints are still functional, and have no documented behaviour change. (#24098) + + For `/headers`, use + `GET /rest/headers/.?count=` instead of + `GET /rest/headers//.` (deprecated) + + For `/blockfilterheaders/`, use + `GET /rest/blockfilterheaders//.?count=` instead of + `GET /rest/blockfilterheaders///.` (deprecated) + +P2P and network changes +----------------------- + +- `MIN_PEER_PROTO_VERSION` has been bumped to `70221`. (#6877) +- `cycleHash` field in `isdlock` message will now represent a DKG cycle starting block of the signing quorum instead of a DKG cycle starting block corresponding to the current chain height. While this is fully backwards compatible with older versions of Dash Core, other implementations might not be expecting this, so the P2P protocol version was bumped to 70237. (#6608) +- UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy` to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`). UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with the format `-zmqpubrawtx=unix:/path/to/file`. (#6634) + +Updated RPCs +------------ + +* The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`, + `decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key), + `protx diff`, `protx listdiff` and has been replaced with the key `addresses`. + * The deprecated key is still available without additional runtime arguments but is liable to be removed in future versions + of Dash Core. (#6811) + +* `protx revoke` will now use the legacy scheme version for legacy masternodes instead of the defaulting to the + highest `ProUpRevTx` version. (#6729) + +* The RPCs `protx register_legacy`, `protx register_fund_legacy`, `protx register_prepare_legacy` and + `protx update_registrar_legacy` have been deprecated in Dash Core v23 and may be removed in a future version. + They can be re-enabled with the runtime argument `-deprecatedrpc=legacy_mn`. + +* The argument `legacy` in `bls generate` has been deprecated in Dash Core v23 and may be ignored in a future version. + It can be re-enabled with the runtime argument `deprecatedrpc=legacy_mn`. (#6723) + +* A new optional field `submit` has been introduced to the `protx revoke`, `protx update_registrar`, `protx update_service` RPCs. It behaves identically to `submit` in `protx register` or `protx register_fund`. (#6720) + +* The `instantsendtoaddress` RPC was deprecated in Dash Core v0.15 and is now removed. (#6686) + +* The input field `ipAndPort` has been renamed to `coreP2PAddrs`. + * `coreP2PAddrs` can now, in addition to accepting a string, accept an array of strings, subject to validation rules. + +* The key `service` has been deprecated for some RPCs (`decoderawtransaction`, `decodepsbt`, `getblock`, `getrawtransaction`, + `gettransaction`, `masternode status` (only for the `dmnState` key), `protx diff`, `protx listdiff`) and has been replaced + with the key `addresses`. + * This deprecation also extends to the functionally identical key, `address` in `masternode list` (and its alias, `masternodelist`). + * The deprecated key is still available without additional runtime arguments but is liable to be removed in future versions + of Dash Core. + * This change does not affect `masternode status` (except for the `dmnState` key) as `service` does not represent a payload + value but the external address advertised by the active masternode. (#6665) + +* The input field `platformP2PPort` has been renamed to `platformP2PAddrs`. In addition to numeric inputs (i.e. ports), + the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), + subject to validation rules. + +* The input field `platformHTTPPort` has been renamed to `platformHTTPSAddrs`. In addition to numeric inputs (i.e. ports), + the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), + subject to validation rules. + +* The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']` + and `addresses['platform_https']` respectively. + * On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort` + but does not affect `netInfo`, `protx listdiff` does not contain enough information to report on the masternode's + address and will report the changed port paired with the dummy address `255.255.255.255`. + + This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that + have upgraded to extended addresses. + +* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will continue + allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are also left blank. + * Attempting to populate any three address fields will make populating all fields mandatory. + * This does not affect nodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes) + and they will have to continue specifying `platformP2PAddrs` and `platformHTTPSAddrs` even if they wish to keep + `coreP2PAddrs` blank. + +* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will no longer + default to the core P2P port if a port is not specified in the addr:port pair. All ports must be specified explicitly. + * This does not affect nodes ineligible for extended addresses, continuing to default to the core P2P port if provided an + addr without a port. + +* `protx register{,_evo}` and `register_fund{,_evo}` will continue to allow specifying only the port number for `platformP2PAddrs` + and `platformHTTPSAddrs`, pairing it with the address from the first `coreP2PAddrs` entry. This mirrors existing behavior. + * This method of entry may not be available in future releases of Dash Core and operators are recommended to switch over to + explicitly specifying (arrays of) addr:port strings for all address fields. (#6666) + +* When reporting on extended address payloads, `platformP2PPort` and `platformHTTPPort` will read the port value from + `netInfo[PLATFORM_P2P][0]` and `netInfo[PLATFORM_HTTPS][0]` respectively as both fields are subsumed into `netInfo`. + * If `netInfo` is blank (which is allowed by ProRegTx), `platformP2PPort` and `platformHTTPPort` will report `-1` to indicate + that the port number cannot be determined. + * `protx listdiff` will not report `platformP2PPort` or `platformHTTPPort` if the legacy fields were not updated (i.e. + changes to `netInfo` will not translate into reporting). This is because `platformP2PPort` or `platformHTTPPort` have + dedicated diff flags and post-consolidation, all changes are now affected by `netInfo`'s diff flag. + + To avoid the perception of changes to fields that not serialized by extended address payloads, data from `netInfo` will + not be translated for this RPC call. (#6666) + +* `quorum rotationinfo` will now expect the third param to be a JSON array. (#6628) + +* `getislocks` will now return request `id` for each InstantSend Lock in results. (#6607) + +* `coinjoin status` is a new RPC that reports the status message of all running mix sessions. `coinjoin start` will no longer + report errors from mix sessions; users are recommended to query the status using `coinjoin status` instead. (#6594) + +* The RPCs `masternode current` and `masternode winner` were deprecated in Dash Core v0.17 and are now removed. The `getpoolinfo` RPC was deprecated in Dash Core v0.15 and is now removed. (#6567) + +* The `-deprecatedrpc=addresses` configuration option has been removed. RPCs `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, `/rest/block` no longer return the `addresses` and `reqSigs` fields, which were previously deprecated in 21.0. (#22650) + +* The `getblock` RPC command now supports verbosity level 3 containing transaction inputs `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain this information too. Every `vin` field will contain an additional `prevout` subfield. (#22918) + +* A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#23093) + +* The return value of the `pruneblockchain` method had an off-by-one bug and now returns the height of the last pruned block as documented. (#24629) + +* The `listdescriptors` RPC now includes an optional coinjoin field to identify CoinJoin descriptors. (#6835) + +Updated settings +---------------- + +- BIP157 compact block filters are now automatically enabled for masternodes. This improves privacy for light clients + connecting to masternodes and enables better support for pruned nodes. When a node is configured as a masternode + (via `-masternodeblsprivkey`), both `-peerblockfilters` and `-blockfilterindex=basic` are automatically enabled. + Note that this feature requires approximately 1GB+ of additional disk space for the block filter index. + Regular nodes keep the previous defaults (disabled). Masternodes can still explicitly disable these features + if needed by setting `-peerblockfilters=0` or `-blockfilterindex=0` (#6711). + +- Setting `-maxconnections=0` will now disable `-dnsseed` and `-listen` (users may still set them to override) (#6649). + +- Ports specified in `-port` and `-rpcport` options are now validated at startup. Values that previously worked and were considered valid can now result in errors. (#6634) + +Statistics +---------- + +- IPv6 hosts are now supported by the StatsD client. +- `-statshost` now accepts URLs to allow specifying the protocol, host and port in one argument. +- Specifying invalid values will no longer result in silent disablement of the StatsD client and will now cause errors at startup. (#6837) + +- The arguments `-statsenabled`, `-statsns`, `-statshostname` have been removed. They were previously deprecated in v22.0 and will no longer be recognized on runtime. (#6505) + +Build System +------------ + +GCC 11.1 or later, or Clang 16.0 or later, are now required to compile Dash Core. (#6389) + +Command-line Options +-------------------- + +### Changes in Existing Command-line Options + +- `-platform-user` removed in v23 (deprecated in v22 and never used by platform). (#6482) + +Wallet +------ + +- Wallet passphrases and mnemonic passphrases may now contain null characters. (#6780 #6792) + +- `receivedby` RPCs now include coinbase transactions. Previously, the following wallet RPCs excluded coinbase transactions: `getreceivedbyaddress`, `getreceivedbylabel`, `listreceivedbyaddress`, `listreceivedbylabel`. The previous behaviour can be restored using `-deprecatedrpc=exclude_coinbase` (may be removed in a future release). A new option `include_immature_coinbase` (default=`false`) determines whether to account for immature coinbase transactions. (#6601) + +### Mobile CoinJoin Compatibility + +- Fixed an issue where CoinJoin funds mixed in Dash Android wallet were invisible when importing the mnemonic into Dash Core. Descriptor Wallets now include an additional default descriptor for mobile CoinJoin funds, ensuring seamless wallet migration and complete fund visibility across different Dash wallet implementations. +- This is a breaking change that increases the default number of descriptors from 2 to 3 on mainnet (internal, external, mobile CoinJoin) for newly created descriptor wallets only - existing wallets are unaffected. (#6835) + +GUI changes +----------- + +- Added governance proposal voting functionality to the Qt interface. Users with masternode voting keys can now vote on governance proposals directly from the governance tab via right-click context menu. Added masternode count display to governance tab showing how many masternodes the wallet can vote with. (#6690) +- Added a menu item to restore a wallet from a backup file. (#6648) + +RPC Wallet +---------- -# v22.1.3 Change log +- `unloadwallet` now fails if a rescan is in progress. (#6759) +- `gettransaction`, `listtransactions`, `listsinceblock` now return the `abandoned` field for all transactions. (#25158) See detailed [set of changes][set-of-changes]. @@ -54,9 +250,9 @@ See detailed [set of changes][set-of-changes]. Thanks to everyone who directly contributed to this release: -- Jorge Maldonado Ventura -- Konstantin Akimov -- PastaPastaPasta +- +- +- As well as everyone that submitted issues, reviewed pull requests and helped debug the release candidates. @@ -122,4 +318,4 @@ These releases are considered obsolete. Old release notes can be found here: - [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 -[set-of-changes]: https://github.com/dashpay/dash/compare/v22.1.2...dashpay:v22.1.3 \ No newline at end of file +[set-of-changes]: https://github.com/dashpay/dash/compare/v22.1.3...dashpay:v23.0.0 \ No newline at end of file diff --git a/doc/release-notes/dash/release-notes-22.1.3.md b/doc/release-notes/dash/release-notes-22.1.3.md new file mode 100644 index 0000000000000..caf88cb0e8dca --- /dev/null +++ b/doc/release-notes/dash/release-notes-22.1.3.md @@ -0,0 +1,127 @@ +# Dash Core version v22.1.3 + +This is a new minor version release, bringing various bugfixes and performance improvements. +This release is **optional** for all nodes, although recommended. + +Please report bugs using the issue tracker at GitHub: + + + + +# 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 + +Bug Fixes +---------- + +- Fixed crash when processing invalid masternode payment destinations, replacing unsafe assertion with proper error handling (dash#6740). + +RPC and Logging Improvements +---------------------------- + +- Fixed misleading error logs that were triggered by legitimate RPC queries for non-existent transaction data, reducing log noise and preventing false alarms (dash#6744). + +Performance Improvements +------------------------ + +- Optimized versionbits calculation to avoid unnecessary computations during block operations, significantly improving performance during blockchain reorganizations (dash#6632). + +Documentation Updates +--------------------- + +- Updated translation documentation with current Transifex links and fixed typos to help contributors properly access translation resources (dash#6739). + +# v22.1.3 Change log + +See detailed [set of changes][set-of-changes]. + +# Credits + +Thanks to everyone who directly contributed to this release: + +- Jorge Maldonado Ventura +- Konstantin Akimov +- PastaPastaPasta + +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: + +- [v22.1.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.2.md) released Apr/15/2025 +- [v22.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.1.md) released Feb/17/2025 +- [v22.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.0.md) released Feb/10/2025 +- [v22.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.0.0.md) released Dec/12/2024 +- [v21.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.1.md) released Oct/22/2024 +- [v21.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.0.md) released Aug/8/2024 +- [v21.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.2.md) released Aug/1/2024 +- [v21.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.0.md) released Jul/25/2024 +- [v20.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.1.1.md) released April/3/2024 +- [v20.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.1.0.md) released March/5/2024 +- [v20.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.4.md) released Jan/13/2024 +- [v20.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.3.md) released December/26/2023 +- [v20.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.2.md) released December/06/2023 +- [v20.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.1.md) released November/18/2023 +- [v20.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.0.md) released November/15/2023 +- [v19.3.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.3.0.md) released July/31/2023 +- [v19.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.2.0.md) released June/19/2023 +- [v19.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.1.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 +- [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 + +[set-of-changes]: https://github.com/dashpay/dash/compare/v22.1.2...dashpay:v22.1.3 + + From 548a38a674f38c809fa60360d0d04d5fab88f375 Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 29 Oct 2025 08:58:31 -0500 Subject: [PATCH 02/15] docs: remove individual release notes files --- doc/release-notes-14707.md | 15 ------ doc/release-notes-22650.md | 9 ---- doc/release-notes-22918.md | 11 ---- doc/release-notes-23093.md | 8 --- doc/release-notes-24098.md | 20 -------- doc/release-notes-24629.md | 7 --- doc/release-notes-25158.md | 6 --- doc/release-notes-26618.md | 4 -- doc/release-notes-27068.md | 7 --- doc/release-notes-6389.md | 4 -- doc/release-notes-6482.md | 7 --- doc/release-notes-6505.md | 5 -- doc/release-notes-6567.md | 6 --- doc/release-notes-6579.md | 5 -- doc/release-notes-6594.md | 7 --- doc/release-notes-6607.md | 4 -- doc/release-notes-6608.md | 4 -- doc/release-notes-6628.md | 4 -- doc/release-notes-6634.md | 12 ----- doc/release-notes-6648.md | 4 -- doc/release-notes-6649.md | 5 -- doc/release-notes-6665.md | 14 ----- doc/release-notes-6666.md | 65 ------------------------ doc/release-notes-6685.md | 5 -- doc/release-notes-6686.md | 4 -- doc/release-notes-6690.md | 5 -- doc/release-notes-6711.md | 9 ---- doc/release-notes-6720.md | 4 -- doc/release-notes-6723.md | 9 ---- doc/release-notes-6729.md | 12 ----- doc/release-notes-6811.md | 8 --- doc/release-notes-6813.md | 4 -- doc/release-notes-6825.md | 19 ------- doc/release-notes-6835.md | 21 -------- doc/release-notes-6837.md | 17 ------- doc/release-notes-6877.md | 4 -- doc/release-notes/release-notes-24408.md | 5 -- 37 files changed, 359 deletions(-) delete mode 100644 doc/release-notes-14707.md delete mode 100644 doc/release-notes-22650.md delete mode 100644 doc/release-notes-22918.md delete mode 100644 doc/release-notes-23093.md delete mode 100644 doc/release-notes-24098.md delete mode 100644 doc/release-notes-24629.md delete mode 100644 doc/release-notes-25158.md delete mode 100644 doc/release-notes-26618.md delete mode 100644 doc/release-notes-27068.md delete mode 100644 doc/release-notes-6389.md delete mode 100644 doc/release-notes-6482.md delete mode 100644 doc/release-notes-6505.md delete mode 100644 doc/release-notes-6567.md delete mode 100644 doc/release-notes-6579.md delete mode 100644 doc/release-notes-6594.md delete mode 100644 doc/release-notes-6607.md delete mode 100644 doc/release-notes-6608.md delete mode 100644 doc/release-notes-6628.md delete mode 100644 doc/release-notes-6634.md delete mode 100644 doc/release-notes-6648.md delete mode 100644 doc/release-notes-6649.md delete mode 100644 doc/release-notes-6665.md delete mode 100644 doc/release-notes-6666.md delete mode 100644 doc/release-notes-6685.md delete mode 100644 doc/release-notes-6686.md delete mode 100644 doc/release-notes-6690.md delete mode 100644 doc/release-notes-6711.md delete mode 100644 doc/release-notes-6720.md delete mode 100644 doc/release-notes-6723.md delete mode 100644 doc/release-notes-6729.md delete mode 100644 doc/release-notes-6811.md delete mode 100644 doc/release-notes-6813.md delete mode 100644 doc/release-notes-6825.md delete mode 100644 doc/release-notes-6835.md delete mode 100644 doc/release-notes-6837.md delete mode 100644 doc/release-notes-6877.md delete mode 100644 doc/release-notes/release-notes-24408.md diff --git a/doc/release-notes-14707.md b/doc/release-notes-14707.md deleted file mode 100644 index 16879a77816fa..0000000000000 --- a/doc/release-notes-14707.md +++ /dev/null @@ -1,15 +0,0 @@ -Wallet ------- - -- `receivedby` RPCs now include coinbase transactions. Previously, the - following wallet RPCs excluded coinbase transactions: `getreceivedbyaddress`, - `getreceivedbylabel`, `listreceivedbyaddress`, `listreceivedbylabel`. This - release changes this behaviour and returns results accounting for received - coins from coinbase outputs. The previous behaviour can be restored using the - configuration `-deprecatedrpc=exclude_coinbase`, but may be removed in a - future release. (#6601) - -- A new option in the same `receivedby` RPCs, `include_immature_coinbase` - (default=`false`), determines whether to account for immature coinbase - transactions. Immature coinbase transactions are coinbase transactions that - have 100 or fewer confirmations, and are not spendable. (#6601) diff --git a/doc/release-notes-22650.md b/doc/release-notes-22650.md deleted file mode 100644 index 5c5e6e1032ad1..0000000000000 --- a/doc/release-notes-22650.md +++ /dev/null @@ -1,9 +0,0 @@ -Updated RPCs ------------- - -- The `-deprecatedrpc=addresses` configuration option has been removed. RPCs - `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, - `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, - `/rest/block` no longer return the `addresses` and `reqSigs` fields, which - were previously deprecated in 21.0. (#6569) - diff --git a/doc/release-notes-22918.md b/doc/release-notes-22918.md deleted file mode 100644 index 8f5a7c37ce07c..0000000000000 --- a/doc/release-notes-22918.md +++ /dev/null @@ -1,11 +0,0 @@ -## Updated RPCs - -- The `getblock` RPC command now supports verbosity level 3 containing transaction inputs - `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain - this information too. Every `vin` field will contain an additional `prevout` subfield - describing the spent output. `prevout` contains the following keys: - - `generated` - true if the spent coins was a coinbase. - - `height` - - `value` - - `scriptPubKey` - diff --git a/doc/release-notes-23093.md b/doc/release-notes-23093.md deleted file mode 100644 index ce75de56d263c..0000000000000 --- a/doc/release-notes-23093.md +++ /dev/null @@ -1,8 +0,0 @@ -Notable changes -=============== - -Updated RPCs ------------- - -- a new RPC `newkeypool` has been added, which will flush (entirely -clear and refill) the keypool. diff --git a/doc/release-notes-24098.md b/doc/release-notes-24098.md deleted file mode 100644 index bc74ef6558789..0000000000000 --- a/doc/release-notes-24098.md +++ /dev/null @@ -1,20 +0,0 @@ -Notable changes -=============== - -Updated REST APIs ------------------ - -- The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use - a query parameter instead of path parameter to specify the result count. The - count parameter is now optional, and defaults to 5 for both endpoints. The old - endpoints are still functional, and have no documented behaviour change. - - For `/headers`, use - `GET /rest/headers/.?count=` - instead of - `GET /rest/headers//.` (deprecated) - - For `/blockfilterheaders/`, use - `GET /rest/blockfilterheaders//.?count=` - instead of - `GET /rest/blockfilterheaders///.` (deprecated) diff --git a/doc/release-notes-24629.md b/doc/release-notes-24629.md deleted file mode 100644 index 36ccda440586c..0000000000000 --- a/doc/release-notes-24629.md +++ /dev/null @@ -1,7 +0,0 @@ -Updated RPCs ------------- - -- The return value of the `pruneblockchain` method had an off-by-one bug, - returning the height of the block *after* the most recent pruned. This has - been corrected, and it now returns the height of the last pruned block as - documented. diff --git a/doc/release-notes-25158.md b/doc/release-notes-25158.md deleted file mode 100644 index ce8ab53ddd835..0000000000000 --- a/doc/release-notes-25158.md +++ /dev/null @@ -1,6 +0,0 @@ -RPC Wallet ----------- - -- The `gettransaction`, `listtransactions`, `listsinceblock` RPCs now return - the `abandoned` field for all transactions. Previously, the "abandoned" field - was only returned for sent transactions. (#25158) \ No newline at end of file diff --git a/doc/release-notes-26618.md b/doc/release-notes-26618.md deleted file mode 100644 index 81047a56a6bac..0000000000000 --- a/doc/release-notes-26618.md +++ /dev/null @@ -1,4 +0,0 @@ -RPC Wallet ----------- - -- RPC `unloadwallet` now fails if a rescan is in progress. (#6759) diff --git a/doc/release-notes-27068.md b/doc/release-notes-27068.md deleted file mode 100644 index d393c235609c3..0000000000000 --- a/doc/release-notes-27068.md +++ /dev/null @@ -1,7 +0,0 @@ -Wallet ------- - -- Wallet passphrases may now contain null characters. - Mnemonic passphrases may now contain null characters. - Prior to this change, only characters up to the first - null character were recognized and accepted. (#6780 #6792) diff --git a/doc/release-notes-6389.md b/doc/release-notes-6389.md deleted file mode 100644 index feeae0fe82419..0000000000000 --- a/doc/release-notes-6389.md +++ /dev/null @@ -1,4 +0,0 @@ -Build ------ - -GCC 11.1 or later, or Clang 16.0 or later, are now required to compile Dash Core. diff --git a/doc/release-notes-6482.md b/doc/release-notes-6482.md deleted file mode 100644 index d44e14a2a3658..0000000000000 --- a/doc/release-notes-6482.md +++ /dev/null @@ -1,7 +0,0 @@ -## Command-line Options - -### Changes in Existing Command-line Options - -- **`-platform-user`** - - Removed in v23, since deprecated in v22 and has never been used by platform - diff --git a/doc/release-notes-6505.md b/doc/release-notes-6505.md deleted file mode 100644 index 0c5c69675e836..0000000000000 --- a/doc/release-notes-6505.md +++ /dev/null @@ -1,5 +0,0 @@ -Statistics ------------ - -- The arguments `-statsenabled`, `-statsns`, `-statshostname` have been removed. They were - previously deprecated in v22.0 and will no longer be recognized on runtime. diff --git a/doc/release-notes-6567.md b/doc/release-notes-6567.md deleted file mode 100644 index c068e8c1c376c..0000000000000 --- a/doc/release-notes-6567.md +++ /dev/null @@ -1,6 +0,0 @@ -Updated RPCs ------------- - -* The RPCs `masternode current` and `masternode winner` were deprecated in Dash Core - v0.17 and are now removed. -* The `getpoolinfo` RPC was deprecated in Dash Core v0.15 and is now removed. diff --git a/doc/release-notes-6579.md b/doc/release-notes-6579.md deleted file mode 100644 index 2010b206a4689..0000000000000 --- a/doc/release-notes-6579.md +++ /dev/null @@ -1,5 +0,0 @@ -Notable Changes ---------------- - -* Dash Core will no longer migrate EvoDb databases generated in v19 and v20, users upgrading - from these versions are recommended to run `-reindex` to rebuild all databases and indexes. diff --git a/doc/release-notes-6594.md b/doc/release-notes-6594.md deleted file mode 100644 index 2f28971807229..0000000000000 --- a/doc/release-notes-6594.md +++ /dev/null @@ -1,7 +0,0 @@ -Updated RPCs ------------- - -* `coinjoin status` is a new RPC that reports the status message of all running mix - sessions. -* `coinjoin start` will no longer report errors from mix sessions, users are recommended - to query the status of mix sessions using `coinjoin status` instead. diff --git a/doc/release-notes-6607.md b/doc/release-notes-6607.md deleted file mode 100644 index 1d73cfafe42ff..0000000000000 --- a/doc/release-notes-6607.md +++ /dev/null @@ -1,4 +0,0 @@ -Updated RPCs ------------- - -* `getislocks` will now return request `id` for each InstantSend Lock in results diff --git a/doc/release-notes-6608.md b/doc/release-notes-6608.md deleted file mode 100644 index ecf8f4d7f438f..0000000000000 --- a/doc/release-notes-6608.md +++ /dev/null @@ -1,4 +0,0 @@ -P2P Changes ------------ - -* `cycleHash` field in `isdlock` message will now represent a DKG cycle starting block of the signing quorum instead of a DKG cycle starting block corresponding to the current chain height. While this is fully backwards compatible with older versions of Dash Core, other implementations might not be expecting this, so the P2P protocol version was bumped to 70237. diff --git a/doc/release-notes-6628.md b/doc/release-notes-6628.md deleted file mode 100644 index 6ac511a8e638a..0000000000000 --- a/doc/release-notes-6628.md +++ /dev/null @@ -1,4 +0,0 @@ -Updated RPCs ------------- - -* `quorum rotationinfo` will now expect the third param to be a JSON array diff --git a/doc/release-notes-6634.md b/doc/release-notes-6634.md deleted file mode 100644 index a36ca88625090..0000000000000 --- a/doc/release-notes-6634.md +++ /dev/null @@ -1,12 +0,0 @@ -Updated settings ----------------- - -- Ports specified in `-port` and `-rpcport` options are now validated at startup. Values that previously worked and were considered valid can now result in errors. - -P2P ---- - -- UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy` to the local socket path with the prefix `unix:` (e.g. - `-onion=unix:/home/me/torsocket`). - -- UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with the format `-zmqpubrawtx=unix:/path/to/file`. diff --git a/doc/release-notes-6648.md b/doc/release-notes-6648.md deleted file mode 100644 index d2a797f2a78d8..0000000000000 --- a/doc/release-notes-6648.md +++ /dev/null @@ -1,4 +0,0 @@ -GUI changes --------- - -- A new menu item to restore a wallet from a backup file has been added (#6648). \ No newline at end of file diff --git a/doc/release-notes-6649.md b/doc/release-notes-6649.md deleted file mode 100644 index 5c0f970f4edd4..0000000000000 --- a/doc/release-notes-6649.md +++ /dev/null @@ -1,5 +0,0 @@ -Updated settings ----------------- - -- Setting `-maxconnections=0` will now disable `-dnsseed` - and `-listen` (users may still set them to override) (#6649). diff --git a/doc/release-notes-6665.md b/doc/release-notes-6665.md deleted file mode 100644 index 394ec5ff3ee1a..0000000000000 --- a/doc/release-notes-6665.md +++ /dev/null @@ -1,14 +0,0 @@ -Updated RPCs ------------- - -* The input field `ipAndPort` has been renamed to `coreP2PAddrs`. - * `coreP2PAddrs` can now, in addition to accepting a string, accept an array of strings, subject to validation rules. - -* The key `service` has been deprecated for some RPCs (`decoderawtransaction`, `decodepsbt`, `getblock`, `getrawtransaction`, - `gettransaction`, `masternode status` (only for the `dmnState` key), `protx diff`, `protx listdiff`) and has been replaced - with the key `addresses`. - * This deprecation also extends to the functionally identical key, `address` in `masternode list` (and its alias, `masternodelist`) - * The deprecated key is still available without additional runtime arguments but is liable to be removed in future versions - of Dash Core. - * This change does not affect `masternode status` (except for the `dmnState` key) as `service` does not represent a payload - value but the external address advertised by the active masternode. diff --git a/doc/release-notes-6666.md b/doc/release-notes-6666.md deleted file mode 100644 index e9c3a61f5d38a..0000000000000 --- a/doc/release-notes-6666.md +++ /dev/null @@ -1,65 +0,0 @@ -Notable Changes ---------------- - -* Dash Core has added support for the ability to register multiple addr:port pairs to a masternode and for specifying - distinct addresses for platform P2P and platform HTTPS endpoints. The consensus and format changes needed to enable - this capability is referred to as "extended addresses" and is enabled by the deployment of the v24 fork, affecting - new masternode registrations and service updates to basic BLS masternodes. - * Operators must upgrade from legacy BLS scheme to basic BLS scheme before utilizing extended address capabilities - -Additional Notes ----------------- - -* While the field `service` is deprecated (see dash#6665), its effective value can be obtained by querying - `addresses['core_p2p'][0]`. - -* If the masternode is eligible for extended addresses, operators may register non-IPv4 addresses, subject to validation - and consensus rules. - -Updated RPCs ------------- - -* The input field `platformP2PPort` has been renamed to `platformP2PAddrs`. In addition to numeric inputs (i.e. ports), - the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), - subject to validation rules. - -* The input field `platformHTTPPort` has been renamed to `platformHTTPSAddrs`. In addition to numeric inputs (i.e. ports), - the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), - subject to validation rules. - -* The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']` - and `addresses['platform_https']` respectively. - * On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort` - but does not affect `netInfo`, `protx listdiff` does not contain enough information to report on the masternode's - address and will report the changed port paired with the dummy address `255.255.255.255`. - - This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that - have upgraded to extended addresses. - -* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will continue - allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are _also_ left blank. - * Attempting to populate any three address fields will make populating all fields mandatory. - * This does not affect nodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes) - and they will have to continue specifying `platformP2PAddrs` and `platformHTTPSAddrs` even if they wish to keep - `coreP2PAddrs` blank. - -* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will no longer - default to the core P2P port if a port is not specified in the addr:port pair. All ports must be specified explicitly. - * This does not affect nodes ineligible for extended addresses, continuing to default to the core P2P port if provided an - addr without a port. - -* `protx register{,_evo}` and `register_fund{,_evo}` will continue to allow specifying only the port number for `platformP2PAddrs` - and `platformHTTPSAddrs`, pairing it with the address from the first `coreP2PAddrs` entry. This mirrors existing behavior. - * This method of entry may not be available in future releases of Dash Core and operators are recommended to switch over to - explicitly specifying (arrays of) addr:port strings for all address fields. - -* When reporting on extended address payloads, `platformP2PPort` and `platformHTTPPort` will read the port value from - `netInfo[PLATFORM_P2P][0]` and `netInfo[PLATFORM_HTTPS][0]` respectively as both fields are subsumed into `netInfo`. - * If `netInfo` is blank (which is allowed by ProRegTx), `platformP2PPort` and `platformHTTPPort` will report `-1` to indicate - that the port number cannot be determined. - * `protx listdiff` will not report `platformP2PPort` or `platformHTTPPort` if the legacy fields were not updated (i.e. - changes to `netInfo` will not translate into reporting). This is because `platformP2PPort` or `platformHTTPPort` have - dedicated diff flags and post-consolidation, all changes are now affected by `netInfo`'s diff flag. - - To avoid the perception of changes to fields that not serialized by extended address payloads, data from `netInfo` will - not be translated for this RPC call. diff --git a/doc/release-notes-6685.md b/doc/release-notes-6685.md deleted file mode 100644 index 35e6c3b788bbe..0000000000000 --- a/doc/release-notes-6685.md +++ /dev/null @@ -1,5 +0,0 @@ -Notable Changes ---------------- - -- To help prevent fingerprinting transactions created by the Dash Core wallet, change output - amounts are now randomized. diff --git a/doc/release-notes-6686.md b/doc/release-notes-6686.md deleted file mode 100644 index 215af31df7509..0000000000000 --- a/doc/release-notes-6686.md +++ /dev/null @@ -1,4 +0,0 @@ -Updated RPCs ------------- - -* The `instantsendtoaddress` RPC was deprecated in Dash Core v0.15 and is now removed. diff --git a/doc/release-notes-6690.md b/doc/release-notes-6690.md deleted file mode 100644 index 9d0061876f0c5..0000000000000 --- a/doc/release-notes-6690.md +++ /dev/null @@ -1,5 +0,0 @@ -GUI changes ------------ - -- Added governance proposal voting functionality to the Qt interface. Users with masternode voting keys can now vote on governance proposals directly from the governance tab via right-click context menu (#6690). -- Added masternode count display to governance tab showing how many masternodes the wallet can vote with (#6690). \ No newline at end of file diff --git a/doc/release-notes-6711.md b/doc/release-notes-6711.md deleted file mode 100644 index b25545e2a84d6..0000000000000 --- a/doc/release-notes-6711.md +++ /dev/null @@ -1,9 +0,0 @@ -Updated settings ----------------- - -- BIP157 compact block filters are now automatically enabled for masternodes. This improves privacy for light clients - connecting to masternodes and enables better support for pruned nodes. When a node is configured as a masternode - (via `-masternodeblsprivkey`), both `-peerblockfilters` and `-blockfilterindex=basic` are automatically enabled. - Note that this feature requires approximately 1GB+ of additional disk space for the block filter index. - Regular nodes keep the previous defaults (disabled). Masternodes can still explicitly disable these features - if needed by setting `-peerblockfilters=0` or `-blockfilterindex=0` (#6711). diff --git a/doc/release-notes-6720.md b/doc/release-notes-6720.md deleted file mode 100644 index 69936aeb26ca5..0000000000000 --- a/doc/release-notes-6720.md +++ /dev/null @@ -1,4 +0,0 @@ -Updated RPCs ------------- - -* A new optional field `submit` has been introduced to the `protx revoke`, `protx update_registrar`, `protx update_service` RPCs. It behaves identically to `submit` in `protx register` or `protx register_fund`. diff --git a/doc/release-notes-6723.md b/doc/release-notes-6723.md deleted file mode 100644 index 4d9f986e0ecf9..0000000000000 --- a/doc/release-notes-6723.md +++ /dev/null @@ -1,9 +0,0 @@ -Updated RPCs ------------- - -* The RPCs `protx register_legacy`, `protx register_fund_legacy`, `protx register_prepare_legacy` and - `protx update_registrar_legacy` have been deprecated in Dash Core v23 and may be removed in a future version - They can be re-enabled with the runtime argument `-deprecatedrpc=legacy_mn`. - -* The argument `legacy` in `bls generate` has been deprecated in Dash Core v23 and may be ignored in a future version. - It can be re-enabled with the runtime argument `deprecatedrpc=legacy_mn`. diff --git a/doc/release-notes-6729.md b/doc/release-notes-6729.md deleted file mode 100644 index 15f7bccbcea23..0000000000000 --- a/doc/release-notes-6729.md +++ /dev/null @@ -1,12 +0,0 @@ -Notable Changes ---------------- - -* Dash Core will no longer permit the registration of new legacy scheme masternodes after the deployment of the v24 - fork. Existing basic scheme masternodes will also be prohibited from downgrading to the legacy scheme after the - deployment is active. - -Updated RPCs ----------------- - -* `protx revoke` will now use the legacy scheme version for legacy masternodes instead of the defaulting to the - highest `ProUpRevTx` version. diff --git a/doc/release-notes-6811.md b/doc/release-notes-6811.md deleted file mode 100644 index 0bce7f5b9d95d..0000000000000 --- a/doc/release-notes-6811.md +++ /dev/null @@ -1,8 +0,0 @@ -Updated RPCs ------------- - -* The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`, - `decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key), - `protx diff`, `protx listdiff` and has been replaced with the key `addresses`. - * The deprecated key is still available without additional runtime arguments but is liable to be removed in future versions - of Dash Core. diff --git a/doc/release-notes-6813.md b/doc/release-notes-6813.md deleted file mode 100644 index c8697813e73de..0000000000000 --- a/doc/release-notes-6813.md +++ /dev/null @@ -1,4 +0,0 @@ -EvoDB migration ---------------- - -This release introduces a new internal format for masternode state data to support extended addresses and make future updates of this data seamless. Nodes will automatically migrate to the new format. Downgrading to an earlier version would require a full reindex. #6813 diff --git a/doc/release-notes-6825.md b/doc/release-notes-6825.md deleted file mode 100644 index a21eb6cc35faa..0000000000000 --- a/doc/release-notes-6825.md +++ /dev/null @@ -1,19 +0,0 @@ -# Breaking Change: Block Filter Index Format Update - -## Summary -The compact block filter index format has been updated to include Dash special transaction data, providing feature parity with bloom filters for SPV client support. This change is **incompatible** with existing blockfilter indexes. Existing blockfilter indexes will automatically be re-created with the new version. - -## Technical Details -- The blockfilter index now includes fields from Dash special transactions: - - ProRegTx (masternode registration) - - ProUpServTx (masternode service updates) - - ProUpRegTx (masternode operator updates) - - ProUpRevTx (masternode revocation) - - AssetLockTx (platform credit outputs) -- A versioning system has been added to detect incompatible indexes on startup -- The index version is now 2 (previously unversioned) - -## Benefits -- SPV clients can now detect and track Dash-specific transactions -- Feature parity between bloom filters and compact block filters -- Protection against serving incorrect filter data to light clients diff --git a/doc/release-notes-6835.md b/doc/release-notes-6835.md deleted file mode 100644 index 294485a7570a6..0000000000000 --- a/doc/release-notes-6835.md +++ /dev/null @@ -1,21 +0,0 @@ -Mobile CoinJoin Compatibility ------------- - -- Fixed an issue where CoinJoin funds mixed in Dash Android wallet were - invisible when importing the mnemonic into Dash Core. Descriptor Wallets now - include an additional default descriptor for mobile CoinJoin funds, ensuring - seamless wallet migration and complete fund visibility across different - Dash wallet implementations. - -- This is a breaking change that increases the default number of descriptors - from 2 to 3 on mainnet (internal, external, mobile CoinJoin) for newly created - descriptor wallets only - existing wallets are unaffected. - - -Updated RPCs ------------- - -- The `listdescriptors` RPC now includes an optional coinjoin field to identify - CoinJoin descriptors. - -(#6835) diff --git a/doc/release-notes-6837.md b/doc/release-notes-6837.md deleted file mode 100644 index 757baeeb86d0e..0000000000000 --- a/doc/release-notes-6837.md +++ /dev/null @@ -1,17 +0,0 @@ -Statistics ----------- - -- IPv6 hosts are now supported by the StatsD client. - -- `-statshost` now accepts URLs to allow specifying the protocol, host and port in one argument. - -- Specifying invalid values will no longer result in silent disablement of the StatsD client and will now cause errors - at startup. - -### Deprecations - -- `-statsport` has been deprecated and ports are now specified using the new URL syntax supported by `-statshost`. - `-statsport` will be removed in a future release. - - - If both `-statsport` and `-statshost` with a URL specifying a port is supplied, the `-statsport` value will be - ignored. diff --git a/doc/release-notes-6877.md b/doc/release-notes-6877.md deleted file mode 100644 index 8e2a997cdbe25..0000000000000 --- a/doc/release-notes-6877.md +++ /dev/null @@ -1,4 +0,0 @@ -P2P and Network Changes ------------------------ - -`MIN_PEER_PROTO_VERSION` has been bumped to `70221` diff --git a/doc/release-notes/release-notes-24408.md b/doc/release-notes/release-notes-24408.md deleted file mode 100644 index 1072ec786a537..0000000000000 --- a/doc/release-notes/release-notes-24408.md +++ /dev/null @@ -1,5 +0,0 @@ -New RPCs --------- - -- A new `gettxspendingprevout` RPC has been added, which scans the mempool to find - transactions spending any of the given outpoints. (#24408) \ No newline at end of file From 2b3211a4c3c9640a71e7db125af642a7209854df Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 29 Oct 2025 09:11:28 -0500 Subject: [PATCH 03/15] docs: add link to 22.1.3 release notes --- doc/release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index ac81f87f3ef18..ab92c7ad17643 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -261,6 +261,7 @@ debug the release candidates. These releases are considered obsolete. Old release notes can be found here: +- [v22.1.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.3.md) released Jul/15/2025 - [v22.1.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.2.md) released Apr/15/2025 - [v22.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.1.md) released Feb/17/2025 - [v22.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.0.md) released Feb/10/2025 From 567771acad0a19113b31492bf9800e3b2d4d2c16 Mon Sep 17 00:00:00 2001 From: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com> Date: Mon, 3 Nov 2025 18:56:10 -0600 Subject: [PATCH 04/15] Apply suggestions from code review Co-authored-by: thephez --- doc/release-notes.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index ab92c7ad17643..9cd986e06ad5a 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -67,8 +67,8 @@ Updated REST APIs ----------------- - The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use - a query parameter instead of path parameter to specify the result count. The - count parameter is now optional, and defaults to 5 for both endpoints. The old + a query parameter instead of a path parameter to specify the result count. The + count parameter is now optional and defaults to 5 for both endpoints. The old endpoints are still functional, and have no documented behaviour change. (#24098) For `/headers`, use @@ -92,10 +92,10 @@ Updated RPCs * The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`, `decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key), `protx diff`, `protx listdiff` and has been replaced with the key `addresses`. - * The deprecated key is still available without additional runtime arguments but is liable to be removed in future versions + * The deprecated key is still available without additional runtime arguments, but is liable to be removed in future versions of Dash Core. (#6811) -* `protx revoke` will now use the legacy scheme version for legacy masternodes instead of the defaulting to the +* `protx revoke` will now use the legacy scheme version for legacy masternodes instead of defaulting to the highest `ProUpRevTx` version. (#6729) * The RPCs `protx register_legacy`, `protx register_fund_legacy`, `protx register_prepare_legacy` and @@ -116,7 +116,7 @@ Updated RPCs `gettransaction`, `masternode status` (only for the `dmnState` key), `protx diff`, `protx listdiff`) and has been replaced with the key `addresses`. * This deprecation also extends to the functionally identical key, `address` in `masternode list` (and its alias, `masternodelist`). - * The deprecated key is still available without additional runtime arguments but is liable to be removed in future versions + * The deprecated key is still available without additional runtime arguments, but is liable to be removed in future versions of Dash Core. * This change does not affect `masternode status` (except for the `dmnState` key) as `service` does not represent a payload value but the external address advertised by the active masternode. (#6665) @@ -138,7 +138,7 @@ Updated RPCs This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that have upgraded to extended addresses. -* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will continue +* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `protx register_fund{,_evo}` will continue allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are also left blank. * Attempting to populate any three address fields will make populating all fields mandatory. * This does not affect nodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes) @@ -163,12 +163,12 @@ Updated RPCs changes to `netInfo` will not translate into reporting). This is because `platformP2PPort` or `platformHTTPPort` have dedicated diff flags and post-consolidation, all changes are now affected by `netInfo`'s diff flag. - To avoid the perception of changes to fields that not serialized by extended address payloads, data from `netInfo` will + To avoid the perception of changes to fields that are not serialized by extended address payloads, data from `netInfo` will not be translated for this RPC call. (#6666) * `quorum rotationinfo` will now expect the third param to be a JSON array. (#6628) -* `getislocks` will now return request `id` for each InstantSend Lock in results. (#6607) +* `getislocks` will now return the request `id` for each InstantSend Lock in results. (#6607) * `coinjoin status` is a new RPC that reports the status message of all running mix sessions. `coinjoin start` will no longer report errors from mix sessions; users are recommended to query the status using `coinjoin status` instead. (#6594) @@ -177,7 +177,7 @@ Updated RPCs * The `-deprecatedrpc=addresses` configuration option has been removed. RPCs `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, `/rest/block` no longer return the `addresses` and `reqSigs` fields, which were previously deprecated in 21.0. (#22650) -* The `getblock` RPC command now supports verbosity level 3 containing transaction inputs `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain this information too. Every `vin` field will contain an additional `prevout` subfield. (#22918) +* The `getblock` RPC command now supports verbosity level 3, containing transaction inputs `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain this information too. Every `vin` field will contain an additional `prevout` subfield. (#22918) * A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#23093) @@ -204,7 +204,7 @@ Statistics - IPv6 hosts are now supported by the StatsD client. - `-statshost` now accepts URLs to allow specifying the protocol, host and port in one argument. -- Specifying invalid values will no longer result in silent disablement of the StatsD client and will now cause errors at startup. (#6837) +- Specifying invalid values will no longer result in the silent disablement of the StatsD client and will now cause errors at startup. (#6837) - The arguments `-statsenabled`, `-statsns`, `-statshostname` have been removed. They were previously deprecated in v22.0 and will no longer be recognized on runtime. (#6505) @@ -229,13 +229,13 @@ Wallet ### Mobile CoinJoin Compatibility -- Fixed an issue where CoinJoin funds mixed in Dash Android wallet were invisible when importing the mnemonic into Dash Core. Descriptor Wallets now include an additional default descriptor for mobile CoinJoin funds, ensuring seamless wallet migration and complete fund visibility across different Dash wallet implementations. +- Fixed an issue where CoinJoin funds mixed in the Dash Android wallet were invisible when importing the mnemonic into Dash Core. Descriptor Wallets now include an additional default descriptor for mobile CoinJoin funds, ensuring seamless wallet migration and complete fund visibility across different Dash wallet implementations. - This is a breaking change that increases the default number of descriptors from 2 to 3 on mainnet (internal, external, mobile CoinJoin) for newly created descriptor wallets only - existing wallets are unaffected. (#6835) GUI changes ----------- -- Added governance proposal voting functionality to the Qt interface. Users with masternode voting keys can now vote on governance proposals directly from the governance tab via right-click context menu. Added masternode count display to governance tab showing how many masternodes the wallet can vote with. (#6690) +- Added governance proposal voting functionality to the Qt interface. Users with masternode voting keys can now vote on governance proposals directly from the governance tab via right-click context menu. Added masternode count display to governance tab, showing how many masternodes the wallet can vote with. (#6690) - Added a menu item to restore a wallet from a backup file. (#6648) RPC Wallet From 615f5ffc3e32ed98de47d94bdecc59404c4a8637 Mon Sep 17 00:00:00 2001 From: pasta Date: Mon, 3 Nov 2025 18:58:23 -0600 Subject: [PATCH 05/15] docs: make the downgrade warning more confident --- doc/release-notes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 9cd986e06ad5a..788d36aff947c 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -22,8 +22,8 @@ dashd/dash-qt (on Linux). ### Downgrade to a version < v23.0.0 -Downgrading to a version older than v23.0.0 may not be supported, and will -likely require a reindex. +Downgrading to a version older than v23.0.0 is not supported, and will +require a reindex. # Notable changes From 6d29bc3994faf5a367a2890e4658da756f33b22d Mon Sep 17 00:00:00 2001 From: pasta Date: Mon, 3 Nov 2025 19:01:49 -0600 Subject: [PATCH 06/15] docs: revert changes deferred to v24 --- doc/release-notes-6729.md | 7 +++++++ doc/release-notes.md | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 doc/release-notes-6729.md diff --git a/doc/release-notes-6729.md b/doc/release-notes-6729.md new file mode 100644 index 0000000000000..2dad272ee94a2 --- /dev/null +++ b/doc/release-notes-6729.md @@ -0,0 +1,7 @@ +Notable Changes +--------------- + +* Dash Core will no longer permit the registration of new legacy scheme masternodes after the deployment of the v24 + fork. Existing basic scheme masternodes will also be prohibited from downgrading to the legacy scheme after the + deployment is active. + diff --git a/doc/release-notes.md b/doc/release-notes.md index 788d36aff947c..d39d6c5874c31 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -55,9 +55,6 @@ The compact block filter index format has been updated to include Dash special t Other notable changes --------------------- -* Dash Core will no longer permit the registration of new legacy scheme masternodes after the deployment of the v24 - fork. Existing basic scheme masternodes will also be prohibited from downgrading to the legacy scheme after the - deployment is active. (#6729) * To help prevent fingerprinting transactions created by the Dash Core wallet, change output amounts are now randomized. (#6685) * Dash Core will no longer migrate EvoDb databases generated in v19 and v20, users upgrading From bd636bd20b658fdecb180c521ef38a23e9e5d29b Mon Sep 17 00:00:00 2001 From: pasta Date: Mon, 3 Nov 2025 19:03:33 -0600 Subject: [PATCH 07/15] docs: add contributors --- doc/release-notes.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index d39d6c5874c31..b383d16c45ca8 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -247,9 +247,12 @@ See detailed [set of changes][set-of-changes]. Thanks to everyone who directly contributed to this release: -- -- -- +- Kittywhiskers Van Gogh +- Konstantin Akimov +- Odysseas Gabrielides +- PastaPastaPasta +- thephez +- UdjinM6 As well as everyone that submitted issues, reviewed pull requests and helped debug the release candidates. From 700c46e731fb09171e5ca043864792b8f50a3528 Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 4 Nov 2025 10:45:51 -0500 Subject: [PATCH 08/15] style: make heading style consistent --- doc/release-notes.md | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index b383d16c45ca8..d789ed9e3a603 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -8,7 +8,6 @@ Please report bugs using the issue tracker at GitHub: - # Upgrading and downgrading ## How to Upgrade @@ -27,13 +26,11 @@ require a reindex. # Notable changes -EvoDB migration ---------------- +## EvoDB migration This release introduces a new internal format for masternode state data to support extended addresses and make future updates of this data seamless. Nodes will automatically migrate to the new format. Downgrading to an earlier version would require a full reindex. #6813 -Breaking Change: Block Filter Index Format Update -------------------------------------------------- +## Breaking Change: Block Filter Index Format Update The compact block filter index format has been updated to include Dash special transaction data, providing feature parity with bloom filters for SPV client support. This change is incompatible with existing blockfilter indexes. Existing blockfilter indexes will automatically be re-created with the new version. @@ -52,16 +49,14 @@ The compact block filter index format has been updated to include Dash special t - Feature parity between bloom filters and compact block filters - Protection against serving incorrect filter data to light clients -Other notable changes ---------------------- +## Other notable changes * To help prevent fingerprinting transactions created by the Dash Core wallet, change output amounts are now randomized. (#6685) * Dash Core will no longer migrate EvoDb databases generated in v19 and v20, users upgrading from these versions are recommended to run `-reindex` to rebuild all databases and indexes. (#6579) -Updated REST APIs ------------------ +## Updated REST APIs - The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use a query parameter instead of a path parameter to specify the result count. The @@ -76,15 +71,13 @@ Updated REST APIs `GET /rest/blockfilterheaders//.?count=` instead of `GET /rest/blockfilterheaders///.` (deprecated) -P2P and network changes ------------------------ +## P2P and network changes - `MIN_PEER_PROTO_VERSION` has been bumped to `70221`. (#6877) - `cycleHash` field in `isdlock` message will now represent a DKG cycle starting block of the signing quorum instead of a DKG cycle starting block corresponding to the current chain height. While this is fully backwards compatible with older versions of Dash Core, other implementations might not be expecting this, so the P2P protocol version was bumped to 70237. (#6608) - UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy` to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`). UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with the format `-zmqpubrawtx=unix:/path/to/file`. (#6634) -Updated RPCs ------------- +## Updated RPCs * The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`, `decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key), @@ -182,8 +175,7 @@ Updated RPCs * The `listdescriptors` RPC now includes an optional coinjoin field to identify CoinJoin descriptors. (#6835) -Updated settings ----------------- +## Updated settings - BIP157 compact block filters are now automatically enabled for masternodes. This improves privacy for light clients connecting to masternodes and enables better support for pruned nodes. When a node is configured as a masternode @@ -196,8 +188,7 @@ Updated settings - Ports specified in `-port` and `-rpcport` options are now validated at startup. Values that previously worked and were considered valid can now result in errors. (#6634) -Statistics ----------- +## Statistics - IPv6 hosts are now supported by the StatsD client. - `-statshost` now accepts URLs to allow specifying the protocol, host and port in one argument. @@ -205,20 +196,17 @@ Statistics - The arguments `-statsenabled`, `-statsns`, `-statshostname` have been removed. They were previously deprecated in v22.0 and will no longer be recognized on runtime. (#6505) -Build System ------------- +## Build System GCC 11.1 or later, or Clang 16.0 or later, are now required to compile Dash Core. (#6389) -Command-line Options --------------------- +## Command-line Options ### Changes in Existing Command-line Options - `-platform-user` removed in v23 (deprecated in v22 and never used by platform). (#6482) -Wallet ------- +## Wallet - Wallet passphrases and mnemonic passphrases may now contain null characters. (#6780 #6792) @@ -229,14 +217,12 @@ Wallet - Fixed an issue where CoinJoin funds mixed in the Dash Android wallet were invisible when importing the mnemonic into Dash Core. Descriptor Wallets now include an additional default descriptor for mobile CoinJoin funds, ensuring seamless wallet migration and complete fund visibility across different Dash wallet implementations. - This is a breaking change that increases the default number of descriptors from 2 to 3 on mainnet (internal, external, mobile CoinJoin) for newly created descriptor wallets only - existing wallets are unaffected. (#6835) -GUI changes ------------ +## GUI changes - Added governance proposal voting functionality to the Qt interface. Users with masternode voting keys can now vote on governance proposals directly from the governance tab via right-click context menu. Added masternode count display to governance tab, showing how many masternodes the wallet can vote with. (#6690) - Added a menu item to restore a wallet from a backup file. (#6648) -RPC Wallet ----------- +## RPC Wallet - `unloadwallet` now fails if a rescan is in progress. (#6759) - `gettransaction`, `listtransactions`, `listsinceblock` now return the `abandoned` field for all transactions. (#25158) From c3385112e08d1c71a07059ff4ea5b692a5a99c1f Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 4 Nov 2025 10:47:42 -0500 Subject: [PATCH 09/15] docs: reorganize rpc updates to organize extended address changes --- doc/release-notes.md | 104 +++++++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 48 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index d789ed9e3a603..a47f2708c2b7d 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -79,11 +79,6 @@ The compact block filter index format has been updated to include Dash special t ## Updated RPCs -* The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`, - `decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key), - `protx diff`, `protx listdiff` and has been replaced with the key `addresses`. - * The deprecated key is still available without additional runtime arguments, but is liable to be removed in future versions - of Dash Core. (#6811) * `protx revoke` will now use the legacy scheme version for legacy masternodes instead of defaulting to the highest `ProUpRevTx` version. (#6729) @@ -99,9 +94,37 @@ The compact block filter index format has been updated to include Dash special t * The `instantsendtoaddress` RPC was deprecated in Dash Core v0.15 and is now removed. (#6686) -* The input field `ipAndPort` has been renamed to `coreP2PAddrs`. - * `coreP2PAddrs` can now, in addition to accepting a string, accept an array of strings, subject to validation rules. +* `quorum rotationinfo` will now expect the third param to be a JSON array. (#6628) + +* `getislocks` will now return the request `id` for each InstantSend Lock in results. (#6607) + +* `coinjoin status` is a new RPC that reports the status message of all running mix sessions. `coinjoin start` will no longer + report errors from mix sessions; users are recommended to query the status using `coinjoin status` instead. (#6594) + +* The RPCs `masternode current` and `masternode winner` were deprecated in Dash Core v0.17 and are now removed. The `getpoolinfo` RPC was deprecated in Dash Core v0.15 and is now removed. (#6567) + +* The `-deprecatedrpc=addresses` configuration option has been removed. RPCs `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, `/rest/block` no longer return the `addresses` and `reqSigs` fields, which were previously deprecated in 21.0. (#22650) + +* The `getblock` RPC command now supports verbosity level 3, containing transaction inputs `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain this information too. Every `vin` field will contain an additional `prevout` subfield. (#22918) +* A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#23093) + +* The return value of the `pruneblockchain` method had an off-by-one bug and now returns the height of the last pruned block as documented. (#24629) + +* The `listdescriptors` RPC now includes an optional coinjoin field to identify CoinJoin descriptors. (#6835) + +### Extended address support + +Dash Core v23 introduces support for extended masternode addresses, replacing legacy single-endpoint fields and +enabling more flexible network setups. The following RPC changes implement this functionality: + +#### New and deprecated fields + +* The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`, + `decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key), + `protx diff`, `protx listdiff` and has been replaced with the key `addresses`. + * The deprecated key is still available without additional runtime arguments, but is liable to be removed in future versions + of Dash Core. (#6811) * The key `service` has been deprecated for some RPCs (`decoderawtransaction`, `decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only for the `dmnState` key), `protx diff`, `protx listdiff`) and has been replaced with the key `addresses`. @@ -111,39 +134,18 @@ The compact block filter index format has been updated to include Dash special t * This change does not affect `masternode status` (except for the `dmnState` key) as `service` does not represent a payload value but the external address advertised by the active masternode. (#6665) +#### Renamed input fields + +* The input field `ipAndPort` has been renamed to `coreP2PAddrs`. In addition to accepting a string, `coreP2PAddrs` can + now accept an array of strings, subject to validation rules. * The input field `platformP2PPort` has been renamed to `platformP2PAddrs`. In addition to numeric inputs (i.e. ports), the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), subject to validation rules. - * The input field `platformHTTPPort` has been renamed to `platformHTTPSAddrs`. In addition to numeric inputs (i.e. ports), the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), subject to validation rules. -* The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']` - and `addresses['platform_https']` respectively. - * On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort` - but does not affect `netInfo`, `protx listdiff` does not contain enough information to report on the masternode's - address and will report the changed port paired with the dummy address `255.255.255.255`. - - This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that - have upgraded to extended addresses. - -* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `protx register_fund{,_evo}` will continue - allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are also left blank. - * Attempting to populate any three address fields will make populating all fields mandatory. - * This does not affect nodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes) - and they will have to continue specifying `platformP2PAddrs` and `platformHTTPSAddrs` even if they wish to keep - `coreP2PAddrs` blank. - -* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will no longer - default to the core P2P port if a port is not specified in the addr:port pair. All ports must be specified explicitly. - * This does not affect nodes ineligible for extended addresses, continuing to default to the core P2P port if provided an - addr without a port. - -* `protx register{,_evo}` and `register_fund{,_evo}` will continue to allow specifying only the port number for `platformP2PAddrs` - and `platformHTTPSAddrs`, pairing it with the address from the first `coreP2PAddrs` entry. This mirrors existing behavior. - * This method of entry may not be available in future releases of Dash Core and operators are recommended to switch over to - explicitly specifying (arrays of) addr:port strings for all address fields. (#6666) +#### Reporting behavior * When reporting on extended address payloads, `platformP2PPort` and `platformHTTPPort` will read the port value from `netInfo[PLATFORM_P2P][0]` and `netInfo[PLATFORM_HTTPS][0]` respectively as both fields are subsumed into `netInfo`. @@ -154,26 +156,32 @@ The compact block filter index format has been updated to include Dash special t dedicated diff flags and post-consolidation, all changes are now affected by `netInfo`'s diff flag. To avoid the perception of changes to fields that are not serialized by extended address payloads, data from `netInfo` will - not be translated for this RPC call. (#6666) - -* `quorum rotationinfo` will now expect the third param to be a JSON array. (#6628) - -* `getislocks` will now return the request `id` for each InstantSend Lock in results. (#6607) - -* `coinjoin status` is a new RPC that reports the status message of all running mix sessions. `coinjoin start` will no longer - report errors from mix sessions; users are recommended to query the status using `coinjoin status` instead. (#6594) - -* The RPCs `masternode current` and `masternode winner` were deprecated in Dash Core v0.17 and are now removed. The `getpoolinfo` RPC was deprecated in Dash Core v0.15 and is now removed. (#6567) + not be translated for this RPC call. (#6666) +* The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']` + and `addresses['platform_https']` respectively. + * On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort` + but does not affect `netInfo`, `protx listdiff` does not contain enough information to report on the masternode's + address and will report the changed port paired with the dummy address `255.255.255.255`. -* The `-deprecatedrpc=addresses` configuration option has been removed. RPCs `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, `/rest/block` no longer return the `addresses` and `reqSigs` fields, which were previously deprecated in 21.0. (#22650) + This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that + have upgraded to extended addresses. -* The `getblock` RPC command now supports verbosity level 3, containing transaction inputs `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain this information too. Every `vin` field will contain an additional `prevout` subfield. (#22918) +#### Masternode rules -* A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#23093) +* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `protx register_fund{,_evo}` will: + * Continue allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are also left blank. + * Attempting to populate any three address fields will make populating all fields mandatory. + * Continue to allow specifying only the port number for `platformP2PAddrs` and `platformHTTPSAddrs`, pairing it with the address + from the first `coreP2PAddrs` entry. This mirrors existing behavior. + * This method of entry may not be available in future releases of Dash Core and operators are recommended to switch over to + explicitly specifying (arrays of) addr:port strings for all address fields. (#6666) + * No longer default to the core P2P port if a port is not specified in the addr:port pair. All ports must be specified explicitly. -* The return value of the `pruneblockchain` method had an off-by-one bug and now returns the height of the last pruned block as documented. (#24629) +Masternodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes) must follow + the legacy rules by continuing to: -* The `listdescriptors` RPC now includes an optional coinjoin field to identify CoinJoin descriptors. (#6835) +* Default to the core P2P port if provided an address without a port. +* Specify `platformP2PAddrs` and `platformHTTPSAddrs` even if they wish to keep `coreP2PAddrs` blank. ## Updated settings From bc8db229a74293b9ceeb34a9c7c54dbe5a125bd7 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 4 Nov 2025 10:07:29 -0600 Subject: [PATCH 10/15] docs: minor improvements to release notes --- doc/release-notes.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index a47f2708c2b7d..3c996e8682953 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -51,6 +51,8 @@ The compact block filter index format has been updated to include Dash special t ## Other notable changes +* Performance of block validation in Dash Core has been significantly improvement, index from + scratch and reindex are up to 20% faster compare to v22.x. * To help prevent fingerprinting transactions created by the Dash Core wallet, change output amounts are now randomized. (#6685) * Dash Core will no longer migrate EvoDb databases generated in v19 and v20, users upgrading @@ -88,7 +90,7 @@ The compact block filter index format has been updated to include Dash special t They can be re-enabled with the runtime argument `-deprecatedrpc=legacy_mn`. * The argument `legacy` in `bls generate` has been deprecated in Dash Core v23 and may be ignored in a future version. - It can be re-enabled with the runtime argument `deprecatedrpc=legacy_mn`. (#6723) + It can be re-enabled with the runtime argument `-deprecatedrpc=legacy_mn`. (#6723) * A new optional field `submit` has been introduced to the `protx revoke`, `protx update_registrar`, `protx update_service` RPCs. It behaves identically to `submit` in `protx register` or `protx register_fund`. (#6720) From e0519c34a7244518a9683f30baa2df1634ebc989 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 4 Nov 2025 10:18:20 -0600 Subject: [PATCH 11/15] docs: fix whitespace errors --- doc/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 3c996e8682953..9b0d572c27dcb 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -158,7 +158,7 @@ enabling more flexible network setups. The following RPC changes implement this dedicated diff flags and post-consolidation, all changes are now affected by `netInfo`'s diff flag. To avoid the perception of changes to fields that are not serialized by extended address payloads, data from `netInfo` will - not be translated for this RPC call. (#6666) + not be translated for this RPC call. (#6666) * The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']` and `addresses['platform_https']` respectively. * On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort` From 78d0725a74633a0942a400446fde14f3edcc1a98 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 4 Nov 2025 10:40:22 -0600 Subject: [PATCH 12/15] docs: add note on proto bump and platformban p2p --- doc/release-notes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/release-notes.md b/doc/release-notes.md index 9b0d572c27dcb..8c7b595b70287 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -76,6 +76,9 @@ The compact block filter index format has been updated to include Dash special t ## P2P and network changes - `MIN_PEER_PROTO_VERSION` has been bumped to `70221`. (#6877) +- `PROTO_VERSION` has been bumped to `70238` with the introduction of the `platformban` p2p message. + This message allows evonodes to initiate PoSe masternode banning in Dash Core for evonodes which are + not providing adequite service on Dash platform. - `cycleHash` field in `isdlock` message will now represent a DKG cycle starting block of the signing quorum instead of a DKG cycle starting block corresponding to the current chain height. While this is fully backwards compatible with older versions of Dash Core, other implementations might not be expecting this, so the P2P protocol version was bumped to 70237. (#6608) - UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy` to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`). UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with the format `-zmqpubrawtx=unix:/path/to/file`. (#6634) From f40745304d6d524bf78559adc9ea85c28f48e4ea Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 4 Nov 2025 10:43:46 -0600 Subject: [PATCH 13/15] doc: Replace Bitcoin Core PR references with Dash Core backport PRs Replace Bitcoin Core PR numbers (>7000) with their corresponding Dash Core backport PR numbers in release notes: - #24098 -> #6784 (REST API endpoints) - #22650 -> #6569 (deprecatedrpc=addresses removal) - #22918 -> #6577 (getblock verbosity level 3) - #23093 -> #6577 (newkeypool RPC) - #24629 -> #6784 (pruneblockchain fix) - #25158 -> #6780 (abandoned field in wallet RPCs) --- doc/release-notes.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 8c7b595b70287..5e43e969c4544 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -63,7 +63,7 @@ The compact block filter index format has been updated to include Dash special t - The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use a query parameter instead of a path parameter to specify the result count. The count parameter is now optional and defaults to 5 for both endpoints. The old - endpoints are still functional, and have no documented behaviour change. (#24098) + endpoints are still functional, and have no documented behaviour change. (#6784) For `/headers`, use `GET /rest/headers/.?count=` instead of @@ -108,13 +108,13 @@ The compact block filter index format has been updated to include Dash special t * The RPCs `masternode current` and `masternode winner` were deprecated in Dash Core v0.17 and are now removed. The `getpoolinfo` RPC was deprecated in Dash Core v0.15 and is now removed. (#6567) -* The `-deprecatedrpc=addresses` configuration option has been removed. RPCs `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, `/rest/block` no longer return the `addresses` and `reqSigs` fields, which were previously deprecated in 21.0. (#22650) +* The `-deprecatedrpc=addresses` configuration option has been removed. RPCs `gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`, `gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`, `/rest/block` no longer return the `addresses` and `reqSigs` fields, which were previously deprecated in 21.0. (#6569) -* The `getblock` RPC command now supports verbosity level 3, containing transaction inputs `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain this information too. Every `vin` field will contain an additional `prevout` subfield. (#22918) +* The `getblock` RPC command now supports verbosity level 3, containing transaction inputs `prevout` information. The existing `/rest/block/` REST endpoint is modified to contain this information too. Every `vin` field will contain an additional `prevout` subfield. (#6577) -* A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#23093) +* A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#6577) -* The return value of the `pruneblockchain` method had an off-by-one bug and now returns the height of the last pruned block as documented. (#24629) +* The return value of the `pruneblockchain` method had an off-by-one bug and now returns the height of the last pruned block as documented. (#6784) * The `listdescriptors` RPC now includes an optional coinjoin field to identify CoinJoin descriptors. (#6835) @@ -238,7 +238,7 @@ GCC 11.1 or later, or Clang 16.0 or later, are now required to compile Dash Core ## RPC Wallet - `unloadwallet` now fails if a rescan is in progress. (#6759) -- `gettransaction`, `listtransactions`, `listsinceblock` now return the `abandoned` field for all transactions. (#25158) +- `gettransaction`, `listtransactions`, `listsinceblock` now return the `abandoned` field for all transactions. (#6780) See detailed [set of changes][set-of-changes]. From 4ad553382a426e4f1de4b1226b7189ab48720b3e Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 4 Nov 2025 10:45:06 -0600 Subject: [PATCH 14/15] docs: typos --- doc/release-notes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index 5e43e969c4544..c069fa99a3425 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -51,8 +51,8 @@ The compact block filter index format has been updated to include Dash special t ## Other notable changes -* Performance of block validation in Dash Core has been significantly improvement, index from - scratch and reindex are up to 20% faster compare to v22.x. +* Performance of block validation in Dash Core has been significantly improved, index from + scratch and reindex are up to 20% faster compared to v22.x. * To help prevent fingerprinting transactions created by the Dash Core wallet, change output amounts are now randomized. (#6685) * Dash Core will no longer migrate EvoDb databases generated in v19 and v20, users upgrading From ebf3a6427f6cdce87a46b0d6e30d0ec83c821979 Mon Sep 17 00:00:00 2001 From: pasta Date: Tue, 4 Nov 2025 10:45:40 -0600 Subject: [PATCH 15/15] docs: typos --- doc/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index c069fa99a3425..9189c8dd47124 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -78,7 +78,7 @@ The compact block filter index format has been updated to include Dash special t - `MIN_PEER_PROTO_VERSION` has been bumped to `70221`. (#6877) - `PROTO_VERSION` has been bumped to `70238` with the introduction of the `platformban` p2p message. This message allows evonodes to initiate PoSe masternode banning in Dash Core for evonodes which are - not providing adequite service on Dash platform. + not providing adequate service on Dash Platform. - `cycleHash` field in `isdlock` message will now represent a DKG cycle starting block of the signing quorum instead of a DKG cycle starting block corresponding to the current chain height. While this is fully backwards compatible with older versions of Dash Core, other implementations might not be expecting this, so the P2P protocol version was bumped to 70237. (#6608) - UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy` to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`). UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with the format `-zmqpubrawtx=unix:/path/to/file`. (#6634)