Dash Core

Dash Core Developer Documentation

Welcome to the Dash Core developer documentation. You'll find guides and documentation to help you start working with Dash Core as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    Guides

Proof of Service

The Proof of Service (PoSe) scoring system helps incentivize masternodesmasternodes - A computer that provides second-tier Dash functionality (InstantSend, PrivateSend, decentralized governance). Masternodes are incentivized by receiving part of the block reward, but must hold 1000 Dash as collateral to prevent sybil attacks. to provide networknetwork - The Dash P2P network which broadcasts transactions and blocks. services. Masternodes that neglect to participate receive an increased PoSe score which eventually results in them being excluded from masternode payment eligibility.

Distributed Key Generation Participation Requirements

The following table lists the aspects of the DKG process a masternode must comply with to avoid receiving a PoSe score increase:

Protocol VersionProof of Service
70213+Exchange required messages (quorum contributions and quorum justifications) with other quorum members during the LLMQ DKG process (Dash Core 0.13.0+)
70218+Have an open P2P port (Dash Core 0.16.0+). Enforcement of this requirement is dependent on Spork 21 being enabled
70218+Have a protocol version => MIN_MASTERNODE_PROTO_VERSION. During updates where this version is increased, masternodes will begin receiving PoSe score increases once > 80% of masternodes have upgrade (Dash Core 0.16.0+). Enforcement of this requirement is dependent on Spork 21 being enabled

Proof of Service Score Weighting

The current PoSe scoring system is based only on participation in the LLMQLLMQ - Long-Living Masternode Quorums (LLMQs) are a Dash innovation that enable masternodes to perform threshold signing of consensus-related messages (e.g. InstantSend transactions). LLMQs provide a more scalable, general use quorum system than the ephemeral ones used prior to Dash Core version 0.14. DKG process. This scoring system will expand over time to incorporate additional service requirements in support of the future Dash functionality.

ServicePercent of ScoreRequirement
LLMQ DKG100%Participate in the DKG process used to establish LLMQs. Requires exchanging messages with other quorum members

PoSe Score Calculation

As shown in the following table, the PoSe Score always decreases by 1 per blockblock - One or more transactions prefaced by a block header and protected by proof of work. Blocks are the data stored on the block chain. as long as a masternode has not been banned. Once banned, the masternode can only be restored by sending a Provider Update Service (ProUpServTx) special transaction.

PoSe ParameterValueExample Value
Maximum PoSe ScoreNumber of registered masternodes5000
PoSe Score IncreasesMaximum PoSe Score * 2/33333
PoSe Score Decreases1 (per block)Always 1

The current PoSe scoring algorithm increases the PoSe score by 66% of the maximum score for each failed DKG session. Depending on timing, this allows for no more than 2 failures for a masternode within a payment cycle (i.e a number of blocks equal to the number of registered masternodes).

For example, using the values from above with 5000 masternodes:

  • In the first 5000 block cycle, two DKG failures occur without the PoSe score exceeding the maximum. This happens since a sufficient number of blocks are mined prior to the second failure to drop the PoSe score below the threshold (< 5000 - 3333) that would result in banning.

  • In the second 5000 block cycle, the second DKG failure occurs too close to the first and results in the PoSe score exceeding the maximum limit. This results in the masternode receiving a PoSe Ban.

Payment CycleBlock NumberEventScore ChangePoSe ScoreMN Status
11DKG Failure (1)+33333333Valid
117341733 Blocks Mined-17331600Valid
11734DKG Failure (2)+33334933Valid
150003266 Blocks Mined-32661667Valid
End of Payment Cycle 1
25500500 Blocks Mined-5001167Valid
25500DKG Failure (3)+33334500Valid
270001500 Blocks Mined-15003000Valid
27000DKG Failure (4)+33336333PoSe Banned
210000End of Payment Cycle 2-6333PoSe Banned

Updated 3 months ago

Proof of Service

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.