feat: new leader schedule by vote delegation #4597
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
SIMD-0180 proposes a new change to the leader schedule algorithm to use vote account delegations rather than total node delegations.
Summary of Changes
Switch over to the new leader schedule algorithm using a feature gate. The new leader schedule algorithm will be applied for the epoch immediately following the epoch in which the feature gate was activated in.
A new constructor was added to the existing
LeaderSchedule
struct which has a vote delegation map as a parameter rather than a list of node ids and their accumulated stakes. This PR implements the new leader schedule algorithm but does not add new data structures or APIs for looking up what the vote account is for a particular slot. These changes can come later in non-consensus impacting refactorings.Fixes #
Feature Gate Issue: #4573