-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.yaml
More file actions
101 lines (89 loc) · 3.07 KB
/
config.yaml
File metadata and controls
101 lines (89 loc) · 3.07 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
# ZKAnalyzer v3.5 Configuration
# Solana Validator Observability, Security & Replay Suite
system:
# Resource constraints as per PRD
max_memory_gb: 10.5 # PRD: ≤10.5GB RAM
max_cpu_percent: 40.0 # PRD: ≤40% CPU
max_disk_gb: 4.5 # PRD: ≤4.5GB disk
dry_run: false # Set to true for testing without real connections
log_level: "info" # debug, info, warn, error
data_dir: "/home/ubuntu/.zkanalyzer"
solana:
# Solana network configuration
rpc_url: "https://api.mainnet-beta.solana.com"
ws_url: "wss://api.mainnet-beta.solana.com"
commitment: "confirmed" # finalized, confirmed, processed
geyser:
enabled: true
endpoint: "http://localhost:10000"
buffer_size: 10000
timeout_secs: 30
features:
# Optional modules (disabled by default per PRD)
tui_enabled: false # Terminal UI dashboard
web_ui_enabled: false # Web-based admin dashboard
ebpf_enabled: false # eBPF system profiler
chaos_enabled: false # Chaos testing engine
plugins_enabled: false # Plugin system
audit_enabled: true # Audit logging (always recommended)
storage:
# SQLite database configuration
db_path: "/home/ubuntu/.zkanalyzer/zkanalyzer.db"
encryption_enabled: false
encryption_key: null # Base64 encoded AES-256 key
compression_enabled: true
max_db_size_mb: 2500 # PRD: ≤2.5GB
vacuum_interval_hours: 24
metrics:
# Prometheus metrics endpoint
port: 9102 # Port range: 9101-9109
tls_enabled: false
tls_cert_path: null
tls_key_path: null
collection_interval_secs: 10
alerts:
# Alert system configuration
enabled: true
rules_path: "/home/ubuntu/.zkanalyzer/rules.yaml"
delivery_timeout_secs: 3 # PRD: ≤3 seconds
# Notification channels
slack_webhook: null # Slack webhook URL
webhook_url: null # Generic webhook URL
# SMS configuration (optional)
sms:
provider: "twilio" # SMS provider
api_key: null # Provider API key
phone_number: null # Target phone number
security:
# Security and access control
rbac_enabled: true
admin_token: null # Admin access token
readonly_token: null # Read-only access token
replay_token: null # Replay access token
webhook_signing_enabled: true
webhook_signing_key: null # HMAC signing key
self_destruct_enabled: false
network:
# Network configuration (ports 9101-9109)
api_port: 9102 # Main API server
ws_port: 9103 # WebSocket server
grpc_port: 9104 # gRPC server
web_ui_port: 9101 # Web UI (if enabled)
bind_address: "0.0.0.0" # Bind to all interfaces
# Example alert rules (will be loaded from rules.yaml)
# alert_rules:
# - name: "HighCompute"
# conditions:
# - cu_usage > 900000
# - anchor_calls > 3
# actions:
# - webhook: "https://ops.local/risk-alert"
# - slack: "#validators"
# - sms: "+91XXXXXXXXXX"
#
# - name: "SlotGap"
# conditions:
# - slot_gap > 5
# actions:
# - webhook: "https://ops.local/slot-gap"
# - slack: "#validators"