API: add 'last_share_found_time' in local/stratum

This commit is contained in:
WHR
2025-06-14 10:26:07 +08:00
parent cea19f1c0d
commit 009fa0f474
2 changed files with 12 additions and 0 deletions

View File

@@ -57,6 +57,7 @@ StratumServer::StratumServer(p2pool* pool)
, m_cumulativeFoundSharesDiff(0.0)
, m_totalFoundSidechainShares(0)
, m_totalFailedSidechainShares(0)
, m_lastSidechainShareFoundTime(0)
, m_totalStratumShares(0)
, m_apiLastUpdateTime(0)
{
@@ -601,6 +602,7 @@ void StratumServer::reset_share_counters()
m_cumulativeHashesAtLastShare = m_cumulativeHashes;
m_totalFoundSidechainShares = 0;
m_totalFailedSidechainShares = 0;
m_lastSidechainShareFoundTime = 0;
}
bool StratumServer::http_enabled() const
@@ -1005,6 +1007,8 @@ void StratumServer::on_share_found(uv_work_t* req)
share->m_score = GOOD_SHARE_POINTS;
const double diff = sidechain_difficulty.to_double();
time_t prev_time;
const time_t cur_time = time(nullptr);
{
WriteLock lock(server->m_hashrateDataLock);
@@ -1014,6 +1018,9 @@ void StratumServer::on_share_found(uv_work_t* req)
server->m_cumulativeFoundSharesDiff += diff;
++server->m_totalFoundSidechainShares;
prev_time = server->m_lastSidechainShareFoundTime;
server->m_lastSidechainShareFoundTime = cur_time;
}
if (!pool->submit_sidechain_block(share->m_templateId, share->m_nonce, share->m_extraNonce)) {
@@ -1022,6 +1029,7 @@ void StratumServer::on_share_found(uv_work_t* req)
if (server->m_totalFoundSidechainShares > 0) {
--server->m_totalFoundSidechainShares;
++server->m_totalFailedSidechainShares;
server->m_lastSidechainShareFoundTime = prev_time;
}
}
}
@@ -1494,6 +1502,7 @@ void StratumServer::api_update_local_stats(uint64_t timestamp)
uint64_t hashes_since_last_share;
double average_effort;
uint32_t shares_found, shares_failed;
time_t last_share_found_time;
uint64_t total_stratum_shares;
{
@@ -1525,6 +1534,7 @@ void StratumServer::api_update_local_stats(uint64_t timestamp)
shares_found = m_totalFoundSidechainShares;
shares_failed = m_totalFailedSidechainShares;
last_share_found_time = m_lastSidechainShareFoundTime;
total_stratum_shares = m_totalStratumShares;
}
@@ -1546,6 +1556,7 @@ void StratumServer::api_update_local_stats(uint64_t timestamp)
<< ",\"hashrate_24h\":" << hashrate_24h
<< ",\"total_hashes\":" << total_hashes
<< ",\"total_stratum_shares\":" << total_stratum_shares
<< ",\"last_share_found_time\":" << last_share_found_time
<< ",\"shares_found\":" << shares_found
<< ",\"shares_failed\":" << shares_failed
<< ",\"average_effort\":" << average_effort

View File

@@ -203,6 +203,7 @@ private:
double m_cumulativeFoundSharesDiff;
uint32_t m_totalFoundSidechainShares;
uint32_t m_totalFailedSidechainShares;
time_t m_lastSidechainShareFoundTime;
uint64_t m_totalStratumShares;
uint64_t m_banTime;