|
| 1 | +# Sequencer Attestations & Rewards — FAQ |
| 2 | + |
| 3 | +> This FAQ documents common questions, subtle behaviors, and frequent points of confusion when monitoring sequencer performance, attestations, epochs, and rewards. |
| 4 | +
|
| 5 | +--- |
| 6 | + |
| 7 | +## 1. Why does my attestation count change from epoch to epoch? |
| 8 | + |
| 9 | +**Short answer:** Because the number of attestation *assignments* is not constant. |
| 10 | + |
| 11 | +You may observe patterns like: |
| 12 | + |
| 13 | +``` |
| 14 | +31, 31, 31, 30, 26 |
| 15 | +``` |
| 16 | + |
| 17 | +with **zero failures**. |
| 18 | + |
| 19 | +This does **not** indicate missed work or degraded performance. It means that across those epochs, your sequencer was assigned a different number of attestation duties. |
| 20 | + |
| 21 | +### Why this happens |
| 22 | +- Committee assignments are reshuffled every epoch using randomness |
| 23 | +- Epochs may contain different numbers of attestation slots |
| 24 | +- The active sequencer set can change slightly over time |
| 25 | +- Dashboard windows may include partial epochs (e.g., at startup or boundaries) |
| 26 | + |
| 27 | +The effective rule is: |
| 28 | + |
| 29 | +> **Your maximum attestations in an epoch = the number of duties assigned to you in that epoch** |
| 30 | +
|
| 31 | +--- |
| 32 | + |
| 33 | +## 2. What is the maximum number of attestations a sequencer can have? |
| 34 | + |
| 35 | +There is **no global fixed maximum**. |
| 36 | + |
| 37 | +The apparent “max” (often ~30–32) is an artifact of: |
| 38 | +- Current committee sizing |
| 39 | +- Active sequencer count |
| 40 | +- Epoch structure |
| 41 | + |
| 42 | +Seeing a stable number like `31` repeatedly is a sign of *network stability*, not a protocol guarantee. |
| 43 | + |
| 44 | +--- |
| 45 | + |
| 46 | +## 3. Is a lower attestation count a performance issue? |
| 47 | + |
| 48 | +**No — not by itself.** |
| 49 | + |
| 50 | +Performance is measured by **success vs. assigned duties**, not by raw counts. |
| 51 | + |
| 52 | +### Healthy sequencer |
| 53 | +- Assigned: 26 |
| 54 | +- Successful: 26 |
| 55 | +- Missed: 0 |
| 56 | +- Attestation Rate: 100% |
| 57 | + |
| 58 | +### Unhealthy sequencer |
| 59 | +- Assigned: 31 |
| 60 | +- Successful: 27 |
| 61 | +- Missed: 4 |
| 62 | +- Attestation Rate: <100% |
| 63 | + |
| 64 | +If your attestation rate is 100%, the sequencer is performing perfectly regardless of the raw number. |
| 65 | + |
| 66 | +--- |
| 67 | + |
| 68 | +## 4. Why did my sequencer receive no rewards despite many successful attestations? |
| 69 | + |
| 70 | +Because **attestations are not directly rewarded** in Aztec. |
| 71 | + |
| 72 | +In Aztec's design: |
| 73 | +- **Block proposals** → reward-triggering events (block rewards + transaction fees) |
| 74 | +- **Attestations** → liveness and correctness requirements (unpaid participation) |
| 75 | + |
| 76 | +Attestations: |
| 77 | +- Keep your sequencer active |
| 78 | +- Prevent penalties or slashing |
| 79 | +- Maintain eligibility for future proposer rewards |
| 80 | + |
| 81 | +But they do **not** mint rewards on their own. |
| 82 | + |
| 83 | +--- |
| 84 | + |
| 85 | +## 5. Can a sequencer participate in an epoch without proposing any blocks? |
| 86 | + |
| 87 | +**Yes — this is extremely common.** |
| 88 | + |
| 89 | +Block proposer selection is: |
| 90 | +- Sparse |
| 91 | +- Randomized |
| 92 | +- Stake-weighted |
| 93 | + |
| 94 | +Over short windows (e.g., 10 epochs), it is normal for a sequencer to: |
| 95 | +- Perform dozens of attestations |
| 96 | +- Receive zero proposer slots |
| 97 | +- Earn zero rewards |
| 98 | + |
| 99 | +This does **not** indicate a problem. |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +## 6. Can a sequencer make successful attestations if it is not included in an epoch? |
| 104 | + |
| 105 | +It depends on what *“included”* means. |
| 106 | + |
| 107 | +### Included in an epoch means: |
| 108 | +- Bonded / staked |
| 109 | +- Active (not exiting, not slashed) |
| 110 | +- Part of the sequencer set for that epoch |
| 111 | + |
| 112 | +If included: |
| 113 | +- The sequencer **will** receive attestation duties |
| 114 | +- The sequencer **may or may not** receive proposer duties |
| 115 | + |
| 116 | +### What cannot happen |
| 117 | +A sequencer that is *truly excluded* from the active set: |
| 118 | +- Receives no duties |
| 119 | +- Produces no valid attestations |
| 120 | +- Shows zero participation |
| 121 | + |
| 122 | +So if you see successful attestations, the sequencer **was included**. |
| 123 | + |
| 124 | +--- |
| 125 | + |
| 126 | +## 7. Why does the dashboard sometimes show `0 / 0` block proposals? |
| 127 | + |
| 128 | +This means: |
| 129 | +- The sequencer was **not selected** for any proposer slots |
| 130 | +- Not that it failed to propose |
| 131 | + |
| 132 | +`0 / 0` is a neutral state, not a failure. |
| 133 | + |
| 134 | +--- |
| 135 | + |
| 136 | +## 8. How should I interpret bar charts showing attestations and blocks? |
| 137 | + |
| 138 | +Each epoch column typically includes: |
| 139 | +- 🟢 Attestation Success — completed attestation duties |
| 140 | +- 🔴 Attestation Missed — assigned but not completed |
| 141 | +- 🔵 Blocks Success — successful block proposals |
| 142 | +- 🟠 Blocks Missed — failed proposer opportunities |
| 143 | + |
| 144 | +Large green bars with tiny or zero blue bars are **normal**. |
| 145 | + |
| 146 | +--- |
| 147 | + |
| 148 | +## 9. Example Dashboard Screenshot (Illustrative) |
| 149 | + |
| 150 | + |
| 151 | +### Dashboard Screenshot |
| 152 | + |
| 153 | +``` |
| 154 | +┌───────────────────────────────────────────────┐ |
| 155 | +│ Sequencer X7C…91A2 Status: Validating │ |
| 156 | +│ Epoch Window: 1901–1905 │ |
| 157 | +│ │ |
| 158 | +│ Last 5 Epochs Participated │ |
| 159 | +│ │ |
| 160 | +│ Epoch 1901 ████████████████████ Att: 32 │ |
| 161 | +│ Epoch 1902 ████████████████████ Att: 32 │ |
| 162 | +│ Epoch 1903 ████████████████████ Att: 31 │ |
| 163 | +│ Epoch 1904 ███████████████████ Att: 30 │ |
| 164 | +│ Epoch 1905 ████████████████ Att: 27 │ |
| 165 | +│ │ |
| 166 | +│ Attestation Rate: 100% (152 / 152) │ |
| 167 | +│ Block Proposals: 0 / 0 │ |
| 168 | +│ Rewards: 0 │ |
| 169 | +└───────────────────────────────────────────────┘ |
| 170 | +``` |
| 171 | + |
| 172 | +**Interpretation:** |
| 173 | +> Fully healthy sequencer, included in all epochs, completed all assigned attestations, but not selected as a block proposer during this window. |
| 174 | +
|
| 175 | +--- |
| 176 | + |
| 177 | +## 10. Key takeaways |
| 178 | + |
| 179 | +- Attestation counts vary naturally |
| 180 | +- Attestation success matters more than volume |
| 181 | +- Attestations are usually unpaid |
| 182 | +- Proposer selection is rare and stochastic |
| 183 | +- `0 / 0` proposals is normal |
| 184 | +- No rewards ≠ bad performance |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +## Suggested UI Clarifications (Optional) |
| 189 | + |
| 190 | +To reduce confusion, dashboards may benefit from: |
| 191 | +- Labeling attestations as **“Non-rewarded participation”** |
| 192 | +- Tooltips explaining `0 / 0` proposer rates |
| 193 | +- Separating *assignment counts* from *performance metrics* |
| 194 | + |
| 195 | +--- |
| 196 | + |
0 commit comments