ethereum-optimism / ethereum-optimism/optimism
proposer: descendants of pending games can become canonical
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
When a game’s super-root is unavailable (ex: the `superroot_atTimestamp` RPC fails), the proposer marks that game `Pending` and excludes it from the DAG. However, an otherwise-valid child of that pending game can still be inserted into the DAG, selected as canonical head, and extended by the honest proposer.
If the pending ancestor later proves invalid, the entire descendant chain is invalid and proposer bonds may be lost.
## Expected behavior
A game should not become parent-eligible until its full ancestry is known valid. Descendants of pending or unknown parents should remain pending and be reconsidered when their ancestors are validated.
A regression test should cover:
1. Pending game `X`.
2. Valid child `Y` referencing `X`.
3. Verify `Y` is not selected or extended while `X` remains pending.
Because games are scanned newest-first, checking the pending set during individual game fetching is insufficient; ancestry must be resolved after the scan.
Contributor guide
Assessment
This issue has not been assessed yet.