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.
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.
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. |
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.
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:
pool_hostis empty.pooled_mining_onlyisfalse.allow_hasher_time_rollingisfalse.pool_addresscontains the Bitcoin BIP110 mainnet address that should receive the block reward.- 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.
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.
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 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
- Confirm the miner stays connected and receives fresh jobs when the chain tip changes.
- Confirm shares are accepted without repeated
unknown-workorhigh-hasherrors. - Confirm a supporting GBT request shows
!blake2b. - Confirm the
BLOCK FOUNDhash 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.