pubkey mining stats

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin 2022-08-30 08:01:54 -07:00
parent 3b8dea4c59
commit 250a5edbb3

View File

@ -253,6 +253,12 @@ static int generate_key(secp256k1_context *ctx, struct key *key, int *difficulty
return create_key(ctx, key); return create_key(ctx, key);
} }
uint64_t attempts = 0;
uint64_t duration;
double pers;
struct timespec t1, t2;
clock_gettime(CLOCK_MONOTONIC, &t1);
while (1) { while (1) {
if (!fill_random(key->secret, sizeof(key->secret))) if (!fill_random(key->secret, sizeof(key->secret)))
continue; continue;
@ -260,10 +266,17 @@ static int generate_key(secp256k1_context *ctx, struct key *key, int *difficulty
if (!create_key(ctx, key)) if (!create_key(ctx, key))
return 0; return 0;
if (count_leading_zero_bits(key->pubkey) >= *difficulty) attempts++;
if (count_leading_zero_bits(key->pubkey) >= *difficulty) {
clock_gettime(CLOCK_MONOTONIC, &t2);
duration = ((t2.tv_sec - t1.tv_sec) * 1e9L + (t2.tv_nsec - t1.tv_nsec)) / 1e6L;
pers = (double)attempts / (double)duration;
fprintf(stderr, "mined pubkey after %" PRIu64 " attempts, %" PRId64 " ms, %f attempts per ms\n", attempts, duration, pers);
return 1; return 1;
} }
} }
}
static int init_secp_context(secp256k1_context **ctx) static int init_secp_context(secp256k1_context **ctx)