44235 Commits

Author SHA1 Message Date
stickies-v
acfa83d9d0
log: make m_limiter a shared_ptr
This allows us to safely and explicitly manage the dual dependency
on the limiter: one for the Logger, and one for the CScheduler.

Github-Pull: #33011
Rebased-From: 3d630c2544e19480268426cda245796d4ce34ac3
2025-08-20 11:59:45 +01:00
Eugene Siegel
81751341e9
log: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressions
In LogPrintStr_:
- remove an unnecessary BCLog since we are in the BCLog namespace.
- remove an unnecessary \n when rate limiting is triggered since
  FormatLogStrInPlace will add it.
- move the ratelimit bool into an else if block.
- prefix all log lines with [*] when suppressions exist. Previously this
  was only done if should_ratelimit was true.

In Reset:
- remove an unnecessary \n since FormatLogStrInPlace will add it.
- Change Level::Info to Level::Warning.

Github-Pull: #33011
Rebased-From: e8f9c37a3b4c9c88baddb556c4b33a4cbba1f614
2025-08-20 11:55:28 +01:00
Eugene Siegel
7c3820ff63
log: change LogLimitStats to struct LogRateLimiter::Stats
Clean up the noisy LogLimitStats and remove references to the time
window.

Co-Authored-By: stickies-v <stickies-v@protonmail.com>

Github-Pull: #33011
Rebased-From: 3c7cae49b692bb6bf5cae5ee23479091bed0b8be
2025-08-20 11:54:59 +01:00
Eugene Siegel
dfe4e19f66
log: clarify RATELIMIT_MAX_BYTES comment, use RATELIMIT_WINDOW
Co-Authored-By: stickies-v <stickies-v@protonmail.com>

Github-Pull: #33011
Rebased-From: 8319a134684df2240057a5e8afaa6ae441fb8a58
2025-08-20 11:53:48 +01:00
Eugene Siegel
273ffda2c8
log: remove const qualifier from arguments in LogPrintFormatInternal
Co-Authored-By: l0rinc <pap.lorinc@gmail.com>

Github-Pull: #33011
Rebased-From: 5f70bc80df06ca85d44e8201d47e7086e971fdea
2025-08-20 11:52:01 +01:00
Eugene Siegel
9cde68fa98
log: avoid double hashing in SourceLocationHasher
Co-Authored-By: l0rinc <pap.lorinc@gmail.com>

Github-Pull: #33011
Rebased-From: b8e92fb3d4137f91fe6a54829867fc54357da648
2025-08-20 11:51:31 +01:00
Eugene Siegel
25f975b8df
test: remove noexcept(false) comment in ~DebugLogHelper
Github-Pull: #33011
Rebased-From: 616bc22f131132b9239ef362dca8c6bce000a539
2025-08-20 11:51:06 +01:00
Eugene Siegel
24c793d06c
doc: add release notes for new rate limiting logging behavior
Github-Pull: #32604
Rebased-From: 4c772cbd83e502a1339e8993d192ea6416ecd45c
2025-08-20 11:47:20 +01:00
Eugene Siegel
0b6b096421
log: Add rate limiting to LogPrintf, LogInfo, LogWarning, LogError, LogPrintLevel
To mitigate disk-filling attacks caused by unsafe usages of LogPrintf and
friends, we rate-limit them by passing a should_ratelimit bool that
eventually makes its way to LogPrintStr which may call
LogRateLimiter::Consume. The rate limiting is accomplished by
adding a LogRateLimiter member to BCLog::Logger which tracks source
code locations for the given logging window.

Every hour, a source location can log up to 1MiB of data. Source
locations that exceed the limit will have their logs suppressed for the
rest of the window determined by m_limiter.

This change affects the public LogPrintLevel function if called with
a level >= BCLog::Level::Info.

The UpdateTipLog function has been changed to use the private LogPrintLevel_
macro with should_ratelimit set to false. This allows UpdateTipLog to log
during IBD without hitting the rate limit.

Note that on restart, a source location that was rate limited before the
restart will be able to log until it hits the rate limit again.

Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com>
Co-Authored-By: stickies-v <stickies-v@protonmail.com>

Github-Pull: #32604
Rebased-From: d541409a64c60d127ff912dad9dea949d45dbd8c
2025-08-20 11:45:06 +01:00
Eugene Siegel
a0992a842e
log: use std::source_location in place of __func__, __FILE__, __LINE__
The std::source_location conveniently stores the file name, line number,
and function name of a source code location. We switch to using it instead
of the __func__ identifier and the __FILE__ and __LINE__ macros.

BufferedLog is changed to have a std::source_location member, replacing the
source_file, source_line, and logging_function members. As a result,
MemUsage no longer explicitly counts source_file or logging_function as the
std::source_location memory usage is included in the MallocUsage call.

This also changes the behavior of -logsourcelocations as std::source_location
includes the entire function signature. Because of this, the functional test
feature_config_args.py must be changed to no longer include the function
signature as the function signature can differ across platforms.

Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com>
Co-Authored-By: stickies-v <stickies-v@protonmail.com>

Github-Pull: #32604
Rebased-From: a6a35cc0c23d0d529bfeb2f40d83d61f15ca7b40
2025-08-20 11:42:01 +01:00
Eugene Siegel
41262cc4d5
log: introduce LogRateLimiter, LogLimitStats, Status
LogRateLimiter will be used to keep track of source locations and our
current time-based logging window. It contains an unordered_map and a
m_suppressions_active bool to track source locations. The map is keyed
by std::source_location, so a custom Hash function (SourceLocationHasher)
and custom KeyEqual function (SourceLocationEqual) is provided.
SourceLocationHasher uses CSipHasher(0,0) under the hood to get a
uniform distribution.

A public Reset method is provided so that a scheduler (e.g. the
"b-scheduler" thread) can periodically reset LogRateLimiter's state when
the time window has elapsed.

The LogRateLimiter::Consume method checks if we have enough available
bytes in our rate limiting budget to log an additional string. It
returns a Status enum that denotes the rate limiting status and can
be used by the caller to emit a warning, skip logging, etc.

The Status enum has three states:
- UNSUPPRESSED     (logging was successful)
- NEWLY_SUPPRESSED (logging was succcesful, next log will be suppressed)
- STILL_SUPPRESSED (logging was unsuccessful)

LogLimitStats counts the available bytes left for logging per source
location for the current logging window. It does not track actual source
locations; it is used as a value in m_source_locations.

Also exposes a SuppressionsActive() method so the logger can use
that in a later commit to prefix [*] to logs whenenever suppressions
are active.

Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com>
Co-Authored-By: stickies-v <stickies-v@protonmail.com>

Github-Pull: #32604
Rebased-From: afb9e39ec5552e598a5febaa81820d5509b7c5d2
2025-08-20 11:37:48 +01:00
Eugene Siegel
4987c03531
test: Mark ~DebugLogHelper as noexcept(false)
We mark ~DebugLogHelper as noexcept(false) to be able to catch the
exception it throws. This lets us use it in test in combination with
BOOST_CHECK_THROW and BOOST_CHECK_NO_THROW to check that certain log
messages are (not) logged.

Co-Authored-By: Niklas Gogge <n.goeggi@gmail.com>

Github-Pull: #32604
Rebased-From: df7972a6cfd919b972bcbba07de85f7797898529
2025-08-20 11:37:17 +01:00
merge-script
837c5c7fd8
Merge bitcoin/bitcoin#33074: [29.x] Backports
b9e637bd0ee4d1da5f587ec33cbed9ee28c07daf doc: update release notes for 29.x (fanquake)
2b9738a0835f50845ed183e124347b07b7bcce10 test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field (Chris Stewart)
4e8abca44506ac39166e4a7372f8ee0f6d1def0a rpc: fix getpeerinfo ping duration unit docs (0xb10c)
a08886d5640a808e302108575ffbebd7df5f8f11 doc: move `cmake -B build -LH` up in Unix build docs (Bufo)
264418f80cea7fd5ae818a2a2887fab62de2b0a2 doc: Add rel note for breaking change in dumptxoutset RPC (Chris Stewart)
a18b53f99e4bf7f038dac635f27bddf17d285010 guix: warn SOURCE_DATE_EPOCH set in guix-codesign (will)
9437415024da7dd51705e46e4243f7e1694acaf5 tracing: fix pointer argument handling in mempool_monitor.py (deadmanoz)
3cd8612cd7719c0a4dfa104bae3467b562d567d7 doc/zmq: fix unix socket path example (Roman Zeyde)

Pull request description:

  Backports:
  * #33070
  * #33073
  * #33086
  * #33088
  * #33103
  * #33119
  * #33133

ACKs for top commit:
  glozow:
    ACK b9e637bd0ee4d1da5f587ec33cbed9ee28c07daf

Tree-SHA512: bf2a700ec4d730548cf5abf10930b41e26742ea23582149b0eddcaaa48c1db05ab657ef9ffc7dcba2d1af2e265d0ea866d7b484a321a9c9ac662a6dc2263d102
2025-08-15 13:59:08 +01:00
fanquake
b9e637bd0e
doc: update release notes for 29.x 2025-08-06 11:18:21 +01:00
Chris Stewart
2b9738a083
test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field
Github-Pull: #33119
Rebased-From: 3543bfdfec345cf2c952143c31674ef02de2a64b
2025-08-06 11:17:38 +01:00
0xb10c
4e8abca445
rpc: fix getpeerinfo ping duration unit docs
The getpeerinfo docs incorrectly specified the ping durations as
milliseconds. This was incorrectly changed in a3789c700b5a43efd4b366b4241ae840d63f2349
(released in v25; master since Sept. 2022). The correct duration unit
is seconds.

Also, remove the documentation of the getpeerinfo RPC response from the
ping RPC since it's incomplete. Better to just reference the getpeerinfo
RPC and it's documenation for this.

Github-Pull: #33133
Rebased-From: 1252eeb997df2eb12c33d92eb1a5c9d6643a67ff
2025-08-05 09:44:47 +01:00
Bufo
a08886d564
doc: move cmake -B build -LH up in Unix build docs
Github-Pull: #33088
Rebased-From: 6757052fc439bedd1fa88ee1d23b4f17cf2c4f7a
2025-08-03 12:25:29 +01:00
Chris Stewart
264418f80c
doc: Add rel note for breaking change in dumptxoutset RPC
This was missed in the v29.0 release notes.
2025-07-30 16:49:37 +01:00
will
a18b53f99e
guix: warn SOURCE_DATE_EPOCH set in guix-codesign
Currently there is a warning for this in guix-build, but we also need
one in guix-codesign, otherwise the codesigned hashes are not
reproducible.

Move common functionality into prelude and call the function in both
guix actions.

Github-Pull: #33073
Rebased-From: 1bed0f734b3f2dd876193b5cad303bfab1d250d5
2025-07-29 16:35:30 +01:00
deadmanoz
9437415024
tracing: fix pointer argument handling in mempool_monitor.py
The BPF code was incorrectly passing pointer variables by value to
bpf_usdt_readarg(), causing the function to fail silently and resulting
in transaction hashes and reason strings displaying as zeros or garbage.

This fix adds the missing reference operator (&) when passing pointer
variables to bpf_usdt_readarg(), allowing the function to properly
write the pointer values and enabling correct display of transaction
hashes and removal/rejection reasons.

Fixes the regression introduced in ec47ba349d where bpf_usdt_readarg_p
was replaced with bpf_usdt_readarg but the calling convention wasn't
properly updated for pointer arguments.

Github-Pull: #33086
Rebased-From: 0ce041ea88dbea2bdfaf21fd0e60a86012498f0a
2025-07-29 10:54:48 +01:00
Roman Zeyde
3cd8612cd7
doc/zmq: fix unix socket path example
Following 75a5c8258e/doc/release-notes/release-notes-28.0.md (L105)

Github-Pull: #33070
Rebased-From: e83699a626b8a41c8fb9d0450e14e06a29a98bb8
2025-07-28 10:28:44 +01:00
merge-script
565af03c37
Merge bitcoin/bitcoin#33056: [29.x] final changes for v29.1rc1
4c2d285b706058ece7092d03f0e5ad1112c2097f [doc] update release notes for v29.1rc1 (glozow)
06eb42d83cf7eb76dc89bb6ca04f51eb17847d06 [doc] manpages for 29.1rc1 (glozow)
735ffad864ce6cc1f9a1c13f0cb15bcf30284dd6 [build] bump version to 29.1rc1 (glozow)

Pull request description:

ACKs for top commit:
  marcofleon:
    nice, ACK 4c2d285b706058ece7092d03f0e5ad1112c2097f
  fanquake:
    ACK 4c2d285b706058ece7092d03f0e5ad1112c2097f
  darosior:
    ACK 4c2d285b706058ece7092d03f0e5ad1112c2097f

Tree-SHA512: ffcc45566e33b8c4b80da1c751a5045863e06a31de81ec6f3f5ba26717eb8e7087139f7d2696ed5c61170efb62b5b9416f350bcb108a03afcdfa38e77067d612
v29.1rc1
2025-07-25 16:28:46 +01:00
glozow
4c2d285b70 [doc] update release notes for v29.1rc1 2025-07-24 15:54:20 -04:00
glozow
06eb42d83c [doc] manpages for 29.1rc1 2025-07-24 13:20:21 -04:00
glozow
735ffad864 [build] bump version to 29.1rc1 2025-07-24 12:40:27 -04:00
merge-script
4bf77955ed
Merge bitcoin/bitcoin#33013: [29.x] Backport #32521
f25dc84b2892e6bdbbd0471add9fcb2757700981 doc: update release notes for 29.x (Antoine Poinsot)
313023369b8e4ffb268cb642101680fe7f746fea qa: functional test a transaction running into the legacy sigop limit (Antoine Poinsot)
0a4671d5eba2499a27e530536b48b86166319fe8 qa: unit test standardness of inputs packed with legacy sigops (Antoine Poinsot)
204b96591542373dc75c6a6401b477f4b6615e69 policy: make pathological transactions packed with legacy sigops non-standard. (Antoine Poinsot)

Pull request description:

  This backports PR #32521 to make the change available to miners who can't (or don't want to) upgrade past version 29.

ACKs for top commit:
  marcofleon:
    reACK f25dc84b2892e6bdbbd0471add9fcb2757700981
  glozow:
    ACK f25dc84b2892e6bdbbd0471add9fcb2757700981

Tree-SHA512: d5e06618720ed1a96d8a5fccdd8d1dbcbb5748505aa0df69198326828fe13f220e55bbce813f6f2daae82d23348e1f83a3a20a28639ec3fc2455c5b6e79a56e6
2025-07-24 12:32:38 -04:00
merge-script
951b349af1
Merge bitcoin/bitcoin#33052: [29.x] backport #32069
c6fe6971bfa52d8fe2901a051f18da9f3bcb26a9 doc: update release notes for 29.x (fanquake)
380b5aded21772f9b7a31418109c20b2e15d090e test: fix intermittent failure in wallet_reorgsrestore.py (furszy)

Pull request description:

  Backport https://github.com/bitcoin/bitcoin/pull/32069 to 29. This is a test flakiness fix for https://github.com/bitcoin/bitcoin/pull/31757, which was backported to 29 in https://github.com/bitcoin/bitcoin/pull/32589.

ACKs for top commit:
  marcofleon:
    ACK c6fe6971bfa52d8fe2901a051f18da9f3bcb26a9

Tree-SHA512: 82517eef67c8d0fe57e70cb769d1b040ea8dea41c2d2e5b442477e1c7add7d7bac1c4aabbebc5b7d440db5b7bf00f1d70dc6ffb375b7a2e77d9599c543579122
2025-07-24 16:59:04 +01:00
fanquake
c6fe6971bf doc: update release notes for 29.x 2025-07-24 10:00:40 -04:00
furszy
380b5aded2
test: fix intermittent failure in wallet_reorgsrestore.py
Wait until the node's process has fully stopped before starting a new instance.

Since the same code is used in tool_wallet.py, this consolidates the behavior
into a 'kill_process()' function.

Github-Pull: bitcoin/bitcoin#32069
Rebased-From: 36b0713edc4655f6e0c291975d6d280fbc89cf2e
2025-07-24 09:29:11 -04:00
merge-script
8063d55446
Merge bitcoin/bitcoin#33046: [29.x] test: Do not pass tests on unhandled exceptions
411e15194b3a770ff455d413a0fe2495f0362297 doc: update release notes for 29.x (fanquake)
5e327e6703f10d3de12c56bb9701b07521a9f703 test: Log KeyboardInterrupt as exception (MarcoFalke)
79e1a3c9c6a4661562d419dc3427b35060ed0451 test: Do not pass tests on unhandled exceptions (MarcoFalke)

Pull request description:

  Backports #33001 to `29.x`.

ACKs for top commit:
  pablomartin4btc:
    ACK 411e15194b3a770ff455d413a0fe2495f0362297
  marcofleon:
    lgtm ACK 411e15194b3a770ff455d413a0fe2495f0362297

Tree-SHA512: ea930f8c24a0a5e18f2107e96540db5c39941442059190d6104dfcf88b4a33d06ecaa7dbdf8baa91e564ee7ca3d12df5118c7fa404a38108de4ad0e5f122f72d
2025-07-24 12:15:56 +01:00
Antoine Poinsot
f25dc84b28 doc: update release notes for 29.x 2025-07-23 12:47:50 -04:00
fanquake
411e15194b
doc: update release notes for 29.x 2025-07-23 16:47:49 +01:00
MarcoFalke
5e327e6703
test: Log KeyboardInterrupt as exception
log.exception is more verbose and useful to debug timeouts.

Also, log stderr for CalledProcessError to make debugging easier.

Github-Pull: #33001
Rebased-From: faa3e684118bffa7a98cf76eeeb59243219df900
2025-07-23 16:47:12 +01:00
MarcoFalke
79e1a3c9c6
test: Do not pass tests on unhandled exceptions
This adds a missing catch for BaseException (e.g. SystemExit), which
would otherwise be silently ignored.

Also, remove the redundant other catches, which are just calling
log.exception with a redundant log message.

Github-Pull: #33001
Rebased-From: fa30b34026f76a5b8af997152fced2d281782e0d
2025-07-23 16:46:48 +01:00
Antoine Poinsot
313023369b
qa: functional test a transaction running into the legacy sigop limit
It's useful to have an end-to-end test in addition to the unit test to sanity check the RPC error as
well as making sure the transaction is otherwise fully standard.

Github-Pull: bitcoin/bitcoin#32521
Rebased-From: 96da68a38fa295d2414685739c41b8626e198d27
2025-07-18 16:51:54 -04:00
Antoine Poinsot
0a4671d5eb
qa: unit test standardness of inputs packed with legacy sigops
Check bounds and different output types.

Github-Pull: bitcoin/bitcoin#32521
Rebased-From: 367147954d16c961bbd28c361abf27b4cb665f10
2025-07-18 16:51:54 -04:00
Antoine Poinsot
204b965915
policy: make pathological transactions packed with legacy sigops non-standard.
The Consensus Cleanup soft fork proposal includes a limit on the number of legacy signature
operations potentially executed when validating a transaction. If this change is to be implemented
here and activated by Bitcoin users in the future, we should prevent the ability for someone to
broadcast a transaction through the p2p network that is not valid according to the new rules. This
is because if it was possible it would be a trivial DoS to potentially unupgraded miners after the
soft fork activates.

We do not know for sure whether users will activate the Consensus Cleanup. However if they do such
transactions must have been made non-standard long in advance, due to the time it takes for most
nodes on the network to upgrade. In addition this limit may only be run into by pathological
transactions which pad the Script with sigops but do not use actual signatures when spending, as
otherwise they would run into the standard transaction size limit.

Github-Pull: bitcoin/bitcoin#32521
Rebased-From: 5863315e33ba9b75a1e5189ee3da3d7311bbf193
2025-07-18 16:51:53 -04:00
merge-script
ef380a454c
Merge bitcoin/bitcoin#32863: [29.x] Backports
5300295083f2e199c22a7ad55e62a8dc7549a76e doc: update release notes for 29.x (fanquake)
730886b92b661ae6fb2731f79f1371262187b1d5 depends: fix libevent _WIN32_WINNT usage (fanquake)
f798c317a08c1fdbc560fa70af624396ec4cb488 cmake: Drop no longer necessary "cmakeMinimumRequired" object (Hennadii Stepanov)
bc2147c884d971ec57c782004142b99af6175d9a depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` (Hennadii Stepanov)
58b1a65ab0883bb14cb8ffaf76580800a29a92d2 add more bad p2p ports (Jameson Lopp)
f85d41c2249dfd9a343fdc3cfe139218371bf891 test: retain the intended behavior of `feature_fee_estimation.py` nodes (ismaelsadeeq)
84c0c0e64b799f8f19791e8c71a7a6e10baa1c3b test: fix incorrect subtest in `feature_fee_estimation.py` (ismaelsadeeq)
83ee49b1dc9b1a086c1ac910e3bcd2ec38dd6d69 doc: clarify that the "-j N" goes after the "--build build" part (Salvatore Ingala)
e5a7575a6df8abd5153f29f1df2503146ac81810 doc: Add workaround for vcpkg issue with paths with embedded spaces (Hennadii Stepanov)
59a83fb8d1f9030111a70e8184091e61cef15c38 functional test: correctly detect nonstd TRUC tx vsize in feature_taproot (Greg Sanders)
9f3690b9785a5e818d2b889a395b65f42fd78378 feature_taproot: sample tx version border values more (Greg Sanders)
8a4a938db527636aadaa874d733542613b3d14b6 depends: Override host compilers for FreeBSD and OpenBSD (Hennadii Stepanov)
3a57bfaaf9b0712ff080bd8a315c01552735b882 test: Use rehash() in outbound eviction block-relay (pablomartin4btc)
f82015ccfc7c719405e942ef31c4b59865ee576a test: Clarify roles in outbound eviction comments (pablomartin4btc)
222fbfcc6a02ec5bac367e156392d49fb215c066 test: check P2SH sigop count for coinbase tx (brunoerg)

Pull request description:

  Backports
  - #32463
  - #32716
  - #32823
  - #32826
  - #32837
  - #32841
  - #32846
  - #32850
  - #32858
  - #32859
  - #32943
  - #32954

ACKs for top commit:
  hebasto:
    ACK 5300295083f2e199c22a7ad55e62a8dc7549a76e, I've backported all listed PRs locally (had 3 conflicts to resolve), and got zero diff with this PR.
  glozow:
    ACK 5300295083f2e199c22a7ad55e62a8dc7549a76e

Tree-SHA512: c2f764ce3dcd1b6c16bfbe73a548a815f8d7db83653436d17686541a5cb530255a96132865442aa2f569340c95abee31aadda8bf0736582c7a19720029096b1e
2025-07-18 13:47:15 -04:00
fanquake
5300295083
doc: update release notes for 29.x 2025-07-16 13:51:57 +01:00
fanquake
730886b92b
depends: fix libevent _WIN32_WINNT usage
Starting with version 13.x, the mingw headers will define the value of
NTDDI_VERSION, based on the value of _WIN32_WINNT, if that version is <
Windows 10. Given that libevent was undefining our _WIN32_WINNT, and
redefining it to a value < Windows 10 (0x0501), NTDDI_VERSION was also
being defined to that value, leading to functions not being exposed in
the mingw-w64 headers; see here:
9c2668ef77/mingw-w64-headers/include/iphlpapi.h (L36-L41).

Imports a commit from usptream (a14ff91254f40cf36e0fee199e26fb11260fab49).

Fixes #32707.

Github-Pull: #32837
Rebased-From: f5647c6c5ae85e9469cfc5df6fcac23752e1695a
2025-07-16 13:50:53 +01:00
Hennadii Stepanov
f798c317a0
cmake: Drop no longer necessary "cmakeMinimumRequired" object
Github-Pull: #32954
Rebased-From: 12a6959892cb24b940b3579828f2066651572153
2025-07-16 13:31:40 +01:00
Hennadii Stepanov
bc2147c884
depends: Force CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE
When using CMake policies 3.14 and below, the `export(PACKAGE)` command
by default populates the user package registry, which is stored outside
the build tree. Setting the `CMAKE_EXPORT_NO_PACKAGE_REGISTRY` variable
disables this side effect.

In CMake 3.15 and later, this behavior is disabled by default, and the
variable has no effect.

Github-Pull: #32943
Rebased-From: 44f3bae300dcafbe53f9b07e6cc22a112833e579
2025-07-14 13:34:27 +01:00
Jameson Lopp
58b1a65ab0
add more bad p2p ports
Github-Pull: #32826
Rebased-From: 6967e8e8abbc35ac98e8e3745a8bbed56e77526f
2025-07-04 16:35:35 +01:00
ismaelsadeeq
f85d41c224
test: retain the intended behavior of feature_fee_estimation.py nodes
- Increase block weight by 4000 for all nodes with custom -blockmaxweight.
  Prior to this commit, we generated blocks with 4000 weight units less worth of transactions.
  See https://github.com/bitcoin/bitcoin/issues/32461#issuecomment-2925282272 for details.
  This commit fixes it by increasing the block weight by 4000.

Github-Pull: #32463
Rebased-From: 9b75cfda4d62a0a3bde402503244dd57e1621a12
2025-07-04 09:34:31 +01:00
ismaelsadeeq
84c0c0e64b
test: fix incorrect subtest in feature_fee_estimation.py
- Update `check_smart_estimates` to calculate the fee rate ceiling
   by taking the maximum of fees seen, minrelaytxfee, and mempoolminfee.
- Improve the subtest name and comments.

Github-Pull: #32463
Rebased-From: 5c1236f04a24716b2cbd9b9b283863d3a8a6fa87
2025-07-04 09:34:28 +01:00
Salvatore Ingala
83ee49b1dc
doc: clarify that the "-j N" goes after the "--build build" part
Also, capitalized the comments in build-unix.md for uniformity
with the docs on other targets.

Github-Pull: #32846
Rebased-From: 0e9f409db3b7b08aef75ce39765b018b69cc8e9d
2025-07-03 17:42:44 +01:00
Hennadii Stepanov
e5a7575a6d
doc: Add workaround for vcpkg issue with paths with embedded spaces
Github-Pull: #32858
Rebased-From: 0a1af4418ed2a135001cc0e10f0af44cbd64e521
2025-07-03 16:25:19 +01:00
Greg Sanders
59a83fb8d1
functional test: correctly detect nonstd TRUC tx vsize in feature_taproot
Github-Pull: #32859
Rebased-From: f0524cda3995cf65adab3d0ca8da0dee4e31c79b
2025-07-03 12:03:30 +01:00
Greg Sanders
9f3690b978
feature_taproot: sample tx version border values more
Currently if the version 3 is selected for an otherwise
standard spender, the test will fail. It's unlikely but
possible, so change the test to update expectations and
sample more aggressively on border values to instigate
failures much quicker in the future if another version is
made standard.

Github-Pull: #32841
Rebased-From: 4be81e9746e9e18923386d6f4945a33885fd98a7
2025-07-03 12:03:06 +01:00
Hennadii Stepanov
8a4a938db5
depends: Override host compilers for FreeBSD and OpenBSD
When building depends on FreeBSD/OpenBSD `aarch64`, the host compilers
default to `default_host_{CC,CXX}`, which resolves to `gcc`/`g++`. This
is incorrect on these systems, where Clang is the default system
compiler.

Github-Pull: #32716
Rebased-From: 4f10a57671c19cacca630b2401e42a213aacff1b
2025-07-03 11:58:03 +01:00