DPoS: Delegated Proof of Stake: a mechanism for the selection of network Validators by coin holders delegating their votes Validator: (usually denoted L) a node on the network responsible for producing and validating blocks. Nominator: a coin holder who stakes and delegates their coins to one or more Validators. Epoch: (usually denoted 𝑁) corresponds to 𝐿∈ℕ blocks: it is a cycle of a few blocks in which Validators create blocks in turn.
depositfunction on the staking contract.
delegateto remove their vote.
WITHDRAWAL_PERIODthe funds are unlocked
withdrawfunction on the smart contract can be called with a withdrawal
REGISTRATION_VALUE(in the native token) will be sent to a
registerfunction on the contract. It will be burnt in order to limit the
MAX_REGISTERED_VALIDATORSshould be specified.
In this model, an epoch would be of the maximum number of Validators allowed, eg. 1,001 (+/- an hour on a 4-seconds block time chain).
reportBenignmethod (part of the Validator Set Contract) that only Validators can call, passing a message and a block-number, and a slashing will execute if more than 2/3 of the Validators agree on the misbehaviour.
reportMaliciousmethod with the right data, being the two signatures of the Validator, and the message signed, which would contain the step of the blocks. This method would thus include an RLP decoder.
reportMaliciousmethod that only Validators can call, passing a message and a block-number, and a slashing will execute if more than 2/3 of the Validators agree on the
reportMalicious. It could slash a portion of the entire 100% stakes of Validator Node.
MIN_STAKE: 10,000,000 XDC
VALIDATOR_REWARD: 0.01370% (Daily)
REWARDS_TRANSFER: Every next block of an epoch
WITHDRAWAL_PERIOD: Set of Epoch ( 1 Epoch = 500 blocks)