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

External Block Production Sidecar #86

Merged
merged 5 commits into from
Oct 9, 2024
Merged

Conversation

dmarzzz
Copy link
Contributor

@dmarzzz dmarzzz commented Sep 19, 2024

Description

This document proposes a sidecar to op-node for requesting block production from an external party.

Tests

No tests have been added, but the Software Maintenance section details a path to incorporating in standard OP Stack e2e testing after an initial trial.

Additional context

By decoupling the block construction process from the Sequencer's Execution Engine, operators can tailor transaction sequencing rules without diverging from the standard Optimism Protocol Client. This flexibility allows individual chains to experiment on seqeuncing features, providing a means for differentiation. This minimum viable design also includes a local block production fallback as a training wheel to ensure liveness and network performance in the event of local Block Builder failure.

Metadata

  • This work started with this PR in the spec repo but has been moved here as the work is experimental

Copy link
Contributor

@tynes tynes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally in favor of this approach. There is a thought that eventually we will want to embed the EL and CL in a single binary when we are trying to push the gas limits and block times. Using the proxy approach works great for now, enables teams to work in parallel without blocking each other on code review/merge

Would be super curious to see if you have a link to the proxy that you are working on. This would be really nice to include the proxy and config to spin up the system in the kurtosis OP Stack package so that people are aware that it exists and can play around with their own builders on a devnet

@ferranbt
Copy link
Contributor

We have an experimental version in Go here and a more production-ready version in Rust here.

@dmarzzz
Copy link
Contributor Author

dmarzzz commented Sep 24, 2024

Additionally our goal with the rust version is to migrate it to a reth module/extension so that should totally work in the single binary world in the event this isn't merged upstream by then

@tynes tynes merged commit 9c3f765 into ethereum-optimism:main Oct 9, 2024
@odyslam
Copy link

odyslam commented Oct 25, 2024

Hey @dmarzzz @tynes we are building our solutions based on the experimental Local Builder API PR, assuming that it would get merged eventually.

Does that mean that the sidecar approach is the preferred method for now instead of the other spec? If yes, that means we should change our approach to interface with the proxy here and not expecting the API support, is that correct?

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.

4 participants