aboutsummaryrefslogtreecommitdiff
path: root/src/consensus
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2016-02-15 05:13:27 +0100
committerBtcDrak <btcdrak@gmail.com>2016-03-18 09:14:52 +0000
commit6f83cf2adb2fd73cfeaa8ef67054ea8a0e4ef4db (patch)
tree8958c2d5a7f146c560d73f1b85149a1be098647c /src/consensus
parentade85e126d1ba7cb90a3382fb8c3cc4f3b89dc4d (diff)
downloadbitcoin-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.h28
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;