aboutsummaryrefslogtreecommitdiff
path: root/src/chainparams.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/chainparams.h')
-rw-r--r--src/chainparams.h59
1 files changed, 41 insertions, 18 deletions
diff --git a/src/chainparams.h b/src/chainparams.h
index 5600b904cc..988e3ac3a4 100644
--- a/src/chainparams.h
+++ b/src/chainparams.h
@@ -7,17 +7,15 @@
#define BITCOIN_CHAIN_PARAMS_H
#include "uint256.h"
+#include "core.h"
+#include "protocol.h"
#include <vector>
using namespace std;
-#define MESSAGE_START_SIZE 4
typedef unsigned char MessageStartChars[MESSAGE_START_SIZE];
-class CAddress;
-class CBlock;
-
struct CDNSSeedData {
string name, host;
CDNSSeedData(const string &strName, const string &strHost) : name(strName), host(strHost) {}
@@ -57,13 +55,33 @@ public:
int GetDefaultPort() const { return nDefaultPort; }
const uint256& ProofOfWorkLimit() const { return bnProofOfWorkLimit; }
int SubsidyHalvingInterval() const { return nSubsidyHalvingInterval; }
- virtual const CBlock& GenesisBlock() const = 0;
- virtual bool RequireRPCPassword() const { return true; }
+ /* Used to check majorities for block version upgrade */
+ int EnforceBlockUpgradeMajority() const { return nEnforceBlockUpgradeMajority; }
+ int RejectBlockOutdatedMajority() const { return nRejectBlockOutdatedMajority; }
+ int ToCheckBlockUpgradeMajority() const { return nToCheckBlockUpgradeMajority; }
+
+ /* Used if GenerateBitcoins is called with a negative number of threads */
+ int DefaultMinerThreads() const { return nMinerThreads; }
+ const CBlock& GenesisBlock() const { return genesis; };
+ bool RequireRPCPassword() const { return fRequireRPCPassword; }
+ /* Make miner wait to have peers to avoid wasting work */
+ bool MiningRequiresPeers() const { return fMiningRequiresPeers; }
+ /* Default value for -checkmempool argument */
+ bool DefaultCheckMemPool() const { return fDefaultCheckMemPool; }
+ /* Allow mining of a min-difficulty block */
+ bool AllowMinDifficultyBlocks() const { return fAllowMinDifficultyBlocks; }
+ /* Make standard checks */
+ bool RequireStandard() const { return fRequireStandard; }
+ /* Make standard checks */
+ bool RPCisTestNet() const { return fRPCisTestNet; }
const string& DataDir() const { return strDataDir; }
- virtual Network NetworkID() const = 0;
+ /* Make miner stop after a block is found. In RPC, don't return
+ * until nGenProcLimit blocks are generated */
+ bool MineBlocksOnDemand() const { return fMineBlocksOnDemand; }
+ Network NetworkID() const { return networkID; }
const vector<CDNSSeedData>& DNSSeeds() const { return vSeeds; }
- const std::vector<unsigned char> &Base58Prefix(Base58Type type) const { return base58Prefixes[type]; }
- virtual const vector<CAddress>& FixedSeeds() const = 0;
+ const std::vector<unsigned char>& Base58Prefix(Base58Type type) const { return base58Prefixes[type]; }
+ const vector<CAddress>& FixedSeeds() const { return vFixedSeeds; }
int RPCPort() const { return nRPCPort; }
protected:
CChainParams() {}
@@ -76,9 +94,23 @@ protected:
int nRPCPort;
uint256 bnProofOfWorkLimit;
int nSubsidyHalvingInterval;
+ int nEnforceBlockUpgradeMajority;
+ int nRejectBlockOutdatedMajority;
+ int nToCheckBlockUpgradeMajority;
string strDataDir;
+ int nMinerThreads;
vector<CDNSSeedData> vSeeds;
std::vector<unsigned char> base58Prefixes[MAX_BASE58_TYPES];
+ Network networkID;
+ CBlock genesis;
+ vector<CAddress> vFixedSeeds;
+ bool fRequireRPCPassword;
+ bool fMiningRequiresPeers;
+ bool fDefaultCheckMemPool;
+ bool fAllowMinDifficultyBlocks;
+ bool fRequireStandard;
+ bool fRPCisTestNet;
+ bool fMineBlocksOnDemand;
};
/**
@@ -96,13 +128,4 @@ void SelectParams(CChainParams::Network network);
*/
bool SelectParamsFromCommandLine();
-inline bool TestNet() {
- // Note: it's deliberate that this returns "false" for regression test mode.
- return Params().NetworkID() == CChainParams::TESTNET;
-}
-
-inline bool RegTest() {
- return Params().NetworkID() == CChainParams::REGTEST;
-}
-
#endif