import { compat, types as T } from "../deps.ts"; export const getConfig: T.ExpectedExports.getConfig = compat.getConfig({ "bitcoind": { "type": "union", "name": "Bitcoin Core", "description": "Select which Bitcoin Core node Kamado should use. Both variants work — pick whichever is installed on your server.", "tag": { "id": "type", "name": "Network", "description": "Mainnet bitcoind or the testnet4 variant.", "variant-names": { "bitcoind": "Bitcoin Core (mainnet)", "bitcoind-testnet": "Bitcoin Core (testnet4)", }, }, "default": "bitcoind", "variants": { "bitcoind": { "user": { "type": "pointer", "name": "RPC Username", "description": "The RPC username from Bitcoin Core.", "subtype": "package", "package-id": "bitcoind", "target": "config", "multi": false, "selector": "$.rpc.username", }, "password": { "type": "pointer", "name": "RPC Password", "description": "The RPC password from Bitcoin Core.", "subtype": "package", "package-id": "bitcoind", "target": "config", "multi": false, "selector": "$.rpc.password", }, }, "bitcoind-testnet": { "user": { "type": "pointer", "name": "RPC Username", "description": "The RPC username from Bitcoin Core (testnet4).", "subtype": "package", "package-id": "bitcoind-testnet", "target": "config", "multi": false, "selector": "$.rpc.username", }, "password": { "type": "pointer", "name": "RPC Password", "description": "The RPC password from Bitcoin Core (testnet4).", "subtype": "package", "package-id": "bitcoind-testnet", "target": "config", "multi": false, "selector": "$.rpc.password", }, }, }, }, "stratum-port": { "type": "number", "name": "Stratum Port", "description": "TCP port the plaintext stratum server listens on inside the container. Most miners connect here.", "nullable": false, "default": 3333, "range": "[1,65535]", "integral": true, }, "tls": { "type": "union", "name": "Stratum TLS", "description": "Optionally accept stratum connections over TLS via an stunnel sidecar. A self-signed certificate is generated once on first start and persisted — miners must connect with TLS verification disabled (stratum+ssl:// plus a skip-verify flag).", "tag": { "id": "enabled", "name": "Mode", "description": "Disable or enable TLS termination.", "variant-names": { "disabled": "Disabled", "enabled": "Enabled", }, }, "default": "disabled", "variants": { "disabled": {}, "enabled": { "port": { "type": "number", "name": "TLS Port", "description": "TCP port stunnel listens on for TLS stratum connections.", "nullable": false, "default": 3334, "range": "[1,65535]", "integral": true, }, }, }, }, "advanced": { "type": "object", "name": "Advanced", "description": "Fine-tuning knobs for vardiff, logging, and block notifications. Safe to ignore — the defaults work well for Bitaxe-class miners.", "spec": { "pool-identifier": { "type": "string", "name": "Coinbase Tag", "description": "Short string embedded in the coinbase transaction of solved blocks.", "nullable": false, "default": "/Kamado/", "masked": false, "copyable": false, }, "startdiff": { "type": "number", "name": "Starting Difficulty", "description": "Initial vardiff target for new miner connections. Bitaxe-class miners typically land around 16384.", "nullable": false, "default": 16384, "range": "[1,*)", "integral": true, }, "mindiff": { "type": "number", "name": "Minimum Difficulty", "description": "Floor for the vardiff algorithm.", "nullable": false, "default": 1000, "range": "[1,*)", "integral": true, }, "maxdiff": { "type": "number", "name": "Maximum Difficulty", "description": "Ceiling for the vardiff algorithm. 0 means no cap.", "nullable": false, "default": 0, "range": "[0,*)", "integral": true, }, "dropidle": { "type": "number", "name": "Drop Idle (seconds)", "description": "Disconnect clients that have not submitted a share in this many seconds. 0 disables the idle disconnect.", "nullable": false, "default": 0, "range": "[0,*)", "integral": true, }, "zmq-enabled": { "type": "boolean", "name": "Enable ZMQ Block Notifications", "description": "Subscribe to Bitcoin Core's hashblock ZMQ topic for sub-second chain refresh on the dashboard. Requires zmqpubhashblock on bitcoind.", "default": true, }, "log-level": { "type": "enum", "name": "Log Level", "description": "Verbosity of the kamado-api log output.", "values": ["debug", "info", "warn", "error"], "value-names": { "debug": "Debug", "info": "Info", "warn": "Warn", "error": "Error", }, "default": "info", }, }, }, });