mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-15 17:21:08 +00:00
[Feature] Part 1: add TargetList for validator ranking (#12034)
* [Feature] Part 1: add TargetList for validator ranking * remove redundant todo * remove typo * cleanup * implement score * more fixes * fix thresholds * fmt * Remove the stuff that has to come in the next PR, some fixes * extended balance import * Change all the references from VoteWeight to Self::Score * Add a migration for VoterBagsList * fix score * add targetList to nomination-pools tests * fix bench * address review comments * change get_npos_targets * address more comments * remove thresholds for the time being * fix instance reference * VoterBagsListInstance * reus * remove params that are not used yet * Introduced pre/post upgrade try-runtime checks * fix * fixes * fix migration * fix migration * fix post_upgrade * change * Fix * eloquent PhantomData * fix PD * more fixes * Update frame/staking/src/pallet/impls.rs Co-authored-by: Squirrel <gilescope@gmail.com> * is_nominator now works * fix test-staking * build fixes * fix remote-tests * Apply suggestions from code review Co-authored-by: parity-processbot <> Co-authored-by: kianenigma <kian@parity.io> Co-authored-by: Squirrel <gilescope@gmail.com> Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
This commit is contained in:
@@ -184,8 +184,36 @@ pub mod pallet {
|
||||
///
|
||||
/// The changes to nominators are reported to this. Moreover, each validator's self-vote is
|
||||
/// also reported as one independent vote.
|
||||
///
|
||||
/// To keep the load off the chain as much as possible, changes made to the staked amount
|
||||
/// via rewards and slashes are not reported and thus need to be manually fixed by the
|
||||
/// staker. In case of `bags-list`, this always means using `rebag` and `putInFrontOf`.
|
||||
///
|
||||
/// Invariant: what comes out of this list will always be a nominator.
|
||||
type VoterList: SortedListProvider<Self::AccountId, Score = VoteWeight>;
|
||||
|
||||
/// WIP: This is a noop as of now, the actual business logic that's described below is going
|
||||
/// to be introduced in a follow-up PR.
|
||||
///
|
||||
/// Something that provides a best-effort sorted list of targets aka electable validators,
|
||||
/// used for NPoS election.
|
||||
///
|
||||
/// The changes to the approval stake of each validator are reported to this. This means any
|
||||
/// change to:
|
||||
/// 1. The stake of any validator or nominator.
|
||||
/// 2. The targets of any nominator
|
||||
/// 3. The role of any staker (e.g. validator -> chilled, nominator -> validator, etc)
|
||||
///
|
||||
/// Unlike `VoterList`, the values in this list are always kept up to date with reward and
|
||||
/// slash as well, and thus represent the accurate approval stake of all account being
|
||||
/// nominated by nominators.
|
||||
///
|
||||
/// Note that while at the time of nomination, all targets are checked to be real
|
||||
/// validators, they can chill at any point, and their approval stakes will still be
|
||||
/// recorded. This implies that what comes out of iterating this list MIGHT NOT BE AN ACTIVE
|
||||
/// VALIDATOR.
|
||||
type TargetList: SortedListProvider<Self::AccountId, Score = BalanceOf<Self>>;
|
||||
|
||||
/// The maximum number of `unlocking` chunks a [`StakingLedger`] can have. Effectively
|
||||
/// determines how many unique eras a staker may be unbonding in.
|
||||
#[pallet::constant]
|
||||
|
||||
Reference in New Issue
Block a user