mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
Merge bitcoin/bitcoin#25168: refactor: Avoid passing params where not needed
fa1b76aeb0Do not call global Params() when chainman is in scope (MacroFake)fa30234be8Do not pass CChainParams& to PeerManager::make (MacroFake)fafe5c0ca2Do not pass CChainParams& to BlockAssembler constructor (MacroFake)faf012b438Do not pass Consensus::Params& to Chainstate helpers (MacroFake)fa4ee53dcaDo not pass time getter to Chainstate helpers (MacroFake) Pull request description: It seems confusing to pass chain params, consensus params, or a time function around when it is not needed. Fix this by: * Inlining the passed time getter function. I don't see a use case why this should be mockable. * Using `chainman.GetConsensus()` or `chainman.GetParams()`, where possible. ACKs for top commit: promag: Code review ACKfa1b76aeb0. vincenzopalazzo: ACKfa1b76aeb0Tree-SHA512: 1abff5cba4b4871d97f17dbcdf67bc9255ff21fa4150a79a74e39b28f0610eab3e7dee24d56872dd6e111f003b55e288958cdd467e6218368d896f191e4ec9cd
This commit is contained in:
@@ -13,7 +13,6 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
|
||||
ChainstateManager& chainman,
|
||||
CTxMemPool* mempool,
|
||||
bool fPruneMode,
|
||||
const Consensus::Params& consensus_params,
|
||||
bool fReindexChainState,
|
||||
int64_t nBlockTreeDBCache,
|
||||
int64_t nCoinDBCache,
|
||||
@@ -57,7 +56,7 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
|
||||
}
|
||||
|
||||
if (!chainman.BlockIndex().empty() &&
|
||||
!chainman.m_blockman.LookupBlockIndex(consensus_params.hashGenesisBlock)) {
|
||||
!chainman.m_blockman.LookupBlockIndex(chainman.GetConsensus().hashGenesisBlock)) {
|
||||
return ChainstateLoadingError::ERROR_BAD_GENESIS_BLOCK;
|
||||
}
|
||||
|
||||
@@ -126,10 +125,8 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
|
||||
std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManager& chainman,
|
||||
bool fReset,
|
||||
bool fReindexChainState,
|
||||
const Consensus::Params& consensus_params,
|
||||
int check_blocks,
|
||||
int check_level,
|
||||
std::function<int64_t()> get_unix_time_seconds)
|
||||
int check_level)
|
||||
{
|
||||
auto is_coinsview_empty = [&](CChainState* chainstate) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
|
||||
return fReset || fReindexChainState || chainstate->CoinsTip().GetBestBlock().IsNull();
|
||||
@@ -140,12 +137,12 @@ std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManage
|
||||
for (CChainState* chainstate : chainman.GetAll()) {
|
||||
if (!is_coinsview_empty(chainstate)) {
|
||||
const CBlockIndex* tip = chainstate->m_chain.Tip();
|
||||
if (tip && tip->nTime > get_unix_time_seconds() + MAX_FUTURE_BLOCK_TIME) {
|
||||
if (tip && tip->nTime > GetTime() + MAX_FUTURE_BLOCK_TIME) {
|
||||
return ChainstateLoadVerifyError::ERROR_BLOCK_FROM_FUTURE;
|
||||
}
|
||||
|
||||
if (!CVerifyDB().VerifyDB(
|
||||
*chainstate, consensus_params, chainstate->CoinsDB(),
|
||||
*chainstate, chainman.GetConsensus(), chainstate->CoinsDB(),
|
||||
check_level,
|
||||
check_blocks)) {
|
||||
return ChainstateLoadVerifyError::ERROR_CORRUPTED_BLOCK_DB;
|
||||
|
||||
@@ -59,7 +59,6 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
|
||||
ChainstateManager& chainman,
|
||||
CTxMemPool* mempool,
|
||||
bool fPruneMode,
|
||||
const Consensus::Params& consensus_params,
|
||||
bool fReindexChainState,
|
||||
int64_t nBlockTreeDBCache,
|
||||
int64_t nCoinDBCache,
|
||||
@@ -78,10 +77,8 @@ enum class ChainstateLoadVerifyError {
|
||||
std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManager& chainman,
|
||||
bool fReset,
|
||||
bool fReindexChainState,
|
||||
const Consensus::Params& consensus_params,
|
||||
int check_blocks,
|
||||
int check_level,
|
||||
std::function<int64_t()> get_unix_time_seconds);
|
||||
int check_level);
|
||||
} // namespace node
|
||||
|
||||
#endif // BITCOIN_NODE_CHAINSTATE_H
|
||||
|
||||
@@ -228,7 +228,7 @@ public:
|
||||
uint256 getBestBlockHash() override
|
||||
{
|
||||
const CBlockIndex* tip = WITH_LOCK(::cs_main, return chainman().ActiveChain().Tip());
|
||||
return tip ? tip->GetBlockHash() : Params().GenesisBlock().GetHash();
|
||||
return tip ? tip->GetBlockHash() : chainman().GetParams().GenesisBlock().GetHash();
|
||||
}
|
||||
int64_t getLastBlockTime() override
|
||||
{
|
||||
@@ -236,7 +236,7 @@ public:
|
||||
if (chainman().ActiveChain().Tip()) {
|
||||
return chainman().ActiveChain().Tip()->GetBlockTime();
|
||||
}
|
||||
return Params().GenesisBlock().GetBlockTime(); // Genesis block's time of current network
|
||||
return chainman().GetParams().GenesisBlock().GetBlockTime(); // Genesis block's time of current network
|
||||
}
|
||||
double getVerificationProgress() override
|
||||
{
|
||||
@@ -245,7 +245,7 @@ public:
|
||||
LOCK(::cs_main);
|
||||
tip = chainman().ActiveChain().Tip();
|
||||
}
|
||||
return GuessVerificationProgress(Params().TxData(), tip);
|
||||
return GuessVerificationProgress(chainman().GetParams().TxData(), tip);
|
||||
}
|
||||
bool isInitialBlockDownload() override {
|
||||
return chainman().ActiveChainstate().IsInitialBlockDownload();
|
||||
@@ -546,7 +546,7 @@ public:
|
||||
double guessVerificationProgress(const uint256& block_hash) override
|
||||
{
|
||||
LOCK(cs_main);
|
||||
return GuessVerificationProgress(Params().TxData(), chainman().m_blockman.LookupBlockIndex(block_hash));
|
||||
return GuessVerificationProgress(chainman().GetParams().TxData(), chainman().m_blockman.LookupBlockIndex(block_hash));
|
||||
}
|
||||
bool hasBlocks(const uint256& block_hash, int min_height, std::optional<int> max_height) override
|
||||
{
|
||||
|
||||
@@ -62,8 +62,8 @@ BlockAssembler::Options::Options()
|
||||
nBlockMaxWeight = DEFAULT_BLOCK_MAX_WEIGHT;
|
||||
}
|
||||
|
||||
BlockAssembler::BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool, const CChainParams& params, const Options& options)
|
||||
: chainparams(params),
|
||||
BlockAssembler::BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool, const Options& options)
|
||||
: chainparams{chainstate.m_chainman.GetParams()},
|
||||
m_mempool(mempool),
|
||||
m_chainstate(chainstate)
|
||||
{
|
||||
@@ -87,8 +87,8 @@ static BlockAssembler::Options DefaultOptions()
|
||||
return options;
|
||||
}
|
||||
|
||||
BlockAssembler::BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool, const CChainParams& params)
|
||||
: BlockAssembler(chainstate, mempool, params, DefaultOptions()) {}
|
||||
BlockAssembler::BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool)
|
||||
: BlockAssembler(chainstate, mempool, DefaultOptions()) {}
|
||||
|
||||
void BlockAssembler::resetBlock()
|
||||
{
|
||||
|
||||
@@ -157,8 +157,8 @@ public:
|
||||
CFeeRate blockMinFeeRate;
|
||||
};
|
||||
|
||||
explicit BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool, const CChainParams& params);
|
||||
explicit BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool, const CChainParams& params, const Options& options);
|
||||
explicit BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool);
|
||||
explicit BlockAssembler(CChainState& chainstate, const CTxMemPool& mempool, const Options& options);
|
||||
|
||||
/** Construct a new block template with coinbase to scriptPubKeyIn */
|
||||
std::unique_ptr<CBlockTemplate> CreateNewBlock(const CScript& scriptPubKeyIn);
|
||||
|
||||
Reference in New Issue
Block a user