Skip to content

Add support for benchmarking flashblock validation #138

@meyer9

Description

@meyer9

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.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions