From 7a6c46b37edb8bfa0085d202aa7e9427d5e4fceb Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 25 Apr 2019 11:09:29 -0400 Subject: chainparams: add allowed assumeutxo values Values for mainnet and testnet will be specified in a follow-up PR that can be scrutinized accordingly. This structure is required for use in snapshot activation logic. --- src/node/coinstats.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/node') diff --git a/src/node/coinstats.cpp b/src/node/coinstats.cpp index b994e79391..06fcc33725 100644 --- a/src/node/coinstats.cpp +++ b/src/node/coinstats.cpp @@ -55,6 +55,18 @@ static void ApplyHash(CCoinsStats& stats, MuHash3072& muhash, const uint256& has muhash.Insert(MakeUCharSpan(ss)); } +//! Warning: be very careful when changing this! assumeutxo and UTXO snapshot +//! validation commitments are reliant on the hash constructed by this +//! function. +//! +//! If the construction of this hash is changed, it will invalidate +//! existing UTXO snapshots. This will not result in any kind of consensus +//! failure, but it will force clients that were expecting to make use of +//! assumeutxo to do traditional IBD instead. +//! +//! It is also possible, though very unlikely, that a change in this +//! construction could cause a previously invalid (and potentially malicious) +//! UTXO snapshot to be considered valid. template static void ApplyStats(CCoinsStats& stats, T& hash_obj, const uint256& hash, const std::map& outputs) { -- cgit v1.2.3