Files
pezkuwi-subxt/polkadot/zombienet_tests
Andrei Sandu 2431001ec0 Runtime: allow backing multiple candidates of same parachain on different cores (#3231)
Fixes https://github.com/paritytech/polkadot-sdk/issues/3144

Builds on top of https://github.com/paritytech/polkadot-sdk/pull/3229

### Summary
Some preparations for Runtime to support elastic scaling, guarded by
config node features bit `FeatureIndex::ElasticScalingMVP`. This PR
introduces a per-candidate `CoreIndex` but does it in a hacky way to
avoid changing `CandidateCommitments`, `CandidateReceipts` primitives
and networking protocols.

#### Including `CoreIndex` in `BackedCandidate`
If the `ElasticScalingMVP` feature bit is enabled then
`BackedCandidate::validator_indices` is extended by 8 bits.
The value stored in these bits represents the assumed core index for the
candidate.

It is temporary solution which works by creating a mapping from
`BackedCandidate` to `CoreIndex` by assuming the `CoreIndex` can be
discovered by checking in which validator group the validator that
signed the statement is.

TODO:
- [x] fix tests
- [x] add new tests
- [x] Bump runtime API for Kusama, so we have that node features thing!
-> https://github.com/polkadot-fellows/runtimes/pull/194

---------

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Signed-off-by: alindima <alin@parity.io>
Co-authored-by: alindima <alin@parity.io>
2024-02-23 16:35:48 +00:00
..
2023-09-04 12:02:32 +03:00

Zombienet tests

The content of this directory is meant to be used by Parity's private CI/CD infrastructure with private tools. At the moment those tools are still early stage of development and we don't know if / when they will available for public use.

Contents of this directory

parachains At the moment this directory only have one test related to parachains: /parachains-smoke-test, that check the parachain registration and the block height.

Resources

Running tests locally

To run any test locally use the native provider (zombienet test -p native ...) you need first build the binaries. They are:

  • adder-collator -> polkadot/target/testnet/adder-collator
  • malus -> polkadot/target/testnet/malus
  • polkadot -> polkadot/target/testnet/polkadot, polkadot/target/testnet/polkadot-prepare-worker, polkadot/target/testnet/polkadot-execute-worker
  • polkadot-collator -> cumulus/target/release/polkadot-parachain
  • undying-collator -> polkadot/target/testnet/undying-collator

To build them use:

  • adder-collator -> cargo build --profile testnet -p test-parachain-adder-collator
  • undying-collator -> cargo build --profile testnet -p test-parachain-undying-collator
  • malus -> cargo build --profile testnet -p polkadot-test-malus
  • polkadot (in the Polkadot repo) and polkadot-collator (in Cumulus repo) -> cargo build --profile testnet

One solution is to use the .set_env file (from this directory) and fill the CUSTOM_PATHS before source it to patch the PATH of your system to find the binaries you just built.

E.g.:

$ cat .set_env
(...)
# by the order of this array
CUSTOM_PATHS=(
  "~/polkadot/target/release"
  "~/polkadot/target/testnet"
  "~/cumulus/target/release"
)
(...)

source .set_env

Then you have your PATH customized and ready to run zombienet. NOTE: You should need to do this ones per terminal session, since we are patching the PATH and re-exporting. Or you can also source this file in your .bashrc file to get executed automatically in each new session.

Example:

You can run a test locally by executing:

zombienet test -p native 0001-parachains-pvf.zndsl

Questions / permissions

Ping in element Javier (@javier:matrix.parity.io) to ask questions or grant permission to run the test from your local setup.