Overview
Thestart-node command starts an SSV operator node instance. This is the main command for running an SSV operator that participates in distributed validator duties.
Usage
Required Configuration
The node requires a configuration file specified via the--config flag. At minimum, you must configure:
- Operator private key (via
OperatorPrivateKeyorKeyStore) - SSV network (
ssv.Network) - Beacon node endpoint (
eth2.BeaconNodeAddr) - Execution client endpoint (
eth1.ETH1Addr)
Flags
Path to the main configuration file (YAML format).
Path to an additional share configuration file that will override values from the main config.Useful for separating operator-specific settings from general configuration.
Configuration Options
All configuration is done via YAML files or environment variables. Below are the key configuration sections:Operator Identity
Base64-encoded operator private key for contract event decryption.
Recommended: Use encrypted keystore for operator private key.
SSV Network
The SSV network to join.Valid values:
mainnet- Production networkholesky- Holesky testnet
Consensus Layer (Beacon Node)
HTTP URL of the beacon node to connect to.
Enable weighted attestation data from multiple beacon nodes for increased reliability.
Enable parallel duty submissions to multiple beacon nodes.
Execution Layer
WebSocket URL of the execution client to connect to.Used for syncing SSV contract events (validator registrations, operator changes, etc.).
P2P Network
External IP address of the node (auto-detected if not specified).
TCP port for P2P communication.
UDP port for P2P discovery.
P2P discovery mechanism.
discv5- Standard discovery (production)mdns- Local network discovery (development only)
Private key for P2P network identity. Auto-generated if not provided.
Database
Path to persistent directory for node database storage.
MEV Configuration
Duration to wait before requesting a block proposal if this operator is the proposer-duty leader.Allows extracting higher MEV by waiting for better bids. Recommended starting value: See Production Deployment for detailed MEV guidance.
300ms.Safety flag to allow
ProposerDelay values higher than 1s.Custom graffiti string for block proposals.
API Servers
Port for Prometheus metrics endpoint. Set to Access metrics at
0 to disable.http://localhost:15000/metricsPort for SSV REST API. Set to
0 to disable.Port for WebSocket API server.
Enable WebSocket ping messages.
Logging
Logger verbosity level.Valid values:
debug, info, warn, error, fatal, panicLogger encoding format.
console- Human-readable (default)json- Machine-readable JSON
Log level formatting style.
capitalColor- Colored output (default for console)capital- Capitalized without colorlowercase- Lowercase level names
File path for log output.
Maximum log file size in megabytes before rotation.
Number of rotated log files to keep.
Advanced Options
Enable OpenTelemetry distributed traces.
Enable Go profiling tools (pprof).
Enable doppelganger protection to prevent running duplicate validators.
Path to local events file for testing/development.
Examples
Basic Configuration
config.yaml
Configuration with MEV
config.yaml
Multi-Beacon Node Setup
config.yaml
Environment Variables
Output
When the node starts successfully, you’ll see:Common Issues
Config file not found
Config file not found
Failed to decrypt keystore
Failed to decrypt keystore
Cannot connect to beacon node
Cannot connect to beacon node
Cannot connect to execution client
Cannot connect to execution client
Port already in use
Port already in use
See Also
- generate-operator-keys - Generate operator keys
- Configuration Reference - Detailed config options
- Monitoring - Set up metrics and monitoring
- Production Deployment - MEV setup guide
