mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 09:57:56 +00:00
combine iteratons and tolerance in sp-npos-elections API (#11498)
* Initial implementation of mms * Some more attempts at `mms` * Functioning `MMS` algorithm implementation. Adding some tests too * More tests and typos fixed. * Adding fuzzer for `mms` (but could not test it on Mac M1) * Missing imports * Fixing rustdoc * More accurate implementation of `mms` * Removing the fuzzer `mms` implementation * Implementing `NposSolver` for `MMS` had to add the `Clone` trait, maybe I could see if I can get rid of it. * Fixing rust docs by adding () to resolve ambiguity * Amending `unwrap` to `expect` removing unneeded `Clone` trait * Removing redundant `mms3.rs` * Implementing `BalancingConfig` and rustdoc changes * Implementing `weight` for `MMS` * Implementing `weight` for `MMS` * Fixing post merge * Initial implementation of mms * Some more attempts at `mms` * Functioning `MMS` algorithm implementation. Adding some tests too * More tests and typos fixed. * Adding fuzzer for `mms` (but could not test it on Mac M1) * Missing imports * Fixing rustdoc * More accurate implementation of `mms` * Removing the fuzzer `mms` implementation * Implementing `NposSolver` for `MMS` had to add the `Clone` trait, maybe I could see if I can get rid of it. * Amending `unwrap` to `expect` removing unneeded `Clone` trait * Fixing rust docs by adding () to resolve ambiguity * Removing redundant `mms3.rs` * Implementing `BalancingConfig` and rustdoc changes * Implementing `weight` for `MMS` * Implementing `weight` for `MMS` * Fixing post merge * Removing left over from rebase * Fixing tests * Removing unneeded import * Removing unneeded functions * Removing useless imports Co-authored-by: kianenigma <kian@parity.io>
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
|
||||
use codec::{Decode, Encode, MaxEncodedLen};
|
||||
use frame_election_provider_support::{
|
||||
onchain, ElectionDataProvider, ExtendedBalance, SequentialPhragmen, VoteWeight,
|
||||
onchain, BalancingConfig, ElectionDataProvider, SequentialPhragmen, VoteWeight,
|
||||
};
|
||||
use frame_support::{
|
||||
construct_runtime,
|
||||
@@ -630,10 +630,10 @@ pub const MINER_MAX_ITERATIONS: u32 = 10;
|
||||
|
||||
/// A source of random balance for NposSolver, which is meant to be run by the OCW election miner.
|
||||
pub struct OffchainRandomBalancing;
|
||||
impl Get<Option<(usize, ExtendedBalance)>> for OffchainRandomBalancing {
|
||||
fn get() -> Option<(usize, ExtendedBalance)> {
|
||||
impl Get<Option<BalancingConfig>> for OffchainRandomBalancing {
|
||||
fn get() -> Option<BalancingConfig> {
|
||||
use sp_runtime::traits::TrailingZeroInput;
|
||||
let iters = match MINER_MAX_ITERATIONS {
|
||||
let iterations = match MINER_MAX_ITERATIONS {
|
||||
0 => 0,
|
||||
max => {
|
||||
let seed = sp_io::offchain::random_seed();
|
||||
@@ -644,7 +644,8 @@ impl Get<Option<(usize, ExtendedBalance)>> for OffchainRandomBalancing {
|
||||
},
|
||||
};
|
||||
|
||||
Some((iters, 0))
|
||||
let config = BalancingConfig { iterations, tolerance: 0 };
|
||||
Some(config)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user