---
type: slide
---
# Launch an ephemeral Polkadot testnet with Zombienet π§
---
In this workshop, you'll learn how to launch your own local parachain network and how connecting chains to Polkadot works under the hood.
πͺ
---
## Workshop plan ποΈ
- Learn about the big picture: relay chain binary and parachain binaries; genesis configuration
- Setup Zombienet to launch a test net
- Interact with your testnet
- ***Stretch goal**: configure and run cross-chain tests*
---
## Quests
Workshop quests are a way to help you apply what we learn during our workshops.
# π
---
**Today's quests π€ **
1. Use the workshop repo and Zombienet to run a local network
2. Interact with your network
---
## Pre-quest prep π
Get a head's start!
1. Download Zombienet (macOS or Linux): https://github.com/paritytech/zombienet/releases
2. Clone the workshop repo
---
## Background
Polkadot is a network of "appchains" we call **parachains**. π‘
Appchains can connect to Polkadot for state validation
.. and interoperability with other appchains.
---
_Food for thought: in a way, parachains are just like mega complex smart contracts.._
---
Check out [this interactive visual](https://alpha.chainviz.app/) of a Polkadot-like network in action. π
---
## Network nodes
- Relay chain nodes: the validators πͺ
- Collator nodes: the parachain nodes (or sequencers) β‘οΈ
---
Chains need to be prepared to be able to connect to the relay chain. A couple key points:
- Registering parachain ID
- Spec raw, genesis header, genesis state, genesis wasm
---
## Quest #1 π
---
## Clone and download the workshop repo
- Contains binaries for the relay chain node and the parachain node
- Compiled `polkadot-v1.1.0` including all its system parachains
Fun fact: the entire repo took 61m 19s minutes using the Macbook pro M1 chip. π€―
But that's a lot of parachain binaries ... _you don't want to do this!_
---
## Taking a look at the binaries..
π
Note:
https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot#installing-the-polkadot-binaries
## Install Zombienet
Although you can set up zombienet to on the system path of your machine, I recommend this:
```bash
wget https://github.com/paritytech/zombienet/releases/download/v1.3.68/zombienet-macos -P
```
or download from the workshop release: https://github.com/sacha-l/local-polkadot-testnet/releases
---
## Big picture πΌοΈ
_(while we wait for Zombienet to install.. )_
- Take the relay chain binary (polkadot)
- Take our parachain binary
- Pass them into a config
- Run the network with tests
---
## Zombienet CLI π§
Now that we've successfully installed Zombienet, let's check out the CLI commands..
Note:
https://paritytech.github.io/zombienet/cli/index.html
---
## Node CLI
Fun little activity.. π
Run to interact with your node:
```bash
./bin/polkadot-parachain --help
./bin/pokadot subkey
```
---
## Set up a simple parachain network π
We'll do this together!
Launch a network with a single parachain.
---
### Checklist β
_Make sure your binaries can be executed for e.g.: `chmod +x`_
- Create a `Config.toml` file to specify how we want to configure the network
- Run the `zombienet spawn` command
```bash
zombienet-macos -p native spawn ./bin/config.toml
```
Note:
See Windows [setup instructions](https://github.com/Polkadot-Blockchain-Academy/pba-zombienet?tab=readme-ov-file#windows)
---
## Download your appchain binaries
For this workshop we'll use the provided binary from the repository provided. π
---
## Launch the network π
```bash
./zombienet/zombienet-macos -p native -l silent spawn ./zombienet/Config.toml
```
---
# π
Let's have a look what Zombienet does under the hood...
- `./bin/polkadot build-spec --chain rococo-local`
- `./bin/polkadot-parachain --name parachain-collator01 --node-key`
Note:
Alice, Bob and Charlie are funded too
---
## Go further: add new system chains to the network and run tests ποΈ
- Using the binaries in the folder, add new system chains
- Update the config file to include different cross-chain tests
---
## Troubleshooting
- make sure the permissions for your binaries are updated `chmod +x`
- check your zombienet version is up to date (or recent enough!)
---