I am trying to understand how the protocol chooses which validator will get the validation job? What are the key criteria to get the block for validation and how it ensures all validators are getting fair chance?
1 Answer
Validators currently have two jobs:
Block production (leading), which only one validator does for four slots at a time (~1.6 seconds). Every epoch, the network creates a leader schedule based on a pseudorandom generator which determines who is responsible for producing a block at each slot number. Despite being random, this generator is deterministic and cannot be influenced, meaning all nodes independently generate the same leader schedule. Wiki page
Block validation (voting), which all validators do for every block. Voting is done by sending vote transactions. It ultimately decides which produced blocks are valid or not. Any node can send vote transactions, regardless if it has stake. Over two thirds of network stake need to vote at all times to keep the network going.
-
Thanks for your answer. I would like to clarify my understanding. So before each epoch starts, chain allocates the leaders schedule. Those leaders will have to validate 4 blocks each, but probably need to do it multiple times during epoch depending on the amount of validators. To identify leaders the protocol use some randomisation algorithm but at some point will add weight to validators with higher delegated stake so they get more validation job and rewards?– SergeCommented Jul 27, 2022 at 22:13
-
1That's exactly right, the random selection is weighted by stake amount. The more blocks you produce, the more transaction fees you can collect by including txs in a block. However, inflation rewards come from voting activity – the more votes you land, the more the validator and their stakers get.– terorieCommented Jul 27, 2022 at 23:00
-
1The
getLeaderSchedule()
RPC call allows you to see the leader schedule for the current epoch– terorieCommented Jul 27, 2022 at 23:01 -
As I understand all collected fees are being burnt. The rewards are coming solely from inflation. Is it correct - to collect more rewards you need to stake more as then you can validate blocks more often and earn more rewards. You also earn additional rewards for voting, and the more stake to have the more votes you have and the higher total rewards you receive? You mentioned that even nodes without stake can send a vote. Are they going to get any reward if their stake is zero? Thanks for your help.– SergeCommented Jul 27, 2022 at 23:14
-
please ask new questions in new posts rather than starting a conversation in the comments Commented Jul 27, 2022 at 23:47