IntersectMBO / IntersectMBO/ouroboros-consensus

Report uninteresting chain sync candidates

Open
#671 5 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.