Context
dashpay/dash#7181 re-gates the service, platformP2PPort, and platformHTTPPort fields behind -deprecatedrpc=service in Core RPC output. These fields will no longer be present by default in protx diff, protx listdiff, and related RPCs.
This change ships with Dash Core v24.
The upstream dependency fix is tracked in dashpay/rust-dashcore#517 — DMNState.service must become Option<SocketAddr>.
What breaks in Platform
rs-drive-abci
update_state_masternode_list (v0) reads dmn_state_diff.service, dmn_state_diff.platform_p2p_port, and dmn_state_diff.platform_http_port from the parsed protx diff response. The diff fields are already optional and won't crash, but DMNState (used for addedMNs in the full list) will fail deserialization because service is non-optional in rust-dashcore.
- Once rust-dashcore is fixed, all code reading
DMNState.service needs to handle None.
rs-sdk-trusted-context-provider
- Parses
platformHTTPPort as Option<u16> from masternode entries — already optional, won't crash, but will silently lose the port data when the field is absent.
Required actions
- Bump rust-dashcore dependency after dashpay/rust-dashcore#517 is resolved
- Handle
DMNState.service becoming Option in rs-drive-abci masternode list parsing
- Decide whether Platform nodes should run Core with
-deprecatedrpc=service as a stopgap, or fully migrate to using the new addresses field
- Audit any other code paths that assume
service/platformHTTPPort/platformP2PPort are always present in Core RPC responses
Context
dashpay/dash#7181 re-gates the
service,platformP2PPort, andplatformHTTPPortfields behind-deprecatedrpc=servicein Core RPC output. These fields will no longer be present by default inprotx diff,protx listdiff, and related RPCs.This change ships with Dash Core v24.
The upstream dependency fix is tracked in dashpay/rust-dashcore#517 —
DMNState.servicemust becomeOption<SocketAddr>.What breaks in Platform
rs-drive-abci
update_state_masternode_list(v0) readsdmn_state_diff.service,dmn_state_diff.platform_p2p_port, anddmn_state_diff.platform_http_portfrom the parsedprotx diffresponse. The diff fields are already optional and won't crash, butDMNState(used foraddedMNsin the full list) will fail deserialization becauseserviceis non-optional in rust-dashcore.DMNState.serviceneeds to handleNone.rs-sdk-trusted-context-provider
platformHTTPPortasOption<u16>from masternode entries — already optional, won't crash, but will silently lose the port data when the field is absent.Required actions
DMNState.servicebecomingOptionin rs-drive-abci masternode list parsing-deprecatedrpc=serviceas a stopgap, or fully migrate to using the newaddressesfieldservice/platformHTTPPort/platformP2PPortare always present in Core RPC responses