Expose config options for cleartext stratum port
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import { FileHelper, z } from '@start9labs/start-sdk'
|
||||
import { sdk } from '../sdk'
|
||||
import { defaultStratumPort, defaultStratumTlsPort } from '../utils'
|
||||
|
||||
/**
|
||||
* Persisted service settings (the 0.4.0 replacement for the 0.3.x
|
||||
* config.yaml). Every field carries a `.catch()` default, so merging `{}`
|
||||
* on install materializes a fully-populated file, and a corrupt or
|
||||
* hand-edited file self-heals to defaults instead of crashing the service.
|
||||
*
|
||||
* Ports are intentionally absent: internal ports are fixed constants (see
|
||||
* utils.ts) and external ports are remapped by the user through the StartOS
|
||||
* interface UI, not service config.
|
||||
*/
|
||||
export const storeJson = FileHelper.json(
|
||||
{
|
||||
base: sdk.volumes.main,
|
||||
subpath: '/store.json',
|
||||
},
|
||||
z.object({
|
||||
/**
|
||||
* Port ckpool binds for plaintext stratum. Also requested as the
|
||||
* interface's preferred external port, so miners reach the pool on this
|
||||
* same number whenever the OS can grant it.
|
||||
*/
|
||||
stratumPort: z.number().int().min(1).max(65535).catch(defaultStratumPort),
|
||||
/** Port stunnel accepts TLS stratum on (only used when tlsEnabled). */
|
||||
stratumTlsPort: z
|
||||
.number()
|
||||
.int()
|
||||
.min(1)
|
||||
.max(65535)
|
||||
.catch(defaultStratumTlsPort),
|
||||
/** Short string embedded in the coinbase transaction of solved blocks (ckpool btcsig). */
|
||||
coinbaseTag: z.string().catch('/Kamado/'),
|
||||
/** Initial vardiff target for new miner connections. */
|
||||
startDiff: z.number().int().min(1).catch(16384),
|
||||
/** Floor for the vardiff algorithm. */
|
||||
minDiff: z.number().int().min(1).catch(1000),
|
||||
/** Ceiling for the vardiff algorithm. 0 means no cap. */
|
||||
maxDiff: z.number().int().min(0).catch(0),
|
||||
/** Disconnect clients idle for this many seconds. 0 disables. */
|
||||
dropIdle: z.number().int().min(0).catch(0),
|
||||
/** kamado-api log verbosity. */
|
||||
logLevel: z.enum(['debug', 'info', 'warn', 'error']).catch('info'),
|
||||
/** Subscribe kamado-api to bitcoind's hashblock ZMQ topic. */
|
||||
zmqEnabled: z.boolean().catch(true),
|
||||
/** Terminate TLS for stratum via the stunnel sidecar on stratumTlsPort. */
|
||||
tlsEnabled: z.boolean().catch(false),
|
||||
/**
|
||||
* Base URL of a self-hosted mempool instance for dashboard explorer
|
||||
* links. null -> use the public mempool.space.
|
||||
*/
|
||||
mempoolExplorerUrl: z.string().nullable().catch(null),
|
||||
}),
|
||||
)
|
||||
Reference in New Issue
Block a user