From 23329c6901c677138ed0710c1e3c790d3579ed85 Mon Sep 17 00:00:00 2001 From: Sergey Kroshnin Date: Thu, 20 Dec 2018 18:09:45 +0300 Subject: [PATCH] Slight improvements of block_exists usage (#1490) --- rai/node/bootstrap.cpp | 2 +- rai/secure/ledger.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rai/node/bootstrap.cpp b/rai/node/bootstrap.cpp index 9181adba..665e29be 100644 --- a/rai/node/bootstrap.cpp +++ b/rai/node/bootstrap.cpp @@ -1340,7 +1340,7 @@ bool rai::bootstrap_attempt::process_block (std::shared_ptr block_a, { // Search block in ledger (old) auto transaction (node->store.tx_begin_read ()); - if (!node->store.block_exists (transaction, hash)) + if (!node->store.block_exists (transaction, block_a->type (), hash)) { rai::uint128_t balance (std::numeric_limits::max ()); node->block_processor.add (block_a, std::chrono::steady_clock::time_point ()); diff --git a/rai/secure/ledger.cpp b/rai/secure/ledger.cpp index 7dd6518d..67be8e0a 100644 --- a/rai/secure/ledger.cpp +++ b/rai/secure/ledger.cpp @@ -267,7 +267,7 @@ void ledger_processor::state_block_impl (rai::state_block const & block_a) { if (!block_a.hashables.link.is_zero ()) { - result.code = ledger.store.block_exists (transaction, block_a.hashables.link) ? rai::process_result::progress : rai::process_result::gap_source; // Have we seen the source block already? (Harmless) + result.code = (ledger.store.block_exists (transaction, rai::block_type::state, block_a.hashables.link) || ledger.store.block_exists (transaction, rai::block_type::send, block_a.hashables.link)) ? rai::process_result::progress : rai::process_result::gap_source; // Have we seen the source block already? (Harmless) if (result.code == rai::process_result::progress) { rai::pending_key key (block_a.hashables.account, block_a.hashables.link); @@ -491,7 +491,7 @@ void ledger_processor::receive_block (rai::receive_block const & block_a) result.code = block_a.valid_predecessor (*previous) ? rai::process_result::progress : rai::process_result::block_position; if (result.code == rai::process_result::progress) { - result.code = ledger.store.block_exists (transaction, block_a.hashables.source) ? rai::process_result::progress : rai::process_result::gap_source; // Have we seen the source block already? (Harmless) + result.code = (ledger.store.block_exists (transaction, rai::block_type::send, block_a.hashables.source) || ledger.store.block_exists (transaction, rai::block_type::state, block_a.hashables.source)) ? rai::process_result::progress : rai::process_result::gap_source; // Have we seen the source block already? (Harmless) if (result.code == rai::process_result::progress) { auto account (ledger.store.frontier_get (transaction, block_a.hashables.previous)); @@ -549,7 +549,7 @@ void ledger_processor::open_block (rai::open_block const & block_a) result.code = existing ? rai::process_result::old : rai::process_result::progress; // Have we seen this block already? (Harmless) if (result.code == rai::process_result::progress) { - auto source_missing (!ledger.store.block_exists (transaction, block_a.hashables.source)); + auto source_missing (!ledger.store.block_exists (transaction, rai::block_type::send, block_a.hashables.source) && !ledger.store.block_exists (transaction, rai::block_type::state, block_a.hashables.source)); result.code = source_missing ? rai::process_result::gap_source : rai::process_result::progress; // Have we seen the source block? (Harmless) if (result.code == rai::process_result::progress) {