@@ -3378,6 +3378,8 @@ nlohmann::json MiningInterface::rest_stratum_stats()
33783378 workers_json[worker_key][" accepted" ] = workers_json[worker_key][" accepted" ].get <uint64_t >() + w.accepted ;
33793379 workers_json[worker_key][" rejected" ] = workers_json[worker_key][" rejected" ].get <uint64_t >() + w.rejected ;
33803380 workers_json[worker_key][" stale" ] = workers_json[worker_key][" stale" ].get <uint64_t >() + w.stale ;
3381+ if (w.rtt_ms > workers_json[worker_key].value (" rtt_ms" , 0.0 ))
3382+ workers_json[worker_key][" rtt_ms" ] = w.rtt_ms ;
33813383 workers_json[worker_key][" shares" ] = workers_json[worker_key][" shares" ].get <uint64_t >() + w.accepted + w.stale ;
33823384 // Keep earliest first_seen
33833385 if (first_seen_ts < workers_json[worker_key][" first_seen" ].get <uint64_t >())
@@ -3396,7 +3398,8 @@ nlohmann::json MiningInterface::rest_stratum_stats()
33963398 {" stale" , w.stale },
33973399 {" shares" , w.accepted + w.stale },
33983400 {" connected_seconds" , elapsed},
3399- {" remote_endpoint" , w.remote_endpoint }
3401+ {" remote_endpoint" , w.remote_endpoint },
3402+ {" rtt_ms" , w.rtt_ms }
34003403 };
34013404 }
34023405 }
@@ -6995,6 +6998,14 @@ void MiningInterface::update_stratum_worker(const std::string& session_id,
69956998 }
69966999}
69977000
7001+ void MiningInterface::update_stratum_worker_rtt (const std::string& session_id, double rtt_ms)
7002+ {
7003+ std::lock_guard<std::mutex> lock (m_stratum_workers_mutex);
7004+ auto it = m_stratum_workers.find (session_id);
7005+ if (it != m_stratum_workers.end ())
7006+ it->second .rtt_ms = rtt_ms;
7007+ }
7008+
69987009std::map<std::string, MiningInterface::WorkerInfo> MiningInterface::get_stratum_workers () const
69997010{
70007011 std::lock_guard<std::mutex> lock (m_stratum_workers_mutex);
0 commit comments