ethereum-optimism / ethereum-optimism/optimism

op-node: improve temporary error-recovery on block-sealing

Open
#11,134 1 comment 0 reactions 0 assignees View on GitHub
A-op-node
Dominant language
Go
Stars
6.5k
Forks
4k
Avg merge
2d 18h
Merged PRs (30d)
134

Description

Currently, as sequencer and derivation pipeline, we restart/reattempt block-building from the attributes input, rather than trying to recover the existing payload-job.

In the cases of a context-timeout the block-building job has likely expired, and if the job-identifier is unknown, then it won't be retrievable either anymore.

But in some cases it (the `engine_getPayload` call) can be re-attempted, and successfully return, without redoing block-building work. This can be improved in the sequencing code.

See review comments by Adrian in https://github.com/ethereum-optimism/optimism/pull/10991 for additional context.

Contributor guide

Open the contributing guide

Research direction

Start by reading the review comments in pull request #10991 and tracing the sequencing code around engine_getPayload. Compare the current retry path with cases where the existing payload-job can still be retrieved. Done means temporary failures can re-attempt engine_getPayload without repeating block-building work when recovery is possible.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.