๐๏ธ 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:
Option A: Automated Setup (Recommended)
The easiest way to get started using the CLI orchestrate command.
Prerequisites:
- Docker: Required on all platforms - Install Docker
- Docker Management (optional but recommended):
- macOS: OrbStack (recommended) or Docker Desktop
- Linux: Docker Desktop (optional GUI)
- Arch Network CLI - Download from releases
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 (Development)
Local development with instant block generation
Testnet (Testing)
Public test network with real Bitcoin testnet
Mainnet (Production)
Production network (not yet available)
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
Deploy Your First Program
Learn how to deploy and interact with programs
Understanding Architecture
Deep dive into Arch Network architecture
Bitcoin Integration
Learn how Arch integrates with Bitcoin
Join the Community
Get help and connect with other developers
๐ Getting Help
If you encounter issues:
- Check the logs for error messages
- Verify all services are running correctly
- Join our Discord for community support
- Review the troubleshooting guide for common solutions
- Submit an issue on GitHub if you find a bug
Welcome to the Arch Network validator community! ๐