mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 17:31:03 +00:00
Zombienet: test disputes with malus garbage candidates (#5857)
* 1/3 validators suggest garbage candidates, but paras should make progress Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> * scale down test a bit Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> * Use docker paths and more paras Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> * dispute finality lag < 2 * scale down Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> * scale down more Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> * attempt fix Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> * one malus node Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> * Update zombienet_tests/functional/0003-parachains-garbage-candidate.toml Co-authored-by: Andronik <write@reusable.software> * Update zombienet_tests/functional/0003-parachains-garbage-candidate.toml Co-authored-by: Andronik <write@reusable.software> Signed-off-by: Andrei Sandu <andrei-mihail@parity.io> Co-authored-by: Andronik <write@reusable.software>
This commit is contained in:
@@ -738,6 +738,36 @@ zombienet-tests-parachains-disputes:
|
||||
tags:
|
||||
- zombienet-polkadot-integration-test
|
||||
|
||||
zombienet-tests-parachains-disputes-garbage-candidate:
|
||||
stage: stage3
|
||||
image: "${ZOMBIENET_IMAGE}"
|
||||
<<: *kubernetes-env
|
||||
<<: *zombienet-refs
|
||||
needs:
|
||||
- job: publish-polkadot-debug-image
|
||||
- job: publish-test-collators-image
|
||||
- job: publish-malus-image
|
||||
variables:
|
||||
GH_DIR: "https://github.com/paritytech/polkadot/tree/${CI_COMMIT_SHORT_SHA}/zombienet_tests/functional"
|
||||
before_script:
|
||||
- echo "Zombie-net Tests Config"
|
||||
- echo "${ZOMBIENET_IMAGE_NAME}"
|
||||
- echo "${PARACHAINS_IMAGE_NAME} ${PARACHAINS_IMAGE_TAG}"
|
||||
- echo "${MALUS_IMAGE_NAME} ${MALUS_IMAGE_TAG}"
|
||||
- echo "${GH_DIR}"
|
||||
- export DEBUG=zombie,zombie::network-node
|
||||
- export ZOMBIENET_INTEGRATION_TEST_IMAGE=${PARACHAINS_IMAGE_NAME}:${PARACHAINS_IMAGE_TAG}
|
||||
- export MALUS_IMAGE=${MALUS_IMAGE_NAME}:${MALUS_IMAGE_TAG}
|
||||
- export COL_IMAGE=${COLLATOR_IMAGE_NAME}:${COLLATOR_IMAGE_TAG}
|
||||
script:
|
||||
- /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh
|
||||
--github-remote-dir="${GH_DIR}"
|
||||
--test="0003-parachains-garbage-candidate.feature"
|
||||
allow_failure: false
|
||||
retry: 2
|
||||
tags:
|
||||
- zombienet-polkadot-integration-test
|
||||
|
||||
zombienet-test-parachains-upgrade-smoke-test:
|
||||
stage: stage3
|
||||
image: "${ZOMBIENET_IMAGE}"
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
Description: Test dispute finality lag when 1/3 of parachain validators always attempt to include an invalid block
|
||||
Network: ./0003-parachains-garbage-candidate.toml
|
||||
Creds: config
|
||||
|
||||
honest-validator-0: is up
|
||||
honest-validator-1: is up
|
||||
honest-validator-2: is up
|
||||
malus-validator-0: is up
|
||||
|
||||
# Check authority status.
|
||||
honest-validator-0: reports node_roles is 4
|
||||
honest-validator-1: reports node_roles is 4
|
||||
honest-validator-2: reports node_roles is 4
|
||||
malus-validator-0: reports node_roles is 4
|
||||
|
||||
# Parachains should be making progress even if we have up to 1/3 malicious validators.
|
||||
honest-validator-0: parachain 2000 block height is at least 2 within 180 seconds
|
||||
honest-validator-1: parachain 2001 block height is at least 2 within 180 seconds
|
||||
honest-validator-2: parachain 2002 block height is at least 2 within 180 seconds
|
||||
|
||||
# Check for chain reversion after dispute conclusion.
|
||||
honest-validator-0: log line contains "reverted due to a bad parachain block" within 180 seconds
|
||||
honest-validator-1: log line contains "reverted due to a bad parachain block" within 180 seconds
|
||||
honest-validator-2: log line contains "reverted due to a bad parachain block" within 180 seconds
|
||||
|
||||
# Check if disputes are concluded in less than 2 blocks.
|
||||
honest-validator-0: reports polkadot_parachain_disputes_finality_lag is lower than 2
|
||||
honest-validator-1: reports polkadot_parachain_disputes_finality_lag is lower than 2
|
||||
honest-validator-2: reports polkadot_parachain_disputes_finality_lag is lower than 2
|
||||
|
||||
# Allow more time for malicious validator activity.
|
||||
sleep 30 seconds
|
||||
|
||||
# Check that garbage parachain blocks included by malicious validators are being disputed.
|
||||
honest-validator-0: reports parachain_candidate_disputes_total is at least 2 within 15 seconds
|
||||
honest-validator-1: reports parachain_candidate_disputes_total is at least 2 within 15 seconds
|
||||
honest-validator-2: reports parachain_candidate_disputes_total is at least 2 within 15 seconds
|
||||
|
||||
# Disputes should always end as "invalid"
|
||||
honest-validator-0: reports parachain_candidate_dispute_concluded{validity="invalid"} is at least 2 within 15 seconds
|
||||
honest-validator-1: reports parachain_candidate_dispute_concluded{validity="valid"} is 0 within 15 seconds
|
||||
@@ -0,0 +1,46 @@
|
||||
[settings]
|
||||
timeout = 1000
|
||||
bootnode = true
|
||||
|
||||
[relaychain.genesis.runtime.runtime_genesis_config.configuration.config]
|
||||
max_validators_per_core = 1
|
||||
needed_approvals = 2
|
||||
|
||||
[relaychain]
|
||||
default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}"
|
||||
chain = "rococo-local"
|
||||
chain_spec_command = "polkadot build-spec --chain rococo-local --disable-default-bootnode"
|
||||
default_command = "polkadot"
|
||||
|
||||
[relaychain.default_resources]
|
||||
limits = { memory = "4G", cpu = "2" }
|
||||
requests = { memory = "2G", cpu = "1" }
|
||||
|
||||
[[relaychain.node_groups]]
|
||||
name = "honest-validator"
|
||||
count = 3
|
||||
args = ["-lparachain=debug,runtime=debug"]
|
||||
|
||||
[[relaychain.node_groups]]
|
||||
image = "{{MALUS_IMAGE}}"
|
||||
name = "malus-validator"
|
||||
command = "malus suggest-garbage-candidate"
|
||||
args = ["-lparachain=debug,MALUS=trace"]
|
||||
count = 1
|
||||
|
||||
{% for id in range(2000,2003) %}
|
||||
[[parachains]]
|
||||
id = {{id}}
|
||||
addToGenesis = true
|
||||
genesis_state_generator = "undying-collator export-genesis-state --pov-size={{10000*(id-1999)}} --pvf-complexity={{id - 1999}}"
|
||||
[parachains.collator]
|
||||
image = "{{COL_IMAGE}}"
|
||||
name = "collator"
|
||||
command = "undying-collator"
|
||||
args = ["-lparachain=debug", "--pov-size={{10000*(id-1999)}}", "--parachain-id={{id}}", "--pvf-complexity={{id - 1999}}"]
|
||||
{% endfor %}
|
||||
|
||||
[types.Header]
|
||||
number = "u64"
|
||||
parent_hash = "Hash"
|
||||
post_state = "Hash"
|
||||
Reference in New Issue
Block a user