Skip to content

v3.8.1#257

Merged
leobago merged 4 commits into
masterfrom
dev
Apr 13, 2026
Merged

v3.8.1#257
leobago merged 4 commits into
masterfrom
dev

Conversation

@Zyra-V21
Copy link
Copy Markdown
Collaborator

Summary

🤖 Generated with Claude Code

Zyra-V21 added 4 commits April 9, 2026 12:28
The wait-for-all-historical-blocks loop (c2f0680) iterated from initSlot
to headSlot, but CleanUpTo evicts blocks older than 5 epochs during
historical processing. This caused Wait() to deadlock on blocks that had
already been processed and removed from the cache.

Restrict the wait range to the last 5 epochs, matching the CleanUpTo
retention window. Blocks older than this were already processed and
persisted; blocks within this range may still be in-flight and need
to be waited for.
)

Replace the integer counter with a map[epoch]bool set to track which
epochs have been aggregated in the current window. This prevents:
- Double-counting when AdvanceFinalized reprocesses an epoch
- Accepting epochs from already-flushed windows

The counter approach caused a cumulative window shift: each reprocessing
event incremented the counter without contributing a new epoch, shifting
all subsequent block proposer rewards into the wrong aggregation window.
#251)

When GetBlockReceipts fails during ProcessBlock, AgnosticTransactions
stays empty and BlockGasFees persists f_reward_fees=0. Add a recovery
step in processBlockRewards that retries fetching receipts before
calculating fees — by epoch processing time the EL has usually recovered.
Copy link
Copy Markdown
Member

@leobago leobago left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@leobago leobago merged commit 0ccb525 into master Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants