# DigiByte node RPC # For DigiByte multi-algo setups, point this at a daemon configured with `algo=sha256d`. NODE_RPC_HOST=127.0.0.1 NODE_RPC_PORT=14022 NODE_RPC_USER=change-me NODE_RPC_PASS=change-me NODE_RPC_TLS=false # Stratum server STRATUM_HOST=0.0.0.0 STRATUM_PORT=3333 # Default for modern BM1370 hardware (Bitaxe, NerdOCTAXE, etc.) # Use 'stratum' for older/traditional mining software if needed STRATUM_PREVHASH_MODE=stratum_wordrev SOCKET_IDLE_TIMEOUT_MS=300000 # Connection limits and rate limiting MAX_CLIENTS=1000 MAX_CLIENTS_PER_IP=10 CONNECTION_RATE_LIMIT_PER_MIN=60 # HTTP status / metrics API_HOST=0.0.0.0 API_PORT=8080 # Optional TLS/HTTPS for API server API_TLS=false API_TLS_CERT=/path/to/cert.pem API_TLS_KEY=/path/to/key.pem # CORS settings API_CORS_ENABLED=true API_CORS_ORIGIN=* # Mining mode (current implementation validates SHA256d only) POW_ALGO=sha256d BASE_DIFFICULTY=16384 MIN_DIFFICULTY=1 ENABLE_VARDIFF=true VARDIFF_TARGET_SHARE_TIME_MS=15000 VARDIFF_RETARGET_EVERY_SHARES=4 VARDIFF_MAX_DIFFICULTY=16384 EXTRANONCE1_SIZE=4 EXTRANONCE2_SIZE=8 # Payout address (REQUIRED - set your DigiByte address here) POOL_PAYOUT_ADDRESS=dgb1... # Dashboard explorer base for payout address links POOL_PAYOUT_ADDRESS_EXPLORER_BASE=https://digiexplorer.info/address/ # Advanced: Direct scriptPubKey hex (optional, leave empty for normal use) # Only set this if you know what you're doing - it bypasses address validation POOL_PAYOUT_SCRIPT_HEX= # Pool identity POOL_TAG=/gbf-solo/ # Security ALLOW_ANY_USER=true MINER_AUTH_TOKEN= VERSION_ROLLING_MASK=1fffe000 VERSION_ROLLING_MIN_BIT_COUNT=1 # Per-miner disjoint version-rolling mask slices (overt ASICBoost partitioning). # Enabled by default; set false for emergency rollback. # Runtime auto-gate: slicing is only active when at least 2 compatible miners are connected. ENABLE_VERSION_MASK_SLICING=true # Compatibility profile: keep NerdAxe/NerdOctaxe on full negotiated mask (no slicing). DISABLE_SLICING_FOR_NERDAXE=true # Backward-compatible alias for older typo/spelling in some deployments. DISABLE_SLICING_FOR_NERDOCTAXE=true VERSION_MASK_SLICE_BITS_PER_MINER=2 # After this many lowdiff/invalid/stale rejects in a row, revert client to full mask. VERSION_MASK_SLICE_FALLBACK_REJECTS=8 # ESP-Miner lane: coalesce non-clean notify churn to reduce queue resets/work disruption. ENABLE_ESP_MINER_NOTIFY_COALESCING=true ESP_MINER_NOTIFY_NONCLEAN_MIN_INTERVAL_MS=3000 ESP_MINER_NOTIFY_FORCE_INTERVAL_MS=15000 # Adaptive non-clean notify pacing based on share timing / reject pressure / submit ack latency. ENABLE_ADAPTIVE_NOTIFY_PACING=true ADAPTIVE_NOTIFY_BASE_INTERVAL_MS=400 ADAPTIVE_NOTIFY_TARGET_SHARE_MS=2000 ADAPTIVE_NOTIFY_MAX_INTERVAL_MS=5000 ADAPTIVE_NOTIFY_HIGH_ACK_MS=200 ADAPTIVE_NOTIFY_HIGH_REJECT_RATIO_PCT=5 # If miner subscribed to extranonce extension, rotate namespace before forcing template refresh. ENABLE_SET_EXTRANONCE_ORCHESTRATION=true SET_EXTRANONCE_ROTATE_COOLDOWN_MS=10000 # Template behavior # Prefer ZMQ hashblock push notifications for fastest new-block detection. ENABLE_ZMQ_HASHBLOCK=true # Optional override. Leave empty to auto-use NODE_RPC_HOST on port 28332. ZMQ_HASHBLOCK_ENDPOINT= ZMQ_RECONNECT_BASE_MS=250 ZMQ_RECONNECT_MAX_MS=10000 # When ENABLE_ZMQ_HASHBLOCK=true and ENABLE_LONGPOLL is not set, longpoll defaults to false. ENABLE_LONGPOLL=false NODE_RPC_TIMEOUT_MS=5000 NODE_RPC_LONGPOLL_TIMEOUT_MS=90000 ALLOW_NODE_POW_ALGO_MISMATCH=false TEMPLATE_POLL_MS=1000 # When ZMQ/longpoll signal is healthy, back off poll RPCs to reduce jitter/load without losing block updates. TEMPLATE_POLL_MS_LONGPOLL_HEALTHY=500 LONGPOLL_HEALTHY_GRACE_MS=120000 # On ZMQ/longpoll new-block events, broadcast a minimal template first, then full follow-up. ENABLE_NEW_BLOCK_FASTPATH=true # Tx count to include in the fastpath template (0 = near-empty block template). NEW_BLOCK_FASTPATH_TX_LIMIT=0 # Prebuild likely next-template coinbase/merkle artifacts in background. ENABLE_SPECULATIVE_NEXT_TEMPLATE_PREBUILD=true # Refresh active job nonce space for very fast miners to reduce duplicate work. ENABLE_PROACTIVE_NONCE_SPACE_REFRESH=true NONCE_SPACE_REFRESH_FAST_SHARE_MS=2000 NONCE_SPACE_REFRESH_COOLDOWN_MS=8000 NONCE_SPACE_REFRESH_DUPLICATE_STREAK=3 # full | fast | prevhash (fast is a good latency/default tradeoff) TEMPLATE_FINGERPRINT_MODE=fast KEEP_OLD_JOBS=8 MAX_JOB_SUBMISSIONS_TRACKED=50000 # Async prewarm of block tx hex when a share lands near network target (reduces submitblock latency). ENABLE_NEAR_CANDIDATE_PREWARM=true NEAR_CANDIDATE_PREWARM_FACTOR=256 GBT_RULES=segwit # Logging LOG_LEVEL=info # Log every new mining job broadcast (set true to enable). LOG_NEW_JOBS=false # Extra diagnostics when troubleshooting share validation outcomes. DEBUG_SHARE_VALIDATION=false # Log periodic aggregated pool snapshot lines from the API server (set true to enable). LOG_POOL_STATS_SNAPSHOT=false LOG_FORMAT=auto # Interval for background stats logging (even when dashboard closed) in milliseconds # Default: 30000 (30 seconds) STATS_LOGGING_INTERVAL_MS=30000 # Stats persistence (built-in snapshot + WAL, no external dependencies) STATS_PERSISTENCE_ENABLED=true STATS_PERSISTENCE_DIR=data STATS_WAL_CAPTURE_MS=1000 STATS_WAL_FLUSH_MS=1000 STATS_CHECKPOINT_MS=60000 STATS_RECENT_SHARES_MAX=240 # How often to check found blocks for pending/confirmed/orphaned status. BLOCK_STATUS_CHECK_MS=30000