content: [database]
  url = "sqlite:/opt/basilica/data/validator.db?mode=rwc"
  max_connections = 10
  run_migrations = true
  
  [server]
  host = "0.0.0.0"
  port = 8080
  advertised_host = "160.202.129.15"
  advertised_port = 8080
  advertised_tls = false
  max_connections = 1000
  request_timeout = { secs = 30 }
  
  [bittensor]
  wallet_name = "basilica"
  hotkey_name = "default"
  network = "finney"
  netuid = 39
  chain_endpoint = "wss://entrypoint-finney.opentensor.ai:443"
  weight_interval_secs = 300
  axon_port = 8080
  external_ip = "160.202.129.15"
  
  [verification]
  max_concurrent_verifications = 50
  max_concurrent_full_validations = 1
  min_score_threshold = 0.1
  verification_interval = { secs = 600 }
  challenge_timeout = { secs = 120 }
  retry_attempts = 3
  retry_delay = { secs = 5 }
  netuid = 39
  use_dynamic_discovery = true
  discovery_timeout = { secs = 30 }
  fallback_to_static = true
  cache_miner_info_ttl = { secs = 300 }
  enable_worker_queue = false            # Enable for decoupled async validation execution
  
  [verification.binary_validation]
  enabled = true
  validator_binary_path = "/opt/basilica/bin/validator-binary"
  executor_binary_path = "/opt/basilica/bin/executor-binary"
  execution_timeout_secs = 1200
  output_format = "json"
  
  [verification.docker_validation]
  docker_image = "nvidia/cuda:12.8.0-runtime-ubuntu22.04"
  pull_timeout_secs = 2400
  
  [verification.storage_validation]
  min_required_storage_bytes = 1099511627776 # 1TB in bytes
  
  [ssh_validation]
  enabled = true
  timeout = { secs = 60 }
  max_file_size = "10MB"
  allowed_commands = ["gpu-attestor", "nvidia-smi"]
  temp_dir = "/tmp/basilica-validation"
  
  [scoring]
  gpu_weight = 0.4
  cpu_weight = 0.2
  memory_weight = 0.2
  network_weight = 0.1
  reliability_weight = 0.1
  
  [metrics]
  enabled = true
  retention_period = { secs = 604800 }
  collection_interval = { secs = 30 }
  
  [metrics.prometheus]
  host = "0.0.0.0"
  port = 9090
  path = "/metrics"
  
  [logging]
  level = "debug"
  format = "json"
  output = "/opt/basilica/data/validator.log"
  max_file_size = 104857600
  max_files = 10
  
  [api]
  enabled = true
  swagger_enabled = true
  cors_enabled = true
  cors_origins = ["*"]
  rate_limit = 100
  
  [storage]
  data_dir = "/opt/basilica/data"
  
  [ssh_session]
  ssh_key_directory = "/opt/basilica/data/ssh_keys"
  key_algorithm = "ed25519"
  default_session_duration = 300
  max_session_duration = 3600
  rental_session_duration = 3600
  key_cleanup_interval = { secs = 60, nanos = 0 }
  enable_automated_sessions = true
  max_concurrent_sessions = 5
  session_rate_limit = 20
  enable_audit_logging = true
  audit_log_path = "/opt/basilica/data/ssh_audit.log"
  ssh_connection_timeout = { secs = 30, nanos = 0 }
  ssh_command_timeout = { secs = 60, nanos = 0 }
  ssh_retry_attempts = 3
  ssh_retry_delay = { secs = 2, nanos = 0 }
  
  # Billing - default to false as only one validator is running billing service
  [billing]
  enabled = false
  
  [emission]
  # Percentage of total emissions to burn (0.0-100.0)
  burn_percentage = 80.0
  
  # UID to receive burn allocation
  burn_uid = 204
  
  # Blocks between weight setting operations
  # 360 blocks = ~1 hour on Bittensor (12 seconds per block)
  weight_set_interval_blocks = 360
  
  # Minimum number of miners required
  # per GPU category to receive allocation
  min_miners_per_category = 1
  
  # Version key for weight setting operations
  # This prevents replay attacks by incrementing with each weight set
  weight_version_key = 0
  
  # GPU model allocation percentages
  # These percentages determine how emissions
  # are distributed across GPU categories
  # Must sum to exactly 100.0
  [emission.gpu_allocations]
  A100 = { weight = 8.0, min_gpu_count = 1, min_gpu_vram = 1 }
  H100 = { weight = 12.0, min_gpu_count = 1, min_gpu_vram = 1 }
  B200 = { weight = 80.0, min_gpu_count = 8, min_gpu_vram = 1 }
  