Pool/job nonce to prevent duplicate share submission

how to best operate a multiworker pool?

seems the full nonce is controlled by the miner (64 bit) and MWgrinpool delivers the same pre_pow to multiple client connections. I have not checked between pools, but in case two pools deliver the same pre_pow, it will be abused.

a multiworker pool would need to communicate nonces between workers to prevent duplicate solution submission.

at monero there is the reserve_size to place the pool nonce

Every pre_pow is unique and collisions will not happen on regular basis. Even if two pools issue same pre_pow by some miracle, for 20 seconds, you could make few extra cents, every 100 years or so.

Instead of wasting header space, each pool can simply check that every valid nonce submitted for this node is unique. We are talking about megabytes of data in memory.

Nonce collisions on cuckatoo/cuckaroo are highly unlikely as well https://github.com/mimblewimble/grin-miner/pull/178#issuecomment-460448252

Igno’s response is conservative as I don’t think 1M workers would all connect to the same node on the back-end.

I requested a few jobs and they are same. what part of the pre_pow is supposed to change?

you only need to split nonce between pool and miner. no miner needs a 64 bit nonce. no header space required.

nicehash now sets the standart because there is no standart as of now, thats bad for asic developers.

I requested a few jobs and they are same. what part of the pre_pow is supposed to change?

Each node will have its own coinbase, different tracactions and different timestamp. Some parts of the header stay the same, but not all. This is also the reason why miners can’t just claim the block reward. Pools would be screwed if it was trivially possible to recreate same pre_pow.

you only need to split nonce between pool and miner. no miner needs a 64 bit nonce. no header space required.

Correct… if a service wants to use this system, why not. However, at this moment, it does not provide any practical benefit for miners as u64 space is too large for collisions to happen. Of course the processing is easier on pool side, that is probably why nicehash wants it.

you can reduce pool traffic by splitting the nonce space, makes sense if you have a farm. and to request a job at higher difficutly the job must be unique.