Consesus node
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
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 milkyway
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.
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