mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 16:21:02 +00:00
Allow staking miner to use different election algorithms (#3752)
* WIP * Dry run cmd working * Monitor cmd works * Configure balance with parameter type * Comments * cleannnn * Add balancing to PhragMMS * Move OffchainRanomBalancing to common * DRY mine_unchecked over config.solver * FMT * Apply suggestions from code review Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Improve docs for any_runtime_unit! * Some cleanup * fmt * Correct capitilaztion * Improve version mismatch log * Revert "Improve version mismatch log" This reverts commit 57570403f654f1efa4307956cda2de6f0c64f70a. * Apply suggestions from code review Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> * Remove Balancing struct and use Balancing Parameter type instead * update Substrate Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: parity-processbot <>
This commit is contained in:
@@ -55,3 +55,30 @@ impl pallet_election_provider_multi_phase::BenchmarkingConfig for BenchmarkConfi
|
||||
const MINER_MAXIMUM_VOTERS: u32 = 15_000;
|
||||
const MAXIMUM_TARGETS: u32 = 2000;
|
||||
}
|
||||
|
||||
/// Maximum number of iterations for balancing that will be executed in the embedded miner of
|
||||
/// pallet-election-provider-multi-phase.
|
||||
pub const MINER_MAX_ITERATIONS: u32 = 10;
|
||||
|
||||
/// A source of random balance for the NPoS Solver, which is meant to be run by the OCW election
|
||||
/// miner.
|
||||
pub struct OffchainRandomBalancing;
|
||||
impl frame_support::pallet_prelude::Get<Option<(usize, sp_npos_elections::ExtendedBalance)>>
|
||||
for OffchainRandomBalancing
|
||||
{
|
||||
fn get() -> Option<(usize, sp_npos_elections::ExtendedBalance)> {
|
||||
use sp_runtime::{codec::Decode, traits::TrailingZeroInput};
|
||||
let iters = match MINER_MAX_ITERATIONS {
|
||||
0 => 0,
|
||||
max @ _ => {
|
||||
let seed = sp_io::offchain::random_seed();
|
||||
let random = <u32>::decode(&mut TrailingZeroInput::new(&seed))
|
||||
.expect("input is padded with zeroes; qed") %
|
||||
max.saturating_add(1);
|
||||
random as usize
|
||||
},
|
||||
};
|
||||
|
||||
Some((iters, 0))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user