Cover photo

Guide to Setting Up a Validator Node for Fractal

Prerequisites

  1. System Requirements

    • OS: Ubuntu 20.04 or later (recommended for compatibility).

    • CPU: 4+ cores.

    • RAM: 16 GB or more.

    • Storage: 500 GB SSD or more.

    • Network: Reliable connection with at least 1 Gbps bandwidth.

  2. Dependencies

    • curl

    • git

    • docker and docker-compose

    • jq (JSON processor)

    • make

    • go (Golang, version 1.19+)

  3. Fractal Identity

    • Ensure you have registered with Fractal and obtained the necessary credentials.


Step 1: Install Dependencies

Update and Upgrade Your System

sudo apt update && sudo apt upgrade -y

Install Required Packages

sudo apt install -y curl git jq make gcc build-essential

Install Docker and Docker Compose

# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker $USER

# Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Install Go

wget https://golang.org/dl/go1.19.10.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.19.10.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc

Step 2: Clone the Fractal Repository

Navigate to your desired directory and clone the Fractal repository:

git clone https://github.com/fractalprotocol/fractal-node.git
cd fractal-node

Step 3: Build the Node

Initialize Submodules

git submodule update --init --recursive

Build the Node

make build

The resulting binary should be located in the build directory.


Step 4: Configure the Node

Generate Configuration Files

./build/fractal-node init <your-validator-name> --chain-id fractal-mainnet

Replace <your-validator-name> with your desired name.

Edit the Configuration

Navigate to the configuration folder:

cd ~/.fractal/config

Open the config.toml file and update the following:

  • Peers and Seeds

    persistent_peers = "<peer-list>"
    seeds = "<seed-list>"
    
  • Minimum Gas Prices

    minimum-gas-prices = "0.001ufractal"
    
  • Prometheus Enable metrics for monitoring:

    prometheus = true
    

Step 5: Start the Node

Run the Node

./build/fractal-node start

Use Docker (Optional)

If you prefer Docker:

docker-compose up -d

Step 6: Create and Fund a Validator

Create a Wallet

./build/fractal-node keys add <wallet-name>

Fund the Wallet

Transfer some tokens to your wallet address from an exchange or faucet.

Create the Validator

./build/fractal-node tx staking create-validator \
  --amount=1000000ufractal \
  --pubkey=$(./build/fractal-node tendermint show-validator) \
  --moniker="<your-validator-name>" \
  --chain-id=fractal-mainnet \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1" \
  --from=<wallet-name> \
  --fees=2000ufractal

Step 7: Monitor and Maintain

Check Node Logs

journalctl -u fractal-node -f

Monitor Metrics

If Prometheus is enabled, access metrics at http://<node-ip>:26660.

Upgrade Node

Keep your node updated:

git pull origin main
make build