mirror of
https://github.com/monero-project/monero.git
synced 2025-07-25 10:15:21 -04:00
daemon: new mining_status command
This commit is contained in:
parent
31bdf7bd11
commit
59478c80dd
9 changed files with 134 additions and 7 deletions
|
@ -461,7 +461,7 @@ bool t_rpc_command_executor::show_status() {
|
|||
% get_sync_percentage(ires)
|
||||
% (ires.testnet ? "testnet" : ires.stagenet ? "stagenet" : "mainnet")
|
||||
% bootstrap_msg
|
||||
% (!has_mining_info ? "mining info unavailable" : mining_busy ? "syncing" : mres.active ? ( ( mres.is_background_mining_enabled ? "smart " : "" ) + std::string("mining at ") + get_mining_speed(mres.speed) + std::string(" to ") + mres.address ) : "not mining")
|
||||
% (!has_mining_info ? "mining info unavailable" : mining_busy ? "syncing" : mres.active ? ( ( mres.is_background_mining_enabled ? "smart " : "" ) + std::string("mining at ") + get_mining_speed(mres.speed)) : "not mining")
|
||||
% get_mining_speed(ires.difficulty / ires.target)
|
||||
% (unsigned)hfres.version
|
||||
% get_fork_extra_info(hfres.earliest_height, net_height, ires.target)
|
||||
|
@ -486,6 +486,81 @@ bool t_rpc_command_executor::show_status() {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool t_rpc_command_executor::mining_status() {
|
||||
cryptonote::COMMAND_RPC_MINING_STATUS::request mreq;
|
||||
cryptonote::COMMAND_RPC_MINING_STATUS::response mres;
|
||||
epee::json_rpc::error error_resp;
|
||||
bool has_mining_info = true;
|
||||
|
||||
std::string fail_message = "Problem fetching info";
|
||||
|
||||
bool mining_busy = false;
|
||||
if (m_is_rpc)
|
||||
{
|
||||
// mining info is only available non unrestricted RPC mode
|
||||
has_mining_info = m_rpc_client->rpc_request(mreq, mres, "/mining_status", fail_message.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!m_rpc_server->on_mining_status(mreq, mres))
|
||||
{
|
||||
tools::fail_msg_writer() << fail_message.c_str();
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mres.status == CORE_RPC_STATUS_BUSY)
|
||||
{
|
||||
mining_busy = true;
|
||||
}
|
||||
else if (mres.status != CORE_RPC_STATUS_OK)
|
||||
{
|
||||
tools::fail_msg_writer() << make_error(fail_message, mres.status);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!has_mining_info)
|
||||
{
|
||||
tools::fail_msg_writer() << "Mining info unavailable";
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mining_busy || !mres.active)
|
||||
{
|
||||
tools::msg_writer() << "Not currently mining";
|
||||
}
|
||||
else
|
||||
{
|
||||
tools::msg_writer() << "Mining at " << get_mining_speed(mres.speed) << " with " << mres.threads_count << " threads";
|
||||
}
|
||||
|
||||
if (mres.active || mres.is_background_mining_enabled)
|
||||
{
|
||||
tools::msg_writer() << "PoW algorithm: " << mres.pow_algorithm;
|
||||
tools::msg_writer() << "Mining address: " << mres.address;
|
||||
}
|
||||
|
||||
if (mres.is_background_mining_enabled)
|
||||
{
|
||||
tools::msg_writer() << "Smart mining enabled:";
|
||||
tools::msg_writer() << " Target: " << (unsigned)mres.bg_target << "% CPU";
|
||||
tools::msg_writer() << " Idle threshold: " << (unsigned)mres.bg_idle_threshold << "% CPU";
|
||||
tools::msg_writer() << " Min idle time: " << (unsigned)mres.bg_min_idle_seconds << " seconds";
|
||||
tools::msg_writer() << " Ignore battery: " << (mres.bg_ignore_battery ? "yes" : "no");
|
||||
}
|
||||
|
||||
if (!mining_busy && mres.active)
|
||||
{
|
||||
uint64_t daily = 86400ull / mres.block_target * mres.block_reward;
|
||||
uint64_t monthly = 86400ull / mres.block_target * 30.5 * mres.block_reward;
|
||||
uint64_t yearly = 86400ull / mres.block_target * 356 * mres.block_reward;
|
||||
tools::msg_writer() << "Expected: " << cryptonote::print_money(daily) << " monero daily, "
|
||||
<< cryptonote::print_money(monthly) << " monero monthly, " << cryptonote::print_money(yearly) << " yearly";
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool t_rpc_command_executor::print_connections() {
|
||||
cryptonote::COMMAND_RPC_GET_CONNECTIONS::request req;
|
||||
cryptonote::COMMAND_RPC_GET_CONNECTIONS::response res;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue