Validator perfomance
This page describes how you can calculate various validator performance metrics
Proposal effectiveness
Description
A block proposer is a validator that is chosen to pack the attestation information together and commit the block to the chain. There is one proposer per slot and 32 per epoch. Given their work is critical, the reward that they earn for successfully proposing a block is disproportionate to any given attester’s reward in an epoch.
Being elected as a proposer has a much lower probability attached to it (32/active_validators), compared to a validator’s attestation duties (which is 100%).
Formula
proposer_effectiveness = [non_empty_blocks + empty_blocks * 0.25] / total_proposer_slots
Here you can find more detailed description.
Data source
- t_blocks- data about whether the block was empty or whether there were transactions in it;
- t_proposer_duties - data about who was the proposer in a particular slot;
- t_proposer_slashings - data about which block proposals were missed by validators;
Attester effectiveness
Description
Validators are called to attest once in every epoch. These attestations are important consensus material. When attesting, validators vote on their version of the perceived state of the chain, which is described by a handful of distinct variables. These variables are also known as a validator's duties.
Formula
attester_effectiveness = participation_rate * correctness_score / aggregate_inclusion_delay
- Participation rate: total amount of attestations included over the number of epochs active;
- Correctness: amount of correct head and target votes over the sum of votes included;
- Inclusion delay: aggregate slot distance between the attestation slots attributed and the actual slots the votes were included in;
More detailed info you can find here.
Data source
- t_attestations - data for participation rate, correctness and inclusion delay;
- t_block_summaries - data for inclusion delay;
Reward effectiveness
Description
Reward effectiveness is a metric that allows to evaluate the effectiveness of a validator by the ratio of actually received rewards and rewards that he could have received if all duties had been performed perfectly.
The simpliest way to calc this metric is:
reward_effectiveness = fact_rewards / ideal_rewards
where:
fact_rewards = reward_for_source + reward_for_target + reward_for_head + reward_for_sync + reward_for_proposal- - - penalty_for_source - penalty_for_target;
ideal_rewards = fact_rewards + 2 * (penalty_for_source + penalty_for_target) + missed_reward_for_head + +missed_reward_for_proposal;
How to obtain all rewards, _penalties _and _missed __rewards _data you can find here.
More detailed about _ideal_rewards _you can find here.
Updated 25 days ago