Skip to content

fix: parar varredura sequencial ao atingir o fim do range (-r ...:TO)#427

Open
k-vanio wants to merge 2 commits into
albertobsd:mainfrom
k-vanio:main
Open

fix: parar varredura sequencial ao atingir o fim do range (-r ...:TO)#427
k-vanio wants to merge 2 commits into
albertobsd:mainfrom
k-vanio:main

Conversation

@k-vanio

@k-vanio k-vanio commented Jun 7, 2026

Copy link
Copy Markdown

No modo sequencial (address/rmd160/vanity) o keyhunt processava um lote inteiro de N_SEQUENTIAL_MAX (4 bi) por iteração, ignorando o limite TO do -r. Quando o alvo não estava no range, a thread varria muito além do bloco e nunca encerrava (não chegava em ends[]=1), travando workers que dependem da saída do processo para concluir o bloco.

Agora o loop interno também para quando key_mpz >= n_range_end. O modo random (FLAGRANDOM) segue sem limite, como antes.

No modo sequencial (address/rmd160/vanity) o keyhunt processava um lote
inteiro de N_SEQUENTIAL_MAX (4 bi) por iteração, ignorando o limite TO do
-r. Quando o alvo não estava no range, a thread varria muito além do bloco
e nunca encerrava (não chegava em ends[]=1), travando workers que dependem
da saída do processo para concluir o bloco.

Agora o loop interno também para quando key_mpz >= n_range_end. O modo
random (FLAGRANDOM) segue sem limite, como antes.
Copilot AI review requested due to automatic review settings June 7, 2026 22:36

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR updates the sequential worker loops to stop scanning once the configured end-of-range is reached (while keeping random mode behavior unchanged), addressing cases where workers would continue far beyond the intended block.

Changes:

  • Add an end-of-range guard to the sequential do...while loops in thread_process.
  • Apply the same end-of-range guard to the vanity worker loop in thread_process_vanity.
  • Document the rationale inline (including why random mode remains unbounded).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread keyhunt.cpp
keyhunt original varre um lote inteiro de N_SEQUENTIAL_MAX (4 bi) ignorando o
TO; isso fazia o worker varrer muito além do bloco e nunca encerrar. Random
(FLAGRANDOM) segue sem limite, como antes. */
}while(count < N_SEQUENTIAL_MAX && continue_flag && (FLAGRANDOM || key_mpz.IsLower(&n_range_end)));
Comment thread keyhunt.cpp
keyhunt original varre um lote inteiro de N_SEQUENTIAL_MAX (4 bi) ignorando o
TO; isso fazia o worker varrer muito além do bloco e nunca encerrar. Random
(FLAGRANDOM) segue sem limite, como antes. */
}while(count < N_SEQUENTIAL_MAX && continue_flag && (FLAGRANDOM || key_mpz.IsLower(&n_range_end)));
Comment thread keyhunt.cpp
Comment on lines +3094 to +3097
/* fork puzzle: no modo sequencial, para ao atingir o fim do range (-r ...:TO).
keyhunt original varre um lote inteiro de N_SEQUENTIAL_MAX (4 bi) ignorando o
TO; isso fazia o worker varrer muito além do bloco e nunca encerrar. Random
(FLAGRANDOM) segue sem limite, como antes. */
…tel)

-march=native fixava o binario no ISA da maquina de build, gerando
SIGILL (Illegal instruction) ao rodar em CPUs diferentes (ex.: imagem
buildada em AMD travava em Intel). x86-64-v3 (AVX2+BMI2+FMA) e portavel
entre AMD/Intel modernos e casa com o GOAMD64=v3 do binario Go.
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.

3 participants