mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-20 15:19:07 +01:00
82be652e40doc: Improve ChainstateManager documentation, use consistent terms (Ryan Ofsky)af455dcb39refactor: Simplify pruning functions (TheCharlatan)ae85c495f1refactor: Delete ChainstateManager::GetAll() method (Ryan Ofsky)6a572dbda9refactor: Add ChainstateManager::ActivateBestChains() method (Ryan Ofsky)491d827d52refactor: Add ChainstateManager::m_chainstates member (Ryan Ofsky)e514fe6116refactor: Delete ChainstateManager::SnapshotBlockhash() method (Ryan Ofsky)ee35250683refactor: Delete ChainstateManager::IsSnapshotValidated() method (Ryan Ofsky)d9e82299fcrefactor: Delete ChainstateManager::IsSnapshotActive() method (Ryan Ofsky)4dfe383912refactor: Convert ChainstateRole enum to struct (Ryan Ofsky)352ad27fc1refactor: Add ChainstateManager::ValidatedChainstate() method (Ryan Ofsky)a229cb9477refactor: Add ChainstateManager::CurrentChainstate() method (Ryan Ofsky)a9b7f5614crefactor: Add Chainstate::StoragePath() method (Ryan Ofsky)840bd2ef23refactor: Pass chainstate parameters to MaybeCompleteSnapshotValidation (Ryan Ofsky)1598a15aedrefactor: Deduplicate Chainstate activation code (Ryan Ofsky)9fe927b6d6refactor: Add Chainstate m_assumeutxo and m_target_utxohash members (Ryan Ofsky)6082c84713refactor: Add Chainstate::m_target_blockhash member (Ryan Ofsky)de00e87548test: Fix broken chainstatemanager_snapshot_init check (Ryan Ofsky) Pull request description: This PR contains the first part of #28608, which tries to make assumeutxo code more maintainable, and improve it by not locking `cs_main` for a long time when the snapshot block is connected, and by deleting the snapshot validation chainstate when it is no longer used, instead of waiting until the next restart. The changes in this PR are just refactoring. They make `Chainstate` objects self-contained, so for example, it is possible to determine what blocks to connect to a chainstate without querying `ChainstateManager`, and to determine whether a Chainstate is validated without basing it on inferences like `&cs != &ActiveChainstate()` or `GetAll().size() == 1`. The PR also tries to make assumeutxo terminology less confusing, using "current chainstate" to refer to the chainstate targeting the current network tip, and "historical chainstate" to refer to the chainstate downloading old blocks and validating the assumeutxo snapshot. It removes uses of the terms "active chainstate," "usable chainstate," "disabled chainstate," "ibd chainstate," and "snapshot chainstate" which are confusing for various reasons. ACKs for top commit: maflcko: re-review ACK82be652e40🕍 fjahr: re-ACK82be652e40sedited: Re-ACK82be652e40Tree-SHA512: 81c67abba9fc5bb170e32b7bf8a1e4f7b5592315b4ef720be916d5f1f5a7088c0c59cfb697744dd385552f58aa31ee36176bae6a6e465723e65861089a1252e5