Show domains in pool status

This commit is contained in:
2026-08-18 02:53:40 +03:00
parent a1fa90c66a
commit eb5f4cbf5a
12 changed files with 517 additions and 141 deletions
+18 -5
View File
@@ -3,6 +3,7 @@ import { i18n } from '../i18n'
import { sdk } from '../sdk'
import {
defaultStratumPort,
defaultStratumPublicTlsPort,
defaultStratumTlsPort,
logLevels,
validatePorts,
@@ -12,9 +13,9 @@ const { InputSpec, Value } = sdk
export const inputSpec = InputSpec.of({
stratumPort: Value.number({
name: i18n('Stratum Port'),
name: i18n('Preferred Stratum Port'),
description: i18n(
'Network port your miners connect to for plaintext stratum. StartOS publishes the pool on this port; if it is already claimed by another service the OS assigns a different one, so check the Stratum interface after saving. Changing this does not interrupt connected miners.',
'Network port to publish plaintext stratum on. This is a request, not a guarantee: if the port is already claimed the OS assigns a different one and warns you. Run the Pool Status action to see the ports actually in use. Changing this does not interrupt connected miners.',
),
required: true,
default: defaultStratumPort,
@@ -23,9 +24,9 @@ export const inputSpec = InputSpec.of({
max: 65535,
}),
stratumTlsPort: Value.number({
name: i18n('Stratum TLS Port'),
name: i18n('Preferred Stratum TLS Port (Local Network)'),
description: i18n(
'Network port your miners connect to for TLS stratum — both for the local self-signed certificate and for any public domain attached to the Stratum (TLS) interface.',
'Network port to publish local-network TLS stratum on, using the self-signed certificate. A request, not a guarantee — see Pool Status for the port actually in use.',
),
required: true,
default: defaultStratumTlsPort,
@@ -33,6 +34,17 @@ export const inputSpec = InputSpec.of({
min: 1,
max: 65535,
}),
stratumPublicTlsPort: Value.number({
name: i18n('Preferred Stratum TLS Port (Public Domain)'),
description: i18n(
'Network port to publish public-domain TLS stratum on. A domain attached to the Stratum (TLS, Public Domain) interface is published on THIS port, which can differ from the one the OS assigns for IP access, and StartOS issues a Lets Encrypt certificate for it — miners validate it with nothing pasted in. See Pool Status for the ports and domains actually in use.',
),
required: true,
default: defaultStratumPublicTlsPort,
integer: true,
min: 1,
max: 65535,
}),
coinbaseTag: Value.text({
name: i18n('Coinbase Tag'),
description: i18n(
@@ -56,7 +68,7 @@ export const inputSpec = InputSpec.of({
tlsEnabled: Value.toggle({
name: i18n('Stratum TLS (Local Network)'),
description: i18n(
'Serve the self-signed certificate on the TLS stratum port, for miners on your local network. Miners have to trust it (see the Stratum TLS Certificate action) or connect with verification disabled. You do NOT need this for miners connecting over a public domain: attach the domain to the Stratum (TLS) interface and StartOS issues a publicly trusted certificate automatically.',
'Serve the self-signed certificate on the local-network TLS port. Miners have to trust it (see the Stratum TLS Certificate action) or connect with verification disabled. You do NOT need this for miners connecting over a public domain: attach the domain to the Stratum (TLS, Public Domain) interface instead, and StartOS issues a publicly trusted certificate for it automatically.',
),
default: false,
}),
@@ -151,6 +163,7 @@ export const config = sdk.Action.withInput(
const conflict = validatePorts({
stratumPort: input.stratumPort,
stratumTlsPort: input.stratumTlsPort,
stratumPublicTlsPort: input.stratumPublicTlsPort,
})
if (conflict) throw new Error(conflict)