Skip to content

Commit 128b98f

Browse files
author
MarcoFalke
committed
Merge bitcoin/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/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
2 parents 32f1f02 + 91d93aa commit 128b98f

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
@@ -233,6 +233,7 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_activate_snapshot, TestChain100Setup)
233233

234234
// Mine 10 more blocks, putting at us height 110 where a valid assumeutxo value can
235235
// be found.
236+
constexpr int snapshot_height = 110;
236237
mineBlocks(10);
237238
initial_size += 10;
238239
initial_total_coins += 10;
@@ -273,6 +274,11 @@ BOOST_FIXTURE_TEST_CASE(chainstatemanager_activate_snapshot, TestChain100Setup)
273274
chainman.ActiveChainstate().m_from_snapshot_blockhash,
274275
*chainman.SnapshotBlockhash());
275276

277+
const AssumeutxoData& au_data = *ExpectedAssumeutxo(snapshot_height, ::Params());
278+
const CBlockIndex* tip = chainman.ActiveTip();
279+
280+
BOOST_CHECK_EQUAL(tip->nChainTx, au_data.nChainTx);
281+
276282
// To be checked against later when we try loading a subsequent snapshot.
277283
uint256 loaded_snapshot_blockhash{*chainman.SnapshotBlockhash()};
278284

src/validation.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4975,7 +4975,7 @@ bool ChainstateManager::PopulateAndValidateSnapshot(
49754975
}
49764976

49774977
assert(index);
4978-
index->nChainTx = metadata.m_nchaintx;
4978+
index->nChainTx = au_data.nChainTx;
49794979
snapshot_chainstate.setBlockIndexCandidates.insert(snapshot_start_block);
49804980

49814981
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
@@ -41,7 +41,7 @@ def run_test(self):
4141
digest = hashlib.sha256(f.read()).hexdigest()
4242
# UTXO snapshot hash should be deterministic based on mocked time.
4343
assert_equal(
44-
digest, 'be032e5f248264ba08e11099ac09dbd001f6f87ffc68bf0f87043d8146d50664')
44+
digest, '7ae82c986fa5445678d2a21453bb1c86d39e47af13da137640c2b1cf8093691c')
4545

4646
# Specifying a path to an existing file will fail.
4747
assert_raises_rpc_error(

0 commit comments

Comments
 (0)