forked from QuipNetwork/quip-miner
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquip-node.example.toml
More file actions
121 lines (100 loc) · 4.8 KB
/
Copy pathquip-node.example.toml
File metadata and controls
121 lines (100 loc) · 4.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[global]
node_name = "Quantum Node Name" # Optional human-readable name for your node.
# Local binding address (ip address) and port to listen to.
listen = "0.0.0.0"
port = 20049 # ("QN" -> little endian unsigned int is 0x514E -> 0x4E51 = 20049)
#public_host = "my.dns.or.ip:public_port"
# Optional deterministic key generation
# Defaults to generate a brand new key on boot.
secret = "your-secret-here" # Used to generate a deterministic key pair for this node
# Enable mining on startup when no peers can be found.
# Defaults to exit if a peer cannot be found.
# auto_mine = true
# Genesis block configuration file path
# Defaults to "genesis_block.json" if not specified
# genesis_config = "genesis_block_testnet.json"
# Peers to try and connect to, defaults to "nodes.quip.network:20049"
# peer = ["nodes.quip.network:20049", "peer2.quip.network:20049"]
timeout = 3 # Timeout for peer connections and communications in seconds
heartbeat_interval = 15 # Interval for sending heartbeats to peers in seconds
heartbeat_timeout = 300 # Timeout for waiting for heartbeats from peers in seconds
# Number of peers to gossip to at a time. Defaults to 3, you should never need to change this.
# fanout = 3
# TLS/SSL Configuration for QUIC peer-to-peer
verify_ssl = true # Verify SSL/TLS certificates when connecting to peers
# ca_bundle = "/path/to/ca-certificates.crt" # Custom CA certificate bundle (optional)
# TOFU (Trust On First Use) - Certificate pinning for peer-to-peer security
[tofu]
enabled = true # Enable TOFU certificate fingerprint verification
trust_db = "~/.quip/trust.db" # SQLite database for storing peer fingerprints
# REST API - HTTP/HTTPS server for browser and external access
[rest_api]
enabled = false # Set to true to enable REST API
host = "0.0.0.0" # Bind address for REST API
http_port = 8080 # HTTP port (non-TLS, for development/local access)
https_port = 443 # HTTPS port (TLS, for production browser access)
# Certificate acquisition priority:
# 1. Use these files if provided and valid
# rest_tls_cert_file = "/etc/letsencrypt/live/your-domain.com/fullchain.pem"
# rest_tls_key_file = "/etc/letsencrypt/live/your-domain.com/privkey.pem"
# 2. Attempt ACME/Let's Encrypt if domain and email are configured (requires port 80)
# rest_domain = "api.your-node.example.com"
# acme_email = "admin@example.com"
# acme_staging = false # Use Let's Encrypt staging server for testing
# 3. If neither above works, a self-signed certificate is generated automatically
# Browser users will see certificate warnings, but node-to-node QUIC is unaffected
# Directory to store generated certificates
cert_dir = "~/.quip/certs"
# Logging configuration
log_level = "INFO" # DEBUG, INFO, WARNING, ERROR
node_log = "logs/quip-node.log" # Path to main node log file (optional, defaults to stderr)
http_log = "logs/quip-node-http.log" # Path to HTTP/aiohttp log file (optional, suppresses aiohttp logs if not set)
# if any of the following are defined then they will be spun up as miner processes to mine blocks.
# By default a single CPU miner is created.
[cpu]
# Limit CPU worker threads; max is number of logical CPUs on your system
num_cpus = 4
[gpu]
# Backend selection: "local" (default) uses local GPUs (CUDA/ROCm/MPS). "modal" uses Modal cloud GPUs.
backend = "local"
# For local backend: list devices to use (e.g., CUDA ordinals like "0", "1"). If omitted, runtime may auto-detect.
devices = ["0", "1"]
# For modal backend: list GPU types to use (e.g., ["t4", "a10g"]).
# types = ["t4", "a10g"]
[qpu]
# Credentials and region for D-Wave
# If omitted here, can be supplied on CLI
# Endpoint defaults to na-west-1 SAPI
# DWAVE_API_TOKEN
# DWAVE_API_SOLVER
# DWAVE_API_ENDPOINT
# Fill as desired:
# dwave_api_key = "..."
# dwave_api_solver = "Advantage_system6.4"
# dwave_region_url = "https://na-west-1.cloud.dwavesys.com/sapi/v2/"
# QPU Time Budget Management
# Controls QPU usage to prevent exceeding your Leap allocation.
# Check your Leap Dashboard for your monthly allocation.
#
# Daily QPU time budget - calculate from your monthly allocation
# Example: With 20 minutes/month, set daily budget to ~40s (20m / 30 days)
# Supports: 30s, 5m, 2h, etc.
#
# Budget is spread proportionally across the day using proportional pacing:
# - At 6 AM UTC (25% of day): can use up to 25% of budget (10s)
# - At noon UTC (50% of day): can use up to 50% of budget (20s)
# - At 6 PM UTC (75% of day): can use up to 75% of budget (30s)
# - Day resets at UTC midnight
#
# This prevents exhausting your entire budget early in the day.
qpu_daily_budget = "60s"
#
# Minimum blocks to mine before EMA estimation kicks in
# Until this threshold, uses conservative max(observed) * 1.5 estimate
# Default: 5
# qpu_min_blocks_for_estimation = 5
#
# EMA decay factor for time estimation (0.0-1.0)
# Higher values give more weight to recent block times
# Default: 0.3
# qpu_ema_alpha = 0.3