
Zombienet
Zombienet is a command-line interface (CLI) tool designed to streamline the creation and testing of ephemeral blockchain networks, offering a robust framework for developers to conduct a wide range of tests. By enabling seamless interactions with local or cloud-based environments, Zombienet simplifies the complexities of blockchain testing, making it a valuable asset for developers aiming to ensure the reliability and performance of their networks.
What is Zombienet?
Zombienet is a CLI-driven framework tailored for the Substrate-based blockchain ecosystem. It facilitates the rapid creation of ephemeral networks, allowing developers to perform detailed tests and assertions on various network components. These tests can cover on-chain storage, metrics, logs, and even custom scripts written in JavaScript.
Built as a JavaScript library, Zombienet is designed to run on Node.js and supports multiple backend providers, including Kubernetes, Podman, and native setups. This flexibility ensures that developers can choose the most suitable environment for their testing needs.
Key Features of Zombienet
- Ephemeral Network Creation: Zombienet allows developers to define network configurations in JSON or TOML formats, enabling quick and efficient deployment of complex networks with just a few commands.
- Multi-Provider Support:
- Kubernetes: Zombienet integrates with Kubernetes clusters, utilizing the Prometheus operator for enhanced monitoring and visibility.
- Podman: The tool supports Podman for Linux users, deploying auxiliary pods for monitoring using Grafana and Tempo.
- Native: For developers preferring local setups, Zombienet supports running nodes as local processes.
- Testing and Assertions: Zombienet’s domain-specific language (DSL) allows developers to write natural-language-based assertions. This feature simplifies the process of validating network behavior, such as ensuring nodes are operational, parachains are registered, and blocks are being produced.
- Environment Variable Support: Developers can use environment variables in configuration files, adding flexibility to network definitions and simplifying integration with CI/CD pipelines.