💬 pinheadmz commented on issue "Failure to bind to ZMQ addresses is swallowed in debug logs":
(https://github.com/bitcoin/bitcoin/issues/33715#issuecomment-3452732176)
> 2025-10-27T17:12:31Z [zmq] Error: Failed to bind address, msg: Address already in use
This was in your log ... ?
  (https://github.com/bitcoin/bitcoin/issues/33715#issuecomment-3452732176)
> 2025-10-27T17:12:31Z [zmq] Error: Failed to bind address, msg: Address already in use
This was in your log ... ?
💬 pinheadmz commented on issue "Failure to bind to ZMQ addresses is swallowed in debug logs":
(https://github.com/bitcoin/bitcoin/issues/33715#issuecomment-3452735315)
Do you think bitcoin should fail to initialize if it cant bind? (same as rpc?)
  (https://github.com/bitcoin/bitcoin/issues/33715#issuecomment-3452735315)
Do you think bitcoin should fail to initialize if it cant bind? (same as rpc?)
💬 enirox001 commented on pull request "Rollback for dumptxoutset without invalidating blocks":
(https://github.com/bitcoin/bitcoin/pull/33477#issuecomment-3452764833)
ACK 6d409d5
This is a good change. Using a temporary coins DB for the rollback is a much cleaner and safer solution than the `invalidateblock` method. It correctly solves fork-related bugs by isolating the process and avoids the need for network suspension, making it a superior approach to what I proposed in #33444.
The code is well-contained, and the new `TemporaryUTXODatabase` class handles the DB lifecycle cleanly.
I've pulled the branch, compiled, and the full functional test suite
...
  (https://github.com/bitcoin/bitcoin/pull/33477#issuecomment-3452764833)
ACK 6d409d5
This is a good change. Using a temporary coins DB for the rollback is a much cleaner and safer solution than the `invalidateblock` method. It correctly solves fork-related bugs by isolating the process and avoids the need for network suspension, making it a superior approach to what I proposed in #33444.
The code is well-contained, and the new `TemporaryUTXODatabase` class handles the DB lifecycle cleanly.
I've pulled the branch, compiled, and the full functional test suite
...
💬 mzumsande commented on issue "GetSerializeSize's return type should not be platform dependent":
(https://github.com/bitcoin/bitcoin/issues/33709#issuecomment-3452790235)
Off-topic, but I've opened https://github.com/bitcoin-core/meta/issues/35 to discuss the general problem with issues.
  (https://github.com/bitcoin/bitcoin/issues/33709#issuecomment-3452790235)
Off-topic, but I've opened https://github.com/bitcoin-core/meta/issues/35 to discuss the general problem with issues.
🤔 furszy reviewed a pull request: "interfaces: enable cancelling running `waitNext` calls"
(https://github.com/bitcoin/bitcoin/pull/33676#pullrequestreview-3384985314)
Code ACK dcb56fd4cb59e6857c110dd87019459989dc1ec3
nit:
is there any way you could verify that there is someone waiting before setting `interrupt_wait`? It seems fragile to be able to interrupt a procedure that hasn't started.
  (https://github.com/bitcoin/bitcoin/pull/33676#pullrequestreview-3384985314)
Code ACK dcb56fd4cb59e6857c110dd87019459989dc1ec3
nit:
is there any way you could verify that there is someone waiting before setting `interrupt_wait`? It seems fragile to be able to interrupt a procedure that hasn't started.
💬 torkelrogstad commented on issue "Failure to bind to ZMQ addresses is swallowed in debug logs":
(https://github.com/bitcoin/bitcoin/issues/33715#issuecomment-3452842787)
> > 2025-10-27T17:12:31Z [zmq] Error: Failed to bind address, msg: Address already in use
>
> This was in your log ... ?
Yes, when I enabled debug. Before enabling debug I was very confused as to why I wasn't seeing anything with `getzmqnotifications`.
> Do you think bitcoin should fail to initialize if it cant bind? (same as rpc?)
Yes, ideally. As I said above, I think failing hard is best, and then a clear non-debug log entry is the second best solution.
  (https://github.com/bitcoin/bitcoin/issues/33715#issuecomment-3452842787)
> > 2025-10-27T17:12:31Z [zmq] Error: Failed to bind address, msg: Address already in use
>
> This was in your log ... ?
Yes, when I enabled debug. Before enabling debug I was very confused as to why I wasn't seeing anything with `getzmqnotifications`.
> Do you think bitcoin should fail to initialize if it cant bind? (same as rpc?)
Yes, ideally. As I said above, I think failing hard is best, and then a clear non-debug log entry is the second best solution.
💬 polespinasa commented on pull request "refactor: rename `fees.{h,cpp}` to `fees/block_policy_estimator.{h,cpp}`":
(https://github.com/bitcoin/bitcoin/pull/33218#issuecomment-3452870905)
re ACK 1a7fb5eeeef3575c1e7c27915c9b98695191299d
Just small rebase and small nits
  (https://github.com/bitcoin/bitcoin/pull/33218#issuecomment-3452870905)
re ACK 1a7fb5eeeef3575c1e7c27915c9b98695191299d
Just small rebase and small nits
🤔 glozow reviewed a pull request: "test: descriptor: cover invalid multi/multi_a cases"
(https://github.com/bitcoin/bitcoin/pull/32504#pullrequestreview-3385170617)
ACK 58e55b17e632dbd4425dd64825b087f242ac4b7b
Read BIP 383, 387 and the relevant code, mutation tested to see this is new coverage.
  (https://github.com/bitcoin/bitcoin/pull/32504#pullrequestreview-3385170617)
ACK 58e55b17e632dbd4425dd64825b087f242ac4b7b
Read BIP 383, 387 and the relevant code, mutation tested to see this is new coverage.
🚀 glozow merged a pull request: "test: descriptor: cover invalid multi/multi_a cases"
(https://github.com/bitcoin/bitcoin/pull/32504)
  (https://github.com/bitcoin/bitcoin/pull/32504)
💬 theStack commented on pull request "test: add functional test for `TestShell` (matching doc example)":
(https://github.com/bitcoin/bitcoin/pull/33546#discussion_r2466884577)
Thanks for the reviews! Leaving these suggestions about either introducing new `TEST_FRAMEWORK_...` constants or extending existing ones as topic for a different PR, since I'm not sure what is the right approach here. E.g. one could even argue in the other direction and suggest to just remove the `TEST_FRAMEWORK_UNIT_TESTS` constant, as it's only used once in the list and doesn't seem to serve any deeper purpose, unless I'm missing something.
> I think this counts as unit test? Could just go
...
  (https://github.com/bitcoin/bitcoin/pull/33546#discussion_r2466884577)
Thanks for the reviews! Leaving these suggestions about either introducing new `TEST_FRAMEWORK_...` constants or extending existing ones as topic for a different PR, since I'm not sure what is the right approach here. E.g. one could even argue in the other direction and suggest to just remove the `TEST_FRAMEWORK_UNIT_TESTS` constant, as it's only used once in the list and doesn't seem to serve any deeper purpose, unless I'm missing something.
> I think this counts as unit test? Could just go
...
💬 l0rinc commented on pull request "random: clarify where the environ extern is needed":
(https://github.com/bitcoin/bitcoin/pull/33714#discussion_r2466889461)
If it's only needed on Mac, wouldn't:
```suggestion
#ifdef __APPLE__
```
be better here?
  (https://github.com/bitcoin/bitcoin/pull/33714#discussion_r2466889461)
If it's only needed on Mac, wouldn't:
```suggestion
#ifdef __APPLE__
```
be better here?
💬 furszy commented on pull request "interfaces: enable cancelling running `waitNext` calls":
(https://github.com/bitcoin/bitcoin/pull/33676#issuecomment-3453042451)
> nit:
> is there any way you could verify that there is someone waiting before setting interrupt_wait? It seems fragile to be able to interrupt a procedure that hasn't started.
Quick idea; could provide an optional flag. So the value exists whenever someone is waiting on it and is destroyed (`nullopt`) when there is no one doing it.
```diff
Index: src/node/interfaces.cpp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
========================
...
  (https://github.com/bitcoin/bitcoin/pull/33676#issuecomment-3453042451)
> nit:
> is there any way you could verify that there is someone waiting before setting interrupt_wait? It seems fragile to be able to interrupt a procedure that hasn't started.
Quick idea; could provide an optional flag. So the value exists whenever someone is waiting on it and is destroyed (`nullopt`) when there is no one doing it.
```diff
Index: src/node/interfaces.cpp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
========================
...
🤔 ryanofsky reviewed a pull request: "wallet: re-activate  "AmountWithFeeExceedsBalance" error"
(https://github.com/bitcoin/bitcoin/pull/25269#pullrequestreview-3384873041)
Code review ACK 98b7f1061ff104cdffebe1c2968c9f829d1a72f9 for the second commit, but I am unsure about the first commit (see below). I started reviewing this because https://github.com/bitcoin-core/gui/pull/807 depends on it, but this seems like a nice change independently that provides a clearer error message and fixes a GUI feature that was accidentally broken in #20640.
  (https://github.com/bitcoin/bitcoin/pull/25269#pullrequestreview-3384873041)
Code review ACK 98b7f1061ff104cdffebe1c2968c9f829d1a72f9 for the second commit, but I am unsure about the first commit (see below). I started reviewing this because https://github.com/bitcoin-core/gui/pull/807 depends on it, but this seems like a nice change independently that provides a clearer error message and fixes a GUI feature that was accidentally broken in #20640.
💬 ryanofsky commented on pull request "wallet: re-activate  "AmountWithFeeExceedsBalance" error":
(https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466651540)
In commit "wallet: fix, make 'total_effective_amount' optional actually optional" (568753018c5ffcddf4612464cd53502fa559f6fa)
I wonder if this change requires updates to any code that might be assuming `total_effective_amount` is not null like: https://github.com/bitcoin/bitcoin/blob/56e9703968e26353fd4663e07a7bba198a272d12/src/wallet/spend.cpp#L226
Also it's not really clear what the connection is between this change in the rest of the PR. It would help to mention some motivation in the co
...
  (https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466651540)
In commit "wallet: fix, make 'total_effective_amount' optional actually optional" (568753018c5ffcddf4612464cd53502fa559f6fa)
I wonder if this change requires updates to any code that might be assuming `total_effective_amount` is not null like: https://github.com/bitcoin/bitcoin/blob/56e9703968e26353fd4663e07a7bba198a272d12/src/wallet/spend.cpp#L226
Also it's not really clear what the connection is between this change in the rest of the PR. It would help to mention some motivation in the co
...
💬 ryanofsky commented on pull request "wallet: re-activate  "AmountWithFeeExceedsBalance" error":
(https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466837909)
In commit "wallet: introduce "tx amount exceeds balance when fees are included" error" (98b7f1061ff104cdffebe1c2968c9f829d1a72f9)
Is it safe to assume GetEffectiveTotalAmount() returns not null here after previous commit? Might be better to use value_or
  (https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466837909)
In commit "wallet: introduce "tx amount exceeds balance when fees are included" error" (98b7f1061ff104cdffebe1c2968c9f829d1a72f9)
Is it safe to assume GetEffectiveTotalAmount() returns not null here after previous commit? Might be better to use value_or
💬 ryanofsky commented on pull request "wallet: re-activate  "AmountWithFeeExceedsBalance" error":
(https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466870484)
re: https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2114901397
> Furthermore, if it were possible to reach this with SFFO, I think the error message would be confusing and it would actually be better to return "Insufficent Funds", so this whole check could probably be guarded by an `if (m_subtract_fee_outputs)` to skip it when SFFO is on.
I don't think I follow the logic behind this but it's possible I'm misunderstanding. If user is trying to send less money than their balance, a
...
  (https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466870484)
re: https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2114901397
> Furthermore, if it were possible to reach this with SFFO, I think the error message would be confusing and it would actually be better to return "Insufficent Funds", so this whole check could probably be guarded by an `if (m_subtract_fee_outputs)` to skip it when SFFO is on.
I don't think I follow the logic behind this but it's possible I'm misunderstanding. If user is trying to send less money than their balance, a
...
💬 ryanofsky commented on pull request "wallet: re-activate  "AmountWithFeeExceedsBalance" error":
(https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466700754)
In commit "wallet: introduce "tx amount exceeds balance when fees are included" error" (98b7f1061ff104cdffebe1c2968c9f829d1a72f9)
Can this error message include amount of fees that was in the [original error message](https://github.com/bitcoin/bitcoin/blob/56e9703968e26353fd4663e07a7bba198a272d12/src/qt/sendcoinsdialog.cpp#L746). It seems like knowing how much the wallet is trying to spend could help the user address the problem. It looks like equivalent amount would be `selection_target - re
...
  (https://github.com/bitcoin/bitcoin/pull/25269#discussion_r2466700754)
In commit "wallet: introduce "tx amount exceeds balance when fees are included" error" (98b7f1061ff104cdffebe1c2968c9f829d1a72f9)
Can this error message include amount of fees that was in the [original error message](https://github.com/bitcoin/bitcoin/blob/56e9703968e26353fd4663e07a7bba198a272d12/src/qt/sendcoinsdialog.cpp#L746). It seems like knowing how much the wallet is trying to spend could help the user address the problem. It looks like equivalent amount would be `selection_target - re
...
⚠️ kosuodhmwa reopened an issue: "ZMQ problem: 'ss -ltnp | grep 28332' and 'ss -ltnp | grep 28333' does not give me an answer (i need it for LND)"
(https://github.com/bitcoin/bitcoin/issues/33710)
### Is there an existing issue for this?
- [x] I have searched the existing issues
### Current behaviour
Compile process:
```
[GIT stuff here]
apt install -y cmake
cd ~/bitcoin
mkdir build
cd build
apt install -y capnproto libcapnp-dev
cmake .. -DBUILD_BITCOIN_WALLET=ON -DENABLE_ZMQ=ON -DBUILD_TESTING=OFF -DBUILD_BENCH=OFF
make -j$(nproc)
```
start process:
```
root@debian12-btc-node:~# cat ./start-btcd.sh
set -x;
clear;
cd ~/;
#cd bitcoin/src;
cd bitcoin;
cd build;
cd bin;
./bitcoind | g
...
  (https://github.com/bitcoin/bitcoin/issues/33710)
### Is there an existing issue for this?
- [x] I have searched the existing issues
### Current behaviour
Compile process:
```
[GIT stuff here]
apt install -y cmake
cd ~/bitcoin
mkdir build
cd build
apt install -y capnproto libcapnp-dev
cmake .. -DBUILD_BITCOIN_WALLET=ON -DENABLE_ZMQ=ON -DBUILD_TESTING=OFF -DBUILD_BENCH=OFF
make -j$(nproc)
```
start process:
```
root@debian12-btc-node:~# cat ./start-btcd.sh
set -x;
clear;
cd ~/;
#cd bitcoin/src;
cd bitcoin;
cd build;
cd bin;
./bitcoind | g
...
💬 kosuodhmwa commented on issue "ZMQ problem: 'ss -ltnp | grep 28332' and 'ss -ltnp | grep 28333' does not give me an answer (i need it for LND)":
(https://github.com/bitcoin/bitcoin/issues/33710#issuecomment-3453094799)
cmake script content:
```
root@debian12-btc-node:~# cat ./cmake-btcd.sh
cd ~/bitcoin/build;
# rm -rf *;
cmake .. \
-DBUILD_BITCOIN_WALLET=ON \
-DENABLE_ZMQ=ON \
-DZeroMQ_INCLUDE_DIR=/usr/include \
-DZeroMQ_LIBRARY=/usr/lib/x86_64-linux-gnu/libzmq.so \
-DBUILD_TESTING=OFF \
-DBUILD_BENCH=OFF \
-DCMAKE_VERBOSE_MAKEFILE=ON
exit 0;
root@debian12-btc-node:~#
```
When i execute it:
```
root@debian12-btc-node:~# ./cmake-btcd.sh
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE
...
  (https://github.com/bitcoin/bitcoin/issues/33710#issuecomment-3453094799)
cmake script content:
```
root@debian12-btc-node:~# cat ./cmake-btcd.sh
cd ~/bitcoin/build;
# rm -rf *;
cmake .. \
-DBUILD_BITCOIN_WALLET=ON \
-DENABLE_ZMQ=ON \
-DZeroMQ_INCLUDE_DIR=/usr/include \
-DZeroMQ_LIBRARY=/usr/lib/x86_64-linux-gnu/libzmq.so \
-DBUILD_TESTING=OFF \
-DBUILD_BENCH=OFF \
-DCMAKE_VERBOSE_MAKEFILE=ON
exit 0;
root@debian12-btc-node:~#
```
When i execute it:
```
root@debian12-btc-node:~# ./cmake-btcd.sh
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE
...
👍 ryanofsky approved a pull request: "refactor: interfaces, make 'createTransaction' less error-prone "
(https://github.com/bitcoin-core/gui/pull/807#pullrequestreview-3385281340)
Code review ACK 0b92ee2bc7a75074651e4688912e8e3c7de06a5a. Change looks good but needs rebase, and it would be good to update commit description and say it depends on #25269 (first commit of this PR is from #25269 and that would be good to know up front.)
  (https://github.com/bitcoin-core/gui/pull/807#pullrequestreview-3385281340)
Code review ACK 0b92ee2bc7a75074651e4688912e8e3c7de06a5a. Change looks good but needs rebase, and it would be good to update commit description and say it depends on #25269 (first commit of this PR is from #25269 and that would be good to know up front.)
💬 ryanofsky commented on pull request "refactor: interfaces, make 'createTransaction' less error-prone ":
(https://github.com/bitcoin-core/gui/pull/807#discussion_r2466945454)
In commit "refactor: interfaces, make 'createTransaction' less error-prone" (0b92ee2bc7a75074651e4688912e8e3c7de06a5a)
Might be better to replace `int()` with `static_cast<int>()`
  (https://github.com/bitcoin-core/gui/pull/807#discussion_r2466945454)
In commit "refactor: interfaces, make 'createTransaction' less error-prone" (0b92ee2bc7a75074651e4688912e8e3c7de06a5a)
Might be better to replace `int()` with `static_cast<int>()`