-
Notifications
You must be signed in to change notification settings - Fork 38
Description
Motivation
Currently, we support benchmarking op-rbuilder as the sequencer, then passing the fully built blocks to reth as the validator. This is great for testing out sequencer speed of flashblocks because we can collect metrics on each flashblock that's built, but it does not allow us to test validation speed of flashblocks.
Flashblock validation speed is important for any users that want to do anything useful with flashblocks. We're also not getting the true validation speed of our recommended node configuration without benchmarking validation.
This will also help compare the performance before and after flashblock access lists are implemented.
Solution
During sequencer execution, collect flashblocks emitted from the websocket in addition to generated payloads.
During validator execution, replay the flashblocks that were received along with the generated payloads that are already replayed. These will be replayed at the exact time they were expected from the sequencer (we could add config options to test adding a jitter to these timings as well).
This allows us to keep sequencer and validator performance separate (they're never running at the same time) while also allowing us to test flashblock validation speed rather than just the full payload validation.