Skip to content

feat: check/execute EL payload on certify#167

Open
matthias-wright wants to merge 4 commits intodevelopfrom
m/check-payload-on-certify
Open

feat: check/execute EL payload on certify#167
matthias-wright wants to merge 4 commits intodevelopfrom
m/check-payload-on-certify

Conversation

@matthias-wright
Copy link
Copy Markdown
Collaborator

Currently the EL payload is not verified by Simplex. This is an optimization to avoid EL payload execution on the consensus hot path. Instead, the EL payload of notarized/finalized blocks is verified when the blocks are executed by the finalizer actor.
If a block contains an invalid EL payload, Reth will reject and skip it. The block stays in Summit's chain in case it was a finalized block. Summit keeps track of Reth's forkchoice.
The consequence of this is that Summit's height might be larger than Reth's height.

This PR explores an alternative approach, where the EL payload is verified in CertifiableAutomaton::certify. This will prevent finalizations of blocks with invalid EL payload.
Benchmarks show that this will reduce the blocks per second by around 5.9%.

Changes:

  • Call check_payload in CertifiableAutomaton::certify
  • Discard notarized blocks in the finalizer actor if the EL payload is invalid (no chance of finalization)
  • Throw an error and initiate shutdown in the finalizer actor if a finalized block contains an invalid EL payload

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