Step-by-Step: Mining Bitcoin with DATUM Gateway + OCEAN Mining Pool Using Your Bitcoin Knots Node
- ✅ Why This Setup?
- 🧩 1) System Overview
- 🛠 2) Bitcoin Knots Configuration (bitcoin.conf)
- 🔌 3) DATUM Gateway Configuration (datum_gateway_config.json)
- 🔧 4) Systemd Service for DATUM Gateway
- 🖥 5) Miner Configuration (Bitaxe / Antminer)
- 📊 6) Logs & Diagnostics
- 🎯 Summary
This article is a follow-up to my original solo mining guide. It shows how to upgrade your Knots + Bitaxe setup to pooled solo mining using DATUM Gateway, while retaining full control over your block templates and ensuring your hashing power counts toward BIP‑110 activation.
✅ Why This Setup?
-
Run your own Bitcoin Knots node to generate block templates.
-
Run a DATUM Gateway to serve Stratum V1 to your miners.
-
Connect your miners (Bitaxe / ASICs) to your local gateway instead of directly to a pool.
-
Mine through a BIP‑110‑aware pool like OCEAN for lower variance while keeping non-custodial control (TIDES).
-
You retain full sovereignty over block templates, unlike standard pooled mining where the pool controls everything.
-
Run a BIP‑110‑patched Bitcoin Knots node
Only a Knots node with the BIP‑110 patch will actually signal support. Standard nodes or lottery-only setups won’t contribute to activation. Make sure your node binary is BIP‑110‑aware before pointing DATUM Gateway at a pool.
BIP‑110 Support
> Lottery Mining ≠ Signaling
> Datum pool + BIP‑110 Knots Node = Proper Signaling
This setup isn’t just about convenience or managing your own Stratum pool—it’s about **properly ****signaling ****support for **BIP‑110. Lottery mining alone does not contribute to signaling: only blocks mined on a BIP‑110 node count. Sending tiny hashpower via lottery mode to pools like OCEAN only helps if you actually hit a block.
By running a Datum solo or pooled-mining setup pointed at a BIP‑110‑aware pool, your node actively participates in signaling. Even small miners can make an impact by submitting full-template shares to the pool, helping ensure BIP‑110 activation occurs smoothly. After activation, you can switch back to lottery mode if desired.
In short: running a BIP‑110 node matters far more than lottery mining. This setup ensures your hashing power counts toward signaling while keeping full control over your templates and rewards.
🧩 1) System Overview
-
Bitcoin Knots Node: Handles blockchain sync, block templates, mempool policy.
-
DATUM Gateway: Bridges your node to the pool; exposes Stratum V1 to miners.
-
Miner (Bitaxe / Antminer): Connects to your local gateway (port 23334).
-
OCEAN Pool: Collects submitted shares and credits rewards to your BTC address.
🛠 2) Bitcoin Knots Configuration (bitcoin.conf)
> ⚠️ Make sure your Bitcoin Knots binary includes the BIP‑110 patch. Only nodes with this patch can generate valid templates that count toward signaling when connected to a BIP‑110-aware pool like OCEAN.
Key points from your ~/.bitcoin/bitcoin.conf:
# Enable RPC for gateway
server=1
rpcuser=user
rpcpassword=Your-Secret-RPC-password
rpcallowip=192.168.8.0/24
rpcallowip=127.0.0.1
rpcbind=0.0.0.0
# Block & mempool tuning
blockmaxsize=3985000
blockmaxweight=3985000
maxmempool=1000
blockreconstructionextratxn=1000000
blocknotify=killall -USR1 datum_gateway
This ensures full transaction indexing, block templates, and triggers DATUM Gateway updates when new blocks arrive.
🔌 3) DATUM Gateway Configuration (datum_gateway_config.json)
Final configuration you are using:
{
"bitcoind": {
"rpcuser": "user",
"rpcpassword": "Your-Secret-RPC-password",
"rpcurl": "http://localhost:8332",
"notify_fallback": true
},
"stratum": {
"listen_port": 23334
},
"mining": {
"pool_address": "bc1...YOUR_BTC_ADDRESS",
"coinbase_tag_primary": "DATUM Gateway",
"coinbase_tag_secondary": "DATUM User"
},
"api": {
"admin_password": "",
"listen_port": 7152,
"modify_conf": false
},
"logger": {
"log_to_console": true,
"log_to_file": false,
"log_file": "/home/user/.datum/datum.log",
"log_rotate_daily": true,
"log_level_console": 2,
"log_level_file": 1
},
"datum": {
"pool_host": "mine.ocean.xyz",
"pool_port": 28915,
"pool_pubkey": "f21f2f0ef0aa1970468f22bad9bb7f4535146f8e4a8f646bebc93da3d89b1406f40d032f09a417d94dc068055df654937922d2c89522e3e8f6f0e649de473003",
"pool_pass_workers": true,
"pool_pass_full_users": true,
"pooled_mining_only": true
}
}
Notes:
-
Replace
pool_addresswith your actual BTC payout address. -
Port
23334is what miners connect to; do not expose API port7152to miners. -
pooled_mining_only: trueensures all shares are submitted to the pool, not solo. -
If you leave
pooled_mining_only=truein the datum gateway config, all your shares are submitted to OCEAN for pooled solo mining; setting it tofalsewould allow your miner to mine independently if the pool is down.
🔧 4) Systemd Service for DATUM Gateway
You’ve configured /etc/systemd/system/datum_gateway.service as follows:
[Unit]
Description=DATUM Gateway for Bitcoin Knots
After=network.target bitcoind.service
Wants=bitcoind.service
[Service]
ExecStart=/home/user/git/datum_gateway/datum_gateway --config /home/user/.datum/datum_gateway_config.json
ExecStop=/bin/kill -SIGINT $MAINPID
User=user
Group=user
Restart=always
PrivateTmp=true
TimeoutStopSec=60s
TimeoutStartSec=10s
StartLimitInterval=120s
StartLimitBurst=5
[Install]
WantedBy=multi-user.target
Enable and start it:
systemctl daemon-reload
systemctl enable datum_gateway.service
systemctl start datum_gateway.service
journalctl -u datum_gateway.service -f
Look for log lines like:
Updating standard stratum job for block 933853: ... (Sent to 1 stratum client)
This confirms your miner is connected and receiving work.
🖥 5) Miner Configuration (Bitaxe / Antminer)
Point your miner to the gateway:
> The username/password can be arbitrary if your gateway doesn’t enforce them.
stratum+tcp://<DATUM_GATEWAY_IP>:23334
user: x
pass: x
The gateway logs should update:
(Sent to 1 stratum client)
This confirms your miner is working.
📊 6) Logs & Diagnostics
Check live updates:
journalctl -u datum_gateway.service -f
-
(Sent to 0 stratum clients)→ No miners connected -
(Sent to 1 stratum client)→ Miner active -
Updating standard stratum job ...→ Template updates sent
Verify Mining on OCEAN: Visit OCEAN Pool Stats and check for your BTC payout address (pool_address). It usually appears ~5 minutes after starting your gateway. If listed, your miner is actively submitting shares and contributing to BIP‑110 signaling (requires a BIP‑110‑patched Bitcoin Knots node).
🎯 Summary
Your system now:
-
Generates templates via your Bitcoin Knots node
-
Runs a DATUM Gateway for Stratum
-
Mines via the OCEAN DATUM pool
-
Retains template sovereignty and control over your mining setup
-
By running this setup, your hashing power contributes to BIP‑110 signaling (via OCEAN) while maintaining full control of templates — exactly what solo miners want with lower variance.
You now have low-variance, pooled mining while still controlling all templates locally — combining the benefits of solo and pool mining.