Run a Redstone, Garnet or Pyrope Node

Ensure that Docker and Docker Compose are installed, then checkout the git repository, we’re going to make some changes to it though:

git clone https://github.com/latticexyz/redstone-node.git

I suggest you use multiple shells as there are some long running processes, in the first shell:

cd redstone-node/docker-compose/
mkdir data
cd data
wget -c https://pub-b17471e3fbff42cc9f1ed12b36844067.r2.dev/geth-latest.tar.gz
tar xvzf geth-latest.tar.gz
rm geth-latest.tar.gz
cd ..

In the second shell:

cd redstone-node/docker-compose/

Edit .env and add:

L1=https://rpc.ankr.com/eth_holesky
Important

Ankr has just enough of an allowance (~30/request/sec) for this to work.

Edit ./config/garnet/run-consensus-layer.sh and update the command:

  --l2=http://op-geth:8551 \
  --metrics.enabled \                    # add this line
  --l2.jwt-secret=/data/geth/jwtsecret \

Once the the download and untargz of the data is done in the first shell it can be closed, then in the remaining shell:

docker compose -f garnet-compose.yml up -d

You can trail the logs with:

docker compose -f garnet-compose.yml logs -f --tail 10

For reduced typing the following start.sh and stop.sh can be used:

start.sh

#!/bin/bash

cd ~/redstone-node/docker-compose
podman compose -f garnet-compose.yml up -d && podman compose -f garnet-compose.yml logs -f --tail 10

stop.sh

#!/bin/bash

cd ~/redstone-node/docker-compose
podman compose -f garnet-compose.yml down --remove-orphans --rmi all -t 30 -v