System Requirements
Hardware and software requirements for Arch Network development
Welcome to the Arch Network development guide. This page contains all the requirements and setup instructions needed to start developing with Arch Network.
System Requirements
Hardware Requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 4+ cores | 8+ cores |
| RAM | 16GB | 32GB |
| Storage | 100GB SSD | 500GB+ SSD |
| Network | 100Mbps | 1Gbps+ |
Software Requirements
| Requirement | Minimum Version | Description |
|---|---|---|
| Operating System | Ubuntu 20.04+ / macOS 12.0+ | Latest LTS recommended |
| Git | Latest | Version control |
| Rust | 1.94.0 | Host development toolchain |
| Solana/Agave CLI | 3.1.9+ | Provides cargo-build-sbf for program compilation |
| Arch Network CLI | Latest | Development toolkit |
Installation Guide
1. Install Rust
# Install Rust using rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env # Add Rust to your current shell session
# Verify installation
rustc --version
cargo --version2. Install Build Tools
macOS
xcode-select --install # Install Command Line ToolsLinux (Debian/Ubuntu)
sudo apt-get update
sudo apt-get install -y build-essential gcc-multilib jq3. Install Solana/Agave CLI
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
# Verify installation (use 3.1.9 or later)
solana --version4. Install Arch Network CLI
The CLI README lists a cross-platform installer and Homebrew options:
# One-line installer
curl -sSL https://raw.githubusercontent.com/Arch-Network/arch-node/main/install.sh | bash
# Or install directly with Homebrew
brew install https://raw.githubusercontent.com/Arch-Network/homebrew-tap/main/arch-cli.rbVerify installation:
arch-cli --versionDocker Requirements
For running the complete Arch Network stack locally, you'll need Docker:
Install Docker
macOS
- Recommended: OrbStack - Lightweight and fast
- Alternative: Docker Desktop
Linux
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
sudo systemctl start docker
sudo systemctl enable docker
# Add your user to docker group
sudo usermod -aG docker $USER
# Log out and back in for changes to take effectWindows
Verify Docker Installation
docker --version
docker-compose --version
docker run hello-worldDevelopment Environment Setup
VS Code (Recommended)
Install the following extensions:
- Rust Analyzer - Rust language support
- Solana - Solana program development
- GitLens - Enhanced Git capabilities
- Thunder Client - API testing
- Markdown All in One - Markdown support
Terminal Setup
macOS (iTerm2 + Oh My Zsh)
# Install iTerm2
brew install --cask iterm2
# Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Install useful plugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlightingLinux (Terminator + Oh My Bash)
# Install Terminator
sudo apt-get install terminator
# Install Oh My Bash
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"Network Requirements
Port Configuration
The following ports need to be available:
| Service | Port | Description |
|---|---|---|
| Bitcoin Core RPC | 18443 (regtest) / 18332 (testnet) | Bitcoin RPC interface |
| Titan HTTP API | 8080 | Titan HTTP API |
| Titan TCP API | 3030 | Titan TCP/subscription interface |
| Arch Validator RPC | 9002 | Validator RPC interface |
| Arch Validator P2P | 19001 (local validator) / 29001 (validator binary) | Peer-to-peer networking |
Firewall Configuration
macOS
# Allow incoming connections (if needed)
sudo pfctl -f /etc/pf.confLinux (UFW)
# Allow specific ports
sudo ufw allow 9002
sudo ufw allow 3030
sudo ufw allow 8080
sudo ufw allow 19001
sudo ufw allow 29001Troubleshooting
Solana Installation Issues
If you installed Rust through Homebrew and encounter cargo-build-sbf issues:
- Remove existing Rust installation:
rustup self uninstall- Perform clean Rust installation:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh- Reinstall Solana:
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"Docker Issues
Docker daemon not running:
# macOS (Docker Desktop)
open -a Docker
# Linux
sudo systemctl start dockerPermission denied:
# Add user to docker group
sudo usermod -aG docker $USER
# Log out and back inNetwork Issues
Port already in use:
# Find process using port
lsof -i :9002
# Kill process
kill -9 <PID>Connection refused:
# Check if service is running
curl -X POST http://localhost:9002 \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "is_node_ready", "params": []}'
# Check the local validator service status
arch-cli orchestrate validator-statusPerformance Optimization
System Tuning
Linux
# Increase file descriptor limits
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf
# Optimize network settings
echo "net.core.rmem_max = 134217728" | sudo tee -a /etc/sysctl.conf
echo "net.core.wmem_max = 134217728" | sudo tee -a /etc/sysctl.conf
sudo sysctl -pmacOS
# Increase file descriptor limits
sudo launchctl limit maxfiles 65536 200000Docker Optimization
# Increase Docker memory limit
# In Docker Desktop: Settings > Resources > Memory > 8GB+
# Enable experimental features for better performance
echo '{"experimental": true}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart dockerVerification Checklist
Before proceeding with development, verify:
- Rust is installed and working (
rustc --version) - Solana/Agave CLI is installed (
solana --version) - Arch CLI is installed (
arch-cli --version) - Docker is running (
docker --version) - All required ports are available
- Development environment is configured
- Network connectivity is working
Next Steps
Quick Start Guide
Get your first program running in 15 minutes
Validator Setup
Set up a complete validator node
Writing Your First Program
Learn to build Arch programs