rpc: limit the number of txes for get_blocks.bin

This commit is contained in:
moneromooo-monero 2020-12-29 04:31:58 +00:00
parent 2bccbeecb3
commit 1eb14af1a3
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
11 changed files with 32 additions and 22 deletions

View file

@ -565,12 +565,12 @@ namespace cryptonote
}
}
size_t max_blocks = COMMAND_RPC_GET_BLOCKS_FAST_MAX_COUNT;
size_t max_blocks = COMMAND_RPC_GET_BLOCKS_FAST_MAX_BLOCK_COUNT;
if (m_rpc_payment)
{
max_blocks = res.credits / COST_PER_BLOCK;
if (max_blocks > COMMAND_RPC_GET_BLOCKS_FAST_MAX_COUNT)
max_blocks = COMMAND_RPC_GET_BLOCKS_FAST_MAX_COUNT;
if (max_blocks > COMMAND_RPC_GET_BLOCKS_FAST_MAX_BLOCK_COUNT)
max_blocks = COMMAND_RPC_GET_BLOCKS_FAST_MAX_BLOCK_COUNT;
if (max_blocks == 0)
{
res.status = CORE_RPC_STATUS_PAYMENT_REQUIRED;
@ -579,7 +579,7 @@ namespace cryptonote
}
std::vector<std::pair<std::pair<cryptonote::blobdata, crypto::hash>, std::vector<std::pair<crypto::hash, cryptonote::blobdata> > > > bs;
if(!m_core.find_blockchain_supplement(req.start_height, req.block_ids, bs, res.current_height, res.start_height, req.prune, !req.no_miner_tx, max_blocks))
if(!m_core.find_blockchain_supplement(req.start_height, req.block_ids, bs, res.current_height, res.start_height, req.prune, !req.no_miner_tx, max_blocks, COMMAND_RPC_GET_BLOCKS_FAST_MAX_TX_COUNT))
{
res.status = "Failed";
add_host_fail(ctx);