c8b74258ba
I'm writing some wallet regression tests using -regtest mode, and need to generate an initial multi-hundred-block chain. Repeatedly calling setgenerate to generate one block is slow and doesn't work properly, because block creation happens asynchronously. This adds two features to setgenerate in -regtest mode: 1) Instead of being interpreted as number of threads to start, the third argument is the number of blocks to generate. 2) setgenerate will not return until the block creation threads have created the requested number of blocks.
35 lines
1.2 KiB
C++
35 lines
1.2 KiB
C++
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|
// Copyright (c) 2009-2013 The Bitcoin developers
|
|
// Distributed under the MIT/X11 software license, see the accompanying
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#ifndef BITCOIN_MINER_H
|
|
#define BITCOIN_MINER_H
|
|
|
|
#include <stdint.h>
|
|
|
|
class CBlock;
|
|
class CBlockIndex;
|
|
struct CBlockTemplate;
|
|
class CReserveKey;
|
|
class CScript;
|
|
class CWallet;
|
|
|
|
/** Run the miner threads */
|
|
void GenerateBitcoins(bool fGenerate, CWallet* pwallet, int nThreads);
|
|
/** Generate a new block, without valid proof-of-work */
|
|
CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn);
|
|
CBlockTemplate* CreateNewBlockWithKey(CReserveKey& reservekey);
|
|
/** Modify the extranonce in a block */
|
|
void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& nExtraNonce);
|
|
/** Do mining precalculation */
|
|
void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash1);
|
|
/** Check mined block */
|
|
bool CheckWork(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey);
|
|
/** Base sha256 mining transform */
|
|
void SHA256Transform(void* pstate, void* pinput, const void* pinit);
|
|
|
|
extern double dHashesPerSec;
|
|
extern int64_t nHPSTimerStart;
|
|
|
|
#endif // BITCOIN_MINER_H
|