This documentation introduces dfinance Proof-of-Stake consensus algorithm and contains instructions on how to delegate sXFI or LPT, how to become validator on dfinance, how run a full node, and how to earn rewards for delegation.
IMPORTANT: during incentivized mainnet users stake their sXFI (Staking XFI) coins and LPT (Liquidity Provider Tokens).
Any blockchain-based system must have a consensus algorithm, which secures blockchain from attacks (like Sybil attacks, Double Spending attacks, 51% attacks), forks, and allowing to validate if block mined/generated correctly and in time.
Dfinance is based on Proof-Of-Stake (PoS) consensus algorithm developed by Cosmos team. This means that dfinance has a set of validators who can generate blocks thus securing the network. By utilizing Tendermint protocol dfinance trying to minimize possible attack vectors on the network and amount of forks that could happen.
Validator is a user who is ready to set up a full-node, self-delegate minimum amount of sXFI (2500.0 sXFI), keep it with great performance, and in such way secure the network and earn rewards.
There are two kinds of validators: active ones and standby. The top 101 validators are active validators, who indeed can generate new blocks, the rest of validators are standby validators. The top can be generated by sorting all validators by their voting power, from greater to lesser. Each validator has a voting power (voting power of validators is determined by the amount of staking sXFI bonded as collateral). These sXFI coins can be self-delegated directly by validators themselves or delegated from other sXFI holders. For their work active validators receive network fees (collected from transactions) and network rewards (newly generated sXFI). This way to become an active validator standby should get so much voting power as possible to get inside top.
The active validators must generate blocks, sign them with the private key, and broadcast in the network, in a specific time slot that is chosen special for this validator.
Any user of the network can become a validator. The user should send a special transaction to the network, and set up a full node. Read more how to become a validator in Become a validator documentation.
The procedure of delegation coins to a specific validator or own validator (self delegation) is calling staking. Once a user delegates sXFI or LPT, these coins or tokens can't be used anymore while it's delegated, in exchange for delegation users getting part of rewards/fees formed by validator - commission established by the validator.
Any user can delegate his coins to validators to support liked validators and get part of fees received by validators they choose to delegate. By delegating, a user locks his tokens. Delegators should actively participate in choosing validators, because if a user delegates to the performance-less validator (let's say validator which misses blocks or double sign blocks/pre-votes). In such cases, both validator and delegator will be exposed to the slashing procedure.
You can't delegate same sXFI and LPT to different validators, only to one, means, if you have for example 1000 sXFI and 10 LPT, you can delegate 900 sXFI and 6 LPT to validator A, and the rest, 31 sXFI and 4 LPT, to delegator B, but you can't delegate already staked sXFI or LPT to another validator.
A full node is a dnode instance that stores all blockchain data including transactions, blocks, consensus settings, and at the same time it validates new coming transactions and blocks. Each full node has a public IP address, so other full nodes can communicate with it via p2p. All validators in the network must run their full node, as validators must have all information about the network to verify and approve transactions, blocks.
After this short introduction to staking, let's continue with current documentation and see how we can delegate.