Bitcoin Core  0.18.99
P2P Digital Currency
params.h
Go to the documentation of this file.
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2018 The Bitcoin Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 
6 #ifndef BITCOIN_CONSENSUS_PARAMS_H
7 #define BITCOIN_CONSENSUS_PARAMS_H
8 
9 #include <uint256.h>
10 #include <limits>
11 #include <map>
12 #include <string>
13 
14 namespace Consensus {
15 
17 {
19  DEPLOYMENT_CSV, // Deployment of BIP68, BIP112, and BIP113.
20  DEPLOYMENT_SEGWIT, // Deployment of BIP141, BIP143, and BIP147.
21  // NOTE: Also add new deployments to VersionBitsDeploymentInfo in versionbits.cpp
23 };
24 
30  int bit;
32  int64_t nStartTime;
34  int64_t nTimeout;
35 
37  static constexpr int64_t NO_TIMEOUT = std::numeric_limits<int64_t>::max();
38 
43  static constexpr int64_t ALWAYS_ACTIVE = -1;
44 };
45 
49 struct Params {
52  /* Block hash that is excepted from BIP16 enforcement */
75  int64_t DifficultyAdjustmentInterval() const { return nPowTargetTimespan / nPowTargetSpacing; }
78 };
79 } // namespace Consensus
80 
81 #endif // BITCOIN_CONSENSUS_PARAMS_H
static constexpr int64_t NO_TIMEOUT
Constant for nTimeout very far in the future.
Definition: params.h:37
uint256 BIP34Hash
Definition: params.h:56
int64_t nPowTargetTimespan
Definition: params.h:74
bool fPowNoRetargeting
Definition: params.h:72
bool fPowAllowMinDifficultyBlocks
Definition: params.h:71
static constexpr int64_t ALWAYS_ACTIVE
Special value for nStartTime indicating that the deployment is always active.
Definition: params.h:43
int BIP66Height
Block height at which BIP66 becomes active.
Definition: params.h:60
Transaction validation functions.
Definition: params.h:14
int nSubsidyHalvingInterval
Definition: params.h:51
uint256 powLimit
Proof of work parameters.
Definition: params.h:70
DeploymentPos
Definition: params.h:16
Struct for each individual consensus rule change using BIP9.
Definition: params.h:28
int BIP34Height
Block height and hash at which BIP34 becomes active.
Definition: params.h:55
int64_t nStartTime
Start MedianTime for version bits miner confirmation.
Definition: params.h:32
uint256 BIP16Exception
Definition: params.h:53
int64_t nPowTargetSpacing
Definition: params.h:73
uint32_t nMinerConfirmationWindow
Definition: params.h:67
Parameters that influence chain consensus.
Definition: params.h:49
int BIP65Height
Block height at which BIP65 becomes active.
Definition: params.h:58
int64_t DifficultyAdjustmentInterval() const
Definition: params.h:75
int64_t nTimeout
Timeout/expiry MedianTime for the deployment attempt.
Definition: params.h:34
256-bit opaque blob.
Definition: uint256.h:121
uint256 nMinimumChainWork
Definition: params.h:76
uint256 defaultAssumeValid
Definition: params.h:77
uint32_t nRuleChangeActivationThreshold
Minimum blocks including miner confirmation of the total of 2016 blocks in a retargeting period...
Definition: params.h:66
int bit
Bit position to select the particular bit in nVersion.
Definition: params.h:30
uint256 hashGenesisBlock
Definition: params.h:50