diff --git a/contrib/devtools/headerssync-params.py b/contrib/devtools/headerssync-params.py index 4640718cb7e..ece1a786302 100755 --- a/contrib/devtools/headerssync-params.py +++ b/contrib/devtools/headerssync-params.py @@ -12,13 +12,13 @@ import random # Parameters: # Aim for still working fine at some point in the future. [datetime] -TIME = datetime(2027, 10, 6) +TIME = datetime(2028, 4, 2) # Expected block interval. [timedelta] BLOCK_INTERVAL = timedelta(seconds=600) # The number of headers corresponding to the minchainwork parameter. [headers] -MINCHAINWORK_HEADERS = 886157 +MINCHAINWORK_HEADERS = 912683 # 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 fbe2026ecae..ae7187f48b2 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{624}; +constexpr size_t HEADER_COMMITMENT_PERIOD{632}; //! Only feed headers to validation once this many headers on top have been //! received and validated against commitments. -constexpr size_t REDOWNLOAD_BUFFER_SIZE{14827}; // 14827/624 = ~23.8 commitments +constexpr size_t REDOWNLOAD_BUFFER_SIZE{15009}; // 15009/632 = ~23.7 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 a5ff4f5ac8c..3955794f896 100644 --- a/src/kernel/chainparams.cpp +++ b/src/kernel/chainparams.cpp @@ -118,8 +118,8 @@ public: consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1815; // 90% consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016; - consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000b1f3b93b65b16d035a82be84"}; - consensus.defaultAssumeValid = uint256{"00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77"}; // 886157 + consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68"}; + consensus.defaultAssumeValid = uint256{"00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb"}; // 912683 /** * The message start string is designed to be unlikely to occur in normal data. @@ -132,7 +132,7 @@ public: pchMessageStart[3] = 0xd9; nDefaultPort = 8333; nPruneAfterHeight = 100000; - m_assumed_blockchain_size = 720; + m_assumed_blockchain_size = 810; m_assumed_chain_state_size = 14; genesis = CreateGenesisBlock(1231006505, 2083236893, 0x1d00ffff, 1, 50 * COIN); @@ -180,14 +180,20 @@ public: .hash_serialized = AssumeutxoHash{uint256{"dbd190983eaf433ef7c15f78a278ae42c00ef52e0fd2a54953782175fbadcea9"}}, .m_chain_tx_count = 1145604538, .blockhash = consteval_ctor(uint256{"000000000000000000010b17283c3c400507969a9c2afd1dcf2082ec5cca2880"}), + }, + { + .height = 910'000, + .hash_serialized = AssumeutxoHash{uint256{"4daf8a17b4902498c5787966a2b51c613acdab5df5db73f196fa59a4da2f1568"}}, + .m_chain_tx_count = 1226586151, + .blockhash = consteval_ctor(uint256{"0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821"}), } }; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77 - .nTime = 1741017141, - .tx_count = 1161875261, - .dTxRate = 4.620728156243148, + // Data from RPC: getchaintxstats 4096 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb + .nTime = 1756722903, + .tx_count = 1235299397, + .dTxRate = 5.456290459519495, }; } }; @@ -232,8 +238,8 @@ public: consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75% consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016; - consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000015f5e0c9f13455b0eb17"}; - consensus.defaultAssumeValid = uint256{"00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57"}; // 3974606 + consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"}; + consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000 pchMessageStart[0] = 0x0b; pchMessageStart[1] = 0x11; @@ -241,7 +247,7 @@ public: pchMessageStart[3] = 0x07; nDefaultPort = 18333; nPruneAfterHeight = 1000; - m_assumed_blockchain_size = 200; + m_assumed_blockchain_size = 240; m_assumed_chain_state_size = 19; genesis = CreateGenesisBlock(1296688602, 414098458, 0x1d00ffff, 1, 50 * COIN); @@ -281,10 +287,10 @@ public: }; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57 - .nTime = 1741042082, - .tx_count = 475477615, - .dTxRate = 17.15933950357594, + // Data from RPC: getchaintxstats 4096 0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34 + .nTime = 1751816758, + .tx_count = 508468699, + .dTxRate = 7.172978845985714, }; } }; @@ -328,8 +334,8 @@ public: consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75% consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016; - consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000001d6dce8651b6094e4c1"}; - consensus.defaultAssumeValid = uint256{"0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3"}; // 72600 + consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000034a4690fe592dc49c7c"}; + consensus.defaultAssumeValid = uint256{"000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b"}; // 91000 pchMessageStart[0] = 0x1c; pchMessageStart[1] = 0x16; @@ -337,8 +343,8 @@ public: pchMessageStart[3] = 0x28; nDefaultPort = 48333; nPruneAfterHeight = 1000; - m_assumed_blockchain_size = 11; - m_assumed_chain_state_size = 1; + m_assumed_blockchain_size = 22; + m_assumed_chain_state_size = 2; const char* testnet4_genesis_msg = "03/May/2024 000000000000000000001ebd58c244970b3aa9d783bb001011fbe8ea8e98e00e"; const CScript testnet4_genesis_script = CScript() << "000000000000000000000000000000000000000000000000000000000000000000"_hex << OP_CHECKSIG; @@ -373,14 +379,19 @@ public: m_is_mockable_chain = false; m_assumeutxo_data = { - {} + { + .height = 90'000, + .hash_serialized = AssumeutxoHash{uint256{"784fb5e98241de66fdd429f4392155c9e7db5c017148e66e8fdbc95746f8b9b5"}}, + .m_chain_tx_count = 11347043, + .blockhash = consteval_ctor(uint256{"0000000002ebe8bcda020e0dd6ccfbdfac531d2f6a81457191b99fc2df2dbe3b"}), + } }; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3 - .nTime = 1741070246, - .tx_count = 7653966, - .dTxRate = 1.239174414591965, + // Data from RPC: getchaintxstats 4096 000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b + .nTime = 1752470331, + .tx_count = 11414302, + .dTxRate = 0.2842619757327476, }; } }; @@ -402,15 +413,15 @@ public: vSeeds.emplace_back("seed.signet.bitcoin.sprovoost.nl."); vSeeds.emplace_back("seed.signet.achownodes.xyz."); // Ava Chow, only supports x1, x5, x9, x49, x809, x849, xd, x400, x404, x408, x448, xc08, xc48, x40c - consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000000000002b517f3d1a1"}; - consensus.defaultAssumeValid = uint256{"000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a"}; // 237722 - m_assumed_blockchain_size = 9; - m_assumed_chain_state_size = 1; + consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000000000000067d328e681a"}; + consensus.defaultAssumeValid = uint256{"000000128586e26813922680309f04e1de713c7542fee86ed908f56368aefe2e"}; // 267665 + m_assumed_blockchain_size = 20; + m_assumed_chain_state_size = 4; chainTxData = ChainTxData{ - // Data from RPC: getchaintxstats 4096 000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a - .nTime = 1741019645, - .tx_count = 16540736, - .dTxRate = 1.064918879911595, + // Data from RPC: getchaintxstats 4096 000000128586e26813922680309f04e1de713c7542fee86ed908f56368aefe2e + .nTime = 1756723017, + .tx_count = 26185472, + .dTxRate = 0.7452721495389969, }; } else { bin = *options.challenge;