✅ hebasto closed an issue: "ci: remove third-party javascript usage from Windows CI"
(https://github.com/bitcoin/bitcoin/issues/32508)
(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)
(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
...
(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)
(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
...
(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
...
(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
(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
...
(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.
(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
(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.
(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
...
(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?
(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.
(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.
(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
(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.
(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).
(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"};
```
(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
...
(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
...