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>
Showing
- polkadot/roadmap/implementers-guide/src/runtime/inclusion.md 6 additions, 5 deletionspolkadot/roadmap/implementers-guide/src/runtime/inclusion.md
- polkadot/roadmap/implementers-guide/src/runtime/parainherent.md 1 addition, 1 deletion...ot/roadmap/implementers-guide/src/runtime/parainherent.md
- polkadot/roadmap/implementers-guide/src/runtime/scheduler.md 0 additions, 1 deletionpolkadot/roadmap/implementers-guide/src/runtime/scheduler.md
- polkadot/runtime/parachains/src/builder.rs 68 additions, 41 deletionspolkadot/runtime/parachains/src/builder.rs
- polkadot/runtime/parachains/src/inclusion/migration.rs 317 additions, 0 deletionspolkadot/runtime/parachains/src/inclusion/migration.rs
- polkadot/runtime/parachains/src/inclusion/mod.rs 391 additions, 412 deletionspolkadot/runtime/parachains/src/inclusion/mod.rs
- polkadot/runtime/parachains/src/inclusion/tests.rs 799 additions, 442 deletionspolkadot/runtime/parachains/src/inclusion/tests.rs
- polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs 0 additions, 8 deletions...dot/runtime/parachains/src/paras_inherent/benchmarking.rs
- polkadot/runtime/parachains/src/paras_inherent/mod.rs 375 additions, 224 deletionspolkadot/runtime/parachains/src/paras_inherent/mod.rs
- polkadot/runtime/parachains/src/paras_inherent/tests.rs 1447 additions, 157 deletionspolkadot/runtime/parachains/src/paras_inherent/tests.rs
- polkadot/runtime/parachains/src/runtime_api_impl/v7.rs 53 additions, 31 deletionspolkadot/runtime/parachains/src/runtime_api_impl/v7.rs
- polkadot/runtime/parachains/src/scheduler.rs 0 additions, 10 deletionspolkadot/runtime/parachains/src/scheduler.rs
- polkadot/runtime/parachains/src/util.rs 18 additions, 1 deletionpolkadot/runtime/parachains/src/util.rs
- polkadot/runtime/rococo/src/lib.rs 2 additions, 0 deletionspolkadot/runtime/rococo/src/lib.rs
- polkadot/runtime/rococo/src/weights/runtime_parachains_paras_inherent.rs 291 additions, 130 deletions...e/rococo/src/weights/runtime_parachains_paras_inherent.rs
- polkadot/runtime/westend/src/lib.rs 1 addition, 0 deletionspolkadot/runtime/westend/src/lib.rs
- polkadot/runtime/westend/src/weights/runtime_parachains_paras_inherent.rs 298 additions, 285 deletions.../westend/src/weights/runtime_parachains_paras_inherent.rs
- prdoc/pr_3479.prdoc 8 additions, 0 deletionsprdoc/pr_3479.prdoc
Please register or sign in to comment