Skip to content

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented Sep 1, 2025

Also adds assumeutxo params for mainnet at 910'000 & testnet4 & 90'000.

@fanquake fanquake added this to the 30.0 milestone Sep 1, 2025
@DrahtBot
Copy link
Contributor

DrahtBot commented Sep 1, 2025

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, w0xlt, achow101, hodlinator

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.

@@ -180,6 +180,12 @@ class CMainParams : public CChainParams {
.hash_serialized = AssumeutxoHash{uint256{"dbd190983eaf433ef7c15f78a278ae42c00ef52e0fd2a54953782175fbadcea9"}},
.m_chain_tx_count = 1145604538,
.blockhash = consteval_ctor(uint256{"000000000000000000010b17283c3c400507969a9c2afd1dcf2082ec5cca2880"}),
},
{
.height = 910'000,
Copy link
Member

@Sjors Sjors Sep 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2cc7d58: 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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainnet assume UTXO block confirmed:

₿ bitcoin-cli getblock 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821
{
  "hash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
  "confirmations": 2908,
  "height": 910000,

Downloaded torrent as kindly provided by Sjors.

Loaded assume utxo snapshot, saw some odd behavior with validating 2 times and only removing the second chainstate directory after restarting. But snapshot worked.
  • Removed blocks/ & chainstate/
  • Re-synced headers before stopping node again
  • Started node with -noconnect
  • bitcoin-cli -rpcclienttimeout=0 loadtxoutset ~/Downloads/utxo-910000.dat
₿ bitcoin-cli getchainstates
{
  "headers": 912911,
  "chainstates": [
    {
      "blocks": 2123,
      "bestblockhash": "00000000a3099f5f4100c759a09d3ba7001e9075d7997c4e0e76308209dfece8",
      "bits": "1d00ffff",
      "target": "00000000ffff0000000000000000000000000000000000000000000000000000",
      "difficulty": 1,
      "verificationprogress": 1.742815384638761e-06,
      "coins_db_cache_bytes": 419430,
      "coins_tip_cache_bytes": 523763712,
      "validated": true
    },
    {
      "blocks": 910000,
      "bestblockhash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
      "bits": "17022cb3",
      "target": "000000000000000000022cb30000000000000000000000000000000000000000",
      "difficulty": 129435235580344.8,
      "verificationprogress": 0.9924388182672436,
      "coins_db_cache_bytes": 7969177,
      "coins_tip_cache_bytes": 9951510528,
      "snapshot_blockhash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
      "validated": false
    }
  ]
}
  • Restarted node without -noconnect.
  • Repeated bitcoin-cli getchainstates shows slowly increasing blocks from 910'000 upwards, while the other chainstate is stuck at 2'123 blocks.
  • Once the assume utxo-based chainstate reaches the tip, the other chainstate starts increasing from 2'123 upwards. (New blocks are still added to the assume utxo-based one).
  • Left it running over the night but background sync still took a long while.
2025-09-03T09:35:36Z [warning] Flushing large (5 GiB) UTXO set to disk, it may take several minutes
2025-09-03T09:37:04Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
2025-09-03T09:39:15Z [snapshot] snapshot beginning at 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 has been fully validated
2025-09-03T09:39:15Z [snapshot] allocating all cache to the snapshot chainstate
2025-09-03T09:39:15Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:39:15Z Opened LevelDB successfully
2025-09-03T09:39:15Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:39:15Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 8.0 MiB
2025-09-03T09:39:15Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 9990.0 MiB
2025-09-03T09:39:15Z [snapshot] re-enabling NODE_NETWORK services
2025-09-03T09:39:15Z [snapshot] restarting indexes
  • bitcoin-cli getchainstates now only returns one state, but I still have both on disk:
₿ du -hs /home/hodlinator/.bitcoin/chainstate*
20G	/home/hodlinator/.bitcoin/chainstate
12G	/home/hodlinator/.bitcoin/chainstate_snapshot
  • Restarting the node resulted in recomputing UTXO stats to validate the snapshot a second time(?!), but at least removed one of the chainstate dirs.
2025-09-03T09:43:38Z Assuming ancestors of block 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb have valid signatures.
2025-09-03T09:43:38Z Setting nMinimumChainWork=0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68
2025-09-03T09:43:38Z [snapshot] detected active snapshot chainstate (/home/hodlinator/.bitcoin/chainstate_snapshot) - loading
2025-09-03T09:43:38Z [snapshot] switching active chainstate to Chainstate [snapshot] @ height -1 (null)
2025-09-03T09:43:39Z [snapshot] set m_chain_tx_count=1226586151 for 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821
2025-09-03T09:43:40Z Loading block index db: last block file = 5121
2025-09-03T09:43:40Z Loading block index db: last block file info: CBlockFileInfo(blocks=64, size=98094618, heights=909602...909998, time=2025-08-11...2025-08-14)
2025-09-03T09:43:40Z Checking all blk files are present...
2025-09-03T09:43:42Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
2025-09-03T09:43:42Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 85bc6cb8217fc36e
2025-09-03T09:43:43Z Loaded best chain: hashBestChain=0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 height=910000 date=2025-08-14T09:25:55Z progress=0.992203
2025-09-03T09:43:43Z Initializing chainstate Chainstate [snapshot] @ height -1 (null)
2025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:43:43Z Loaded best chain: hashBestChain=000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2 height=912993 date=2025-09-03T09:16:53Z progress=1.000000
2025-09-03T09:43:43Z Leaving InitialBlockDownload (latching to false)
2025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:43:43Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 0.4 MiB
2025-09-03T09:43:43Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 499.5 MiB
2025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 85bc6cb8217fc36e
2025-09-03T09:43:43Z [Chainstate [ibd] @ height 910000 (0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821)] resized coinsdb cache to 7.6 MiB
2025-09-03T09:43:43Z [Chainstate [ibd] @ height 910000 (0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821)] resized coinstip cache to 9490.5 MiB
2025-09-03T09:43:43Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
2025-09-03T09:45:32Z [snapshot] snapshot beginning at 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 has been fully validated
2025-09-03T09:45:32Z [snapshot] allocating all cache to the snapshot chainstate
2025-09-03T09:45:32Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:45:32Z Opened LevelDB successfully
2025-09-03T09:45:32Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:45:32Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 8.0 MiB
2025-09-03T09:45:32Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 9990.0 MiB
2025-09-03T09:45:32Z [snapshot] cleaning up unneeded background chainstate, then reinitializing
2025-09-03T09:45:32Z [snapshot] deleting background chainstate directory (now unnecessary) (/home/hodlinator/.bitcoin/chainstate)
2025-09-03T09:45:32Z [snapshot] moving snapshot chainstate (/home/hodlinator/.bitcoin/chainstate_snapshot) to default chainstate directory (/home/hodlinator/.bitcoin/chainstate)
2025-09-03T09:45:32Z Removing leveldb dir at /home/hodlinator/.bitcoin/chainstate_todelete
2025-09-03T09:45:34Z [snapshot] deleted background chainstate directory (/home/hodlinator/.bitcoin/chainstate)
2025-09-03T09:45:37Z Loading block index db: last block file = 5121
2025-09-03T09:45:37Z Loading block index db: last block file info: CBlockFileInfo(blocks=64, size=98094618, heights=909602...909998, time=2025-08-11...2025-08-14)
2025-09-03T09:45:37Z Checking all blk files are present...
2025-09-03T09:45:37Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
2025-09-03T09:45:37Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
2025-09-03T09:45:37Z Opened LevelDB successfully
2025-09-03T09:45:37Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 7d624d1ee9abfe2b
2025-09-03T09:45:38Z Loaded best chain: hashBestChain=000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2 height=912993 date=2025-09-03T09:16:53Z progress=1.000000

@@ -379,7 +379,12 @@ class CTestNet4Params : public CChainParams {
m_is_mockable_chain = false;

m_assumeutxo_data = {
{}
{
.height = 90'000,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlike the mainnet one, this one will not download for me. :\

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try again, I should have a reachable seed for the next few hours.

Copy link
Contributor

@hodlinator hodlinator Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be a case of the worst selection highlight UI ever.
Screenshot From 2025-09-03 12-50-23
I have the file.

(My client claims the port is open (probably thanks to my router reset), so I'm not intentionally leeching, just low demand).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2025-09-03T11:27:15Z [snapshot] snapshot beginning at 0000000002ebe8bcda020e0dd6ccfbdfac531d2f6a81457191b99fc2df2dbe3b has been fully validated

Had to restart node for the 2nd chainstate to be deleted after doing a 2nd round of validation (same as mainnet #33274 (comment)):

2025-09-03T11:28:14Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
2025-09-03T11:28:22Z [snapshot] snapshot beginning at 0000000002ebe8bcda020e0dd6ccfbdfac531d2f6a81457191b99fc2df2dbe3b has been fully validated
2025-09-03T11:28:22Z [snapshot] allocating all cache to the snapshot chainstate
2025-09-03T11:28:22Z Opening LevelDB in /home/hodlinator/.bitcoin/testnet4/chainstate_snapshot
2025-09-03T11:28:22Z Opened LevelDB successfully
2025-09-03T11:28:22Z Using obfuscation key for /home/hodlinator/.bitcoin/testnet4/chainstate_snapshot: d4971b3b981c8ea1
2025-09-03T11:28:22Z [Chainstate [snapshot] @ height 100474 (0000000001fb1795dec277e447d800c813d9a37bf5b796a22e77df9fc067f08f)] resized coinsdb cache to 8.0 MiB
2025-09-03T11:28:22Z [Chainstate [snapshot] @ height 100474 (0000000001fb1795dec277e447d800c813d9a37bf5b796a22e77df9fc067f08f)] resized coinstip cache to 9990.0 MiB
2025-09-03T11:28:22Z [snapshot] cleaning up unneeded background chainstate, then reinitializing
2025-09-03T11:28:22Z [snapshot] deleting background chainstate directory (now unnecessary) (/home/hodlinator/.bitcoin/testnet4/chainstate)
2025-09-03T11:28:22Z [snapshot] moving snapshot chainstate (/home/hodlinator/.bitcoin/testnet4/chainstate_snapshot) to default chainstate directory (/home/hodlinator/.bitcoin/testnet4/chainstate)
2025-09-03T11:28:22Z Removing leveldb dir at /home/hodlinator/.bitcoin/testnet4/chainstate_todelete
2025-09-03T11:28:22Z [snapshot] deleted background chainstate directory (/home/hodlinator/.bitcoin/testnet4/chainstate)

consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000015f5e0c9f13455b0eb17"};
consensus.defaultAssumeValid = uint256{"00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57"}; // 3974606
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"};
consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ceterum censeo #31974 :-)

@Sjors
Copy link
Member

Sjors commented Sep 1, 2025

ACK 01fbbc5

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.

@Sjors
Copy link
Member

Sjors commented Sep 2, 2025

re-ACK 755152a

Copy link
Contributor

@w0xlt w0xlt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 755152a

@achow101
Copy link
Member

achow101 commented Sep 2, 2025

ACK 755152a

Copy link
Contributor

@hodlinator hodlinator left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 755152a

@@ -379,7 +379,12 @@ class CTestNet4Params : public CChainParams {
m_is_mockable_chain = false;

m_assumeutxo_data = {
{}
{
.height = 90'000,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unlike the mainnet one, this one will not download for me. :\

m_assumed_blockchain_size = 720;
m_assumed_blockchain_size = 810;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My ~/.bitcoin/ dir was 736G after removing other chains. Seldom online with that node, so will not have many stale blocks, but it's in a similar ballpark. Same for chainstate which was 11G.

Increases in other chains seem reasonable.

consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000b1f3b93b65b16d035a82be84"};
consensus.defaultAssumeValid = uint256{"00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77"}; // 886157
consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68"};
consensus.defaultAssumeValid = uint256{"00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb"}; // 912683
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainnet assume valid block checks out:

₿ bitcoin-cli getblock 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb
{
  "hash": "00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb",
  "confirmations": 181,
  "height": 912683,
  ...
  "chainwork": "0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68",

Other chains all increased minimum chainwork as expected.

// Data from RPC: getchaintxstats 4096 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb
.nTime = 1756722903,
.tx_count = 1235299397,
.dTxRate = 5.456290459519495,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainnet matches output from:

₿ bitcoin-cli getchaintxstats 4096 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb

Others seem acceptable.


# 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MINCHAINWORK_HEADERS matches assume valid block and HEADER_COMMITMENT_PERIOD + REDOWNLOAD_BUFFER_SIZE are close to numbers predicted for this release in #32579.

@@ -180,6 +180,12 @@ class CMainParams : public CChainParams {
.hash_serialized = AssumeutxoHash{uint256{"dbd190983eaf433ef7c15f78a278ae42c00ef52e0fd2a54953782175fbadcea9"}},
.m_chain_tx_count = 1145604538,
.blockhash = consteval_ctor(uint256{"000000000000000000010b17283c3c400507969a9c2afd1dcf2082ec5cca2880"}),
},
{
.height = 910'000,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainnet assume UTXO block confirmed:

₿ bitcoin-cli getblock 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821
{
  "hash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
  "confirmations": 2908,
  "height": 910000,

Downloaded torrent as kindly provided by Sjors.

Loaded assume utxo snapshot, saw some odd behavior with validating 2 times and only removing the second chainstate directory after restarting. But snapshot worked.
  • Removed blocks/ & chainstate/
  • Re-synced headers before stopping node again
  • Started node with -noconnect
  • bitcoin-cli -rpcclienttimeout=0 loadtxoutset ~/Downloads/utxo-910000.dat
₿ bitcoin-cli getchainstates
{
  "headers": 912911,
  "chainstates": [
    {
      "blocks": 2123,
      "bestblockhash": "00000000a3099f5f4100c759a09d3ba7001e9075d7997c4e0e76308209dfece8",
      "bits": "1d00ffff",
      "target": "00000000ffff0000000000000000000000000000000000000000000000000000",
      "difficulty": 1,
      "verificationprogress": 1.742815384638761e-06,
      "coins_db_cache_bytes": 419430,
      "coins_tip_cache_bytes": 523763712,
      "validated": true
    },
    {
      "blocks": 910000,
      "bestblockhash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
      "bits": "17022cb3",
      "target": "000000000000000000022cb30000000000000000000000000000000000000000",
      "difficulty": 129435235580344.8,
      "verificationprogress": 0.9924388182672436,
      "coins_db_cache_bytes": 7969177,
      "coins_tip_cache_bytes": 9951510528,
      "snapshot_blockhash": "0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821",
      "validated": false
    }
  ]
}
  • Restarted node without -noconnect.
  • Repeated bitcoin-cli getchainstates shows slowly increasing blocks from 910'000 upwards, while the other chainstate is stuck at 2'123 blocks.
  • Once the assume utxo-based chainstate reaches the tip, the other chainstate starts increasing from 2'123 upwards. (New blocks are still added to the assume utxo-based one).
  • Left it running over the night but background sync still took a long while.
2025-09-03T09:35:36Z [warning] Flushing large (5 GiB) UTXO set to disk, it may take several minutes
2025-09-03T09:37:04Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
2025-09-03T09:39:15Z [snapshot] snapshot beginning at 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 has been fully validated
2025-09-03T09:39:15Z [snapshot] allocating all cache to the snapshot chainstate
2025-09-03T09:39:15Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:39:15Z Opened LevelDB successfully
2025-09-03T09:39:15Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:39:15Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 8.0 MiB
2025-09-03T09:39:15Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 9990.0 MiB
2025-09-03T09:39:15Z [snapshot] re-enabling NODE_NETWORK services
2025-09-03T09:39:15Z [snapshot] restarting indexes
  • bitcoin-cli getchainstates now only returns one state, but I still have both on disk:
₿ du -hs /home/hodlinator/.bitcoin/chainstate*
20G	/home/hodlinator/.bitcoin/chainstate
12G	/home/hodlinator/.bitcoin/chainstate_snapshot
  • Restarting the node resulted in recomputing UTXO stats to validate the snapshot a second time(?!), but at least removed one of the chainstate dirs.
2025-09-03T09:43:38Z Assuming ancestors of block 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb have valid signatures.
2025-09-03T09:43:38Z Setting nMinimumChainWork=0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68
2025-09-03T09:43:38Z [snapshot] detected active snapshot chainstate (/home/hodlinator/.bitcoin/chainstate_snapshot) - loading
2025-09-03T09:43:38Z [snapshot] switching active chainstate to Chainstate [snapshot] @ height -1 (null)
2025-09-03T09:43:39Z [snapshot] set m_chain_tx_count=1226586151 for 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821
2025-09-03T09:43:40Z Loading block index db: last block file = 5121
2025-09-03T09:43:40Z Loading block index db: last block file info: CBlockFileInfo(blocks=64, size=98094618, heights=909602...909998, time=2025-08-11...2025-08-14)
2025-09-03T09:43:40Z Checking all blk files are present...
2025-09-03T09:43:42Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
2025-09-03T09:43:42Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 85bc6cb8217fc36e
2025-09-03T09:43:43Z Loaded best chain: hashBestChain=0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 height=910000 date=2025-08-14T09:25:55Z progress=0.992203
2025-09-03T09:43:43Z Initializing chainstate Chainstate [snapshot] @ height -1 (null)
2025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:43:43Z Loaded best chain: hashBestChain=000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2 height=912993 date=2025-09-03T09:16:53Z progress=1.000000
2025-09-03T09:43:43Z Leaving InitialBlockDownload (latching to false)
2025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:43:43Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 0.4 MiB
2025-09-03T09:43:43Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 499.5 MiB
2025-09-03T09:43:43Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
2025-09-03T09:43:43Z Opened LevelDB successfully
2025-09-03T09:43:43Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 85bc6cb8217fc36e
2025-09-03T09:43:43Z [Chainstate [ibd] @ height 910000 (0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821)] resized coinsdb cache to 7.6 MiB
2025-09-03T09:43:43Z [Chainstate [ibd] @ height 910000 (0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821)] resized coinstip cache to 9490.5 MiB
2025-09-03T09:43:43Z [snapshot] computing UTXO stats for background chainstate to validate snapshot - this could take a few minutes
2025-09-03T09:45:32Z [snapshot] snapshot beginning at 0000000000000000000108970acb9522ffd516eae17acddcb1bd16469194a821 has been fully validated
2025-09-03T09:45:32Z [snapshot] allocating all cache to the snapshot chainstate
2025-09-03T09:45:32Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate_snapshot
2025-09-03T09:45:32Z Opened LevelDB successfully
2025-09-03T09:45:32Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate_snapshot: 7d624d1ee9abfe2b
2025-09-03T09:45:32Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinsdb cache to 8.0 MiB
2025-09-03T09:45:32Z [Chainstate [snapshot] @ height 912993 (000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2)] resized coinstip cache to 9990.0 MiB
2025-09-03T09:45:32Z [snapshot] cleaning up unneeded background chainstate, then reinitializing
2025-09-03T09:45:32Z [snapshot] deleting background chainstate directory (now unnecessary) (/home/hodlinator/.bitcoin/chainstate)
2025-09-03T09:45:32Z [snapshot] moving snapshot chainstate (/home/hodlinator/.bitcoin/chainstate_snapshot) to default chainstate directory (/home/hodlinator/.bitcoin/chainstate)
2025-09-03T09:45:32Z Removing leveldb dir at /home/hodlinator/.bitcoin/chainstate_todelete
2025-09-03T09:45:34Z [snapshot] deleted background chainstate directory (/home/hodlinator/.bitcoin/chainstate)
2025-09-03T09:45:37Z Loading block index db: last block file = 5121
2025-09-03T09:45:37Z Loading block index db: last block file info: CBlockFileInfo(blocks=64, size=98094618, heights=909602...909998, time=2025-08-11...2025-08-14)
2025-09-03T09:45:37Z Checking all blk files are present...
2025-09-03T09:45:37Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
2025-09-03T09:45:37Z Opening LevelDB in /home/hodlinator/.bitcoin/chainstate
2025-09-03T09:45:37Z Opened LevelDB successfully
2025-09-03T09:45:37Z Using obfuscation key for /home/hodlinator/.bitcoin/chainstate: 7d624d1ee9abfe2b
2025-09-03T09:45:38Z Loaded best chain: hashBestChain=000000000000000000016a9bb5f319ff1902ff927cfd4910ceff07268f197cf2 height=912993 date=2025-09-03T09:16:53Z progress=1.000000

@fanquake fanquake merged commit 0eb3eae into bitcoin:master Sep 3, 2025
19 checks passed
@fanquake fanquake deleted the chainparams_30 branch September 3, 2025 10:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants