I left my PC mining overnight (geth not running) and then cancelled the mining and started up geth. I get:

Mining too far in the future              wait=1h8m29s

Presumably I have to wait for that long before geth will function again, but what does it actually mean? Should I be running geth at the same time as mining to prevent it?


One idea would be to check your machine's clock is correct. (Using something like https://time.is/.)

You're hitting a check that's in place (I believe) to prevent miners from manipulating the timestamp in the blocks they've created and are are attempting to mine.

For those interested, the code is in worker.go. We're effectively comparing the miner's current local time, time.Now(), against the timestamp in the last successfully mined block (here parent).

tstart := time.Now()
parent := self.chain.CurrentBlock()

tstamp := tstart.Unix()
if parent.Time().Cmp(new(big.Int).SetInt64(tstamp)) >= 0 {
    tstamp = parent.Time().Int64() + 1
// this will ensure we're not going off too far in the future
if now := time.Now().Unix(); tstamp > now+1 {
    wait := time.Duration(tstamp-now) * time.Second
    log.Info("Mining too far in the future", "wait", common.PrettyDuration(wait))
  • 1
    My server time is correct and still getting this error :(
    – born2net
    Apr 25 '18 at 22:43
  • 1
    Is your chain data up-to-date? I'm not sure, but if you're trying to mine on top of an old block (because you don't have all the latest blocks), then it'll look like the block you're trying to mine is far into the future, even if your time is correct. Apr 28 '18 at 7:14

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.