-
Notifications
You must be signed in to change notification settings - Fork 978
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
Remove latest_execution_payload_header
from the beacon state
#3612
Comments
Nichebiche |
In general, agree that it's not needed in the beacon state. However, the issue mentioned about tracking structures etc are still prevalent even after that, as the ExecutionPayload is also in the beacon block body. If also targeting the beacon block body, this could be combined with transitioning the EL block header to SSZ. That also solves the repetitive effort associated with EL block header extensions that have spawned entire EL-only frameworks such as EIP-7685, and aligns the EL and CL block structures, removing the cited class of bugs such as endianness etc – CL and EL would both talk the same language then, and also unlock memory sharing across CL / EL components. One aspect to keep in mind as well is that for optimistic sync it is required that the CL can self-validate the EL block hash. That leaves only two solutions:
|
Probable for positive outcome |
The Beacon State tracks the latest execution payload header in full, but the only thing that this is used for is to check that the parent hash is the right one. We should only track the latest block hash instead.
Every change in the execution header forces clients to keep these changes on the beacon state and track new structures. There have been numerous marshalling bugs because of endinannes, large number libraries need to be imported and maintained up to date on the CL without any need since these structures should be opaque as they are not used on the CL.
The text was updated successfully, but these errors were encountered: