Closed Painadath closed 3 years ago
Hello, the xxhash rejections definitely have to do with the Raspberry Pi being too fast. I can see in the line
12:40:41 [rprt] Hashrate: 3.63 MH/s, Accepted 0, Rejected 3
that the per-thread speed was about 1.815 MH/s, and that's faster than 0.9 MH/s. The server will reject those shares because of that. I suspect the workaround would be to delay sending the result so that the observed speed falls under 0.9 MH/s. I think I'll make such a hashrate limiter a configurable option.
Also, the server doesn't offer selectable difficulty for xxhash. I should probably add in a warning for that.
That said, the first two runs are odd. Thanks for posting the log, it will definitely help diagnosing things.
Hello, and I'm sorry that I took so long to get back to this. I've gotten around to figuring out what happened with my own Raspberry Pi 3, and the issue seems to be surprisingly simple. It occurs when a relatively slow PC running nonceMiner interacts with duino-coin's KOLKA, and it boils down to the server sending completely unreasonable jobs.
The second run (NET tier) leads into the first run, so let's start with that. The NET difficulty has a cap of 1 MH/s, over which you get force-promoted to the EXTREME tier. When this happens, the shares are rejected, and after this we reach the same point at which the first run starts.
Here's the timeline of the first run from the perspective of cpu1:
1) 12:36:51 [cpu1] New job from 149.91.88.18 with difficulty 1778843
- The difficulty here is way too high. At 1 MH/s (about the Pi 3's speed on a single thread), the maximum possible time to complete this job of this difficulty is 178 seconds.
2) 12:37:21
- The master server is appears to be programmed to kill the connection at the 30 second mark, guessing the client went dead.
3) 12:39:17 [cpu1] Error receiving feedback: server closed gracefully
- After 146 seconds, the Raspberry Pi is done, but on sending the result it learns the server has killed the connection.
4) 12:39:19 [cpu1] Restarted due to an unexpected error
Now, in my own testing, I saw a share accepted after 44 seconds, so it might not be at the 30 second mark at which the connection is killed anymore. That says nothing about a share accepted after 146 seconds, though.
Taking this into account, the starting difficulty of EXTREME is 950000, and the maximum possible time for that is 95 seconds. This means that the EXTREME difficulty is impossible for a Pi to run, but it's just fast enough to get force-promoted into it. Right now, a Raspberry Pi 3 is effectively unable to run nonceMiner because of this.
On the client side, this can also be solved with a hashrate limiter, set under 1 MH/s. It will never enter the EXTREME difficulty that way, and it's otherwise a great way to navigate around the server's strict reward policy. On the other hand, this issue shows that their reward policy has a hole in it, and that should be patched.
Edit: Sorry, I used KOLKA and reward policy interchangeably.
@colonelwatch any idea to limit the speed in pi with nonceminer?
I'm thinking of something like this: 1) Solve the job 2) Calculate how long the job should have taken using the correct nonce and the desired hashrate 3) Sleep for the extra time necessary plus a second or so for safety
when i try to mine with my pi this hapens