Browse Source

Add MineBlocksOnDemand chain parameter

0.10
jtimon 11 years ago
parent
commit
bfa9a1a638
  1. 1
      src/chainparams.cpp
  2. 3
      src/chainparams.h
  3. 5
      src/miner.cpp
  4. 2
      src/rpcmining.cpp

1
src/chainparams.cpp

@ -247,6 +247,7 @@ public: @@ -247,6 +247,7 @@ public:
virtual bool RequireRPCPassword() const { return false; }
virtual bool MiningRequiresPeers() const { return false; }
virtual bool MineBlocksOnDemand() const { return true; }
virtual Network NetworkID() const { return CChainParams::REGTEST; }
};
static CRegTestParams regTestParams;

3
src/chainparams.h

@ -62,6 +62,9 @@ public: @@ -62,6 +62,9 @@ public:
/* Make miner wait to have peers to avoid wasting work */
virtual bool MiningRequiresPeers() const { return true; }
const string& DataDir() const { return strDataDir; }
/* Make miner stop after a block is found. In RPC, don't return
* until nGenProcLimit blocks are generated */
virtual bool MineBlocksOnDemand() const { return false; }
virtual Network NetworkID() const = 0;
const vector<CDNSSeedData>& DNSSeeds() const { return vSeeds; }
const std::vector<unsigned char> &Base58Prefix(Base58Type type) const { return base58Prefixes[type]; }

5
src/miner.cpp

@ -580,9 +580,8 @@ void static BitcoinMiner(CWallet *pwallet) @@ -580,9 +580,8 @@ void static BitcoinMiner(CWallet *pwallet)
CheckWork(pblock, *pwallet, reservekey);
SetThreadPriority(THREAD_PRIORITY_LOWEST);
// In regression test mode, stop mining after a block is found. This
// allows developers to controllably generate a block on demand.
if (Params().NetworkID() == CChainParams::REGTEST)
// In regression test mode, stop mining after a block is found.
if (Params().MineBlocksOnDemand())
throw boost::thread_interrupted();
break;

2
src/rpcmining.cpp

@ -174,7 +174,7 @@ Value setgenerate(const Array& params, bool fHelp) @@ -174,7 +174,7 @@ Value setgenerate(const Array& params, bool fHelp)
}
// -regtest mode: don't return until nGenProcLimit blocks are generated
if (fGenerate && Params().NetworkID() == CChainParams::REGTEST)
if (fGenerate && Params().MineBlocksOnDemand())
{
int nHeightStart = 0;
int nHeightEnd = 0;

Loading…
Cancel
Save