aboutsummaryrefslogtreecommitdiff
path: root/src/chainparams.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/chainparams.h')
-rw-r--r--src/chainparams.h60
1 files changed, 14 insertions, 46 deletions
diff --git a/src/chainparams.h b/src/chainparams.h
index 78b575d8f3..aa2ec1e301 100644
--- a/src/chainparams.h
+++ b/src/chainparams.h
@@ -6,11 +6,12 @@
#ifndef BITCOIN_CHAINPARAMS_H
#define BITCOIN_CHAINPARAMS_H
+#include "arith_uint256.h"
#include "chainparamsbase.h"
#include "checkpoints.h"
+#include "consensus/params.h"
#include "primitives/block.h"
#include "protocol.h"
-#include "arith_uint256.h"
#include <vector>
@@ -39,16 +40,16 @@ public:
MAX_BASE58_TYPES
};
- const uint256& HashGenesisBlock() const { return hashGenesisBlock; }
+ const Consensus::Params& GetConsensus() const { return consensus; }
+ const uint256& HashGenesisBlock() const { return consensus.hashGenesisBlock; }
const CMessageHeader::MessageStartChars& MessageStart() const { return pchMessageStart; }
const std::vector<unsigned char>& AlertKey() const { return vAlertPubKey; }
int GetDefaultPort() const { return nDefaultPort; }
- const arith_uint256& ProofOfWorkLimit() const { return bnProofOfWorkLimit; }
- int SubsidyHalvingInterval() const { return nSubsidyHalvingInterval; }
- /** Used to check majorities for block version upgrade */
- int EnforceBlockUpgradeMajority() const { return nEnforceBlockUpgradeMajority; }
- int RejectBlockOutdatedMajority() const { return nRejectBlockOutdatedMajority; }
- int ToCheckBlockUpgradeMajority() const { return nToCheckBlockUpgradeMajority; }
+ const arith_uint256& ProofOfWorkLimit() const { return consensus.powLimit; }
+ int SubsidyHalvingInterval() const { return consensus.nSubsidyHalvingInterval; }
+ int EnforceBlockUpgradeMajority() const { return consensus.nMajorityEnforceBlockUpgrade; }
+ int RejectBlockOutdatedMajority() const { return consensus.nMajorityRejectBlockOutdated; }
+ int ToCheckBlockUpgradeMajority() const { return consensus.nMajorityWindow; }
/** Used if GenerateBitcoins is called with a negative number of threads */
int DefaultMinerThreads() const { return nMinerThreads; }
@@ -59,14 +60,12 @@ public:
/** Default value for -checkmempool argument */
bool DefaultCheckMemPool() const { return fDefaultCheckMemPool; }
/** Allow mining of a min-difficulty block */
- bool AllowMinDifficultyBlocks() const { return fAllowMinDifficultyBlocks; }
- /** Skip proof-of-work check: allow mining of any difficulty block */
- bool SkipProofOfWorkCheck() const { return fSkipProofOfWorkCheck; }
+ bool AllowMinDifficultyBlocks() const { return consensus.fPowAllowMinDifficultyBlocks; }
/** Make standard checks */
bool RequireStandard() const { return fRequireStandard; }
- int64_t TargetTimespan() const { return nTargetTimespan; }
- int64_t TargetSpacing() const { return nTargetSpacing; }
- int64_t DifficultyAdjustmentInterval() const { return nTargetTimespan / nTargetSpacing; }
+ int64_t TargetTimespan() const { return consensus.nPowTargetTimespan; }
+ int64_t TargetSpacing() const { return consensus.nPowTargetSpacing; }
+ int64_t DifficultyAdjustmentInterval() const { return consensus.nPowTargetTimespan / consensus.nPowTargetSpacing; }
/** Make miner stop after a block is found. In RPC, don't return until nGenProcLimit blocks are generated */
bool MineBlocksOnDemand() const { return fMineBlocksOnDemand; }
/** In the future use NetworkIDString() for RPC fields */
@@ -80,18 +79,11 @@ public:
protected:
CChainParams() {}
- uint256 hashGenesisBlock;
+ Consensus::Params consensus;
CMessageHeader::MessageStartChars pchMessageStart;
//! Raw pub key bytes for the broadcast alert signing key.
std::vector<unsigned char> vAlertPubKey;
int nDefaultPort;
- arith_uint256 bnProofOfWorkLimit;
- int nSubsidyHalvingInterval;
- int nEnforceBlockUpgradeMajority;
- int nRejectBlockOutdatedMajority;
- int nToCheckBlockUpgradeMajority;
- int64_t nTargetTimespan;
- int64_t nTargetSpacing;
int nMinerThreads;
std::vector<CDNSSeedData> vSeeds;
std::vector<unsigned char> base58Prefixes[MAX_BASE58_TYPES];
@@ -101,32 +93,11 @@ protected:
bool fRequireRPCPassword;
bool fMiningRequiresPeers;
bool fDefaultCheckMemPool;
- bool fAllowMinDifficultyBlocks;
bool fRequireStandard;
bool fMineBlocksOnDemand;
- bool fSkipProofOfWorkCheck;
bool fTestnetToBeDeprecatedFieldRPC;
};
-/**
- * Modifiable parameters interface is used by test cases to adapt the parameters in order
- * to test specific features more easily. Test cases should always restore the previous
- * values after finalization.
- */
-
-class CModifiableParams {
-public:
- //! Published setters to allow changing values in unit test cases
- virtual void setSubsidyHalvingInterval(int anSubsidyHalvingInterval) =0;
- virtual void setEnforceBlockUpgradeMajority(int anEnforceBlockUpgradeMajority)=0;
- virtual void setRejectBlockOutdatedMajority(int anRejectBlockOutdatedMajority)=0;
- virtual void setToCheckBlockUpgradeMajority(int anToCheckBlockUpgradeMajority)=0;
- virtual void setDefaultCheckMemPool(bool aDefaultCheckMemPool)=0;
- virtual void setAllowMinDifficultyBlocks(bool aAllowMinDifficultyBlocks)=0;
- virtual void setSkipProofOfWorkCheck(bool aSkipProofOfWorkCheck)=0;
-};
-
-
/**
* Return the currently selected parameters. This won't change after app startup
* outside of the unit tests.
@@ -136,9 +107,6 @@ const CChainParams &Params();
/** Return parameters for the given network. */
CChainParams &Params(CBaseChainParams::Network network);
-/** Get modifiable network parameters (UNITTEST only) */
-CModifiableParams *ModifiableParams();
-
/** Sets the params returned by Params() to those for the given network. */
void SelectParams(CBaseChainParams::Network network);