Parallax Pool
Open source · MITParallax Pool runs a Parallax node, a database and a stratum server together. Solo mine to your own wallet, or open a pool to other miners. It is a working pool on day one, and a starting point you can make your own.
Docker Compose · amd64 and arm64

01Two modes
One setting decides who gets paid. Start solo; switch when other miners join.
PAYOUT_MODE=directThe node mines straight to your address, so every block reward lands in your wallet. The pool tracks your rigs, shares and blocks, and never sends a transaction.
PAYOUT_MODE=poolRewards land at the pool's address and are split between miners by their shares, minus your fee, then paid out by the node as ordinary transactions.
02Quick start
Everything runs in Docker. Two values in a .env file are all it needs.
Copy .env.example to .env and set POOL_ADDRESS, your LAX address, and a database password.
docker compose up -d starts the node, PostgreSQL and the pool. The pool waits for the node to sync, then opens stratum on port 4073.
Miners use their LAX address as the user name. The web interface on port 4000 builds the command for them.
git clone https://github.com/ParallaxProtocol/parallax-pool && cd parallax-poolcp .env.example .envdocker compose up -dSet POOL_ADDRESS and DB_PASSWORD in .env before starting. Solo is the default: rewards go straight to POOL_ADDRESS and the server holds no keys.
03What's inside
A Parallax-only fork of Miningcore, the open-source pool engine. Its stratum server, share accounting and payout engine, with XHash and Parallax's rules built in.
Every share is hashed by the pool itself, in native code, from a light cache of a few megabytes per epoch.
The stratum Hashwarp and SRBMiner-Multi speak, with legacy eth-proxy and TLS ports available from a config file.
Each miner's share difficulty follows its hashrate, aiming for a share every 15 seconds. Miners can also fix their own.
Rewards are credited only after the 100-block lockbox, about 17 hours, from the halving schedule the chain itself uses.
Pool hashrate, expected time to a block, recent blocks, payments, a page per miner, and a connect page that builds the miner command.
Pools, blocks, payments and miners over REST, and a WebSocket stream for new blocks, unlocks, payments and hashrate.
Configured from environment variables alone. It creates its own database schema on first start.
Prometheus metrics, banning, e-mail and Pushover alerts, and ZeroMQ share relays for pools spread over several servers.
04Going public
A shared pool holds other people's earnings in a hot wallet. A few things matter more than the rest.
In pool mode the node holds the unlocked pool key: anyone who reaches its RPC can spend from it. Compose keeps the RPC inside the project; keep it that way.
The keystore and its password sit in the node's volume. Together they control the pool's funds. Lose them and the funds are gone.
The admin API and /metrics answer only to the machine the pool runs on. Mind that behind a reverse proxy on the same host, every visitor looks local.
TLS stratum, several ports, notifications, share relays and multiple pools are set in a JSON config file. Every option is in the schema.
05Get it
Free and open source under the MIT license, published as a Docker image for amd64 and arm64.
What it needs