I have seen the phrase "Epoch Switch" when looking at an open source mining pool program. Just wondering what the term refers to.

It would also be nice to know how a mining pool can calculate when it will take place?

1 Answer 1


With Bitcoin, Ethereum, and many other cryptocurrencies, the blockchains are secured by the process known as mining. Usually, one's ability to mine is restricted mostly by one's access to computation power -- faster processor = more revenue. With Ethereum, an additional resource is pretty much necessary to mine: memory. When mining using a GPU, this means memory on your graphics card. Ethereum deliberately makes mining more memory intensive as time goes on; this happens on a fixed schedule. Every 30 000 blocks, a new piece of data (a DAG) is used for mining new blocks. Each new group of 30 000 blocks is known as an epoch. And epoch switch is when the next DAG is loaded.

  • @lunjg Can you tell me how a mining pool package can predict when the next Epoch will start? What parameter/calulations/etc. is it looking for?
    – stone.212
    Nov 21, 2017 at 5:27
  • 1
    Every block that is evenly divisible by 30 000 is a new epoch -- so block 30000, 60000, 90000, etc (or maybe it's 30001, 60001, etc...) The details for the algorithm (Dagger-Hashimoto) and parameters for generating the DAG can be found here: github.com/ethereum/wiki/blob/master/Dagger-Hashimoto.md . Golang source is here: github.com/ethereum/go-ethereum/blob/…
    – lungj
    Nov 21, 2017 at 5:33

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.