Skip to content
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

Isthmus: Updates for L2 withdrawals root in header #12767

Closed
wants to merge 11 commits into from

Conversation

vdamle
Copy link
Contributor

@vdamle vdamle commented Nov 1, 2024

Description

This PR proposes changes to add:

  • storage root of the L2ToL1MessagePasser contract to the ExecutionPayload.
  • a new p2p gossip topic (v4) for Isthmus blocks.
  • update the SSZ encoding & gossip to account for with withdrawalsRoot.
  • op-program update to use the withdrawalsRoot from the header, instead of computing the storage root
    when computing L2OutputRoot.
  • config changes to add Isthmus hard fork.

Tests

  • Attributes check test
  • TODO - Action test
  • TODO - gossip test

Additional context

Addresses changes to Consensus Layer to support L2 withdrawals root in the block header, as outlined in #12044

Spec changes: ethereum-optimism/specs#394
EL changes:

Metadata

None.

@vdamle vdamle requested review from protolambda and tynes November 1, 2024 01:44
@vdamle vdamle force-pushed the vd/l2-withdrawals-root branch 3 times, most recently from d6de586 to b8de974 Compare November 5, 2024 15:53
vdamle added 11 commits November 6, 2024 09:36
* add withdrawalsRoot to ExecutionPayload.
* add a `BlocksV4` topic to p2p gossip and check for non-empty
  withdrawalsRoot on v4 topic.
* add checks for whether block is type v4 and apply relevant
  marshal/unmarshal for l2 withdrawals root.
* attributes check
* outputV0AtBlock api update
* minor type updates
and fixes for a few failures
when computing L2OutputRoot, no need to re-compute the storage root
if Isthmus is active.
* `RPCResponseCheck` is an interface that currently has a function
that validates withdrawals.
* There's an implementation of this interface for L1 and L2
* L1's response checker validates that the withdrawals list matches
  the root in the header.
* L2's response checker validates that the withdrawals list is empty
  when the withdrawalsRoot is not nil
will move to a separate PR
@vdamle vdamle force-pushed the vd/l2-withdrawals-root branch from b8de974 to fc6b673 Compare November 6, 2024 15:45
@vdamle
Copy link
Contributor Author

vdamle commented Nov 6, 2024

Closing this PR in lieu of the following stacked PRs:

📚 $\text{Stack Overview}$

Pulls submitted in this stack:

This comment was automatically generated by st.

@vdamle vdamle closed this Nov 6, 2024
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.

1 participant