Arch Network Logo
Setup Infrastructure

๐Ÿ—๏ธ Validator Setup

Complete guide to setting up a full Arch Network validator node with Bitcoin Core and Titan indexer

Welcome to the validator setup guide! This guide will walk you through setting up a full Arch Network validator node. You can choose between an automated setup or manual configuration depending on your needs.

๐ŸŽฏ What You'll Build

๐ŸŽฏ Component Architecture

๐Ÿ’ก 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

  • CPU: 4+ cores recommended
  • RAM: 16GB+ recommended
  • Storage: 100GB+ SSD for regtest, 500GB+ for testnet/mainnet
  • Network: Stable internet connection (10+ Mbps)
  • OS: Linux (Ubuntu 20.04+) or macOS (12.0+)

๐Ÿš€ Setup Options

Choose your preferred setup method:

The easiest way to get started using the CLI orchestrate command.

Prerequisites:

Setup:

# 1. Download and install the Arch CLI
# (Download the appropriate binary for your platform from the releases page)

# 2. Start the complete validator stack
arch-cli orchestrate start

This automatically starts:

  • Bitcoin Core (regtest mode)
  • Titan indexer
  • Local validator
  • All necessary networking and configuration

Service URLs:

  • Bitcoin Core RPC: http://127.0.0.1:18443
  • Titan API: http://127.0.0.1:3030
  • Validator RPC: http://127.0.0.1:9002

Management Commands:

# Stop all services
arch-cli orchestrate stop

# Restart all services
arch-cli orchestrate restart

# Check service status
arch-cli orchestrate status

# View logs
arch-cli orchestrate logs

# Reset everything (clears all data)
arch-cli orchestrate reset

Option B: Manual Setup

For advanced users who want full control over each component.

Step 1: Bitcoin Core Setup

Install Bitcoin Core:

# Download and install Bitcoin Core
# Visit https://bitcoincore.org/en/download/ for your platform

# For Ubuntu/Debian:
wget https://bitcoincore.org/bin/bitcoin-core-25.0/bitcoin-25.0-x86_64-linux-gnu.tar.gz
tar -xzf bitcoin-25.0-x86_64-linux-gnu.tar.gz
sudo cp bitcoin-25.0/bin/* /usr/local/bin/

Configure Bitcoin Core:

# Create Bitcoin data directory
mkdir -p ~/.bitcoin

# Create bitcoin.conf
cat > ~/.bitcoin/bitcoin.conf << EOF
# Network configuration
regtest=1
server=1
rpcuser=bitcoin
rpcpassword=bitcoinpass
rpcport=18443
rpcbind=127.0.0.1
rpcallowip=127.0.0.1

# Performance settings
dbcache=1000
maxmempool=2000
maxconnections=25

# Logging
debug=1
logtimestamps=1
logips=1
EOF

Start Bitcoin Core:

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

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

Step 2: Titan Indexer Setup

Install Titan:

# Clone Titan repository
git clone https://github.com/saturnbtc/Titan.git
cd Titan

# Build Titan
cargo build --release

# Create Titan configuration
mkdir -p ~/.titan
cat > ~/.titan/config.toml << EOF
[network]
network = "regtest"

[bitcoin]
rpc_url = "http://bitcoin:bitcoinpass@127.0.0.1:18443"

[server]
http_addr = "127.0.0.1:8080"
tcp_addr = "127.0.0.1:3030"
EOF

Start Titan:

# Start Titan indexer
./target/release/titan --config ~/.titan/config.toml

Step 3: Arch Validator Setup

Install Arch Validator:

# Download Arch validator binary
# Visit https://github.com/Arch-Network/arch-node/releases/latest

# For Linux:
wget https://github.com/Arch-Network/arch-node/releases/latest/download/arch-node-x86_64-unknown-linux-gnu
chmod +x arch-node-x86_64-unknown-linux-gnu
sudo mv arch-node-x86_64-unknown-linux-gnu /usr/local/bin/arch-node

Configure Validator:

# Create validator data directory
mkdir -p ~/.arch_data

# Create validator configuration
cat > ~/.arch_data/config.toml << EOF
[network]
mode = "devnet"
bitcoin_rpc_url = "http://bitcoin:bitcoinpass@127.0.0.1:18443"
titan_rpc_url = "http://127.0.0.1:3030"

[validator]
rpc_port = 9002
p2p_port = 9003
data_dir = "~/.arch_data"

[logging]
level = "info"
EOF

Start Validator:

# Start Arch validator
arch-node --config ~/.arch_data/config.toml

๐Ÿ”ง Configuration Options

Network Modes

Regtest Configuration

Perfect for development and testing:

# Bitcoin Core regtest configuration
regtest=1
server=1
rpcuser=bitcoin
rpcpassword=bitcoinpass
rpcport=18443

# Generate blocks instantly for testing
bitcoin-cli -regtest generatetoaddress 100 $(bitcoin-cli -regtest getnewaddress)

Testnet Configuration

For testing with real Bitcoin testnet:

# Bitcoin Core testnet configuration
testnet=1
server=1
rpcuser=bitcoin
rpcpassword=bitcoinpass
rpcport=18332

# Connect to testnet
bitcoin-cli -testnet getblockchaininfo

๐Ÿงช Testing Your Setup

Verify Bitcoin Core

# Check Bitcoin Core status
bitcoin-cli -regtest getblockchaininfo

# Generate some test blocks
bitcoin-cli -regtest generatetoaddress 10 $(bitcoin-cli -regtest getnewaddress)

# Check balance
bitcoin-cli -regtest getbalance

Verify Titan Indexer

# Check Titan API
curl http://127.0.0.1:8080/health

# Get block information
curl http://127.0.0.1:8080/api/v1/blocks/latest

Verify Arch Validator

# Check validator status
curl http://127.0.0.1:9002/health

# Get network information
curl http://127.0.0.1:9002/api/v1/network/info

๐Ÿšจ Troubleshooting

Common Issues

Bitcoin Core won't start:

# Check if port is already in use
netstat -tulpn | grep 18443

# Kill existing process
pkill bitcoind

# Check Bitcoin Core logs
tail -f ~/.bitcoin/regtest/debug.log

Titan connection issues:

# Verify Bitcoin RPC connection
curl -u bitcoin:bitcoinpass http://127.0.0.1:18443

# Check Titan logs
tail -f ~/.titan/logs/titan.log

Validator startup problems:

# Check validator logs
tail -f ~/.arch_data/logs/validator.log

# Verify all dependencies are running
arch-cli orchestrate status

Performance Optimization

For better performance:

# Increase Bitcoin Core cache
echo "dbcache=2000" >> ~/.bitcoin/bitcoin.conf

# Optimize Titan settings
echo "max_connections=100" >> ~/.titan/config.toml

# Restart services
arch-cli orchestrate restart

๐Ÿ“š Next Steps

๐Ÿ†˜ Getting Help

If you encounter issues:

  1. Check the logs for error messages
  2. Verify all services are running correctly
  3. Join our Discord for community support
  4. Review the troubleshooting guide for common solutions
  5. Submit an issue on GitHub if you find a bug

Welcome to the Arch Network validator community! ๐ŸŽ‰