Skip to content

Commit 70ebe86

Browse files
committed
Create segnet4
1 parent 66dbd81 commit 70ebe86

File tree

3 files changed

+85
-2
lines changed

3 files changed

+85
-2
lines changed

src/chainparams.cpp

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "tinyformat.h"
1010
#include "util.h"
1111
#include "utilstrencodings.h"
12+
#include "arith_uint256.h"
1213

1314
#include <assert.h>
1415

@@ -227,6 +228,64 @@ class CTestNetParams : public CChainParams {
227228
};
228229
static CTestNetParams testNetParams;
229230

231+
/**
232+
* Segnet
233+
*/
234+
class CSegNetParams : public CChainParams {
235+
public:
236+
CSegNetParams() {
237+
strNetworkID = "segnet4";
238+
consensus.nSubsidyHalvingInterval = 210000;
239+
consensus.nMajorityEnforceBlockUpgrade = 7;
240+
consensus.nMajorityRejectBlockOutdated = 9;
241+
consensus.nMajorityWindow = 10;
242+
consensus.BIP34Height = -1;
243+
consensus.BIP34Hash = uint256();
244+
consensus.powLimit = uint256S("000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); // 512x lower min difficulty than mainnet
245+
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
246+
consensus.nPowTargetSpacing = 10 * 60;
247+
consensus.fPowAllowMinDifficultyBlocks = true;
248+
consensus.fPowNoRetargeting = false;
249+
pchMessageStart[0] = 0xdc;
250+
pchMessageStart[1] = 0xab;
251+
pchMessageStart[2] = 0xa1;
252+
pchMessageStart[3] = 0xc4;
253+
nDefaultPort = 28901;
254+
nPruneAfterHeight = 1000;
255+
consensus.nRuleChangeActivationThreshold = 108; // 75% for testchains
256+
consensus.nMinerConfirmationWindow = 144; // Faster than normal for segnet (144 instead of 2016)
257+
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
258+
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008
259+
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008
260+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].bit = 0;
261+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nStartTime = 0;
262+
consensus.vDeployments[Consensus::DEPLOYMENT_CSV].nTimeout = 999999999999ULL;
263+
264+
genesis = CreateGenesisBlock(1452831101, 0, UintToArith256(consensus.powLimit).GetCompact(), 1, 50 * COIN);
265+
consensus.hashGenesisBlock = genesis.GetHash();
266+
267+
vFixedSeeds.clear();
268+
vSeeds.clear();
269+
270+
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,30);
271+
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,50);
272+
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,158);
273+
base58Prefixes[EXT_PUBLIC_KEY] = boost::assign::list_of(0x05)(0x35)(0x87)(0xCF).convert_to_container<std::vector<unsigned char> >();
274+
base58Prefixes[EXT_SECRET_KEY] = boost::assign::list_of(0x05)(0x35)(0x83)(0x94).convert_to_container<std::vector<unsigned char> >();
275+
276+
vFixedSeeds = std::vector<SeedSpec6>(pnSeed6_seg, pnSeed6_seg + ARRAYLEN(pnSeed6_seg));
277+
278+
fMiningRequiresPeers = true;
279+
fDefaultConsistencyChecks = false;
280+
fRequireStandard = false;
281+
fMineBlocksOnDemand = false;
282+
fTestnetToBeDeprecatedFieldRPC = true;
283+
284+
// checkpointData is empty
285+
}
286+
};
287+
static CSegNetParams segNetParams;
288+
230289
/**
231290
* Regression test
232291
*/
@@ -304,6 +363,8 @@ CChainParams& Params(const std::string& chain)
304363
return mainParams;
305364
else if (chain == CBaseChainParams::TESTNET)
306365
return testNetParams;
366+
else if (chain == CBaseChainParams::SEGNET)
367+
return segNetParams;
307368
else if (chain == CBaseChainParams::REGTEST)
308369
return regTestParams;
309370
else

src/chainparamsbase.cpp

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
const std::string CBaseChainParams::MAIN = "main";
1414
const std::string CBaseChainParams::TESTNET = "test";
1515
const std::string CBaseChainParams::REGTEST = "regtest";
16+
const std::string CBaseChainParams::SEGNET = "segnet";
1617

1718
void AppendParamsHelpMessages(std::string& strUsage, bool debugHelp)
1819
{
@@ -21,6 +22,7 @@ void AppendParamsHelpMessages(std::string& strUsage, bool debugHelp)
2122
if (debugHelp) {
2223
strUsage += HelpMessageOpt("-regtest", "Enter regression test mode, which uses a special chain in which blocks can be solved instantly. "
2324
"This is intended for regression testing tools and app development.");
25+
strUsage += HelpMessageOpt("-segnet", "Enter segregated witness test mode. ");
2426
}
2527
}
2628

@@ -51,6 +53,20 @@ class CBaseTestNetParams : public CBaseChainParams
5153
};
5254
static CBaseTestNetParams testNetParams;
5355

56+
/**
57+
* Segnet
58+
*/
59+
class CBaseSegNetParams : public CBaseChainParams
60+
{
61+
public:
62+
CBaseSegNetParams()
63+
{
64+
nRPCPort = 28902;
65+
strDataDir = "segnet4";
66+
}
67+
};
68+
static CBaseSegNetParams segNetParams;
69+
5470
/*
5571
* Regression test
5672
*/
@@ -79,6 +95,8 @@ CBaseChainParams& BaseParams(const std::string& chain)
7995
return mainParams;
8096
else if (chain == CBaseChainParams::TESTNET)
8197
return testNetParams;
98+
else if (chain == CBaseChainParams::SEGNET)
99+
return segNetParams;
82100
else if (chain == CBaseChainParams::REGTEST)
83101
return regTestParams;
84102
else
@@ -94,13 +112,16 @@ std::string ChainNameFromCommandLine()
94112
{
95113
bool fRegTest = GetBoolArg("-regtest", false);
96114
bool fTestNet = GetBoolArg("-testnet", false);
115+
bool fSegNet = GetBoolArg("-segnet", false);
97116

98-
if (fTestNet && fRegTest)
99-
throw std::runtime_error("Invalid combination of -regtest and -testnet.");
117+
if ((int)fRegTest + (int)fTestNet + (int)fSegNet > 1)
118+
throw std::runtime_error("Invalid combination of -regtest, -testnet, -segnet.");
100119
if (fRegTest)
101120
return CBaseChainParams::REGTEST;
102121
if (fTestNet)
103122
return CBaseChainParams::TESTNET;
123+
if (fSegNet)
124+
return CBaseChainParams::SEGNET;
104125
return CBaseChainParams::MAIN;
105126
}
106127

src/chainparamsbase.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class CBaseChainParams
1919
static const std::string MAIN;
2020
static const std::string TESTNET;
2121
static const std::string REGTEST;
22+
static const std::string SEGNET;
2223

2324
const std::string& DataDir() const { return strDataDir; }
2425
int RPCPort() const { return nRPCPort; }

0 commit comments

Comments
 (0)