<blockquote>
  <p>My question is what logical reason would a pool give to a miner to do this?</p>
</blockquote>

<p>To queue jobs to the miner. The server could tell the miner "here's work for you to do when you finish what you're currently working on". Since jobs are stateless and individualized (i.e. each job is only being worked on by that one user/worker), a server could queue jobs for the miner before it finishes its current job in order to avoid down time. So long as a new block hasn't been found, this is faster than the worker asking for another job when it finishes its current one.</p>

<blockquote>
  <p>I'm assuming if new work comes in it means someone on the network has hashed the block and therefore there's no more potential for rewards. </p>
</blockquote>

<p>That's a bad assumption to make. For a given block, there can be lots of new work. New transactions could be generated, ExtraNonce1 can be incremented to provide new work, etc.</p>

<blockquote>
  <p>So why have a worker waste his time continuing with a job that someone else has already completed?</p>
</blockquote>

<p>IIRC jobs are individualized, so a miner is not doing work that a different miner is doing.</p>

CC BY-SA 3.0
2018-03-14T16:04:59.743Z
Regarding, "For a given block, there can be lots of new work", but if someone has already mined the block, why is the mining pool continuing to mine that block?  Shoudl the pool be moving on to blocks that haven't yet been mined?
Dave
CC BY-SA 3.0
2018-03-14T18:07:43.073Z
A new block has not necessarily been mined when new work is issued.
Ava Chow
CC BY-SA 3.0
2018-03-13T20:35:47.133Z
2018-03-13T20:35:47.133Z
Ava Chow
<p>As I learn about the Stratum protocol, which allows a mining pool to coordinate work with its workers, I was curious what the "clean jobs" param in the mining.notify method means.  Per the spec -- <a href="https://en.bitcoin.it/wiki/Stratum_mining_protocol" rel="nofollow noreferrer">https://en.bitcoin.it/wiki/Stratum_mining_protocol</a> , it can be either true or false.  What I don't understand is why would it be false.  The wiki says if its false, "If false, they can still use the current job but should move to the new one after exhausting the current nonce range".  My question is what logical reason would a pool give to a miner to do this?  I'm assuming if new work comes in it means someone on the network has hashed the block and therefore there's no more potential for rewards.  So why have a worker waste his time continuing with a job that someone else has already completed?</p>

<mining-pools><stratum>
What's the point of the "clean jobs" parameter in Stratum's "mining.notify" protocol?
Dave
# What's the point of the "clean jobs" parameter in Stratum's "mining.notify" protocol?

(Asked by: username_0 on 2018-03-13)

As I learn about the Stratum protocol, which allows a mining pool to coordinate work with its workers, I was curious what the "clean jobs" param in the mining.notify method means. Per the spec -- <https://en.bitcoin.it/wiki/Stratum_mining_protocol> , it can be either true or false. What I don't understand is why would it be false. The wiki says if its false, "If false, they can still use the current job but should move to the new one after exhausting the current nonce range". My question is what logical reason would a pool give to a miner to do this? I'm assuming if new work comes in it means someone on the network has hashed the block and therefore there's no more potential for rewards. So why have a worker waste his time continuing with a job that someone else has already completed?

**Tags:** mining-pools, stratum


---

## 1 answers

### Answer by username_1 on 2018-03-13. Score: 0 | Accepted answer

> My question is what logical reason would a pool give to a miner to do this?

To queue jobs to the miner. The server could tell the miner "here's work for you to do when you finish what you're currently working on". Since jobs are stateless and individualized (i.e. each job is only being worked on by that one user/worker), a server could queue jobs for the miner before it finishes its current job in order to avoid down time. So long as a new block hasn't been found, this is faster than the worker asking for another job when it finishes its current one.

> I'm assuming if new work comes in it means someone on the network has hashed the block and therefore there's no more potential for rewards.

That's a bad assumption to make. For a given block, there can be lots of new work. New transactions could be generated, ExtraNonce1 can be incremented to provide new work, etc.

> So why have a worker waste his time continuing with a job that someone else has already completed?

IIRC jobs are individualized, so a miner is not doing work that a different miner is doing.

> **Comments:**
> **username_0**: Regarding, "For a given block, there can be lots of new work", but if someone has already mined the block, why is the mining pool continuing to mine that block?  Shoudl the pool be moving on to blocks that haven't yet been mined?  
> **username_1**: A new block has not necessarily been mined when new work is issued.  

---

