- Simple and easily customizable.
- Can launch networks of any size, with any number of validators, collators and parachains, where the only limiting factor is how much RAM and how much CPU horsepower you have.
- Can launch a local Polkadot, Kusama, Rococo and a Statemine chain.
- Can launch Prometheus and Grafana for access to metrics.
- Linux (may or may not work on macOS)
- Ruby (v3.0 or later recommended)
screen
polkadot
andpolkadot-collator
binariesdocker
(optional, for launching Prometheus and Grafana)
- Put
polkadot
andpolkadot-collator
in the root of this repository, or modifyconfig.rb
- Run one of the
start-*
scripts to start a network - Use
screen -r
to access a running node - Run
stop.rb
to kill the network and monitoring
There are other existing projects like polkadot-launch or parachain-launch to launch a testnet, so why another one?
Well, first and foremost, I wanted to learn how to manually set up a network from scratch, and to see how everything fits together in general. The process was complicated enough that it didn't make sense to actually do it manually, so I've recorded it step-by-step as a runnable script. And once I had such a script turning it into a generic tool was fairly trivial after a bit of refactoring.
Also, I needed a few extra features which weren't available in those other projects, like the ability to launch a network with an arbitrary number of validators, or the ability to easily define how a network should look like programmatically (as opposed to using a config file), or to be able to easily experiment with the nodes locally (so being forced to launch the nodes through Docker is an antifeature in this case), etc.
This is just my playground to run experiments in; feel free to use it if it also fits your usecase.