flashbots / flashbots/rbuilder
Parent header sometimes not found via hash lookup even after canonical commit in reth
- Dominant language
- Rust
- Stars
- 567
- Forks
- 209
- PR merge metrics
- No merged PRs in 30d
Description
### Summary
We are observing cases where rbuilder fails to find the payload parent header via
`provider.header(parent_hash)` for several seconds, even though:
- the parent block has already been imported and committed to the canonical chain by reth
- the same block is immediately accessible via:
- HTTP RPC (`eth_getBlockByHash`)
- `provider.header_by_number(block-1)`
This causes repeated polling in `wait_for_block_header` and delays block building
in slot-critical paths.
---
### Observed behavior
1. Reth logs show the parent block is:
- received from consensus engine
- added to canonical chain
- committed
2. Immediately after, rbuilder receives payload attributes and starts polling:
```text
Payload parent header not found, trying again
Contributor guide
Research direction
Start at the wait_for_block_header path and compare provider.header(parent_hash) with provider.header_by_number(block-1) while reviewing the reported reth import and canonical-commit timing. Done means the parent header lookup no longer misses an already committed canonical block or causes repeated slot-critical polling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, blockchain
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100