mirror of
https://github.com/monero-project/monero.git
synced 2025-12-31 15:06:11 -08:00
Merge pull request #2149
158c3ecfcore: thread most of handle_incoming_tx (moneromooo-monero)f57ee382cryptonote_protocol: retry stale spans early (moneromooo-monero)90df52e1cryptonote_protocol: light cleanup (moneromooo-monero)84e23156cryptonote_protocol: avoid spurious SYNCHRONIZED OK messages (moneromooo-monero)5be43fcdcryptonote_protocol_handler: sync speedup (moneromooo-monero)
This commit is contained in:
@@ -1690,6 +1690,41 @@ namespace cryptonote
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
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)
|
||||
{
|
||||
if(!check_core_busy())
|
||||
{
|
||||
error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY;
|
||||
error_resp.message = "Core is busy.";
|
||||
return false;
|
||||
}
|
||||
|
||||
crypto::hash top_hash;
|
||||
if (!m_core.get_blockchain_top(res.height, top_hash))
|
||||
{
|
||||
res.status = "Failed";
|
||||
return false;
|
||||
}
|
||||
++res.height; // turn top block height into blockchain height
|
||||
res.target_height = m_core.get_target_blockchain_height();
|
||||
|
||||
for (const auto &c: m_p2p.get_payload_object().get_connections())
|
||||
res.peers.push_back({c});
|
||||
const cryptonote::block_queue &block_queue = m_p2p.get_payload_object().get_block_queue();
|
||||
block_queue.foreach([&](const cryptonote::block_queue::span &span) {
|
||||
uint32_t speed = (uint32_t)(100.0f * block_queue.get_speed(span.connection_id) + 0.5f);
|
||||
std::string address = "";
|
||||
for (const auto &c: m_p2p.get_payload_object().get_connections())
|
||||
if (c.connection_id == span.connection_id)
|
||||
address = c.address;
|
||||
res.spans.push_back({span.start_block_height, span.nblocks, span.connection_id, (uint32_t)(span.rate + 0.5f), speed, span.size, address});
|
||||
return true;
|
||||
});
|
||||
|
||||
res.status = CORE_RPC_STATUS_OK;
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
const command_line::arg_descriptor<std::string> core_rpc_server::arg_rpc_bind_port = {
|
||||
"rpc-bind-port"
|
||||
|
||||
Reference in New Issue
Block a user