/root/bitcoin/src/chainparamsbase.cpp
| Line | Count | Source | 
| 1 |  | // Copyright (c) 2010 Satoshi Nakamoto | 
| 2 |  | // Copyright (c) 2009-present The Bitcoin Core developers | 
| 3 |  | // Distributed under the MIT software license, see the accompanying | 
| 4 |  | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | 
| 5 |  |  | 
| 6 |  | #include <chainparamsbase.h> | 
| 7 |  |  | 
| 8 |  | #include <common/args.h> | 
| 9 |  | #include <tinyformat.h> | 
| 10 |  | #include <util/chaintype.h> | 
| 11 |  |  | 
| 12 |  | #include <cassert> | 
| 13 |  |  | 
| 14 |  | void SetupChainParamsBaseOptions(ArgsManager& argsman) | 
| 15 | 0 | { | 
| 16 | 0 |     argsman.AddArg("-chain=<chain>", "Use the chain <chain> (default: main). Allowed values: " LIST_CHAIN_NAMES, ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); | 
| 17 | 0 |     argsman.AddArg("-regtest", "Enter regression test mode, which uses a special chain in which blocks can be solved instantly. " | 
| 18 | 0 |                  "This is intended for regression testing tools and app development. Equivalent to -chain=regtest.", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS); | 
| 19 | 0 |     argsman.AddArg("-testactivationheight=name@height.", "Set the activation height of 'name' (segwit, bip34, dersig, cltv, csv). (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST); | 
| 20 | 0 |     argsman.AddArg("-testnet", "Use the testnet3 chain. Equivalent to -chain=test. Support for testnet3 is deprecated and will be removed in an upcoming release. Consider moving to testnet4 now by using -testnet4.", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); | 
| 21 | 0 |     argsman.AddArg("-testnet4", "Use the testnet4 chain. Equivalent to -chain=testnet4.", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); | 
| 22 | 0 |     argsman.AddArg("-vbparams=deployment:start:end[:min_activation_height]", "Use given start/end times and min_activation_height for specified version bits deployment (regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS); | 
| 23 | 0 |     argsman.AddArg("-signet", "Use the signet chain. Equivalent to -chain=signet. Note that the network is defined by the -signetchallenge parameter", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS); | 
| 24 | 0 |     argsman.AddArg("-signetchallenge", "Blocks must satisfy the given script to be considered valid (only for signet networks; defaults to the global default signet test network challenge)", ArgsManager::ALLOW_ANY | ArgsManager::DISALLOW_NEGATION, OptionsCategory::CHAINPARAMS); | 
| 25 | 0 |     argsman.AddArg("-signetseednode", "Specify a seed node for the signet network, in the hostname[:port] format, e.g. sig.net:1234 (may be used multiple times to specify multiple seed nodes; defaults to the global default signet test network seed node(s))", ArgsManager::ALLOW_ANY | ArgsManager::DISALLOW_NEGATION, OptionsCategory::CHAINPARAMS); | 
| 26 | 0 | } | 
| 27 |  |  | 
| 28 |  | static std::unique_ptr<CBaseChainParams> globalChainBaseParams; | 
| 29 |  |  | 
| 30 |  | const CBaseChainParams& BaseParams() | 
| 31 | 0 | { | 
| 32 | 0 |     assert(globalChainBaseParams); | 
| 33 | 0 |     return *globalChainBaseParams; | 
| 34 | 0 | } | 
| 35 |  |  | 
| 36 |  | /** | 
| 37 |  |  * Port numbers for incoming Tor connections (8334, 18334, 38334, 48334, 18445) have | 
| 38 |  |  * been chosen arbitrarily to keep ranges of used ports tight. | 
| 39 |  |  */ | 
| 40 |  | std::unique_ptr<CBaseChainParams> CreateBaseChainParams(const ChainType chain) | 
| 41 | 0 | { | 
| 42 | 0 |     switch (chain) { | 
| 43 | 0 |     case ChainType::MAIN: | 
| 44 | 0 |         return std::make_unique<CBaseChainParams>("", 8332); | 
| 45 | 0 |     case ChainType::TESTNET: | 
| 46 | 0 |         return std::make_unique<CBaseChainParams>("testnet3", 18332); | 
| 47 | 0 |     case ChainType::TESTNET4: | 
| 48 | 0 |         return std::make_unique<CBaseChainParams>("testnet4", 48332); | 
| 49 | 0 |     case ChainType::SIGNET: | 
| 50 | 0 |         return std::make_unique<CBaseChainParams>("signet", 38332); | 
| 51 | 0 |     case ChainType::REGTEST: | 
| 52 | 0 |         return std::make_unique<CBaseChainParams>("regtest", 18443); | 
| 53 | 0 |     } | 
| 54 | 0 |     assert(false); | 
| 55 | 0 | } | 
| 56 |  |  | 
| 57 |  | void SelectBaseParams(const ChainType chain) | 
| 58 | 0 | { | 
| 59 | 0 |     globalChainBaseParams = CreateBaseChainParams(chain); | 
| 60 | 0 |     gArgs.SelectConfigNetwork(ChainTypeToString(chain)); | 
| 61 | 0 | } |