Changeset View
Changeset View
Standalone View
Standalone View
src/kernel/chainstatemanager_opts.h
// Copyright (c) 2022 The Bitcoin Core developers | // Copyright (c) 2022 The Bitcoin Core developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
#ifndef BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H | #ifndef BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H | ||||
#define BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H | #define BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H | ||||
#include <util/time.h> | #include <util/time.h> | ||||
#include <cstdint> | #include <cstdint> | ||||
#include <functional> | #include <functional> | ||||
class Config; | class Config; | ||||
static constexpr auto DEFAULT_MAX_TIP_AGE{24h}; | |||||
namespace kernel { | namespace kernel { | ||||
/** | /** | ||||
* An options struct for `ChainstateManager`, more ergonomically referred to as | * An options struct for `ChainstateManager`, more ergonomically referred to as | ||||
* `ChainstateManager::Options` due to the using-declaration in | * `ChainstateManager::Options` due to the using-declaration in | ||||
* `ChainstateManager`. | * `ChainstateManager`. | ||||
*/ | */ | ||||
struct ChainstateManagerOpts { | struct ChainstateManagerOpts { | ||||
const Config &config; | const Config &config; | ||||
const std::function<NodeClock::time_point()> adjusted_time_callback{ | const std::function<NodeClock::time_point()> adjusted_time_callback{ | ||||
nullptr}; | nullptr}; | ||||
//! If the tip is older than this, the node is considered to be in initial | |||||
//! block download. | |||||
std::chrono::seconds max_tip_age{DEFAULT_MAX_TIP_AGE}; | |||||
}; | }; | ||||
} // namespace kernel | } // namespace kernel | ||||
#endif // BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H | #endif // BITCOIN_KERNEL_CHAINSTATEMANAGER_OPTS_H |