mirror of
https://github.com/GOSTSec/sgminer
synced 2025-03-13 06:01:03 +00:00
Display correct share hash and share difficulty with scrypt mining.
This commit is contained in:
parent
04c7a21ddd
commit
7adb7a30e6
27
cgminer.c
27
cgminer.c
@ -47,6 +47,7 @@
|
||||
#include "driver-cpu.h"
|
||||
#include "driver-opencl.h"
|
||||
#include "bench_block.h"
|
||||
#include "scrypt.h"
|
||||
|
||||
#if defined(unix)
|
||||
#include <errno.h>
|
||||
@ -1988,7 +1989,17 @@ static uint64_t share_diff(const struct work *work)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool submit_upstream_work(const struct work *work, CURL *curl, bool resubmit)
|
||||
static uint32_t scrypt_diff(const struct work *work)
|
||||
{
|
||||
const uint32_t scrypt_diffone = 0x0000fffful;
|
||||
uint32_t d32 = work->outputhash;
|
||||
|
||||
if (unlikely(!d32))
|
||||
d32 = 1;
|
||||
return scrypt_diffone / d32;
|
||||
}
|
||||
|
||||
static bool submit_upstream_work(struct work *work, CURL *curl, bool resubmit)
|
||||
{
|
||||
char *hexstr = NULL;
|
||||
json_t *val, *res, *err;
|
||||
@ -2046,13 +2057,19 @@ static bool submit_upstream_work(const struct work *work, CURL *curl, bool resub
|
||||
|
||||
if (!QUIET) {
|
||||
int intdiff = floor(work->work_difficulty);
|
||||
char diffdisp[16];
|
||||
|
||||
hash32 = (uint32_t *)(work->hash);
|
||||
if (opt_scrypt)
|
||||
sprintf(hashshow, "%08lx Diff %d", (unsigned long)(hash32[7]), intdiff);
|
||||
else {
|
||||
if (opt_scrypt) {
|
||||
uint32_t sharediff;
|
||||
|
||||
scrypt_outputhash(work);
|
||||
sharediff = scrypt_diff(work);
|
||||
suffix_string(sharediff, diffdisp, 0);
|
||||
|
||||
sprintf(hashshow, "%08lx Diff %s/%d", (unsigned long)work->outputhash, diffdisp, intdiff);
|
||||
} else {
|
||||
uint64_t sharediff = share_diff(work);
|
||||
char diffdisp[16];
|
||||
|
||||
suffix_string(sharediff, diffdisp, 0);
|
||||
|
||||
|
4
miner.h
4
miner.h
@ -897,10 +897,10 @@ struct work {
|
||||
unsigned char target[32];
|
||||
unsigned char hash[32];
|
||||
|
||||
uint32_t outputhash;
|
||||
|
||||
int rolls;
|
||||
|
||||
uint32_t output[1];
|
||||
uint32_t valid;
|
||||
dev_blk_ctx blk;
|
||||
|
||||
struct thr_info *thr;
|
||||
|
12
scrypt.c
12
scrypt.c
@ -405,6 +405,18 @@ static uint32_t scrypt_1024_1_1_256_sp(const uint32_t* input, char* scratchpad)
|
||||
return PBKDF2_SHA256_80_128_32(input, X);
|
||||
}
|
||||
|
||||
void scrypt_outputhash(struct work *work)
|
||||
{
|
||||
uint32_t data[20];
|
||||
char *scratchbuf;
|
||||
uint32_t *nonce = (uint32_t *)(work->data + 76);
|
||||
|
||||
be32enc_vect(data, (const uint32_t *)work->data, 19);
|
||||
data[19] = htobe32(*nonce);
|
||||
scratchbuf = alloca(131584);
|
||||
work->outputhash = scrypt_1024_1_1_256_sp(data, scratchbuf);
|
||||
}
|
||||
|
||||
/* Used externally as confirmation of correct OCL code */
|
||||
bool scrypt_test(unsigned char *pdata, const unsigned char *ptarget, uint32_t nonce)
|
||||
{
|
||||
|
8
scrypt.h
8
scrypt.h
@ -1,9 +1,13 @@
|
||||
#ifndef SCRYPT_H
|
||||
#define SCRYPT_H
|
||||
|
||||
#include "miner.h"
|
||||
|
||||
#ifdef USE_SCRYPT
|
||||
extern bool scrypt_test(unsigned char *pdata, const unsigned char *ptarget,
|
||||
uint32_t nonce);
|
||||
extern void scrypt_outputhash(struct work *work);
|
||||
|
||||
#else /* USE_SCRYPT */
|
||||
static inline bool scrypt_test(__maybe_unused unsigned char *pdata,
|
||||
__maybe_unused const unsigned char *ptarget,
|
||||
@ -11,6 +15,10 @@ static inline bool scrypt_test(__maybe_unused unsigned char *pdata,
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline void scrypt_outputhash(struct work *work)
|
||||
{
|
||||
}
|
||||
#endif /* USE_SCRYPT */
|
||||
|
||||
#endif /* SCRYPT_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user