Skip to content

Commit

Permalink
zombienet: warp-sync tests for validators (paritytech#13078)
Browse files Browse the repository at this point in the history
* zombienet validators warp sync draft

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

Follow-up of: paritytech#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 <>
  • Loading branch information
michalkucharczyk authored and ukint-vs committed Apr 10, 2023
1 parent e4cde8e commit 7799821
Show file tree
Hide file tree
Showing 9 changed files with 553 additions and 0 deletions.
18 changes: 18 additions & 0 deletions scripts/ci/gitlab/pipeline/zombienet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,21 @@ zombienet-0001-basic-warp-sync:
- /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh
--github-remote-dir="${GH_DIR}/0001-basic-warp-sync"
--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"
4 changes: 4 additions & 0 deletions zombienet/0002-validators-warp-sync/README.md
Original file line number Diff line number Diff line change
@@ -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.


192 changes: 192 additions & 0 deletions zombienet/0002-validators-warp-sync/chain-spec.json

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions zombienet/0002-validators-warp-sync/test-validators-warp-sync.toml
Original file line number Diff line number Diff line change
@@ -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"
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions zombienet/0003-block-building-warp-sync/README.md
Original file line number Diff line number Diff line change
@@ -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.


192 changes: 192 additions & 0 deletions zombienet/0003-block-building-warp-sync/chain-spec.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -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"]
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 7799821

Please sign in to comment.