diff --git a/contrib/devtools/headerssync-params.py b/contrib/devtools/headerssync-params.py old mode 100644 new mode 100755 index 0198f5db99f8b..f8e415532a035 --- a/contrib/devtools/headerssync-params.py +++ b/contrib/devtools/headerssync-params.py @@ -12,13 +12,13 @@ # Parameters: # Aim for still working fine at some point in the future. [datetime] -TIME = datetime(2026, 10, 5) +TIME = datetime(2027, 4, 1) # Expected block interval. [timedelta] BLOCK_INTERVAL = timedelta(seconds=600) # The number of headers corresponding to the minchainwork parameter. [headers] -MINCHAINWORK_HEADERS = 804000 +MINCHAINWORK_HEADERS = 856760 # Combined processing bandwidth from all attackers to one victim. [bit/s] # 6 Gbit/s is approximately the speed at which a single thread of a Ryzen 5950X CPU thread can hash diff --git a/src/headerssync.cpp b/src/headerssync.cpp index b41fe07754e9a..2b34856bbc4cf 100644 --- a/src/headerssync.cpp +++ b/src/headerssync.cpp @@ -13,11 +13,11 @@ // contrib/devtools/headerssync-params.py. //! Store one header commitment per HEADER_COMMITMENT_PERIOD blocks. -constexpr size_t HEADER_COMMITMENT_PERIOD{606}; +constexpr size_t HEADER_COMMITMENT_PERIOD{615}; //! Only feed headers to validation once this many headers on top have been //! received and validated against commitments. -constexpr size_t REDOWNLOAD_BUFFER_SIZE{14441}; // 14441/606 = ~23.8 commitments +constexpr size_t REDOWNLOAD_BUFFER_SIZE{14621}; // 14621/615 = ~23.8 commitments // Our memory analysis assumes 48 bytes for a CompressedHeader (so we should // re-calculate parameters if we compress further) diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp index e7cf56ecbc67a..3bd662b684777 100644 --- a/src/kernel/chainparams.cpp +++ b/src/kernel/chainparams.cpp @@ -115,8 +115,8 @@ class CMainParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = 1628640000; // August 11th, 2021 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 709632; // Approximately November 12th, 2021 - consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000063c4ebd298db40af57541800"}; - consensus.defaultAssumeValid = uint256{"000000000000000000026811d149d4d261995ec5b3f64f439a0a10e1a464af9a"}; // 824000 + consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000088e186b70e0862c193ec44d6"}; + consensus.defaultAssumeValid = uint256{"000000000000000000011c5890365bdbe5d25b97ce0057589acaef4f1a57263f"}; // 856760 /** * The message start string is designed to be unlikely to occur in normal data. @@ -129,8 +129,8 @@ class CMainParams : public CChainParams { pchMessageStart[3] = 0xd9; nDefaultPort = 8333; nPruneAfterHeight = 100000; - m_assumed_blockchain_size = 600; - m_assumed_chain_state_size = 10; + m_assumed_blockchain_size = 620; + m_assumed_chain_state_size = 14; genesis = CreateGenesisBlock(1231006505, 2083236893, 0x1d00ffff, 1, 50 * COIN); consensus.hashGenesisBlock = genesis.GetHash(); @@ -194,10 +194,10 @@ class CMainParams : public CChainParams { }; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 000000000000000000026811d149d4d261995ec5b3f64f439a0a10e1a464af9a - .nTime = 1704194835, - .tx_count = 946728933, - .dTxRate = 6.569290261471664, + // Data from RPC: getchaintxstats 4096 000000000000000000011c5890365bdbe5d25b97ce0057589acaef4f1a57263f + .nTime = 1723649144, + .tx_count = 1059312821, + .dTxRate = 6.721086701157182, }; } }; @@ -240,8 +240,8 @@ class CTestNetParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = 1628640000; // August 11th, 2021 consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay - consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000c59b14e264ba6c15db9"}; - consensus.defaultAssumeValid = uint256{"000000000001323071f38f21ea5aae529ece491eadaccce506a59bcc2d968917"}; // 2550000 + consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000f209695166be8b61fa9"}; + consensus.defaultAssumeValid = uint256{"000000000000000465b1a66c9f386308e8c75acef9201f3f577811da09fc90ad"}; // 2873500 pchMessageStart[0] = 0x0b; pchMessageStart[1] = 0x11; @@ -249,8 +249,8 @@ class CTestNetParams : public CChainParams { pchMessageStart[3] = 0x07; nDefaultPort = 18333; nPruneAfterHeight = 1000; - m_assumed_blockchain_size = 42; - m_assumed_chain_state_size = 3; + m_assumed_blockchain_size = 93; + m_assumed_chain_state_size = 19; genesis = CreateGenesisBlock(1296688602, 414098458, 0x1d00ffff, 1, 50 * COIN); consensus.hashGenesisBlock = genesis.GetHash(); @@ -295,10 +295,10 @@ class CTestNetParams : public CChainParams { }; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 000000000001323071f38f21ea5aae529ece491eadaccce506a59bcc2d968917 - .nTime = 1703579240, - .tx_count = 67845391, - .dTxRate = 1.464436832560951, + // Data from RPC: getchaintxstats 4096 000000000000000465b1a66c9f386308e8c75acef9201f3f577811da09fc90ad + .nTime = 1723613341, + .tx_count = 187917082, + .dTxRate = 3.265051477698455, }; } }; @@ -339,8 +339,8 @@ class CTestNet4Params : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT; consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay - consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000056faca98a0cd9bdf5f"}; - consensus.defaultAssumeValid = uint256{}; + consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000005faa15d02e6202f3ba"}; + consensus.defaultAssumeValid = uint256{"000000005be348057db991fa5d89fe7c4695b667cfb311391a8db374b6f681fd"}; // 39550 pchMessageStart[0] = 0x1c; pchMessageStart[1] = 0x16; @@ -348,7 +348,7 @@ class CTestNet4Params : public CChainParams { pchMessageStart[3] = 0x28; nDefaultPort = 48333; nPruneAfterHeight = 1000; - m_assumed_blockchain_size = 0; + m_assumed_blockchain_size = 1; m_assumed_chain_state_size = 0; const char* testnet4_genesis_msg = "03/May/2024 000000000000000000001ebd58c244970b3aa9d783bb001011fbe8ea8e98e00e"; @@ -394,9 +394,10 @@ class CTestNet4Params : public CChainParams { }; chainTxData = ChainTxData{ - .nTime = 0, - .tx_count = 0, - .dTxRate = 0, + // Data from RPC: getchaintxstats 4096 000000005be348057db991fa5d89fe7c4695b667cfb311391a8db374b6f681fd + .nTime = 1723651702, + .tx_count = 757229, + .dTxRate = 0.01570402633472492, }; } }; @@ -420,15 +421,15 @@ class SigNetParams : public CChainParams { vSeeds.emplace_back("178.128.221.177"); vSeeds.emplace_back("v7ajjeirttkbnt32wpy3c6w3emwnfr3fkla7hpxcfokr3ysd3kqtzmqd.onion:38333"); - consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000000000000206e86f08e8"}; - consensus.defaultAssumeValid = uint256{"0000000870f15246ba23c16e370a7ffb1fc8a3dcf8cb4492882ed4b0e3d4cd26"}; // 180000 - m_assumed_blockchain_size = 1; + consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000000000000025dbd66e58f"}; + consensus.defaultAssumeValid = uint256{"0000014aad1d58dddcb964dd749b073374c6306e716b22f573a2efe68d414539"}; // 208800 + m_assumed_blockchain_size = 2; m_assumed_chain_state_size = 0; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 0000000870f15246ba23c16e370a7ffb1fc8a3dcf8cb4492882ed4b0e3d4cd26 - .nTime = 1706331472, - .tx_count = 2425380, - .dTxRate = 0.008277759863833788, + // Data from RPC: getchaintxstats 4096 0000014aad1d58dddcb964dd749b073374c6306e716b22f573a2efe68d414539 + .nTime = 1723655233, + .tx_count = 5507045, + .dTxRate = 0.06271073277261494, }; } else { bin = *options.challenge;