- Generally, what is the topology of data propogation? In particular block + attestation aggregation?
- How is the network using bandwidth?
- How long does it take for a block/attestation/aggregate to propagate?
- What is the time distribution of things happening in the network?
- i.e., When exactly within a slot are blocks or attestations sent and received?
- How well is aggregation (which is a mostly altruistic behavior, since there are no rewards for communicating an aggregated attestation) performed?
- For instance, if there is an aggregate
A that a later included attestation
a could have been a part of, you have two cases:
- Either it failed to be aggregated, or
- It wasn’t seen at the time of the aggregation
- A single measure of aggregation performance would probably not distinguish between the two cases, but you could still measure how much attestations were aggregated vs. how much more they could have been aggregated.
- Try using rumor to collect this data by listening on the p2p network or develop a new tool 😀.
- Use rumor agents to analyze and/or visualize gossip subnets in real time
Visualizations + Metrics
- Buid a website for visualizing/querying the validator activation and exit queue
- Example: Define a period of time
- For each validator, find uptime (e.g., number of attestations included / number of attestations scheduled, or validator effectiveness) during period
- Plot against rewards obtained during period
- How can you show the health of the Medalla test network?
- Example: one measure of network health is attestations Gini
- Say you have
S slots per epoch. Thus, the probability of being chosen to propose a block is
1 /*n*. The ideal case is all validators are online, all propose a block when asked, all include latest *
n* / *S* attestations.
- Look at the series of number of valuable attestations included per block.
- Valuable attestation: Provides the block proposer with a reward. Namely, an included attestation is valuable to the block proposer if and only if it is the first time it is included in the chain (see the
min in get_inclusion_delay_deltas)
- And then compute the Gini coefficient of the series.
- Gini close to 0: block proposers are mostly equal to each other, e.g. it is equal to zero if all the block proposers include n / S attestations each.
- Gini close to 1: some block proposers reap higher rewards than others, e.g. it is equal to one if there is only one block proposer online including x many attestations.
- Caveats: Gini would be equal to zero in the case where all block proposers include
n / S attestations and all included attestations have equal inclusion delay
= d > 1. So this attestations Gini does not measure network latency as much as it measures inequality among block proposers. However, we could imagine that in the case where all block producers include with delay
= d > 1, a block producer with lower latency would include more valuable attestations than others, since it would “steal” them from higher latency validators, increasing the attestations Gini.