diff options
author | Russell Yanofsky <russ@yanofsky.org> | 2021-04-18 18:56:12 -0400 |
---|---|---|
committer | Russell Yanofsky <russ@yanofsky.org> | 2021-04-19 06:11:38 -0400 |
commit | a67b54855b294802d52f09fa60d3f63550cbada7 (patch) | |
tree | d8a205566e506d7c18f77485a7ceaca3f942fd27 | |
parent | 13d27b452d4b60010c54d4f80757dea9805076be (diff) | |
download | bitcoin-a67b54855b294802d52f09fa60d3f63550cbada7.tar.xz |
Move common global init code to init/common
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/init.cpp | 14 | ||||
-rw-r--r-- | src/init/common.cpp | 30 | ||||
-rw-r--r-- | src/init/common.h | 16 |
4 files changed, 51 insertions, 11 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index ddeccd85ea..d2f643c03a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -156,6 +156,7 @@ BITCOIN_CORE_H = \ index/txindex.h \ indirectmap.h \ init.h \ + init/common.h \ interfaces/chain.h \ interfaces/handler.h \ interfaces/node.h \ @@ -520,6 +521,7 @@ libbitcoin_common_a_SOURCES = \ core_read.cpp \ core_write.cpp \ external_signer.cpp \ + init/common.cpp \ key.cpp \ key_io.cpp \ merkleblock.cpp \ diff --git a/src/init.cpp b/src/init.cpp index 07e882c9df..4298494916 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -22,9 +22,9 @@ #include <httpserver.h> #include <index/blockfilterindex.h> #include <index/txindex.h> +#include <init/common.h> #include <interfaces/chain.h> #include <interfaces/node.h> -#include <key.h> #include <mapport.h> #include <miner.h> #include <net.h> @@ -151,8 +151,6 @@ static fs::path GetPidFile(const ArgsManager& args) // shutdown thing. // -static std::unique_ptr<ECCVerifyHandle> globalVerifyHandle; - void Interrupt(NodeContext& node) { InterruptHTTPServer(); @@ -286,8 +284,7 @@ void Shutdown(NodeContext& node) node.chain_clients.clear(); UnregisterAllValidationInterfaces(); GetMainSignals().UnregisterBackgroundSignalScheduler(); - globalVerifyHandle.reset(); - ECC_Stop(); + init::UnsetGlobals(); node.mempool.reset(); node.fee_estimator.reset(); node.chainman = nullptr; @@ -1148,12 +1145,7 @@ bool AppInitSanityChecks() { // ********************************************************* Step 4: sanity checks - // Initialize elliptic curve code - std::string sha256_algo = SHA256AutoDetect(); - LogPrintf("Using the '%s' SHA256 implementation\n", sha256_algo); - RandomInit(); - ECC_Start(); - globalVerifyHandle.reset(new ECCVerifyHandle()); + init::SetGlobals(); // Sanity check if (!InitSanityCheck()) diff --git a/src/init/common.cpp b/src/init/common.cpp new file mode 100644 index 0000000000..cb24708031 --- /dev/null +++ b/src/init/common.cpp @@ -0,0 +1,30 @@ +// Copyright (c) 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. + +#include <crypto/sha256.h> +#include <key.h> +#include <logging.h> +#include <pubkey.h> +#include <random.h> + +#include <memory> + +static std::unique_ptr<ECCVerifyHandle> globalVerifyHandle; + +namespace init { +void SetGlobals() +{ + std::string sha256_algo = SHA256AutoDetect(); + LogPrintf("Using the '%s' SHA256 implementation\n", sha256_algo); + RandomInit(); + ECC_Start(); + globalVerifyHandle.reset(new ECCVerifyHandle()); +} + +void UnsetGlobals() +{ + globalVerifyHandle.reset(); + ECC_Stop(); +} +} // namespace init diff --git a/src/init/common.h b/src/init/common.h new file mode 100644 index 0000000000..b201232bfc --- /dev/null +++ b/src/init/common.h @@ -0,0 +1,16 @@ +// Copyright (c) 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. + +//! @file +//! @brief Common init functions shared by bitcoin-node, bitcoin-wallet, etc. + +#ifndef BITCOIN_INIT_COMMON_H +#define BITCOIN_INIT_COMMON_H + +namespace init { +void SetGlobals(); +void UnsetGlobals(); +} // namespace init + +#endif // BITCOIN_INIT_COMMON_H |