-
Notifications
You must be signed in to change notification settings - Fork 4
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
Scroll EvmExecutor
implementation
#5
Comments
It seems there is no |
Sorry I should have been explicit when referring to what we need to implement. Here is an example of the OpEvmExecutor. We would also need to implement associated types such as |
OverviewIn order to execute a block using the Scroll block building rules, we implement our own Scroll StrategyImplementing this trait allows us to define the following:
|
If you mean the coinbase header field, it is currently used by Clique for adding/removing an authorized block producer. But during execution the actual fee recipient is the fee vault: it receives all fees, including base fee, priority fee, and L1 data fee.
Where are these validations performed? Would make sense to have something like
I thought all fees are deducted inside revm, no? Is there any fee-related bookkeeping that we need to do in the reth codebase?
There was a special state transition during the Curie hard fork (similar to the DAO fork rule) that might need to be added here. |
Yes I was hoping to be able to use the coinbase field from the block header, but will introduce a configuration of the fee recipient set to the fee vault.
As far as I could see, block body validations are performed during Consensus checks. Consensus is ran during live sync but not during backfill. I think this is fine but let me know if you think this could cause an issue.
Right, I should have mentioned this: the computed L1 fee is part of the receipt, not used for fee deduction (performed in revm as you mentioned).
Indeed, this would need to be applied in |
I don't think this will cause any issues, thanks for sharing the link.
Yes, you're right, this should be done pre-execution, not during post-execution as I originally suggested. |
Describe the feature
Overview
To execute blocks using
scroll-revm
we must implement anEvmExecutor
(and associated assets) that wrapsscroll-revm
and executes blocks. An example ofoptimism
specificExecutor
assets can be found here. Logic from thestateless-block-verifier
can be used as a guide for the block execution logic.Additional context
No response
The text was updated successfully, but these errors were encountered: