Mine at Lazarus with the FlyTheElephant gateway

FlyTheElephant1/datum_gateway is a DATUM gateway for this chain: CONVOY's BLAKE2b code plus FlyTheElephant's own work. Its master gives every miner the pool's whole payout split (the 16 KB coinbase) and fits that coinbase to the block's weight and sigop limits, so a full split can never make your block invalid. It connects to Lazarus with no patch. FlyTheElephant also helps miners set up in our Discord #support. Thank you.

1. Your node. Bitcoin Knots 29.4.2 (older builds reject the long coinbase maturity rule and their blocks are invalid), fully synced on this chain. In bitcoin.conf:

server=1
blake2b_headline=8-30 NYPost Deride And Conquer
blockmaxweight=736000
blocknotify=killall -USR1 datum_gateway

blockmaxweight leaves room for the split coinbase. Knots' default DNS seeds point at SHA-256 peers, so add a few addnode= lines from a current list for this chain (bitcoinxor.org/node, or CONVOY's guide); a list pasted weeks ago rots. maxtipage only mattered during the slow weeks after the fork and you can leave it out once you are synced.

2. Build the gateway. On Debian or Ubuntu (other systems: the repo's README):

sudo apt install cmake pkgconf libcurl4-openssl-dev libjansson-dev libsodium-dev libmicrohttpd-dev psmisc
git clone https://github.com/FlyTheElephant1/datum_gateway
cd datum_gateway
cmake . && make
./datum_gateway --test
./datum_gateway -c datum_gateway_config.json

There is also a Dockerfile in the repo; in Docker set notify_fallback to false and use blocknotify=wget -q -O /dev/null http://datum-gateway:7152/NOTIFY.

3. Config. A complete datum_gateway_config.json for Lazarus. Copy pool_pubkey from the DATUM tab below; set pool_address to your own address (it only receives value on work that is not pooled); point rpccookiefile or rpcuser/rpcpassword at your node.

{
  "bitcoind": {
    "rpccookiefile": "/home/you/.bitcoin/.cookie",
    "rpcurl": "http://127.0.0.1:8332",
    "notify_fallback": true
  },
  "stratum": { "listen_port": 23334, "vardiff_min": 4096 },
  "mining": {
    "pool_address": "bc1q…your address",
    "coinbase_tag_primary": "Lazarus",
    "coinbase_tag_secondary": "your name or rig"
  },
  "api": { "listen_port": 7152, "admin_password": "choose one" },
  "logger": { "log_level_console": 2 },
  "datum": {
    "pool_host": "datum.lazarus-xbt.xyz",
    "pool_port": 28915,
    "pool_pubkey": "the pubkey from the DATUM tab below",
    "pool_pass_workers": true,
    "pool_pass_full_users": true,
    "pooled_mining_only": true
  }
}

Leave vardiff_min at 4096: without it stock DATUM starts every session at 16384, and Prime cannot lower that.

4. Point your miners at the gateway, not at us: stratum+tcp://<your gateway's LAN IP>:23334, username youraddress.worker, password x. The part before the first . is who gets paid.

5. Check it. Within a minute your gateway shows under Gateways as v0.4.1-beta/<commit> with fee path DATUM, and your address appears under Miners after its first share. The gateway's own dashboard is on port 7152. Its log should say DATUM Server MOTD with our Proverbs line; a found block shows here with its split.

If it does not connect. DATUM not connected and configured for pooled mining only! Rejecting connection means the gateway has no pool session, so it turns miners away (their firmware then fails over to their backup pool): check pool_host, pool_port and that pool_pubkey is the whole key from this page; a wrong key never gets past the handshake. A tip stuck at 961,639 is an old Knots or peers on the other chain. Refused in the log with an upgrade message means your node built a block the chain rejected; upgrade Knots and reconnect, and it lets you back in by itself.

What we measured. We ran this gateway against our own Prime and Knots 29.4.2 on regtest: handshake and pubkey pinning, the split in every found block paying every miner in the window, address.worker and bare-address usernames, the 0% DATUM fee path, reconnects, Prime's template checks and refusals all pass. One thing does not, and it is shared by every C DATUM gateway today (iohzrd and CONVOY too): for a fraction of a second after each new block, and for as long as the pool's split is late, the gateway can hand out a job whose coinbase pays only the pool. A small patch fixes it by serving the empty subsidy-only job, or nothing, until the split is in. We are offering it to FlyTheElephant; once it is merged this build has no known gaps, and until then you can apply it yourself: datum-gateway-fte-late-coinbaser.patch (patch -p1 < it before cmake).

Get connected

One username: your address.

Two ways in, one rule. Your stratum username is the address that gets paid.

Recommended · no fee · paid the bonus

Your own DATUM gateway

0%

Your node builds the block and picks the transactions. Lazarus only dictates the coinbase split and verifies your shares. On top of your full share, every block credits you a cut of the public stratum’s fee.

Setup below

Simplest · point and go

Public stratum

25%

Our node, our templates. Any BLAKE2b ASIC or miner. Same TIDES window — switch to a gateway later and your accepted work comes with you. 12.5 points of the fee goes to the DATUM miners; run a gateway and you are on the receiving end.

Setup below

Which DATUM gateway

If you run your own node, pick one of these. All four speak BLAKE2b and connect here with no patch. Skip this if you use the public stratum.

  1. Recommended iohzrd Master c031568; StartOS pow_0.4.1_23 ships the older 7491a50. Every miner gets the whole split, fitted to the block’s weight and sigop limits, so a found block pays the whole window. Measured against our Prime: for about 20 ms after each new block, and for as long as a pool’s split is late, it can hand out a job that pays only the pool.
  2. FlyTheElephant Master a5f28aa: CONVOY’s BLAKE2b code plus FlyTheElephant’s fixes. Every miner gets the whole split coinbase, fitted to the block’s weight and sigop limits, so a found block pays the whole window. Like every C gateway today, for a moment after each new block, and for as long as a pool’s split is late, it can hand out a job that pays only the pool; a one-file patch closes that. Setup guide and test results.
  3. Ratum iohzrd’s Rust gateway, ratum-gateway: one binary for Linux, macOS and Windows, same config file. Every split output in the coinbase, and at most 0.006% of the time on a pool-only job, tested release by release against our Prime. When it loses the pool it keeps serving unpooled work for 12–26 s, which pays mining.pool_address, so set that to your own address. Setup guide.
  4. CONVOY Master ac9b70c. Firmware size classes still apply to miners it recognises (an Antminer A3 among them), so a block they find can pay only the first ~17 miners. Like the other C builds, for about 20 ms after each new block, and for as long as a pool’s split is late, it can hand out a job that pays only the pool.

CONVOY’s get-started guide is a longer walkthrough of Bitcoin Knots and a DATUM gateway — node, gateway build, and pointing miners at it. Read it in English or in 中文. Point the gateway here with the host, port, and pubkey below; Lazarus-specific fees and the DATUM bonus are this page, not theirs.

Stratum
User
bc1q…youraddress.worker
Pass
x
Fee
25% of your window share, taken inside the coinbase. 12.5 points of it is credited to the DATUM miners in the window — run your own gateway and it is paid to you instead
Algo
BLAKE2b — Sia-style header, not SHA-256d
Payout
Your share of the TIDES window, in the coinbase of every block the pool finds. See Next payout.

Our public gateway on :23334 is itself a DATUM gateway on this Prime — you will see it under Gateways — so work here and work through your own gateway land in the same window under your address. New sessions start at difficulty 4096; vardiff then steps 2× every ~20s toward your hashrate.

Gateways

Every gateway on Prime.

Every DATUM gateway connected right now, ours included, plus any that have found a block even if they are offline. Block counts are lifetime.