Merge pull request #5502

25a7cfd add a few checks where it seems appropriate (moneromooo-monero)
1a66a86 remove unused code (moneromooo-monero)
This commit is contained in:
luigi1111 2019-07-24 13:57:06 -05:00
commit e3de4aa68b
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010
13 changed files with 10 additions and 15 deletions

View File

@ -707,7 +707,7 @@ uint64_t BlockchainLMDB::get_estimated_batch_size(uint64_t batch_num_blocks, uin
++num_blocks_used; ++num_blocks_used;
} }
if (my_rtxn) block_rtxn_stop(); if (my_rtxn) block_rtxn_stop();
avg_block_size = total_block_size / num_blocks_used; avg_block_size = total_block_size / (num_blocks_used ? num_blocks_used : 1);
MDEBUG("average block size across recent " << num_blocks_used << " blocks: " << avg_block_size); MDEBUG("average block size across recent " << num_blocks_used << " blocks: " << avg_block_size);
} }
estim: estim:

View File

@ -637,6 +637,7 @@ static void inc_per_amount_outputs(MDB_txn *txn, uint64_t amount, uint64_t total
v.mv_size = 2 * sizeof(uint64_t); v.mv_size = 2 * sizeof(uint64_t);
v.mv_data = (void*)data; v.mv_data = (void*)data;
dbr = mdb_cursor_put(cur, &k, &v, 0); dbr = mdb_cursor_put(cur, &k, &v, 0);
CHECK_AND_ASSERT_THROW_MES(!dbr, "Failed to write record for per amount outputs: " + std::string(mdb_strerror(dbr)));
mdb_cursor_close(cur); mdb_cursor_close(cur);
} }

View File

@ -897,7 +897,6 @@ void cn_slow_hash(const void *data, size_t length, char *hash, int variant, int
// locals to avoid constant TLS dereferencing // locals to avoid constant TLS dereferencing
uint8_t *local_hp_state = hp_state; uint8_t *local_hp_state = hp_state;
v4_random_math_JIT_func local_hp_jitfunc = hp_jitfunc;
/* CryptoNight Step 1: Use Keccak1600 to initialize the 'state' (and 'text') buffers from the data. */ /* CryptoNight Step 1: Use Keccak1600 to initialize the 'state' (and 'text') buffers from the data. */
if (prehashed) { if (prehashed) {

View File

@ -2039,7 +2039,6 @@ bool Blockchain::get_output_distribution(uint64_t amount, uint64_t from_height,
if (to_height > 0 && to_height < from_height) if (to_height > 0 && to_height < from_height)
return false; return false;
const uint64_t real_start_height = start_height;
if (from_height > start_height) if (from_height > start_height)
start_height = from_height; start_height = from_height;
@ -2053,7 +2052,7 @@ bool Blockchain::get_output_distribution(uint64_t amount, uint64_t from_height,
{ {
std::vector<uint64_t> heights; std::vector<uint64_t> heights;
heights.reserve(to_height + 1 - start_height); heights.reserve(to_height + 1 - start_height);
uint64_t real_start_height = start_height > 0 ? start_height-1 : start_height; const uint64_t real_start_height = start_height > 0 ? start_height-1 : start_height;
for (uint64_t h = real_start_height; h <= to_height; ++h) for (uint64_t h = real_start_height; h <= to_height; ++h)
heights.push_back(h); heights.push_back(h);
distribution = m_db->get_block_cumulative_rct_outputs(heights); distribution = m_db->get_block_cumulative_rct_outputs(heights);
@ -3254,7 +3253,6 @@ uint64_t Blockchain::get_dynamic_base_fee(uint64_t block_reward, size_t median_b
bool Blockchain::check_fee(size_t tx_weight, uint64_t fee) const bool Blockchain::check_fee(size_t tx_weight, uint64_t fee) const
{ {
const uint8_t version = get_current_hard_fork_version(); const uint8_t version = get_current_hard_fork_version();
const uint64_t blockchain_height = m_db->height();
uint64_t median = 0; uint64_t median = 0;
uint64_t already_generated_coins = 0; uint64_t already_generated_coins = 0;
@ -3962,14 +3960,12 @@ bool Blockchain::update_next_cumulative_weight_limit(uint64_t *long_term_effecti
const uint64_t db_height = m_db->height(); const uint64_t db_height = m_db->height();
const uint8_t hf_version = get_current_hard_fork_version(); const uint8_t hf_version = get_current_hard_fork_version();
uint64_t full_reward_zone = get_min_block_weight(hf_version); uint64_t full_reward_zone = get_min_block_weight(hf_version);
uint64_t long_term_block_weight;
if (hf_version < HF_VERSION_LONG_TERM_BLOCK_WEIGHT) if (hf_version < HF_VERSION_LONG_TERM_BLOCK_WEIGHT)
{ {
std::vector<uint64_t> weights; std::vector<uint64_t> weights;
get_last_n_blocks_weights(weights, CRYPTONOTE_REWARD_BLOCKS_WINDOW); get_last_n_blocks_weights(weights, CRYPTONOTE_REWARD_BLOCKS_WINDOW);
m_current_block_cumul_weight_median = epee::misc_utils::median(weights); m_current_block_cumul_weight_median = epee::misc_utils::median(weights);
long_term_block_weight = weights.back();
} }
else else
{ {
@ -3991,7 +3987,7 @@ bool Blockchain::update_next_cumulative_weight_limit(uint64_t *long_term_effecti
m_long_term_effective_median_block_weight = std::max<uint64_t>(CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V5, long_term_median); m_long_term_effective_median_block_weight = std::max<uint64_t>(CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V5, long_term_median);
uint64_t short_term_constraint = m_long_term_effective_median_block_weight + m_long_term_effective_median_block_weight * 2 / 5; uint64_t short_term_constraint = m_long_term_effective_median_block_weight + m_long_term_effective_median_block_weight * 2 / 5;
long_term_block_weight = std::min<uint64_t>(block_weight, short_term_constraint); uint64_t long_term_block_weight = std::min<uint64_t>(block_weight, short_term_constraint);
if (db_height == 1) if (db_height == 1)
{ {

View File

@ -447,6 +447,7 @@ namespace cryptonote
m_nettype = FAKECHAIN; m_nettype = FAKECHAIN;
} }
bool r = handle_command_line(vm); bool r = handle_command_line(vm);
CHECK_AND_ASSERT_MES(r, false, "Failed to handle command line");
std::string db_type = command_line::get_arg(vm, cryptonote::arg_db_type); std::string db_type = command_line::get_arg(vm, cryptonote::arg_db_type);
std::string db_sync_mode = command_line::get_arg(vm, cryptonote::arg_db_sync_mode); std::string db_sync_mode = command_line::get_arg(vm, cryptonote::arg_db_sync_mode);
@ -634,6 +635,7 @@ namespace cryptonote
}; };
const difficulty_type fixed_difficulty = command_line::get_arg(vm, arg_fixed_difficulty); const difficulty_type fixed_difficulty = command_line::get_arg(vm, arg_fixed_difficulty);
r = m_blockchain_storage.init(db.release(), m_nettype, m_offline, regtest ? &regtest_test_options : test_options, fixed_difficulty, get_checkpoints); r = m_blockchain_storage.init(db.release(), m_nettype, m_offline, regtest ? &regtest_test_options : test_options, fixed_difficulty, get_checkpoints);
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize blockchain storage");
r = m_mempool.init(max_txpool_weight); r = m_mempool.init(max_txpool_weight);
CHECK_AND_ASSERT_MES(r, false, "Failed to initialize memory pool"); CHECK_AND_ASSERT_MES(r, false, "Failed to initialize memory pool");

View File

@ -447,7 +447,6 @@ rct::key straus(const std::vector<MultiexpData> &data, const std::shared_ptr<str
{ {
CHECK_AND_ASSERT_THROW_MES(cache == NULL || cache->size >= data.size(), "Cache is too small"); CHECK_AND_ASSERT_THROW_MES(cache == NULL || cache->size >= data.size(), "Cache is too small");
MULTIEXP_PERF(PERF_TIMER_UNIT(straus, 1000000)); MULTIEXP_PERF(PERF_TIMER_UNIT(straus, 1000000));
bool HiGi = cache != NULL;
STEP = STEP ? STEP : 192; STEP = STEP ? STEP : 192;
MULTIEXP_PERF(PERF_TIMER_START_UNIT(setup, 1000000)); MULTIEXP_PERF(PERF_TIMER_START_UNIT(setup, 1000000));

View File

@ -190,7 +190,6 @@ namespace rct {
int byte, i, j; int byte, i, j;
for (j = 0; j < 8; j++) { for (j = 0; j < 8; j++) {
byte = 0; byte = 0;
i = 8 * j;
for (i = 7; i > -1; i--) { for (i = 7; i > -1; i--) {
byte = byte * 2 + amountb2[8 * j + i]; byte = byte * 2 + amountb2[8 * j + i];
} }

View File

@ -1476,7 +1476,7 @@ namespace cryptonote
ok = ok && getheight_res.status == CORE_RPC_STATUS_OK; ok = ok && getheight_res.status == CORE_RPC_STATUS_OK;
m_should_use_bootstrap_daemon = ok && top_height + 10 < getheight_res.height; m_should_use_bootstrap_daemon = ok && top_height + 10 < getheight_res.height;
MINFO((m_should_use_bootstrap_daemon ? "Using" : "Not using") << " the bootstrap daemon (our height: " << top_height << ", bootstrap daemon's height: " << getheight_res.height << ")"); MINFO((m_should_use_bootstrap_daemon ? "Using" : "Not using") << " the bootstrap daemon (our height: " << top_height << ", bootstrap daemon's height: " << (ok ? getheight_res.height : 0) << ")");
} }
if (!m_should_use_bootstrap_daemon) if (!m_should_use_bootstrap_daemon)
return false; return false;

View File

@ -7726,7 +7726,6 @@ void wallet2::get_outs(std::vector<std::vector<tools::wallet2::get_outs_entry>>
uint64_t num_found = 0; uint64_t num_found = 0;
// if we have a known ring, use it // if we have a known ring, use it
bool existing_ring_found = false;
if (td.m_key_image_known && !td.m_key_image_partial) if (td.m_key_image_known && !td.m_key_image_partial)
{ {
std::vector<uint64_t> ring; std::vector<uint64_t> ring;
@ -7738,7 +7737,6 @@ void wallet2::get_outs(std::vector<std::vector<tools::wallet2::get_outs_entry>>
std::to_string(ring.size()) + ", it cannot be spent now with ring size " + std::to_string(ring.size()) + ", it cannot be spent now with ring size " +
std::to_string(fake_outputs_count + 1) + " as it is smaller: use a higher ring size"); std::to_string(fake_outputs_count + 1) + " as it is smaller: use a higher ring size");
bool own_found = false; bool own_found = false;
existing_ring_found = true;
for (const auto &out: ring) for (const auto &out: ring)
{ {
MINFO("Ring has output " << out); MINFO("Ring has output " << out);
@ -7984,7 +7982,6 @@ void wallet2::get_outs(std::vector<std::vector<tools::wallet2::get_outs_entry>>
outs.back().push_back(std::make_tuple(td.m_global_output_index, boost::get<txout_to_key>(td.m_tx.vout[td.m_internal_output_index].target).key, mask)); outs.back().push_back(std::make_tuple(td.m_global_output_index, boost::get<txout_to_key>(td.m_tx.vout[td.m_internal_output_index].target).key, mask));
// then pick outs from an existing ring, if any // then pick outs from an existing ring, if any
bool existing_ring_found = false;
if (td.m_key_image_known && !td.m_key_image_partial) if (td.m_key_image_known && !td.m_key_image_partial)
{ {
std::vector<uint64_t> ring; std::vector<uint64_t> ring;

View File

@ -546,6 +546,7 @@ void block_tracker::global_indices(const cryptonote::transaction *tx, std::vecto
void block_tracker::get_fake_outs(size_t num_outs, uint64_t amount, uint64_t global_index, uint64_t cur_height, std::vector<get_outs_entry> &outs){ void block_tracker::get_fake_outs(size_t num_outs, uint64_t amount, uint64_t global_index, uint64_t cur_height, std::vector<get_outs_entry> &outs){
auto & vct = m_outs[amount]; auto & vct = m_outs[amount];
const size_t n_outs = vct.size(); const size_t n_outs = vct.size();
CHECK_AND_ASSERT_THROW_MES(n_outs > 0, "n_outs is 0");
std::set<size_t> used; std::set<size_t> used;
std::vector<size_t> choices; std::vector<size_t> choices;

View File

@ -163,6 +163,7 @@ bool wallet_tools::fill_tx_sources(tools::wallet2 * wallet, std::vector<cryptono
void wallet_tools::gen_tx_src(size_t mixin, uint64_t cur_height, const tools::wallet2::transfer_details & td, cryptonote::tx_source_entry & src, block_tracker &bt) void wallet_tools::gen_tx_src(size_t mixin, uint64_t cur_height, const tools::wallet2::transfer_details & td, cryptonote::tx_source_entry & src, block_tracker &bt)
{ {
CHECK_AND_ASSERT_THROW_MES(mixin != 0, "mixin is zero");
src.amount = td.amount(); src.amount = td.amount();
src.rct = td.is_rct(); src.rct = td.is_rct();

View File

@ -48,6 +48,7 @@ TEST(protocol_pack, protocol_pack_command)
cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request r2; cryptonote::NOTIFY_RESPONSE_CHAIN_ENTRY::request r2;
res = epee::serialization::load_t_from_binary(r2, buff); res = epee::serialization::load_t_from_binary(r2, buff);
ASSERT_TRUE(res);
ASSERT_TRUE(r.m_block_ids.size() == i); ASSERT_TRUE(r.m_block_ids.size() == i);
ASSERT_TRUE(r.start_height == 1); ASSERT_TRUE(r.start_height == 1);
ASSERT_TRUE(r.total_height == 3); ASSERT_TRUE(r.total_height == 3);

View File

@ -56,7 +56,6 @@ TEST(varint, equal)
ASSERT_TRUE (bytes > 0 && bytes <= sizeof(buf)); ASSERT_TRUE (bytes > 0 && bytes <= sizeof(buf));
uint64_t idx2; uint64_t idx2;
bufptr = buf;
std::string s(buf, bytes); std::string s(buf, bytes);
int read = tools::read_varint(s.begin(), s.end(), idx2); int read = tools::read_varint(s.begin(), s.end(), idx2);
ASSERT_EQ (read, bytes); ASSERT_EQ (read, bytes);