πŸ—οΈ Running an Arch Network Validator

Welcome to the validator setup guide! This comprehensive guide will walk you through setting up a full Arch Network validator node, including all required components. As a validator, you'll be an integral part of the network's security and computation infrastructure.

🎯 What You'll Build

graph TD
    A[Bitcoin Core] -->|Blockchain Data| B[Titan]
    B -->|Efficient Queries| C[Validator Node]
    C -->|Participate in| D[Arch Network]
    D -->|Secure| E[Bitcoin Network]
    classDef default fill:#f8f9fa,stroke:#dee2e6,stroke-width:2px,rx:10px,ry:10px
    classDef bitcoin fill:#ffd700,stroke:#f4c430,stroke-width:2px,rx:10px,ry:10px
    classDef titan fill:#4a90e2,stroke:#357abd,stroke-width:2px,rx:10px,ry:10px
    classDef validator fill:#2ed573,stroke:#26ae60,stroke-width:2px,rx:10px,ry:10px
    classDef arch fill:#ff6b81,stroke:#ff4757,stroke-width:2px,rx:10px,ry:10px
    class A,E bitcoin
    class B titan
    class C validator
    class D arch
    linkStyle default stroke:#a4b0be,stroke-width:2px

πŸ’‘ Understanding Your Role

As a validator, you will:

  • Execute smart contracts and validate transactions
  • Participate in network consensus
  • Help secure the Bitcoin integration
  • Earn rewards for your contribution

πŸ“‹ System Requirements

Before starting, ensure you have:

  • 4+ CPU cores
  • 16GB+ RAM
  • 100GB+ SSD storage
  • Stable internet connection
  • Linux (Ubuntu 20.04+ or similar) or macOS (12.0+)

πŸ—ΊοΈ Setup Overview

  1. Bitcoin Core Setup (30-45 minutes)

    • Install dependencies
    • Build from source
    • Configure for your network
  2. Titan Setup (15-20 minutes)

    • Build our custom fork
    • Configure for your network
  3. Validator Setup (10-15 minutes)

    • Install Arch Network CLI
    • Configure validator node
    • Join the network

Total estimated time: 1-1.5 hours

🎯 What We're Building

graph TD
    A[Your dApp] -->|Interacts with| B[Local Validator]
    B -->|Queries| C[Titan]
    C -->|Reads| D[Bitcoin Core]
    D -->|Manages| E[Local Blockchain]
    classDef default fill:#f8f9fa,stroke:#dee2e6,stroke-width:2px,rx:10px,ry:10px
    classDef dapp fill:#ff6b81,stroke:#ff4757,stroke-width:2px,rx:10px,ry:10px
    classDef validator fill:#2ed573,stroke:#26ae60,stroke-width:2px,rx:10px,ry:10px
    classDef titan fill:#4a90e2,stroke:#357abd,stroke-width:2px,rx:10px,ry:10px
    classDef bitcoin fill:#ffd700,stroke:#f4c430,stroke-width:2px,rx:10px,ry:10px
    classDef blockchain fill:#a4b0be,stroke:#747d8c,stroke-width:2px,rx:10px,ry:10px
    class A dapp
    class B validator
    class C titan
    class D bitcoin
    class E blockchain
    linkStyle default stroke:#a4b0be,stroke-width:2px

🧩 Understanding the Components

Bitcoin Core 🏦

  • Your personal Bitcoin node
  • Manages a local blockchain in regtest mode
  • Perfect for development - create test Bitcoin at will!

Titan ⚑

  • Lightning-fast Bitcoin data indexer
  • Makes blockchain queries super efficient
  • Essential for real-time dApp responses

πŸ“‹ Progress Tracker

  • Install Bitcoin Core dependencies
  • Build Bitcoin Core
  • Configure Bitcoin Core
  • Test Bitcoin Core
  • Build Titan
  • Configure Titan
  • Test the full stack

1. πŸ—οΈ Bitcoin Core Setup

1.1 Installing Dependencies

macOS

# Install required dependencies via Homebrew
brew install automake boost ccache git libevent libnatpmp libtool \
    llvm miniupnpc pkg-config python qrencode qt@5 sqlite zeromq

Ubuntu/Debian Linux

# Install required dependencies
sudo apt-get update && sudo apt-get install -y \
    automake autotools-dev bsdmainutils build-essential ccache \
    clang gcc git libboost-dev libboost-filesystem-dev \
    libboost-system-dev libboost-test-dev libevent-dev \
    libminiupnpc-dev libnatpmp-dev libsqlite3-dev libtool \
    libzmq3-dev pkg-config python3 qtbase5-dev qttools5-dev \
    qttools5-dev-tools qtwayland5 systemtap-sdt-dev

RHEL/Fedora Linux

# Install required dependencies
sudo dnf install -y automake boost-devel ccache clang gcc git \
    libevent-devel libnatpmp-devel libtool make miniupnpc-devel \
    pkg-config python3 qt5-qtbase-devel qt5-qttools-devel \
    sqlite-devel systemtap-sdt-devel zeromq-devel

1.2 🏭 Building Bitcoin Core

# Clone Bitcoin Core
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin

# Switch to latest stable version
git checkout v28.0

# Prepare the build system
./autogen.sh

# Configure the build
./configure

# Build Bitcoin Core (this might take 30-45 minutes)
make -j$(nproc)  # Uses all available CPU cores

# Install the binaries
sudo make install

1.3 βš™οΈ Bitcoin Core Configuration

Create your configuration directory:

macOS

mkdir -p ~/Library/'Application Support'/Bitcoin
CONFIG_DIR=~/Library/'Application Support'/Bitcoin

Linux

mkdir -p ~/.bitcoin
CONFIG_DIR=~/.bitcoin

Create and edit your configuration file:

cat > "$CONFIG_DIR/bitcoin.conf" << 'EOF'
# 🌐 Network Settings
server=1
regtest=1
txindex=1
prune=0

# πŸ”’ Security (Change these values in production!)
rpcuser=bitcoin
rpcpassword=bitcoinpass  

# πŸ”§ Performance
dbcache=150
maxmempool=100

# πŸš€ Development Settings
fallbackfee=0.001
maxtxfee=0.002

[regtest]
rpcbind=0.0.0.0
rpcport=18443
wallet=testwallet
EOF

1.4 πŸš€ Launch Bitcoin Core

# Start Bitcoin Core in regtest mode
bitcoind -regtest -daemon

# Verify it's running
bitcoin-cli -regtest getblockchaininfo