Stratum V2
A miner used Stratum V2 job declaration to build its own block template on mainnet for the first time, so it is a good moment to cover what Stratum V2 actually changes.
Takeaway
On 25 June, GoMining mined the first known live Bitcoin block whose transactions were chosen by the miner rather than the pool, using Stratum V2 job declaration on the DMND pool.
What GoMining Did
The milestone is about where the block template was built, not who hashed it.
THE FLOW
- GoMining assembled a block template locally and chose its own transactions.
- It sent that to the DMND pool as a declared job over Stratum V2.
- DMND hashed and broadcast the block; GoMining picked the contents.
WHY IT'S A FIRST
Pools have chosen block contents for years. This is the first known live mainnet block where the miner selected the transactions via SV2 job declaration (25 June).
What Job Declaration Changes
Who decides which transactions go in a block, and why that is the centralisation question.
TODAY
Under the older Stratum V1 the pool builds the block template and hands miners work. Miners supply hashpower but do not choose transactions, so a handful of pools effectively decide block content.
WITH SV2 JOB DECLARATION
A miner can build its own template and declare it to the pool, which still handles payouts and block submission. Transaction selection moves to the miner.
WHY IT MATTERS
Concentration of transaction selection in a few pools is the part of mining centralisation most people worry about. Job declaration targets that directly, without changing who runs payout infrastructure.
NOT AUTOMATIC
Job declaration is opt-in and needs miner-side template building. Most hashrate still takes pool-built templates, so the default has not changed.
Who Actually Runs It
Joining the working group is not the same as running SV2 in production.
THE WORKING GROUP
About seven pools, roughly 75% of hashrate, joined the SV2 working group in May. That is intent and coordination, not live deployment.
NATIVE IN PRODUCTION
Only Braiins and DMND run SV2 natively today. The GoMining block ran on DMND.
THE DATUM PATH
OCEAN reaches similar miner template control through its own DATUM protocol rather than SV2, so miner-chosen templates are not unique to Stratum V2.
THE GAP
Job declaration is still a small share of total hashrate. One miner-built block shows the path works; it is not yet a shift in who controls block content.
Pool counts and hashrate shares move; re-verify before the meetup.
The Stack Behind It
The tooling that made a miner-declared mainnet block possible.
STRATUM REFERENCE IMPLEMENTATION
The SRI shipped v1.10.0 core protocol libraries and v0.5.0 applications on 3 June, the open-source stack pools and miners build SV2 roles on.
CORE MINING IPC
Bitcoin Core's Mining IPC added a
submitBlock method (#34644, Optech #408) so an external process can hand Core a fully assembled block for validation, part of moving block building out of the node.Stratum V2 vs DATUM
There is a genuine architecture disagreement underneath the pool politics.
THE SV2 CASE
Stratum V2 bundles job declaration with an encrypted, authenticated transport and a broader split of mining roles, aiming to be the general next-generation mining protocol.
LUKE DASHJR'S CRITIQUE
Dashjr (OCEAN) argues SV2 is overcomplicated and weak at genuine miner template control, and points to DATUM as a simpler way to let miners build their own templates.
KEEP IT SEPARATE
Both approaches aim at the same goal, miner-chosen transactions. It is worth keeping the technical question apart from the competition between pools promoting each protocol.
Discussion
Does this actually decentralise who picks transactions?
QUESTION
If only two pools run SV2 natively, how much does one miner-built block change the centralisation picture?
QUESTION
Does moving transaction selection to miners help decentralisation if most miners keep taking the pool's default template anyway?
OPEN ISSUE
Job declaration is opt-in and still a small share of hashrate; do not read one block as a tipping point.