/pogolo - decentralize or die/
solo db-less bitcoin-only mining pool, meant for lan swarms, not the internet;
start it, point your miners to it, and watch the logs roll by
think of this as public-pool but minimal and for self-sovereign nerds
infinite thanks to btcd for bitcoin tooling and public-pool for reference
want a go pool you can run on the public internet? check out https://github.com/Distortions81/M45-Core-goPool!
- set a default address to mine to, no more ctrl+c ctrl+v ctrl+v ctrl+v ctrl+v ctrl+v
- colorful and detailed logs (respects NO_COLOR)
- read-only api
- zmq and btcd websocket support
- up to 160k shares/sec
- 34
- 41 (probably)
- 54 (coinbase, relies on a compliant backend for the rest)
- 310 (minus
subscribe-extranonce) - 323
- *axe family (bitaxe, nerd*axe, etc)
- cpuminer
- antminers
pogolo has no tls support.
- JSON-RPC (no longpoll)
- btcd websocket
- ZMQ (
hashblocktopic)
- miners requiring extranonce.subscribe
- luckyminers/other non-foss axe clones
- stratum v2 (temporarily)
the api is documented in openapi.yaml, and exposed at /openapi.yaml.
get pogolo from the umbrel app store: https://apps.umbrel.com/app/pogolo
then point your miners to stratum+tcp://umbrel.local:5661
image at https://hub.docker.com/r/0xf0xx0/pogolo
copy the pogolo.toml from contrib/pkgs/docker, configure it to your needs, then run
docker run -d -v "./pogolo.toml:/config/pogolo.toml" 0xf0xx0/pogolo:latestdocker compose exists but likely needs tweaks, its also under contrib/pkgs/docker
for easy config
POGOLO_HOST: # overrides [pogolo].host
POGOLO_BACKEND_HOST: # overrides [backend].host
POGOLO_BACKEND_RPCAUTH: # overrides [backend].rpcauth
POGOLO_BACKEND_ZMQHOST: # overrides [backend].zmq_hostgo install git.0xf0xx0.eth.limo/0xf0xx0/pogolo@latestthen follow manual install/configure.
git clone https://git.0xf0xx0.eth.limo/0xf0xx0/pogolo.git
cd pogolo
go build -trimpath -ldflags="-s -w -buildid="
go install# create config dir
mkdir "$XDG_CONFIG_HOME/pogolo"
# write embedded default config (preferred)
pogolo --writedefaultconf "$XDG_CONFIG_HOME/pogolo/pogolo.toml"
# OR copy the example config
cp contrib/pogolo.example.toml "$XDG_CONFIG_HOME/pogolo/pogolo.toml"
# configure interface, backend, and auth
vim "$XDG_CONFIG_HOME/pogolo/pogolo.toml"
# run
pogolotheres a systemd unit at contrib/init/pogolo.service
for bare installs
it expects pogolo to be in the system PATH, a bitcoin group, and a config file at /etc/pogolo/pogolo.toml.
sudo cp contrib/init/pogolo.service /etc/systemd/system/
sudo mkdir -p /etc/pogolo
pogolo --writedefaultconf /etc/pogolo/pogolo.toml
sudo chmod -R 755 /etc/pogolo
sudo chown -R :bitcoin /etc/pogolo
sudo systemctl enable --now pogolohost: stratum+tcp://<your lan ip>:5661
username: <your onchain address>[.<worker name>]
password: [required if set in pogolo.toml]
suggested diff: [optional]
the onchain address is also optional if the pool has a default configured.
shares submitted between job changes are normal, the expected error rate is <=0.2%.
to reproduce shares/s result:
benchmark with https://github.com/eandersson/open-pool-benchmark
- link stratum and mining docs
waiting for bip 41
https://web.archive.org/web/20201130051808/https://braiins.com/stratum-v1/docs - prometheus metrics (half-done)
- block submission metrics
- aur packages (needs a maintainer)