mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-11 07:17:58 +00:00
Merge pull request #313 from kanoi/main
API stats add some pool getwork difficulty stats
This commit is contained in:
commit
a63ecf63f0
@ -401,6 +401,8 @@ Modified API commands:
|
||||
'pools' - add 'Proxy Type', 'Proxy', 'Difficulty Accepted', 'Difficulty Rejected',
|
||||
'Difficulty Stale', 'Last Share Difficulty'
|
||||
'config' - add 'Queue', 'Expiry'
|
||||
'stats' - add 'Work Diff', 'Min Diff', 'Max Diff', 'Min Diff Count',
|
||||
'Max Diff Count' to the pool stats
|
||||
|
||||
----------
|
||||
|
||||
|
5
api.c
5
api.c
@ -2789,6 +2789,11 @@ static int itemstats(int i, char *id, struct cgminer_stats *stats, struct cgmine
|
||||
root = api_add_bool(root, "Work Can Roll", &(pool_stats->canroll), false);
|
||||
root = api_add_bool(root, "Work Had Expire", &(pool_stats->hadexpire), false);
|
||||
root = api_add_uint32(root, "Work Roll Time", &(pool_stats->rolltime), false);
|
||||
root = api_add_diff(root, "Work Diff", &(pool_stats->last_diff), false);
|
||||
root = api_add_diff(root, "Min Diff", &(pool_stats->min_diff), false);
|
||||
root = api_add_diff(root, "Max Diff", &(pool_stats->max_diff), false);
|
||||
root = api_add_uint32(root, "Min Diff Count", &(pool_stats->min_diff_count), false);
|
||||
root = api_add_uint32(root, "Max Diff Count", &(pool_stats->max_diff_count), false);
|
||||
}
|
||||
|
||||
if (extra)
|
||||
|
17
cgminer.c
17
cgminer.c
@ -2047,6 +2047,7 @@ static double DIFFEXACTONE = 269599466671506397946670150870196306736371444225405
|
||||
*/
|
||||
static void calc_diff(struct work *work)
|
||||
{
|
||||
struct cgminer_pool_stats *pool_stats = &(work->pool->cgminer_pool_stats);
|
||||
double targ;
|
||||
int i;
|
||||
|
||||
@ -2057,6 +2058,22 @@ static void calc_diff(struct work *work)
|
||||
}
|
||||
|
||||
work->work_difficulty = DIFFEXACTONE / (targ ? : DIFFEXACTONE);
|
||||
|
||||
pool_stats->last_diff = work->work_difficulty;
|
||||
|
||||
if (work->work_difficulty == pool_stats->min_diff)
|
||||
pool_stats->min_diff_count++;
|
||||
else if (work->work_difficulty < pool_stats->min_diff || pool_stats->min_diff == 0) {
|
||||
pool_stats->min_diff = work->work_difficulty;
|
||||
pool_stats->min_diff_count = 1;
|
||||
}
|
||||
|
||||
if (work->work_difficulty == pool_stats->max_diff)
|
||||
pool_stats->max_diff_count++;
|
||||
else if (work->work_difficulty > pool_stats->max_diff) {
|
||||
pool_stats->max_diff = work->work_difficulty;
|
||||
pool_stats->max_diff_count = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void get_benchmark_work(struct work *work)
|
||||
|
Loading…
Reference in New Issue
Block a user