mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-12 12:52:35 -03:00
cc61bc2e19
These checks were added in #4339, (see also #4081), to test our back-compat stubs, however, those stubs no-longer exist (#22930), meaning that these checks are now just testing some specific standard library behaviour, without a particular rationale, or reason, compared to any other standard library functions we use. There has also been some discussion about the sanity checks in the context of the libbitcoinkernel refactoring, see https://github.com/bitcoin/bitcoin/pull/25065#discussion_r880668218. Removing the checks removes the need to worry about atleast the glibcxx checks. Also remove the list of check from the doc in init.h, because it is incomplete, and anyone who wants to know what checks are included can look at the function.
73 lines
2.7 KiB
C++
73 lines
2.7 KiB
C++
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|
// Copyright (c) 2009-2021 The Bitcoin Core developers
|
|
// Distributed under the MIT software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#ifndef BITCOIN_INIT_H
|
|
#define BITCOIN_INIT_H
|
|
|
|
#include <any>
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
//! Default value for -daemon option
|
|
static constexpr bool DEFAULT_DAEMON = false;
|
|
//! Default value for -daemonwait option
|
|
static constexpr bool DEFAULT_DAEMONWAIT = false;
|
|
|
|
class ArgsManager;
|
|
namespace interfaces {
|
|
struct BlockAndHeaderTipInfo;
|
|
}
|
|
namespace node {
|
|
struct NodeContext;
|
|
} // namespace node
|
|
|
|
/** Interrupt threads */
|
|
void Interrupt(node::NodeContext& node);
|
|
void Shutdown(node::NodeContext& node);
|
|
//!Initialize the logging infrastructure
|
|
void InitLogging(const ArgsManager& args);
|
|
//!Parameter interaction: change current parameters depending on various rules
|
|
void InitParameterInteraction(ArgsManager& args);
|
|
|
|
/** Initialize bitcoin core: Basic context setup.
|
|
* @note This can be done before daemonization. Do not call Shutdown() if this function fails.
|
|
* @pre Parameters should be parsed and config file should be read.
|
|
*/
|
|
bool AppInitBasicSetup(const ArgsManager& args);
|
|
/**
|
|
* Initialization: parameter interaction.
|
|
* @note This can be done before daemonization. Do not call Shutdown() if this function fails.
|
|
* @pre Parameters should be parsed and config file should be read, AppInitBasicSetup should have been called.
|
|
*/
|
|
bool AppInitParameterInteraction(const ArgsManager& args, bool use_syscall_sandbox = true);
|
|
/**
|
|
* Initialization sanity checks.
|
|
* @note This can be done before daemonization. Do not call Shutdown() if this function fails.
|
|
* @pre Parameters should be parsed and config file should be read, AppInitParameterInteraction should have been called.
|
|
*/
|
|
bool AppInitSanityChecks();
|
|
/**
|
|
* Lock bitcoin core data directory.
|
|
* @note This should only be done after daemonization. Do not call Shutdown() if this function fails.
|
|
* @pre Parameters should be parsed and config file should be read, AppInitSanityChecks should have been called.
|
|
*/
|
|
bool AppInitLockDataDirectory();
|
|
/**
|
|
* Initialize node and wallet interface pointers. Has no prerequisites or side effects besides allocating memory.
|
|
*/
|
|
bool AppInitInterfaces(node::NodeContext& node);
|
|
/**
|
|
* Bitcoin core main initialization.
|
|
* @note This should only be done after daemonization. Call Shutdown() if this function fails.
|
|
* @pre Parameters should be parsed and config file should be read, AppInitLockDataDirectory should have been called.
|
|
*/
|
|
bool AppInitMain(node::NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info = nullptr);
|
|
|
|
/**
|
|
* Register all arguments with the ArgsManager
|
|
*/
|
|
void SetupServerArgs(ArgsManager& argsman);
|
|
|
|
#endif // BITCOIN_INIT_H
|