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

Batched L1 Origin Updates #416

Open
Tracked by #12703
tynes opened this issue Oct 3, 2024 · 0 comments
Open
Tracked by #12703

Batched L1 Origin Updates #416

tynes opened this issue Oct 3, 2024 · 0 comments

Comments

@tynes
Copy link
Contributor

tynes commented Oct 3, 2024

The problem statement is that OP Stack L3s cannot work well with L2s that have a 1 second block time. The solution is to allow for batched L1 origin updates, which can be thought of as deriving L2 blocks in batches rather than one by one.

Right now the L2 derivation pipeline ingests L1 data by observing every L1 block and every L1 transaction in that block. It then builds a set of L2 blocks that "correspond" to an L1 block. This set of L2 blocks is called an epoch. The L2 derivation pipeline needs to observe all L1 transactions and logs to make sure that it processed all of the information required for the L2 to correctly sync. This adds a bit of extra overhead to the proof system, but works fine when we consider L1 at 12 second block time and L2 at 2 second block time.

Due to this epoch based design, there is an assumption that the L2 block time is smaller than the L1 block time. The OP Stack does not currently support sub second block times.

This means for the case of L3s deployed on chains with a 1 second block time, they will have trouble operating because of the assumption that the L3 block time is smaller than the L3 block time. If there is any hiccup in the L3 system, it will fall behind due to needing to process each L2 block individually. The way to fix this is to ingest L2 blocks in chunks during L3 derivation rather than one by one. This will allow the system to keep up with 1 second block times. What this looks like in practice is "batched L1 origin updates". This could be similar to span batches but for L1 origin updates.

Some discussion:

Depends on #82

Nice to have:

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

No branches or pull requests

1 participant