Skip to content

Commit a02a2c0

Browse files
MarcoFalkeknst
MarcoFalke
authored andcommitted
Merge bitcoin#21681: validation: fix ActivateSnapshot to use hardcoded nChainTx
91d93aa validation: remove nchaintx from assumeutxo metadata (James O'Beirne) 931684b validation: fix ActivateSnapshot to use hardcoded nChainTx (James O'Beirne) Pull request description: This fixes an oversight from the move of nChainTx from the user-supplied snapshot metadata into the hardcoded assumeutxo chainparams. Since the nChainTx is now unused in the metadata, it should be removed in a future commit. See: bitcoin#19806 (comment) ACKs for top commit: Sjors: utACK 91d93aa ryanofsky: Code review ACK 91d93aa. No change to previous commit, just new commit removing now unused utxo snapshot field and updating tests. Tree-SHA512: 445bdd738faf007451f40bbcf360dd1fb4675e17a4c96546e6818c12e33dd336dadd95cf8d4b5f8df1d6ccfbc4bf5496864bb5528e416cea894857b6b732140c
1 parent 71f23d6 commit a02a2c0

File tree

4 files changed

+10
-9
lines changed

4 files changed

+10
-9
lines changed

src/node/utxo_snapshot.h

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,15 @@ class SnapshotMetadata
2222
//! during snapshot load to estimate progress of UTXO set reconstruction.
2323
uint64_t m_coins_count = 0;
2424

25-
//! Necessary to "fake" the base nChainTx so that we can estimate progress during
26-
//! initial block download for the assumeutxo chainstate.
27-
unsigned int m_nchaintx = 0;
28-
2925
SnapshotMetadata() { }
3026
SnapshotMetadata(
3127
const uint256& base_blockhash,
3228
uint64_t coins_count,
3329
unsigned int nchaintx) :
3430
m_base_blockhash(base_blockhash),
35-
m_coins_count(coins_count),
36-
m_nchaintx(nchaintx) { }
31+
m_coins_count(coins_count) { }
3732

38-
SERIALIZE_METHODS(SnapshotMetadata, obj) { READWRITE(obj.m_base_blockhash, obj.m_coins_count, obj.m_nchaintx); }
33+
SERIALIZE_METHODS(SnapshotMetadata, obj) { READWRITE(obj.m_base_blockhash, obj.m_coins_count); }
3934
};
4035

4136
#endif // BITCOIN_NODE_UTXO_SNAPSHOT_H

src/test/validation_chainstatemanager_tests.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_activate_snapshot, TestChain100Setup)
247247

248248
// Mine 10 more blocks, putting at us height 110 where a valid assumeutxo value can
249249
// be found.
250+
constexpr int snapshot_height = 110;
250251
mineBlocks(10);
251252
initial_size += 10;
252253
initial_total_coins += 10;
@@ -292,6 +293,11 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_activate_snapshot, TestChain100Setup)
292293
*chainman.ActiveChainstate().m_from_snapshot_blockhash,
293294
*chainman.SnapshotBlockhash());
294295

296+
const AssumeutxoData& au_data = *ExpectedAssumeutxo(snapshot_height, ::Params());
297+
const CBlockIndex* tip = chainman.ActiveTip();
298+
299+
BOOST_CHECK_EQUAL(tip->nChainTx, au_data.nChainTx);
300+
295301
// To be checked against later when we try loading a subsequent snapshot.
296302
uint256 loaded_snapshot_blockhash{*chainman.SnapshotBlockhash()};
297303

src/validation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6013,7 +6013,7 @@ bool ChainstateManager::PopulateAndValidateSnapshot(
60136013
}
60146014

60156015
assert(index);
6016-
index->nChainTx = metadata.m_nchaintx;
6016+
index->nChainTx = au_data.nChainTx;
60176017
snapshot_chainstate.setBlockIndexCandidates.insert(snapshot_start_block);
60186018

60196019
LogPrintf("[snapshot] validated snapshot (%.2f MB)\n",

test/functional/rpc_dumptxoutset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def run_test(self):
4343
digest = hashlib.sha256(f.read()).hexdigest()
4444
# UTXO snapshot hash should be deterministic based on mocked time.
4545
assert_equal(
46-
digest, '83ec62f0b9d9f2cdfe4514e8996d5ba0a6aa4cf74517988670d912db83bc0318')
46+
digest, '32f1d4b7f643c97e88c540f431e8277fdd9332c3dea260b046c93787745e35b0')
4747

4848
# Specifying a path to an existing file will fail.
4949
assert_raises_rpc_error(

0 commit comments

Comments
 (0)