Display proof-of-work hash when one is discovered
This commit is contained in:
parent
453101d9e9
commit
c68ffb30dd
6 changed files with 35 additions and 28 deletions
17
miner.h
17
miner.h
|
@ -27,6 +27,21 @@ static inline uint32_t swab32(uint32_t v)
|
||||||
return __builtin_bswap32(v);
|
return __builtin_bswap32(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void swap256(void *dest_p, const void *src_p)
|
||||||
|
{
|
||||||
|
uint32_t *dest = dest_p;
|
||||||
|
const uint32_t *src = src_p;
|
||||||
|
|
||||||
|
dest[0] = src[7];
|
||||||
|
dest[1] = src[6];
|
||||||
|
dest[2] = src[5];
|
||||||
|
dest[3] = src[4];
|
||||||
|
dest[4] = src[3];
|
||||||
|
dest[5] = src[2];
|
||||||
|
dest[6] = src[1];
|
||||||
|
dest[7] = src[0];
|
||||||
|
}
|
||||||
|
|
||||||
extern bool opt_debug;
|
extern bool opt_debug;
|
||||||
extern bool opt_protocol;
|
extern bool opt_protocol;
|
||||||
extern const uint32_t sha256_init_state[];
|
extern const uint32_t sha256_init_state[];
|
||||||
|
@ -55,4 +70,6 @@ extern bool scanhash_asm32(const unsigned char *midstate,unsigned char *data,
|
||||||
extern int
|
extern int
|
||||||
timeval_subtract (struct timeval *result, struct timeval *x, struct timeval *y);
|
timeval_subtract (struct timeval *result, struct timeval *x, struct timeval *y);
|
||||||
|
|
||||||
|
extern void print_pow(const unsigned char *hash);
|
||||||
|
|
||||||
#endif /* __MINER_H__ */
|
#endif /* __MINER_H__ */
|
||||||
|
|
|
@ -123,6 +123,9 @@ unsigned int ScanHash_4WaySSE2(const unsigned char *pmidstate, unsigned char *pd
|
||||||
|
|
||||||
for (i = 0; i < 32/4; i++)
|
for (i = 0; i < 32/4; i++)
|
||||||
((unsigned int*)phash)[i] = thash[i][j];
|
((unsigned int*)phash)[i] = thash[i][j];
|
||||||
|
|
||||||
|
print_pow(phash);
|
||||||
|
|
||||||
*nHashesDone = nonce;
|
*nHashesDone = nonce;
|
||||||
*nNonce_p = nonce + j;
|
*nNonce_p = nonce + j;
|
||||||
return nonce + j;
|
return nonce + j;
|
||||||
|
|
|
@ -110,13 +110,7 @@ bool scanhash_cryptopp(const unsigned char *midstate, unsigned char *data,
|
||||||
stat_ctr++;
|
stat_ctr++;
|
||||||
|
|
||||||
if (hash32[7] == 0) {
|
if (hash32[7] == 0) {
|
||||||
char *hexstr;
|
print_pow(hash);
|
||||||
|
|
||||||
hexstr = bin2hex(hash, 32);
|
|
||||||
fprintf(stderr,
|
|
||||||
"DBG: found zeroes in hash:\n%s\n",
|
|
||||||
hexstr);
|
|
||||||
free(hexstr);
|
|
||||||
|
|
||||||
*hashes_done = stat_ctr;
|
*hashes_done = stat_ctr;
|
||||||
return true;
|
return true;
|
||||||
|
@ -601,13 +595,7 @@ bool scanhash_asm32(const unsigned char *midstate, unsigned char *data,
|
||||||
stat_ctr++;
|
stat_ctr++;
|
||||||
|
|
||||||
if (hash32[7] == 0) {
|
if (hash32[7] == 0) {
|
||||||
char *hexstr;
|
print_pow(hash);
|
||||||
|
|
||||||
hexstr = bin2hex(hash, 32);
|
|
||||||
fprintf(stderr,
|
|
||||||
"DBG: found zeroes in hash:\n%s\n",
|
|
||||||
hexstr);
|
|
||||||
free(hexstr);
|
|
||||||
|
|
||||||
*hashes_done = stat_ctr;
|
*hashes_done = stat_ctr;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -256,13 +256,7 @@ bool scanhash_c(const unsigned char *midstate, unsigned char *data,
|
||||||
stat_ctr++;
|
stat_ctr++;
|
||||||
|
|
||||||
if (hash32[7] == 0) {
|
if (hash32[7] == 0) {
|
||||||
char *hexstr;
|
print_pow(hash);
|
||||||
|
|
||||||
hexstr = bin2hex(hash, 32);
|
|
||||||
fprintf(stderr,
|
|
||||||
"DBG: found zeroes in hash:\n%s\n",
|
|
||||||
hexstr);
|
|
||||||
free(hexstr);
|
|
||||||
|
|
||||||
*hashes_done = stat_ctr;
|
*hashes_done = stat_ctr;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -57,13 +57,7 @@ bool scanhash_via(unsigned char *data_inout,
|
||||||
stat_ctr++;
|
stat_ctr++;
|
||||||
|
|
||||||
if (hash32[7] == 0) {
|
if (hash32[7] == 0) {
|
||||||
char *hexstr;
|
print_pow(tmp_hash);
|
||||||
|
|
||||||
hexstr = bin2hex(tmp_hash, 32);
|
|
||||||
fprintf(stderr,
|
|
||||||
"DBG: found zeroes in hash:\n%s\n",
|
|
||||||
hexstr);
|
|
||||||
free(hexstr);
|
|
||||||
|
|
||||||
/* swap nonce'd data back into original storage area;
|
/* swap nonce'd data back into original storage area;
|
||||||
* TODO: only swap back the nonce, rather than all data
|
* TODO: only swap back the nonce, rather than all data
|
||||||
|
|
11
util.c
11
util.c
|
@ -255,3 +255,14 @@ timeval_subtract (
|
||||||
return x->tv_sec < y->tv_sec;
|
return x->tv_sec < y->tv_sec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void print_pow(const unsigned char *hash)
|
||||||
|
{
|
||||||
|
char *hexstr;
|
||||||
|
unsigned char hash_swap[32];
|
||||||
|
|
||||||
|
swap256(hash_swap, hash);
|
||||||
|
hexstr = bin2hex(hash_swap, 32);
|
||||||
|
fprintf(stderr, "PoW found: %s\n", hexstr);
|
||||||
|
free(hexstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue