The purpose of this repository is for devs and non devs to carry out tests on the precompiled botanix artifacts. It contains an easy rpc node setup using docker-compose.
Before you begin, ensure you have the following installed:
make
docker
docker-compose
-
Install
make
:sudo apt-get update sudo apt-get install build-essential make
-
Install Docker:
sudo apt-get update 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 Docker's official website.
-
Install Docker Compose:
- Docker Compose is included with Docker Desktop for Mac, so no additional installation is needed.
git clone https://github.com/botanix-labs/botanix-testnet-v1-internal.git
cd botanix-testnet-v1-internal
## Start the mutiny bitcoind instance and allow to sync fully
docker-compose --env-file .bitcoin.env -f mutiny.docker-compose.yml up -d
## (Optional) Download a snapshot of the Reth and Comet database
## For instructions see below "Setup Testnet With CAAS".
## This step is optional but will greatly reduce the syncing times as one only needs to sync the blocks of since midnight.
## Start the services
make start-testnet-rpc
## Check status of rpc node
make status-testnet-rpc
CAAS is a snapshot of the Reth and Comet database that is compressed and always available for download. We use LZ4 to compress the databases and store them in GCP bucket.
- lz4
- tar
Note In the following steps, you will have to replace the date at the end of the files with the date of the snapshot that you want. The latest snapshot that is available is the one with "yesterday's" date. Format: "MMM-DD-YYYY"
- Download the reth and cometbft snapshots with the following commands
wget https://storage.googleapis.com/compressed-always-available-snapshot/consensus-node/consensus-node-Nov-21-2024.tar.lz4
wget https://storage.googleapis.com/compressed-always-available-snapshot/poa-node/poa-rpc-Nov-21-2024.tar.lz4
- Decompress the file contents with
lz4 -d consensus-node-Nov-21-2024.tar.lz4 consensus-node-Nov-21-2024.tar
lz4 -d poa-rpc-Nov-21-2024.tar.lz4 poa-rpc-Nov-21-2024.tar
- Extract the file contents with
mkdir cometbft && tar -xvf consensus-node-Nov-21-2024.tar -C cometbft
mkdir poa-rpc && tar -xvf poa-rpc-Nov-21-2024.tar -C poa-rpc
- Copy the file content to the appropriate Directory
cp -R poa-rpc/home/ubuntu/testnet_v1/poa-rpc/db/ poa-rpc/home/ubuntu/testnet_v1/poa-rpc/static_files/ ./poa-node-rpc
cp -R cometbft/home/ubuntu/testnet_v1/consensus-node/data/ ./consensus-node
- Start the testnet with the snapshot data already in place