Browse Source

Remove hard coded ckdb limits.

master
Con Kolivas 8 years ago
parent
commit
5143122b82
  1. 10
      src/ckdb.h
  2. 18
      src/ckdb_cmd.c
  3. 18
      src/ckdb_data.c

10
src/ckdb.h

@ -3283,16 +3283,6 @@ extern void sequence_report(bool lock);
// *** ckdb_data.c *** // *** ckdb_data.c ***
// *** // ***
/* Blocks after 334106 were set to 5xN
* however, they cannot count back to include the workinfoid of 333809
* due to the markersummaries that were created.
* Code checks that if the block is after FIVExSTT then it must stop
* counting back shares at - and not include - FIVExWID */
#define FIVExSTT 334106
#define FIVExLIM 333809
// 333809 workinfoid
#define FIVExWID 6085620100361140756
// optioncontrol names for PPLNS N diff calculation // optioncontrol names for PPLNS N diff calculation
#define PPLNSDIFFTIMES "pplns_diff_times" #define PPLNSDIFFTIMES "pplns_diff_times"
#define PPLNSDIFFADD "pplns_diff_add" #define PPLNSDIFFADD "pplns_diff_add"

18
src/ckdb_cmd.c

@ -4344,7 +4344,7 @@ static char *cmd_pplns(__maybe_unused PGconn *conn, char *cmd, char *id,
double diff_times = 1.0; double diff_times = 1.0;
double diff_add = 0.0; double diff_add = 0.0;
double diff_want; double diff_want;
bool allow_aged = false, countbacklimit; bool allow_aged = false;
size_t len, off; size_t len, off;
int rows; int rows;
@ -4443,13 +4443,7 @@ static char *cmd_pplns(__maybe_unused PGconn *conn, char *cmd, char *id,
return strdup(reply); return strdup(reply);
} }
if (blocks->height > FIVExSTT) LOGDEBUG("%s(): ndiff %.0f", __func__, ndiff);
countbacklimit = true;
else
countbacklimit = false;
LOGDEBUG("%s(): ndiff %.0f limit=%s",
__func__, ndiff,
countbacklimit ? "true" : "false");
begin_workinfoid = end_workinfoid = 0; begin_workinfoid = end_workinfoid = 0;
total_share_count = acc_share_count = 0; total_share_count = acc_share_count = 0;
total_diff = 0; total_diff = 0;
@ -4486,10 +4480,6 @@ static char *cmd_pplns(__maybe_unused PGconn *conn, char *cmd, char *id,
share_status = "Not ready1"; share_status = "Not ready1";
} }
// Stop before FIVExWID if necessary
if (countbacklimit && sharesummary->workinfoid <= FIVExWID)
break;
ss_count++; ss_count++;
total_share_count += sharesummary->sharecount; total_share_count += sharesummary->sharecount;
acc_share_count += sharesummary->shareacc; acc_share_count += sharesummary->shareacc;
@ -4545,10 +4535,6 @@ static char *cmd_pplns(__maybe_unused PGconn *conn, char *cmd, char *id,
LOGDEBUG("%s(): workmarkers < %"PRId64, __func__, lookworkmarkers.workinfoidend); LOGDEBUG("%s(): workmarkers < %"PRId64, __func__, lookworkmarkers.workinfoidend);
while (total_diff < diff_want && wm_item && CURRENT(&(workmarkers->expirydate))) { while (total_diff < diff_want && wm_item && CURRENT(&(workmarkers->expirydate))) {
if (WMPROCESSED(workmarkers->status)) { if (WMPROCESSED(workmarkers->status)) {
// Stop before FIVExWID if necessary
if (countbacklimit && workmarkers->workinfoidstart <= FIVExWID)
break;
wm_count++; wm_count++;
lookmarkersummary.markerid = workmarkers->markerid; lookmarkersummary.markerid = workmarkers->markerid;
lookmarkersummary.userid = MAXID; lookmarkersummary.userid = MAXID;

18
src/ckdb_data.c

@ -4555,7 +4555,7 @@ bool process_pplns(int32_t height, char *blockhash, tv_t *addr_cd)
{ {
K_TREE_CTX b_ctx[1], ss_ctx[1], wm_ctx[1], ms_ctx[1], pay_ctx[1], mu_ctx[1]; K_TREE_CTX b_ctx[1], ss_ctx[1], wm_ctx[1], ms_ctx[1], pay_ctx[1], mu_ctx[1];
bool allow_aged = true, conned = false, begun = false; bool allow_aged = true, conned = false, begun = false;
bool countbacklimit, ok = false; bool ok = false;
PGconn *conn = NULL; PGconn *conn = NULL;
MININGPAYOUTS *miningpayouts; MININGPAYOUTS *miningpayouts;
OPTIONCONTROL *optioncontrol; OPTIONCONTROL *optioncontrol;
@ -4683,13 +4683,7 @@ bool process_pplns(int32_t height, char *blockhash, tv_t *addr_cd)
goto oku; goto oku;
} }
// Check for the hard coded limit LOGDEBUG("%s(): ndiff %.1f", __func__, ndiff);
if (blocks->height > FIVExSTT)
countbacklimit = true;
else
countbacklimit = false;
LOGDEBUG("%s(): ndiff %.1f limit %c",
__func__, ndiff, countbacklimit ? 'Y' : 'N');
// add up all the shares ... // add up all the shares ...
begin_workinfoid = end_workinfoid = 0; begin_workinfoid = end_workinfoid = 0;
@ -4743,10 +4737,6 @@ bool process_pplns(int32_t height, char *blockhash, tv_t *addr_cd)
goto shazbot; goto shazbot;
} }
// Stop before FIVExWID if necessary
if (countbacklimit && sharesummary->workinfoid <= FIVExWID)
break;
ss_count++; ss_count++;
total_share_count += sharesummary->sharecount; total_share_count += sharesummary->sharecount;
acc_share_count += sharesummary->shareacc; acc_share_count += sharesummary->shareacc;
@ -4814,10 +4804,6 @@ bool process_pplns(int32_t height, char *blockhash, tv_t *addr_cd)
LOGDEBUG("%s(): workmarkers < %"PRId64, __func__, lookworkmarkers.workinfoidend); LOGDEBUG("%s(): workmarkers < %"PRId64, __func__, lookworkmarkers.workinfoidend);
while (total_diff < diff_want && wm_item && CURRENT(&(workmarkers->expirydate))) { while (total_diff < diff_want && wm_item && CURRENT(&(workmarkers->expirydate))) {
if (WMPROCESSED(workmarkers->status)) { if (WMPROCESSED(workmarkers->status)) {
// Stop before FIVExWID if necessary
if (countbacklimit && workmarkers->workinfoidstart <= FIVExWID)
break;
wm_count++; wm_count++;
lookmarkersummary.markerid = workmarkers->markerid; lookmarkersummary.markerid = workmarkers->markerid;
lookmarkersummary.userid = MAXID; lookmarkersummary.userid = MAXID;

Loading…
Cancel
Save