mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
Merge #6328: backport: bitcoin/bitcoin#30131, #23258, #30504 - fix bild for Ubuntu 24.10 + clang
e994691e2d
Merge bitcoin/bitcoin#30504: doc: use proper doxygen formatting for CTxMemPool::cs (merge-script)a3e6378108
Merge bitcoin/bitcoin#23258: doc: Fix outdated comments referring to ::ChainActive() (fanquake)dcbf671551
Merge bitcoin/bitcoin#30131: wallet, tests: Avoid stringop-overflow warning in PollutePubKey (merge-script) Pull request description: ## Issue being fixed or feature implemented It fixes build with clang 19.1.1 (default clang version on Ubuntu 24.10) ## What was done? Backport 30131, 30504 to fix compilation error and warning; 23258 to reduce conflicts. See commit messages for details ## How Has This Been Tested? Build and succeed ``` CC=clang CXX=clang++ ./configure --prefix=$(pwd)/depends/x86_64-pc-linux-gnu --enable-suppress-external-warnings --enable-debug --enable-stacktraces --enable-werror --enable-crash-hooks --enable-maintainer-mode --enable-multiprocess ``` ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACKe994691e2d
UdjinM6: utACKe994691e2d
Tree-SHA512: 82623030c164c0852d87e8497a59157630f87a385050b6c58d79bf5a8f32462fb26cb02e61b1062afdf9f835e10b9baf4590c326c0fb41bbdd79c82e9d105513
This commit is contained in:
commit
1fd0160914
@ -331,7 +331,7 @@ bool BaseIndex::BlockUntilSyncedToCurrentChain() const
|
||||
|
||||
{
|
||||
// Skip the queue-draining stuff if we know we're caught up with
|
||||
// ::ChainActive().Tip().
|
||||
// m_chain.Tip().
|
||||
LOCK(cs_main);
|
||||
const CBlockIndex* chain_tip = m_chainstate->m_chain.Tip();
|
||||
const CBlockIndex* best_block_index = m_best_block_index.load();
|
||||
|
@ -554,7 +554,7 @@ void CBlockPolicyEstimator::processTransaction(const CTxMemPoolEntry& entry, boo
|
||||
if (txHeight != nBestSeenHeight) {
|
||||
// Ignore side chains and re-orgs; assuming they are random they don't
|
||||
// affect the estimate. We'll potentially double count transactions in 1-block reorgs.
|
||||
// Ignore txs if BlockPolicyEstimator is not in sync with ::ChainActive().Tip().
|
||||
// Ignore txs if BlockPolicyEstimator is not in sync with ActiveChain().Tip().
|
||||
// It will be synced next time a block is processed.
|
||||
return;
|
||||
}
|
||||
|
@ -494,17 +494,14 @@ public:
|
||||
* that are guarded by it.
|
||||
*
|
||||
* @par Consistency guarantees
|
||||
*
|
||||
* By design, it is guaranteed that:
|
||||
*
|
||||
* 1. Locking both `cs_main` and `mempool.cs` will give a view of mempool
|
||||
* that is consistent with current chain tip (`::ChainActive()` and
|
||||
* that is consistent with current chain tip (`ActiveChain()` and
|
||||
* `CoinsTip()`) and is fully populated. Fully populated means that if the
|
||||
* current active chain is missing transactions that were present in a
|
||||
* previously active chain, all the missing transactions will have been
|
||||
* re-added to the mempool and should be present if they meet size and
|
||||
* consistency constraints.
|
||||
*
|
||||
* 2. Locking `mempool.cs` without `cs_main` will give a view of a mempool
|
||||
* consistent with some chain that was active since `cs_main` was last
|
||||
* locked, and that is fully populated as described above. It is ok for
|
||||
|
@ -101,7 +101,7 @@ static const bool DEFAULT_SYNC_MEMPOOL = true;
|
||||
|
||||
/** Default for -stopatheight */
|
||||
static const int DEFAULT_STOPATHEIGHT = 0;
|
||||
/** Block files containing a block-height within MIN_BLOCKS_TO_KEEP of ::ChainActive().Tip() will not be pruned. */
|
||||
/** Block files containing a block-height within MIN_BLOCKS_TO_KEEP of ActiveChain().Tip() will not be pruned. */
|
||||
static const unsigned int MIN_BLOCKS_TO_KEEP = 288;
|
||||
static const signed int DEFAULT_CHECKBLOCKS = 6;
|
||||
static const unsigned int DEFAULT_CHECKLEVEL = 3;
|
||||
|
@ -531,8 +531,10 @@ static void TestWatchOnlyPubKey(LegacyScriptPubKeyMan* spk_man, const CPubKey& a
|
||||
// Cryptographically invalidate a PubKey whilst keeping length and first byte
|
||||
static void PollutePubKey(CPubKey& pubkey)
|
||||
{
|
||||
std::vector<unsigned char> pubkey_raw(pubkey.begin(), pubkey.end());
|
||||
std::fill(pubkey_raw.begin()+1, pubkey_raw.end(), 0);
|
||||
assert(pubkey.size() >= 1);
|
||||
std::vector<unsigned char> pubkey_raw;
|
||||
pubkey_raw.push_back(pubkey[0]);
|
||||
pubkey_raw.insert(pubkey_raw.end(), pubkey.size() - 1, 0);
|
||||
pubkey = CPubKey(pubkey_raw);
|
||||
assert(!pubkey.IsFullyValid());
|
||||
assert(pubkey.IsValid());
|
||||
|
@ -1366,7 +1366,7 @@ void CWallet::updatedBlockTip()
|
||||
void CWallet::BlockUntilSyncedToCurrentChain() const {
|
||||
AssertLockNotHeld(cs_wallet);
|
||||
// Skip the queue-draining stuff if we know we're caught up with
|
||||
// chainActive.Tip(), otherwise put a callback in the validation interface queue and wait
|
||||
// chain().Tip(), otherwise put a callback in the validation interface queue and wait
|
||||
// for the queue to drain enough to execute it (indicating we are caught up
|
||||
// at least with the time we entered this function).
|
||||
uint256 last_block_hash = WITH_LOCK(cs_wallet, return m_last_block_processed);
|
||||
|
Loading…
Reference in New Issue
Block a user