Merge pull request #2738
4a17f0c2
rpc: add performance timers (moneromooo-monero)
This commit is contained in:
commit
e0e6e375bb
|
@ -36,6 +36,7 @@ using namespace epee;
|
|||
#include "common/updates.h"
|
||||
#include "common/download.h"
|
||||
#include "common/util.h"
|
||||
#include "common/perf_timer.h"
|
||||
#include "cryptonote_basic/cryptonote_format_utils.h"
|
||||
#include "cryptonote_basic/account.h"
|
||||
#include "cryptonote_basic/cryptonote_basic_impl.h"
|
||||
|
@ -128,6 +129,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_height(const COMMAND_RPC_GET_HEIGHT::request& req, COMMAND_RPC_GET_HEIGHT::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_height);
|
||||
CHECK_CORE_BUSY();
|
||||
res.height = m_core.get_current_blockchain_height();
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
|
@ -136,6 +138,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_info(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_info);
|
||||
CHECK_CORE_BUSY();
|
||||
crypto::hash top_hash;
|
||||
m_core.get_blockchain_top(res.height, top_hash);
|
||||
|
@ -179,6 +182,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_blocks(const COMMAND_RPC_GET_BLOCKS_FAST::request& req, COMMAND_RPC_GET_BLOCKS_FAST::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_blocks);
|
||||
CHECK_CORE_BUSY();
|
||||
std::list<std::pair<cryptonote::blobdata, std::list<cryptonote::blobdata> > > bs;
|
||||
|
||||
|
@ -238,6 +242,7 @@ namespace cryptonote
|
|||
}
|
||||
bool core_rpc_server::on_get_alt_blocks_hashes(const COMMAND_RPC_GET_ALT_BLOCKS_HASHES::request& req, COMMAND_RPC_GET_ALT_BLOCKS_HASHES::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_alt_blocks_hashes);
|
||||
CHECK_CORE_BUSY();
|
||||
std::list<block> blks;
|
||||
|
||||
|
@ -261,6 +266,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_blocks_by_height(const COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::request& req, COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_blocks_by_height);
|
||||
CHECK_CORE_BUSY();
|
||||
res.status = "Failed";
|
||||
res.blocks.clear();
|
||||
|
@ -291,6 +297,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_hashes(const COMMAND_RPC_GET_HASHES_FAST::request& req, COMMAND_RPC_GET_HASHES_FAST::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_hashes);
|
||||
CHECK_CORE_BUSY();
|
||||
NOTIFY_RESPONSE_CHAIN_ENTRY::request resp;
|
||||
|
||||
|
@ -310,6 +317,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_random_outs(const COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS::request& req, COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_random_outs);
|
||||
CHECK_CORE_BUSY();
|
||||
res.status = "Failed";
|
||||
|
||||
|
@ -349,6 +357,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_outs_bin(const COMMAND_RPC_GET_OUTPUTS_BIN::request& req, COMMAND_RPC_GET_OUTPUTS_BIN::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_outs_bin);
|
||||
CHECK_CORE_BUSY();
|
||||
res.status = "Failed";
|
||||
|
||||
|
@ -372,6 +381,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_outs(const COMMAND_RPC_GET_OUTPUTS::request& req, COMMAND_RPC_GET_OUTPUTS::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_outs);
|
||||
CHECK_CORE_BUSY();
|
||||
res.status = "Failed";
|
||||
|
||||
|
@ -410,6 +420,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_random_rct_outs(const COMMAND_RPC_GET_RANDOM_RCT_OUTPUTS::request& req, COMMAND_RPC_GET_RANDOM_RCT_OUTPUTS::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_random_rct_outs);
|
||||
CHECK_CORE_BUSY();
|
||||
res.status = "Failed";
|
||||
if(!m_core.get_random_rct_outs(req, res))
|
||||
|
@ -434,6 +445,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_indexes(const COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::request& req, COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_indexes);
|
||||
CHECK_CORE_BUSY();
|
||||
bool r = m_core.get_tx_outputs_gindexs(req.txid, res.o_indexes);
|
||||
if(!r)
|
||||
|
@ -448,6 +460,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_transactions(const COMMAND_RPC_GET_TRANSACTIONS::request& req, COMMAND_RPC_GET_TRANSACTIONS::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_transactions);
|
||||
CHECK_CORE_BUSY();
|
||||
std::vector<crypto::hash> vh;
|
||||
for(const auto& tx_hex_str: req.txs_hashes)
|
||||
|
@ -593,6 +606,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_is_key_image_spent(const COMMAND_RPC_IS_KEY_IMAGE_SPENT::request& req, COMMAND_RPC_IS_KEY_IMAGE_SPENT::response& res, bool request_has_rpc_origin)
|
||||
{
|
||||
PERF_TIMER(on_is_key_image_spent);
|
||||
CHECK_CORE_BUSY();
|
||||
std::vector<crypto::key_image> key_images;
|
||||
for(const auto& ki_hex_str: req.key_images)
|
||||
|
@ -656,6 +670,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_send_raw_tx(const COMMAND_RPC_SEND_RAW_TX::request& req, COMMAND_RPC_SEND_RAW_TX::response& res)
|
||||
{
|
||||
PERF_TIMER(on_send_raw_tx);
|
||||
CHECK_CORE_READY();
|
||||
|
||||
std::string tx_blob;
|
||||
|
@ -719,6 +734,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_start_mining(const COMMAND_RPC_START_MINING::request& req, COMMAND_RPC_START_MINING::response& res)
|
||||
{
|
||||
PERF_TIMER(on_start_mining);
|
||||
CHECK_CORE_READY();
|
||||
cryptonote::address_parse_info info;
|
||||
if(!get_account_address_from_str(info, m_testnet, req.miner_address))
|
||||
|
@ -766,6 +782,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_stop_mining(const COMMAND_RPC_STOP_MINING::request& req, COMMAND_RPC_STOP_MINING::response& res)
|
||||
{
|
||||
PERF_TIMER(on_stop_mining);
|
||||
if(!m_core.get_miner().stop())
|
||||
{
|
||||
res.status = "Failed, mining not stopped";
|
||||
|
@ -778,6 +795,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_mining_status(const COMMAND_RPC_MINING_STATUS::request& req, COMMAND_RPC_MINING_STATUS::response& res)
|
||||
{
|
||||
PERF_TIMER(on_mining_status);
|
||||
CHECK_CORE_BUSY();
|
||||
|
||||
const miner& lMiner = m_core.get_miner();
|
||||
|
@ -797,6 +815,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_save_bc(const COMMAND_RPC_SAVE_BC::request& req, COMMAND_RPC_SAVE_BC::response& res)
|
||||
{
|
||||
PERF_TIMER(on_save_bc);
|
||||
CHECK_CORE_BUSY();
|
||||
if( !m_core.get_blockchain_storage().store_blockchain() )
|
||||
{
|
||||
|
@ -809,6 +828,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_peer_list(const COMMAND_RPC_GET_PEER_LIST::request& req, COMMAND_RPC_GET_PEER_LIST::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_peer_list);
|
||||
std::list<nodetool::peerlist_entry> white_list;
|
||||
std::list<nodetool::peerlist_entry> gray_list;
|
||||
m_p2p.get_peerlist_manager().get_peerlist_full(gray_list, white_list);
|
||||
|
@ -838,6 +858,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_set_log_hash_rate(const COMMAND_RPC_SET_LOG_HASH_RATE::request& req, COMMAND_RPC_SET_LOG_HASH_RATE::response& res)
|
||||
{
|
||||
PERF_TIMER(on_set_log_hash_rate);
|
||||
if(m_core.get_miner().is_mining())
|
||||
{
|
||||
m_core.get_miner().do_print_hashrate(req.visible);
|
||||
|
@ -852,6 +873,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_set_log_level(const COMMAND_RPC_SET_LOG_LEVEL::request& req, COMMAND_RPC_SET_LOG_LEVEL::response& res)
|
||||
{
|
||||
PERF_TIMER(on_set_log_level);
|
||||
if (req.level < 0 || req.level > 4)
|
||||
{
|
||||
res.status = "Error: log level not valid";
|
||||
|
@ -864,6 +886,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_set_log_categories(const COMMAND_RPC_SET_LOG_CATEGORIES::request& req, COMMAND_RPC_SET_LOG_CATEGORIES::response& res)
|
||||
{
|
||||
PERF_TIMER(on_set_log_categories);
|
||||
mlog_set_log(req.categories.c_str());
|
||||
res.categories = mlog_get_categories();
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
|
@ -872,6 +895,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_transaction_pool(const COMMAND_RPC_GET_TRANSACTION_POOL::request& req, COMMAND_RPC_GET_TRANSACTION_POOL::response& res, bool request_has_rpc_origin)
|
||||
{
|
||||
PERF_TIMER(on_get_transaction_pool);
|
||||
CHECK_CORE_BUSY();
|
||||
m_core.get_pool_transactions_and_spent_keys_info(res.transactions, res.spent_key_images, !request_has_rpc_origin || !m_restricted);
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
|
@ -880,6 +904,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_transaction_pool_hashes(const COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::request& req, COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::response& res, bool request_has_rpc_origin)
|
||||
{
|
||||
PERF_TIMER(on_get_transaction_pool_hashes);
|
||||
CHECK_CORE_BUSY();
|
||||
m_core.get_pool_transaction_hashes(res.tx_hashes, !request_has_rpc_origin || !m_restricted);
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
|
@ -888,6 +913,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_transaction_pool_stats(const COMMAND_RPC_GET_TRANSACTION_POOL_STATS::request& req, COMMAND_RPC_GET_TRANSACTION_POOL_STATS::response& res, bool request_has_rpc_origin)
|
||||
{
|
||||
PERF_TIMER(on_get_transaction_pool_stats);
|
||||
CHECK_CORE_BUSY();
|
||||
m_core.get_pool_transaction_stats(res.pool_stats, !request_has_rpc_origin || !m_restricted);
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
|
@ -896,6 +922,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_stop_daemon(const COMMAND_RPC_STOP_DAEMON::request& req, COMMAND_RPC_STOP_DAEMON::response& res)
|
||||
{
|
||||
PERF_TIMER(on_stop_daemon);
|
||||
// FIXME: replace back to original m_p2p.send_stop_signal() after
|
||||
// investigating why that isn't working quite right.
|
||||
m_p2p.send_stop_signal();
|
||||
|
@ -905,6 +932,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_getblockcount(const COMMAND_RPC_GETBLOCKCOUNT::request& req, COMMAND_RPC_GETBLOCKCOUNT::response& res)
|
||||
{
|
||||
PERF_TIMER(on_getblockcount);
|
||||
CHECK_CORE_BUSY();
|
||||
res.count = m_core.get_current_blockchain_height();
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
|
@ -913,6 +941,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_getblockhash(const COMMAND_RPC_GETBLOCKHASH::request& req, COMMAND_RPC_GETBLOCKHASH::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_getblockhash);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -954,6 +983,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_getblocktemplate(const COMMAND_RPC_GETBLOCKTEMPLATE::request& req, COMMAND_RPC_GETBLOCKTEMPLATE::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_getblocktemplate);
|
||||
if(!check_core_ready())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1028,6 +1058,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_submitblock(const COMMAND_RPC_SUBMITBLOCK::request& req, COMMAND_RPC_SUBMITBLOCK::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_submitblock);
|
||||
CHECK_CORE_READY();
|
||||
if(req.size()!=1)
|
||||
{
|
||||
|
@ -1084,6 +1115,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::fill_block_header_response(const block& blk, bool orphan_status, uint64_t height, const crypto::hash& hash, block_header_response& response)
|
||||
{
|
||||
PERF_TIMER(fill_block_header_response);
|
||||
response.major_version = blk.major_version;
|
||||
response.minor_version = blk.minor_version;
|
||||
response.timestamp = blk.timestamp;
|
||||
|
@ -1102,6 +1134,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_last_block_header(const COMMAND_RPC_GET_LAST_BLOCK_HEADER::request& req, COMMAND_RPC_GET_LAST_BLOCK_HEADER::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_last_block_header);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1131,6 +1164,7 @@ namespace cryptonote
|
|||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_block_header_by_hash(const COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::request& req, COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::response& res, epee::json_rpc::error& error_resp){
|
||||
PERF_TIMER(on_get_block_header_by_hash);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1173,6 +1207,7 @@ namespace cryptonote
|
|||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_block_headers_range(const COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::request& req, COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::response& res, epee::json_rpc::error& error_resp){
|
||||
PERF_TIMER(on_get_block_headers_range);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1224,6 +1259,7 @@ namespace cryptonote
|
|||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_block_header_by_height(const COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::request& req, COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::response& res, epee::json_rpc::error& error_resp){
|
||||
PERF_TIMER(on_get_block_header_by_height);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1257,6 +1293,7 @@ namespace cryptonote
|
|||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_block(const COMMAND_RPC_GET_BLOCK::request& req, COMMAND_RPC_GET_BLOCK::response& res, epee::json_rpc::error& error_resp){
|
||||
PERF_TIMER(on_get_block);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1320,6 +1357,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_connections(const COMMAND_RPC_GET_CONNECTIONS::request& req, COMMAND_RPC_GET_CONNECTIONS::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_connections);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1336,6 +1374,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_info_json(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_info_json);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1368,6 +1407,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_hard_fork_info(const COMMAND_RPC_HARD_FORK_INFO::request& req, COMMAND_RPC_HARD_FORK_INFO::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_hard_fork_info);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1386,6 +1426,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_bans(const COMMAND_RPC_GETBANS::request& req, COMMAND_RPC_GETBANS::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_bans);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1415,6 +1456,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_set_bans(const COMMAND_RPC_SETBANS::request& req, COMMAND_RPC_SETBANS::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_set_bans);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1450,6 +1492,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_flush_txpool(const COMMAND_RPC_FLUSH_TRANSACTION_POOL::request& req, COMMAND_RPC_FLUSH_TRANSACTION_POOL::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_flush_txpool);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1504,6 +1547,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_output_histogram(const COMMAND_RPC_GET_OUTPUT_HISTOGRAM::request& req, COMMAND_RPC_GET_OUTPUT_HISTOGRAM::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_output_histogram);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1536,6 +1580,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_version(const COMMAND_RPC_GET_VERSION::request& req, COMMAND_RPC_GET_VERSION::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_version);
|
||||
res.version = CORE_RPC_VERSION;
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
return true;
|
||||
|
@ -1543,6 +1588,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_coinbase_tx_sum(const COMMAND_RPC_GET_COINBASE_TX_SUM::request& req, COMMAND_RPC_GET_COINBASE_TX_SUM::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_coinbase_tx_sum);
|
||||
std::pair<uint64_t, uint64_t> amounts = m_core.get_coinbase_tx_sum(req.height, req.count);
|
||||
res.emission_amount = amounts.first;
|
||||
res.fee_amount = amounts.second;
|
||||
|
@ -1552,6 +1598,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_per_kb_fee_estimate(const COMMAND_RPC_GET_PER_KB_FEE_ESTIMATE::request& req, COMMAND_RPC_GET_PER_KB_FEE_ESTIMATE::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_per_kb_fee_estimate);
|
||||
res.fee = m_core.get_blockchain_storage().get_dynamic_per_kb_fee_estimate(req.grace_blocks);
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
return true;
|
||||
|
@ -1559,6 +1606,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_alternate_chains(const COMMAND_RPC_GET_ALTERNATE_CHAINS::request& req, COMMAND_RPC_GET_ALTERNATE_CHAINS::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_alternate_chains);
|
||||
try
|
||||
{
|
||||
std::list<std::pair<Blockchain::block_extended_info, uint64_t>> chains = m_core.get_blockchain_storage().get_alternative_chains();
|
||||
|
@ -1577,6 +1625,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_limit(const COMMAND_RPC_GET_LIMIT::request& req, COMMAND_RPC_GET_LIMIT::response& res)
|
||||
{
|
||||
PERF_TIMER(on_get_limit);
|
||||
res.limit_down = epee::net_utils::connection_basic::get_rate_down_limit();
|
||||
res.limit_up = epee::net_utils::connection_basic::get_rate_up_limit();
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
|
@ -1585,6 +1634,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_set_limit(const COMMAND_RPC_SET_LIMIT::request& req, COMMAND_RPC_SET_LIMIT::response& res)
|
||||
{
|
||||
PERF_TIMER(on_set_limit);
|
||||
// -1 = reset to default
|
||||
// 0 = do not modify
|
||||
|
||||
|
@ -1624,6 +1674,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_out_peers(const COMMAND_RPC_OUT_PEERS::request& req, COMMAND_RPC_OUT_PEERS::response& res)
|
||||
{
|
||||
PERF_TIMER(on_out_peers);
|
||||
size_t n_connections = m_p2p.get_outgoing_connections_count();
|
||||
size_t n_delete = (n_connections > req.out_peers) ? n_connections - req.out_peers : 0;
|
||||
m_p2p.m_config.m_net_config.connections_count = req.out_peers;
|
||||
|
@ -1635,6 +1686,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_start_save_graph(const COMMAND_RPC_START_SAVE_GRAPH::request& req, COMMAND_RPC_START_SAVE_GRAPH::response& res)
|
||||
{
|
||||
PERF_TIMER(on_start_save_graph);
|
||||
m_p2p.set_save_graph(true);
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
return true;
|
||||
|
@ -1642,6 +1694,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_stop_save_graph(const COMMAND_RPC_STOP_SAVE_GRAPH::request& req, COMMAND_RPC_STOP_SAVE_GRAPH::response& res)
|
||||
{
|
||||
PERF_TIMER(on_stop_save_graph);
|
||||
m_p2p.set_save_graph(false);
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
return true;
|
||||
|
@ -1649,6 +1702,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_update(const COMMAND_RPC_UPDATE::request& req, COMMAND_RPC_UPDATE::response& res)
|
||||
{
|
||||
PERF_TIMER(on_update);
|
||||
static const char software[] = "monero";
|
||||
#ifdef BUILD_TAG
|
||||
static const char buildtag[] = BOOST_PP_STRINGIZE(BUILD_TAG);
|
||||
|
@ -1743,6 +1797,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_relay_tx(const COMMAND_RPC_RELAY_TX::request& req, COMMAND_RPC_RELAY_TX::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_relay_tx);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1789,6 +1844,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_sync_info(const COMMAND_RPC_SYNC_INFO::request& req, COMMAND_RPC_SYNC_INFO::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_sync_info);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
@ -1820,6 +1876,7 @@ namespace cryptonote
|
|||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
bool core_rpc_server::on_get_txpool_backlog(const COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::request& req, COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::response& res, epee::json_rpc::error& error_resp)
|
||||
{
|
||||
PERF_TIMER(on_get_txpool_backlog);
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
|
|
Loading…
Reference in New Issue