- Go 93.9%
- Shell 4.2%
- JavaScript 1.1%
- Dockerfile 0.8%
| constants | ||
| contrib | ||
| mockdata | ||
| .dockerignore | ||
| .gitignore | ||
| api.go | ||
| config.go | ||
| config_test.go | ||
| go.mod | ||
| go.sum | ||
| jobtemplate.go | ||
| jobtemplate_test.go | ||
| LICENSE | ||
| main.go | ||
| mockrecording_test.go | ||
| openapi.yaml | ||
| README.MD | ||
| showoff.png | ||
| stratumclient.go | ||
| stratumclient_test.go | ||
| util.go | ||
| util_test.go | ||
/pogolo - decentralize or die/
solo db-less bitcoin-only mining pool
meant for lan swarms, not the internet
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
start it, point your miners to it, and watch the logs roll by
want a go pool you can run on the public internet? check out https://github.com/Distortions81/M45-Core-goPool!
features
- up to 4.3-5.2k shares/sec/client
- set a default address to mine to, no more ctrl+c ctrl+v ctrl+v ctrl+v ctrl+v ctrl+v
- btcd websocket support
- colorful and detailed logs (respects NO_COLOR)
- api (see api.go and swagger spec)
supported BIPs
- 34
- 41 (probably)
- 54
- 310 (minus
subscribe-extranonce) - 320
supported miners
- *axe family (bitaxe, nerd*axe, etc)
- cpuminer
- antminers
supported backends
pogolo has no tls support.
- JSON-RPC (core, knots, etc)
- btcd websocket
unsupported
- miners requiring extranonce.subscribe
- luckyminers/other non-foss axe clones
- stratum v2
setup
docker
pogolo 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:latest
docker (+compose) files exist and work but likely need tweaks, theyre also under contrib/pkgs/docker
environment overrides
for easy config, eg umbrel
POGOLO_HOST: # overrides [pogolo].host
POGOLO_BACKEND_HOST: # overrides [backend].host
POGOLO_BACKEND_RPCAUTH: # overrides [backend].rpcauth
go
go install git.0xf0xx0.eth.limo/0xf0xx0/pogolo@latest
then follow manual install/configure.
manual install
build
git clone https://git.0xf0xx0.eth.limo/0xf0xx0/pogolo.git
cd pogolo
go build -trimpath -ldflags="-s -w -buildid="
go install
configure
mkdir "$XDG_CONFIG_HOME/pogolo"
pogolo --writedefaultconf "$XDG_CONFIG_HOME/pogolo/pogolo.toml"
or, copy contrib/pogolo.example.toml to $XDG_CONFIG_HOME/pogolo/pogolo.toml
then configure the interface, backend, and auth
run
pogolo
miner config
host: stratum+tcp://<your lan ip>:5661
username: [.]
password: [required if set in pogolo.toml]
suggested diff: [optional]
the onchain address is also optional if the pool has a default configured.
stale jobs are normal, the expected error rate is 0.2%.
benchmarking
to reproduce shares/s result:
- set
benchmark = truein your config - connect with cpuminer (preferably from a different machine) and watch the shares fly
TODO
- link stratum and mining docs
waiting for bip 41
https://web.archive.org/web/20201130051808/https://braiins.com/stratum-v1/docs - completion (urfave is bugged)
- option to add workername to coinbase scriptsig?
- zmq for block notifs?
- aur packages (in progress)
