Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

zombienet: warp-sync tests for validators #13078

Merged
merged 9 commits into from
Feb 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this doing?

Copy link
Contributor Author

@michalkucharczyk michalkucharczyk Jan 30, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

disables jaeger tracing, see: paritytech/zombienet#582


[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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is so cool ❤️

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
Comment on lines +37 to +39
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all bugs till now manifests with this log, so it is a way to check all is ok.


# 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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little bit confused why we have this extra test. Could we not at least merge them with the other one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could, but I’d prefer to keep them separate, they are slightly different. I think having smaller tests is simpler in terms of debugging.

Please refer to: #13078 (comment) for some details.

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the block we warp sync to? Or why checking for this particular block?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

db has 12133 blocks.

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