# Guide to Setting Up a Validator Node for Fractal

By [Glitch Enjoyers](https://paragraph.com/@glitch-enjoyers) · 2024-11-27

---

### **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](https://web.fractal.id/) 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

---

*Originally published on [Glitch Enjoyers](https://paragraph.com/@glitch-enjoyers/guide-to-setting-up-a-validator-node-for-fractal)*
