Add start_time to get_info methods and show uptime

This commit is contained in:
Miguel Herranz 2017-01-09 00:50:29 +01:00
parent 4026e7b7de
commit 19be7225cc
5 changed files with 26 additions and 2 deletions

View File

@ -250,6 +250,8 @@ namespace cryptonote
//----------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------
bool core::init(const boost::program_options::variables_map& vm, const cryptonote::test_options *test_options) bool core::init(const boost::program_options::variables_map& vm, const cryptonote::test_options *test_options)
{ {
start_time = std::time(nullptr);
m_fakechain = test_options != NULL; m_fakechain = test_options != NULL;
bool r = handle_command_line(vm); bool r = handle_command_line(vm);
@ -1010,6 +1012,11 @@ namespace cryptonote
return m_target_blockchain_height; return m_target_blockchain_height;
} }
//----------------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------------
std::time_t core::get_start_time() const
{
return start_time;
}
//-----------------------------------------------------------------------------------------------
void core::graceful_exit() void core::graceful_exit()
{ {
raise(SIGTERM); raise(SIGTERM);

View File

@ -559,6 +559,12 @@ namespace cryptonote
*/ */
uint64_t get_target_blockchain_height() const; uint64_t get_target_blockchain_height() const;
/**
* @brief gets start_time
*
*/
std::time_t get_start_time() const;
/** /**
* @brief tells the Blockchain to update its checkpoints * @brief tells the Blockchain to update its checkpoints
* *
@ -813,6 +819,8 @@ namespace cryptonote
boost::interprocess::file_lock db_lock; //!< a lock object for a file lock in the db directory boost::interprocess::file_lock db_lock; //!< a lock object for a file lock in the db directory
size_t block_sync_size; size_t block_sync_size;
time_t start_time;
}; };
} }

View File

@ -363,7 +363,9 @@ bool t_rpc_command_executor::show_status() {
} }
} }
tools::success_msg_writer() << boost::format("Height: %llu/%llu (%.1f%%) on %s, %s, net hash %s, v%u%s, %s, %u+%u connections") std::time_t uptime = std::time(nullptr) - ires.start_time;
tools::success_msg_writer() << boost::format("Height: %llu/%llu (%.1f%%) on %s, %s, net hash %s, v%u%s, %s, %u+%u connections, uptime %uh %um %us")
% (unsigned long long)ires.height % (unsigned long long)ires.height
% (unsigned long long)(ires.target_height >= ires.height ? ires.target_height : ires.height) % (unsigned long long)(ires.target_height >= ires.height ? ires.target_height : ires.height)
% get_sync_percentage(ires) % get_sync_percentage(ires)
@ -374,6 +376,9 @@ bool t_rpc_command_executor::show_status() {
% get_fork_extra_info(hfres.earliest_height, ires.height, ires.target) % get_fork_extra_info(hfres.earliest_height, ires.height, ires.target)
% (hfres.state == cryptonote::HardFork::Ready ? "up to date" : hfres.state == cryptonote::HardFork::UpdateNeeded ? "update needed" : "out of date, likely forked") % (hfres.state == cryptonote::HardFork::Ready ? "up to date" : hfres.state == cryptonote::HardFork::UpdateNeeded ? "update needed" : "out of date, likely forked")
% (unsigned)ires.outgoing_connections_count % (unsigned)ires.incoming_connections_count % (unsigned)ires.outgoing_connections_count % (unsigned)ires.incoming_connections_count
% (unsigned int)floor(uptime / 3600.0)
% (unsigned int)floor(fmod(uptime, 3600.0) / 60.0)
% (unsigned int)fmod(uptime, 60.0)
; ;
return true; return true;

View File

@ -145,6 +145,7 @@ namespace cryptonote
res.cumulative_difficulty = m_core.get_blockchain_storage().get_db().get_block_cumulative_difficulty(res.height - 1); res.cumulative_difficulty = m_core.get_blockchain_storage().get_db().get_block_cumulative_difficulty(res.height - 1);
res.block_size_limit = m_core.get_blockchain_storage().get_current_cumulative_blocksize_limit(); res.block_size_limit = m_core.get_blockchain_storage().get_current_cumulative_blocksize_limit();
res.status = CORE_RPC_STATUS_OK; res.status = CORE_RPC_STATUS_OK;
res.start_time = (uint64_t)m_core.get_start_time();
return true; return true;
} }
//------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------
@ -1165,6 +1166,7 @@ namespace cryptonote
res.cumulative_difficulty = m_core.get_blockchain_storage().get_db().get_block_cumulative_difficulty(res.height - 1); res.cumulative_difficulty = m_core.get_blockchain_storage().get_db().get_block_cumulative_difficulty(res.height - 1);
res.block_size_limit = m_core.get_blockchain_storage().get_current_cumulative_blocksize_limit(); res.block_size_limit = m_core.get_blockchain_storage().get_current_cumulative_blocksize_limit();
res.status = CORE_RPC_STATUS_OK; res.status = CORE_RPC_STATUS_OK;
res.start_time = (uint64_t)m_core.get_start_time();
return true; return true;
} }
//------------------------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------------------------

View File

@ -49,7 +49,7 @@ namespace cryptonote
// advance which version they will stop working with // advance which version they will stop working with
// Don't go over 32767 for any of these // Don't go over 32767 for any of these
#define CORE_RPC_VERSION_MAJOR 1 #define CORE_RPC_VERSION_MAJOR 1
#define CORE_RPC_VERSION_MINOR 3 #define CORE_RPC_VERSION_MINOR 4
#define CORE_RPC_VERSION (((CORE_RPC_VERSION_MAJOR)<<16)|(CORE_RPC_VERSION_MINOR)) #define CORE_RPC_VERSION (((CORE_RPC_VERSION_MAJOR)<<16)|(CORE_RPC_VERSION_MINOR))
struct COMMAND_RPC_GET_HEIGHT struct COMMAND_RPC_GET_HEIGHT
@ -513,6 +513,7 @@ namespace cryptonote
std::string top_block_hash; std::string top_block_hash;
uint64_t cumulative_difficulty; uint64_t cumulative_difficulty;
uint64_t block_size_limit; uint64_t block_size_limit;
uint64_t start_time;
BEGIN_KV_SERIALIZE_MAP() BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(status) KV_SERIALIZE(status)
@ -531,6 +532,7 @@ namespace cryptonote
KV_SERIALIZE(top_block_hash) KV_SERIALIZE(top_block_hash)
KV_SERIALIZE(cumulative_difficulty) KV_SERIALIZE(cumulative_difficulty)
KV_SERIALIZE(block_size_limit) KV_SERIALIZE(block_size_limit)
KV_SERIALIZE(start_time)
END_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP()
}; };
}; };