unit-e
unit-e copied to clipboard
Fork choice and commits-based sync enchantments
It's a TODO list after #525
- [ ] fork choice: prefer forks with votes instead of insta finalized
- [x] fork_choice: more tests (like two chains started from the same finalized checkpoint but with different justified checkpoints later)
- [x] add commits merkle root to the header
- [ ] forbid invalidating behind the last finalized checkpoint
- [ ] add tests (fixes?) for forkchoice + invalidateblock scenario
- [ ] detect whether peer is trying to send more than one dynasty
- [x] ~DoS commits sender if state processed from the full block differs from one given from commits.~ Not relevant anymore, we trust commits.
- [x] Integrate with net_processing better (inflight, limits, etc.)
- [x] Detect message overflow when sending commits.
- [x] Update validation (in CheckBlockIndex we need to take into account disconnected indexes with greater work) -- @kostyantyn addressed this in #525.
- [x] Get rid of esperanza::FInalizationState::GetState, Init, Reset.
- [ ] Use const in function parameters
- [x] Change the cache in Dependecy injector style -- #634.
- [x] Split StateStorage into two components: storage and manager -- #634.