|
|
@ -6,8 +6,6 @@ |
|
|
|
#include "chainparams.h" |
|
|
|
#include "chainparams.h" |
|
|
|
|
|
|
|
|
|
|
|
#include "assert.h" |
|
|
|
#include "assert.h" |
|
|
|
#include "core.h" |
|
|
|
|
|
|
|
#include "protocol.h" |
|
|
|
|
|
|
|
#include "util.h" |
|
|
|
#include "util.h" |
|
|
|
|
|
|
|
|
|
|
|
#include <boost/assign/list_of.hpp> |
|
|
|
#include <boost/assign/list_of.hpp> |
|
|
@ -100,6 +98,7 @@ unsigned int pnSeed[] = |
|
|
|
class CMainParams : public CChainParams { |
|
|
|
class CMainParams : public CChainParams { |
|
|
|
public: |
|
|
|
public: |
|
|
|
CMainParams() { |
|
|
|
CMainParams() { |
|
|
|
|
|
|
|
networkID = CChainParams::MAIN; |
|
|
|
// The message start string is designed to be unlikely to occur in normal data.
|
|
|
|
// The message start string is designed to be unlikely to occur in normal data.
|
|
|
|
// The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
|
|
|
// The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
|
|
|
// a large 4-byte int at any alignment.
|
|
|
|
// a large 4-byte int at any alignment.
|
|
|
@ -171,27 +170,25 @@ public: |
|
|
|
addr.nTime = GetTime() - GetRand(nOneWeek) - nOneWeek; |
|
|
|
addr.nTime = GetTime() - GetRand(nOneWeek) - nOneWeek; |
|
|
|
vFixedSeeds.push_back(addr); |
|
|
|
vFixedSeeds.push_back(addr); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual const CBlock& GenesisBlock() const { return genesis; } |
|
|
|
|
|
|
|
virtual Network NetworkID() const { return CChainParams::MAIN; } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual const vector<CAddress>& FixedSeeds() const { |
|
|
|
fRequireRPCPassword = true; |
|
|
|
return vFixedSeeds; |
|
|
|
fMiningRequiresPeers = true; |
|
|
|
|
|
|
|
fDefaultCheckMemPool = false; |
|
|
|
|
|
|
|
fAllowMinDifficultyBlocks = false; |
|
|
|
|
|
|
|
fRequireStandard = true; |
|
|
|
|
|
|
|
fRPCisTestNet = false; |
|
|
|
|
|
|
|
fMineBlocksOnDemand = false; |
|
|
|
} |
|
|
|
} |
|
|
|
protected: |
|
|
|
|
|
|
|
CBlock genesis; |
|
|
|
|
|
|
|
vector<CAddress> vFixedSeeds; |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
static CMainParams mainParams; |
|
|
|
static CMainParams mainParams; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Testnet (v3)
|
|
|
|
// Testnet (v3)
|
|
|
|
//
|
|
|
|
//
|
|
|
|
class CTestNetParams : public CMainParams { |
|
|
|
class CTestNetParams : public CMainParams { |
|
|
|
public: |
|
|
|
public: |
|
|
|
CTestNetParams() { |
|
|
|
CTestNetParams() { |
|
|
|
|
|
|
|
networkID = CChainParams::TESTNET; |
|
|
|
// The message start string is designed to be unlikely to occur in normal data.
|
|
|
|
// The message start string is designed to be unlikely to occur in normal data.
|
|
|
|
// The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
|
|
|
// The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
|
|
|
// a large 4-byte int at any alignment.
|
|
|
|
// a large 4-byte int at any alignment.
|
|
|
@ -223,22 +220,25 @@ public: |
|
|
|
base58Prefixes[SECRET_KEY] = list_of(239); |
|
|
|
base58Prefixes[SECRET_KEY] = list_of(239); |
|
|
|
base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x35)(0x87)(0xCF); |
|
|
|
base58Prefixes[EXT_PUBLIC_KEY] = list_of(0x04)(0x35)(0x87)(0xCF); |
|
|
|
base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x35)(0x83)(0x94); |
|
|
|
base58Prefixes[EXT_SECRET_KEY] = list_of(0x04)(0x35)(0x83)(0x94); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool AllowMinDifficultyBlocks() const { return true; } |
|
|
|
fRequireRPCPassword = true; |
|
|
|
virtual bool RequireStandard() const { return false; } |
|
|
|
fMiningRequiresPeers = true; |
|
|
|
virtual bool RPCisTestNet() const { return true; } |
|
|
|
fDefaultCheckMemPool = false; |
|
|
|
virtual Network NetworkID() const { return CChainParams::TESTNET; } |
|
|
|
fAllowMinDifficultyBlocks = true; |
|
|
|
|
|
|
|
fRequireStandard = false; |
|
|
|
|
|
|
|
fRPCisTestNet = true; |
|
|
|
|
|
|
|
fMineBlocksOnDemand = false; |
|
|
|
|
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
static CTestNetParams testNetParams; |
|
|
|
static CTestNetParams testNetParams; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Regression test
|
|
|
|
// Regression test
|
|
|
|
//
|
|
|
|
//
|
|
|
|
class CRegTestParams : public CTestNetParams { |
|
|
|
class CRegTestParams : public CTestNetParams { |
|
|
|
public: |
|
|
|
public: |
|
|
|
CRegTestParams() { |
|
|
|
CRegTestParams() { |
|
|
|
|
|
|
|
networkID = CChainParams::REGTEST; |
|
|
|
pchMessageStart[0] = 0xfa; |
|
|
|
pchMessageStart[0] = 0xfa; |
|
|
|
pchMessageStart[1] = 0xbf; |
|
|
|
pchMessageStart[1] = 0xbf; |
|
|
|
pchMessageStart[2] = 0xb5; |
|
|
|
pchMessageStart[2] = 0xb5; |
|
|
@ -258,14 +258,15 @@ public: |
|
|
|
assert(hashGenesisBlock == uint256("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206")); |
|
|
|
assert(hashGenesisBlock == uint256("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206")); |
|
|
|
|
|
|
|
|
|
|
|
vSeeds.clear(); // Regtest mode doesn't have any DNS seeds.
|
|
|
|
vSeeds.clear(); // Regtest mode doesn't have any DNS seeds.
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool RequireRPCPassword() const { return false; } |
|
|
|
fRequireRPCPassword = false; |
|
|
|
virtual bool MiningRequiresPeers() const { return false; } |
|
|
|
fMiningRequiresPeers = false; |
|
|
|
virtual bool MineBlocksOnDemand() const { return true; } |
|
|
|
fDefaultCheckMemPool = true; |
|
|
|
virtual bool DefaultCheckMemPool() const { return true; } |
|
|
|
fAllowMinDifficultyBlocks = true; |
|
|
|
virtual bool RequireStandard() const { return false; } |
|
|
|
fRequireStandard = false; |
|
|
|
virtual Network NetworkID() const { return CChainParams::REGTEST; } |
|
|
|
fRPCisTestNet = true; |
|
|
|
|
|
|
|
fMineBlocksOnDemand = true; |
|
|
|
|
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
static CRegTestParams regTestParams; |
|
|
|
static CRegTestParams regTestParams; |
|
|
|
|
|
|
|
|
|
|
|