3

Say I want to spin up a local Rococo test network with:

  • Four validators
  • Two parachains
  • One collator per parachain

How do I do this with Zombienet?

1 Answer 1

10

You'll need to download the Zombienet executable.

You can find linux and macOS executables of the Zombienet CLI here:

Download the Zombienet CLI according to your operating system.

Tip: If you want the executable to be available system-wide then you can follow these steps (otherwise just download the executable to your working directory):

wget https://github.com/paritytech/zombienet/releases/download/v1.3.30/zombienet-macos
chmod +x zombienet-macos 
cp zombienet-macos /usr/local/bin

Make sure Zombienet CLI is installed correctly:

./zombienet-macos --help

You should see some similar output:

Usage: zombienet [options] [command]

Options:
  -c, --spawn-concurrency <concurrency>  Number of concurrent spawning process to launch, default is 1
  -p, --provider <provider>              Override provider to use (choices: "podman", "kubernetes", "native")
  -m, --monitor                          Start as monitor, do not auto cleanup network
  -h, --help                             display help for command

Commands:
  spawn <networkConfig> [creds]          Spawn the network defined in the config
  test <testFile> [runningNetworkSpec]   Run tests on the network defined
  setup <binaries...>                    Setup is meant for downloading and making dev environment of Zombienet ready
  version                                Prints zombienet version
  help [command]                         display help for command

Setting up your config

Zombienet works with a config. The config is where you specify your test network's configuration. The config is also where you can specify the Polkadot/Cumulus binaries.

Create a config file:

touch config.toml

So in this example config we are specifying that we want a Rococo Relay chain with four validators and two parachains - each with one collator. Make sure you have the compiled binaries available.

Zombienet also works with other providers such as Kubernetes and Podman.

[relaychain]
default_command = "./bin/polkadot-v0.9.37"
default_args = [ "-lparachain=debug" ]

chain = "rococo-local"
  # relaychain nodes are validators by default
  [[relaychain.nodes]]
  name = "alice"

  [[relaychain.nodes]]
  name = "bob"

  [[relaychain.nodes]]
  name = "charlie"

  [[relaychain.nodes]]
  name = "dave"

[[parachains]]
id = 1000
cumulus_based = true

  [parachains.collator]
  name = "parachain-1000-collator"
  command = "./bin/parachain-template-node-v0.9.37"

[[parachains]]
id = 1001
cumulus_based = true

  [parachains.collator]
  name = "parachain-1001-collator"
  command = "../bin/parachain-template-node-v0.9.37"

Save the file and run the Zombienet CLI using this config:

./zombienet-macos -p native spawn config.toml

You should see some nicely formatted output stating that the nodes are up and ready.

You can now interact with your nodes in polkadotJS apps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.