-
-
Notifications
You must be signed in to change notification settings - Fork 382
feat: sort packed attestations by effective balance #7646
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
some metrics monitor on hoodie
![]()
![]()
![]()
![]()
![]()
![]() |
Performance Report✔️ no performance regression detected Full benchmark results
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## unstable #7646 +/- ##
============================================
- Coverage 50.25% 50.17% -0.09%
============================================
Files 604 604
Lines 40479 40549 +70
Branches 2231 2230 -1
============================================
+ Hits 20343 20345 +2
- Misses 20094 20162 +68
Partials 42 42 🚀 New features to boost your workflow:
|
one issue with this improve aggregated attestation pool is it usually produce too few consolidations/packed attestations (usually 2-7) although it scanned through every slot |
**Motivation** - track on chain new seen attesters and total effective balance increment of them per block - see #7646 (comment) **Description** - at every block processing, when process attestations we track it --------- Co-authored-by: Tuyen Nguyen <[email protected]>
**Motivation** - we have 2 bugs for electra logic: - one logic in phase0 cannot be applied to electra - wrong for loop place - one bug for all forks: incorrect dependent root used when checking attestation data, see #7651 **Description** extract fixes from #7646 - add more metrics for the pool - remove this logic for electra: "after 2 slots, there are a good chance that we have 2 * MAX_ATTESTATIONS_ELECTRA attestations and break the for loop early" - correct the for loop place to limit attestation consolidations - fix `isValidShuffling()` for #7651 - unit tests are done in #7646 , since logic changes there I cannot bring them here --------- Co-authored-by: Tuyen Nguyen <[email protected]> Co-authored-by: Nico Flaig <[email protected]>
closing in favor of #7673 |
**Motivation** - packed attestations are currently sorted by new seen attesters, should be by effective balance - not enough metrics when producing packed attestations **Description** - for electra, retain up to 8 attestations per group. When getting attestations, we also get up to 8 of them (instead of 3) - track packed attestations by new seen effective balance - reevaluate every attestation after an attestation is included, see `getMostValuableAttestation()`. This means there is no useless attestations included - add a lot of metrics: - committee bits for each packed attestation - total committee members of each packed attestation - non-participation of each packed attestation - distance from block slot to attestation slot for each packed attestation - total effective balance for each packed attestations - scanned slots and termination reason - scanned attestations per scanned slot - returned attestations per scanned slot - total slots in pool at the time of producing block - total consolidations Closes #7544 **Testing** - see some metrics here #7646 (comment) - performance are the same on hoodi prod node <img width="846" alt="Screenshot 2025-04-08 at 16 09 17" src="https://github.com/user-attachments/assets/7ffb3bcb-7774-4383-b2e7-da1065ff8f97" /> --------- Co-authored-by: Tuyen Nguyen <[email protected]> Co-authored-by: Nico Flaig <[email protected]>
Motivation
Description
getMostValuableAttestation()
. This means there is no useless attestations includedCloses #7544
TODOs