diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2016-02-15 05:13:27 +0100 |
---|---|---|
committer | BtcDrak <btcdrak@gmail.com> | 2016-03-18 09:14:52 +0000 |
commit | 6f83cf2adb2fd73cfeaa8ef67054ea8a0e4ef4db (patch) | |
tree | 8958c2d5a7f146c560d73f1b85149a1be098647c /src/consensus | |
parent | ade85e126d1ba7cb90a3382fb8c3cc4f3b89dc4d (diff) | |
download | bitcoin-6f83cf2adb2fd73cfeaa8ef67054ea8a0e4ef4db.tar.xz |
BIP9 Implementation
Inspired by former implementations by Eric Lombrozo and Rusty Russell, and
based on code by Jorge Timon.
Diffstat (limited to 'src/consensus')
-rw-r--r-- | src/consensus/params.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/consensus/params.h b/src/consensus/params.h index 335750fe80..d5039211a3 100644 --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -7,8 +7,28 @@ #define BITCOIN_CONSENSUS_PARAMS_H #include "uint256.h" +#include <map> +#include <string> namespace Consensus { + +enum DeploymentPos +{ + MAX_VERSION_BITS_DEPLOYMENTS = 0, +}; + +/** + * 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. */ @@ -22,6 +42,14 @@ struct Params { /** Block height and hash at which BIP34 becomes active */ int BIP34Height; uint256 BIP34Hash; + /** + * Minimum blocks including miner confirmation of the total of 2016 blocks in a retargetting 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]; /** Proof of work parameters */ uint256 powLimit; bool fPowAllowMinDifficultyBlocks; |