gm and welcome! This page is a one-stop-shop for all resources and content about Kurtosis and how its used in the web3 community. Feel free to get in touch with us on Discord or via Telegram directly with me, @leederek!
Kurtosis is an open-source build system for multi-container test environments.
Okay, thats cool, but what does that actually mean? Well, think:
your protocol (or dApp or bridge) in-a-box for all your development and testing needs.
Sound interesting? Read on!
There are two moving pieces that folks will interact with:
- A Python-based DSL for: defining the set up of your blockchain, nodes, or dApp, and
- A runtime for bootstrapping and starting your system, running it locally or in the cloud, and then (optionally) letting you tear it all down once you’re done with it.
To use Kurtosis, all you need to bring are the container images for your services, the Kurtosis CLI itself, and Docker. Kurtosis is open source and works on Linux, Windows, and MacOS and is backend agnostic, meaning it will work the same way on your local machine over Docker, or in the cloud on an EC2 instance or on Kubernetes.
💫 Value Proposition
Kurtosis is useful for as wide range of builders in the web3 space because Kurtosis gracefully handles dynamic dependency passing (e.g. genesis files, node configurations) and the careful sequencing of set up logic that complex systems like blockchains often require to set up. Existing tools like Ansible Playbooks, Docker Compose, or even Helm alone are not well suited for this task.
- Kurtosis has a definition language for configuring a multi-container test environment.
- Kurtosis has a validator for making sure test definitions work, before they run.
- Kurtosis has a runtime for executing, monitoring, and debugging test environments.
🛠️ Use cases
The following are common Kurtosis user personas and use cases they use Kurtosis for:
- Protocol and core developers: Kurtosis should be used to define and run nodes in an isolated environment for end-to-end testing of specific features, capabilities, or scales. The environment will run the same way, every time, on your local machine or in CI.
- dApp developers: Kurtosis frees dApp developers from the constraints of building and testing against public, live testnets by letting engineers develop their applications locally against a representative model of the underlying network.
- [Experimental] Institutions who manage and deploy nodes-as-a-service: Kurtosis allows engineers to validate the functionality of and safely maintain node infrastructure that spans multiple cloud regions, providers, and blockchains by providing realistic environments with which to test and canary certain operations and workflows on.
- Multi-chain Projects: Enables multi-chain builders to simulate and validate that their business logic functions as intended across various networks and VMs in an representative but also private and isolated environment (especially for non-public or proprietary logic).