1.39 Ph/s • BLOCK: 41M AGO
These are already the Gateway's built-in defaults, so you shouldn't need to set them at all:
datum.pool_host: datum-beta1.mine.convoy.xyz datum.pool_port: 28915 datum.pool_pubkey: dbb11fa0c2b5403e4f798fa6071bb97e6079d219598366032fdf2ae01962b13c5e66e2be7d6b008f0b2603f3e6f6fc64768fa786c8129c46d3e30a5867734b62
DATUM works by generating your own block templates from your own Bitcoin node. Before installing the DATUM Gateway, you need a synced node it can talk to.
Add https://start9.mempool.guide as a custom registry in your StartOS Marketplace (click the registry name at the top left, then “+ Add”), then install “Bitcoin Knots” from it.
Adding the mempool.guide registry by URL.
Bitcoin Knots' own Actions & Config exposes mempool, block-template, and block-notify settings directly, under “Mempool Settings” and “Other Settings”, if you want to tune them — the defaults work fine to get started.
The simplest route is the official Bitcoin Knots PPA:
sudo add-apt-repository ppa:luke-jr/bitcoinknots sudo apt install bitcoind
Download the build for your CPU from bitcoinknots.org and extract it.
Bitcoin Knots doesn't publish an Alpine build, and Alpine's musl libc can't run the other distros' prebuilt (glibc) binaries either — install the build dependencies and compile it yourself:
apk add build-base cmake pkgconf python3 libevent-dev boost-dev sqlite-dev cmake -B build cmake --build build
See Knots' own build-unix.md for the full generic Linux build notes.
Either way, it's the heaviest part of this setup, so give it a fast disk and generous storage/bandwidth.
Once it's synced, give its mempool room to hold more than the default, leave room for the pool's payout transaction, and notify the Gateway of new blocks. In your node's config file:
maxmempool=1000 blockmaxweight=785000 blocknotify=killall -USR1 datum_gateway
The blocknotify line requires killall to be installed, from the psmisc package:
apk add psmisc
sudo pacman -S psmisc
sudo apt install psmisc
sudo dnf install psmisc
sudo apt install psmisc
If your node and Gateway run on different machines, use the Gateway's NOTIFY API endpoint instead.
Run it as a service so it starts on boot:
[Unit] Description=Bitcoin Knots daemon After=network.target [Service] User=bitcoin ExecStart=/usr/local/bin/bitcoind -conf=/etc/bitcoin/bitcoin.conf Restart=on-failure [Install] WantedBy=multi-user.target
Save that as /etc/systemd/system/bitcoind.service (adjusting paths/users for your setup), then:
sudo systemctl enable --now bitcoind
If you downloaded the GUI build instead, just leave bitcoin-qt running.
Alpine uses OpenRC rather than systemd. Check Bitcoin Knots' README or the Alpine wiki for an OpenRC init script, or just run bitcoind directly for now and manage restarts yourself.
The DATUM Gateway sits between your node and your miners: it pulls block templates from your node over RPC, hands out work to your miners, and coordinates the payout split with CONVOY over the encrypted DATUM protocol. Mining through your own Gateway is CONVOY's standard 1% pool fee.
CONVOY maintains its own “Datum Gateway” build on that same community registry (flavor #pow), already configured to mine on CONVOY's DATUM server by default.
Don't install the “Datum Gateway” you'll also see on Start9's own official Registry or its Community Registry while browsing — those are different, separately-maintained builds. The Community Registry one is built from an old version and won't work with Bitcoin at all anymore, let alone CONVOY. The official Registry's version is unverified against CONVOY; treat it as unsupported until proven otherwise.
#pow) from the start9.mempool.guide registry you added in Step 1.The mempool.guide registry: Bitcoin Knots and Datum Gateway (#pow) alongside a few other BLAKE2b-aware packages.
Mining Settings: enter your Bitcoin address here. Everything else can be left as-is.
Create Password generates and displays the admin password for you.
Once your Bitcoin Knots install has finished syncing and both tasks above are cleared, the Dashboard's Status should turn healthy.
The Dashboard lists exactly what's left before the Gateway can start.
Install the build dependencies, then compile from source:
apk add cmake pkgconf curl-dev jansson-dev libsodium-dev libmicrohttpd-dev psmisc build-base
sudo pacman -Syu base-devel cmake pkgconf curl jansson libsodium libmicrohttpd psmisc
sudo apt install cmake pkgconf libcurl4-openssl-dev libjansson-dev libsodium-dev libmicrohttpd-dev psmisc
sudo dnf install cmake pkgconf libcurl-devel jansson-devel libsodium-devel libmicrohttpd-devel psmisc
sudo apt install cmake pkgconf libcurl4-openssl-dev libjansson-dev libsodium-dev libmicrohttpd-dev psmisc
A Launchpad PPA is also planned specifically for Ubuntu, as a simpler alternative once it's ready.
git clone https://github.com/CONVOYMining/datum_gateway.git cd datum_gateway cmake . make
Copy the example config from doc/example_datum_gateway_config.json in the repo, then fill in your node's RPC details and your own Bitcoin payout address:
{
"bitcoind": {
"rpcuser": "your_node_rpc_username",
"rpcpassword": "your_node_rpc_password",
"rpcurl": "http://localhost:8332"
},
"mining": {
"pool_address": "your own Bitcoin payout address"
},
"api": {
"admin_password": "choose a strong password",
"listen_port": 7152
}
}
Set a strong api.admin_password to protect the Gateway's web dashboard. You should leave datum.pool_host unset; it already defaults to CONVOY's DATUM server.
Run it as a service too:
[Unit] Description=DATUM Gateway After=network.target bitcoind.service [Service] WorkingDirectory=/etc/datum_gateway ExecStart=/usr/local/bin/datum_gateway -c /etc/datum_gateway/datum_gateway_config.json Restart=on-failure [Install] WantedBy=multi-user.target
Save that as /etc/systemd/system/datum_gateway.service (adjusting paths for your setup), then:
sudo systemctl enable --now datum_gateway
Alpine uses OpenRC rather than systemd here too — see the note in Step 1, or just run datum_gateway directly for now.
Once running, the Gateway serves a small dashboard on the port you configured (api.listen_port). You can review and, if you set api.modify_conf, edit your configuration there:
The DATUM Gateway's Config tab, showing your Bitcoin address, coinbase tag, and DATUM pool connection.
The Advanced section, where your node's RPC connection is configured.
Check the Status tab to confirm it connected:
A connected Gateway's Status tab.
stratum+tcp://mine.convoy.xyz:3333 as a backup/failover pool, using the same username as your primary connection above, so your miners keep working if your node or Gateway ever goes offline. This is a failover only, not a primary connection: mining directly against it skips DATUM, gives up control of your block templates, and pays a 2% fee for the failover service instead of DATUM's standard 1%.ip -4 -o addr show scope global on the machine running it — the number right after "inet" (before the /) on the line for your network interface is its LAN IP.Select at least one miner brand above to see setup instructions.
In the miner's web interface, go to Miner Configuration → General Settings, and set Pool 1's URL to stratum+tcp://your_gateway_ip:23334, Worker to your Bitcoin address, and Password to "x".
Repeat this for Pool 2, setting the URL to stratum+tcp://mine.convoy.xyz:3333 as a failover — keep the same Worker and Password as Pool 1.
If you don't know your miner's address on your network, find.goldshell.com can help locate it.
Make sure the interface is Unlocked (top right) before continuing. Under Miner, use Add to open Pool Config: the Protocol is already set to stratum+tcp, so set the URL to just your_gateway_ip:23334 (no stratum+tcp:// prefix), Miner Name to your Bitcoin address, and Password to "x".
Use Add again for a second pool entry: same Protocol, URL set to just mine.convoy.xyz:3333 (still no stratum+tcp:// prefix) as a failover, and the same Miner Name and Password as before.
On the miner's Config page, add a pool with URL stratum+tcp://your_gateway_ip:23334, Pool User set to your Bitcoin address, and Pool Password set to "x".
Click Add Pool again for a second entry: URL stratum+tcp://mine.convoy.xyz:3333 as a failover, with the same Pool User and Pool Password as before.
(Placeholder — we don't yet have a screenshot of Innosilicon's web interface to confirm exact field names. Most units in circulation are the older S11 SiaMaster; if you use one, let us know what you see and we'll fill this in.)
Once a miner connects, you'll see it appear on your Gateway's Clients tab:
Your DATUM Gateway's Clients tab, showing a connected miner and its accepted/rejected share counts.
See your stats: