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)
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 ());
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 ())
{
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)
{