Skip to content

fix(records): support fractional difficulty shares below 1 (NerdMiner / ESP32) - #44

Merged
Modanez merged 1 commit into
Modanez:mainfrom
pexinn:fix/records-fractional-difficulty
Nov 12, 2026
Merged

Modanez merged 1 commit into
Modanez:mainfrom
pexinn:fix/records-fractional-difficulty

Conversation

@pexinn

@pexinn pexinn commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

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 em records.json, mantendo o card "Recorde" (Best Difficulty) zerado e o Hall da Fama vazio. Além disso, sameShare utilizava 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

  1. rememberWorkers: Reduz o limiar de gravação de best >= 1 para best > 0.
  2. sameShare adaptativo: 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).
  3. Carga inicial e recuperação: Ao iniciar o painel, se houver workers registrados em workers.json com bestDifficulty > 0 que ainda não estavam na lista de recordes, eles são incorporados e salvos em records.json.
  4. Fallback em snapshot(): O valor farm.best passa a considerar também proxy.bestHash.diff, caso disponível.
  5. Formatação visual: Shares mínimos (< 0.01) são exibidos com até 4 casas decimais para não exibir 0,00.
  6. Testes unitários: Adicionado caso de teste em tests/painel.unit.test.js cobrindo shares fracionários e deduplicação. Todos os testes passam.

@Modanez
Modanez merged commit 19487f7 into Modanez:main Nov 12, 2026
3 of 4 checks passed
Modanez added a commit that referenced this pull request Nov 12, 2026
Painel não subia depois do #44 (sameShare antes de definido)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants