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

Interop: block building (sequencer update) #10891

Open
Tracked by #10896
tynes opened this issue Feb 9, 2024 · 2 comments · May be fixed by ethereum-optimism/op-geth#372
Open
Tracked by #10896

Interop: block building (sequencer update) #10891

tynes opened this issue Feb 9, 2024 · 2 comments · May be fixed by ethereum-optimism/op-geth#372
Assignees

Comments

@tynes
Copy link
Contributor

tynes commented Feb 9, 2024

Update the block building code in op-geth to use the superchain backend to validate executing messages. It should work with unsafe messages since we are optimizing for low latency.

This looks like adding an RPC client for op-supervisor into the op-geth block building code here that drops transactions that include invalid executing messages. If a block is built that includes an invalid executing message, it will result in the block being considered invalid. See ethereum-optimism/specs#128 (comment) for some thoughts on the topic.

The block-building and tx-pool invalidation code must be covered in op-e2e tests.

On PBS API

We want to add in a PBS API per ethereum-optimism/specs#116. We don't need to utilize the PBS API as part of interop directly. If we did want to utilize it, we would fork op-geth into op-geth-interop and add the block building code there and then use that geth to build blocks. This seems like it just adds extra infra + dev requirements that aren't necessary, its easier to just add the diff to op-geth directly

@hamdiallam hamdiallam changed the title Interop: Block Building Interop(Low Lattency): block building Feb 28, 2024
@hamdiallam hamdiallam changed the title Interop(Low Lattency): block building Interop(Low Latency): block building Feb 28, 2024
@protolambda protolambda changed the title Interop(Low Latency): block building Interop: block building Apr 1, 2024
@protolambda protolambda self-assigned this Apr 1, 2024
@tynes tynes transferred this issue from another repository Jun 17, 2024
@tynes tynes transferred this issue from ethereum-optimism/temp-export Jun 17, 2024
@tynes tynes added this to the Interop: Devnet 1 milestone Jun 17, 2024
@axelKingsley
Copy link
Contributor

We want to add in a PBS API per ethereum-optimism/specs#116. We don't need to utilize the PBS API as part of interop directly. If we did want to utilize it, we would fork op-geth into op-geth-interop and add the block building code there and then use that geth to build blocks. This seems like it just adds extra infra + dev requirements that aren't necessary, its easier to just add the diff to op-geth directly

Totally agree, PBS would be the location for this work, but wouldn't change the work significantly.

Another way of framing this is that filtering out invalid "executing messages" is a matter of protocol, not of policy. Therefore, delivering only protocol-acceptable transactions to the block builder is a concern which lives outside of the block builder.

@tynes
Copy link
Contributor Author

tynes commented Jul 8, 2024

I believe we will want a similar architecture to what is used today - a set of sentry nodes that receive inbound transactions and forward them to the sequencer. These sentry nodes would be configured to execute the transactions when entering the mempool, look for ExecutingMessage events and check them against op-supervisor before accepting them into the mempool and forwarding the transactions to the sequencer. The sequencer would still need to double check when building the block due to the system being eventually consistent. Not ideal but works

@protolambda protolambda changed the title Interop: block building Interop: block building (sequencer update) Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In review
Development

Successfully merging a pull request may close this issue.

3 participants