Use deque rather than vector to support large initialization sequences (#4641)

This commit is contained in:
clemahieu 2024-05-23 13:54:28 +01:00 committed by GitHub
commit e9adb744b8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 4 additions and 4 deletions

View file

@ -2096,7 +2096,7 @@ TEST (system, block_sequence)
size_t const pr_count = 4;
size_t const listeners_per_pr = 0;
nano::test::system system;
std::vector<nano::keypair> reps;
std::deque<nano::keypair> reps;
for (auto i = 0; i < pr_count; ++i)
{
reps.push_back (nano::keypair{});

View file

@ -206,7 +206,7 @@ void nano::test::system::stop_node (nano::node & node)
debug_assert (!ec);
}
void nano::test::system::ledger_initialization_set (std::vector<nano::keypair> const & reps, nano::amount const & reserve)
void nano::test::system::ledger_initialization_set (std::deque<nano::keypair> const & reps, nano::amount const & reserve)
{
nano::block_hash previous = nano::dev::genesis->hash ();
auto amount = (nano::dev::constants.genesis_amount - reserve.number ()) / reps.size ();

View file

@ -27,7 +27,7 @@ namespace test
void stop ();
void ledger_initialization_set (std::vector<nano::keypair> const & reps, nano::amount const & reserve = 0);
void ledger_initialization_set (std::deque<nano::keypair> const & reps, nano::amount const & reserve = 0);
void generate_activity (nano::node &, std::vector<nano::account> &);
void generate_mass_activity (uint32_t, nano::node &);
void generate_usage_traffic (uint32_t, uint32_t, size_t);
@ -87,7 +87,7 @@ namespace test
std::chrono::time_point<std::chrono::steady_clock, std::chrono::duration<double>> deadline{ std::chrono::steady_clock::time_point::max () };
double deadline_scaling_factor{ 1.0 };
unsigned node_sequence{ 0 };
std::vector<std::shared_ptr<nano::block>> initialization_blocks;
std::deque<std::shared_ptr<nano::block>> initialization_blocks;
};
std::shared_ptr<nano::state_block> upgrade_epoch (nano::work_pool &, nano::ledger &, nano::epoch);