Skip to content

Commit c338511

Browse files
thephezPastaPastaPasta
authored andcommitted
docs: reorganize rpc updates to organize extended address changes
1 parent 700c46e commit c338511

File tree

1 file changed

+56
-48
lines changed

1 file changed

+56
-48
lines changed

doc/release-notes.md

Lines changed: 56 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,6 @@ The compact block filter index format has been updated to include Dash special t
7979

8080
## Updated RPCs
8181

82-
* The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`,
83-
`decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key),
84-
`protx diff`, `protx listdiff` and has been replaced with the key `addresses`.
85-
* The deprecated key is still available without additional runtime arguments, but is liable to be removed in future versions
86-
of Dash Core. (#6811)
8782

8883
* `protx revoke` will now use the legacy scheme version for legacy masternodes instead of defaulting to the
8984
highest `ProUpRevTx` version. (#6729)
@@ -99,9 +94,37 @@ The compact block filter index format has been updated to include Dash special t
9994

10095
* The `instantsendtoaddress` RPC was deprecated in Dash Core v0.15 and is now removed. (#6686)
10196

102-
* The input field `ipAndPort` has been renamed to `coreP2PAddrs`.
103-
* `coreP2PAddrs` can now, in addition to accepting a string, accept an array of strings, subject to validation rules.
97+
* `quorum rotationinfo` will now expect the third param to be a JSON array. (#6628)
98+
99+
* `getislocks` will now return the request `id` for each InstantSend Lock in results. (#6607)
100+
101+
* `coinjoin status` is a new RPC that reports the status message of all running mix sessions. `coinjoin start` will no longer
102+
report errors from mix sessions; users are recommended to query the status using `coinjoin status` instead. (#6594)
103+
104+
* 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)
105+
106+
* 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)
107+
108+
* 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)
104109

110+
* A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#23093)
111+
112+
* 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)
113+
114+
* The `listdescriptors` RPC now includes an optional coinjoin field to identify CoinJoin descriptors. (#6835)
115+
116+
### Extended address support
117+
118+
Dash Core v23 introduces support for extended masternode addresses, replacing legacy single-endpoint fields and
119+
enabling more flexible network setups. The following RPC changes implement this functionality:
120+
121+
#### New and deprecated fields
122+
123+
* The keys `platformP2PPort` and `platformHTTPPort` have been deprecated for the following RPCs, `decoderawtransaction`,
124+
`decodepsbt`, `getblock`, `getrawtransaction`, `gettransaction`, `masternode status` (only the `dmnState` key),
125+
`protx diff`, `protx listdiff` and has been replaced with the key `addresses`.
126+
* The deprecated key is still available without additional runtime arguments, but is liable to be removed in future versions
127+
of Dash Core. (#6811)
105128
* The key `service` has been deprecated for some RPCs (`decoderawtransaction`, `decodepsbt`, `getblock`, `getrawtransaction`,
106129
`gettransaction`, `masternode status` (only for the `dmnState` key), `protx diff`, `protx listdiff`) and has been replaced
107130
with the key `addresses`.
@@ -111,39 +134,18 @@ The compact block filter index format has been updated to include Dash special t
111134
* This change does not affect `masternode status` (except for the `dmnState` key) as `service` does not represent a payload
112135
value but the external address advertised by the active masternode. (#6665)
113136

137+
#### Renamed input fields
138+
139+
* The input field `ipAndPort` has been renamed to `coreP2PAddrs`. In addition to accepting a string, `coreP2PAddrs` can
140+
now accept an array of strings, subject to validation rules.
114141
* The input field `platformP2PPort` has been renamed to `platformP2PAddrs`. In addition to numeric inputs (i.e. ports),
115142
the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs),
116143
subject to validation rules.
117-
118144
* The input field `platformHTTPPort` has been renamed to `platformHTTPSAddrs`. In addition to numeric inputs (i.e. ports),
119145
the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs),
120146
subject to validation rules.
121147

122-
* The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']`
123-
and `addresses['platform_https']` respectively.
124-
* On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort`
125-
but does not affect `netInfo`, `protx listdiff` does not contain enough information to report on the masternode's
126-
address and will report the changed port paired with the dummy address `255.255.255.255`.
127-
128-
This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that
129-
have upgraded to extended addresses.
130-
131-
* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `protx register_fund{,_evo}` will continue
132-
allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are also left blank.
133-
* Attempting to populate any three address fields will make populating all fields mandatory.
134-
* This does not affect nodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes)
135-
and they will have to continue specifying `platformP2PAddrs` and `platformHTTPSAddrs` even if they wish to keep
136-
`coreP2PAddrs` blank.
137-
138-
* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will no longer
139-
default to the core P2P port if a port is not specified in the addr:port pair. All ports must be specified explicitly.
140-
* This does not affect nodes ineligible for extended addresses, continuing to default to the core P2P port if provided an
141-
addr without a port.
142-
143-
* `protx register{,_evo}` and `register_fund{,_evo}` will continue to allow specifying only the port number for `platformP2PAddrs`
144-
and `platformHTTPSAddrs`, pairing it with the address from the first `coreP2PAddrs` entry. This mirrors existing behavior.
145-
* This method of entry may not be available in future releases of Dash Core and operators are recommended to switch over to
146-
explicitly specifying (arrays of) addr:port strings for all address fields. (#6666)
148+
#### Reporting behavior
147149

148150
* When reporting on extended address payloads, `platformP2PPort` and `platformHTTPPort` will read the port value from
149151
`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
154156
dedicated diff flags and post-consolidation, all changes are now affected by `netInfo`'s diff flag.
155157

156158
To avoid the perception of changes to fields that are not serialized by extended address payloads, data from `netInfo` will
157-
not be translated for this RPC call. (#6666)
158-
159-
* `quorum rotationinfo` will now expect the third param to be a JSON array. (#6628)
160-
161-
* `getislocks` will now return the request `id` for each InstantSend Lock in results. (#6607)
162-
163-
* `coinjoin status` is a new RPC that reports the status message of all running mix sessions. `coinjoin start` will no longer
164-
report errors from mix sessions; users are recommended to query the status using `coinjoin status` instead. (#6594)
165-
166-
* 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)
159+
not be translated for this RPC call. (#6666)
160+
* The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']`
161+
and `addresses['platform_https']` respectively.
162+
* On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort`
163+
but does not affect `netInfo`, `protx listdiff` does not contain enough information to report on the masternode's
164+
address and will report the changed port paired with the dummy address `255.255.255.255`.
167165

168-
* 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)
166+
This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that
167+
have upgraded to extended addresses.
169168

170-
* 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)
169+
#### Masternode rules
171170

172-
* A new RPC `newkeypool` has been added, which will flush (entirely clear and refill) the keypool. (#23093)
171+
* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `protx register_fund{,_evo}` will:
172+
* Continue allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are also left blank.
173+
* Attempting to populate any three address fields will make populating all fields mandatory.
174+
* Continue to allow specifying only the port number for `platformP2PAddrs` and `platformHTTPSAddrs`, pairing it with the address
175+
from the first `coreP2PAddrs` entry. This mirrors existing behavior.
176+
* This method of entry may not be available in future releases of Dash Core and operators are recommended to switch over to
177+
explicitly specifying (arrays of) addr:port strings for all address fields. (#6666)
178+
* 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.
173179

174-
* 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)
180+
Masternodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes) must follow
181+
the legacy rules by continuing to:
175182

176-
* The `listdescriptors` RPC now includes an optional coinjoin field to identify CoinJoin descriptors. (#6835)
183+
* Default to the core P2P port if provided an address without a port.
184+
* Specify `platformP2PAddrs` and `platformHTTPSAddrs` even if they wish to keep `coreP2PAddrs` blank.
177185

178186
## Updated settings
179187

0 commit comments

Comments
 (0)