Bitcoin Core  31.0.0
P2P Digital Currency
validation.h
Go to the documentation of this file.
1 // Copyright (c) 2020-present 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 #ifndef BITCOIN_TEST_UTIL_VALIDATION_H
6 #define BITCOIN_TEST_UTIL_VALIDATION_H
7 
8 #include <validation.h>
9 
10 namespace node {
11 class BlockManager;
12 }
14 
17  void CleanupForFuzzing();
18 };
19 
22  void DisableNextWrite();
24  void ResetIbd();
26  void JumpOutOfIbd();
32 };
33 
35 {
36 public:
37  static void BlockConnected(
38  const kernel::ChainstateRole& role,
40  const std::shared_ptr<const CBlock>& block,
41  const CBlockIndex* pindex);
42 };
43 
44 #endif // BITCOIN_TEST_UTIL_VALIDATION_H
Interface for managing multiple Chainstate objects, where each chainstate is associated with chainsta...
Definition: validation.h:939
Information about chainstate that notifications are sent from.
Definition: types.h:18
void InvalidBlockFound(CBlockIndex *pindex, const BlockValidationState &state) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Wrappers that avoid making chainstatemanager internals public for tests.
Definition: validation.cpp:54
static void BlockConnected(const kernel::ChainstateRole &role, CValidationInterface &obj, const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex)
Definition: validation.cpp:46
Implement this to subscribe to events generated in validation and mempool.
void JumpOutOfIbd()
Toggle IsInitialBlockDownload from true to false.
Definition: validation.cpp:39
CBlockIndex * FindMostWorkChain() EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Definition: validation.cpp:78
Maintains a tree of blocks (stored in m_block_index) which is consulted to determine where the most-w...
Definition: blockstorage.h:191
Definition: messages.h:21
#define EXCLUSIVE_LOCKS_REQUIRED(...)
Definition: threadsafety.h:51
void InvalidChainFound(CBlockIndex *pindexNew) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Definition: validation.cpp:66
The block chain is a tree shaped structure starting with the genesis block at the root...
Definition: chain.h:93
void ResetIbd()
Reset the ibd cache to its initial state.
Definition: validation.cpp:33
void DisableNextWrite()
Disable the next write of all chainstates.
Definition: validation.cpp:22
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate...
Definition: cs_main.cpp:8
void ResetBestInvalid() EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Definition: validation.cpp:90
void CleanupForFuzzing()
Test-only method to clear internal state for fuzzing.
Definition: validation.cpp:15