aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2021-04-18 18:56:12 -0400
committerRussell Yanofsky <russ@yanofsky.org>2021-04-19 06:11:38 -0400
commita67b54855b294802d52f09fa60d3f63550cbada7 (patch)
treed8a205566e506d7c18f77485a7ceaca3f942fd27 /src
parent13d27b452d4b60010c54d4f80757dea9805076be (diff)
downloadbitcoin-a67b54855b294802d52f09fa60d3f63550cbada7.tar.xz
Move common global init code to init/common
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/init.cpp14
-rw-r--r--src/init/common.cpp30
-rw-r--r--src/init/common.h16
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