zombienet: warp-sync tests for validators (#13078)

* zombienet validators warp sync draft

Sketch of warp-sync test for validators.
Not tested.

Follow-up of: #12769

* yet another warp-sync scenario added

- all validators are synced from DB,
- some full nodes are synced from DB,
- full-node is warp-synced

* fixes

* fixes

* missing files

* path fixed

---------

Co-authored-by: parity-processbot <>
This commit is contained in:
Michal Kucharczyk
2023-02-07 10:28:18 +01:00
committed by GitHub
parent fc2fda8d19
commit cad4982afd
9 changed files with 553 additions and 0 deletions
@@ -50,3 +50,21 @@ zombienet-0001-basic-warp-sync:
- /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh
--github-remote-dir="${GH_DIR}/0001-basic-warp-sync" --github-remote-dir="${GH_DIR}/0001-basic-warp-sync"
--test="test-warp-sync.zndsl" --test="test-warp-sync.zndsl"
zombienet-0002-validators-warp-sync:
extends:
- .zombienet-common
script:
- /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh
--github-remote-dir="${GH_DIR}/0002-validators-warp-sync"
--test="test-validators-warp-sync.zndsl"
zombienet-0003-block-building-warp-sync:
extends:
- .zombienet-common
script:
- /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh
--github-remote-dir="${GH_DIR}/0003-block-building-warp-sync"
--test="test-block-building-warp-sync.zndsl"
@@ -0,0 +1,4 @@
Refer to ../0001-basic-warp-sync/README.md for more details. This test is nearly a clone. We want to warp-sync validators and make sure they can build blocks.
0001-basic-warp-sync chainspec (copied) and database are reused in this test.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,35 @@
[settings]
enable_tracing = false
[relaychain]
default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}"
default_command = "substrate"
chain = "gen-db"
chain_spec_path = "zombienet/0002-validators-warp-sync/chain-spec.json"
[[relaychain.nodes]]
name = "alice"
validator = true
args = ["--sync warp"]
[[relaychain.nodes]]
name = "bob"
validator = true
args = ["--sync warp"]
#we need at least 3 nodes for warp sync
[[relaychain.nodes]]
name = "charlie"
validator = false
db_snapshot="https://storage.googleapis.com/zombienet-db-snaps/substrate/0001-basic-warp-sync/chains-0bb3f0be2ce41b5615b224215bcc8363aa0416a6.tgz"
[[relaychain.nodes]]
name = "dave"
validator = false
db_snapshot="https://storage.googleapis.com/zombienet-db-snaps/substrate/0001-basic-warp-sync/chains-0bb3f0be2ce41b5615b224215bcc8363aa0416a6.tgz"
[[relaychain.nodes]]
name = "eve"
validator = false
db_snapshot="https://storage.googleapis.com/zombienet-db-snaps/substrate/0001-basic-warp-sync/chains-0bb3f0be2ce41b5615b224215bcc8363aa0416a6.tgz"
@@ -0,0 +1,43 @@
Description: Warp sync
Network: ./test-validators-warp-sync.toml
Creds: config
alice: is up within 30 seconds
bob: is up within 30 seconds
charlie: is up within 30 seconds
dave: is up within 30 seconds
eve: is up within 30 seconds
alice: reports node_roles is 4
bob: reports node_roles is 4
charlie: reports node_roles is 1
dave: reports node_roles is 1
eve: reports node_roles is 1
alice: reports peers count is at least 4 within 60 seconds
bob: reports peers count is at least 4 within 60 seconds
charlie: reports peers count is at least 4 within 60 seconds
dave: reports peers count is at least 4 within 60 seconds
eve: reports peers count is at least 4 within 60 seconds
# db snapshot has 12133 blocks
charlie: reports block height is at least 12133 within 60 seconds
dave: reports block height is at least 12133 within 60 seconds
eve: reports block height is at least 12133 within 60 seconds
alice: log line matches "Warp sync is complete" within 60 seconds
bob: log line matches "Warp sync is complete" within 60 seconds
# workaround for: https://github.com/paritytech/zombienet/issues/580
alice: count of log lines containing "Block history download is complete" is 1 within 60 seconds
bob: count of log lines containing "Block history download is complete" is 1 within 60 seconds
alice: reports block height is at least 12133 within 10 seconds
bob: reports block height is at least 12133 within 10 seconds
alice: count of log lines containing "error" is 0 within 10 seconds
bob: count of log lines containing "verification failed" is 0 within 10 seconds
# new block were built
alice: reports block height is at least 12136 within 90 seconds
bob: reports block height is at least 12136 within 90 seconds
@@ -0,0 +1,4 @@
Refer to ../0001-basic-warp-sync/README.md for more details. This test is nearly a clone. We want to warp-sync full nodes in the presence of validators.
0001-basic-warp-sync chainspec (copied) and database are reused in this test.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,30 @@
[settings]
enable_tracing = false
[relaychain]
default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}"
default_command = "substrate"
chain = "gen-db"
chain_spec_path = "zombienet/0003-block-building-warp-sync/chain-spec.json"
#we need at least 3 nodes for warp sync
[[relaychain.nodes]]
name = "alice"
validator = true
db_snapshot="https://storage.googleapis.com/zombienet-db-snaps/substrate/0001-basic-warp-sync/chains-0bb3f0be2ce41b5615b224215bcc8363aa0416a6.tgz"
[[relaychain.nodes]]
name = "bob"
validator = true
db_snapshot="https://storage.googleapis.com/zombienet-db-snaps/substrate/0001-basic-warp-sync/chains-0bb3f0be2ce41b5615b224215bcc8363aa0416a6.tgz"
[[relaychain.nodes]]
name = "charlie"
validator = false
db_snapshot="https://storage.googleapis.com/zombienet-db-snaps/substrate/0001-basic-warp-sync/chains-0bb3f0be2ce41b5615b224215bcc8363aa0416a6.tgz"
[[relaychain.nodes]]
name = "dave"
validator = false
args = ["--sync warp"]
@@ -0,0 +1,35 @@
Description: Warp sync
Network: ./test-block-building-warp-sync.toml
Creds: config
alice: is up
bob: is up
charlie: is up
dave: is up
alice: reports node_roles is 4
bob: reports node_roles is 4
charlie: reports node_roles is 1
dave: reports node_roles is 1
alice: reports peers count is at least 3 within 60 seconds
bob: reports peers count is at least 3 within 60 seconds
charlie: reports peers count is at least 3 within 60 seconds
dave: reports peers count is at least 3 within 60 seconds
# db snapshot has 12133 blocks
dave: reports block height is at least 1 within 60 seconds
dave: reports block height is at least 12132 within 60 seconds
dave: reports block height is at least 12133 within 60 seconds
alice: reports block height is at least 12133 within 60 seconds
bob: reports block height is at least 12133 within 60 seconds
charlie: reports block height is at least 12133 within 60 seconds
dave: log line matches "Warp sync is complete" within 60 seconds
# workaround for: https://github.com/paritytech/zombienet/issues/580
dave: count of log lines containing "Block history download is complete" is 1 within 10 seconds
dave: count of log lines containing "error" is 0 within 10 seconds
dave: count of log lines containing "verification failed" is 0 within 10 seconds