diff options
author | Carl Dong <contact@carldong.me> | 2022-05-25 14:31:54 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2022-06-02 11:40:03 -0400 |
commit | fed085a1a4cd2787202752b6a0d98e42dce97f09 (patch) | |
tree | f5f85da84e9aee2a1e7fd6ac52edf70dfa90fcbd /src/kernel/context.cpp | |
parent | 7d03feef8156ef37a4efa01dc591467bc7d957bf (diff) |
init: Initialize globals with kernel::Context's life
...instead of explicitly calling init::{Set,Unset}Globals.
Cool thing about this is that in both the testing and bitcoin-chainstate
codepaths, we no longer need to explicitly unset globals. The
kernel::Context goes out of scope and the globals are unset
"automatically".
Also construct kernel::Context outside of AppInitSanityChecks()
Diffstat (limited to 'src/kernel/context.cpp')
-rw-r--r-- | src/kernel/context.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/kernel/context.cpp b/src/kernel/context.cpp new file mode 100644 index 0000000000..15413c1840 --- /dev/null +++ b/src/kernel/context.cpp @@ -0,0 +1,33 @@ +// Copyright (c) 2022 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 <kernel/context.h> + +#include <crypto/sha256.h> +#include <key.h> +#include <logging.h> +#include <pubkey.h> +#include <random.h> + +#include <string> + + +namespace kernel { + +Context::Context() +{ + std::string sha256_algo = SHA256AutoDetect(); + LogPrintf("Using the '%s' SHA256 implementation\n", sha256_algo); + RandomInit(); + ECC_Start(); + ecc_verify_handle.reset(new ECCVerifyHandle()); +} + +Context::~Context() +{ + ecc_verify_handle.reset(); + ECC_Stop(); +} + +} // namespace kernel |