|
| 1 | +Notable Changes |
| 2 | +--------------- |
| 3 | + |
| 4 | +* Dash Core has added support for the ability to register multiple addr:port pairs to a masternode and for specifying |
| 5 | + distinct addresses for platform P2P and platform HTTPS endpoints. The consensus and format changes needed to enable |
| 6 | + this capability is referred to as "extended addresses" and is enabled by the deployment of the v23 fork, affecting |
| 7 | + new masternode registrations and service updates to basic BLS masternodes. |
| 8 | + * Operators must upgrade from legacy BLS scheme to basic BLS scheme before utilizing extended address capabilities |
| 9 | + |
| 10 | +Additional Notes |
| 11 | +---------------- |
| 12 | + |
| 13 | +* While the field `service` is deprecated (see dash#6665), its effective value can be obtained by querying |
| 14 | + `addresses['core_p2p'][0]`. |
| 15 | + |
| 16 | +* If the masternode is eligible for extended addresses, operators may register non-IPv4 addresses, subject to validation |
| 17 | + and consensus rules. |
| 18 | + |
| 19 | +Updated RPCs |
| 20 | +------------ |
| 21 | + |
| 22 | +* The input field `platformP2PPort` has been renamed to `platformP2PAddrs`. In addition to numeric inputs (i.e. ports), |
| 23 | + the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), |
| 24 | + subject to validation rules. |
| 25 | + |
| 26 | +* The input field `platformHTTPPort` has been renamed to `platformHTTPSAddrs`. In addition to numeric inputs (i.e. ports), |
| 27 | + the field can now accept a string (i.e. an addr:port pair) and arrays of strings (i.e. multiple addr:port pairs), |
| 28 | + subject to validation rules. |
| 29 | + |
| 30 | +* The field `addresses` will now also report on platform P2P and platform HTTPS endpoints as `addresses['platform_p2p']` |
| 31 | + and `addresses['platform_https']` respectively. |
| 32 | + * On payloads before extended addresses, if a masternode update affects `platformP2PPort` and/or `platformHTTPPort` |
| 33 | + but does not affect `netInfo`, `protx listdiff` does not contain enough information to report on the masternode's |
| 34 | + address and will report the changed port paired with the dummy address `255.255.255.255`. |
| 35 | + |
| 36 | + This does not affect `protx listdiff` queries where `netInfo` was updated or diffs relating to masternodes that |
| 37 | + have upgraded to extended addresses. |
| 38 | + |
| 39 | +* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will continue |
| 40 | + allowing `coreP2PAddrs` to be left blank, as long as `platformP2PAddrs` and `platformHTTPSAddrs` are _also_ left blank. |
| 41 | + * Attempting to populate any three address fields will make populating all fields mandatory. |
| 42 | + * This does not affect nodes ineligible for extended addresses (i.e. all nodes before fork activation or legacy BLS nodes) |
| 43 | + and they will have to continue specifying `platformP2PAddrs` and `platformHTTPSAddrs` even if they wish to keep |
| 44 | + `coreP2PAddrs` blank. |
| 45 | + |
| 46 | +* If the masternode is eligible for extended addresses, `protx register{,_evo}` and `register_fund{,_evo}` will no longer |
| 47 | + default to the core P2P port if a port is not specified in the addr:port pair. All ports must be specified explicitly. |
| 48 | + * This does not affect nodes ineligible for extended addresses, continuing to default to the core P2P port if provided an |
| 49 | + addr without a port. |
| 50 | + |
| 51 | +* `protx register{,_evo}` and `register_fund{,_evo}` will continue to allow specifying only the port number for `platformP2PAddrs` |
| 52 | + and `platformHTTPSAddrs`, pairing it with the address from the first `coreP2PAddrs` entry. This mirrors existing behavior. |
| 53 | + * This method of entry may not be available in future releases of Dash Core and operators are recommended to switch over to |
| 54 | + explicitly specifying (arrays of) addr:port strings for all address fields. |
| 55 | + |
| 56 | +* When reporting on extended address payloads, `platformP2PPort` and `platformHTTPPort` will read the port value from |
| 57 | + `netInfo[PLATFORM_P2P][0]` and `netInfo[PLATFORM_HTTPS][0]` respectively as both fields are subsumed into `netInfo`. |
| 58 | + * If `netInfo` is blank (which is allowed by ProRegTx), `platformP2PPort` and `platformHTTPPort` will report `-1` to indicate |
| 59 | + that the port number cannot be determined. |
| 60 | + * `protx listdiff` will not report `platformP2PPort` or `platformHTTPPort` if the legacy fields were not updated (i.e. |
| 61 | + changes to `netInfo` will not translate into reporting). This is because `platformP2PPort` or `platformHTTPPort` have |
| 62 | + dedicated diff flags and post-consolidation, all changes are now affected by `netInfo`'s diff flag. |
| 63 | + |
| 64 | + To avoid the perception of changes to fields that not serialized by extended address payloads, data from `netInfo` will |
| 65 | + not be translated for this RPC call. |
0 commit comments