Changeset View
Changeset View
Standalone View
Standalone View
src/validation.h
Show First 20 Lines • Show All 572 Lines • ▼ Show 20 Lines | |||||
* | * | ||||
* This data is used mostly in `CChainState` - information about, e.g., | * This data is used mostly in `CChainState` - information about, e.g., | ||||
* candidate tips is not maintained here. | * candidate tips is not maintained here. | ||||
*/ | */ | ||||
class BlockManager { | class BlockManager { | ||||
friend CChainState; | friend CChainState; | ||||
private: | private: | ||||
// See definition for documentation | /** | ||||
* Calculate the block/rev files to delete based on height specified | |||||
* by user with RPC command pruneblockchain | |||||
*/ | |||||
void FindFilesToPruneManual(std::set<int> &setFilesToPrune, | void FindFilesToPruneManual(std::set<int> &setFilesToPrune, | ||||
int nManualPruneHeight, int chain_tip_height); | int nManualPruneHeight, int chain_tip_height); | ||||
/** | |||||
* Prune block and undo files (blk???.dat and undo???.dat) so that the disk | |||||
* space used is less than a user-defined target. The user sets the target | |||||
* (in MB) on the command line or in config file. This will be run on | |||||
* startup and whenever new space is allocated in a block or undo file, | |||||
* staying below the target. Changing back to unpruned requires a reindex | |||||
* (which in this case means the blockchain must be re-downloaded.) | |||||
* | |||||
* Pruning functions are called from FlushStateToDisk when the global | |||||
* fCheckForPruning flag has been set. Block and undo files are deleted in | |||||
* lock-step (when blk00003.dat is deleted, so is rev00003.dat.) Pruning | |||||
* cannot take place until the longest chain is at least a certain length | |||||
* (100000 on mainnet, 1000 on testnet, 1000 on regtest). Pruning will never | |||||
* delete a block within a defined distance (currently 288) from the active | |||||
* chain's tip. The block index is updated by unsetting HAVE_DATA and | |||||
* HAVE_UNDO for any blocks that were stored in the deleted files. A db flag | |||||
* records the fact that at least some block files have been pruned. | |||||
* | |||||
* @param[out] setFilesToPrune The set of file indices that can be | |||||
* unlinked will be returned | |||||
*/ | |||||
void FindFilesToPrune(std::set<int> &setFilesToPrune, | void FindFilesToPrune(std::set<int> &setFilesToPrune, | ||||
uint64_t nPruneAfterHeight, int chain_tip_height, | uint64_t nPruneAfterHeight, int chain_tip_height, | ||||
bool is_ibd); | bool is_ibd); | ||||
public: | public: | ||||
BlockMap m_block_index GUARDED_BY(cs_main); | BlockMap m_block_index GUARDED_BY(cs_main); | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 701 Lines • Show Last 20 Lines |