When you are mining in a Monero pool (e.g.,https://minexmr.com/) you keep on receiving jobs from it. These contain the blob which, after some processing, is mined by the miners.

Different jobs received from the pool can refer to the same previous block. In fact, the prev_id of the block header (first part of the blob) across different jobs received from the pool could be the same. I couldn't find as specific answer to the following questions:

  1. When does the pool decide to send out a new job also with the same prev_id (which should mean that no new block has been mined yet)?
  2. Does each miner already connected receive the same job message?
  3. If a miner is working on an job that has the same prev_id of the one received does him stop and starts to work on the new one immediately? I know this is true if a new block has been mined but in this case the prev_id changes.

Thank you

1 Answer 1

  1. Pools send a new job when they see a new blockchain height, in response to a getjob request, in response to a login request or sending a job to a miner with a new difficulty. prev_id will stay the same so long as the blockchain height is the same.

  2. Almost exactly the same job. Each miners job is identical except for the jobs extra field in the blob which makes each job unique for each miner. The pool updates this field for each miner before sending.

  3. This is up to the miner implementation. A miner should ideally stop mining a previous job when they are notified of a new job, but there's no harm in finishing the existing one before starting the new one as most pools will still accept shares from recent jobs.

  • Does new blockchain height means that a new block has been mined? if so why isn't then the prev_id changing? Thank you I'll mark yours as best answer if no one else answers soon.
    – mik1904
    Oct 25, 2018 at 19:04
  • Every time the blockchain height increases, it is because a new block has been mined (disregarding reorgs here). That newly mined block points to (via prev_id) the block below it (prev_id is the block id at height-1). When the height is increased, a new block template must be sent to miners. The block template will have it's prev_id set to the highest block on the blockchain.
    – jtgrassie
    Oct 25, 2018 at 19:33
  • Then how do you explain my 1st question? I'm telling you that pools send out different jobs but with the same prev_id in the blob. You answered saying that the Blockchain height has increased but this is not true if the prev_id is the same. I don't quite understand.
    – mik1904
    Oct 27, 2018 at 9:56
  • Well of course a pool continues to send jobs with same prev_id until height changes. Miners don't all ask for block templates at the same time and every time an individual miner submits, they need a new job, which will have same prev_id if the height has not changed.
    – jtgrassie
    Oct 27, 2018 at 13:36
  • Further, there are 2 points jobs get sent to miners. 1, when the height increases, 2, when a miner submits work.
    – jtgrassie
    Oct 27, 2018 at 13:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.