mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-16 13:01:19 +02:00
Merge 2364d17a31 into merged_master (Bitcoin PR bitcoin/bitcoin#25480)
This commit is contained in:
commit
438cb545b7
7 changed files with 12 additions and 20 deletions
|
|
@ -26,7 +26,5 @@ static const size_t MIN_SERIALIZABLE_TRANSACTION_WEIGHT = WITNESS_SCALE_FACTOR *
|
|||
/** Flags for nSequence and nLockTime locks */
|
||||
/** Interpret sequence numbers as relative lock-time constraints. */
|
||||
static constexpr unsigned int LOCKTIME_VERIFY_SEQUENCE = (1 << 0);
|
||||
/** Use GetMedianTimePast() instead of nTime for end point timestamp. */
|
||||
static constexpr unsigned int LOCKTIME_MEDIAN_TIME_PAST = (1 << 1);
|
||||
|
||||
#endif // BITCOIN_CONSENSUS_CONSENSUS_H
|
||||
|
|
|
|||
|
|
@ -3070,7 +3070,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
|
|||
if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
|
||||
// Don't increment bucket if it's already full
|
||||
const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
|
||||
const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
|
||||
const double increment = Ticks<SecondsDouble>(time_diff) * MAX_ADDR_RATE_PER_SECOND;
|
||||
peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_PROCESSING_TOKEN_BUCKET);
|
||||
}
|
||||
peer->m_addr_token_timestamp = current_time;
|
||||
|
|
|
|||
|
|
@ -105,8 +105,7 @@ static constexpr unsigned int STANDARD_SCRIPT_VERIFY_FLAGS{MANDATORY_SCRIPT_VERI
|
|||
static constexpr unsigned int STANDARD_NOT_MANDATORY_VERIFY_FLAGS{STANDARD_SCRIPT_VERIFY_FLAGS & ~MANDATORY_SCRIPT_VERIFY_FLAGS};
|
||||
|
||||
/** Used as the flags parameter to sequence and nLocktime checks in non-consensus code. */
|
||||
static constexpr unsigned int STANDARD_LOCKTIME_VERIFY_FLAGS{LOCKTIME_VERIFY_SEQUENCE |
|
||||
LOCKTIME_MEDIAN_TIME_PAST};
|
||||
static constexpr unsigned int STANDARD_LOCKTIME_VERIFY_FLAGS{LOCKTIME_VERIFY_SEQUENCE};
|
||||
|
||||
CAmount GetDustThreshold(const CTxOut& txout, const CFeeRate& dustRelayFee);
|
||||
|
||||
|
|
|
|||
|
|
@ -206,13 +206,13 @@ static RPCHelpMan getpeerinfo()
|
|||
obj.pushKV("conntime", count_seconds(stats.m_connected));
|
||||
obj.pushKV("timeoffset", stats.nTimeOffset);
|
||||
if (stats.m_last_ping_time > 0us) {
|
||||
obj.pushKV("pingtime", CountSecondsDouble(stats.m_last_ping_time));
|
||||
obj.pushKV("pingtime", Ticks<SecondsDouble>(stats.m_last_ping_time));
|
||||
}
|
||||
if (stats.m_min_ping_time < std::chrono::microseconds::max()) {
|
||||
obj.pushKV("minping", CountSecondsDouble(stats.m_min_ping_time));
|
||||
obj.pushKV("minping", Ticks<SecondsDouble>(stats.m_min_ping_time));
|
||||
}
|
||||
if (fStateStats && statestats.m_ping_wait > 0s) {
|
||||
obj.pushKV("pingwait", CountSecondsDouble(statestats.m_ping_wait));
|
||||
obj.pushKV("pingwait", Ticks<SecondsDouble>(statestats.m_ping_wait));
|
||||
}
|
||||
obj.pushKV("version", stats.nVersion);
|
||||
// Use the sanitized form of subver here, to avoid tricksy remote peers from
|
||||
|
|
|
|||
|
|
@ -369,8 +369,8 @@ void MinerTestingSetup::TestBasicMining(const CChainParams& chainparams, const C
|
|||
}
|
||||
|
||||
// non-final txs in mempool
|
||||
SetMockTime(m_node.chainman->ActiveChain().Tip()->GetMedianTimePast()+1);
|
||||
const int flags{LOCKTIME_VERIFY_SEQUENCE | LOCKTIME_MEDIAN_TIME_PAST};
|
||||
SetMockTime(m_node.chainman->ActiveChain().Tip()->GetMedianTimePast() + 1);
|
||||
const int flags{LOCKTIME_VERIFY_SEQUENCE};
|
||||
// height map
|
||||
std::vector<int> prevheights;
|
||||
|
||||
|
|
|
|||
|
|
@ -56,11 +56,6 @@ constexpr int64_t count_microseconds(std::chrono::microseconds t) { return t.cou
|
|||
|
||||
using SecondsDouble = std::chrono::duration<double, std::chrono::seconds::period>;
|
||||
|
||||
/**
|
||||
* Helper to count the seconds in any std::chrono::duration type
|
||||
*/
|
||||
inline double CountSecondsDouble(SecondsDouble t) { return t.count(); }
|
||||
|
||||
/**
|
||||
* DEPRECATED
|
||||
* Use either ClockType::now() or Now<TimePointType>() if a cast is needed.
|
||||
|
|
|
|||
|
|
@ -3902,15 +3902,15 @@ static bool ContextualCheckBlock(const CBlock& block, BlockValidationState& stat
|
|||
const int nHeight = pindexPrev == nullptr ? 0 : pindexPrev->nHeight + 1;
|
||||
|
||||
// Enforce BIP113 (Median Time Past).
|
||||
int nLockTimeFlags = 0;
|
||||
bool enforce_locktime_median_time_past{false};
|
||||
if (DeploymentActiveAfter(pindexPrev, chainman, Consensus::DEPLOYMENT_CSV)) {
|
||||
assert(pindexPrev != nullptr);
|
||||
nLockTimeFlags |= LOCKTIME_MEDIAN_TIME_PAST;
|
||||
enforce_locktime_median_time_past = true;
|
||||
}
|
||||
|
||||
int64_t nLockTimeCutoff = (nLockTimeFlags & LOCKTIME_MEDIAN_TIME_PAST)
|
||||
? pindexPrev->GetMedianTimePast()
|
||||
: block.GetBlockTime();
|
||||
const int64_t nLockTimeCutoff{enforce_locktime_median_time_past ?
|
||||
pindexPrev->GetMedianTimePast() :
|
||||
block.GetBlockTime()};
|
||||
|
||||
// Check that all transactions are finalized
|
||||
for (const auto& tx : block.vtx) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue