Phase 1: CKPool build infrastructure
Forks CKPool-solo at upstream commit cfb0f83b (v1.0) via a multi-stage Docker build, with an env-driven entrypoint that renders ckpool.conf from a template. The pinned commit already includes every fix referenced in Bassin issue #29 (workbase_id double increment, extended low-power timeouts, configurable dropidle, vardiff burst handling). No patches are applied yet — the patches/ directory holds the workflow and build wiring so Kamado-specific patches can be added incrementally. Build is portable across aarch64/x86_64: yasm is intentionally omitted so CKPool falls back to its C SHA256, and CFLAGS override drops upstream's default -march=native. Runtime image ships ckpool and ckpmsg for socket debugging; share logging (-L) is enabled by default. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# ----------------------------------------------------------------------------
|
||||
# Kamado Pool — development compose
|
||||
#
|
||||
# Spins up ckpool-solo pointing at a bitcoind. Expects bitcoind to be
|
||||
# reachable at the host/port set in the `env` block below. For local
|
||||
# testing, run bitcoind on regtest/testnet4 and set these accordingly.
|
||||
#
|
||||
# The ckpool socket dir is bind-mounted to ./data/run so the (future)
|
||||
# kamado-api can talk to it from outside the container during development.
|
||||
# ----------------------------------------------------------------------------
|
||||
services:
|
||||
ckpool:
|
||||
build:
|
||||
context: ./ckpool
|
||||
dockerfile: Dockerfile
|
||||
container_name: kamado-ckpool
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3333:3333"
|
||||
volumes:
|
||||
- ./data/run:/run/ckpool
|
||||
- ./data/logs:/var/log/ckpool
|
||||
environment:
|
||||
# --- Bitcoin Core connection ---
|
||||
BITCOIN_RPC_HOST: "host.docker.internal"
|
||||
BITCOIN_RPC_PORT: "48332" # testnet4 default
|
||||
BITCOIN_RPC_USER: "${BITCOIN_RPC_USER:-kamado}"
|
||||
BITCOIN_RPC_PASSWORD: "${BITCOIN_RPC_PASSWORD:-kamado}"
|
||||
BITCOIN_NOTIFY: "true"
|
||||
# Optional ZMQ for instant block notifications (recommended)
|
||||
ZMQ_BLOCK: "${ZMQ_BLOCK:-}" # e.g. tcp://host.docker.internal:28332
|
||||
|
||||
# --- Pool settings ---
|
||||
POOL_BTCADDRESS: "${POOL_BTCADDRESS:?set POOL_BTCADDRESS in .env}"
|
||||
POOL_BTCSIG: "/Kamado Pool dev/"
|
||||
STRATUM_PORT: "3333"
|
||||
|
||||
# --- Difficulty ---
|
||||
MINDIFF: "1"
|
||||
STARTDIFF: "1"
|
||||
MAXDIFF: "0"
|
||||
# Drop clients idle longer than N seconds (0 = never drop)
|
||||
DROPIDLE: "0"
|
||||
|
||||
# --- Logging ---
|
||||
SHARE_LOG: "1"
|
||||
LOGDIR: "/var/log/ckpool"
|
||||
SOCKET_DIR: "/run/ckpool"
|
||||
extra_hosts:
|
||||
# Allow containers to reach bitcoind running on the host
|
||||
- "host.docker.internal:host-gateway"
|
||||
Reference in New Issue
Block a user