123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- // Copyright (c) 2010 Satoshi Nakamoto
- // Copyright (c) 2009-2015 The Bitcoin Core developers
- // Distributed under the MIT software license, see the accompanying
- // file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
- #include "chainparamsbase.h"
-
- #include "tinyformat.h"
- #include "util.h"
-
- #include <assert.h>
-
- const std::string CBaseChainParams::MAIN = "main";
- const std::string CBaseChainParams::TESTNET = "test";
- const std::string CBaseChainParams::REGTEST = "regtest";
-
- void AppendParamsHelpMessages(std::string& strUsage, bool debugHelp)
- {
- strUsage += HelpMessageGroup(_("Chain selection options:"));
- strUsage += HelpMessageOpt("-testnet", _("Use the test chain"));
- if (debugHelp) {
- strUsage += HelpMessageOpt("-regtest", "Enter regression test mode, which uses a special chain in which blocks can be solved instantly. "
- "This is intended for regression testing tools and app development.");
- }
- }
-
- /**
- * Main network
- */
- class CBaseMainParams : public CBaseChainParams
- {
- public:
- CBaseMainParams()
- {
- nRPCPort = 8332;
- }
- };
- static CBaseMainParams mainParams;
-
- /**
- * Testnet (v3)
- */
- class CBaseTestNetParams : public CBaseChainParams
- {
- public:
- CBaseTestNetParams()
- {
- nRPCPort = 18332;
- strDataDir = "testnet3";
- }
- };
- static CBaseTestNetParams testNetParams;
-
- /*
- * Regression test
- */
- class CBaseRegTestParams : public CBaseChainParams
- {
- public:
- CBaseRegTestParams()
- {
- nRPCPort = 18332;
- strDataDir = "regtest";
- }
- };
- static CBaseRegTestParams regTestParams;
-
- static CBaseChainParams* pCurrentBaseParams = 0;
-
- const CBaseChainParams& BaseParams()
- {
- assert(pCurrentBaseParams);
- return *pCurrentBaseParams;
- }
-
- CBaseChainParams& BaseParams(const std::string& chain)
- {
- if (chain == CBaseChainParams::MAIN)
- return mainParams;
- else if (chain == CBaseChainParams::TESTNET)
- return testNetParams;
- else if (chain == CBaseChainParams::REGTEST)
- return regTestParams;
- else
- throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain));
- }
-
- void SelectBaseParams(const std::string& chain)
- {
- pCurrentBaseParams = &BaseParams(chain);
- }
-
- std::string ChainNameFromCommandLine()
- {
- bool fRegTest = GetBoolArg("-regtest", false);
- bool fTestNet = GetBoolArg("-testnet", false);
-
- if (fTestNet && fRegTest)
- throw std::runtime_error("Invalid combination of -regtest and -testnet.");
- if (fRegTest)
- return CBaseChainParams::REGTEST;
- if (fTestNet)
- return CBaseChainParams::TESTNET;
- return CBaseChainParams::MAIN;
- }
-
- bool AreBaseParamsConfigured()
- {
- return pCurrentBaseParams != NULL;
- }
|