Lightweight testnet environment for Botanix development and testing using Docker.
This repository provides an easy-to-use Docker setup for running Botanix testnet nodes. It supports both standard testnet and Mutinynet configurations.
make
docker
docker-compose
# Install make
sudo apt-get update
sudo apt-get install build-essential make
# Install Docker
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Add your user to the docker group (optional)
sudo usermod -aG docker $USER
# Install make
xcode-select --install
# Install Docker
# Download and install Docker Desktop for Mac from https://www.docker.com/products/docker-desktop
# Clone the repository
git clone https://github.com/botanix-labs/botanix-testnet-v1-internal.git
cd botanix-testnet-v1-internal
# Start Mutinynet
make start-mutinynet
# IMPORTANT: Wait for Mutinynet Bitcoin node to sync completely before proceeding!
# You can check sync status with: docker logs -f botanix-mutiny-bitcoind
# OR start Standard Testnet
make start-testnet
# Check node status
make status-testnet
# OR
make status-mutinynet
Command | Description |
---|---|
make start-mutinynet |
Start the Mutinynet environment |
make stop-mutinynet |
Stop the Mutinynet environment |
make status-mutinynet |
Check Mutinynet node status |
make start-testnet |
Start the standard testnet environment |
make stop-testnet |
Stop the standard testnet environment |
make status-testnet |
Check standard testnet node status |
CAAS provides compressed snapshots of the Reth and CometBFT databases for quick testnet setup.
lz4
tar
- Download the snapshots:
curl -L https://storage.googleapis.com/compressed-always-available-snapshot/consensus-node/consensus-node-snapshot-May-28-2025-0729AM-EST.tar.lz4 -o consensus.tar.lz4
curl -L https://storage.googleapis.com/compressed-always-available-snapshot/poa-node/poa-rpc-snapshot-May-28-2025-0729AM-EST.tar.lz4 -o poa.tar.lz4
- Decompress and unpack the files:
lz4 -dc consensus.tar.lz4 | tar -x --strip-components=3
lz4 -dc poa.tar.lz4 | tar -x --strip-components=3
- Copy files to the appropriate directories:
cp -R home/ubuntu/testnet_v1/poa-rpc/db/ home/ubuntu/testnet_v1/poa-rpc/static_files/ ./data/reth
cp -R home/ubuntu/testnet_v1/consensus-node/data/ ./data/cometbft
- Delete cometbft wal:
sudo rm -rf ./data/cometbft/cs.wal # adjust if your paths are different
- Start the testnet with the snapshot data in place:
make start-testnet
├── config/ # Configuration files
│ ├── bitcoind/ # Mutiny signet bitcoin configuration
│ ├── cometbft/ # CometBFT configuration
│ └── reth/ # Reth configuration
├── data/ # Data directories for nodes
├── docker-compose.yml
├── mutiny.docker-compose.yml
└── Makefile
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.