Files
KamadoPool-StartOS-0351/instructions.md
T
satoshi cb739867cc Add optional stratum TLS via stunnel sidecar
New 'tls' union config (disabled by default) spins up an
stunnel4 process inside the container that terminates TLS on
a configurable port (3334 by default) and forwards decrypted
stratum traffic to 127.0.0.1:${STRATUM_PORT}.

Cert is self-signed, generated once on first start with a
10-year validity and persisted at /root/.kamado/tls/ so the
fingerprint stays stable across restarts. SHA-256 fingerprint
is printed to container logs on each startup so users can
pin it on their miners. Miners must connect with
verification disabled (no CA trust chain for a private pool).

Runtime image grows by ~3MB for stunnel4 + openssl. The
supervisor loop now waits on three PIDs and tears all of them
down together if any one exits.
2026-04-14 11:21:45 +03:00

35 lines
2.8 KiB
Markdown

# Kamado Pool
Kamado is a solo Bitcoin mining pool built on a patched fork of CKPool-solo, with a Go middleware API and a real-time Svelte dashboard. When a miner connected to your Kamado instance solves a block, **the full block reward goes to the payout address you configured** — no pool fees, no splits, no share accounting.
## Setup
1. Install Bitcoin Core (mainnet) **or** Bitcoin Core (testnet4). Kamado supports either as a dependency; pick one in the Kamado config under *Bitcoin Core > Type*.
2. In the Kamado config, set **Payout Address** to the Bitcoin address that should receive solved block rewards.
3. Optionally adjust the **Coinbase Tag** (default `/Kamado/`) and the vardiff parameters.
4. Start Kamado. Open the web UI from the Services page to watch live hashrate, miners, best shares, and solved blocks.
## Connecting miners
Kamado's plaintext stratum server listens on TCP port **3333** inside the container (configurable). If you enable **Stratum TLS** in the config, an stunnel sidecar also terminates TLS on port **3334** (configurable) and forwards the decrypted traffic to the plaintext stratum locally. The TLS certificate is generated once on first start and persisted at `/root/.kamado/tls/stratum.crt` — the SHA-256 fingerprint is printed to the container logs so you can pin it on your miners.
Because the cert is self-signed, miners must connect with certificate verification disabled (`stratum+ssl://`, plus whatever skip-verify / insecure flag your firmware exposes).
**StartOS 0.3.x does not forward raw TCP ports on the LAN interface**, so you have two options to reach stratum — plaintext or TLS — from miners on your local network:
- **Router port-forward**: Forward an external port on your router directly to your StartOS server's LAN IP on port 3333 and point miners at that.
- **simpleproxy on a second host**: Run `simpleproxy -L 3333 -R <startos-lan-ip>:3333` on any always-on LAN host and point miners at that host.
Once forwarding is in place, miners connect to `stratum+tcp://<forward-host>:3333` with the username set to **any label you like** (it becomes the worker name in the dashboard) and any password.
## Troubleshooting
- **No miners appear after connecting**: confirm the forward actually reaches the StartOS container — `telnet <forward-host> 3333` should connect. Check the Kamado logs in the Services page.
- **Bitcoin Core RPC errors**: make sure Bitcoin Core is fully synced and the RPC dependency was auto-configured (Kamado enables `rpc.enable` during setup).
- **Best share resets to 0 after a block is found**: upstream CKPool zeroes the "current round" best diff on solve. Kamado ships a patch that also exposes the all-time best, so the dashboard has both columns.
## Upstream
CKPool-solo by Con Kolivas: <https://bitbucket.org/ckolivas/ckpool>
Kamado source: <https://github.com/Relaxo143/KamadoPool>