Step-by-Step: Mining Bitcoin with DATUM Gateway + OCEAN Mining Pool Using Your Bitcoin Knots Node

This guide shows how to run a DATUM Gateway alongside your Bitcoin Knots node to mine Bitcoin via the OCEAN pool. By connecting your miners to the gateway, you retain full control over block templates while enjoying pooled mining benefits, including lower variance and direct payouts to your Bitcoin address. The guide provides complete, ready-to-run configurations for Bitcoin Knots, DATUM Gateway, and systemd.
Step-by-Step: Mining Bitcoin with DATUM Gateway + OCEAN Mining Pool Using Your Bitcoin Knots Node

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_address with your actual BTC payout address.

  • Port 23334 is what miners connect to; do not expose API port 7152 to miners.

  • pooled_mining_only: true ensures all shares are submitted to the pool, not solo.

  • If you leave pooled_mining_only=true in the datum gateway config, all your shares are submitted to OCEAN for pooled solo mining; setting it to false would 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:

  1. Generates templates via your Bitcoin Knots node

  2. Runs a DATUM Gateway for Stratum

  3. Mines via the OCEAN DATUM pool

  4. Retains template sovereignty and control over your mining setup

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


No comments yet.