Browse Source

Add MiningRequiresPeers chain parameter

0.10
jtimon 10 years ago
parent
commit
1712adbe0b
  1. 1
      src/chainparams.cpp
  2. 2
      src/chainparams.h
  3. 5
      src/miner.cpp

1
src/chainparams.cpp

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

2
src/chainparams.h

@ -59,6 +59,8 @@ public: @@ -59,6 +59,8 @@ public:
int SubsidyHalvingInterval() const { return nSubsidyHalvingInterval; }
virtual const CBlock& GenesisBlock() const = 0;
virtual bool RequireRPCPassword() const { return true; }
/* Make miner wait to have peers to avoid wasting work */
virtual bool MiningRequiresPeers() const { return true; }
const string& DataDir() const { return strDataDir; }
virtual Network NetworkID() const = 0;
const vector<CDNSSeedData>& DNSSeeds() const { return vSeeds; }

5
src/miner.cpp

@ -512,7 +512,7 @@ void static BitcoinMiner(CWallet *pwallet) @@ -512,7 +512,7 @@ void static BitcoinMiner(CWallet *pwallet)
unsigned int nExtraNonce = 0;
try { while (true) {
if (Params().NetworkID() != CChainParams::REGTEST) {
if (Params().MiningRequiresPeers()) {
// Busy-wait for the network to come online so we don't waste time mining
// on an obsolete chain. In regtest mode we expect to fly solo.
while (vNodes.empty())
@ -620,7 +620,8 @@ void static BitcoinMiner(CWallet *pwallet) @@ -620,7 +620,8 @@ void static BitcoinMiner(CWallet *pwallet)
// Check for stop or if block needs to be rebuilt
boost::this_thread::interruption_point();
if (vNodes.empty() && Params().NetworkID() != CChainParams::REGTEST)
// Regtest mode doesn't require peers
if (vNodes.empty() && Params().MiningRequiresPeers())
break;
if (nBlockNonce >= 0xffff0000)
break;

Loading…
Cancel
Save