mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 12:11:02 +00:00
Elastic scaling: runtime dependency tracking and enactment (#3479)
Changes needed to implement the runtime part of elastic scaling: https://github.com/paritytech/polkadot-sdk/issues/3131, https://github.com/paritytech/polkadot-sdk/issues/3132, https://github.com/paritytech/polkadot-sdk/issues/3202 Also fixes https://github.com/paritytech/polkadot-sdk/issues/3675 TODOs: - [x] storage migration - [x] optimise process_candidates from O(N^2) - [x] drop backable candidates which form cycles - [x] fix unit tests - [x] add more unit tests - [x] check the runtime APIs which use the pending availability storage. We need to expose all of them, see https://github.com/paritytech/polkadot-sdk/issues/3576 - [x] optimise the candidate selection. we're currently picking randomly until we satisfy the weight limit. we need to be smart about not breaking candidate chains while being fair to all paras - https://github.com/paritytech/polkadot-sdk/pull/3573 Relies on the changes made in https://github.com/paritytech/polkadot-sdk/pull/3233 in terms of the inclusion policy and the candidate ordering --------- Signed-off-by: alindima <alin@parity.io> Co-authored-by: command-bot <> Co-authored-by: eskimor <eskimor@users.noreply.github.com>
This commit is contained in:
@@ -398,16 +398,6 @@ impl<T: Config> Pallet<T> {
|
||||
});
|
||||
}
|
||||
|
||||
/// Get the para (chain or thread) ID assigned to a particular core or index, if any. Core
|
||||
/// indices out of bounds will return `None`, as will indices of unassigned cores.
|
||||
pub(crate) fn core_para(core_index: CoreIndex) -> Option<ParaId> {
|
||||
let cores = AvailabilityCores::<T>::get();
|
||||
match cores.get(core_index.0 as usize) {
|
||||
None | Some(CoreOccupied::Free) => None,
|
||||
Some(CoreOccupied::Paras(entry)) => Some(entry.para_id()),
|
||||
}
|
||||
}
|
||||
|
||||
/// Get the validators in the given group, if the group index is valid for this session.
|
||||
pub(crate) fn group_validators(group_index: GroupIndex) -> Option<Vec<ValidatorIndex>> {
|
||||
ValidatorGroups::<T>::get().get(group_index.0 as usize).map(|g| g.clone())
|
||||
|
||||
Reference in New Issue
Block a user