ObolNetwork / ObolNetwork/charon
Non-deterministic `doubleEagerLinearRoundTimer`
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 222
- Forks
- 138
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 35
Description
🐞 Bug Report
Description
Revisit doubleEagerLinearRoundTimer.
The current behavior is non-deterministic which is mandatory for QBFT.
This timer persists the state t.firstDeadlines and tries to adjust the resulting timeouts, which we believe is wrong.
Has this worked before in a previous version?
No
🔬 Minimal Reproduction
Check doubleEagerLinearRoundTimer.Timer() implementation.
🔥 Error
It produces non-deterministic intervals.
🌍 Your Environment
NA
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the doubleEagerLinearRoundTimer.Timer() implementation and checking the minimal reproduction described in the issue. Trace how t.firstDeadlines is persisted and used to adjust timeouts. Done means repeated timer runs produce deterministic intervals suitable for QBFT.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100