Bitcoin Core 32.99.0
P2P Digital Currency
Classes | Functions
mining.cpp File Reference
#include <test/util/mining.h>
#include <addresstype.h>
#include <chain.h>
#include <chainparams.h>
#include <consensus/merkle.h>
#include <consensus/validation.h>
#include <key_io.h>
#include <node/block_template_manager.h>
#include <node/context.h>
#include <node/miner.h>
#include <pow.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <script/script.h>
#include <sync.h>
#include <test/util/script.h>
#include <uint256.h>
#include <util/check.h>
#include <validation.h>
#include <validationinterface.h>
#include <versionbits.h>
#include <cstdint>
#include <memory>
#include <optional>
#include <utility>
Include dependency graph for mining.cpp:

Go to the source code of this file.

Classes

struct  BlockValidationStateCatcher
 

Functions

COutPoint generatetoaddress (const NodeContext &node, const std::string &address)
 RPC-like helper function, returns the generated coin. More...
 
std::vector< std::shared_ptr< CBlock > > CreateBlockChain (size_t total_height, const CChainParams &params)
 Create a blockchain, starting from genesis. More...
 
bool BuildChain (const NodeContext &node, const CBlockIndex *pindex, const CScript &coinbase_script_pub_key, size_t length, std::vector< std::shared_ptr< CBlock > > &chain)
 Build a chain of length coinbase-only blocks on top of pindex (which need not be the active tip, allowing forks to be created) and submit their headers. More...
 
COutPoint MineBlock (const NodeContext &node, const node::BlockCreateOptions &assembler_options)
 Returns the generated coin. More...
 
COutPoint MineBlock (const NodeContext &node, std::shared_ptr< CBlock > &block)
 Returns the generated coin (or Null if the block was invalid). More...
 
COutPoint ProcessBlock (const NodeContext &node, const std::shared_ptr< CBlock > &block)
 Returns the generated coin (or Null if the block was invalid). More...
 
std::shared_ptr< CBlock > PrepareBlock (const NodeContext &node, const node::BlockCreateOptions &assembler_options)
 Prepare a block to be mined. More...
 

Function Documentation

◆ BuildChain()

bool BuildChain ( const node::NodeContext &  node,
const CBlockIndex *  pindex,
const CScript &  coinbase_script_pub_key,
size_t  length,
std::vector< std::shared_ptr< CBlock > > &  chain 
)

Build a chain of length coinbase-only blocks on top of pindex (which need not be the active tip, allowing forks to be created) and submit their headers.

The blocks themselves are returned in chain for the caller to process.

Definition at line 79 of file mining.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateBlockChain()

std::vector< std::shared_ptr< CBlock > > CreateBlockChain ( size_t  total_height,
const CChainParams &  params 
)

Create a blockchain, starting from genesis.

Definition at line 44 of file mining.cpp.

Here is the call graph for this function:

◆ generatetoaddress()

COutPoint generatetoaddress ( const NodeContext &  node,
const std::string &  address 
)

RPC-like helper function, returns the generated coin.

Definition at line 35 of file mining.cpp.

Here is the call graph for this function:

◆ MineBlock() [1/2]

COutPoint MineBlock ( const NodeContext &  node,
const node::BlockCreateOptions &  assembler_options 
)

Returns the generated coin.

Definition at line 120 of file mining.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MineBlock() [2/2]

COutPoint MineBlock ( const node::NodeContext &  node,
std::shared_ptr< CBlock > &  block 
)

Returns the generated coin (or Null if the block was invalid).

It is recommended to call RegenerateCommitments before mining the block to avoid merkle tree mismatches.

Definition at line 144 of file mining.cpp.

Here is the call graph for this function:

◆ PrepareBlock()

std::shared_ptr< CBlock > PrepareBlock ( const NodeContext &  node,
const node::BlockCreateOptions &  assembler_options 
)

Prepare a block to be mined.

Definition at line 173 of file mining.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProcessBlock()

COutPoint ProcessBlock ( const NodeContext &  node,
const std::shared_ptr< CBlock > &  block 
)

Returns the generated coin (or Null if the block was invalid).

Definition at line 154 of file mining.cpp.

Here is the call graph for this function:
Here is the caller graph for this function: