Includes:
Also does:
- update to release notes
- bump to rc2
- manpages
- (no changes to bitcoin.conf)
The MinGW-w64 toolchain links executables to the old msvcrt C Runtime
Library that does not support the `x` modifier for the _wfopen()
function.
Github-Pull: #29357
Rebased-From: d2fe90571e98e02617682561ea82acb1e2647827
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
For detailed information about the code coverage, see the test coverage report.
See the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Github-Pull: #29412
Rebased-From: 95bddb930aa72edd40fdff52cf447202995b0dce
Github-Pull: #29412
Rebased-From: e7669e1343aec4298fd30d539847963e6fa5619c
Github-Pull: #29412
Rebased-From: 66abce1d98115e41f394bc4f4f52341960ddc839
Github-Pull: #29412
Rebased-From: 2d8495e0800f5332748cd50eaad801ff77671bba
We preemptively perform a block mutation check before further processing
a block message (similar to early sanity checks on other messsage
types). The main reasons for this change are as follows:
- `CBlock::GetHash()` is a foot-gun without a prior mutation check, as
the hash returned only commits to the header but not to the actual
transactions (`CBlock::vtx`) contained in the block.
- We have observed attacks that abused mutated blocks in the past, which
could have been prevented by simply not processing mutated blocks
(e.g. https://github.com/bitcoin/bitcoin/pull/27608).
Github-Pull: #29412
Rebased-From: 49257c0304828a185c273fcb99742c54bbef0c8e
Github-Pull: #29412
Rebased-From: 5bf4f5ba32da4627f152b54d266df9b2aa930457
Slight performance improvement by avoiding duplicate work.
Github-Pull: #29412
Rebased-From: 1ec6bbeb8d27d31647d1433ccb87b362f6d81f90
Github-Pull: #29412
Rebased-From: d8087adc7ebd4ea05dd3843e5a92e8115fd7bbcc
Github-Pull: #29524
Rebased-From: a1fbde0ef7cf6c94d4a5181f8ceb327096713160
Github-Pull: #29510
Rebased-From: 367bb7a80cc71130995672c853d4a6e0134721d6
Github-Pull: #29510
Rebased-From: e073f1dfda7a2a2cb2be9fe2a1d576f122596021
Noting changes for #29412:
LogDebug
to LogPrint
GetSerializeSize(TX_NO_WITNESS(tx))
to GetSerializeSize(tx, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS)
Should fix the GCC compilation portion of #29517:
https://github.com/bitcoin/bitcoin/issues/29517#issuecomment-1973573314.
See also:
https://www.gnu.org/software/gnulib/manual/html_node/fopencookie.html
but note that FreeBSD has supported this function since 11.x.
Github-Pull: #29529
Rebased-From: 312f3381a2d3a7afb7c81b4662214d4d67b4e84a