mirror of
https://git.wownero.com/wownero/wownero-puddle.git
synced 2024-08-15 01:03:20 +00:00
limit max target to block diff
(thanks to cohcho)
This commit is contained in:
parent
7b6d4932c7
commit
e3e133f1d3
1 changed files with 8 additions and 6 deletions
14
src/pool.c
14
src/pool.c
|
@ -830,10 +830,13 @@ template_recycle(void *item)
|
|||
static void
|
||||
retarget(client_t *client, job_t *job)
|
||||
{
|
||||
uint64_t bd = 0xFFFFFFFFFFFFFFFF;
|
||||
if (job->block_template)
|
||||
bd = job->block_template->difficulty;
|
||||
double duration = difftime(time(NULL), client->connected_since);
|
||||
uint8_t retarget_time = client->is_xnp ? 5 : 120;
|
||||
uint64_t target = fmax((double)client->hashes /
|
||||
duration * retarget_time, config.pool_start_diff);
|
||||
uint64_t target = fmin(fmax((double)client->hashes /
|
||||
duration * retarget_time, config.pool_start_diff), bd);
|
||||
job->target = target;
|
||||
log_debug("Client %.32s target now %"PRIu64, client->client_id, target);
|
||||
}
|
||||
|
@ -1114,6 +1117,9 @@ client_send_job(client_t *client, bool response)
|
|||
job_t *job = &client->active_jobs[0];
|
||||
memset(job, 0, sizeof(job_t));
|
||||
|
||||
block_template_t *bt = bstack_peek(bst);
|
||||
job->block_template = bt;
|
||||
|
||||
if (client->mode == MODE_SELF_SELECT)
|
||||
{
|
||||
uuid_generate(job->id);
|
||||
|
@ -1129,7 +1135,6 @@ client_send_job(client_t *client, bool response)
|
|||
}
|
||||
|
||||
/* Quick check we actually have a block template */
|
||||
block_template_t *bt = bstack_peek(bst);
|
||||
if (!bt)
|
||||
{
|
||||
log_warn("Cannot send client a job: No block template");
|
||||
|
@ -1174,9 +1179,6 @@ client_send_job(client_t *client, bool response)
|
|||
/* Save a job id */
|
||||
uuid_generate(job->id);
|
||||
|
||||
/* Hold reference to block template */
|
||||
job->block_template = bt;
|
||||
|
||||
/* Send */
|
||||
char job_id[33] = {0};
|
||||
bin_to_hex((const unsigned char*)job->id, sizeof(uuid_t), &job_id[0], 32);
|
||||
|
|
Loading…
Reference in a new issue