These docs are for v0.17.0. Click to read the latest docs for v19.0.0-redirect.

Masternode Messages

The following network messages enable the masternode features built in to Dash.

Overview Of P2P Protocol Masternode Request And Reply Messages

For additional details, refer to the Developer Guide Masternode Sync and Masternode Payment sections.

ssc

The ssc message is used to track the sync status of masternode objects. This message is sent in response to sync requests for the list of governance objects (govsync message), and governance object votes (govsync message).

BytesNameData typeRequiredDescription
4nItemIDintRequiredMasternode Sync Item ID
4nCountintRequiredNumber of items to sync

Sync Item IDs

IDDescriptionResponse To
2MASTERNODE_SYNC_LISTDeprecated following activation of DIP3 in Dash Core 0.13.0

dseg message
3MASTERNODE_SYNC_MNWDeprecated following activation of DIP3 in Dash Core 0.13.0

mnget message
10MASTERNODE_SYNC_GOVOBJgovsync message
11MASTERNODE_SYNC_GOVOBJ_VOTEgovsync message with non-zero hash

The following annotated hexdump shows a ssc message. (The message header has been omitted.)

02000000 ................................... Item ID: MASTERNODE_SYNC_LIST (2)
bf110000 ................................... Count: 4543

mnauth

Added in protocol version 70214

The mnauth message is sent by a masternode immediately after sending a verack message to authenticate that the sender is a masternode. It is only sent when the sender is actually a masternode.

The mnauth message signs a challenge that was previously sent via a version message. The challenge is signed differently depending on if the connection is inbound or outbound.

👍

Protocol Update

As of protocol version 70218, when communicating with masternodes that have reported a version => MIN_MASTERNODE_PROTO_VERSION, the mnauth signature is created by signing a message incorporating both the mnauth_challenge and protocol version (from the version message). Further details may be found in Dash Core PR 3631.

This is primarily used as a DoS protection mechanism to allow persistent connections between masternodes to remain open even if inbound connection limits are reached.

BytesNameData typeDescription
32proRegTxHashuint256The hash of the ProRegTx that identifies the masternode
96sigbyte[]BLS signature of the version message's mnauth_challenge. Signed with the operator key of the masternode.

The following annotated hexdump shows a mnauth message. (The message header has been omitted.)

63cd3bf06404d78f80163afeb4b13e18
7dc1c1d04997ef04f1a2ecb3166dd004 ........... ProRegTx Hash

12f2706bc75e9cb14a9ebf1d93d177d5
f266ad2eddc49ad463810cb976a3e4bb
abffc96819c5030fd5a7601af9c8ee50
0feb066b38a48af1a31b7242bd814bab
91e2a887f963904f33af851ddc9167d5
66d6d3bd6c07e99091edd8867d0dd56e ........... Masternode BLS Signature (96 bytes)