Deciding who gets to be a validator.
The Joystream blockchain is a PoS system, meaning that what actors are involved in validation, that is producing blocks and maintaining agreement over the canonical history of blocks as it is extended, is determined by how much stake is devoted to the candidacy of any prospective validator. Nominators are those native token holders who choose to be involved in the activity of voting for validation candidates, and they do so in return for a share of the validation rewards of this validator, and under the risk of loosing some of their funds if this validator misbehaves.
- Select and monitor validator performance.
- Able to securely store keys
- Hold sufficient amount of the native platform token to put at stake
We will add another option for doing this, using the joystream-cli and (optionally) signing offline, if you don't want to expose them on the internet.
Unless it says
Joystream - joystream-node/7(update for mainnet) in the top left corner, click on whatever it says, and select the Joystream network you want to connect to.
You need two keys for this, one to be the
controllerand one as the
stash. The latter holds the stake and must sign at least once to "delegate" to the
controllerwhich is running the "day to day" operations.
- 2.Select a
controlleraccount from the dropdown, set the "value bonded" as the amount you want to stake, and choose a "payment destination", then hit "next".
- 3.Select which candidates you want to nominate, and click "Bond & Nominate"
If you are preparing this for later, click the "+ Stash" button instead.
Assuming the transaction went through, you will now appear under the "waiting" tab here. That means you are in the queue for joining the validator set, but when (and whether) you actually join depends on the competition for getting a slot.
Suppose that number is
n, and that there are
mvalidators that, towards the end of each
erawere already validating or joined the queue:
n >= m, all will be elected
nvalidators with the highest total active stake will be elected for the upcoming
eralasts ~6h (on mainnet, ~1h on the current testnet).
- total active stake refers to the active stake for the validator itself, plus all of their nominators.
There is a minimum threshold of funds required to stake as a validator. As you can get slashed, that means you can not "re-use" tokens that are staked for other "slashable" purposes, such as role stake.
Another reason the transaction can be rejected is if the maximum number of
bondedaccounts have declared as validators. That number can be found in the chain state -> "staking" -> "maxValidatorsCount". How many there are currently can be found in the chain state -> "staking" -> "counterForValidators".
There are of course a limitless amount of other reasons the transaction could be rejected if you constructed it yourself in the cli.