diff options
| author | langerhans <[email protected]> | 2019-06-09 19:49:48 +0200 |
|---|---|---|
| committer | langerhans <[email protected]> | 2019-06-09 19:51:03 +0200 |
| commit | d278efaccdc45e7155147d2c86a50f193eafdc07 (patch) | |
| tree | 05cf92afa059fafff80e460c1619edd5bec231b3 /src/consensus/params.h | |
| parent | Revert "Change fPIE to fPIC (#1420)" (#1447) (diff) | |
| parent | Mark 1.14 ready for release (diff) | |
| download | archived-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.h | 58 |
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 |