mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-27 09:21:43 +02:00
Add BlockManager::GetPruneTarget()
This commit is contained in:
parent
fa0f0436d8
commit
fae71fe27e
@ -1617,8 +1617,10 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
|
|||||||
|
|
||||||
// On first startup, warn on low block storage space
|
// On first startup, warn on low block storage space
|
||||||
if (!fReindex && !fReindexChainState && chain_active_height <= 1) {
|
if (!fReindex && !fReindexChainState && chain_active_height <= 1) {
|
||||||
uint64_t additional_bytes_needed = fPruneMode ? nPruneTarget
|
uint64_t additional_bytes_needed{
|
||||||
: chainparams.AssumedBlockchainSize() * 1024 * 1024 * 1024;
|
fPruneMode ?
|
||||||
|
chainman.m_blockman.GetPruneTarget() :
|
||||||
|
chainparams.AssumedBlockchainSize() * 1024 * 1024 * 1024};
|
||||||
|
|
||||||
if (!CheckDiskSpace(args.GetBlocksDirPath(), additional_bytes_needed)) {
|
if (!CheckDiskSpace(args.GetBlocksDirPath(), additional_bytes_needed)) {
|
||||||
InitWarning(strprintf(_(
|
InitWarning(strprintf(_(
|
||||||
|
@ -51,7 +51,6 @@ extern std::atomic_bool fReindex;
|
|||||||
/** Pruning-related variables and constants */
|
/** Pruning-related variables and constants */
|
||||||
/** True if we're running in -prune mode. */
|
/** True if we're running in -prune mode. */
|
||||||
extern bool fPruneMode;
|
extern bool fPruneMode;
|
||||||
/** Number of bytes of block files that we're trying to stay below. */
|
|
||||||
extern uint64_t nPruneTarget;
|
extern uint64_t nPruneTarget;
|
||||||
|
|
||||||
// Because validation code takes pointers to the map's CBlockIndex objects, if
|
// Because validation code takes pointers to the map's CBlockIndex objects, if
|
||||||
@ -176,6 +175,9 @@ public:
|
|||||||
/** Store block on disk. If dbp is not nullptr, then it provides the known position of the block within a block file on disk. */
|
/** Store block on disk. If dbp is not nullptr, then it provides the known position of the block within a block file on disk. */
|
||||||
FlatFilePos SaveBlockToDisk(const CBlock& block, int nHeight, CChain& active_chain, const CChainParams& chainparams, const FlatFilePos* dbp);
|
FlatFilePos SaveBlockToDisk(const CBlock& block, int nHeight, CChain& active_chain, const CChainParams& chainparams, const FlatFilePos* dbp);
|
||||||
|
|
||||||
|
/** Attempt to stay below this number of bytes of block files. */
|
||||||
|
[[nodiscard]] uint64_t GetPruneTarget() const { return nPruneTarget; }
|
||||||
|
|
||||||
[[nodiscard]] bool LoadingBlocks() const
|
[[nodiscard]] bool LoadingBlocks() const
|
||||||
{
|
{
|
||||||
return fImporting || fReindex;
|
return fImporting || fReindex;
|
||||||
|
@ -44,10 +44,10 @@ ChainstateLoadResult LoadChainstate(ChainstateManager& chainman, const CacheSize
|
|||||||
if (chainman.MinimumChainWork() < UintToArith256(chainman.GetConsensus().nMinimumChainWork)) {
|
if (chainman.MinimumChainWork() < UintToArith256(chainman.GetConsensus().nMinimumChainWork)) {
|
||||||
LogPrintf("Warning: nMinimumChainWork set below default value of %s\n", chainman.GetConsensus().nMinimumChainWork.GetHex());
|
LogPrintf("Warning: nMinimumChainWork set below default value of %s\n", chainman.GetConsensus().nMinimumChainWork.GetHex());
|
||||||
}
|
}
|
||||||
if (nPruneTarget == std::numeric_limits<uint64_t>::max()) {
|
if (chainman.m_blockman.GetPruneTarget() == std::numeric_limits<uint64_t>::max()) {
|
||||||
LogPrintf("Block pruning enabled. Use RPC call pruneblockchain(height) to manually prune block and undo files.\n");
|
LogPrintf("Block pruning enabled. Use RPC call pruneblockchain(height) to manually prune block and undo files.\n");
|
||||||
} else if (nPruneTarget) {
|
} else if (chainman.m_blockman.GetPruneTarget()) {
|
||||||
LogPrintf("Prune configured to target %u MiB on disk for block and undo files.\n", nPruneTarget / 1024 / 1024);
|
LogPrintf("Prune configured to target %u MiB on disk for block and undo files.\n", chainman.m_blockman.GetPruneTarget() / 1024 / 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
|
@ -1273,7 +1273,7 @@ RPCHelpMan getblockchaininfo()
|
|||||||
bool automatic_pruning{args.GetIntArg("-prune", 0) != 1};
|
bool automatic_pruning{args.GetIntArg("-prune", 0) != 1};
|
||||||
obj.pushKV("automatic_pruning", automatic_pruning);
|
obj.pushKV("automatic_pruning", automatic_pruning);
|
||||||
if (automatic_pruning) {
|
if (automatic_pruning) {
|
||||||
obj.pushKV("prune_target_size", node::nPruneTarget);
|
obj.pushKV("prune_target_size", chainman.m_blockman.GetPruneTarget());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user