Line data Source code
1 : // Copyright (c) 2009-2010 Satoshi Nakamoto 2 : // Copyright (c) 2009-2019 The Bitcoin Core developers 3 : // Distributed under the MIT software license, see the accompanying 4 : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 5 : 6 : #ifndef BITCOIN_NODE_UTXO_SNAPSHOT_H 7 : #define BITCOIN_NODE_UTXO_SNAPSHOT_H 8 : 9 : #include <uint256.h> 10 : #include <serialize.h> 11 : 12 : //! Metadata describing a serialized version of a UTXO set from which an 13 : //! assumeutxo CChainState can be constructed. 14 : class SnapshotMetadata 15 : { 16 : public: 17 : //! The hash of the block that reflects the tip of the chain for the 18 : //! UTXO set contained in this snapshot. 19 : uint256 m_base_blockhash; 20 : 21 : //! The number of coins in the UTXO set contained in this snapshot. Used 22 : //! during snapshot load to estimate progress of UTXO set reconstruction. 23 : uint64_t m_coins_count = 0; 24 : 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 : 29 : SnapshotMetadata() { } 30 2 : SnapshotMetadata( 31 : const uint256& base_blockhash, 32 : uint64_t coins_count, 33 : unsigned int nchaintx) : 34 1 : m_base_blockhash(base_blockhash), 35 1 : m_coins_count(coins_count), 36 2 : m_nchaintx(nchaintx) { } 37 : 38 3 : SERIALIZE_METHODS(SnapshotMetadata, obj) { READWRITE(obj.m_base_blockhash, obj.m_coins_count, obj.m_nchaintx); } 39 : }; 40 : 41 : #endif // BITCOIN_NODE_UTXO_SNAPSHOT_H