mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-05-31 18:22:04 +02:00
[net processing] FeeFilterRounder doesn't own a FastRandomContext
This commit is contained in:
parent
47520ed209
commit
fecec3e1c6
@ -1813,7 +1813,7 @@ PeerManagerImpl::PeerManagerImpl(CConnman& connman, AddrMan& addrman,
|
||||
BanMan* banman, ChainstateManager& chainman,
|
||||
CTxMemPool& pool, Options opts)
|
||||
: m_rng{opts.deterministic_rng},
|
||||
m_fee_filter_rounder{CFeeRate{DEFAULT_MIN_RELAY_TX_FEE}},
|
||||
m_fee_filter_rounder{CFeeRate{DEFAULT_MIN_RELAY_TX_FEE}, m_rng},
|
||||
m_chainparams(chainman.GetParams()),
|
||||
m_connman(connman),
|
||||
m_addrman(addrman),
|
||||
|
@ -1054,8 +1054,9 @@ static std::set<double> MakeFeeSet(const CFeeRate& min_incremental_fee,
|
||||
return fee_set;
|
||||
}
|
||||
|
||||
FeeFilterRounder::FeeFilterRounder(const CFeeRate& minIncrementalFee)
|
||||
: m_fee_set{MakeFeeSet(minIncrementalFee, MAX_FILTER_FEERATE, FEE_FILTER_SPACING)}
|
||||
FeeFilterRounder::FeeFilterRounder(const CFeeRate& minIncrementalFee, FastRandomContext& rng)
|
||||
: m_fee_set{MakeFeeSet(minIncrementalFee, MAX_FILTER_FEERATE, FEE_FILTER_SPACING)},
|
||||
insecure_rand{rng}
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -320,7 +320,7 @@ private:
|
||||
|
||||
public:
|
||||
/** Create new FeeFilterRounder */
|
||||
explicit FeeFilterRounder(const CFeeRate& min_incremental_fee);
|
||||
explicit FeeFilterRounder(const CFeeRate& min_incremental_fee, FastRandomContext& rng);
|
||||
|
||||
/** Quantize a minimum fee for privacy purpose before broadcast. */
|
||||
CAmount round(CAmount currentMinFee) EXCLUSIVE_LOCKS_REQUIRED(!m_insecure_rand_mutex);
|
||||
@ -328,7 +328,7 @@ public:
|
||||
private:
|
||||
const std::set<double> m_fee_set;
|
||||
Mutex m_insecure_rand_mutex;
|
||||
FastRandomContext insecure_rand GUARDED_BY(m_insecure_rand_mutex);
|
||||
FastRandomContext& insecure_rand GUARDED_BY(m_insecure_rand_mutex);
|
||||
};
|
||||
|
||||
#endif // BITCOIN_POLICY_FEES_H
|
||||
|
@ -17,7 +17,8 @@ FUZZ_TARGET(fees)
|
||||
{
|
||||
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
|
||||
const CFeeRate minimal_incremental_fee{ConsumeMoney(fuzzed_data_provider)};
|
||||
FeeFilterRounder fee_filter_rounder{minimal_incremental_fee};
|
||||
FastRandomContext rng{/*fDeterministic=*/true};
|
||||
FeeFilterRounder fee_filter_rounder{minimal_incremental_fee, rng};
|
||||
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
|
||||
const CAmount current_minimum_fee = ConsumeMoney(fuzzed_data_provider);
|
||||
const CAmount rounded_fee = fee_filter_rounder.round(current_minimum_fee);
|
||||
|
@ -13,7 +13,8 @@ BOOST_AUTO_TEST_SUITE(policy_fee_tests)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(FeeRounder)
|
||||
{
|
||||
FeeFilterRounder fee_rounder{CFeeRate{1000}};
|
||||
FastRandomContext rng{/*fDeterministic=*/true};
|
||||
FeeFilterRounder fee_rounder{CFeeRate{1000}, rng};
|
||||
|
||||
// check that 1000 rounds to 974 or 1071
|
||||
std::set<CAmount> results;
|
||||
|
Loading…
x
Reference in New Issue
Block a user