Files
KamadoPool-StartOS-0351/instructions.md
T
satoshi a63e7256c4 Tidy config: drop payout-address field, group niche options under Advanced
Worker stratum username is the payout address in ckpool-solo, so the
separate field was redundant. Niche vardiff/logging/zmq knobs now
live under an Advanced group with sensible defaults.
2026-04-14 17:10:51 +03:00

3.1 KiB

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. Start Kamado. Open the web UI from the Services page to watch live hashrate, miners, best shares, and solved blocks.

There is no payout address field. CKPool-solo pays the full block reward directly to whichever Bitcoin address the miner connects with as its stratum username — see Connecting miners below. Kamado validates worker usernames against Bitcoin Core and refuses to authenticate any worker whose username is not a valid address on the active network, so misconfigured miners fail loudly instead of silently mining to the wrong place.

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 the Bitcoin address that should receive the block reward (optionally followed by .workername for labelling in the dashboard). The password field is ignored.

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