Slight improvements of block_exists usage (#1490)

This commit is contained in:
Sergey Kroshnin 2018-12-20 18:09:45 +03:00 committed by Roy Keene
commit 23329c6901
2 changed files with 4 additions and 4 deletions

View file

@ -1340,7 +1340,7 @@ bool rai::bootstrap_attempt::process_block (std::shared_ptr<rai::block> block_a,
{ {
// Search block in ledger (old) // Search block in ledger (old)
auto transaction (node->store.tx_begin_read ()); 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<rai::uint128_t>::max ()); rai::uint128_t balance (std::numeric_limits<rai::uint128_t>::max ());
node->block_processor.add (block_a, std::chrono::steady_clock::time_point ()); node->block_processor.add (block_a, std::chrono::steady_clock::time_point ());

View file

@ -267,7 +267,7 @@ void ledger_processor::state_block_impl (rai::state_block const & block_a)
{ {
if (!block_a.hashables.link.is_zero ()) 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) if (result.code == rai::process_result::progress)
{ {
rai::pending_key key (block_a.hashables.account, block_a.hashables.link); 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; result.code = block_a.valid_predecessor (*previous) ? rai::process_result::progress : rai::process_result::block_position;
if (result.code == rai::process_result::progress) 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) if (result.code == rai::process_result::progress)
{ {
auto account (ledger.store.frontier_get (transaction, block_a.hashables.previous)); 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) 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) 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) 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) if (result.code == rai::process_result::progress)
{ {