• Gonçalo Pestana's avatar
    [NPoS] Implements dynamic number of nominators (#12970) · 93754780
    Gonçalo Pestana authored
    
    
    * Implements dynamic nominations per nominator
    
    * Adds SnapshotBounds and ElectionSizeTracker
    
    * Changes the ElectionDataProvider interface to receive ElectionBounds as input
    
    * Implements get_npos_voters with ElectionBounds
    
    * Implements get_npos_targets with ElectionBounds
    
    * Adds comments
    
    * tests
    
    * Truncates nomninations that exceed nominations quota; Old tests passing
    
    * Uses DataProviderBounds and ElectionBounds (to continue)
    
    * Finishes conversions - tests passing
    
    * Refactor staking in babe mocks
    
    * Replaces MaxElectableTargets and MaxElectingVoters with ElectionBounds; Adds more tests
    
    * Fixes nits; node compiling
    
    * bechmarks
    
    * removes nomination_quota extrinsic to request the nomination quota
    
    * Lazy quota check, ie. at nominate time only
    
    * remove non-working test (for now)
    
    * tests lazy nominations quota when quota is lower than current number of nominated targets
    
    * Adds runtime API and custom RPC call for clients to query the nominations quota for a given balance
    
    * removes old rpc
    
    * Cosmetic touches
    
    * All mocks working
    
    * Fixes benchmarking mocks
    
    * nits
    
    * more tests
    
    * renames trait methods
    
    * nit
    
    * ".git/.scripts/commands/fmt/fmt.sh"
    
    * Fix V2 PoV benchmarking (#13485)
    
    * Bump default 'additional_trie_layers' to two
    
    The default here only works for extremely small runtimes, which have
    no more than 16 storage prefices. This is changed to a "sane" default
    of 2, which is save for runtimes with up to 4096 storage prefices (eg StorageValue).
    
    Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
    
    * Update tests and test weights
    
    Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
    
    * Fix PoV weights
    
    Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_balances
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_message_queue
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_glutton
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_glutton
    
    * Fix sanity check
    
    >0 would also do as a check, but let's try this.
    
    Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
    
    ---------
    
    Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
    Co-authored-by: command-bot <>
    
    * Move BEEFY code to consensus (#13484)
    
    * Move beefy primitives to consensus dir
    * Move beefy gadget to client consensus folder
    * Rename beefy crates
    
    * chore: move genesis block builder to chain-spec crate. (#13427)
    
    * chore: move genesis block builder to block builder crate.
    
    * add missing file
    
    * chore: move genesis block builder to sc-chain-spec
    
    * Update client/chain-spec/src/genesis.rs
    
    Co-authored-by: default avatarBastian Köcher <[email protected]>
    
    * Update test-utils/runtime/src/genesismap.rs
    
    Co-authored-by: default avatarBastian Köcher <[email protected]>
    
    * Update test-utils/runtime/client/src/lib.rs
    
    * fix warnings
    
    * fix warnings
    
    ---------
    
    Co-authored-by: default avatarBastian Köcher <[email protected]>
    
    * Speed up storage iteration from within the runtime (#13479)
    
    * Speed up storage iteration from within the runtime
    
    * Move the cached iterator into an `Option`
    
    * Use `RefCell` in no_std
    
    * Simplify the code slightly
    
    * Use `Option::replace`
    
    * Update doc comment for `next_storage_key_slow`
    
    * Make unbounded channels size warning exact (part 1) (#13490)
    
    * Replace `futures-channel` with `async-channel` in `out_events`
    
    * Apply suggestions from code review
    
    Co-authored-by: default avatarKoute <[email protected]>
    
    * Also print the backtrace of `send()` call
    
    * Switch from `backtrace` crate to `std::backtrace`
    
    * Remove outdated `backtrace` dependency
    
    * Remove `backtrace` from `Cargo.lock`
    
    ---------
    
    Co-authored-by: default avatarKoute <[email protected]>
    
    * Removal of Prometheus alerting rules deployment in cloud-infra (#13499)
    
    * sp-consensus: remove unused error variants (#13495)
    
    * Expose `ChargedAmount` (#13488)
    
    * Expose `ChargedAmount`
    
    * Fix imports
    
    * sc-consensus-beefy: fix metrics: use correct names (#13494)
    
    
    Signed-off-by: default avataracatangiu <[email protected]>
    
    * clippy fix
    
    * removes NominationsQuotaExceeded event
    
    * Update frame/staking/src/lib.rs
    
    Co-authored-by: default avatarRoss Bulat <[email protected]>
    
    * adds back the npos_max_iter
    
    * remove duplicate imports added after merge
    
    * fmt
    
    * Adds comment in public struct; Refactors CountBound and SizeCount to struct
    
    * addresses various pr comments
    
    * PR comment reviews
    
    * Fixes on-chain election bounds and related code
    
    * EPM checks the size of the voter list returned by the data provider
    
    * cosmetic changes
    
    * updates e2e tests mock
    
    * Adds more tests for size tracker and refactors code
    
    * Adds back only_iterates_max_2_times_max_allowed_len test
    
    * Refactor
    
    * removes unecessary dependency
    
    * empty commit -- restart all stuck CI jobs
    
    * restarts ci jobs
    
    * Renames ElectionBounds -> Bounds in benchmarking mocks et al
    
    * updates mocks
    
    * Update frame/election-provider-support/src/lib.rs
    
    Co-authored-by: default avatarKian Paimani <[email protected]>
    
    * Update frame/staking/src/pallet/impls.rs
    
    Co-authored-by: default avatarKian Paimani <[email protected]>
    
    * Update frame/election-provider-support/src/lib.rs
    
    Co-authored-by: default avatarKian Paimani <[email protected]>
    
    * Update frame/staking/src/tests.rs
    
    Co-authored-by: default avatarKian Paimani <[email protected]>
    
    * more checks in api_nominations_quota in tests
    
    * Improves docs
    
    * fixes e2e tests
    
    * Uses size_hint rather than mem::size_of in size tracker; Refactor size tracker to own module
    
    * nits from reviews
    
    * Refactors bounds to own module; improves docs
    
    * More tests and docs
    
    * fixes docs
    
    * Fixes benchmarks
    
    * Fixes rust docs
    
    * fixes bags-list remote-ext-tests
    
    * Simplify bound checks in create_snapshot_external
    
    * Adds target size check in get_npos_targets
    
    * ".git/.scripts/commands/fmt/fmt.sh"
    
    * restart ci
    
    * rust doc fixes and cosmetic nits
    
    * rollback upgrade on parity-scale-codec version (unecessary)
    
    * reset cargo lock, no need to update it
    
    ---------
    
    Signed-off-by: default avatarOliver Tale-Yazdi <[email protected]>
    Signed-off-by: default avataracatangiu <[email protected]>
    Co-authored-by: command-bot <>
    Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
    Co-authored-by: default avatarDavide Galassi <[email protected]>
    Co-authored-by: default avataryjh <[email protected]>
    Co-authored-by: default avatarBastian Köcher <[email protected]>
    Co-authored-by: default avatarKoute <[email protected]>
    Co-authored-by: default avatarDmitry Markin <[email protected]>
    Co-authored-by: default avatarAnthony Lazam <[email protected]>
    Co-authored-by: default avatarAndré Silva <[email protected]>
    Co-authored-by: default avatarPiotr Mikołajczyk <[email protected]>
    Co-authored-by: default avatarAdrian Catangiu <[email protected]>
    Co-authored-by: default avatarRoss Bulat <[email protected]>
    Co-authored-by: default avatarKian Paimani <[email protected]>
    93754780