From efa9eb6d7c8012fe4ed85699d81c8fe5dd18da1e Mon Sep 17 00:00:00 2001 From: Anthony Towns Date: Wed, 1 Nov 2023 22:20:10 +1000 Subject: [PATCH 1/5] serialize: Drop nVersion from [C]SizeComputer Protocol version is no longer needed to work out the serialized size of objects so drop that information from CSizeComputer and rename the class to SizeComputer. --- src/serialize.h | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/serialize.h b/src/serialize.h index b09d6fbe608..002b749e385 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -124,7 +124,7 @@ template inline uint64_t ser_readdata64(Stream &s) // i.e. anything that supports .read(Span) and .write(Span) // -class CSizeComputer; +class SizeComputer; enum { @@ -324,7 +324,7 @@ constexpr inline unsigned int GetSizeOfCompactSize(uint64_t nSize) else return sizeof(unsigned char) + sizeof(uint64_t); } -inline void WriteCompactSize(CSizeComputer& os, uint64_t nSize); +inline void WriteCompactSize(SizeComputer& os, uint64_t nSize); template void WriteCompactSize(Stream& os, uint64_t nSize) @@ -450,7 +450,7 @@ inline unsigned int GetSizeOfVarInt(I n) } template -inline void WriteVarInt(CSizeComputer& os, I n); +inline void WriteVarInt(SizeComputer& os, I n); template void WriteVarInt(Stream& os, I n) @@ -1070,22 +1070,21 @@ struct ActionUnserialize { /* ::GetSerializeSize implementations * * Computing the serialized size of objects is done through a special stream - * object of type CSizeComputer, which only records the number of bytes written + * object of type SizeComputer, which only records the number of bytes written * to it. * * If your Serialize or SerializationOp method has non-trivial overhead for * serialization, it may be worthwhile to implement a specialized version for - * CSizeComputer, which uses the s.seek() method to record bytes that would + * SizeComputer, which uses the s.seek() method to record bytes that would * be written instead. */ -class CSizeComputer +class SizeComputer { protected: size_t nSize{0}; - const int nVersion; public: - explicit CSizeComputer(int nVersionIn) : nVersion(nVersionIn) {} + SizeComputer() {} void write(Span src) { @@ -1099,7 +1098,7 @@ public: } template - CSizeComputer& operator<<(const T& obj) + SizeComputer& operator<<(const T& obj) { ::Serialize(*this, obj); return (*this); @@ -1108,17 +1107,15 @@ public: size_t size() const { return nSize; } - - int GetVersion() const { return nVersion; } }; template -inline void WriteVarInt(CSizeComputer &s, I n) +inline void WriteVarInt(SizeComputer &s, I n) { s.seek(GetSizeOfVarInt(n)); } -inline void WriteCompactSize(CSizeComputer &s, uint64_t nSize) +inline void WriteCompactSize(SizeComputer &s, uint64_t nSize) { s.seek(GetSizeOfCompactSize(nSize)); } @@ -1126,13 +1123,13 @@ inline void WriteCompactSize(CSizeComputer &s, uint64_t nSize) template size_t GetSerializeSize(const T& t, int nVersion = 0) { - return (CSizeComputer(nVersion) << t).size(); + return (SizeComputer() << t).size(); } template size_t GetSerializeSizeMany(int nVersion, const T&... t) { - CSizeComputer sc(nVersion); + SizeComputer sc; SerializeMany(sc, t...); return sc.size(); } From bf574a75016123309b894da895ab1c7a81731933 Mon Sep 17 00:00:00 2001 From: Anthony Towns Date: Wed, 1 Nov 2023 22:33:11 +1000 Subject: [PATCH 2/5] serialize: drop GetSerializeSizeMany --- src/psbt.h | 4 +++- src/serialize.h | 8 -------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/psbt.h b/src/psbt.h index 1fd186f6a56..a14df038378 100644 --- a/src/psbt.h +++ b/src/psbt.h @@ -89,7 +89,9 @@ struct PSBTProprietary template void SerializeToVector(Stream& s, const X&... args) { - WriteCompactSize(s, GetSerializeSizeMany(s.GetVersion(), args...)); + SizeComputer sizecomp; + SerializeMany(sizecomp, args...); + WriteCompactSize(s, sizecomp.size()); SerializeMany(s, args...); } diff --git a/src/serialize.h b/src/serialize.h index 002b749e385..9d8867fd643 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -1126,14 +1126,6 @@ size_t GetSerializeSize(const T& t, int nVersion = 0) return (SizeComputer() << t).size(); } -template -size_t GetSerializeSizeMany(int nVersion, const T&... t) -{ - SizeComputer sc; - SerializeMany(sc, t...); - return sc.size(); -} - /** Wrapper that overrides the GetParams() function of a stream (and hides GetVersion/GetType). */ template class ParamsStream From 1410d300df7e57a895f2697d9849a2201021c973 Mon Sep 17 00:00:00 2001 From: Anthony Towns Date: Wed, 1 Nov 2023 22:46:17 +1000 Subject: [PATCH 3/5] serialize: Drop useless version param from GetSerializeSize() --- src/blockencodings.cpp | 2 +- src/coins.cpp | 2 +- src/index/blockfilterindex.cpp | 4 +-- src/node/blockstorage.cpp | 4 +-- src/rpc/blockchain.cpp | 4 +-- src/script/interpreter.cpp | 2 +- src/script/sign.cpp | 2 +- src/serialize.h | 2 +- src/test/flatfile_tests.cpp | 2 +- src/test/fuzz/miniscript.cpp | 2 +- src/test/miniscript_tests.cpp | 2 +- src/test/serialize_tests.cpp | 48 +++++++++++++++++----------------- src/test/uint256_tests.cpp | 8 +++--- src/wallet/spend.cpp | 2 +- 14 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/blockencodings.cpp b/src/blockencodings.cpp index 29306b22290..1e940e8f03e 100644 --- a/src/blockencodings.cpp +++ b/src/blockencodings.cpp @@ -164,7 +164,7 @@ ReadStatus PartiallyDownloadedBlock::InitData(const CBlockHeaderAndShortTxIDs& c break; } - LogPrint(BCLog::CMPCTBLOCK, "Initialized PartiallyDownloadedBlock for block %s using a cmpctblock of size %lu\n", cmpctblock.header.GetHash().ToString(), GetSerializeSize(cmpctblock, PROTOCOL_VERSION)); + LogPrint(BCLog::CMPCTBLOCK, "Initialized PartiallyDownloadedBlock for block %s using a cmpctblock of size %lu\n", cmpctblock.header.GetHash().ToString(), GetSerializeSize(cmpctblock)); return READ_STATUS_OK; } diff --git a/src/coins.cpp b/src/coins.cpp index b44d920ee1f..976fb508557 100644 --- a/src/coins.cpp +++ b/src/coins.cpp @@ -339,7 +339,7 @@ void CCoinsViewCache::SanityCheck() const assert(recomputed_usage == cachedCoinsUsage); } -static const size_t MIN_TRANSACTION_OUTPUT_WEIGHT = WITNESS_SCALE_FACTOR * ::GetSerializeSize(CTxOut(), PROTOCOL_VERSION); +static const size_t MIN_TRANSACTION_OUTPUT_WEIGHT = WITNESS_SCALE_FACTOR * ::GetSerializeSize(CTxOut()); static const size_t MAX_OUTPUTS_PER_BLOCK = MAX_BLOCK_WEIGHT / MIN_TRANSACTION_OUTPUT_WEIGHT; const Coin& AccessByTxid(const CCoinsViewCache& view, const uint256& txid) diff --git a/src/index/blockfilterindex.cpp b/src/index/blockfilterindex.cpp index 5fda798efd6..58f777b3266 100644 --- a/src/index/blockfilterindex.cpp +++ b/src/index/blockfilterindex.cpp @@ -174,8 +174,8 @@ size_t BlockFilterIndex::WriteFilterToDisk(FlatFilePos& pos, const BlockFilter& assert(filter.GetFilterType() == GetFilterType()); size_t data_size = - GetSerializeSize(filter.GetBlockHash(), CLIENT_VERSION) + - GetSerializeSize(filter.GetEncodedFilter(), CLIENT_VERSION); + GetSerializeSize(filter.GetBlockHash()) + + GetSerializeSize(filter.GetEncodedFilter()); // If writing the filter would overflow the file, flush and move to the next one. if (pos.nPos + data_size > MAX_FLTR_FILE_SIZE) { diff --git a/src/node/blockstorage.cpp b/src/node/blockstorage.cpp index 1108cc676b6..c066d1c939f 100644 --- a/src/node/blockstorage.cpp +++ b/src/node/blockstorage.cpp @@ -662,7 +662,7 @@ bool BlockManager::UndoWriteToDisk(const CBlockUndo& blockundo, FlatFilePos& pos } // Write index header - unsigned int nSize = GetSerializeSize(blockundo, CLIENT_VERSION); + unsigned int nSize = GetSerializeSize(blockundo); fileout << GetParams().MessageStart() << nSize; // Write undo data @@ -979,7 +979,7 @@ bool BlockManager::WriteUndoDataForBlock(const CBlockUndo& blockundo, BlockValid // Write undo information to disk if (block.GetUndoPos().IsNull()) { FlatFilePos _pos; - if (!FindUndoPos(state, block.nFile, _pos, ::GetSerializeSize(blockundo, CLIENT_VERSION) + 40)) { + if (!FindUndoPos(state, block.nFile, _pos, ::GetSerializeSize(blockundo) + 40)) { return error("ConnectBlock(): FindUndoPos failed"); } if (!UndoWriteToDisk(blockundo, _pos, block.pprev->GetBlockHash())) { diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp index 9a29b73bee0..6a3aa397d91 100644 --- a/src/rpc/blockchain.cpp +++ b/src/rpc/blockchain.cpp @@ -1861,7 +1861,7 @@ static RPCHelpMan getblockstats() for (const CTxOut& out : tx->vout) { tx_total_out += out.nValue; - size_t out_size = GetSerializeSize(out, PROTOCOL_VERSION) + PER_UTXO_OVERHEAD; + size_t out_size = GetSerializeSize(out) + PER_UTXO_OVERHEAD; utxo_size_inc += out_size; // The Genesis block and the repeated BIP30 block coinbases don't change the UTXO @@ -1913,7 +1913,7 @@ static RPCHelpMan getblockstats() const CTxOut& prevoutput = coin.out; tx_total_in += prevoutput.nValue; - size_t prevout_size = GetSerializeSize(prevoutput, PROTOCOL_VERSION) + PER_UTXO_OVERHEAD; + size_t prevout_size = GetSerializeSize(prevoutput) + PER_UTXO_OVERHEAD; utxo_size_inc -= prevout_size; utxo_size_inc_actual -= prevout_size; } diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index 5f4a1aceb2c..c969ce45f12 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -1934,7 +1934,7 @@ static bool VerifyWitnessProgram(const CScriptWitness& witness, int witversion, if ((control[0] & TAPROOT_LEAF_MASK) == TAPROOT_LEAF_TAPSCRIPT) { // Tapscript (leaf version 0xc0) exec_script = CScript(script.begin(), script.end()); - execdata.m_validation_weight_left = ::GetSerializeSize(witness.stack, PROTOCOL_VERSION) + VALIDATION_WEIGHT_OFFSET; + execdata.m_validation_weight_left = ::GetSerializeSize(witness.stack) + VALIDATION_WEIGHT_OFFSET; execdata.m_validation_weight_left_init = true; return ExecuteWitnessScript(stack, exec_script, flags, SigVersion::TAPSCRIPT, checker, execdata, serror); } diff --git a/src/script/sign.cpp b/src/script/sign.cpp index 251a8420f74..be4b3575681 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -379,7 +379,7 @@ static bool SignTaproot(const SigningProvider& provider, const BaseSignatureCrea result_stack.emplace_back(std::begin(script), std::end(script)); // Push the script result_stack.push_back(*control_blocks.begin()); // Push the smallest control block if (smallest_result_stack.size() == 0 || - GetSerializeSize(result_stack, PROTOCOL_VERSION) < GetSerializeSize(smallest_result_stack, PROTOCOL_VERSION)) { + GetSerializeSize(result_stack) < GetSerializeSize(smallest_result_stack)) { smallest_result_stack = std::move(result_stack); } } diff --git a/src/serialize.h b/src/serialize.h index 9d8867fd643..83715866f56 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -1121,7 +1121,7 @@ inline void WriteCompactSize(SizeComputer &s, uint64_t nSize) } template -size_t GetSerializeSize(const T& t, int nVersion = 0) +size_t GetSerializeSize(const T& t) { return (SizeComputer() << t).size(); } diff --git a/src/test/flatfile_tests.cpp b/src/test/flatfile_tests.cpp index 3874b38f613..21a36d9d434 100644 --- a/src/test/flatfile_tests.cpp +++ b/src/test/flatfile_tests.cpp @@ -40,7 +40,7 @@ BOOST_AUTO_TEST_CASE(flatfile_open) "lost if a trusted third party is still required to prevent double-spending."); size_t pos1 = 0; - size_t pos2 = pos1 + GetSerializeSize(line1, CLIENT_VERSION); + size_t pos2 = pos1 + GetSerializeSize(line1); // Write first line to file. { diff --git a/src/test/fuzz/miniscript.cpp b/src/test/fuzz/miniscript.cpp index 8c73edfa9dc..0d0ee59ab3f 100644 --- a/src/test/fuzz/miniscript.cpp +++ b/src/test/fuzz/miniscript.cpp @@ -1121,7 +1121,7 @@ void TestNode(const MsCtx script_ctx, const NodeRef& node, FuzzedDataProvider& p assert(mal_success); assert(stack_nonmal == stack_mal); // Compute witness size (excluding script push, control block, and witness count encoding). - const size_t wit_size = GetSerializeSize(stack_nonmal, PROTOCOL_VERSION) - GetSizeOfCompactSize(stack_nonmal.size()); + const size_t wit_size = GetSerializeSize(stack_nonmal) - GetSizeOfCompactSize(stack_nonmal.size()); assert(wit_size <= *node->GetWitnessSize()); // Test non-malleable satisfaction. diff --git a/src/test/miniscript_tests.cpp b/src/test/miniscript_tests.cpp index 996c3799629..1f28e61bc91 100644 --- a/src/test/miniscript_tests.cpp +++ b/src/test/miniscript_tests.cpp @@ -369,7 +369,7 @@ void TestSatisfy(const KeyConverter& converter, const std::string& testcase, con CScriptWitness witness_nonmal; const bool nonmal_success = node->Satisfy(satisfier, witness_nonmal.stack, true) == miniscript::Availability::YES; // Compute witness size (excluding script push, control block, and witness count encoding). - const size_t wit_size = GetSerializeSize(witness_nonmal.stack, PROTOCOL_VERSION) - GetSizeOfCompactSize(witness_nonmal.stack.size()); + const size_t wit_size = GetSerializeSize(witness_nonmal.stack) - GetSizeOfCompactSize(witness_nonmal.stack.size()); SatisfactionToWitness(converter.MsContext(), witness_nonmal, script, builder); if (nonmal_success) { diff --git a/src/test/serialize_tests.cpp b/src/test/serialize_tests.cpp index 6d5a14ad9e1..d75eb499b4a 100644 --- a/src/test/serialize_tests.cpp +++ b/src/test/serialize_tests.cpp @@ -62,31 +62,31 @@ public: BOOST_AUTO_TEST_CASE(sizes) { - BOOST_CHECK_EQUAL(sizeof(unsigned char), GetSerializeSize((unsigned char)0, 0)); - BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint16_t), GetSerializeSize(uint16_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(int32_t), GetSerializeSize(int32_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint32_t), GetSerializeSize(uint32_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(int64_t), GetSerializeSize(int64_t(0), 0)); - BOOST_CHECK_EQUAL(sizeof(uint64_t), GetSerializeSize(uint64_t(0), 0)); + BOOST_CHECK_EQUAL(sizeof(unsigned char), GetSerializeSize((unsigned char)0)); + BOOST_CHECK_EQUAL(sizeof(int8_t), GetSerializeSize(int8_t(0))); + BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(uint8_t(0))); + BOOST_CHECK_EQUAL(sizeof(int16_t), GetSerializeSize(int16_t(0))); + BOOST_CHECK_EQUAL(sizeof(uint16_t), GetSerializeSize(uint16_t(0))); + BOOST_CHECK_EQUAL(sizeof(int32_t), GetSerializeSize(int32_t(0))); + BOOST_CHECK_EQUAL(sizeof(uint32_t), GetSerializeSize(uint32_t(0))); + BOOST_CHECK_EQUAL(sizeof(int64_t), GetSerializeSize(int64_t(0))); + BOOST_CHECK_EQUAL(sizeof(uint64_t), GetSerializeSize(uint64_t(0))); // Bool is serialized as uint8_t - BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(bool(0), 0)); + BOOST_CHECK_EQUAL(sizeof(uint8_t), GetSerializeSize(bool(0))); // Sanity-check GetSerializeSize and c++ type matching - BOOST_CHECK_EQUAL(GetSerializeSize((unsigned char)0, 0), 1U); - BOOST_CHECK_EQUAL(GetSerializeSize(int8_t(0), 0), 1U); - BOOST_CHECK_EQUAL(GetSerializeSize(uint8_t(0), 0), 1U); - BOOST_CHECK_EQUAL(GetSerializeSize(int16_t(0), 0), 2U); - BOOST_CHECK_EQUAL(GetSerializeSize(uint16_t(0), 0), 2U); - BOOST_CHECK_EQUAL(GetSerializeSize(int32_t(0), 0), 4U); - BOOST_CHECK_EQUAL(GetSerializeSize(uint32_t(0), 0), 4U); - BOOST_CHECK_EQUAL(GetSerializeSize(int64_t(0), 0), 8U); - BOOST_CHECK_EQUAL(GetSerializeSize(uint64_t(0), 0), 8U); - BOOST_CHECK_EQUAL(GetSerializeSize(bool(0), 0), 1U); - BOOST_CHECK_EQUAL(GetSerializeSize(std::array{0}, 0), 1U); - BOOST_CHECK_EQUAL(GetSerializeSize(std::array{0, 0}, 0), 2U); + BOOST_CHECK_EQUAL(GetSerializeSize((unsigned char)0), 1U); + BOOST_CHECK_EQUAL(GetSerializeSize(int8_t(0)), 1U); + BOOST_CHECK_EQUAL(GetSerializeSize(uint8_t(0)), 1U); + BOOST_CHECK_EQUAL(GetSerializeSize(int16_t(0)), 2U); + BOOST_CHECK_EQUAL(GetSerializeSize(uint16_t(0)), 2U); + BOOST_CHECK_EQUAL(GetSerializeSize(int32_t(0)), 4U); + BOOST_CHECK_EQUAL(GetSerializeSize(uint32_t(0)), 4U); + BOOST_CHECK_EQUAL(GetSerializeSize(int64_t(0)), 8U); + BOOST_CHECK_EQUAL(GetSerializeSize(uint64_t(0)), 8U); + BOOST_CHECK_EQUAL(GetSerializeSize(bool(0)), 1U); + BOOST_CHECK_EQUAL(GetSerializeSize(std::array{0}), 1U); + BOOST_CHECK_EQUAL(GetSerializeSize(std::array{0, 0}), 2U); } BOOST_AUTO_TEST_CASE(varints) @@ -97,13 +97,13 @@ BOOST_AUTO_TEST_CASE(varints) DataStream::size_type size = 0; for (int i = 0; i < 100000; i++) { ss << VARINT_MODE(i, VarIntMode::NONNEGATIVE_SIGNED); - size += ::GetSerializeSize(VARINT_MODE(i, VarIntMode::NONNEGATIVE_SIGNED), 0); + size += ::GetSerializeSize(VARINT_MODE(i, VarIntMode::NONNEGATIVE_SIGNED)); BOOST_CHECK(size == ss.size()); } for (uint64_t i = 0; i < 100000000000ULL; i += 999999937) { ss << VARINT(i); - size += ::GetSerializeSize(VARINT(i), 0); + size += ::GetSerializeSize(VARINT(i)); BOOST_CHECK(size == ss.size()); } diff --git a/src/test/uint256_tests.cpp b/src/test/uint256_tests.cpp index 9caefe43e23..933988dd7ad 100644 --- a/src/test/uint256_tests.cpp +++ b/src/test/uint256_tests.cpp @@ -184,8 +184,8 @@ BOOST_AUTO_TEST_CASE( methods ) // GetHex SetHex begin() end() size() GetLow64 G BOOST_CHECK(OneL.begin() + 32 == OneL.end()); BOOST_CHECK(MaxL.begin() + 32 == MaxL.end()); BOOST_CHECK(TmpL.begin() + 32 == TmpL.end()); - BOOST_CHECK(GetSerializeSize(R1L, PROTOCOL_VERSION) == 32); - BOOST_CHECK(GetSerializeSize(ZeroL, PROTOCOL_VERSION) == 32); + BOOST_CHECK(GetSerializeSize(R1L) == 32); + BOOST_CHECK(GetSerializeSize(ZeroL) == 32); DataStream ss{}; ss << R1L; @@ -230,8 +230,8 @@ BOOST_AUTO_TEST_CASE( methods ) // GetHex SetHex begin() end() size() GetLow64 G BOOST_CHECK(OneS.begin() + 20 == OneS.end()); BOOST_CHECK(MaxS.begin() + 20 == MaxS.end()); BOOST_CHECK(TmpS.begin() + 20 == TmpS.end()); - BOOST_CHECK(GetSerializeSize(R1S, PROTOCOL_VERSION) == 20); - BOOST_CHECK(GetSerializeSize(ZeroS, PROTOCOL_VERSION) == 20); + BOOST_CHECK(GetSerializeSize(R1S) == 20); + BOOST_CHECK(GetSerializeSize(ZeroS) == 20); ss << R1S; BOOST_CHECK(ss.str() == std::string(R1Array,R1Array+20)); diff --git a/src/wallet/spend.cpp b/src/wallet/spend.cpp index ed0134375c4..86838597e6a 100644 --- a/src/wallet/spend.cpp +++ b/src/wallet/spend.cpp @@ -1081,7 +1081,7 @@ static util::Result CreateTransactionInternal( CTxOut txout(recipient.nAmount, GetScriptForDestination(recipient.dest)); // Include the fee cost for outputs. - coin_selection_params.tx_noinputs_size += ::GetSerializeSize(txout, PROTOCOL_VERSION); + coin_selection_params.tx_noinputs_size += ::GetSerializeSize(txout); if (IsDust(txout, wallet.chain().relayDustFee())) { return util::Error{_("Transaction amount too small")}; From c7b61fd61b199cbefda660c9d394bb4035a49528 Mon Sep 17 00:00:00 2001 From: Anthony Towns Date: Wed, 15 Nov 2023 12:20:16 +1000 Subject: [PATCH 4/5] Convert some CDataStream to DataStream --- src/bench/checkblock.cpp | 4 ++-- src/bench/verify_script.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bench/checkblock.cpp b/src/bench/checkblock.cpp index 9f52a226725..b81878006cd 100644 --- a/src/bench/checkblock.cpp +++ b/src/bench/checkblock.cpp @@ -18,7 +18,7 @@ static void DeserializeBlockTest(benchmark::Bench& bench) { - CDataStream stream(benchmark::data::block413567, SER_NETWORK, PROTOCOL_VERSION); + DataStream stream(benchmark::data::block413567); std::byte a{0}; stream.write({&a, 1}); // Prevent compaction @@ -32,7 +32,7 @@ static void DeserializeBlockTest(benchmark::Bench& bench) static void DeserializeAndCheckBlockTest(benchmark::Bench& bench) { - CDataStream stream(benchmark::data::block413567, SER_NETWORK, PROTOCOL_VERSION); + DataStream stream(benchmark::data::block413567); std::byte a{0}; stream.write({&a, 1}); // Prevent compaction diff --git a/src/bench/verify_script.cpp b/src/bench/verify_script.cpp index e1a0bf138eb..3682b335187 100644 --- a/src/bench/verify_script.cpp +++ b/src/bench/verify_script.cpp @@ -61,7 +61,7 @@ static void VerifyScriptBench(benchmark::Bench& bench) assert(success); #if defined(HAVE_CONSENSUS_LIB) - CDataStream stream(SER_NETWORK, PROTOCOL_VERSION); + DataStream stream; stream << TX_WITH_WITNESS(txSpend); int csuccess = bitcoinconsensus_verify_script_with_amount( txCredit.vout[0].scriptPubKey.data(), From 83986f464c59a6517f790a960a72574e167f3f72 Mon Sep 17 00:00:00 2001 From: Anthony Towns Date: Wed, 15 Nov 2023 12:19:34 +1000 Subject: [PATCH 5/5] Include version.h in fewer places --- src/bitcoin-util.cpp | 1 - src/coins.cpp | 1 - src/consensus/validation.h | 1 - src/core_read.cpp | 1 - src/external_signer.cpp | 4 +++- src/hash.h | 1 - src/kernel/coinstats.cpp | 1 - src/net.h | 1 + src/primitives/transaction.cpp | 1 - src/psbt.cpp | 1 + src/rest.cpp | 1 - src/rpc/rawtransaction.cpp | 1 + src/script/bitcoinconsensus.cpp | 1 - src/signet.cpp | 1 + src/test/util/setup_common.h | 1 + src/undo.h | 1 - src/wallet/rpc/spend.cpp | 1 + src/zmq/zmqpublishnotifier.cpp | 1 - 18 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/bitcoin-util.cpp b/src/bitcoin-util.cpp index 8b68d04b2bf..96387e8c71e 100644 --- a/src/bitcoin-util.cpp +++ b/src/bitcoin-util.cpp @@ -19,7 +19,6 @@ #include #include #include -#include #include #include diff --git a/src/coins.cpp b/src/coins.cpp index 976fb508557..f576fae7488 100644 --- a/src/coins.cpp +++ b/src/coins.cpp @@ -8,7 +8,6 @@ #include #include #include -#include bool CCoinsView::GetCoin(const COutPoint &outpoint, Coin &coin) const { return false; } uint256 CCoinsView::GetBestBlock() const { return uint256(); } diff --git a/src/consensus/validation.h b/src/consensus/validation.h index 3fdc01e66b9..1556c7888f9 100644 --- a/src/consensus/validation.h +++ b/src/consensus/validation.h @@ -7,7 +7,6 @@ #define BITCOIN_CONSENSUS_VALIDATION_H #include -#include #include #include #include diff --git a/src/core_read.cpp b/src/core_read.cpp index bffb9e90425..e32e46d1b9b 100644 --- a/src/core_read.cpp +++ b/src/core_read.cpp @@ -12,7 +12,6 @@ #include #include #include -#include #include #include diff --git a/src/external_signer.cpp b/src/external_signer.cpp index 102c58b56aa..15024f6e0f2 100644 --- a/src/external_signer.cpp +++ b/src/external_signer.cpp @@ -2,12 +2,14 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#include + #include #include #include #include #include -#include +#include #include #include diff --git a/src/hash.h b/src/hash.h index 132e1a9fb39..52babf8b1d9 100644 --- a/src/hash.h +++ b/src/hash.h @@ -14,7 +14,6 @@ #include #include #include -#include #include #include diff --git a/src/kernel/coinstats.cpp b/src/kernel/coinstats.cpp index 9bd755ed271..302638cdbea 100644 --- a/src/kernel/coinstats.cpp +++ b/src/kernel/coinstats.cpp @@ -21,7 +21,6 @@ #include #include #include -#include #include #include diff --git a/src/net.h b/src/net.h index 16312cf72d4..aa75df075d7 100644 --- a/src/net.h +++ b/src/net.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include diff --git a/src/primitives/transaction.cpp b/src/primitives/transaction.cpp index 6650277c2b6..82fb59d3494 100644 --- a/src/primitives/transaction.cpp +++ b/src/primitives/transaction.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include diff --git a/src/psbt.cpp b/src/psbt.cpp index 76a2fd82417..e46032f5d50 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -8,6 +8,7 @@ #include