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

experimental: transaction ordering policy #27

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

tynes
Copy link
Contributor

@tynes tynes commented Feb 4, 2024

Description

Explore what applying a predicate to the inputs as part of the
derivation pipeline would look like. The predicate is defined
using evm bytecode and can therefore be quite flexible based
on the chain operator's needs. The payload is dropped if the
predicate returns false.

The chain operator can configure the predicate's bytecode
on L1 using the system config contract.

In practice, this allows for static analysis of the ExecutionPayload
before execution. If some chain operator defined invariant
about the ExecutionPayload isn't held to be true, then
the payload is dropped. This can be used to enforce constraints
on the way that block builders can build blocks.

Explore what applying a predicate to the inputs as part of the
derivation pipeline would look like. The predicate is defined
using evm bytecode and can therefore be quite flexible based
on the chain operator's needs. The payload is dropped if the
predicate returns false.

The chain operator can configure the predicate's bytecode
on L1 using the system config contract.
@tynes
Copy link
Contributor Author

tynes commented May 14, 2024

It would be good to have a view function on the contract or in another predeploy that accepts a block body and returns a bool if the block is valid or not. This will help block builders to know they are creating valid blocks

@tynes
Copy link
Contributor Author

tynes commented Jun 11, 2024

For this to work with deposits, dropped blocks would need to be mapped to deposits only blocks per ethereum-optimism/design-docs#20

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