Bitcoin ABC 0.32.4
P2P Digital Currency
context.cpp
Go to the documentation of this file.
1// Copyright (c) 2022 The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5#include <kernel/context.h>
6
7#include <crypto/sha256.h>
8#include <key.h>
9#include <logging.h>
10#include <pubkey.h>
11#include <random.h>
12
13#include <string>
14
15namespace kernel {
17
20 g_context = this;
21 std::string sha256_algo = SHA256AutoDetect();
22 LogPrintf("Using the '%s' SHA256 implementation\n", sha256_algo);
23 RandomInit();
24 ECC_Start();
26}
27
29 ecc_verify_handle.reset();
30 ECC_Stop();
32 g_context = nullptr;
33}
34
35} // namespace kernel
Users of this module must hold an ECCVerifyHandle.
Definition: pubkey.h:223
void ECC_Start()
Initialize the elliptic curve support.
Definition: key.cpp:434
void ECC_Stop()
Deinitialize the elliptic curve support.
Definition: key.cpp:451
#define LogPrintf(...)
Definition: logging.h:424
Definition: init.h:28
Context * g_context
Global pointer to kernel::Context for legacy code.
Definition: context.cpp:16
void RandomInit()
Initialize global RNG state and log any CPU features that are used.
Definition: random.cpp:760
std::string SHA256AutoDetect()
Autodetect the best available SHA256 implementation.
Definition: sha256.cpp:746
Context struct holding the kernel library's logically global state, and passed to external libbitcoin...
Definition: context.h:22
Context()
Declare default constructor and destructor that are not inline, so code instantiating the kernel::Con...
Definition: context.cpp:18
std::unique_ptr< ECCVerifyHandle > ecc_verify_handle
Definition: context.h:23
assert(!tx.IsCoinBase())