-
-
Notifications
You must be signed in to change notification settings - Fork 414
feat: add gloas containers #8464
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
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## unstable #8464 +/- ##
============================================
+ Coverage 52.22% 52.25% +0.03%
============================================
Files 853 852 -1
Lines 64899 64973 +74
Branches 4767 4769 +2
============================================
+ Hits 33894 33954 +60
- Misses 30935 30950 +15
+ Partials 70 69 -1 🚀 New features to boost your workflow:
|
Performance Report✔️ no performance regression detected Full benchmark results
|
| currentSyncCommittee: altairSsz.SyncCommittee, | ||
| nextSyncCommittee: altairSsz.SyncCommittee, | ||
| // Execution | ||
| // latestExecutionPayloadHeader: ExecutionPayloadHeader, // Removed in GLOAS:EIP7732 |
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.
this was removed but ExecutionPayloadBid was added, we should make sure we are update to date with v1.6.0-beta.0 which is the spec that will be used for devnet-0
should look into how we can activate ssz static tests already
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.
should look into how we can activate ssz static tests already
Probably non-trivial to do because SkipOpts.skippedForks is applied to all spec tests. Can't run ssz static tests only for gloas.
But I can run it locally and see the result
| const stateGloas = state as CompositeViewDU<typeof ssz.gloas.BeaconState>; | ||
| stateGloas.fork.previousVersion = config.GLOAS_FORK_VERSION; | ||
| stateGloas.fork.currentVersion = config.GLOAS_FORK_VERSION; | ||
| stateGloas.latestExecutionPayloadHeader = |
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.
might need to initialize latest_execution_payload_bid here
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.
might need to initialize
latest_execution_payload_bidhere
Why do we need to do it?
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.
for same reason we need a default value for latestExecutionPayloadHeader, it's gonna need some value in the genesis state
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.
can keep this out for now, we are not starting genesis from gloas for now anyways in our tests
|
/gemini review |
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.
Code Review
This pull request introduces the SSZ container definitions for the new gloas fork, including new types for the beacon block body, beacon state, and various attestation-related structures. The changes are mostly additive, preparing the codebase for the upcoming fork. The integration of these new types is partially deferred, as indicated by TODO comments, which aligns with the PR description. My review found a minor but important typo in one of the new BeaconState fields, for which I've suggested a fix.
| BeaconBlockBody: electra.BeaconBlockBody; | ||
| BeaconState: gloas.BeaconState; | ||
| SignedBeaconBlock: gloas.SignedBeaconBlock; | ||
| BeaconBlock: electra.BeaconBlock; // TODO GLOAS: Use Gloas type |
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.
This is temporarily set to electra because there is a lot of type issue that needs to be fixed with the latest definition of gloas.BeaconBlock and others
| currentSyncCommittee: altairSsz.SyncCommittee, | ||
| nextSyncCommittee: altairSsz.SyncCommittee, | ||
| // Execution | ||
| // latestExecutionPayloadHeader: ExecutionPayloadHeader, // Removed in GLOAS:EIP7732 |
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.
should look into how we can activate ssz static tests already
Probably non-trivial to do because SkipOpts.skippedForks is applied to all spec tests. Can't run ssz static tests only for gloas.
But I can run it locally and see the result
|
/gemini review |
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.
Code Review
This pull request introduces the SSZ container types for the upcoming gloas fork, which includes significant changes related to proposer-builder separation. The changes are well-contained and primarily involve adding new type definitions in packages/types/src/gloas/. The PR also updates test configurations to accommodate the new spec version. The approach of adding TODO markers for full integration in a future PR is reasonable for incremental development. My review focuses on improving the maintainability of the new SSZ type definitions by reducing code duplication and making them more declarative.
nflaig
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.
LGTM
| const stateGloas = state as CompositeViewDU<typeof ssz.gloas.BeaconState>; | ||
| stateGloas.fork.previousVersion = config.GLOAS_FORK_VERSION; | ||
| stateGloas.fork.currentVersion = config.GLOAS_FORK_VERSION; | ||
| stateGloas.latestExecutionPayloadHeader = |
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.
can keep this out for now, we are not starting genesis from gloas for now anyways in our tests
Update gloas types in `packages/types/src/types.ts` to use the containers defined in #8464 and fix all type error that come along with it --------- Co-authored-by: Nico Flaig <nflaig@protonmail.com>
|
🎉 This PR is included in v1.35.0 🎉 |
Add gloas containers and minimal change to gloas type.
All remaining gloas type update will be in the next PR
Part of #8439