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

Rollup Node #49

Open
frisitano opened this issue Nov 28, 2024 · 1 comment
Open

Rollup Node #49

frisitano opened this issue Nov 28, 2024 · 1 comment
Milestone

Comments

@frisitano
Copy link
Collaborator

frisitano commented Nov 28, 2024

Overview

We should implement a rollup node that is responsible for driving the reth execution client via the engine API.

Rollup Node Functionality

  • verify that L1 messages are correctly ordered and included in blocks.
  • Gossip the latest blocks over it's p2p network.
  • validate consensus of blocks (assert the block was produced by the authorised sequencer)
  • Feed L2 block to reth execution client via engine API
  • Sync batches from L1 and determine finality of blocks
  • Issue fork choice updates via engine api
@greged93
Copy link
Collaborator

Below is a (very) high level overview of the design we can adopt for the RN. The idea is to keep the RN as a task running in the Reth process, allowing us to reuse the P2P network from the EL, all the while keeping a clear boundary of the RN, which would allow for easy extraction of the RN as a separate process if this is ever desired.

p2p_rollup_node

We leverage the NetworkManager, removing the block propagation PoS gate, allowing us to propagate the blocks. The NetworkManager contains a block_import field which allows to define a hook when the network imports a new block. This hook would send the block to the RN via a channel and return the result of the validation by the RN.

The RN can then decide to call the Engine API via a client.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

2 participants