kernel: chainparams & headersync updates for 30.0 #33274

pull fanquake wants to merge 6 commits into bitcoin:master from fanquake:chainparams_30 changing 3 files +46 −35
  1. fanquake commented at 1:31 pm on September 1, 2025: member
    Also adds assumeutxo params for mainnet at 910'000 & testnet4 & 90'000.
  2. fanquake added this to the milestone 30.0 on Sep 1, 2025
  3. DrahtBot added the label Validation on Sep 1, 2025
  4. DrahtBot commented at 1:31 pm on September 1, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/33274.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK Sjors

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #32579 (headerssync: Preempt unrealistic unit test behavior by hodlinator)
    • #32427 ((RFC) kernel: Replace leveldb-based BlockTreeDB with flat-file based store by TheCharlatan)
    • #31974 (Drop testnet3 by Sjors)
    • #26201 (Remove Taproot activation height by Sjors)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  5. in src/kernel/chainparams.cpp:185 in 2cc7d58560 outdated
    179@@ -180,6 +180,12 @@ class CMainParams : public CChainParams {
    180                 .hash_serialized = AssumeutxoHash{uint256{"dbd190983eaf433ef7c15f78a278ae42c00ef52e0fd2a54953782175fbadcea9"}},
    181                 .m_chain_tx_count = 1145604538,
    182                 .blockhash = consteval_ctor(uint256{"000000000000000000010b17283c3c400507969a9c2afd1dcf2082ec5cca2880"}),
    183+            },
    184+            {
    185+                .height = 910'000,
    


    Sjors commented at 2:17 pm on September 1, 2025:

    2cc7d585600e8f0760f877fecf4e7eaf9c5dc92b: here’s a torrent magnet, with the same seeds as Bitcoin Core v29, except the binary seed: magnet:?xt=urn:btih:7019437a2b1530624b100c0795cfc5f90b8322ca&dn=utxo-910000.dat&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969

    It might be an hour or so before you can download it.

    Reminder to other testers that loading the snapshot is much faster if you disable the network temporary, see #29993.

  6. in src/kernel/chainparams.cpp:383 in 01fbbc5b7e outdated
    378@@ -379,7 +379,12 @@ class CTestNet4Params : public CChainParams {
    379         m_is_mockable_chain = false;
    380 
    381         m_assumeutxo_data = {
    382-            {}
    383+            {
    384+                .height = 90'000,
    


    Sjors commented at 3:07 pm on September 1, 2025:
    magnet:?xt=urn:btih:7341b215b570e3bc69f5fbbe5e817b51b0b9b542&dn=utxo-testnet4-90000.dat&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969%2Fannounce&tr=udp%3A%2F%2Fexplodie.org%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce&tr=udp%3A%2F%2Ftracker.bitcoin.sprovoost.nl%3A6969
  7. in src/kernel/chainparams.cpp:242 in cf7cb09f85 outdated
    231@@ -232,8 +232,8 @@ class CTestNetParams : public CChainParams {
    232         consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
    233         consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;
    234 
    235-        consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000015f5e0c9f13455b0eb17"};
    236-        consensus.defaultAssumeValid = uint256{"00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57"}; // 3974606
    237+        consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"};
    238+        consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000
    


    Sjors commented at 3:34 pm on September 1, 2025:
    Ceterum censeo #31974 :-)
  8. Sjors commented at 5:18 pm on September 1, 2025: member

    ACK 01fbbc5b7ea02c98f54255b8dba342a065edb9f7

    I didn’t check the datadir sizes.

    I tested loading the testnet4 snapshot and then syncing to the tip. Still syncing a mainnet node with -assumevalid=0 (also using a loaded snapshot), will update here in the unlikely event that it fails.

  9. in src/kernel/chainparams.cpp:244 in daf3ff6872 outdated
    240@@ -241,7 +241,7 @@ class CTestNetParams : public CChainParams {
    241         pchMessageStart[3] = 0x07;
    242         nDefaultPort = 18333;
    243         nPruneAfterHeight = 1000;
    244-        m_assumed_blockchain_size = 200;
    245+        m_assumed_blockchain_size = 215;
    


    achow101 commented at 10:06 pm on September 1, 2025:

    Seems low, would expect 244.

    0$ du -csh --apparent-size testnet3/chainstate/ testnet3/blocks/
    116G	testnet3/chainstate/
    2205G	testnet3/blocks/
    3221G	total
    

    Sjors commented at 6:49 am on September 2, 2025:

    For a node that’s been offline for a year or so and then caught up yesterday:

    016G	testnet3/chainstate/
    1195G	testnet3/blocks/
    2210G	total
    

    fanquake commented at 10:58 am on September 2, 2025:
    0 du -csh testnet3/chainstate/ testnet3/blocks/
    1 16G	testnet3/chainstate/
    2194G	testnet3/blocks/
    3210G	total
    

    Can increase to 240.

  10. in src/kernel/chainparams.cpp:340 in daf3ff6872 outdated
    337@@ -338,7 +338,7 @@ class CTestNet4Params : public CChainParams {
    338         nDefaultPort = 48333;
    339         nPruneAfterHeight = 1000;
    340         m_assumed_blockchain_size = 11;
    


    achow101 commented at 10:07 pm on September 1, 2025:

    I think testnet4 blockchain size is bigger

    0du -csh --apparent-size testnet4/chainstate/ testnet4/blocks/
    1928M	testnet4/chainstate/
    220G	testnet4/blocks/
    320G	total
    

    Sjors commented at 6:50 am on September 2, 2025:

    Testnet4 node that’s been online a couple of times, but not continuously:

    0938M	testnet4/chainstate/
    18,1G	testnet4/blocks/
    29,0G	total
    

    Sjors commented at 6:51 am on September 2, 2025:

    And one that I spun up in June and his been online since:

    0915M	testnet4/chainstate/
    120G	testnet4/blocks/
    221G	total
    

    The difference probably comes from the vast number of stale blocks.


    fanquake commented at 10:54 am on September 2, 2025:

    I think testnet4 blockchain size is bigger

    Not here:

    0du -csh testnet4/chainstate/ testnet4/blocks/
    1945M	testnet4/chainstate/
    28.0G	testnet4/blocks/
    38.9G	total
    

    Will increase to 22 in any case.

  11. in src/kernel/chainparams.cpp:407 in daf3ff6872 outdated
    403@@ -404,8 +404,8 @@ class SigNetParams : public CChainParams {
    404 
    405             consensus.nMinimumChainWork = uint256{"000000000000000000000000000000000000000000000000000002b517f3d1a1"};
    406             consensus.defaultAssumeValid = uint256{"000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a"}; // 237722
    407-            m_assumed_blockchain_size = 9;
    408-            m_assumed_chain_state_size = 1;
    409+            m_assumed_blockchain_size = 17;
    


    achow101 commented at 10:09 pm on September 1, 2025:

    Seems low, would expect 20.

    0du -csh --apparent-size signet/chainstate/ signet/blocks/
    12.8G	signet/chainstate/
    215G	signet/blocks/
    318G	total
    

    Sjors commented at 7:16 am on September 2, 2025:

    Intermittently online node (though that shouldn’t make a difference on this signet):

    02,8G	signet/chainstate/
    115G	signet/blocks/
    218G	total
    

    fanquake commented at 10:54 am on September 2, 2025:
    Bumped to 20.
  12. kernel: update assumed blockchain & chainstate sizes b4adae76d4
  13. kernel: update assumevalid and minimumChainWork c3cb26e028
  14. kernel: update chainTxData 66fb962426
  15. kernel: update headersync params 943de66b50
  16. kernel: add mainnet assumeutxo param at height 910'000 a6512686e3
  17. kernel: add testnet4 assumeutxo param at height 90'000 755152ac81
  18. fanquake force-pushed on Sep 2, 2025
  19. Sjors commented at 11:58 am on September 2, 2025: member
    re-ACK 755152ac819a23acf2f9e70316134d74a04d589b

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-09-02 12:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me