Consesus node

This section contains the information related to running a consensus node for our network. This page is NOT for operators. If you want to run an AVS operator, please refer to the "Operators" section instead.

Minimum hardware requirements

The following minimum hardware requirements are reccommended for runninga consensus node:

  • Memory: 8 GB RAM

  • CPU: 4 cores

  • Disk: 1 TB SSD Storage

  • Bandwidth: 1 Gbps for Download/1 Gbps for Upload

Setup a consensus node

The following tuttorial is done ona an Ubuntu Linux 20.02 (LST) x64 instance machine.

Set up the environment

The first thing you have to do, is properly setup the environment of your machine. Here is a script that can help you with that:

# Update the existing dependencies
sudo apt update && sudo apt upgrade -y

# Install Golang
sudo snap install go --channel=1.23/stable --classic

# Install other useful dependencies
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential git make -y

Build the milkywayd binary file

Now that you have all the dependencies needed, you are ready to build the milkywayd binary file:

# Clone the MilkyWay codebase repository
git clone https://github.com/milkyway-labs/milkyway

# Checkout the version of the MilkyWay binary file you want to build
# Replace tags/v2.0.0 with the version you prefer
cd milkyway
git checkout tags/v2.0.0

# Build the binary file
make build

# (Optional) Install the binary to have it accessible everywhere
make install

You can find the version to be run to join a specific network by visiting the Chains specifications page.

Set up the P2P network

To initialize your consensus node, you have to pick a node name that describes your node. Then, you can run the following command to initialize the configuration files:

milkywayd init "<Node name>" --chain-id ceers-2112

Next, you have to download the genesis file. You can find the genesis files for each chain on our GitHub repository: milkyway-labs/networks. Once you have selected a genesis file you want to use, you have to place it inside the $HOME/.milkyway/data/genesis.json file.

Make sure you verify the sha256sum after downloading the file, to ensure authenticity and integrity.

Finally, you need to set the seeds inside the $HOME/.milkyway/config/config.toml file. You can find a list of seed node for each chain on GitHub: milkyway-labs/networks.

Start the consensus node

Finally, it's time to start your node. You can do by running:

milkywayd start

If you've configured everything properly, you should see your node trying to connect to other nodes and downloading the blocks.

Last updated