💬 fjahr commented on pull request "wallet: Remove isminetypes":
(https://github.com/bitcoin/bitcoin/pull/32523#issuecomment-3202116489)
re-ACK 620abe985e5150c3151192d08746b7845a69dbbf
(https://github.com/bitcoin/bitcoin/pull/32523#issuecomment-3202116489)
re-ACK 620abe985e5150c3151192d08746b7845a69dbbf
💬 naiyoma commented on pull request "test: rpc: add last block announcement time to getpeerinfo result":
(https://github.com/bitcoin/bitcoin/pull/27052#discussion_r2286253898)
I'm not sure I understand why this is optional. Originally, it was set to a sentinel value.
I don't see a situation where it wouldn't have a value.
My suggestion → `NodeSeconds oldest_block_announcement = NodeSeconds::max();`
That way `.has_value() `checks and `*oldest_block_announcement` can be avoided.
(https://github.com/bitcoin/bitcoin/pull/27052#discussion_r2286253898)
I'm not sure I understand why this is optional. Originally, it was set to a sentinel value.
I don't see a situation where it wouldn't have a value.
My suggestion → `NodeSeconds oldest_block_announcement = NodeSeconds::max();`
That way `.has_value() `checks and `*oldest_block_announcement` can be avoided.
💬 theuni commented on pull request "Add bitcoin-{node,gui} to release binaries for IPC":
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202119931)
(Sorry in advance for the meandering comment, I was reading the others coming in as I was typing this up)
> @achow101 @ryanofsky In my [comment](https://github.com/bitcoin/bitcoin/pull/33190#issuecomment-3196869655) in the other PR regarding seeing this PR as a successor to that one, I failed the consider the possibility of enabling it in release builds without making it default in from-source builds, like Qt, ZMQ, USDT, so I saw it as two separate sequential decisions to be made, rather than
...
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202119931)
(Sorry in advance for the meandering comment, I was reading the others coming in as I was typing this up)
> @achow101 @ryanofsky In my [comment](https://github.com/bitcoin/bitcoin/pull/33190#issuecomment-3196869655) in the other PR regarding seeing this PR as a successor to that one, I failed the consider the possibility of enabling it in release builds without making it default in from-source builds, like Qt, ZMQ, USDT, so I saw it as two separate sequential decisions to be made, rather than
...
💬 davidgumberg commented on pull request "headerssync: Preempt unrealistic unit test behavior":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286268690)
The sneaky redownload and insufficient work cases should be differentiated by making the second chain have enough work, e.g.: https://github.com/davidgumberg/bitcoin/commit/1b1b7f2d06e3b11eac0f844002ff4c1bcf497b0d
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286268690)
The sneaky redownload and insufficient work cases should be differentiated by making the second chain have enough work, e.g.: https://github.com/davidgumberg/bitcoin/commit/1b1b7f2d06e3b11eac0f844002ff4c1bcf497b0d
💬 ryanofsky commented on pull request "Add bitcoin-{node,gui} to release binaries for IPC":
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202139955)
> Please take a step back and just think like a user. v29 shipped with `bitcoind`. They'll now see `bitcoin`, `bitcoind`, and `bitcoin-node`. Even if their behavior doesn't have to change at all, anyone could be forgiven for being confused by that.
No, they will absolutely not see that and it I agree would be a huge problem if that is what were were shipping.
They will see a just one new binary called `bitcoin` which is a wrapper around internal binaries. `bitcoind` is unchanged.
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202139955)
> Please take a step back and just think like a user. v29 shipped with `bitcoind`. They'll now see `bitcoin`, `bitcoind`, and `bitcoin-node`. Even if their behavior doesn't have to change at all, anyone could be forgiven for being confused by that.
No, they will absolutely not see that and it I agree would be a huge problem if that is what were were shipping.
They will see a just one new binary called `bitcoin` which is a wrapper around internal binaries. `bitcoind` is unchanged.
💬 sipa commented on pull request "Add bitcoin-{node,gui} to release binaries for IPC":
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202140235)
@ryanofsky I wouldn't be opposed to this idea (having `ENABLE_IPC` that enables `-ipcbind` in `bitcoind` itself, separate from `ENABLE_MULTIPROCESS` which enables `bitcoin-node`, and later the broken-out features as separate binaries).
Multiprocess is more than just IPC, and the mining interface isn't really (or doesn't need to be) part of the multiprocess world, it just happens to use the same interface. Furthermore, at this point there really *isn't* any user-visible multiprocess functional
...
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202140235)
@ryanofsky I wouldn't be opposed to this idea (having `ENABLE_IPC` that enables `-ipcbind` in `bitcoind` itself, separate from `ENABLE_MULTIPROCESS` which enables `bitcoin-node`, and later the broken-out features as separate binaries).
Multiprocess is more than just IPC, and the mining interface isn't really (or doesn't need to be) part of the multiprocess world, it just happens to use the same interface. Furthermore, at this point there really *isn't* any user-visible multiprocess functional
...
💬 theuni commented on pull request "test: rpc: add last block announcement time to getpeerinfo result":
(https://github.com/bitcoin/bitcoin/pull/27052#discussion_r2286284964)
`optional` + `has_value()` communicates intent much more clearly than the sentinel imo. Though admittedly it's awkward as long as worst_peer is a sentinel.
I'd expect to see `std::optional<std::pair<NodeId, NodeSeconds>> worst_peer`, personally.
(https://github.com/bitcoin/bitcoin/pull/27052#discussion_r2286284964)
`optional` + `has_value()` communicates intent much more clearly than the sentinel imo. Though admittedly it's awkward as long as worst_peer is a sentinel.
I'd expect to see `std::optional<std::pair<NodeId, NodeSeconds>> worst_peer`, personally.
💬 theuni commented on pull request "Add bitcoin-{node,gui} to release binaries for IPC":
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202198415)
> > Please take a step back and just think like a user. v29 shipped with `bitcoind`. They'll now see `bitcoin`, `bitcoind`, and `bitcoin-node`. Even if their behavior doesn't have to change at all, anyone could be forgiven for being confused by that.
>
> No, they will absolutely not see that and it I agree would be a huge problem if that is what were were shipping.
>
> They will see a just one new binary called `bitcoin` which is a wrapper around internal binaries. `bitcoind` is unchanged.
...
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202198415)
> > Please take a step back and just think like a user. v29 shipped with `bitcoind`. They'll now see `bitcoin`, `bitcoind`, and `bitcoin-node`. Even if their behavior doesn't have to change at all, anyone could be forgiven for being confused by that.
>
> No, they will absolutely not see that and it I agree would be a huge problem if that is what were were shipping.
>
> They will see a just one new binary called `bitcoin` which is a wrapper around internal binaries. `bitcoind` is unchanged.
...
📝 sipa opened a pull request: "miner: clamp options instead of asserting"
(https://github.com/bitcoin/bitcoin/pull/33222)
The `BlockAssembler::ClampOptions` function currently doesn't actually clamp most of the provided settings, but asserts that some are in range. This made sense while it was a purely internal interface.
However, with the mining IPC interface exposed in #30510, these options are now externally accessible, and it is not entirely intuitive how to set them. In particular, calling `Mining::createNewBlock` with a default-constructed `BlockCreateOptions` will right now instantly crash the bitcoin nod
...
(https://github.com/bitcoin/bitcoin/pull/33222)
The `BlockAssembler::ClampOptions` function currently doesn't actually clamp most of the provided settings, but asserts that some are in range. This made sense while it was a purely internal interface.
However, with the mining IPC interface exposed in #30510, these options are now externally accessible, and it is not entirely intuitive how to set them. In particular, calling `Mining::createNewBlock` with a default-constructed `BlockCreateOptions` will right now instantly crash the bitcoin nod
...
💬 ryanofsky commented on pull request "Add bitcoin-{node,gui} to release binaries for IPC":
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202202526)
> I don't think it's helpful to be so dismissive. Shipping new binaries (but not on all platforms), recommending new ways of running Core, and deprecating old ones shouldn't be taken lightly.
I don't think I am being dismissive, but sorry if anything came across that way. I understand there have been a lot of PRs to keep track of and the interactions between them may be confusing, but I feel if anything this approach is more conservative than what sipa is suggesting, and is compatible with hi
...
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202202526)
> I don't think it's helpful to be so dismissive. Shipping new binaries (but not on all platforms), recommending new ways of running Core, and deprecating old ones shouldn't be taken lightly.
I don't think I am being dismissive, but sorry if anything came across that way. I understand there have been a lot of PRs to keep track of and the interactions between them may be confusing, but I feel if anything this approach is more conservative than what sipa is suggesting, and is compatible with hi
...
💬 ryanofsky commented on pull request "Add bitcoin-{node,gui} to release binaries for IPC":
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202213363)
> You and I know that, yes, but figuring out what's changed may be non-trivial for a user.
Is it possible to state more concretely what may be confusing here? The new `bitcoin` binary is already enabled in #31375. The only thing this PR affects is the behavior of the -m option, if specified, and the contents of the libexec directory.
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202213363)
> You and I know that, yes, but figuring out what's changed may be non-trivial for a user.
Is it possible to state more concretely what may be confusing here? The new `bitcoin` binary is already enabled in #31375. The only thing this PR affects is the behavior of the -m option, if specified, and the contents of the libexec directory.
💬 theuni commented on pull request "Add bitcoin-{node,gui} to release binaries for IPC":
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202236270)
> > I don't think it's helpful to be so dismissive. Shipping new binaries (but not on all platforms), recommending new ways of running Core, and deprecating old ones shouldn't be taken lightly.
>
> I don't think I am being dismissive, but sorry if anything came across that way. I understand there have been a lot of PRs to keep track of and the interactions between them may be confusing, but I feel if anything this approach is more conservative than what sipa is suggesting, and is compatible w
...
(https://github.com/bitcoin/bitcoin/pull/31802#issuecomment-3202236270)
> > I don't think it's helpful to be so dismissive. Shipping new binaries (but not on all platforms), recommending new ways of running Core, and deprecating old ones shouldn't be taken lightly.
>
> I don't think I am being dismissive, but sorry if anything came across that way. I understand there have been a lot of PRs to keep track of and the interactions between them may be confusing, but I feel if anything this approach is more conservative than what sipa is suggesting, and is compatible w
...
💬 sipa commented on pull request "miner: clamp options instead of asserting":
(https://github.com/bitcoin/bitcoin/pull/33222#issuecomment-3202248904)
This makes sense for v30.0, I think, if we're going to be shipping mining interface support (#31802 or variation thereof).
(https://github.com/bitcoin/bitcoin/pull/33222#issuecomment-3202248904)
This makes sense for v30.0, I think, if we're going to be shipping mining interface support (#31802 or variation thereof).
💬 polespinasa commented on pull request "net: Provide block templates to peers on request":
(https://github.com/bitcoin/bitcoin/pull/33191#issuecomment-3202259011)
> If latency is not very important, there may be a simpler solution: compute the template, and schedule it for sending, but only send it as soon as all transactions in it have been announced.
Maybe a stupid question and I'm not understanding something, but what is the point of this if we have to wait for all transactions to be announced? Isn't the whole idea to make sure our peers know about what we think will be the next block?
(https://github.com/bitcoin/bitcoin/pull/33191#issuecomment-3202259011)
> If latency is not very important, there may be a simpler solution: compute the template, and schedule it for sending, but only send it as soon as all transactions in it have been announced.
Maybe a stupid question and I'm not understanding something, but what is the point of this if we have to wait for all transactions to be announced? Isn't the whole idea to make sure our peers know about what we think will be the next block?
💬 davidgumberg commented on pull request "headerssync: Preempt unrealistic unit test behavior":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286361853)
It really feels like the default constructor for this should be deleted, but that's not possible because `CChainParams()` default constructs it: https://github.com/bitcoin/bitcoin/blob/53341ea10dc2f7df371b416060863bbc094b8773/src/kernel/chainparams.h#L165
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286361853)
It really feels like the default constructor for this should be deleted, but that's not possible because `CChainParams()` default constructs it: https://github.com/bitcoin/bitcoin/blob/53341ea10dc2f7df371b416060863bbc094b8773/src/kernel/chainparams.h#L165
💬 davidgumberg commented on pull request "headerssync: Preempt unrealistic unit test behavior":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286363848)
why limit these to `* 2`?
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286363848)
why limit these to `* 2`?
🤔 murchandamus reviewed a pull request: "wallet: Remove isminetypes"
(https://github.com/bitcoin/bitcoin/pull/32523#pullrequestreview-3133501440)
Concept ACK
(https://github.com/bitcoin/bitcoin/pull/32523#pullrequestreview-3133501440)
Concept ACK
💬 murchandamus commented on pull request "wallet: Remove isminetypes":
(https://github.com/bitcoin/bitcoin/pull/32523#discussion_r2286095170)
In "wallet: Remove COutput::spendable and AvailableCoinsListUnspent" (1f085fa90ae92d1fda437066f802c1fe9c1dfe1c), I was a bit surprised to find this change in the logic in the commit as it does not seem to be explicitly mentioned in the commit message.
Prior to this change, we would proceed on UTXOs that are `spendable` or on UTXOs that are solvable while keys are disabled. After this change, we proceed either if keys are enabled OR the UTXO is solvable.
If we consider all UTXOs in descript
...
(https://github.com/bitcoin/bitcoin/pull/32523#discussion_r2286095170)
In "wallet: Remove COutput::spendable and AvailableCoinsListUnspent" (1f085fa90ae92d1fda437066f802c1fe9c1dfe1c), I was a bit surprised to find this change in the logic in the commit as it does not seem to be explicitly mentioned in the commit message.
Prior to this change, we would proceed on UTXOs that are `spendable` or on UTXOs that are solvable while keys are disabled. After this change, we proceed either if keys are enabled OR the UTXO is solvable.
If we consider all UTXOs in descript
...
💬 davidgumberg commented on pull request "headerssync: Preempt unrealistic unit test behavior":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286384092)
Ah, I missed that at least one of the params gets checked for not being default-constructed here:
https://github.com/bitcoin/bitcoin/blob/53341ea10dc2f7df371b416060863bbc094b8773/src/headerssync.cpp#L20
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2286384092)
Ah, I missed that at least one of the params gets checked for not being default-constructed here:
https://github.com/bitcoin/bitcoin/blob/53341ea10dc2f7df371b416060863bbc094b8773/src/headerssync.cpp#L20
💬 ryanofsky commented on issue "depends: `native_libmultiprocess` fails to build on OpenBSD":
(https://github.com/bitcoin/bitcoin/issues/33219#issuecomment-3202305628)
Thanks for the report and clear reproduction steps. Following change fixes the problem for me, and I guess this was caused by the IWYU commit in https://github.com/bitcoin-core/libmultiprocess/pull/184,
```
--- a/src/ipc/libmultiprocess/src/mp/util.cpp
+++ b/src/ipc/libmultiprocess/src/mp/util.cpp
@@ -16,6 +16,7 @@
#include <sys/socket.h>
#include <sys/wait.h>
#include <system_error>
+#include <thread>
#include <unistd.h>
#include <utility>
#include <vector>
```
An alternate change also
...
(https://github.com/bitcoin/bitcoin/issues/33219#issuecomment-3202305628)
Thanks for the report and clear reproduction steps. Following change fixes the problem for me, and I guess this was caused by the IWYU commit in https://github.com/bitcoin-core/libmultiprocess/pull/184,
```
--- a/src/ipc/libmultiprocess/src/mp/util.cpp
+++ b/src/ipc/libmultiprocess/src/mp/util.cpp
@@ -16,6 +16,7 @@
#include <sys/socket.h>
#include <sys/wait.h>
#include <system_error>
+#include <thread>
#include <unistd.h>
#include <utility>
#include <vector>
```
An alternate change also
...