1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-09-04 10:12:10 +00:00

Show hash (instead of nonce) in Accept/Reject messages

This commit is contained in:
Kano 2011-09-18 15:10:12 +10:00
parent bc96efa56f
commit 37b017fda4

43
main.c
View File

@ -32,6 +32,7 @@
#include <jansson.h> #include <jansson.h>
#include <curl/curl.h> #include <curl/curl.h>
#include <libgen.h> #include <libgen.h>
#include <openssl/sha.h>
#include "compat.h" #include "compat.h"
#include "miner.h" #include "miner.h"
@ -2004,6 +2005,22 @@ void clear_logwin(void)
} }
} }
/* regenerate the full work->hash value */
void regeneratehash(const struct work *work)
{
uint32_t *data32 = (uint32_t *)(work->data);
unsigned char swap[128];
uint32_t *swap32 = (uint32_t *)swap;
unsigned char hash1[SHA256_DIGEST_LENGTH];
int i;
for (i = 0; i < 80/4; i++)
swap32[i] = swab32(data32[i]);
SHA256(swap, 80, hash1);
SHA256(hash1, SHA256_DIGEST_LENGTH, (unsigned char *)(work->hash));
}
static bool submit_upstream_work(const struct work *work) static bool submit_upstream_work(const struct work *work)
{ {
char *hexstr = NULL; char *hexstr = NULL;
@ -2015,6 +2032,8 @@ static bool submit_upstream_work(const struct work *work)
CURL *curl = curl_easy_init(); CURL *curl = curl_easy_init();
struct pool *pool = work->pool; struct pool *pool = work->pool;
bool rolltime; bool rolltime;
uint32_t *hash32;
char hashshow[32+1] = "";
if (unlikely(!curl)) { if (unlikely(!curl)) {
applog(LOG_ERR, "CURL initialisation failed"); applog(LOG_ERR, "CURL initialisation failed");
@ -2054,6 +2073,14 @@ static bool submit_upstream_work(const struct work *work)
res = json_object_get(val, "result"); res = json_object_get(val, "result");
if (!QUIET) {
regeneratehash(work);
hash32 = (uint32_t *)(work->hash);
sprintf(hashshow, "%08lx%08lx%08lx%08lx",
(unsigned long)(hash32[7]), (unsigned long)(hash32[6]),
(unsigned long)(hash32[5]), (unsigned long)(hash32[4]));
}
/* Theoretically threads could race when modifying accepted and /* Theoretically threads could race when modifying accepted and
* rejected values but the chance of two submits completing at the * rejected values but the chance of two submits completing at the
* same time is zero so there is no point adding extra locking */ * same time is zero so there is no point adding extra locking */
@ -2065,11 +2092,11 @@ static bool submit_upstream_work(const struct work *work)
applog(LOG_DEBUG, "PROOF OF WORK RESULT: true (yay!!!)"); applog(LOG_DEBUG, "PROOF OF WORK RESULT: true (yay!!!)");
if (!QUIET) { if (!QUIET) {
if (total_pools > 1) if (total_pools > 1)
applog(LOG_NOTICE, "Accepted %.8s %sPU %d thread %d pool %d", applog(LOG_NOTICE, "Accepted %.32s %sPU %d thread %d pool %d",
hexstr + 152, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id, work->pool->pool_no); hashshow, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id, work->pool->pool_no);
else else
applog(LOG_NOTICE, "Accepted %.8s %sPU %d thread %d", applog(LOG_NOTICE, "Accepted %.32s %sPU %d thread %d",
hexstr + 152, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id); hashshow, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id);
} }
if (opt_shares && total_accepted >= opt_shares) { if (opt_shares && total_accepted >= opt_shares) {
applog(LOG_WARNING, "Successfully mined %d accepted shares as requested and exiting.", opt_shares); applog(LOG_WARNING, "Successfully mined %d accepted shares as requested and exiting.", opt_shares);
@ -2084,11 +2111,11 @@ static bool submit_upstream_work(const struct work *work)
applog(LOG_DEBUG, "PROOF OF WORK RESULT: false (booooo)"); applog(LOG_DEBUG, "PROOF OF WORK RESULT: false (booooo)");
if (!QUIET) { if (!QUIET) {
if (total_pools > 1) if (total_pools > 1)
applog(LOG_NOTICE, "Rejected %.8s %sPU %d thread %d pool %d", applog(LOG_NOTICE, "Rejected %.32s %sPU %d thread %d pool %d",
hexstr + 152, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id, work->pool->pool_no); hashshow, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id, work->pool->pool_no);
else else
applog(LOG_NOTICE, "Rejected %.8s %sPU %d thread %d", applog(LOG_NOTICE, "Rejected %.32s %sPU %d thread %d",
hexstr + 152, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id); hashshow, cgpu->is_gpu? "G" : "C", cgpu->cpu_gpu, thr_id);
} }
} }