aboutsummaryrefslogtreecommitdiff
path: root/src/consensus/params.h
diff options
context:
space:
mode:
authorlangerhans <[email protected]>2019-06-09 19:49:48 +0200
committerlangerhans <[email protected]>2019-06-09 19:51:03 +0200
commitd278efaccdc45e7155147d2c86a50f193eafdc07 (patch)
tree05cf92afa059fafff80e460c1619edd5bec231b3 /src/consensus/params.h
parentRevert "Change fPIE to fPIC (#1420)" (#1447) (diff)
parentMark 1.14 ready for release (diff)
downloadarchived-discoin-d278efaccdc45e7155147d2c86a50f193eafdc07.tar.xz
archived-discoin-d278efaccdc45e7155147d2c86a50f193eafdc07.zip
Merge branch '1.14-branding'
Diffstat (limited to 'src/consensus/params.h')
-rw-r--r--src/consensus/params.h58
1 files changed, 50 insertions, 8 deletions
diff --git a/src/consensus/params.h b/src/consensus/params.h
index 89969707b..250441b2e 100644
--- a/src/consensus/params.h
+++ b/src/consensus/params.h
@@ -1,6 +1,5 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Copyright (c) 2009-2014 The Bitcoin Core developers
-// Copyright (c) 2015 The Dogecoin Core developers
+// Copyright (c) 2009-2016 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
@@ -8,8 +7,32 @@
#define BITCOIN_CONSENSUS_PARAMS_H
#include "uint256.h"
+#include <map>
+#include <string>
namespace Consensus {
+
+enum DeploymentPos
+{
+ DEPLOYMENT_TESTDUMMY,
+ DEPLOYMENT_CSV, // Deployment of BIP68, BIP112, and BIP113.
+ DEPLOYMENT_SEGWIT, // Deployment of BIP141, BIP143, and BIP147.
+ // NOTE: Also add new deployments to VersionBitsDeploymentInfo in versionbits.cpp
+ MAX_VERSION_BITS_DEPLOYMENTS
+};
+
+/**
+ * Struct for each individual consensus rule change using BIP9.
+ */
+struct BIP9Deployment {
+ /** Bit position to select the particular bit in nVersion. */
+ int bit;
+ /** Start MedianTime for version bits miner confirmation. Can be a date in the past */
+ int64_t nStartTime;
+ /** Timeout/expiry MedianTime for the deployment attempt. */
+ int64_t nTimeout;
+};
+
/**
* Parameters that influence chain consensus.
*/
@@ -20,10 +43,26 @@ struct Params {
int nMajorityEnforceBlockUpgrade;
int nMajorityRejectBlockOutdated;
int nMajorityWindow;
- int nCoinbaseMaturity;
+ /** Block height and hash at which BIP34 becomes active */
+ int BIP34Height;
+ uint256 BIP34Hash;
+ /** Block height at which BIP65 becomes active */
+ // int BIP65Height;
+ /** Block height at which BIP66 becomes active */
+ int BIP66Height;
+ /**
+ * Minimum blocks including miner confirmation of the total of 2016 blocks in a retargeting period,
+ * (nPowTargetTimespan / nPowTargetSpacing) which is also used for BIP9 deployments.
+ * Examples: 1916 for 95%, 1512 for testchains.
+ */
+ uint32_t nRuleChangeActivationThreshold;
+ uint32_t nMinerConfirmationWindow;
+ BIP9Deployment vDeployments[MAX_VERSION_BITS_DEPLOYMENTS];
+ uint32_t nCoinbaseMaturity;
/** Proof of work parameters */
uint256 powLimit;
bool fPowAllowMinDifficultyBlocks;
+ bool fPowNoRetargeting;
int64_t nPowTargetSpacing;
int64_t nPowTargetTimespan;
int64_t DifficultyAdjustmentInterval() const { return nPowTargetTimespan / nPowTargetSpacing; }
@@ -31,18 +70,21 @@ struct Params {
/** Dogecoin-specific parameters */
bool fDigishieldDifficultyCalculation;
bool fPowAllowDigishieldMinDifficultyBlocks; // Allow minimum difficulty blocks where a retarget would normally occur
- bool fSimplifiedRewards;
+ bool fSimplifiedRewards; // Use block height derived rewards rather than previous block hash derived
+
+ uint256 nMinimumChainWork;
+ uint256 defaultAssumeValid;
/** Auxpow parameters */
- int16_t nAuxpowChainId;
- bool fAllowAuxPow;
+ int32_t nAuxpowChainId;
bool fStrictChainId;
bool fAllowLegacyBlocks;
/** Height-aware consensus parameters */
uint32_t nHeightEffective; // When these parameters come into use
- struct Params *pLeft; // Left hand branch
- struct Params *pRight; // Right hand branch
+ struct Params *pLeft = nullptr; // Left hand branch
+ struct Params *pRight = nullptr; // Right hand branch
+ const Consensus::Params *GetConsensus(uint32_t nTargetHeight) const;
};
} // namespace Consensus