Skip to content

Commit ee35250

Browse files
committed
refactor: Delete ChainstateManager::IsSnapshotValidated() method
IsSnapshotValidated() is only called one place outside of tests, and is use redundantly in some tests, asserting that a snapshot is not validated when a snapshot chainstate does not even exist. Simplify by dropping the method and checking Chainstate m_assumeutxo field directly.
1 parent d9e8229 commit ee35250

File tree

4 files changed

+4
-15
lines changed

4 files changed

+4
-15
lines changed

src/node/chainstate.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ ChainstateLoadResult LoadChainstate(ChainstateManager& chainman, const CacheSize
210210
// ChainstateManager::ResetChainstates(), reinitialize them here without
211211
// duplicating the blockindex work above.
212212
assert(chainman.GetAll().empty());
213-
assert(!chainman.IsSnapshotValidated());
214213

215214
chainman.InitializeChainstate(options.mempool);
216215

src/test/validation_chainstatemanager_tests.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager, TestChain100Setup)
5050
chainstates.push_back(&c1);
5151

5252
BOOST_CHECK(WITH_LOCK(::cs_main, return !manager.CurrentChainstate().m_from_snapshot_blockhash));
53-
BOOST_CHECK(WITH_LOCK(::cs_main, return !manager.IsSnapshotValidated()));
5453
auto all = manager.GetAll();
5554
BOOST_CHECK_EQUAL_COLLECTIONS(all.begin(), all.end(), chainstates.begin(), chainstates.end());
5655

@@ -85,7 +84,7 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager, TestChain100Setup)
8584

8685
BOOST_CHECK_EQUAL(manager.SnapshotBlockhash().value(), snapshot_blockhash);
8786
BOOST_CHECK(WITH_LOCK(::cs_main, return manager.CurrentChainstate().m_from_snapshot_blockhash));
88-
BOOST_CHECK(WITH_LOCK(::cs_main, return !manager.IsSnapshotValidated()));
87+
BOOST_CHECK(WITH_LOCK(::cs_main, return manager.CurrentChainstate().m_assumeutxo == Assumeutxo::UNVALIDATED));
8988
BOOST_CHECK_EQUAL(&c2, &manager.ActiveChainstate());
9089
BOOST_CHECK(&c1 != &manager.ActiveChainstate());
9190
auto all2 = manager.GetAll();
@@ -185,7 +184,6 @@ struct SnapshotTestSetup : TestChain100Setup {
185184
{
186185
LOCK(::cs_main);
187186
BOOST_CHECK(!chainman.CurrentChainstate().m_from_snapshot_blockhash);
188-
BOOST_CHECK(!chainman.IsSnapshotValidated());
189187
BOOST_CHECK(!node::FindAssumeutxoChainstateDir(chainman.m_options.datadir));
190188
}
191189

@@ -611,7 +609,7 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_snapshot_init, SnapshotTestSetup)
611609
BOOST_CHECK_EQUAL(chainstates[1]->m_chain.Height(), 210);
612610

613611
BOOST_CHECK(chainman_restarted.CurrentChainstate().m_from_snapshot_blockhash);
614-
BOOST_CHECK(!chainman_restarted.IsSnapshotValidated());
612+
BOOST_CHECK(chainman_restarted.CurrentChainstate().m_assumeutxo == Assumeutxo::UNVALIDATED);
615613

616614
BOOST_CHECK_EQUAL(chainman_restarted.ActiveTip()->GetBlockHash(), snapshot_tip_hash);
617615
BOOST_CHECK_EQUAL(chainman_restarted.ActiveHeight(), 210);
@@ -656,7 +654,7 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_snapshot_completion, SnapshotTestSetup
656654
res = WITH_LOCK(::cs_main, return chainman.MaybeValidateSnapshot(validated_cs, active_cs));
657655
BOOST_CHECK_EQUAL(res, SnapshotCompletionResult::SUCCESS);
658656

659-
WITH_LOCK(::cs_main, BOOST_CHECK(chainman.IsSnapshotValidated()));
657+
BOOST_CHECK(WITH_LOCK(::cs_main, return chainman.CurrentChainstate().m_assumeutxo == Assumeutxo::VALIDATED));
660658
BOOST_CHECK(WITH_LOCK(::cs_main, return chainman.CurrentChainstate().m_from_snapshot_blockhash));
661659

662660
// Cache should have been rebalanced and reallocated to the "only" remaining
@@ -699,7 +697,6 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_snapshot_completion, SnapshotTestSetup
699697
LOCK(chainman_restarted.GetMutex());
700698
BOOST_CHECK_EQUAL(chainman_restarted.GetAll().size(), 1);
701699
BOOST_CHECK(!chainman_restarted.CurrentChainstate().m_from_snapshot_blockhash);
702-
BOOST_CHECK(!chainman_restarted.IsSnapshotValidated());
703700
BOOST_CHECK(active_cs2.m_coinstip_cache_size_bytes > tip_cache_before_complete);
704701
BOOST_CHECK(active_cs2.m_coinsdb_cache_size_bytes > db_cache_before_complete);
705702

@@ -771,7 +768,6 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_snapshot_completion_hash_mismatch, Sna
771768
LOCK(::cs_main);
772769
BOOST_CHECK_EQUAL(chainman_restarted.GetAll().size(), 1);
773770
BOOST_CHECK(!chainman_restarted.CurrentChainstate().m_from_snapshot_blockhash);
774-
BOOST_CHECK(!chainman_restarted.IsSnapshotValidated());
775771
BOOST_CHECK_EQUAL(chainman_restarted.ActiveHeight(), 210);
776772
}
777773

src/validation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6367,7 +6367,7 @@ void ChainstateManager::RecalculateBestHeader()
63676367
bool ChainstateManager::ValidatedSnapshotCleanup(Chainstate& validated_cs, Chainstate& unvalidated_cs)
63686368
{
63696369
AssertLockHeld(::cs_main);
6370-
if (!this->IsSnapshotValidated()) {
6370+
if (unvalidated_cs.m_assumeutxo != Assumeutxo::VALIDATED) {
63716371
// No need to clean up.
63726372
return false;
63736373
}

src/validation.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1191,12 +1191,6 @@ class ChainstateManager
11911191

11921192
std::optional<uint256> SnapshotBlockhash() const;
11931193

1194-
//! Is there a snapshot in use and has it been fully validated?
1195-
bool IsSnapshotValidated() const EXCLUSIVE_LOCKS_REQUIRED(::cs_main)
1196-
{
1197-
return m_snapshot_chainstate && m_snapshot_chainstate->m_assumeutxo == Assumeutxo::VALIDATED;
1198-
}
1199-
12001194
/** Check whether we are doing an initial block download (synchronizing from disk or network) */
12011195
bool IsInitialBlockDownload() const;
12021196

0 commit comments

Comments
 (0)