ethereum-optimism / ethereum-optimism/optimism
op-node: improve temporary error-recovery on block-sealing
- 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
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