diff --git a/nano/core_test/ledger.cpp b/nano/core_test/ledger.cpp index 821d1d49..9f6aee94 100644 --- a/nano/core_test/ledger.cpp +++ b/nano/core_test/ledger.cpp @@ -4158,148 +4158,6 @@ TEST (ledger, block_hash_account_conflict) ASSERT_EQ (*open_epoch1, *winner4); } -TEST (ledger, could_fit) -{ - nano::logger logger; - auto store = nano::make_store (logger, nano::unique_path (), nano::dev::constants); - ASSERT_TRUE (!store->init_error ()); - nano::stats stats; - nano::ledger ledger (*store, stats, nano::dev::constants); - auto transaction (store->tx_begin_write ()); - store->initialize (transaction, ledger.cache, ledger.constants); - nano::work_pool pool{ nano::dev::network_params.network, std::numeric_limits::max () }; - nano::keypair destination; - // Test legacy and state change blocks could_fit - nano::block_builder builder; - auto change1 = builder - .change () - .previous (nano::dev::genesis->hash ()) - .representative (nano::dev::genesis->account ()) - .sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub) - .work (*pool.generate (nano::dev::genesis->hash ())) - .build (); - auto change2 = builder - .state () - .account (nano::dev::genesis->account ()) - .previous (nano::dev::genesis->hash ()) - .representative (nano::dev::genesis->account ()) - .balance (nano::dev::constants.genesis_amount) - .link (0) - .sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub) - .work (*pool.generate (nano::dev::genesis->hash ())) - .build (); - ASSERT_TRUE (ledger.could_fit (transaction, *change1)); - ASSERT_TRUE (ledger.could_fit (transaction, *change2)); - // Test legacy and state send - nano::keypair key1; - auto send1 = builder - .send () - .previous (change1->hash ()) - .destination (key1.pub) - .balance (nano::dev::constants.genesis_amount - 1) - .sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub) - .work (*pool.generate (change1->hash ())) - .build (); - auto send2 = builder - .state () - .account (nano::dev::genesis->account ()) - .previous (change1->hash ()) - .representative (nano::dev::genesis->account ()) - .balance (nano::dev::constants.genesis_amount - 1) - .link (key1.pub) - .sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub) - .work (*pool.generate (change1->hash ())) - .build (); - ASSERT_FALSE (ledger.could_fit (transaction, *send1)); - ASSERT_FALSE (ledger.could_fit (transaction, *send2)); - ASSERT_EQ (nano::block_status::progress, ledger.process (transaction, change1)); - ASSERT_TRUE (ledger.could_fit (transaction, *change1)); - ASSERT_TRUE (ledger.could_fit (transaction, *change2)); - ASSERT_TRUE (ledger.could_fit (transaction, *send1)); - ASSERT_TRUE (ledger.could_fit (transaction, *send2)); - // Test legacy and state open - auto open1 = builder - .open () - .source (send2->hash ()) - .representative (nano::dev::genesis->account ()) - .account (key1.pub) - .sign (key1.prv, key1.pub) - .work (*pool.generate (key1.pub)) - .build (); - auto open2 = builder - .state () - .account (key1.pub) - .previous (0) - .representative (nano::dev::genesis->account ()) - .balance (1) - .link (send2->hash ()) - .sign (key1.prv, key1.pub) - .work (*pool.generate (key1.pub)) - .build (); - ASSERT_FALSE (ledger.could_fit (transaction, *open1)); - ASSERT_FALSE (ledger.could_fit (transaction, *open2)); - ASSERT_EQ (nano::block_status::progress, ledger.process (transaction, send2)); - ASSERT_TRUE (ledger.could_fit (transaction, *send1)); - ASSERT_TRUE (ledger.could_fit (transaction, *send2)); - ASSERT_TRUE (ledger.could_fit (transaction, *open1)); - ASSERT_TRUE (ledger.could_fit (transaction, *open2)); - ASSERT_EQ (nano::block_status::progress, ledger.process (transaction, open1)); - ASSERT_TRUE (ledger.could_fit (transaction, *open1)); - ASSERT_TRUE (ledger.could_fit (transaction, *open2)); - // Create another send to receive - auto send3 = builder - .state () - .account (nano::dev::genesis->account ()) - .previous (send2->hash ()) - .representative (nano::dev::genesis->account ()) - .balance (nano::dev::constants.genesis_amount - 2) - .link (key1.pub) - .sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub) - .work (*pool.generate (send2->hash ())) - .build (); - // Test legacy and state receive - auto receive1 = builder - .receive () - .previous (open1->hash ()) - .source (send3->hash ()) - .sign (key1.prv, key1.pub) - .work (*pool.generate (open1->hash ())) - .build (); - auto receive2 = builder - .state () - .account (key1.pub) - .previous (open1->hash ()) - .representative (nano::dev::genesis->account ()) - .balance (2) - .link (send3->hash ()) - .sign (key1.prv, key1.pub) - .work (*pool.generate (open1->hash ())) - .build (); - ASSERT_FALSE (ledger.could_fit (transaction, *receive1)); - ASSERT_FALSE (ledger.could_fit (transaction, *receive2)); - ASSERT_EQ (nano::block_status::progress, ledger.process (transaction, send3)); - ASSERT_TRUE (ledger.could_fit (transaction, *receive1)); - ASSERT_TRUE (ledger.could_fit (transaction, *receive2)); - // Test epoch (state) - auto epoch1 = builder - .state () - .account (key1.pub) - .previous (receive1->hash ()) - .representative (nano::dev::genesis->account ()) - .balance (2) - .link (ledger.epoch_link (nano::epoch::epoch_1)) - .sign (nano::dev::genesis_key.prv, nano::dev::genesis_key.pub) - .work (*pool.generate (receive1->hash ())) - .build (); - ASSERT_FALSE (ledger.could_fit (transaction, *epoch1)); - ASSERT_EQ (nano::block_status::progress, ledger.process (transaction, receive1)); - ASSERT_TRUE (ledger.could_fit (transaction, *receive1)); - ASSERT_TRUE (ledger.could_fit (transaction, *receive2)); - ASSERT_TRUE (ledger.could_fit (transaction, *epoch1)); - ASSERT_EQ (nano::block_status::progress, ledger.process (transaction, epoch1)); - ASSERT_TRUE (ledger.could_fit (transaction, *epoch1)); -} - TEST (ledger, unchecked_epoch) { nano::test::system system (1); diff --git a/nano/secure/ledger.cpp b/nano/secure/ledger.cpp index c23ffc73..dc2651b8 100644 --- a/nano/secure/ledger.cpp +++ b/nano/secure/ledger.cpp @@ -1244,14 +1244,6 @@ void nano::ledger::dump_account_chain (nano::account const & account_a, std::ost } } -bool nano::ledger::could_fit (store::transaction const & transaction_a, nano::block const & block_a) const -{ - auto dependencies (dependent_blocks (transaction_a, block_a)); - return std::all_of (dependencies.begin (), dependencies.end (), [this, &transaction_a] (nano::block_hash const & hash_a) { - return hash_a.is_zero () || store.block.exists (transaction_a, hash_a); - }); -} - bool nano::ledger::dependents_confirmed (store::transaction const & transaction_a, nano::block const & block_a) const { auto dependencies (dependent_blocks (transaction_a, block_a)); diff --git a/nano/secure/ledger.hpp b/nano/secure/ledger.hpp index 935f57e2..ac6206e6 100644 --- a/nano/secure/ledger.hpp +++ b/nano/secure/ledger.hpp @@ -78,7 +78,6 @@ public: void update_account (store::write_transaction const &, nano::account const &, nano::account_info const &, nano::account_info const &); uint64_t pruning_action (store::write_transaction &, nano::block_hash const &, uint64_t const); void dump_account_chain (nano::account const &, std::ostream & = std::cout); - bool could_fit (store::transaction const &, nano::block const &) const; bool dependents_confirmed (store::transaction const &, nano::block const &) const; bool is_epoch_link (nano::link const &) const; std::array dependent_blocks (store::transaction const &, nano::block const &) const;