Elastic scaling: use an assumed CoreIndex in candidate-backing (#3229)

First step in implementing
https://github.com/paritytech/polkadot-sdk/issues/3144

### Summary of changes
- switch statement `Table` candidate mapping from `ParaId` to
`CoreIndex`
- introduce experimental `InjectCoreIndex`  node feature.
- determine and assume a `CoreIndex` for a candidate based on statement
validator index. If the signature is valid it means validator controls
the validator that index and we can easily map it to a validator
group/core.
- introduce a temporary provisioner fix until we fully enable elastic
scaling in the subystem. The fix ensures we don't fetch the same
backable candidate when calling `get_backable_candidate` for each core.

TODO:
- [x] fix backing tests
- [x] fix statement table tests
- [x] add new test

---------

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: alindima <alin@parity.io>
Co-authored-by: alindima <alin@parity.io>
This commit is contained in:
Andrei Sandu
2024-02-22 15:22:31 +07:00
committed by GitHub
parent e76b244853
commit 60e537b95f
13 changed files with 462 additions and 96 deletions
Generated
+3
View File
@@ -12490,6 +12490,7 @@ dependencies = [
"polkadot-primitives-test-helpers",
"polkadot-statement-table",
"sc-keystore",
"schnellru",
"sp-application-crypto",
"sp-core",
"sp-keyring",
@@ -13159,6 +13160,7 @@ version = "7.0.0"
dependencies = [
"bitvec",
"hex-literal",
"log",
"parity-scale-codec",
"polkadot-core-primitives",
"polkadot-parachain-primitives",
@@ -13556,6 +13558,7 @@ dependencies = [
"parity-scale-codec",
"polkadot-primitives",
"sp-core",
"tracing-gum",
]
[[package]]