-
Notifications
You must be signed in to change notification settings - Fork 945
Always use committee index 0 when getting attestation data #8171
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 required checks have failed. Could you please take a look @chong-he? 🙏 |
|
This feature conflicted in the past with DVT setups which rely on the committee index. Is that not the case anymore after Electra? |
Not sure which issue are you referring to about the DVT conflict? For post-Electra, when VC requests to the BN, it must have a |
|
@dapplion I can speak of Charon here. We did have conflicts indeed, but it was fixed in v1.4.3 (~5 months ago), a week after Electra fork. Edit: To be precise, we had issues when a DV cluster had mix of VCs, some asking for attestation data with committee index 0, while others for the actual committee index. |
macladson
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have to handle attestations pre-Electra as well? Seems like we would only request committee 0 even pre-Electra, but I could be misunderstanding the fork flow.
Note that this will spawn twice as many tasks (one for attestations, one for aggregates) but I actually think that in this case it will improve performance despite the context-switching overhead since these tasks are likely IO bound and so can yield quicker than before. (Plus of course the huge reduction in BN calls makes this significantly better of course)
no we don't need to handle constructing pre-electra attestations. we actually removed a lot of pre-electra attestation logic when we moved to |
Co-authored-by: Mac L <mjladson@pm.me>
|
Seeing very high values for the |
|
This pull request has merge conflicts. Could you please resolve them @chong-he? 🙏 |
|
Marking this as backwards-incompat, as it will technically break pre-Electra devnets. |
|
Some required checks have failed. Could you please take a look @chong-he? 🙏 |
eserilev
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work, LGTM!!
Merge Queue Status
✅ The pull request has been merged This pull request spent 41 minutes 6 seconds in the queue, including 38 minutes 38 seconds running CI. Required conditions to merge
|

Issue Addressed
Proposed Changes
Split the function
publish_attestations_and_aggregatesintopublish_attestationsandhandle_aggregates, so that for attestations, only 1 task is spawned.Additional Info
Tested with Kurtosis on
minimalpreset, which has amax_committees_per_slotof 4. The number of times the VC calls the BN for the endpoint/eth/v1/validator/attestation_datais given by the metric:http_api_paths_times_count{path="v1/validator/attestation_data"}For 100 slots of data:
Before:
http_api_paths_times_count{path="v1/validator/attestation_data"} 398After:
http_api_paths_times_count{path="v1/validator/attestation_data"} 100From the test output, we see that the number of calls to the BN is reduced. On mainnet, the
max_committee_per_slotis 64, the VC should only call the BN only once per slot for this endpoint