Repository navigation
A patch release of Dash Platform 5.0.
The protocol version does not change, and neither does stored data. Nodes can upgrade at their own pace. The changes make SDKs and nodes cope better while the network moves from 4.1 to 5.0 and from protocol 13 to protocol 14.
Highlights
- SDK: document queries retry when a node answers from an older protocol version. If a node has not yet caught up with a protocol upgrade, the SDK asks another node instead of using that answer. If the SDK itself is set to a protocol version newer than the network, document queries report a configuration error and don't ban nodes.
- SDK: features of a newer protocol wait for the network. A request the network cannot serve yet, such as a protocol 14 query while the network still runs protocol 13, is refused locally. It is no longer sent to nodes that then get banned. The new
ProtocolVersionNotActiveerror lets apps hide such features until activation. - SDK: malformed document queries are refused before they are sent. Examples are a count query without a count selection, or a ranked query of the wrong shape. Before, these were sent and every node that answered was banned.
- Nodes: a query for a feature that is not active yet now gets
INVALID_ARGUMENTinstead ofUNKNOWN, so clients no longer ban healthy nodes for it. - Tests: more SDK proof tests now run in CI.
Breaking changes (Rust SDK API only)
- New error variants:
dash_sdk::Error::ProtocolVersionNotActive, plus newStaleNodeErroranddrive_proof_verifier::Errorvariants. Exhaustive matches on these enums need a new arm. Sdk::verify_response_metadatanow only checks freshness. It no longer changes the SDK's protocol version: the SDK learns protocol versions only from answers it has verified itself.
Upgrading
- Nodes: update dashmate and restart Platform. Core does not need a restart, and Core stays on 23 (see the 5.0.0 notes).
- Apps: update to the 5.0.1 SDKs before protocol 14 activates on mainnet.
Full changelog: https://github.com/dashpay/platform/blob/v5.0.1/CHANGELOG.md