Skip to content

Commit 65751a3

Browse files
sipabtcdrak
authored andcommitted
Add CHECKSEQUENCEVERIFY softfork through BIP9
1 parent 73b7eb5 commit 65751a3

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

src/chainparams.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,13 @@ class CMainParams : public CChainParams {
8686
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
8787
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008
8888
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008
89-
/**
89+
90+
// Deployment of BIP68, BIP112, and BIP113.
91+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].bit = 0;
92+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nStartTime = 1462060800; // May 1st, 2016
93+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nTimeout = 1493596800; // May 1st, 2017
94+
95+
/**
9096
* The message start string is designed to be unlikely to occur in normal data.
9197
* The characters are rarely used upper ASCII, not valid as UTF-8, and produce
9298
* a large 32-bit integer with any alignment.
@@ -172,6 +178,12 @@ class CTestNetParams : public CChainParams {
172178
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
173179
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008
174180
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008
181+
182+
// Deployment of BIP68, BIP112, and BIP113.
183+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].bit = 0;
184+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nStartTime = 1456790400; // March 1st, 2016
185+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nTimeout = 1493596800; // May 1st, 2017
186+
175187
pchMessageStart[0] = 0x0b;
176188
pchMessageStart[1] = 0x11;
177189
pchMessageStart[2] = 0x09;
@@ -240,6 +252,9 @@ class CRegTestParams : public CChainParams {
240252
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
241253
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 0;
242254
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 999999999999ULL;
255+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].bit = 0;
256+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nStartTime = 0;
257+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nTimeout = 999999999999ULL;
243258

244259
pchMessageStart[0] = 0xfa;
245260
pchMessageStart[1] = 0xbf;

src/consensus/params.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ namespace Consensus {
1515
enum DeploymentPos
1616
{
1717
DEPLOYMENT_TESTDUMMY,
18+
DEPLOYMENT_CSV, // Deployment of BIP68, BIP112, and BIP113.
1819
MAX_VERSION_BITS_DEPLOYMENTS
1920
};
2021

src/main.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2262,6 +2262,11 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
22622262
flags |= SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY;
22632263
}
22642264

2265+
// Start enforcing CHECKSEQUENCEVERIFY using versionbits logic.
2266+
if (VersionBitsState(pindex->pprev, chainparams.GetConsensus(), Consensus::DEPLOYMENT_CSV, versionbitscache) == THRESHOLD_ACTIVE) {
2267+
flags |= SCRIPT_VERIFY_CHECKSEQUENCEVERIFY;
2268+
}
2269+
22652270
int64_t nTime2 = GetTimeMicros(); nTimeForks += nTime2 - nTime1;
22662271
LogPrint("bench", " - Fork checks: %.2fms [%.2fs]\n", 0.001 * (nTime2 - nTime1), nTimeForks * 0.000001);
22672272

src/rpc/blockchain.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@ UniValue getblockchaininfo(const UniValue& params, bool fHelp)
681681
softforks.push_back(SoftForkDesc("bip34", 2, tip, consensusParams));
682682
softforks.push_back(SoftForkDesc("bip66", 3, tip, consensusParams));
683683
softforks.push_back(SoftForkDesc("bip65", 4, tip, consensusParams));
684+
bip9_softforks.push_back(BIP9SoftForkDesc("csv", consensusParams, Consensus::DEPLOYMENT_CSV));
684685
obj.push_back(Pair("softforks", softforks));
685686
obj.push_back(Pair("bip9_softforks", bip9_softforks));
686687

0 commit comments

Comments
 (0)