Before you jump all over this a duplicate question. I did read things related to DAG like here: What actually is a DAG? But that doesn't answer my question, what does it mean when my mining pool website says that the next DAG is in X (4 in my case) days? How does that affect me as a miner?

  • Every miner need to download DAG file ?both of solo miner and pool miners ? has any effect to hash rate power of graphic card in pool mining ?if yes which model is better ?
    – Ali
    Aug 19 '17 at 10:37
  • Hi there. If you have another question, please ask it by clicking the Ask Question button. Aug 19 '17 at 11:50

I usually avoid copy pasting info from docs, as many here do, but here I think its appropriate:

Ethash uses a DAG (directed acyclic graph) for the proof of work algorithm, this is generated for each epoch, i.e every 30000 blocks (100 hours). The DAG takes a long time to generate. If clients only generate it on demand, you may see a long wait at each epoch transition before the first block of the new epoch is found. However, the DAG only depends on block number, so it CAN and SHOULD be calculated in advance to avoid long wait at each epoch transition. geth implements automatic DAG generation and maintains two DAGS at a time for smooth epoch transitions. Automatic DAG generation is turned on and off when mining is controlled from the console. It is also turned on by default if geth is launched with the --mine option. Note that clients share a DAG resource, so if you are running multiple instances of any client, make sure automatic dag generation is switched on in at most one client. Note that ethash uses ~/.ethash (Mac/Linux) or ~/AppData/Ethash (Windows) for the DAG so that it can shared between clients.

From https://github.com/ethereum/wiki/wiki/Mining

  • 1
    Can you provide a link to the page where this is from? :) Aug 5 '16 at 13:14
  • 1
    sorry my bad I updated the answer with the link
    – dragosb
    Aug 5 '16 at 13:28
  • So this still doesn't quite answer the question: how does it affect miners? Obviously most miners asking this question haven't chosen whether or not they have "Automatic DAG generation" switched on or off... Are you saying we should switch it on? Is it on by default?
    – MGOwen
    Jul 1 '17 at 23:29
  • I think the answers to your questions are in the cited text: Are you saying we should switch it on? "the DAG only depends on block number, so it CAN and SHOULD be calculated in advance to avoid long wait at each epoch transition" Is it on by default? "It is also turned on by default if geth is launched with the --mine option"
    – dragosb
    Jul 3 '17 at 8:44

A miners node needs the DAG to compute the PoW (according to Ethash algorithm) https://github.com/ethereum/wiki/wiki/Dagger-Hashimoto and a new DAG is needed to be computed every epoch (X blocks).

Then since the DAG needs time to be computed, in order to avoid wasting time, a miner can pre-computes the DAG (since it's just dependent on the block height), this is why someone should take care of the time remaining before a new epoch comes.


From your link: What actually is a DAG?

I think it is just a kind dataset, graph or complex shape to be solved for that someone maybe could render if they wanted to, that gets more complex or has more dimensions over the last epoch.

In a way it is what each block is working on. A finished DAG is the end of solve what was to be solved. Makes it harder to mess with the block chain and is part of the PoW

How I Think it effects mining:

  • With each new DAG you'd need a bit more GPU VRAM
  • During each transiting to the next DAG set to be calculated, there might a delay in mining. The predicted timing of the next DAG epoch minimizes that delay.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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