27 #include <type_traits>
35 txNew.
vin[0].scriptSig =
CScript() << 486604799 <<
CScriptNum(4) << std::vector<unsigned char>((
const unsigned char*)pszTimestamp, (
const unsigned char*)pszTimestamp + strlen(pszTimestamp));
36 txNew.
vout[0].nValue = genesisReward;
37 txNew.
vout[0].scriptPubKey = genesisOutputScript;
40 genesis.
nTime = nTime;
41 genesis.
nBits = nBits;
63 const char* pszTimestamp =
"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks";
64 const CScript genesisOutputScript =
CScript() <<
ParseHex(
"04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") <<
OP_CHECKSIG;
65 return CreateGenesisBlock(pszTimestamp, genesisOutputScript, nTime, nNonce, nBits, nVersion, genesisReward);
134 vSeeds.emplace_back(
"seed.bitcoin.sipa.be.");
135 vSeeds.emplace_back(
"dnsseed.bluematt.me.");
136 vSeeds.emplace_back(
"dnsseed.bitcoin.dashjr.org.");
137 vSeeds.emplace_back(
"seed.bitcoinstats.com.");
138 vSeeds.emplace_back(
"seed.bitcoin.jonasschnelli.ch.");
139 vSeeds.emplace_back(
"seed.btc.petertodd.org.");
140 vSeeds.emplace_back(
"seed.bitcoin.sprovoost.nl.");
141 vSeeds.emplace_back(
"dnsseed.emzy.de.");
142 vSeeds.emplace_back(
"seed.bitcoin.wiz.biz.");
159 { 11111,
uint256S(
"0x0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d")},
160 { 33333,
uint256S(
"0x000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6")},
161 { 74000,
uint256S(
"0x0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20")},
162 {105000,
uint256S(
"0x00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97")},
163 {134444,
uint256S(
"0x00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe")},
164 {168000,
uint256S(
"0x000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763")},
165 {193000,
uint256S(
"0x000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317")},
166 {210000,
uint256S(
"0x000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e")},
167 {216116,
uint256S(
"0x00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e")},
168 {225430,
uint256S(
"0x00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932")},
169 {250000,
uint256S(
"0x000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214")},
170 {279000,
uint256S(
"0x0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40")},
171 {295000,
uint256S(
"0x00000000000000004d9b4ef50f0f9d686fd69db2e03af35a100370c64632a983")},
182 .nTxCount = 820876044,
183 .dTxRate = 3.672283614033389,
245 vSeeds.emplace_back(
"testnet-seed.bitcoin.jonasschnelli.ch.");
246 vSeeds.emplace_back(
"seed.tbtc.petertodd.org.");
247 vSeeds.emplace_back(
"seed.testnet.bitcoin.sprovoost.nl.");
248 vSeeds.emplace_back(
"testnet-seed.bluematt.me.");
265 {546,
uint256S(
"000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70")},
276 .nTxCount = 65345929,
277 .dTxRate = 0.09855282814711661,
289 std::vector<uint8_t> bin;
293 bin =
ParseHex(
"512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae");
294 vSeeds.emplace_back(
"seed.signet.bitcoin.sprovoost.nl.");
297 vSeeds.emplace_back(
"178.128.221.177");
298 vSeeds.emplace_back(
"v7ajjeirttkbnt32wpy3c6w3emwnfr3fkla7hpxcfokr3ysd3kqtzmqd.onion:38333");
308 .dTxRate = 0.006424463050600656,
469 vSeeds.emplace_back(
"dummySeed.invalid.");
476 {0,
uint256S(
"0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206")},
509 return std::make_unique<const SigNetParams>(options);
514 return std::make_unique<const CRegTestParams>(options);
519 return std::make_unique<const CMainParams>();
524 return std::make_unique<const CTestNetParams>();
int64_t CAmount
Amount in satoshis (Can be negative)
static constexpr CAmount COIN
The amount of satoshis in one BTC.
static const uint8_t chainparams_seed_test[]
static const uint8_t chainparams_seed_main[]
List of fixed seed nodes for the bitcoin network AUTOGENERATED by contrib/seeds/generate-seeds....
std::vector< CTransactionRef > vtx
CChainParams defines various tweakable parameters of a given instance of the Bitcoin system.
uint64_t m_assumed_chain_state_size
MessageStartChars pchMessageStart
static std::unique_ptr< const CChainParams > Main()
static std::unique_ptr< const CChainParams > RegTest(const RegTestOptions &options)
MapAssumeutxo m_assumeutxo_data
uint64_t m_assumed_blockchain_size
std::vector< uint8_t > vFixedSeeds
bool fDefaultConsistencyChecks
static std::unique_ptr< const CChainParams > TestNet()
std::vector< unsigned char > base58Prefixes[MAX_BASE58_TYPES]
Consensus::Params consensus
std::vector< std::string > vSeeds
CCheckpointData checkpointData
static std::unique_ptr< const CChainParams > SigNet(const SigNetOptions &options)
uint64_t nPruneAfterHeight
Main network on which people trade goods and services.
Regression test: intended for private networks only.
CRegTestParams(const RegTestOptions &opts)
Serialized script, used inside transaction inputs and outputs.
Testnet (v3): public test network which is reset from time to time.
A writer stream (for serialization) that computes a 256-bit hash.
Signet: test network with an additional consensus parameter (see BIP325).
SigNetParams(const SigNetOptions &options)
constexpr unsigned char * begin()
static CBlock CreateGenesisBlock(const char *pszTimestamp, const CScript &genesisOutputScript, uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount &genesisReward)
std::map< int, const AssumeutxoData > MapAssumeutxo
uint256 BlockMerkleRoot(const CBlock &block, bool *mutated)
static CTransactionRef MakeTransactionRef(Tx &&txIn)
std::vector< Byte > ParseHex(std::string_view hex_str)
Like TryParseHex, but returns an empty vector on invalid input.
RegTestOptions holds configurations for creating a regtest CChainParams.
std::unordered_map< Consensus::DeploymentPos, VersionBitsParameters > version_bits_parameters
std::unordered_map< Consensus::BuriedDeployment, int > activation_heights
SigNetOptions holds configurations for creating a signet CChainParams.
std::optional< std::vector< uint8_t > > challenge
std::optional< std::vector< std::string > > seeds
A mutable version of CTransaction.
std::vector< CTxOut > vout
Holds various statistics on transactions within a chain.
int64_t nTime
UNIX timestamp of last known number of transactions.
int min_activation_height
If lock in occurs, delay activation until at least this block height.
int bit
Bit position to select the particular bit in nVersion.
static constexpr int64_t ALWAYS_ACTIVE
Special value for nStartTime indicating that the deployment is always active.
static constexpr int64_t NEVER_ACTIVE
Special value for nStartTime indicating that the deployment is never active.
int64_t nTimeout
Timeout/expiry MedianTime for the deployment attempt.
static constexpr int64_t NO_TIMEOUT
Constant for nTimeout very far in the future.
int64_t nStartTime
Start MedianTime for version bits miner confirmation.
int BIP65Height
Block height at which BIP65 becomes active.
int CSVHeight
Block height at which CSV (BIP68, BIP112 and BIP113) becomes active.
uint32_t nMinerConfirmationWindow
uint256 defaultAssumeValid
By default assume that the signatures in ancestors of this block are valid.
std::map< uint256, uint32_t > script_flag_exceptions
Hashes of blocks that.
std::vector< uint8_t > signet_challenge
bool signet_blocks
If true, witness commitments contain a payload equal to a Bitcoin Script solution to the signet chall...
int SegwitHeight
Block height at which Segwit (BIP141, BIP143 and BIP147) becomes active.
int BIP34Height
Block height and hash at which BIP34 becomes active.
int nSubsidyHalvingInterval
BIP9Deployment vDeployments[MAX_VERSION_BITS_DEPLOYMENTS]
int MinBIP9WarningHeight
Don't warn about unknown BIP 9 activations below this height.
uint256 nMinimumChainWork
The best chain should have at least this much work.
uint32_t nRuleChangeActivationThreshold
Minimum blocks including miner confirmation of the total of 2016 blocks in a retargeting period,...
int64_t nPowTargetTimespan
int BIP66Height
Block height at which BIP66 becomes active.
uint256 powLimit
Proof of work parameters.
int64_t nPowTargetSpacing
bool fPowAllowMinDifficultyBlocks
uint256 uint256S(const char *str)
std::string HexStr(const Span< const uint8_t > s)
Convert a span of bytes to a lower-case hexadecimal string.