Miner Feature Request


#1

BURST miner, v1.170820_AVX

I’ve been getting these error messages:

[ERROR 1007] The deadline for your nonce is REALLY BAD: 304382 years, 9 months, 9 days, 11 hours, 35 mins, 20 secs - wrong block? are your plot files corrupted?

So I’m thinking I will just re-plot the offending file, but that is hard when you don’t know which file is causing the error. I dug through the logs and couldn’t find this error in them, even with debug enabled. It would be nice to log the error with filename or at least at a minimum add a time stamp to the screen output so that it can be correlated with the opening and closing of plot files that are being logged.

I think I figured out which file by manually comparing the events together time after time until there was a specific file that the error was always happening around.

Thanks,
Paul


#2

next time you get one, can you post a screenshot of your miner in action?
like basically a picture


#3

Sure, they happen with every new block:

If I had a filename I could easily fix it.

Thanks,
Paul


#4

Can you show more of you miner, and have you tried switching pool’s?


#5

I have not tried switching pools. But I would switch for a bit if you gave me a recommended pool to switch to.

Thanks


#6

hmm, i was thinking maybe the pool was giiving really late confirmations or something, but that doesn’t appear to be the case. if it is a corrupted plot, it sounds like you may have narrowed it down already, Sorry Paul i think you will have to re-plot the suspected files…


#7

Any chance of having the code write the offending plot file to the output log?
Hard to believe that it would put a message on the console without also logging some details behind it in the system log.

I’d like to thing that adding this to the logs would be beneficial for all.

Thanks,
Paul


#8

“UseLog” : true,

and then analyze your log (“found deadline=” and “confirmed deadline:”)


#9

Yes Blago, that is what I was doing.

19:56:07 Close file: 5815356513053042910_60000000_4194304_4194304 [@ 7264 ms]

Using the time stamps on the confirmed and sent messages, I was able to narrow down which files were being used. It wasn’t obvious, but after enough times I was able to figure out which one.

I’ll try removing that plot file and see if the error goes away.


#10

If the deadline is bad for a single nonce, does that mean that the rest of the plot is broken as well? Can I just mine and expect that some of the nonces are going to have bad deadlines, but that the majority are working fine?

Thanks,
Paul


#11

@Blago
So I found that when running with multiple threads it was really difficult to nail down the bad plot file. So…
I got the source code, fired up Visual Studio and got the code working and then made a few mods:

if (answ.HasMember("errorDescription")) {
    wattron(win_main, COLOR_PAIR(15));
    wprintw(win_main, "[ERROR %u] %s %s %u\n", answ["errorCode"].GetInt(), answ["errorDescription"].GetString(), iter->body.file_name.c_str(), iter->body.nonce, 0);
    wattroff(win_main, COLOR_PAIR(15));
    wattron(win_main, COLOR_PAIR(12));
    if (answ["errorCode"].GetInt() == 1004) wprintw(win_main, "You need change reward assignment and wait 4 blocks (~16 minutes)\n"); //error 1004
    wattroff(win_main, COLOR_PAIR(12));
    Log("\nError: [ERROR "); Log_u(answ["errorCode"].GetInt());	Log(" ] ");
    Log(answ["errorDescription"].GetString()); Log(" File="); Log(iter->body.file_name.c_str()); Log(" Nonce="); Log_u(iter->body.nonce);
}

This added logging of the file that was being told by the pool server that the deadline was bad. I found that I had 6 bad plot files. Once I removed them the errors went away and I am currently re-plotting them now.

Not only does the log have the info, I also added it to the screen and now you see something like this:
23:32:51 Pool Error: [ERROR 1007 ] The deadline for your nonce is REALLY BAD: 3474764 years, 11 months, 24 days, 8 hours, 39 mins, 32 secs - wrong block? are your plot files corrupted? File=5815356513053042910_206881282_3440640_3440640 Nonce=207446601

While in the code I also added some tweaks to make the log time stamp more compliant with log aggregators.
fprintf_s(fp_Log, “\n%d-%02d-%02d %02d:%02d:%02d %s”, cur_time.wYear, cur_time.wMonth, cur_time.wDay, cur_time.wHour, cur_time.wMinute, cur_time.wSecond, strLog + 1);

Feel free to use what you want, it solved my problem completely.

Thanks for a great miner!
Paul