Optimisations relating to get_expected_withdrawals#9314
Merged
mergify[bot] merged 7 commits intoJul 2, 2026
Merged
Conversation
eserilev
approved these changes
Jul 2, 2026
Member
There was a problem hiding this comment.
prepare_beacon_proposer gets called in proposer_prep_service.rs 4sec before each slot. it also gets called in
- state_advance_timer.rs once per slot for current slot + 1
- canonical_head after every fork choice head update
register_validator gets hit once per epoch, so it wasn't a reliable way to ensure prepare_beacon_proposer gets called in the first place.
this change looks good to me and should be a nice optimization esp at epoch boundaries when we are busy doing other epoch transition stuff.
|
Queued — the merge queue status continues in this comment ↓. |
Merge Queue Status
This pull request spent 30 minutes in the queue, including 28 minutes 15 seconds running CI. Required conditions to merge
|
This was referenced Jul 2, 2026
michaelsproul
added a commit
that referenced
this pull request
Jul 9, 2026
Tweaking/optimising `get_expected_withdrawals` on the pre-Gloas path, after the removal of some optimisations in: - #9102 - Remove `prepare_beacon_proposer` calls from `register_validator`. These calls were: heavily duplicated, happening _too early_ (at the start of the slot before the block arrived), expensive on epoch boundaries (forcing an early epoch transition), _and_ unnecessary. They are completely safe to remove because the scheduled proposer preparation routine exists. - Instrument `get_expected_withdrawals`/`prepare_beacon_proposer` to find more unexpected callers. Co-Authored-By: Michael Sproul <michael@sigmaprime.io> Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io> Co-Authored-By: Michael Sproul <michaelsproul@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue Addressed
Tweaking/optimising
get_expected_withdrawalson the pre-Gloas path, after the removal of some optimisations in:ForkchoiceUpdatebased on updatedPayloadStatus#9102Proposed Changes
prepare_beacon_proposercalls fromregister_validator. These calls were: heavily duplicated, happening too early (at the start of the slot before the block arrived), expensive on epoch boundaries (forcing an early epoch transition), and unnecessary. They are completely safe to remove because the scheduled proposer preparation routine exists.get_expected_withdrawals/prepare_beacon_proposerto find more unexpected callers.Additional Info
K-37