Bitcoin Core Github
44 subscribers
121K links
Download Telegram
hebasto closed an issue: "ci: remove third-party javascript usage from Windows CI"
(https://github.com/bitcoin/bitcoin/issues/32508)
🚀 hebasto merged a pull request: "ci: remove 3rd party js from windows dll gha job"
(https://github.com/bitcoin/bitcoin/pull/32513)
💬 achow101 commented on pull request "depends: Update URL for `qrencode` package source tarball":
(https://github.com/bitcoin/bitcoin/pull/33494#issuecomment-3379064266)
ACK 93a70a42d30fa2f9404b76d5bbdb5ea316fc1032

```
ff3ab842fd36d8c51e76fa87d80e460e3a26fca8641543f01be1b7b62eea99d8 guix-build-93a70a42d30f/output/aarch64-linux-gnu/SHA256SUMS.part
d8e022a8f8794df818cf682e75da7ca2f633e5954cd306cf14cd06f62bc3405d guix-build-93a70a42d30f/output/aarch64-linux-gnu/bitcoin-93a70a42d30f-aarch64-linux-gnu-debug.tar.gz
c7ade0382153220a35b2d59a04f4c6578e40957898c468e0040555c49508039d guix-build-93a70a42d30f/output/aarch64-linux-gnu/bitcoin-93a70a42d30f-aarch64-lin
...
🚀 achow101 merged a pull request: "depends: Update URL for `qrencode` package source tarball"
(https://github.com/bitcoin/bitcoin/pull/33494)
💬 ryanofsky commented on issue "[`v30.0rc3`]`bitcoin-node` aborts with mining IPC interface usage":
(https://github.com/bitcoin/bitcoin/issues/33554#issuecomment-3379176513)
Thanks @plebhash. The stack trace from https://github.com/bitcoin/bitcoin/issues/33554#issuecomment-3378637474 shows the problem pretty clearly, and I created an issue to track it: https://github.com/bitcoin-core/libmultiprocess/issues/226.

It looks to me like there's not way great way for the rust client to avoid this problem, and this is something `bitcoin-node` should be changed to fix by (1) fixing the abort described in https://github.com/bitcoin-core/libmultiprocess/issues/226 and (2) imp
...
📝 l0rinc opened a pull request: "refactor: replace `const char*` exceptions with `std::runtime_error`"
(https://github.com/bitcoin/bitcoin/pull/33569)
Related to https://github.com/bitcoin/bitcoin/pull/33550#issuecomment-3378978210

Fixes MinGW/libc++ test failures where `BOOST_CHECK_EXCEPTION` with `const char*` exceptions failed due to platform-specific exception handling differences.

Following [C++ Core Guidelines E.15](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#e15-throw-by-value-catch-exceptions-from-a-hierarchy-by-reference) "Throw by value, catch exceptions from a hierarchy by reference", throw `std::runtime_error
...
💬 l0rinc commented on pull request "Fix windows libc++ `fs::path` `fstream` compile errors":
(https://github.com/bitcoin/bitcoin/pull/33550#issuecomment-3379213071)
> I'd lean to the second option you mentioned

Thanks, closed the other ones and opened https://github.com/bitcoin/bitcoin/pull/33569 - the dedicated nightly build passed: https://github.com/l0rinc/bitcoin-core-nightly/pull/3
📝 l0rinc opened a pull request: "randomenv: Fix MinGW dllimport warning for `environ`"
(https://github.com/bitcoin/bitcoin/pull/33570)
Related to https://github.com/bitcoin/bitcoin/pull/33550#issuecomment-3378978210

Extends 7703884a to guard environ declaration on all Windows builds, not just MSVC.
MinGW also defines environ as a macro that expands to a dllimport function, causing the same inconsistent linkage warning.

Use WIN32 instead of _MSC_VER to match the platform-specific guards already used throughout the file.

----

The error was reproduced by adding a temporary [nightly build](https://github.com/l0rinc/bit
...
💬 l0rinc commented on pull request "coins: fix `cachedCoinsUsage` accounting in `CCoinsViewCache`":
(https://github.com/bitcoin/bitcoin/pull/32313#issuecomment-3379397164)
Added an AssumeUTXO fuzz test here that was requested in https://github.com/bitcoin/bitcoin/pull/33512#discussion_r2404014654 - but it needs the fixes here to work.
💬 l0rinc commented on pull request "coins: use number of dirty cache entries in flush warnings/logs":
(https://github.com/bitcoin/bitcoin/pull/33512#discussion_r2412387188)
Update: had to remove the fuzz test, the accounting is broken here, but it's fixed in another PR, see: https://github.com/bitcoin/bitcoin/pull/32313#issuecomment-3379397164
💬 Sjors commented on pull request "doc: how to update a subtree":
(https://github.com/bitcoin/bitcoin/pull/33568#discussion_r2412728343)
You only need to add it as a remote once, but each subsequent update requires a fetch. I'll drop `--fetch` from the first command though.
👍 Sjors approved a pull request: "multiprocess: Fix high overhead from message logging"
(https://github.com/bitcoin/bitcoin/pull/33517#pullrequestreview-3313376282)
ACK c3f700feb6f650a7ceb62714f2d8eb0d5f1cb2ae

---

Not directly related to the changes here, but it's a bit odd that clean disconnects are logged at the `info` level (always visible) while new connections are logged at the `debug` level (requires `-debug=ipc`).

Disconnect:

```
2025-10-08T07:19:16Z [ipc:info] {bitcoin-node-57287/b-capnp-loop-6497836} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE
2025-10-08T07:19:16Z [ipc:info] {bitcoin-node-57287/b-capnp-loop-6497836} IPC
...
💬 Sjors commented on pull request "multiprocess: Fix high overhead from message logging":
(https://github.com/bitcoin/bitcoin/pull/33517#discussion_r2412859613)
In c3f700feb6f650a7ceb62714f2d8eb0d5f1cb2ae _multiprocess: align our logging with libmultiprocess's_:

Adding a level to `mp::Log` could be considered a breaking change, similar to changing a function signature in the `.capnp` file in a breaking way.

But we don't want to treat IPC clients as trusted (in the long run), so crashing doesn't seem right. Maybe instead disconnect and log at the error level?
💬 yuvicc commented on pull request "doc: how to update a subtree":
(https://github.com/bitcoin/bitcoin/pull/33568#issuecomment-3380164166)
ACK a1226bc760c70a22ef4a197d5690aca4d83cb74c

This will be useful for new devs while verifying the subtree.
💬 purpleKarrot commented on pull request "refactor: replace `const char*` exceptions with `std::runtime_error`":
(https://github.com/bitcoin/bitcoin/pull/33569#issuecomment-3380174569)
ACK 362d43a659224f9969b268dcc859162006460214

> Note that some of the std::runtime_error instances can likely be std::invalid_argument or std::logic_error - if the reviewers have stronger preferences, I can adjust.

Long term, it should be evaluated whether some contracts could be tightened by turning runtime error cases into preconditions.
💬 fazle1337-del commented on issue "Release Schedule for 30.0":
(https://github.com/bitcoin/bitcoin/issues/32275#issuecomment-3380203211)
I don't understand why we want to limit he ability of the node operator. Does this not disenfranchise the people and move to a more centralised governance. The problem is, once malicious data is onchain, it's going to need a hard fork to remove it. Can this be discussed further before the release happens please
💬 rkrux commented on pull request "wallet: Track no-longer-spendable TXOs separately":
(https://github.com/bitcoin/bitcoin/pull/27865#issuecomment-3380212696)
Concept ACK 7b2718f

Seems like a natural step after #27286, will get to this PR soon.
🤔 hodlinator reviewed a pull request: "refactor: replace `const char*` exceptions with `std::runtime_error`"
(https://github.com/bitcoin/bitcoin/pull/33569#pullrequestreview-3313395594)
Reviewed 362d43a659224f9969b268dcc859162006460214

(I agree with the general rule of not throwing random pointer types, but when its `const char*` from the static text section of the executable that are never deallocated during the process lifetime I think it's acceptable).
💬 hodlinator commented on pull request "refactor: replace `const char*` exceptions with `std::runtime_error`":
(https://github.com/bitcoin/bitcoin/pull/33569#discussion_r2412874356)
nit: Using `runtime_error` everywhere in these heavily `consteval`/`constexpr` contexts feels slightly off, so I agree with what you suggested in the PR description.
```suggestion
throw std::invalid_argument{"Only lowercase hex digits are allowed, for consistency"};
```
💬 hodlinator commented on pull request "refactor: replace `const char*` exceptions with `std::runtime_error`":
(https://github.com/bitcoin/bitcoin/pull/33569#discussion_r2412967418)
I don't get it, https://github.com/hebasto/bitcoin-core-nightly/actions/runs/18313967330/job/52151177201#step:6:401 logs:
`
test/util_string_tests.cpp(40): error: in "util_string_tests/ConstevalFormatString_NumSpec": exception "const char*" raised as expected: validation on the raised exception through predicate "HasReason{error}"
`

Looking at where the error message comes from - https://www.boost.org/doc/libs/1_87_0/boost/test/tools/old/interface.hpp, it has:
```C++
#define BOOST_CHECK_THROW_I
...