IntersectMBO / IntersectMBO/ouroboros-consensus
Report uninteresting chain sync candidates
- Dominant language
- Haskell
- Stars
- 67
- Forks
- 43
- Avg merge
- 5d 13h
- Merged PRs (30d)
- 43
Description
The ChainSyncClient keeps following all candidate chains that we could theoretically still switch to, e.g., longer chains, forks that don't fork off more than `k` blocks in the past, but also *less interesting* candidates, e.g., a chain that is behind ours or a recent fork that is shorter than our chain.
In the *decentralised era* it will become more important to disconnect from such less interesting candidates. They should be degraded from *hot* to *warm* nodes.
To detect such nodes, introduce a new thread that watches all chain sync candidate chains and the current chain, so that it can give each candidate chain a "pointlessness" score, which can be used by the P2P governor to cycle out the nodes corresponding to the most pointless candidate chains. By having access to all candidate *and* the current chain, we have a better, *global* view of the node.
Let's make this a new thread as the ChainSyncClient is already complex enough.
Contributor guide
Assessment
This issue has not been assessed yet.