Merge branch 'api'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
diff --git a/API-README b/API-README
index b205c90..a71b694 100644
--- a/API-README
+++ b/API-README
@@ -400,7 +400,14 @@ miner.php - an example web page to access the API
Feature Changelog for external applications using the API:
-API V1.23
+API V1.24
+
+Modified API commands:
+ 'pools' - add 'Best Share'
+
+----------
+
+API V1.23 (cgminer v2.10.2)
Added API commands:
'pgaset' - with: MMQ opt=clock val=160 to 230 (and a multiple of 2)
diff --git a/api.c b/api.c
index 1d29dbb..3561c7a 100644
--- a/api.c
+++ b/api.c
@@ -133,7 +133,7 @@ static const char SEPARATOR = '|';
#define SEPSTR "|"
static const char GPUSEP = ',';
-static const char *APIVERSION = "1.23";
+static const char *APIVERSION = "1.24";
static const char *DEAD = "Dead";
#if defined(HAVE_OPENCL) || defined(HAVE_AN_FPGA)
static const char *SICK = "Sick";
@@ -1993,6 +1993,7 @@ static void poolstatus(struct io_data *io_data, __maybe_unused SOCKETTYPE c, __m
else
root = api_add_const(root, "Stratum URL", BLANK, false);
root = api_add_bool(root, "Has GBT", &(pool->has_gbt), false);
+ root = api_add_uint64(root, "Best Share", &(pool->best_diff), true);
root = print_data(root, buf, isjson, isjson && (i > 0));
io_add(io_data, buf);
diff --git a/cgminer.c b/cgminer.c
index 876abed..0c2d8c2 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -2349,6 +2349,8 @@ static uint64_t share_diff(const struct work *work)
best_diff = ret;
suffix_string(best_diff, best_share, 0);
}
+ if (ret > work->pool->best_diff)
+ work->pool->best_diff = ret;
mutex_unlock(&control_lock);
return ret;
}
@@ -3933,6 +3935,10 @@ void zero_stats(void)
total_diff1 = 0;
memset(best_share, 0, 8);
suffix_string(best_diff, best_share, 0);
+ found_blocks = 0;
+ total_diff_accepted = 0;
+ total_diff_rejected = 0;
+ total_diff_stale = 0;
for (i = 0; i < total_pools; i++) {
struct pool *pool = pools[i];
@@ -3944,6 +3950,13 @@ void zero_stats(void)
pool->discarded_work = 0;
pool->getfail_occasions = 0;
pool->remotefail_occasions = 0;
+ pool->last_share_time = 0;
+ pool->diff1 = 0;
+ pool->diff_accepted = 0;
+ pool->diff_rejected = 0;
+ pool->diff_stale = 0;
+ pool->last_share_diff = 0;
+ pool->best_diff = 0;
}
mutex_lock(&hash_lock);
@@ -3955,6 +3968,11 @@ void zero_stats(void)
cgpu->rejected = 0;
cgpu->hw_errors = 0;
cgpu->utility = 0.0;
+ cgpu->last_share_pool_time = 0;
+ cgpu->diff1 = 0;
+ cgpu->diff_accepted = 0;
+ cgpu->diff_rejected = 0;
+ cgpu->last_share_diff = 0;
}
mutex_unlock(&hash_lock);
}
diff --git a/miner.h b/miner.h
index 4d47c3c..d892ed0 100644
--- a/miner.h
+++ b/miner.h
@@ -924,6 +924,7 @@ struct pool {
time_t last_share_time;
double last_share_diff;
+ uint64_t best_diff;
struct cgminer_stats cgminer_stats;
struct cgminer_pool_stats cgminer_pool_stats;