mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-07 21:28:40 +02:00
Merge bitcoin/bitcoin#28423: kernel: Remove protocol.h/netaddress.h/compat.h from kernel headers
d506765199[refactor] Remove compat.h from kernel headers (TheCharlatan)36193af47c[refactor] Remove netaddress.h from kernel headers (TheCharlatan)2b08c55f01[refactor] Add CChainParams member to CConnman (TheCharlatan)f0d1d8b35c[refactor] Add missing includes for next commit (TheCharlatan)534b314a74kernel: Move MessageStartChars to its own file (TheCharlatan)9be330b654[refactor] Define MessageStartChars as std::array (TheCharlatan)37e2b01113[refactor] Allow std::array<std::byte, N> in serialize.h (MarcoFalke) Pull request description: This removes the non-consensus critical `protocol.h` and `netaddress.h` headers from the kernel headers. With this patch, they are no longer required to include in order to use the libbitcoinkernel library. This also allows for the removal of the `compat.h` header from the kernel headers. As an added future benefit it also reduces the number of of kernel headers that include the platform specific `bitcoin-config.h`. For those interested, the currently required kernel headers can be inspected visually with the [sourcetrail](https://github.com/CoatiSoftware/Sourcetrail) tool by looking at the required includes of `bitcoin-chainstate.cpp`. --- This is part of the [libbitcoinkernel project](https://github.com/bitcoin/bitcoin/issues/27587), namely its stage 1 step 3: Decouple most non-consensus headers from libbitcoinkernel. ACKs for top commit: stickies-v: re-ACKd506765hebasto: ACKd506765199. ajtowns: utACKd506765199MarcoFalke: lgtm ACKd506765199🍛 Tree-SHA512: 6f90ea510a302c2927e84d16900e89997c39b8ff3ce9d4effeb8a134bd29cc52bd9e81e51aaa11f7496bad00025b78a58b88c5a9e0bb3f4ebbe9a76309215fb7
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include <consensus/merkle.h>
|
||||
#include <consensus/params.h>
|
||||
#include <hash.h>
|
||||
#include <kernel/messagestartchars.h>
|
||||
#include <logging.h>
|
||||
#include <primitives/block.h>
|
||||
#include <primitives/transaction.h>
|
||||
@@ -359,7 +360,7 @@ public:
|
||||
HashWriter h{};
|
||||
h << consensus.signet_challenge;
|
||||
uint256 hash = h.GetHash();
|
||||
memcpy(pchMessageStart, hash.begin(), 4);
|
||||
std::copy_n(hash.begin(), 4, pchMessageStart.begin());
|
||||
|
||||
nDefaultPort = 38333;
|
||||
nPruneAfterHeight = 1000;
|
||||
|
||||
@@ -7,9 +7,8 @@
|
||||
#define BITCOIN_KERNEL_CHAINPARAMS_H
|
||||
|
||||
#include <consensus/params.h>
|
||||
#include <netaddress.h>
|
||||
#include <kernel/messagestartchars.h>
|
||||
#include <primitives/block.h>
|
||||
#include <protocol.h>
|
||||
#include <uint256.h>
|
||||
#include <util/chaintype.h>
|
||||
#include <util/hash_type.h>
|
||||
@@ -87,17 +86,8 @@ public:
|
||||
};
|
||||
|
||||
const Consensus::Params& GetConsensus() const { return consensus; }
|
||||
const CMessageHeader::MessageStartChars& MessageStart() const { return pchMessageStart; }
|
||||
const MessageStartChars& MessageStart() const { return pchMessageStart; }
|
||||
uint16_t GetDefaultPort() const { return nDefaultPort; }
|
||||
uint16_t GetDefaultPort(Network net) const
|
||||
{
|
||||
return net == NET_I2P ? I2P_SAM31_PORT : GetDefaultPort();
|
||||
}
|
||||
uint16_t GetDefaultPort(const std::string& addr) const
|
||||
{
|
||||
CNetAddr a;
|
||||
return a.SetSpecial(addr) ? GetDefaultPort(a.GetNetwork()) : GetDefaultPort();
|
||||
}
|
||||
|
||||
const CBlock& GenesisBlock() const { return genesis; }
|
||||
/** Default value for -checkmempool and -checkblockindex argument */
|
||||
@@ -165,7 +155,7 @@ protected:
|
||||
CChainParams() {}
|
||||
|
||||
Consensus::Params consensus;
|
||||
CMessageHeader::MessageStartChars pchMessageStart;
|
||||
MessageStartChars pchMessageStart;
|
||||
uint16_t nDefaultPort;
|
||||
uint64_t nPruneAfterHeight;
|
||||
uint64_t m_assumed_blockchain_size;
|
||||
|
||||
13
src/kernel/messagestartchars.h
Normal file
13
src/kernel/messagestartchars.h
Normal file
@@ -0,0 +1,13 @@
|
||||
// Copyright (c) 2023 The Bitcoin Core developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#ifndef BITCOIN_KERNEL_MESSAGESTARTCHARS_H
|
||||
#define BITCOIN_KERNEL_MESSAGESTARTCHARS_H
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
|
||||
using MessageStartChars = std::array<uint8_t, 4>;
|
||||
|
||||
#endif // BITCOIN_KERNEL_MESSAGESTARTCHARS_H
|
||||
Reference in New Issue
Block a user