From 08f73f9769c4f8a5826a2e0bff29a5be6202c9b9 Mon Sep 17 00:00:00 2001 From: NotRin7 Date: Thu, 23 Oct 2025 16:56:36 +0200 Subject: [PATCH 1/2] testnet and regtest update --- src/chainparams.cpp | 121 ++++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 60 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 7855e25..a01da61 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -127,13 +127,13 @@ public: // This is fine at runtime as we'll fall back to using them as a oneshot if they don't support the // service bits we want, but we should get them updated to support all service bits wanted by any // release ASAP to avoid it where possible. - vSeeds.emplace_back("dnsseed.palladium-coin.store"); - vSeeds.emplace_back("dnsseed.palladium-coin.com"); - vSeeds.emplace_back("dnsseed.palladium-coin.net"); - vSeeds.emplace_back("dnsseed.palladium-coin.org"); - vSeeds.emplace_back("dnsseed.palladium-coin.xyz"); - vSeeds.emplace_back("dnsseed.palladium-coin.de"); - vSeeds.emplace_back("dnsseed.palladiumblockchain.net"); + vSeeds.emplace_back("dnsseed.palladium-coin.store"); + vSeeds.emplace_back("dnsseed.palladium-coin.com"); + vSeeds.emplace_back("dnsseed.palladium-coin.net"); + vSeeds.emplace_back("dnsseed.palladium-coin.org"); + vSeeds.emplace_back("dnsseed.palladium-coin.xyz"); + vSeeds.emplace_back("dnsseed.palladium-coin.de"); + vSeeds.emplace_back("dnsseed.palladiumblockchain.net"); base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,55); @@ -145,7 +145,7 @@ public: bech32_hrp = "plm"; vFixedSeeds = std::vector(pnSeed6_main, pnSeed6_main + ARRAYLEN(pnSeed6_main)); - //vFixedSeeds.clear(); + //vFixedSeeds.clear(); fDefaultConsistencyChecks = false; fRequireStandard = true; @@ -190,30 +190,36 @@ public: CTestNetParams() { strNetworkID = CBaseChainParams::TESTNET; consensus.nSubsidyHalvingInterval = 210000; - consensus.BIP16Exception = uint256S("0x00000000dd30457c001f4095d208cc1296b0eed002427aa599874af7a432b105"); - consensus.BIP34Height = 21111; - consensus.BIP34Hash = uint256S("0x0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8"); - consensus.BIP65Height = 581885; // 00000000007f6655f22f98e72ed80d8b06dc761d5da09df0fa1dc4be4f861eb6 - consensus.BIP66Height = 330776; // 000000002104c8c45e99a8853285a3b592602a3ccde2b832481da85e9e4ba182 - consensus.CSVHeight = 770112; // 00000000025e930139bac5c6c31a403776da130831ab85be56578f3fa75369bb - consensus.SegwitHeight = 834624; // 00000000002b980fcd729daaa248fd9316a5200e9b367f4ff2c42453e84201ca - consensus.MinBIP9WarningHeight = 836640; // segwit activation height + miner confirmation window - consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks - consensus.nPowTargetSpacing = 10 * 60; - consensus.fPowAllowMinDifficultyBlocks = true; - consensus.fPowNoRetargeting = false; - consensus.nRuleChangeActivationThreshold = 1512; // 75% for testchains - consensus.nMinerConfirmationWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing - consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28; - consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008 - consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008 + + consensus.BIP34Height = 0; + consensus.BIP65Height = 0; + consensus.BIP66Height = 0; + consensus.CSVHeight = 0; + consensus.SegwitHeight = 0; + consensus.MinBIP9WarningHeight = 0; + + // The best chain should have at least this much work. - consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000001495c1d5a01e2af8a23"); + consensus.nMinimumChainWork = uint256S(); // By default assume that the signatures in ancestors of this block are valid. - consensus.defaultAssumeValid = uint256S("0x000000000000056c49030c174179b52a928c870e6e8a822c75973b7970cfbd01"); // 1692000 + consensus.defaultAssumeValid = consensus.hashGenesisBlock; + + + consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); + consensus.nPowTargetTimespan = 24 * 60 * 60; + consensus.nPowTargetSpacing = 2 * 60; + consensus.fPowAllowMinDifficultyBlocks = true; + consensus.fPowNoRetargeting = false; + consensus.nRuleChangeActivationThreshold = 720; + consensus.nMinerConfirmationWindow = 540; + consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28; + consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE; + consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; + + + pchMessageStart[0] = 0x0b; pchMessageStart[1] = 0x11; @@ -221,8 +227,8 @@ public: pchMessageStart[3] = 0x07; nDefaultPort = 12333; nPruneAfterHeight = 1000; - m_assumed_blockchain_size = 40; - m_assumed_chain_state_size = 2; + m_assumed_blockchain_size = 1; + m_assumed_chain_state_size = 1; genesis = CreateGenesisBlock(1296688602, 414098458, 0x1d00ffff, 1, 50 * COIN); consensus.hashGenesisBlock = genesis.GetHash(); @@ -231,19 +237,15 @@ public: vFixedSeeds.clear(); vSeeds.clear(); - // nodes with support for servicebits filtering should be at the top - vSeeds.emplace_back("testnet-seed.palladium.jonasschnelli.ch"); - vSeeds.emplace_back("seed.tbtc.petertodd.org"); - vSeeds.emplace_back("seed.testnet.palladium.sprovoost.nl"); - vSeeds.emplace_back("testnet-seed.bluematt.me"); // Just a static list of stable node(s), only supports x9 + - base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,111); - base58Prefixes[SCRIPT_ADDRESS] = std::vector(1,196); - base58Prefixes[SECRET_KEY] = std::vector(1,239); + base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,127); + base58Prefixes[SCRIPT_ADDRESS] = std::vector(1,115); + base58Prefixes[SECRET_KEY] = std::vector(1,255); base58Prefixes[EXT_PUBLIC_KEY] = {0x04, 0x35, 0x87, 0xCF}; base58Prefixes[EXT_SECRET_KEY] = {0x04, 0x35, 0x83, 0x94}; - bech32_hrp = "tb"; + bech32_hrp = "tplm"; vFixedSeeds = std::vector(pnSeed6_test, pnSeed6_test + ARRAYLEN(pnSeed6_test)); @@ -254,15 +256,14 @@ public: checkpointData = { { - {546, uint256S("000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70")}, + {0, uint256S("000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943")}, } }; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 000000000000056c49030c174179b52a928c870e6e8a822c75973b7970cfbd01 - /* nTime */ 1585561140, - /* nTxCount */ 13483, - /* dTxRate */ 0.08523187013249722, + /* nTime */ 1296688602, + /* nTxCount */ 0, + /* dTxRate */ 0.0, }; } }; @@ -276,20 +277,20 @@ public: strNetworkID = CBaseChainParams::REGTEST; consensus.nSubsidyHalvingInterval = 150; consensus.BIP16Exception = uint256(); - consensus.BIP34Height = 500; // BIP34 activated on regtest (Used in functional tests) + consensus.BIP34Height = 0; consensus.BIP34Hash = uint256(); - consensus.BIP65Height = 1351; // BIP65 activated on regtest (Used in functional tests) - consensus.BIP66Height = 1251; // BIP66 activated on regtest (Used in functional tests) - consensus.CSVHeight = 432; // CSV activated on regtest (Used in rpc activation tests) - consensus.SegwitHeight = 0; // SEGWIT is always activated on regtest unless overridden + consensus.BIP65Height = 0; + consensus.BIP66Height = 0; + consensus.CSVHeight = 0; + consensus.SegwitHeight = 0; consensus.MinBIP9WarningHeight = 0; consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks - consensus.nPowTargetSpacing = 10 * 60; + consensus.nPowTargetTimespan = 24 * 60 * 60; + consensus.nPowTargetSpacing = 2 * 60; consensus.fPowAllowMinDifficultyBlocks = true; consensus.fPowNoRetargeting = true; - consensus.nRuleChangeActivationThreshold = 108; // 75% for testchains - consensus.nMinerConfirmationWindow = 144; // Faster than normal for regtest (144 instead of 2016) + consensus.nRuleChangeActivationThreshold = 108; + consensus.nMinerConfirmationWindow = 144; consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28; consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 0; consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; @@ -304,7 +305,7 @@ public: pchMessageStart[1] = 0xbf; pchMessageStart[2] = 0xb5; pchMessageStart[3] = 0xda; - nDefaultPort = 18444; + nDefaultPort = 28444; nPruneAfterHeight = 1000; m_assumed_blockchain_size = 0; m_assumed_chain_state_size = 0; @@ -316,8 +317,8 @@ public: assert(consensus.hashGenesisBlock == uint256S("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206")); assert(genesis.hashMerkleRoot == uint256S("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")); - vFixedSeeds.clear(); //!< Regtest mode doesn't have any fixed seeds. - vSeeds.clear(); //!< Regtest mode doesn't have any DNS seeds. + vFixedSeeds.clear(); + vSeeds.clear(); fDefaultConsistencyChecks = true; fRequireStandard = true; @@ -336,13 +337,13 @@ public: 0 }; - base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,111); - base58Prefixes[SCRIPT_ADDRESS] = std::vector(1,196); - base58Prefixes[SECRET_KEY] = std::vector(1,239); + base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,127); + base58Prefixes[SCRIPT_ADDRESS] = std::vector(1,115); + base58Prefixes[SECRET_KEY] = std::vector(1,255); base58Prefixes[EXT_PUBLIC_KEY] = {0x04, 0x35, 0x87, 0xCF}; base58Prefixes[EXT_SECRET_KEY] = {0x04, 0x35, 0x83, 0x94}; - bech32_hrp = "bcrt"; + bech32_hrp = "rplm"; } /** From 8e6103221a6478461792d77e1d7e6e02b770624c Mon Sep 17 00:00:00 2001 From: NotRin7 Date: Thu, 23 Oct 2025 18:49:41 +0200 Subject: [PATCH 2/2] Update chainparams.cpp --- src/chainparams.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index a01da61..ce79170 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -160,11 +160,11 @@ public: {69, uint256S("0x00000000ae75d0169080e9f0ddbcd80827eda623cfe1f4a2b1be6dcd49b916e6")}, {22170, uint256S("0x000000000000086425f826a2eb60c588aefd3e0783ddeccf0f4f0c985d348e69")}, {26619, uint256S("0x00000000000000d66df607146de7d9b423cf97150beb804d22439d199e868ca9")}, - {28879, uint256S("0x0000000000000017e9e74b9b403b775098905418b1333e9612f510af66746aa7")}, + {28879, uint256S("0x0000000000000017e9e74b9b403b775098905418b1333e9612f510af66746aa7")}, {28925, uint256S("0x0000000000000014351dee34029945d5a4dea299ec8843626695c88b084b4d10")}, - {50000, uint256S("0x000000000000041fddecba51204a679b15ae47fc8aa658ef4ea7b953445d95e5")}, - {100000, uint256S("0x0000000000000850eba93bbc491f085e2c79c0c30c497292858c72e90cae69a5")}, - {142892, uint256S("0x000000000000829a0a4cab2f040151766df64edfe8817c565d101ae12b51411a")}, + {50000, uint256S("0x000000000000041fddecba51204a679b15ae47fc8aa658ef4ea7b953445d95e5")}, + {100000, uint256S("0x0000000000000850eba93bbc491f085e2c79c0c30c497292858c72e90cae69a5")}, + {142892, uint256S("0x000000000000829a0a4cab2f040151766df64edfe8817c565d101ae12b51411a")}, {150000, uint256S("0x00000000000003212d753a62f2dec5b696ab22524cc49ba7cdc0d80c45d0eb18")}, {200000, uint256S("0x000000000000221a9e16556453fc86308b260d95d80c14bafaf053a09374e7eb")}, {250000, uint256S("0x0000000000012553b0303deaf5f2883deb66c901b6848dd03bb4a34f1774e0d0")}, @@ -201,10 +201,10 @@ public: // The best chain should have at least this much work. - consensus.nMinimumChainWork = uint256S(); + consensus.nMinimumChainWork = uint256S("0x00"); // By default assume that the signatures in ancestors of this block are valid. - consensus.defaultAssumeValid = consensus.hashGenesisBlock; + consensus.defaultAssumeValid = uint256S("0x00"); consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); @@ -215,7 +215,7 @@ public: consensus.nRuleChangeActivationThreshold = 720; consensus.nMinerConfirmationWindow = 540; consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28; - consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE; + consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 0; consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;