Skip to content

Gloas spec v1.7.0-alpha.5 and beacon_chain tests#8998

Merged
mergify[bot] merged 132 commits intosigp:unstablefrom
michaelsproul:fix-pruning-gloas
Apr 21, 2026
Merged

Gloas spec v1.7.0-alpha.5 and beacon_chain tests#8998
mergify[bot] merged 132 commits intosigp:unstablefrom
michaelsproul:fix-pruning-gloas

Conversation

@michaelsproul
Copy link
Copy Markdown
Member

@michaelsproul michaelsproul commented Mar 18, 2026

Issue Addressed

Fix database pruning post-Gloas

Proposed Changes

  • Fix DB pruning logic (and state summaries DAG)
  • Get the beacon_chain tests running with FORK_NAME=gloas 🎉

Additional Info

EF tests are blocked on:

Implements:

Builds on:

TODO:

  • Delete BeaconState::is_parent_block_full (it is deleted from spec)
  • Rename queue_builder_payment

@michaelsproul michaelsproul changed the title Fix pruning gloas Gloas database pruning & beacon_chain tests Mar 18, 2026
@michaelsproul
Copy link
Copy Markdown
Member Author

There are a lot more failing tests here than I realised. Idk what I was smoking when I thought they were all passing :(

@eserilev eserilev mentioned this pull request Mar 24, 2026
40 tasks
@michaelsproul michaelsproul added the ready-for-review The code is ready for review label Apr 20, 2026
Copy link
Copy Markdown
Member

@eserilev eserilev left a comment

Choose a reason for hiding this comment

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

just the block replayer simplifications alone make me so happy that we aren't dealing with the dual-state transition architecture

looks really good. I still haven't finished reviewing but super stoked about this. Thanks for all your hard work here

Comment thread beacon_node/beacon_chain/src/block_production/mod.rs Outdated
Comment thread beacon_node/beacon_chain/src/block_production/mod.rs Outdated
Comment thread beacon_node/beacon_chain/src/beacon_chain.rs Outdated
Comment thread beacon_node/beacon_chain/src/beacon_chain.rs
Comment thread beacon_node/beacon_chain/src/beacon_chain.rs Outdated
Comment thread beacon_node/beacon_chain/tests/validator_monitor.rs Outdated
Comment thread beacon_node/store/src/hot_cold_store.rs Outdated
Comment thread consensus/fork_choice/src/fork_choice.rs
Comment thread consensus/fork_choice/src/fork_choice.rs Outdated
Comment thread consensus/state_processing/src/genesis.rs
Comment thread consensus/state_processing/src/per_block_processing.rs Outdated
Comment thread beacon_node/beacon_chain/tests/store_tests.rs Outdated
Comment thread beacon_node/beacon_chain/tests/store_tests.rs Outdated
Comment thread beacon_node/beacon_chain/tests/store_tests.rs Outdated
Copy link
Copy Markdown
Collaborator

@dapplion dapplion left a comment

Choose a reason for hiding this comment

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

Initial pass, will continue today

let suggested_fee_recipient = execution_layer
.get_suggested_fee_recipient(proposer_index)
.await;
let slot_number = if fork.gloas_enabled() {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Why this guard if this function is gloas only?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Removed in

Option<Hash256>,
PayloadStatus,
Option<Arc<SignedExecutionPayloadEnvelope<T::EthSpec>>>,
),
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Should this become a struct for clarity?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Refactored in

Comment on lines +573 to +574
let bid = block.body().signed_execution_payload_bid()?.message.clone();
let parent_bid = state.latest_execution_payload_bid()?.clone();
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Unnecessary clones?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Removed the one from the block, but to keep things looking like the spec I left the clone on parent_bid. We run into issues with multiple borrows when calling apply_parent_execution_payload otherwise (can't borrow &mut state and state.latest_execution_payload_bid simultaneously). Clarity probably most important here, as cloning the bid is likely trivial from a performance PoV.

Comment thread consensus/state_processing/src/block_replayer.rs
@michaelsproul michaelsproul changed the title Gloas database pruning & beacon_chain tests Gloas spec v1.7.0-alpha.5 and beacon_chain tests Apr 20, 2026
Copy link
Copy Markdown
Member

@eserilev eserilev left a comment

Choose a reason for hiding this comment

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

LGTM!!

@eserilev eserilev added the ready-for-merge This PR is ready to merge. label Apr 21, 2026
@eserilev
Copy link
Copy Markdown
Member

@mergify queue

@mergify
Copy link
Copy Markdown

mergify Bot commented Apr 21, 2026

Merge Queue Status

🛑 Queue command has been cancelled

@mergify mergify Bot added the queued label Apr 21, 2026
mergify Bot added a commit that referenced this pull request Apr 21, 2026
@mergify
Copy link
Copy Markdown

mergify Bot commented Apr 21, 2026

Merge Queue Status

This pull request spent 29 minutes 43 seconds in the queue, including 28 minutes 16 seconds running CI.

Required conditions to merge

mergify Bot added a commit that referenced this pull request Apr 21, 2026
@mergify mergify Bot merged commit cf3d5e2 into sigp:unstable Apr 21, 2026
38 checks passed
@mergify mergify Bot removed the queued label Apr 21, 2026
@dapplion
Copy link
Copy Markdown
Collaborator

Did a post-merge review and could not find any issues, thank you for the hard work here!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

database gloas ready-for-merge This PR is ready to merge. ready-for-review The code is ready for review test improvement Improve tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants