Moving ::version function off of nano::store and on to nano::ledger
This commit is contained in:
parent
63d3c3cad6
commit
2d8dc01d51
10 changed files with 28 additions and 31 deletions
|
@ -1100,7 +1100,7 @@ TEST (mdb_block_store, sideband_height)
|
|||
.work (*pool.generate (state_open->hash ()))
|
||||
.build ();
|
||||
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *epoch).code);
|
||||
ASSERT_EQ (nano::epoch::epoch_1, store.block.version (transaction, epoch->hash ()));
|
||||
ASSERT_EQ (nano::epoch::epoch_1, ledger.version (*epoch));
|
||||
auto epoch_open = builder
|
||||
.state ()
|
||||
.account (key2.pub)
|
||||
|
@ -1112,7 +1112,7 @@ TEST (mdb_block_store, sideband_height)
|
|||
.work (*pool.generate (key2.pub))
|
||||
.build ();
|
||||
ASSERT_EQ (nano::process_result::progress, ledger.process (transaction, *epoch_open).code);
|
||||
ASSERT_EQ (nano::epoch::epoch_1, store.block.version (transaction, epoch_open->hash ()));
|
||||
ASSERT_EQ (nano::epoch::epoch_1, ledger.version (*epoch_open));
|
||||
auto state_receive = builder
|
||||
.state ()
|
||||
.account (key2.pub)
|
||||
|
|
|
@ -1072,7 +1072,7 @@ TEST (wallet, epoch_2_receive_propagation)
|
|||
if (nano::dev::network_params.work.difficulty (*receive2) < node.network_params.work.base)
|
||||
{
|
||||
ASSERT_GE (nano::dev::network_params.work.difficulty (*receive2), node.network_params.work.epoch_2_receive);
|
||||
ASSERT_EQ (nano::epoch::epoch_2, node.store.block.version (node.store.tx_begin_read (), receive2->hash ()));
|
||||
ASSERT_EQ (nano::epoch::epoch_2, node.ledger.version (*receive2));
|
||||
ASSERT_EQ (nano::epoch::epoch_2, receive2->sideband ().source_epoch);
|
||||
break;
|
||||
}
|
||||
|
@ -1125,7 +1125,7 @@ TEST (wallet, epoch_2_receive_unopened)
|
|||
if (nano::dev::network_params.work.difficulty (*receive1) < node.network_params.work.base)
|
||||
{
|
||||
ASSERT_GE (nano::dev::network_params.work.difficulty (*receive1), node.network_params.work.epoch_2_receive);
|
||||
ASSERT_EQ (nano::epoch::epoch_2, node.store.block.version (node.store.tx_begin_read (), receive1->hash ()));
|
||||
ASSERT_EQ (nano::epoch::epoch_2, node.ledger.version (*receive1));
|
||||
ASSERT_EQ (nano::epoch::epoch_1, receive1->sideband ().source_epoch);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1570,7 +1570,7 @@ int main (int argc, char * const * argv)
|
|||
// Check link epoch version
|
||||
if (sideband.details.is_receive && (!node->ledger.pruning || !node->store.pruned.exists (transaction, block->link ().as_block_hash ())))
|
||||
{
|
||||
if (sideband.source_epoch != node->store.block.version (transaction, block->link ().as_block_hash ()))
|
||||
if (sideband.source_epoch != node->ledger.version (*block))
|
||||
{
|
||||
print_error_message (boost::str (boost::format ("Incorrect source epoch for block %1%\n") % hash.to_string ()));
|
||||
}
|
||||
|
|
|
@ -147,17 +147,6 @@ nano::store_iterator<nano::block_hash, nano::block_w_sideband> nano::lmdb::block
|
|||
return nano::store_iterator<nano::block_hash, nano::block_w_sideband> (nullptr);
|
||||
}
|
||||
|
||||
nano::epoch nano::lmdb::block_store::version (nano::transaction const & transaction_a, nano::block_hash const & hash_a)
|
||||
{
|
||||
auto block = get (transaction_a, hash_a);
|
||||
if (block && block->type () == nano::block_type::state)
|
||||
{
|
||||
return block->sideband ().details.epoch;
|
||||
}
|
||||
|
||||
return nano::epoch::epoch_0;
|
||||
}
|
||||
|
||||
void nano::lmdb::block_store::for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const
|
||||
{
|
||||
parallel_traversal<nano::uint256_t> (
|
||||
|
|
|
@ -30,7 +30,6 @@ namespace lmdb
|
|||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> end () const override;
|
||||
nano::epoch version (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override;
|
||||
void for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const override;
|
||||
// Converts a block hash to a block height
|
||||
uint64_t account_height (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const override;
|
||||
|
|
|
@ -147,17 +147,6 @@ nano::store_iterator<nano::block_hash, nano::block_w_sideband> nano::rocksdb::bl
|
|||
return nano::store_iterator<nano::block_hash, nano::block_w_sideband> (nullptr);
|
||||
}
|
||||
|
||||
nano::epoch nano::rocksdb::block_store::version (nano::transaction const & transaction_a, nano::block_hash const & hash_a)
|
||||
{
|
||||
auto block = get (transaction_a, hash_a);
|
||||
if (block && block->type () == nano::block_type::state)
|
||||
{
|
||||
return block->sideband ().details.epoch;
|
||||
}
|
||||
|
||||
return nano::epoch::epoch_0;
|
||||
}
|
||||
|
||||
void nano::rocksdb::block_store::for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const
|
||||
{
|
||||
parallel_traversal<nano::uint256_t> (
|
||||
|
|
|
@ -30,7 +30,6 @@ namespace rocksdb
|
|||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> begin (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const override;
|
||||
nano::store_iterator<nano::block_hash, nano::block_w_sideband> end () const override;
|
||||
nano::epoch version (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override;
|
||||
void for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const override;
|
||||
// Converts a block hash to a block height
|
||||
uint64_t account_height (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const override;
|
||||
|
|
|
@ -152,7 +152,7 @@ public:
|
|||
}
|
||||
|
||||
debug_assert (!error);
|
||||
auto previous_version (ledger.store.block.version (transaction, block_a.hashables.previous));
|
||||
auto previous_version (ledger.version (transaction, block_a.hashables.previous));
|
||||
nano::account_info new_info (block_a.hashables.previous, representative, info->open_block, balance, nano::seconds_since_epoch (), info->block_count - 1, previous_version);
|
||||
ledger.update_account (transaction, block_a.hashables.account, *info, new_info);
|
||||
|
||||
|
@ -1613,6 +1613,26 @@ bool nano::ledger::bootstrap_weight_reached () const
|
|||
return cache.block_count >= bootstrap_weight_max_blocks;
|
||||
}
|
||||
|
||||
nano::epoch nano::ledger::version (nano::block const & block)
|
||||
{
|
||||
if (block.type () == nano::block_type::state)
|
||||
{
|
||||
return block.sideband ().details.epoch;
|
||||
}
|
||||
|
||||
return nano::epoch::epoch_0;
|
||||
}
|
||||
|
||||
nano::epoch nano::ledger::version (nano::transaction const & transaction, nano::block_hash const & hash) const
|
||||
{
|
||||
auto block = store.block.get (transaction, hash);
|
||||
if (block == nullptr)
|
||||
{
|
||||
return nano::epoch::epoch_0;
|
||||
}
|
||||
return version (*block);
|
||||
}
|
||||
|
||||
nano::uncemented_info::uncemented_info (nano::block_hash const & cemented_frontier, nano::block_hash const & frontier, nano::account const & account) :
|
||||
cemented_frontier (cemented_frontier), frontier (frontier), account (account)
|
||||
{
|
||||
|
|
|
@ -87,6 +87,8 @@ public:
|
|||
std::multimap<uint64_t, uncemented_info, std::greater<>> unconfirmed_frontiers () const;
|
||||
bool migrate_lmdb_to_rocksdb (boost::filesystem::path const &) const;
|
||||
bool bootstrap_weight_reached () const;
|
||||
static nano::epoch version (nano::block const & block);
|
||||
nano::epoch version (nano::transaction const & transaction, nano::block_hash const & hash) const;
|
||||
static nano::uint128_t const unit;
|
||||
nano::ledger_constants & constants;
|
||||
nano::store & store;
|
||||
|
|
|
@ -755,7 +755,6 @@ public:
|
|||
virtual nano::store_iterator<nano::block_hash, block_w_sideband> begin (nano::transaction const &, nano::block_hash const &) const = 0;
|
||||
virtual nano::store_iterator<nano::block_hash, block_w_sideband> begin (nano::transaction const &) const = 0;
|
||||
virtual nano::store_iterator<nano::block_hash, block_w_sideband> end () const = 0;
|
||||
virtual nano::epoch version (nano::transaction const &, nano::block_hash const &) = 0;
|
||||
virtual void for_each_par (std::function<void (nano::read_transaction const &, nano::store_iterator<nano::block_hash, block_w_sideband>, nano::store_iterator<nano::block_hash, block_w_sideband>)> const & action_a) const = 0;
|
||||
virtual uint64_t account_height (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const = 0;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue