Definition
A mining job is the packet of work a pool sends to a connected miner over the Stratum protocol. Delivered via the mining.notify message, it tells the machine exactly what to hash. Each job carries a job ID, the previous block hash, the two halves of the coinbase transaction (coinb1 and coinb2) that the miner splices its extranonce between, the merkle branch needed to rebuild the merkle root, the block version, the encoded difficulty bits, and the timestamp.
How a miner uses a job
On receiving a job, the machine inserts its assigned extranonce into the coinbase, recomputes the merkle root from the supplied branch, builds the 80-byte header, and begins rolling the nonce. Results that clear the pool's share threshold are submitted back via mining.submit; a result that also clears the network target is a block solution.
Clean jobs and job turnover
Jobs are not static. A mining.notify can carry a "clean jobs" flag instructing miners to discard previous work immediately — sent when a new block arrives on the network, so the pool does not waste hashrate building on a stale tip. Between blocks, pools issue fresh jobs to update the timestamp and incorporate newly arrived fee-paying transactions.
In Stratum V2, job delivery is restructured so miners can declare their own transaction sets through the Job Declaration Protocol, rather than passively accepting whatever the pool's job contains. The work a job represents ultimately derives from a node's block template.
In Simple Terms
A mining job is the packet of work a pool sends to a connected miner over the Stratum protocol. Delivered via the mining.notify message, it…
