Validator
Last updated
Last updated
Validators are responsible for evaluating the work submitted by training nodes. Similarly, validators have to stake before the evaluation tasks, and can be rewarded upon task completion. This is essential to maintaining the quality and reliability of the FLock network.
The reward percentage for validator depends on:
how close the score is to the consensus among all the validators, measured by score variance (calculated off-chain)
amount the validator (and its delegators) staked
the number of submissions that the validator validated
Specifically, the reward distribution for validators follows a two-step calculation:
Similar to reward calculation for training nodes, the rewards for all validators in the same given AI Arena task is:
Here, we assume there are 𝑛 submissions from training nodes with stakes , and 𝑚 validators with stakes . Each validator evaluates the models submitted by the training nodes. The total daily reward allocated to a task is denoted as and the parameter controls the split rewards, defining the balance between fixed and stake-dependent reward components.
The formula for a given validator’s daily return is calculated as such:
Specifically,
F refers to the performance of the validation, which is calculated through off-chain consensus
σ is the guaranteed validator return against delegators
Let’s assume daily total rewards for all AI Arena tasks for a given day is 309,157.68. We have 1 task with 2 nodes and 3 validators.
First, for this given task, total rewards for *all* validators are:
Then, if we assume validator A has a score of 0.472768, the the reward for * validator A only* is:
is the rewards for all validators
is the stake amount of this validator
is the stake amount delegated to this validator
Nodes A and B stake 3,000 and 3,500 FLOCK respectively, while validators A, B and C stake 3,000, 6,000 and 3,000 respectively. Node A also receives an additional 1,000 FLOCK from its delegators, which brings the (total stake including delegated stake) to be 4,000 for Node A. For simplicity, we assume to be 0 in this example.