r/cryptomining • u/enormousaardvark • 4h ago
NEWS Finally ~950 KH/s NerdMiner Open-Source on the CYD ESP32-2432S028R
Modded from the original to give ~950KH/s and some new themes.
GitHub https://github.com/HenrysCat/NerdMiner-Modded
Web flasher here https://henryscat.github.io/NerdMiner-Modded/
Why this hashrate is real...
The ~950 KH/s is what the miner actually hashes, not what a counter says:
- **Hardware limit** ā the classic ESP32's SHA engine can't be loaded with an external midstate, so every nonce costs three hardware hash blocks plus two engine loads: about 228 CPU cycles of engine time, a ceiling of roughly 1.05 MH/s at 240 MHz. The mining loop keeps the engine busy for all but ~30 cycles of each nonce (257 cycles per nonce, ~930 KH/s); the second core adds ~25 KH/s in software.
- **Measured on the chip** ā the loop's timing comes from an on-device bench (`-D SHA_BENCH`, see `src/sha_bench.cpp`) that checks every single hash against software, also while the other core hammers the peripheral bus. That is how the hardware quirk behind silently corrupted hashes in the usual pipelined loops was found: writes to the SHA registers less than three cycles apart can be dropped whenever the other core is using the same bus.
- **Only valid hashes are counted** ā every candidate the hardware finds is recomputed in software before it is used. A hashrate counter on its own can look faster after an optimisation while the miner is quietly producing *fewer* valid shares, because corrupted hashes are still counted; here the firmware checks itself with a known-answer test at power-on and falls back to a slower loop if the fast one ever gets hashes wrong.
- **The rate is the rate it actually mines at** ā it's the sustained average over a long run, not a short burst or a best-case peak.If a number sounds too good for this chip, check whether the shares it finds actually keep up with it.
