Skip to content

Commit

Permalink
Move common global init code to init/common
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanofsky committed Apr 19, 2021
1 parent 13d27b4 commit a67b548
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 11 deletions.
2 changes: 2 additions & 0 deletions src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down Expand Up @@ -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 \
Expand Down
14 changes: 3 additions & 11 deletions src/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -151,8 +151,6 @@ static fs::path GetPidFile(const ArgsManager& args)
// shutdown thing.
//

static std::unique_ptr<ECCVerifyHandle> globalVerifyHandle;

void Interrupt(NodeContext& node)
{
InterruptHTTPServer();
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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())
Expand Down
30 changes: 30 additions & 0 deletions src/init/common.cpp
Original file line number Diff line number Diff line change
@@ -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
16 changes: 16 additions & 0 deletions src/init/common.h
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit a67b548

Please sign in to comment.