Bitcoin BIP110 Miners' Guide

Mining Bitcoin BIP110

A step-by-step guide to mining the Bitcoin BIP110 chain with BLAKE2b hardware with Bitcoin Knots and the CONVOY DATUM Gateway.

Overview

Bitcoin BIP110 Miner's Guide

Bitcoin BIP110 uses BLAKE2b proof of work. Block 961,639 was the final SHA256d block on this branch, and block 961,640 was the first BLAKE2b block. SHA256d mining hardware cannot produce valid blocks for the current Bitcoin BIP110 chain.

Mining uses three main components: a BLAKE2b-capable Bitcoin Knots node, the CONVOY DATUM Gateway, and compatible BLAKE2b mining hardware. Bitcoin Knots builds the block template, DATUM turns that template into mining work, and the ASIC searches for a valid proof of work.

Chapter 1

How Bitcoin BIP110 Mining Works

The miner controls the block template

Bitcoin Knots runs the full node and constructs the block template from the transactions available to it. The node's transaction policy therefore determines which transactions are offered to the miner for inclusion in a block.

DATUM sits between the node and the mining hardware. It requests a template from Bitcoin Knots with getblocktemplate, converts that template into work the ASIC can understand, receives shares from the ASIC, and submits a discovered block back through the node.

Connection Protocol What it does
DATUM ↔ Bitcoin Knots RPC / getblocktemplate Requests locally constructed block templates and submits discovered blocks.
DATUM ↔ mining hardware Stratum v1 Delivers BLAKE2b header-v2 mining jobs and receives shares.
DATUM ↔ supporting pool DATUM protocol Optionally coordinates pooled rewards while the miner still constructs the block template locally.

Solo mining vs pooled DATUM mining

DATUM can be used for solo mining or with a DATUM-supporting pool. In solo mode, your local node constructs the template and a block found by your hardware is submitted directly through your node. In pooled mode, the pool coordinates how rewards are divided according to contributed work, while your node still constructs the template.

The pool does not send a ready-made block template to the miner. The work sent to the ASIC originates from the miner's own Bitcoin Knots node.

BLAKE2b mining hardware

Bitcoin BIP110 accepts BLAKE2b proof of work from block 961,640. BLAKE2b and BLAKE2b-sia hardware can be used with the current mining path. Examples of Sia-style BLAKE2b miners include the Antminer A3, Goldshell SC5 Pro, and Goldshell SC Lite.

SHA256d miners cannot mine the current chain. They were compatible only through block 961,639.

BLAKE2b block templates

Bitcoin Knots exposes mining work through ordinary BIP22 getblocktemplate. A Bitcoin BIP110 template advertises !blake2b in its rules. DATUM only serves BLAKE2b work when this rule is present.

While the reduced-data limits are active, a block is limited to approximately 300 kB serialized or 800,000 weight units. Bitcoin Knots reports the applicable limit through getblocktemplate as weightlimit.

Software status: The current DATUM software is in public beta. Test your configuration and verify accepted shares and block submission behavior before relying on it for production mining.

Chapter 2

Before You Begin

Have the node, gateway, payout address, and mining hardware ready before starting the configuration process. The Bitcoin Knots node and DATUM Gateway can run on the same machine.

Component Current requirement
Node software Bitcoin Knots >=29.4.1 with the Bitcoin BIP110 BLAKE2b consensus changes.
Gateway CONVOY DATUM Gateway including commit 56c31f4 or later.
Mining hardware BLAKE2b or BLAKE2b-sia hardware. SHA256d miners are incompatible with the current chain.
Network Bitcoin BIP110 mainnet. Do not configure the mining node as testnet4.
Template interface getblocktemplate must advertise !blake2b in its rules.

Ports used by the mining setup

Service Port Use
Bitcoin BIP110 P2P 8333 Peer-to-peer mainnet traffic. Forward inbound TCP 8333 if you want inbound peers.
Bitcoin BIP110 RPC 8332 Local RPC connection used by DATUM. Keep it bound to localhost.
DATUM Stratum 23334 Mining endpoint used by the ASIC.
DATUM API / UI 7152 Gateway API and browser interface. It can also receive optional new-block notifications.
Chapter 3

Step 1: Configure Bitcoin Knots

1. Install Bitcoin Knots

Install the current Bitcoin BIP110-compatible Bitcoin Knots build for your operating system and architecture. The current release files are listed on the Directory page.

Verify the downloaded package using the published SHA256SUMS and SHA256SUMS.asc files before installing it. If you already have a Bitcoin BIP110 mainnet node, keep the existing data directory.

2. Enable RPC for DATUM

Open your bitcoin.conf and enable the local RPC server. Replace USER and PASS with credentials you will also place in the DATUM configuration.

server=1
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
rpcuser=USER
rpcpassword=PASS

# Optional: notify DATUM when a new block arrives
blocknotify=curl -fsS -o /dev/null http://127.0.0.1:7152/NOTIFY

txindex=1 is not required for DATUM or getblocktemplate. Keep RPC on 127.0.0.1:8332 unless you have a specific secured network design that requires otherwise.

RPC security: Do not expose an unrestricted RPC service or its credentials to the public internet.

3. Confirm mainnet networking

Bitcoin BIP110 mainnet uses P2P port 8333. Do not set chain=testnet4 and do not use testnet4 port 48333 for this setup.

If you want other nodes to make inbound connections to your node, forward inbound TCP port 8333 from your router to the Bitcoin Knots machine. The node can still make outbound peer connections if the port is not forwarded.

You can also add a known mainnet peer manually if needed:

addnode=OTHER_HOST:8333

4. Start the node and allow it to synchronize

Start Bitcoin Knots and allow the node to synchronize with the Bitcoin BIP110 chain. Do not continue to DATUM setup until the node is synchronized and reports the BLAKE2b deployment as active.

5. Verify BLAKE2b activation

Run the following commands:

bitcoin-cli getblockchaininfo
bitcoin-cli getdeploymentinfo

Confirm that blake2b.height is 961640 and blake2b.active is true. The reduced_data deployment should report the same activation height and an active state.

Chapter 4

Step 2: Install and Configure DATUM

1. Get the CONVOY DATUM Gateway

Use the CONVOY DATUM Gateway for Bitcoin BIP110 BLAKE2b and header-v2 mining.

git clone https://github.com/CONVOYMining/datum_gateway.git
cd datum_gateway

Build the gateway for your system using the repository build instructions. Use a revision that contains commit 56c31f4 or later. Older revisions calculate the BLAKE2b H1 commitment differently from Bitcoin Knots 29.4.1 and can produce high-hash rejects.

2. Create the DATUM configuration file

Create datum_gateway_config.json. Replace the RPC credentials, payout address, administrator password, and optional coinbase tag with your own values.

{
  "bitcoind": {
    "rpcuser": "USER",
    "rpcpassword": "PASS",
    "rpcurl": "http://127.0.0.1:8332"
  },
  "stratum": {
    "listen_addr": "0.0.0.0",
    "listen_port": 23334
  },
  "api": {
    "listen_addr": "0.0.0.0",
    "listen_port": 7152,
    "admin_password": "CHANGE_ME",
    "modify_conf": true
  },
  "mining": {
    "pool_address": "bc1q...your_mainnet_address...",
    "coinbase_tag_primary": "MyTag",
    "allow_hasher_time_rolling": false
  },
  "datum": {
    "pool_host": "",
    "pooled_mining_only": false
  }
}

3. Check the solo-mining settings

For solo mining, confirm all of the following before starting the gateway:

  1. pool_host is empty.
  2. pooled_mining_only is false.
  3. allow_hasher_time_rolling is false.
  4. pool_address contains the Bitcoin BIP110 mainnet address that should receive the block reward.
  5. The RPC username and password exactly match the values in bitcoin.conf.

CONVOY's built-in defaults are oriented toward pooled mining. An empty pool_host combined with pooled_mining_only still set to true is not a valid solo configuration and the process will exit.

4. Start DATUM

datum_gateway -c /path/to/datum_gateway_config.json

With the example configuration, the DATUM browser interface is available at http://HOST:7152. Digest authentication uses the admin_password value from the configuration file.

The Stratum endpoint for mining hardware is:

stratum+tcp://HOST:23334

5. Confirm DATUM can obtain BLAKE2b work

DATUM does not need a separate pow_algorithm setting. It serves BLAKE2b header-v2 work when the block template from Bitcoin Knots advertises the BLAKE2b rule.

Chapter 5

Step 3: Connect the Mining Hardware

1. Confirm that the ASIC is compatible

Use BLAKE2b or BLAKE2b-sia hardware. SHA256d miners cannot produce valid Bitcoin BIP110 blocks after block 961,639.

Sia-style BLAKE2b miners such as the Antminer A3, Goldshell SC5 Pro, and Goldshell SC Lite are examples of hardware used with the current BLAKE2b mining path.

2. Point the ASIC at DATUM

Open the miner's pool or Stratum configuration and set its server URL to the DATUM Stratum endpoint:

stratum+tcp://GATEWAY_HOST:23334

Use any worker name accepted by DATUM. A payout address can also be used as the worker name.

3. Confirm that Bitcoin Knots advertises BLAKE2b

From the Bitcoin Knots machine, request a BLAKE2b-aware block template:

bitcoin-cli getblocktemplate '{"rules":["segwit","blake2b"]}'

Look for !blake2b in the returned rules. If it is missing, DATUM will not serve BLAKE2b work to the miner.

4. Confirm the miner remains connected

Watch the DATUM interface or logs. The miner should remain connected, receive work, submit shares, and receive fresh jobs when the Bitcoin BIP110 chain tip changes.

Chapter 6

Step 4: Verify the Mining Setup

1. Verify the node

Confirm that getdeploymentinfo reports BLAKE2b active at height 961,640 and that reduced_data is active at the same height.

2. Verify the block template

Confirm that a BLAKE2b-aware getblocktemplate request includes !blake2b in the template rules.

3. Verify the ASIC connection and shares

The ASIC should remain connected to DATUM, receive BLAKE2b header-v2 jobs, and submit accepted shares. Hashrate should appear in the DATUM statistics or browser interface.

4. Verify a discovered block

When a real block is found, DATUM should report:

BLOCK FOUND - <hash>

Compare that hash with the new Bitcoin Knots chain tip. The hashes should match. Bitcoin Knots accepts the block through submitblock.

A second log entry reporting duplicate can be normal after a successful block find. DATUM submits the block through two paths, so one submission can reach the node after the first has already been accepted.

Working setup: The node reports BLAKE2b active, GBT advertises !blake2b, the ASIC stays connected and submits accepted shares, and a BLOCK FOUND hash matches the new chain tip.

Troubleshooting

Troubleshooting Common Issues

Problem What to check
DATUM prints repeated high-hash rejects Confirm the gateway contains commit 56c31f4 or later.
DATUM exits when configured for solo mining Confirm pool_host is empty and pooled_mining_only is false.
No mining work is served Confirm Bitcoin Knots is synchronized and a supporting GBT request advertises !blake2b.
Miner cannot connect to DATUM Confirm the ASIC is pointed to the correct gateway host and Stratum port 23334.
Wrong network or peer port Use mainnet and P2P port 8333. Do not configure testnet4 or use port 48333.
No inbound node connections Forward inbound TCP 8333 to the Bitcoin Knots host if inbound peers are desired.
BLOCK FOUND followed by duplicate Compare the reported block hash with the new chain tip. A duplicate from the second submission path can be benign after the block was accepted.

Quick health check

  1. Confirm the miner stays connected and receives fresh jobs when the chain tip changes.
  2. Confirm shares are accepted without repeated unknown-work or high-hash errors.
  3. Confirm a supporting GBT request shows !blake2b.
  4. Confirm the BLOCK FOUND hash matches the new Bitcoin BIP110 chain tip.

Final deployment check: Run the Bitcoin Knots node on mainnet, use CONVOY DATUM at 56c31f4 or later, connect BLAKE2b or BLAKE2b-sia hardware to Stratum port 23334, keep hasher time rolling disabled, and verify any discovered block against the node's new chain tip.