Skip to content

Commit 59d0efe

Browse files
authored
Testnet chainparams (#44)
Modify chain parameters for Sequentia like: magic number, address prefixes, default port, enable any_asset_fees feature and etc.
1 parent 120676e commit 59d0efe

File tree

1 file changed

+75
-60
lines changed

1 file changed

+75
-60
lines changed

src/chainparams.cpp

Lines changed: 75 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -321,106 +321,121 @@ class CTestNetParams : public CChainParams {
321321
consensus.signet_blocks = false;
322322
consensus.signet_challenge.clear();
323323
consensus.nSubsidyHalvingInterval = 210000;
324-
consensus.BIP16Exception = uint256S("0x00000000dd30457c001f4095d208cc1296b0eed002427aa599874af7a432b105");
325-
consensus.BIP34Height = 21111;
326-
consensus.BIP34Hash = uint256S("0x0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8");
327-
consensus.BIP65Height = 581885; // 00000000007f6655f22f98e72ed80d8b06dc761d5da09df0fa1dc4be4f861eb6
328-
consensus.BIP66Height = 330776; // 000000002104c8c45e99a8853285a3b592602a3ccde2b832481da85e9e4ba182
329-
consensus.CSVHeight = 770112; // 00000000025e930139bac5c6c31a403776da130831ab85be56578f3fa75369bb
330-
consensus.SegwitHeight = 834624; // 00000000002b980fcd729daaa248fd9316a5200e9b367f4ff2c42453e84201ca
331-
consensus.MinBIP9WarningHeight = 836640; // segwit activation height + miner confirmation window
332-
consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
324+
consensus.BIP16Exception = uint256();
325+
consensus.BIP34Height = 1;
326+
consensus.BIP34Hash = uint256();
327+
consensus.BIP65Height = 1;
328+
consensus.BIP66Height = 1;
329+
consensus.CSVHeight = 1;
330+
consensus.SegwitHeight = 1;
331+
consensus.MinBIP9WarningHeight = 0;
332+
consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
333333
consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks
334334
consensus.nPowTargetSpacing = 10 * 60;
335335
consensus.fPowAllowMinDifficultyBlocks = true;
336-
consensus.fPowNoRetargeting = false;
337-
consensus.nRuleChangeActivationThreshold = 1512; // 75% for testchains
338-
consensus.nMinerConfirmationWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing
336+
consensus.fPowNoRetargeting = true;
337+
consensus.nRuleChangeActivationThreshold = 108; // 75% for testchains
338+
consensus.nMinerConfirmationWindow = 144; // nPowTargetTimespan / nPowTargetSpacing
339339
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
340340
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
341341
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
342342
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].min_activation_height = 0; // No activation delay
343343
// DynaFed: never activate (but set to avoid use of uninitialized memory in tests)
344344
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].bit = 25;
345-
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
345+
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
346346
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
347347
consensus.vDeployments[Consensus::DEPLOYMENT_DYNA_FED].min_activation_height = 0; // No activation delay
348-
349348
// Deployment of Taproot (BIPs 340-342)
350349
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].bit = 2;
351-
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = 1619222400; // April 24th, 2021
352-
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = 1628640000; // August 11th, 2021
350+
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
351+
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
353352
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
353+
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nPeriod = 10080; // one week...
354+
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nThreshold = 10080; // ...of 100% signalling
354355

355-
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000064728c7be6fe4b2f961");
356-
consensus.defaultAssumeValid = uint256S("0x00000000000163cfb1f97c4e4098a3692c8053ad9cab5ad9c86b338b5c00b8b7"); // 2143398
356+
consensus.nMinimumChainWork = uint256();
357+
consensus.defaultAssumeValid = uint256();
357358

358-
consensus.genesis_subsidy = 50*COIN;
359-
consensus.connect_genesis_outputs = false;
360-
consensus.subsidy_asset = CAsset();
361-
anyonecanspend_aremine = false;
359+
consensus.genesis_subsidy = 1*COIN;
360+
consensus.connect_genesis_outputs = true;
361+
anyonecanspend_aremine = true;
362362
enforce_pak = false;
363363
multi_data_permitted = false;
364364
consensus.has_parent_chain = false;
365-
g_signed_blocks = false;
366-
g_con_elementsmode = false;
367-
g_con_blockheightinheader = false;
368-
consensus.total_valid_epochs = 0;
365+
g_con_elementsmode = true;
366+
g_con_blockheightinheader = true;
367+
g_con_any_asset_fees = true;
369368
consensus.elements_mode = g_con_elementsmode;
369+
consensus.total_valid_epochs = 0;
370+
consensus.dynamic_epoch_length = 10;
370371

371-
pchMessageStart[0] = 0x0b;
372-
pchMessageStart[1] = 0x11;
373-
pchMessageStart[2] = 0x09;
374-
pchMessageStart[3] = 0x07;
375-
nDefaultPort = 18333;
372+
pchMessageStart[0] = 0xef;
373+
pchMessageStart[1] = 0x01;
374+
pchMessageStart[2] = 0xba;
375+
pchMessageStart[3] = 0xe0;
376+
nDefaultPort = 18777;
376377
nPruneAfterHeight = 1000;
377378
m_assumed_blockchain_size = 40;
378379
m_assumed_chain_state_size = 2;
379380

380-
genesis = CreateGenesisBlock(1296688602, 414098458, 0x1d00ffff, 1, 50 * COIN, consensus);
381+
std::vector<unsigned char> sign_bytes = ParseHex("51");
382+
consensus.signblockscript = CScript(sign_bytes.begin(), sign_bytes.end());
383+
consensus.max_block_signature_size = 74;
384+
g_signed_blocks = true;
385+
386+
// Calculate regcoin asset
387+
std::vector<unsigned char> commit = CommitToArguments(consensus, strNetworkID);
388+
uint256 entropy;
389+
GenerateAssetEntropy(entropy, COutPoint(uint256(commit), 0), uint256{});
390+
CalculateAsset(consensus.subsidy_asset, entropy);
391+
consensus.pegged_asset = consensus.subsidy_asset;
392+
393+
consensus.genesis_style = "elements";
394+
initialFreeCoins = 1000000000;
395+
genesis = CreateGenesisBlock(consensus, CScript() << commit, CScript(OP_RETURN), 1296688602, 2, 0x207fffff, 1, 0);
396+
if (initialFreeCoins != 0 || initial_reissuance_tokens != 0) {
397+
AppendInitialIssuance(genesis, COutPoint(uint256(commit), 0), parentGenesisBlockHash, (initialFreeCoins > 0) ? 1 : 0, initialFreeCoins, (initial_reissuance_tokens > 0) ? 1 : 0, initial_reissuance_tokens, CScript() << OP_TRUE);
398+
}
381399
consensus.hashGenesisBlock = genesis.GetHash();
382-
assert(consensus.hashGenesisBlock == uint256S("0x000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"));
383-
assert(genesis.hashMerkleRoot == uint256S("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));
400+
assert(consensus.hashGenesisBlock == uint256S("0x997d61a708543ee56de675c9afebb690007793429967d7a28c61358a033766cd"));
401+
assert(genesis.hashMerkleRoot == uint256S("0x3186a7307ae08419ba779733ad36c32841237f0f7909bbd1d2f38285ecd23ed3"));
384402

385403
vFixedSeeds.clear();
386404
vSeeds.clear();
387405
// nodes with support for servicebits filtering should be at the top
388-
vSeeds.emplace_back("testnet-seed.bitcoin.jonasschnelli.ch.");
389-
vSeeds.emplace_back("seed.tbtc.petertodd.org.");
390-
vSeeds.emplace_back("seed.testnet.bitcoin.sprovoost.nl.");
391-
vSeeds.emplace_back("testnet-seed.bluematt.me."); // Just a static list of stable node(s), only supports x9
406+
vSeeds.emplace_back("89.216.21.96");
392407

393-
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,111);
394-
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,196);
395-
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,239);
396-
base58Prefixes[EXT_PUBLIC_KEY] = {0x04, 0x35, 0x87, 0xCF};
397-
base58Prefixes[EXT_SECRET_KEY] = {0x04, 0x35, 0x83, 0x94};
408+
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,52);
409+
base58Prefixes[SCRIPT_ADDRESS] = std::vector<unsigned char>(1,193);
410+
base58Prefixes[SECRET_KEY] = std::vector<unsigned char>(1,249);
411+
base58Prefixes[BLINDED_ADDRESS] = std::vector<unsigned char>(1, 70);
412+
base58Prefixes[EXT_PUBLIC_KEY] = {0x15, 0xE6, 0xD2, 0x6B};
413+
base58Prefixes[EXT_SECRET_KEY] = {0x33, 0x97, 0xC1, 0x9D};
398414

399-
bech32_hrp = "tb";
400-
blech32_hrp = bech32_hrp;
415+
bech32_hrp = "tsq";
416+
blech32_hrp = "tsqb";
401417

402-
vFixedSeeds = std::vector<uint8_t>(std::begin(chainparams_seed_test), std::end(chainparams_seed_test));
418+
// vFixedSeeds = std::vector<uint8_t>(std::begin(chainparams_seed_test), std::end(chainparams_seed_test));
403419

404-
fDefaultConsistencyChecks = false;
405-
fRequireStandard = false;
420+
fDefaultConsistencyChecks = true;
421+
fRequireStandard = true;
406422
m_is_test_chain = true;
407423
m_is_mockable_chain = false;
408424

409-
checkpointData = {
410-
{
411-
{546, uint256S("000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70")},
412-
}
413-
};
425+
// checkpointData = {
426+
// {
427+
// {546, uint256S("000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70")},
428+
// }
429+
// };
414430

415-
m_assumeutxo_data = MapAssumeutxo{
416-
// TODO to be specified in a future patch.
417-
};
431+
// m_assumeutxo_data = MapAssumeutxo{
432+
// // TODO to be specified in a future patch.
433+
// };
418434

419435
chainTxData = ChainTxData{
420-
// Data from RPC: getchaintxstats 4096 00000000d18cfe81cbeea665076807789bd8f831d557632e635bc6e3c003069e
421-
/* nTime */ 1645635119,
422-
/* nTxCount */ 62226341,
423-
/* dTxRate */ 0.07717997442177152,
436+
0,
437+
0,
438+
0
424439
};
425440
}
426441
};

0 commit comments

Comments
 (0)