mirror of
https://github.com/monero-project/monero.git
synced 2024-11-17 08:17:37 +00:00
Merge pull request #8384
8460fcc
Revert 'Merge pull request #7937' (j-berman)
This commit is contained in:
commit
b54d5ae383
1 changed files with 14 additions and 36 deletions
|
@ -492,7 +492,6 @@ namespace cryptonote
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_PAYMENT_MIN1(req, res, COST_PER_GET_INFO, false);
|
CHECK_PAYMENT_MIN1(req, res, COST_PER_GET_INFO, false);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
|
|
||||||
const bool restricted = m_restricted && ctx;
|
const bool restricted = m_restricted && ctx;
|
||||||
|
|
||||||
|
@ -598,7 +597,6 @@ namespace cryptonote
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_PAYMENT(req, res, 1);
|
CHECK_PAYMENT(req, res, 1);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
|
|
||||||
// quick check for noop
|
// quick check for noop
|
||||||
if (!req.block_ids.empty())
|
if (!req.block_ids.empty())
|
||||||
|
@ -609,7 +607,7 @@ namespace cryptonote
|
||||||
if (last_block_hash == req.block_ids.front())
|
if (last_block_hash == req.block_ids.front())
|
||||||
{
|
{
|
||||||
res.start_height = 0;
|
res.start_height = 0;
|
||||||
res.current_height = last_block_height + 1;
|
res.current_height = m_core.get_current_blockchain_height();
|
||||||
res.status = CORE_RPC_STATUS_OK;
|
res.status = CORE_RPC_STATUS_OK;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -730,7 +728,6 @@ namespace cryptonote
|
||||||
res.blocks.clear();
|
res.blocks.clear();
|
||||||
res.blocks.reserve(req.heights.size());
|
res.blocks.reserve(req.heights.size());
|
||||||
CHECK_PAYMENT_MIN1(req, res, req.heights.size() * COST_PER_BLOCK, false);
|
CHECK_PAYMENT_MIN1(req, res, req.heights.size() * COST_PER_BLOCK, false);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
for (uint64_t height : req.heights)
|
for (uint64_t height : req.heights)
|
||||||
{
|
{
|
||||||
block blk;
|
block blk;
|
||||||
|
@ -1592,7 +1589,6 @@ namespace cryptonote
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
CHECK_PAYMENT(req, res, 1);
|
CHECK_PAYMENT(req, res, 1);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
|
|
||||||
const bool restricted = m_restricted && ctx;
|
const bool restricted = m_restricted && ctx;
|
||||||
const bool request_has_rpc_origin = ctx != NULL;
|
const bool request_has_rpc_origin = ctx != NULL;
|
||||||
|
@ -1617,7 +1613,6 @@ namespace cryptonote
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
CHECK_PAYMENT(req, res, 1);
|
CHECK_PAYMENT(req, res, 1);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
|
|
||||||
const bool restricted = m_restricted && ctx;
|
const bool restricted = m_restricted && ctx;
|
||||||
const bool request_has_rpc_origin = ctx != NULL;
|
const bool request_has_rpc_origin = ctx != NULL;
|
||||||
|
@ -1720,14 +1715,11 @@ namespace cryptonote
|
||||||
error_resp.message = "Wrong parameters, expected height";
|
error_resp.message = "Wrong parameters, expected height";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
uint64_t h = req[0];
|
uint64_t h = req[0];
|
||||||
uint64_t blockchain_height = m_core.get_current_blockchain_height();
|
if(m_core.get_current_blockchain_height() <= h)
|
||||||
if(blockchain_height <= h)
|
|
||||||
{
|
{
|
||||||
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
||||||
error_resp.message = std::string("Requested block height: ") + std::to_string(h) + " greater than current top block height: " + std::to_string(blockchain_height - 1);
|
error_resp.message = std::string("Requested block height: ") + std::to_string(h) + " greater than current top block height: " + std::to_string(m_core.get_current_blockchain_height() - 1);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
res = string_tools::pod_to_hex(m_core.get_block_id_by_height(h));
|
res = string_tools::pod_to_hex(m_core.get_block_id_by_height(h));
|
||||||
return true;
|
return true;
|
||||||
|
@ -1877,7 +1869,6 @@ namespace cryptonote
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
crypto::hash seed_hash, next_seed_hash;
|
crypto::hash seed_hash, next_seed_hash;
|
||||||
if (!get_block_template(info.address, req.prev_block.empty() ? NULL : &prev_block, blob_reserve, reserved_offset, wdiff, res.height, res.expected_reward, b, res.seed_height, seed_hash, next_seed_hash, error_resp))
|
if (!get_block_template(info.address, req.prev_block.empty() ? NULL : &prev_block, blob_reserve, reserved_offset, wdiff, res.height, res.expected_reward, b, res.seed_height, seed_hash, next_seed_hash, error_resp))
|
||||||
return false;
|
return false;
|
||||||
|
@ -2351,7 +2342,6 @@ namespace cryptonote
|
||||||
|
|
||||||
CHECK_CORE_READY();
|
CHECK_CORE_READY();
|
||||||
CHECK_PAYMENT_MIN1(req, res, COST_PER_BLOCK_HEADER, false);
|
CHECK_PAYMENT_MIN1(req, res, COST_PER_BLOCK_HEADER, false);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
uint64_t last_block_height;
|
uint64_t last_block_height;
|
||||||
crypto::hash last_block_hash;
|
crypto::hash last_block_hash;
|
||||||
m_core.get_blockchain_top(last_block_height, last_block_hash);
|
m_core.get_blockchain_top(last_block_height, last_block_hash);
|
||||||
|
@ -2392,8 +2382,6 @@ namespace cryptonote
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
|
|
||||||
auto get = [this](const std::string &hash, bool fill_pow_hash, block_header_response &block_header, bool restricted, epee::json_rpc::error& error_resp) -> bool {
|
auto get = [this](const std::string &hash, bool fill_pow_hash, block_header_response &block_header, bool restricted, epee::json_rpc::error& error_resp) -> bool {
|
||||||
crypto::hash block_hash;
|
crypto::hash block_hash;
|
||||||
bool hash_parsed = parse_hash256(hash, block_hash);
|
bool hash_parsed = parse_hash256(hash, block_hash);
|
||||||
|
@ -2453,6 +2441,13 @@ namespace cryptonote
|
||||||
if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK_HEADERS_RANGE>(invoke_http_mode::JON_RPC, "getblockheadersrange", req, res, r))
|
if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK_HEADERS_RANGE>(invoke_http_mode::JON_RPC, "getblockheadersrange", req, res, r))
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
const uint64_t bc_height = m_core.get_current_blockchain_height();
|
||||||
|
if (req.start_height >= bc_height || req.end_height >= bc_height || req.start_height > req.end_height)
|
||||||
|
{
|
||||||
|
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
||||||
|
error_resp.message = "Invalid start/end heights.";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
const bool restricted = m_restricted && ctx;
|
const bool restricted = m_restricted && ctx;
|
||||||
if (restricted && req.end_height - req.start_height > RESTRICTED_BLOCK_HEADER_RANGE)
|
if (restricted && req.end_height - req.start_height > RESTRICTED_BLOCK_HEADER_RANGE)
|
||||||
{
|
{
|
||||||
|
@ -2462,16 +2457,6 @@ namespace cryptonote
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_PAYMENT_MIN1(req, res, (req.end_height - req.start_height + 1) * COST_PER_BLOCK_HEADER, false);
|
CHECK_PAYMENT_MIN1(req, res, (req.end_height - req.start_height + 1) * COST_PER_BLOCK_HEADER, false);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
|
|
||||||
const uint64_t bc_height = m_core.get_current_blockchain_height();
|
|
||||||
if (req.start_height >= bc_height || req.end_height >= bc_height || req.start_height > req.end_height)
|
|
||||||
{
|
|
||||||
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
|
||||||
error_resp.message = "Invalid start/end heights.";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (uint64_t h = req.start_height; h <= req.end_height; ++h)
|
for (uint64_t h = req.start_height; h <= req.end_height; ++h)
|
||||||
{
|
{
|
||||||
crypto::hash block_hash = m_core.get_block_id_by_height(h);
|
crypto::hash block_hash = m_core.get_block_id_by_height(h);
|
||||||
|
@ -2516,12 +2501,10 @@ namespace cryptonote
|
||||||
if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT>(invoke_http_mode::JON_RPC, "getblockheaderbyheight", req, res, r))
|
if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT>(invoke_http_mode::JON_RPC, "getblockheaderbyheight", req, res, r))
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
if(m_core.get_current_blockchain_height() <= req.height)
|
||||||
uint64_t blockchain_height = m_core.get_current_blockchain_height();
|
|
||||||
if(blockchain_height <= req.height)
|
|
||||||
{
|
{
|
||||||
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
||||||
error_resp.message = std::string("Requested block height: ") + std::to_string(req.height) + " greater than current top block height: " + std::to_string(blockchain_height - 1);
|
error_resp.message = std::string("Requested block height: ") + std::to_string(req.height) + " greater than current top block height: " + std::to_string(m_core.get_current_blockchain_height() - 1);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
CHECK_PAYMENT_MIN1(req, res, COST_PER_BLOCK_HEADER, false);
|
CHECK_PAYMENT_MIN1(req, res, COST_PER_BLOCK_HEADER, false);
|
||||||
|
@ -2554,7 +2537,6 @@ namespace cryptonote
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
CHECK_PAYMENT_MIN1(req, res, COST_PER_BLOCK, false);
|
CHECK_PAYMENT_MIN1(req, res, COST_PER_BLOCK, false);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
|
|
||||||
crypto::hash block_hash;
|
crypto::hash block_hash;
|
||||||
if (!req.hash.empty())
|
if (!req.hash.empty())
|
||||||
|
@ -2569,11 +2551,10 @@ namespace cryptonote
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint64_t blockchain_height = m_core.get_current_blockchain_height();
|
if(m_core.get_current_blockchain_height() <= req.height)
|
||||||
if(blockchain_height <= req.height)
|
|
||||||
{
|
{
|
||||||
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT;
|
||||||
error_resp.message = std::string("Requested block height: ") + std::to_string(req.height) + " greater than current top block height: " + std::to_string(blockchain_height - 1);
|
error_resp.message = std::string("Requested block height: ") + std::to_string(req.height) + " greater than current top block height: " + std::to_string(m_core.get_current_blockchain_height() - 1);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
block_hash = m_core.get_block_id_by_height(req.height);
|
block_hash = m_core.get_block_id_by_height(req.height);
|
||||||
|
@ -2881,7 +2862,6 @@ 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, const connection_context *ctx)
|
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, const connection_context *ctx)
|
||||||
{
|
{
|
||||||
RPC_TRACKER(get_coinbase_tx_sum);
|
RPC_TRACKER(get_coinbase_tx_sum);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
const uint64_t bc_height = m_core.get_current_blockchain_height();
|
const uint64_t bc_height = m_core.get_current_blockchain_height();
|
||||||
if (req.height >= bc_height || req.count > bc_height)
|
if (req.height >= bc_height || req.count > bc_height)
|
||||||
{
|
{
|
||||||
|
@ -2923,7 +2903,6 @@ 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, const connection_context *ctx)
|
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, const connection_context *ctx)
|
||||||
{
|
{
|
||||||
RPC_TRACKER(get_alternate_chains);
|
RPC_TRACKER(get_alternate_chains);
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
std::vector<std::pair<Blockchain::block_extended_info, std::vector<crypto::hash>>> chains = m_core.get_blockchain_storage().get_alternative_chains();
|
std::vector<std::pair<Blockchain::block_extended_info, std::vector<crypto::hash>>> chains = m_core.get_blockchain_storage().get_alternative_chains();
|
||||||
|
@ -3226,7 +3205,6 @@ namespace cryptonote
|
||||||
bool r;
|
bool r;
|
||||||
if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG>(invoke_http_mode::JON_RPC, "get_txpool_backlog", req, res, r))
|
if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG>(invoke_http_mode::JON_RPC, "get_txpool_backlog", req, res, r))
|
||||||
return r;
|
return r;
|
||||||
db_rtxn_guard rtxn_guard(&m_core.get_blockchain_storage().get_db());
|
|
||||||
size_t n_txes = m_core.get_pool_transactions_count();
|
size_t n_txes = m_core.get_pool_transactions_count();
|
||||||
CHECK_PAYMENT_MIN1(req, res, COST_PER_TX_POOL_STATS * n_txes, false);
|
CHECK_PAYMENT_MIN1(req, res, COST_PER_TX_POOL_STATS * n_txes, false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue