Repository navigation
fix(records): support fractional difficulty shares below 1 (NerdMiner / ESP32) - #44
Merged
Merged
Conversation
Modanez
added a commit
that referenced
this pull request
Nov 12, 2026
Painel não subia depois do #44 (sameShare antes de definido)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Descrição do problema
Ao minerar com dispositivos de hashrate menor (como NerdMiner V2, ESP32 ou mineradores de CPU), as dificuldades dos shares frequentemente ficam abaixo de 1.0 (por exemplo 0.001, 0.297, 0.5339).
Atualmente,
rememberWorkers()possuía a condição:if (best > prevBest && best >= 1 && !sameShare(best, prevBest)) addRecord(w.name, best);Por causa da trava
>= 1, shares com dificuldade fracionária eram descartados e nunca gravados emrecords.json, mantendo o card "Recorde" (Best Difficulty) zerado e o Hall da Fama vazio. Além disso,sameShareutilizava uma tolerância fixa de 0.011, o que considerava shares pequenos distintos (ex: 0.001 vs 0.005) como se fossem o mesmo share.Alterações propostas
rememberWorkers: Reduz o limiar de gravação debest >= 1parabest > 0.sameShareadaptativo: A tolerância de duplicidade agora escala proporcionalmente ao valor do share, evitando agrupar shares sub-1 distintos, mantendo o mesmo comportamento para shares grandes (>= 1).workers.jsoncombestDifficulty > 0que ainda não estavam na lista de recordes, eles são incorporados e salvos emrecords.json.snapshot(): O valorfarm.bestpassa a considerar tambémproxy.bestHash.diff, caso disponível.tests/painel.unit.test.jscobrindo shares fracionários e deduplicação. Todos os testes passam.