Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Repairs can stall on a dead fork #10245

Open
carllin opened this issue May 26, 2020 · 0 comments
Open

Repairs can stall on a dead fork #10245

carllin opened this issue May 26, 2020 · 0 comments
Assignees
Milestone

Comments

@carllin
Copy link
Contributor

carllin commented May 26, 2020

Problem

Repairs have a limited quota of requests per iteration, which can be exhausted on a dead fork.

For example imagine a fork structure that looks something like:

          / ----3 -----4 (minor fork)
0 -> 1 -> 2
          \-----------------5-----6-----7---...---1000 (major fork)

Now if slot 3 has more than MAX_REPAIR_LENGTH number of shreds (very probable after a partition, it's all ticks), then there's a chance another validator trying to repair could be missing more than MAX_REPAIR_LENGTH shreds in slot 3. Because repair searches for missing slots starting from the root, in order, then it'll saturate all its repair bandwidth at slot 3, and never try to repair the main fork

Proposed Solution

Weight forks based on number of validators that have

  1. > 34% confirmed a fork
  2. If not 1), then number of validators that have completed the fork
@carllin carllin added this to the v1.3.0 milestone May 26, 2020
@carllin carllin self-assigned this May 26, 2020
@mvines mvines modified the milestones: v1.3.0, v1.4.0 Aug 5, 2020
@mvines mvines modified the milestones: v1.4.0, v1.5.0 Oct 8, 2020
@mvines mvines modified the milestones: v1.5.0, v1.6.0 Dec 17, 2020
@mvines mvines modified the milestones: v1.6.0, v1.7.0 Mar 11, 2021
@mvines mvines modified the milestones: v1.7.0, v1.8.0 May 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants