Parallax Pool

Open source · MIT

Your own pool, in one command

Parallax 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

Parallax Pool's overview page: pool hashrate, the expected time between the pool's blocks, the time since the last block, and the last 100 blocks of the chain with the pool's own highlighted
The web interface every pool serves, here with demo figures at mainnet scale.

01Two modes

Solo for yourself. Shared for everyone else

One setting decides who gets paid. Start solo; switch when other miners join.

PAYOUT_MODE=direct

Solo mining

The 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.

Rewards
Paid by the chain to your address
Keys on the server
None
Good for
Your own rigs, behind one address
PAYOUT_MODE=pool

Shared pool

Rewards 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.

Payout schemes
PPLNS by default, PPLNSBF, PROP or SOLO
Fee
Yours to set, 0% by default
Payouts
From 1 LAX, every 10 minutes by default
Keys on the server
The pool's own key, unlocked in the node

02Quick start

Mining in minutes

Everything runs in Docker. Two values in a .env file are all it needs.

  1. 01

    Set two values

    Copy .env.example to .env and set POOL_ADDRESS, your LAX address, and a database password.

  2. 02

    Start it

    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.

  3. 03

    Point your rigs at it

    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-pool
cp .env.example .env
docker compose up -d

Set 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 full pool, built for Parallax

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.

XHash validation

Every share is hashed by the pool itself, in native code, from a light cache of a few megabytes per epoch.

EthereumStratum

The stratum Hashwarp and SRBMiner-Multi speak, with legacy eth-proxy and TLS ports available from a config file.

Adaptive difficulty

Each miner's share difficulty follows its hashrate, aiming for a share every 15 seconds. Miners can also fix their own.

Parallax's maturity rule

Rewards are credited only after the 100-block lockbox, about 17 hours, from the halving schedule the chain itself uses.

A web interface

Pool hashrate, expected time to a block, recent blocks, payments, a page per miner, and a connect page that builds the miner command.

REST API and live events

Pools, blocks, payments and miners over REST, and a WebSocket stream for new blocks, unlocks, payments and hashrate.

No setup to speak of

Configured from environment variables alone. It creates its own database schema on first start.

Operator tools

Prometheus metrics, banning, e-mail and Pushover alerts, and ZeroMQ share relays for pools spread over several servers.

04Going public

Before you open it to others

A shared pool holds other people's earnings in a hot wallet. A few things matter more than the rest.

  • Keep the node's RPC private

    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.

  • Back up the key and the password

    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.

  • Admin and metrics stay local

    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.

  • Outgrow the .env with a config file

    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

Get Parallax Pool

Free and open source under the MIT license, published as a Docker image for amd64 and arm64.

What it needs

Docker
Docker with the Compose plugin, on amd64 or arm64
From source
The .NET 10 SDK, make and g++
Node
A Parallax node mining to the pool's address. Compose runs one for you
Ports
4073 stratum, 4000 web interface and API, 32110 peer-to-peer

Need a miner? Hashwarp, the official XHash miner, connects to it out of the box.

Get Hashwarp