From 2597457a7ea0e36e591b846e030eb8cb3635bbb7 Mon Sep 17 00:00:00 2001 From: Gavin Wood <gavin@parity.io> Date: Mon, 13 Jan 2020 12:49:52 +0100 Subject: [PATCH] Disable equalize, avoiding consensus issue (#4608) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Disable equalize, avoiding consensus issue * Update frame/staking/Cargo.toml Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> --- substrate/frame/staking/Cargo.toml | 3 +-- substrate/frame/staking/src/lib.rs | 34 ------------------------------ 2 files changed, 1 insertion(+), 36 deletions(-) diff --git a/substrate/frame/staking/Cargo.toml b/substrate/frame/staking/Cargo.toml index 8cf6d9f80e8..e3e6fcbe7ba 100644 --- a/substrate/frame/staking/Cargo.toml +++ b/substrate/frame/staking/Cargo.toml @@ -27,9 +27,8 @@ pallet-staking-reward-curve = { version = "2.0.0", path = "../staking/reward-cu substrate-test-utils = { version = "2.0.0", path = "../../test-utils" } [features] -equalize = [] migrate = [] -default = ["std", "equalize"] +default = ["std"] std = [ "serde", "safe-mix/std", diff --git a/substrate/frame/staking/src/lib.rs b/substrate/frame/staking/src/lib.rs index eef00a7c245..f2f3fdfb70d 100644 --- a/substrate/frame/staking/src/lib.rs +++ b/substrate/frame/staking/src/lib.rs @@ -1519,40 +1519,6 @@ impl<T: Trait> Module<T> { Self::slashable_balance_of, ); - if cfg!(feature = "equalize") { - let mut staked_assignments - : Vec<(T::AccountId, Vec<PhragmenStakedAssignment<T::AccountId>>)> - = Vec::with_capacity(assignments.len()); - for (n, assignment) in assignments.iter() { - let mut staked_assignment - : Vec<PhragmenStakedAssignment<T::AccountId>> - = Vec::with_capacity(assignment.len()); - - // If this is a self vote, then we don't need to equalise it at all. While the - // staking system does not allow nomination and validation at the same time, - // this must always be 100% support. - if assignment.len() == 1 && assignment[0].0 == *n { - continue; - } - for (c, per_thing) in assignment.iter() { - let nominator_stake = to_votes(Self::slashable_balance_of(n)); - let other_stake = *per_thing * nominator_stake; - staked_assignment.push((c.clone(), other_stake)); - } - staked_assignments.push((n.clone(), staked_assignment)); - } - - let tolerance = 0_u128; - let iterations = 2_usize; - sp_phragmen::equalize::<_, _, T::CurrencyToVote, _>( - staked_assignments, - &mut supports, - tolerance, - iterations, - Self::slashable_balance_of, - ); - } - // Clear Stakers. for v in Self::current_elected().iter() { <Stakers<T>>::remove(v); -- GitLab