graph TB
subgraph "Arch Network Components"
V[Validator Node]
LV[Local Validator]
CLI[CLI]
User((User))
User -->|Interacts with| CLI
CLI -->|Commands| V
CLI -->|Local Development| LV
end
subgraph "Bitcoin Integration"
E[Electrs Server]
BTC[Bitcoin Node]
V -->|Queries| E
LV -->|Queries| E
E -->|Syncs with| BTC
end
style V fill:#f9f,stroke:#333,stroke-width:2px
style LV fill:#bbf,stroke:#333,stroke-width:2px
style CLI fill:#bfb,stroke:#333,stroke-width:2px
Arch Network provides three different binaries for different use cases:
graph LR
A[Arch Network] --> B[Validator Node]
A --> C[Local Validator]
A --> D[CLI]
B -->|"Production Use"| E[Network Participation]
C -->|"Development"| F[Local Testing]
D -->|"User Interface"| G[Network Interaction]
style A fill:#f96,stroke:#333,stroke-width:2px
style B fill:#f9f,stroke:#333,stroke-width:2px
style C fill:#bbf,stroke:#333,stroke-width:2px
style D fill:#bfb,stroke:#333,stroke-width:2px
-
Validator Node (
validator
)- Full validator node for participating in the network
- Supports mainnet deployment
- Complete consensus participation
-
Local Validator (
local_validator
)- Simplified validator for local development
- Perfect for testing and development
- Faster setup and iteration
-
CLI (
cli
)- Command line interface for interacting with the network
- User-friendly commands
- Network management capabilities
graph TB
subgraph "Minimum Requirements"
CPU[CPU: 4+ cores]
RAM[RAM: 8+ GB]
Storage[Storage: 100+ GB SSD]
Network[Network: 100 Mbps]
end
subgraph "Recommended"
RCPU[CPU: 8+ cores]
RRAM[RAM: 16+ GB]
RStorage[Storage: 500+ GB SSD]
RNetwork[Network: 1 Gbps]
end
style CPU fill:#f96,stroke:#333,stroke-width:2px
style RAM fill:#f96,stroke:#333,stroke-width:2px
style Storage fill:#f96,stroke:#333,stroke-width:2px
style Network fill:#f96,stroke:#333,stroke-width:2px
Pre-compiled binaries are available for the following platforms:
Platform | Architecture | OS | Download Link |
---|---|---|---|
MacOS ARM64 | aarch64 | darwin | Download |
Linux ARM64 | aarch64 | linux-gnu | Download |
MacOS x86_64 | x86_64 | darwin | Download |
Linux x86_64 | x86_64 | linux-gnu | Download |
Download the appropriate binary for your platform from the releases page.
- Rust
- make
- clang/llvm
- libssl-dev/openssl-dev
- pkg-config
- RocksDB dependencies
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt-get update
sudo apt-get install make clang libssl-dev pkg-config
Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install other dependencies
brew install make llvm openssl pkg-config
- Install Earthly
- Build all binaries:
earthly +local
The built binaries will be available at:
./bin/$ARCH/validator
./bin/$ARCH/local_validator
./bin/$ARCH/cli
bash
cargo build --release
The built binaries will be in ./target/release/
.
The validator node is used for participating in the Arch Network. Configuration options:
validator \
--network-mode <MODE> \
--data-dir <DIR> \
--rpc-bind-ip <IP> \
--rpc-bind-port <PORT> \
--boot-node-endpoint <ENDPOINT> \
--p2p-bind-port <PORT> \
--electrs-endpoint <ELECTRS_URL>
mainnet
Both validator types require an Electrs server for Bitcoin integration:
--electrs-endpoint
: HTTP endpoint for Electrs server (default: http://127.0.0.1:3002)
--electrs-endpoint
: HTTP endpoint for Electrs server (default: http://127.0.0.1:3002)--electrum-endpoint
: TCP endpoint for Electrum protocol (default: tcp://127.0.0.1:60401)
Before running any validator, ensure you have Electrs running and properly configured for your network mode:
- For mainnet: Configure Electrs with Bitcoin mainnet
- For testnet: Configure Electrs with Bitcoin testnet
- For devnet/localnet: Configure Electrs with Bitcoin regtest
For installation and configuration of Electrs, refer to the Electrs documentation.
services:
validator:
image: ghcr.io/arch-network/validator:latest
ports:
- "9001:9001"
volumes:
- ./data:/data
environment:
- NETWORK_MODE=localnet
- RPC_BIND_IP=0.0.0.0
- RPC_BIND_PORT=9001
- ELECTRS_ENDPOINT=http://electrs:3002
graph TB
subgraph "Validator Node Setup"
VN[Validator Node]
RPC[RPC Interface]
P2P[P2P Network]
Data[Data Directory]
VN -->|Exposes| RPC
VN -->|Connects to| P2P
VN -->|Stores data in| Data
end
subgraph "Bitcoin Integration"
ES[Electrs Server]
BN[Bitcoin Node]
ES -->|Syncs with| BN
VN -->|Queries| ES
end
style VN fill:#f9f,stroke:#333,stroke-width:2px
style ES fill:#bbf,stroke:#333,stroke-width:2px
style BN fill:#bfb,stroke:#333,stroke-width:2px
graph LR
subgraph "Deployment Methods"
SB[Source Build]
DB[Docker Build]
PB[Pre-built Binary]
end
SB -->|Manual compilation| D[Deployment]
DB -->|Container deployment| D
PB -->|Direct installation| D
D -->|Configuration| C[Configuration]
C -->|Network selection| N[Network Mode]
N -->|Choose one| M1[Mainnet]
N -->|Choose one| M2[Testnet]
N -->|Choose one| M3[Devnet]
style D fill:#f96,stroke:#333,stroke-width:2px
style N fill:#bbf,stroke:#333,stroke-width:2px