Problem
When a new ETH block arrives while the producer is in WaitingAnnounceComputed (computing a mini-announce), DefaultProcessing::new_head transitions to Initial without creating a batch commitment for the current block.
Block-specific items (codes_queue, validator updates, rewards) are only aggregated during BatchCommitmentManager::create_batch_commitment. Chain transitions are recoverable via collect_not_committed_predecessors, but these block-scoped commitments are silently lost.
Context
Pre-existing behavior (existed before mini-announces), but mini-announces widen the window since the producer spends more time cycling through WaitingAnnounceComputed → ReadyForMiniAnnounce.
Documented as TODO at ethexe/consensus/src/validator/producer.rs:166.
Fix options
- Override
process_new_head for WaitingAnnounceComputed to trigger AggregateBatchCommitment with next_block saved (same pattern as ReadyForMiniAnnounce)
- Accept the current behavior since
collect_not_committed_predecessors provides partial recovery
Related
PR #5321 (mini-announces)
Problem
When a new ETH block arrives while the producer is in
WaitingAnnounceComputed(computing a mini-announce),DefaultProcessing::new_headtransitions to Initial without creating a batch commitment for the current block.Block-specific items (
codes_queue, validator updates, rewards) are only aggregated duringBatchCommitmentManager::create_batch_commitment. Chain transitions are recoverable viacollect_not_committed_predecessors, but these block-scoped commitments are silently lost.Context
Pre-existing behavior (existed before mini-announces), but mini-announces widen the window since the producer spends more time cycling through
WaitingAnnounceComputed → ReadyForMiniAnnounce.Documented as TODO at
ethexe/consensus/src/validator/producer.rs:166.Fix options
process_new_headforWaitingAnnounceComputedto triggerAggregateBatchCommitmentwithnext_blocksaved (same pattern asReadyForMiniAnnounce)collect_not_committed_predecessorsprovides partial recoveryRelated
PR #5321 (mini-announces)