💬 ryanofsky commented on pull request "cmake: Move internal binaries from bin/ to libexec/":
(https://github.com/bitcoin/bitcoin/pull/31679#issuecomment-3141813974)
> Actually looking closer these are pretty much all build directory links, so are ok.
Sorry about that, the PR description was confusing and achow thought the same thing you did. I rewrote it now to be clearer. (I think the original PR description was also clear but I had replaced it a few weeks ago with a big table to explain some details of the change, and I think the table made it harder to understand the high-level change.)
(https://github.com/bitcoin/bitcoin/pull/31679#issuecomment-3141813974)
> Actually looking closer these are pretty much all build directory links, so are ok.
Sorry about that, the PR description was confusing and achow thought the same thing you did. I rewrote it now to be clearer. (I think the original PR description was also clear but I had replaced it a few weeks ago with a big table to explain some details of the change, and I think the table made it harder to understand the high-level change.)
💬 pablomartin4btc commented on pull request "wallet, refactor: Remove Legacy check and error":
(https://github.com/bitcoin/bitcoin/pull/33082#issuecomment-3141827198)
<ins>_Updates_</ins>
- Reverted a legacy wallet check and removed some unnecessary `LoadWallet()` calls from a few wallet tests in the first commit.
(https://github.com/bitcoin/bitcoin/pull/33082#issuecomment-3141827198)
<ins>_Updates_</ins>
- Reverted a legacy wallet check and removed some unnecessary `LoadWallet()` calls from a few wallet tests in the first commit.
👋 pablomartin4btc's pull request is ready for review: "wallet, refactor: Remove Legacy check and error"
(https://github.com/bitcoin/bitcoin/pull/33082)
(https://github.com/bitcoin/bitcoin/pull/33082)
💬 1ma commented on pull request "[WIP] policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee":
(https://github.com/bitcoin/bitcoin/pull/33106#issuecomment-3141854197)
NACK. I think the direction of this change makes sense in isolation, but interacts too badly with other default mempool policies.
Users will always prefer to transact at the lowest fee given the current demand for tx confirmation, and miners will always prefer to earn more fees by filling blocks with extremely cheap txs rather than mine half empty blocks. Both these market forces are set to intensify over the long run as fiat inflation goes on and Bitcoin's block subsidy runs out. I don't eve
...
(https://github.com/bitcoin/bitcoin/pull/33106#issuecomment-3141854197)
NACK. I think the direction of this change makes sense in isolation, but interacts too badly with other default mempool policies.
Users will always prefer to transact at the lowest fee given the current demand for tx confirmation, and miners will always prefer to earn more fees by filling blocks with extremely cheap txs rather than mine half empty blocks. Both these market forces are set to intensify over the long run as fiat inflation goes on and Bitcoin's block subsidy runs out. I don't eve
...
💬 Sammie05 commented on pull request "test: Perform backup filename checks in migrate_and_get_rpc in wallet_migration.py":
(https://github.com/bitcoin/bitcoin/pull/33104#issuecomment-3141944954)
tACK 4b80147
Confirmed the test passes and mocktime is handled consistently within migrate_and_get_rpc.
Reproduced the failure when mocktime is set redundantly and confirmed the fix removes the race. Clean change, and no unnecessary test logic outside the migration function.
Good to go from my end.
(https://github.com/bitcoin/bitcoin/pull/33104#issuecomment-3141944954)
tACK 4b80147
Confirmed the test passes and mocktime is handled consistently within migrate_and_get_rpc.
Reproduced the failure when mocktime is set redundantly and confirmed the fix removes the race. Clean change, and no unnecessary test logic outside the migration function.
Good to go from my end.
📝 cccccccchhhh opened a pull request: "Create chris.txt"
(https://github.com/bitcoin/bitcoin/pull/33109)
hi my name is christo sorry to bother you, if you have time you can read my massage so that we can keep in touch
(https://github.com/bitcoin/bitcoin/pull/33109)
hi my name is christo sorry to bother you, if you have time you can read my massage so that we can keep in touch
👋 achow101's pull request is ready for review: "wallet: Be able to receive and spend inputs involving MuSig2 aggregate keys"
(https://github.com/bitcoin/bitcoin/pull/29675)
(https://github.com/bitcoin/bitcoin/pull/29675)
💬 achow101 commented on pull request "wallet: Be able to receive and spend inputs involving MuSig2 aggregate keys":
(https://github.com/bitcoin/bitcoin/pull/29675#issuecomment-3142073357)
All prerequisites have been merged, ready for review.
(https://github.com/bitcoin/bitcoin/pull/29675#issuecomment-3142073357)
All prerequisites have been merged, ready for review.
💬 HowHsu commented on pull request "index: fix wrong assert of current_tip == m_best_block_index":
(https://github.com/bitcoin/bitcoin/pull/32878#issuecomment-3142149917)
> > Hi @furszy , sorry for the delay, I've picked your commit of the test, which I missed earlier.
>
> No problem. This needs a rebase.
Hi @furszy , seems the test causes some data race
(https://github.com/bitcoin/bitcoin/pull/32878#issuecomment-3142149917)
> > Hi @furszy , sorry for the delay, I've picked your commit of the test, which I missed earlier.
>
> No problem. This needs a rebase.
Hi @furszy , seems the test causes some data race
💬 ajtowns commented on pull request "[WIP] policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee":
(https://github.com/bitcoin/bitcoin/pull/33106#discussion_r2246883818)
The precision when setting is sats/kvB so 0.001 sat/vb, since it's just set to the highest fee rate of any tx evicted via `TrimToSize()`.
https://github.com/bitcoin/bitcoin/blob/8712e074bb54eea9ccc4d2009d2150279c9d17ec/src/txmempool.cpp#L1132-L1138
(https://github.com/bitcoin/bitcoin/pull/33106#discussion_r2246883818)
The precision when setting is sats/kvB so 0.001 sat/vb, since it's just set to the highest fee rate of any tx evicted via `TrimToSize()`.
https://github.com/bitcoin/bitcoin/blob/8712e074bb54eea9ccc4d2009d2150279c9d17ec/src/txmempool.cpp#L1132-L1138
💬 ajtowns commented on pull request "[WIP] policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee":
(https://github.com/bitcoin/bitcoin/pull/33106#discussion_r2246888923)
I think it makes sense (as a default) to always include things in blocks if they're in your mempool. Otherwise having those txs in your mempool potentially blocks you from seeing txs you would include in your block (eg, double-spends that don't pass rbf rules), and seems like something of a waste of memory/bandwidth (though not a DoS risk).
(https://github.com/bitcoin/bitcoin/pull/33106#discussion_r2246888923)
I think it makes sense (as a default) to always include things in blocks if they're in your mempool. Otherwise having those txs in your mempool potentially blocks you from seeing txs you would include in your block (eg, double-spends that don't pass rbf rules), and seems like something of a waste of memory/bandwidth (though not a DoS risk).
💬 ajtowns commented on pull request "[WIP] policy: lower the default blockmintxfee, incrementalrelayfee, minrelaytxfee":
(https://github.com/bitcoin/bitcoin/pull/33106#issuecomment-3142444090)
> > Contrast this with the dust feerate, which defines a value as "too small" based on Bitcoin's protocol constraints on transaction volume (e.g. spend script size vs block space). The conversion rate is thus irrelevant or, at the very least, applies very differently in that context.
>
> No, dust is defined as too small to be worth spending,
Luke is correct here that was the original rationale for the dust setting, and remains the rationale documented in the comments in [policy.cpp](https:
...
(https://github.com/bitcoin/bitcoin/pull/33106#issuecomment-3142444090)
> > Contrast this with the dust feerate, which defines a value as "too small" based on Bitcoin's protocol constraints on transaction volume (e.g. spend script size vs block space). The conversion rate is thus irrelevant or, at the very least, applies very differently in that context.
>
> No, dust is defined as too small to be worth spending,
Luke is correct here that was the original rationale for the dust setting, and remains the rationale documented in the comments in [policy.cpp](https:
...
💬 ajtowns commented on pull request "validation: detect witness stripping early on":
(https://github.com/bitcoin/bitcoin/pull/33105#discussion_r2247057170)
I think that's fine -- if `require_standard` is true, then undefined program types will have already given an INPUTS_NOT_STANDARD response; if it's not true and #29843 has been merged, then we'll accept any witness including a null witness for undefined program types, so `RequiresNonEmptyWitness` should return false for them. That can change to true when they're defined in a soft-fork, but that's soft-fork behaviour, so should be fine.
But worrying about it in 29843 rather than here seems bes
...
(https://github.com/bitcoin/bitcoin/pull/33105#discussion_r2247057170)
I think that's fine -- if `require_standard` is true, then undefined program types will have already given an INPUTS_NOT_STANDARD response; if it's not true and #29843 has been merged, then we'll accept any witness including a null witness for undefined program types, so `RequiresNonEmptyWitness` should return false for them. That can change to true when they're defined in a soft-fork, but that's soft-fork behaviour, so should be fine.
But worrying about it in 29843 rather than here seems bes
...
💬 maflcko commented on pull request "kernel: improve BlockChecked ownership semantics":
(https://github.com/bitcoin/bitcoin/pull/33078#discussion_r2247146156)
would be easier to do this in-place? `block_to_connect=std::make_shared<CBlock>();`, as you mutate the copy anyway
(https://github.com/bitcoin/bitcoin/pull/33078#discussion_r2247146156)
would be easier to do this in-place? `block_to_connect=std::make_shared<CBlock>();`, as you mutate the copy anyway
💬 Sjors commented on pull request "Musig2 tests":
(https://github.com/bitcoin/bitcoin/pull/32724#issuecomment-3143470989)
This can be moved out of draft? (since the CI failure is unrelated)
Concept ACK
Just two test vectors? If there's more then it might make sense to put them in a JSON file.
(https://github.com/bitcoin/bitcoin/pull/32724#issuecomment-3143470989)
This can be moved out of draft? (since the CI failure is unrelated)
Concept ACK
Just two test vectors? If there's more then it might make sense to put them in a JSON file.
💬 TheCharlatan commented on pull request "kernel: Introduce initial C header API":
(https://github.com/bitcoin/bitcoin/pull/30595#issuecomment-3143645791)
> You cannot make a constructor noexcept if it fails to establish the invariant of a class.
The question of how to handle constructor errors has been annoying me in this code base for a long time. We do everything from throwing, to output error parameters, to factory functions returning optionals, to `bool` operator style validity checks. My feeling is we recently tend to avoid throwing exceptions, my personal preference would be using c++23's `std::expected`, but that will take more time to
...
(https://github.com/bitcoin/bitcoin/pull/30595#issuecomment-3143645791)
> You cannot make a constructor noexcept if it fails to establish the invariant of a class.
The question of how to handle constructor errors has been annoying me in this code base for a long time. We do everything from throwing, to output error parameters, to factory functions returning optionals, to `bool` operator style validity checks. My feeling is we recently tend to avoid throwing exceptions, my personal preference would be using c++23's `std::expected`, but that will take more time to
...
⚠️ sagarkarki99 opened an issue: "spendable is true for UTXO of private key disabled UTXO"
(https://github.com/bitcoin/bitcoin/issues/33110)
I have a private key disabled descriptors wallet which I use to watch transactions. Upon fetchings the UTXOs using `listunspent`, the spendable is true. Documentations says: `"spendable" : true|false, (boolean) Whether we have the private keys to spend this output`.
Shouldn't the spendable be `false` for this case, as it belongs to wallet where there is no private keys?
here is wallet info:
```bash
➜ Bitcoin bcr -rpcwallet=external_wallet getwalletinfo
{
"walletname":
...
(https://github.com/bitcoin/bitcoin/issues/33110)
I have a private key disabled descriptors wallet which I use to watch transactions. Upon fetchings the UTXOs using `listunspent`, the spendable is true. Documentations says: `"spendable" : true|false, (boolean) Whether we have the private keys to spend this output`.
Shouldn't the spendable be `false` for this case, as it belongs to wallet where there is no private keys?
here is wallet info:
```bash
➜ Bitcoin bcr -rpcwallet=external_wallet getwalletinfo
{
"walletname":
...
💬 stickies-v commented on pull request "kernel: improve BlockChecked ownership semantics":
(https://github.com/bitcoin/bitcoin/pull/33078#discussion_r2247317176)
I don't think that's possible, because `block_to_connect` points to a `const CBlock`, so we can't pass that to `ReadBlock()`.
(https://github.com/bitcoin/bitcoin/pull/33078#discussion_r2247317176)
I don't think that's possible, because `block_to_connect` points to a `const CBlock`, so we can't pass that to `ReadBlock()`.
👍 rkrux approved a pull request: "test: Perform backup filename checks in migrate_and_get_rpc in wallet_migration.py"
(https://github.com/bitcoin/bitcoin/pull/33104#pullrequestreview-3078241724)
ACK 4b80147feb97300e92e1f940b8d989a0af331e06
Thanks for incorporating suggestions.
(https://github.com/bitcoin/bitcoin/pull/33104#pullrequestreview-3078241724)
ACK 4b80147feb97300e92e1f940b8d989a0af331e06
Thanks for incorporating suggestions.
💬 nervana21 commented on pull request "validation: detect witness stripping early on":
(https://github.com/bitcoin/bitcoin/pull/33105#discussion_r2247327447)
I followed ajtowns suggestion and moved the logic to `policy.h` as defined in the patch below. Instead of `RequiresNonEmptyWitness`, the function is named `IsNonAnchorWitnessProgram`. This way, returning `true` for undefined program types that are non-P2A witness programs still makes sense.
<details>
<summary>Expand patch</summary>
```diff
diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp
index 48f2a6a744..2b03a404a9 100644
--- a/src/policy/policy.cpp
+++ b/src/policy/policy.c
...
(https://github.com/bitcoin/bitcoin/pull/33105#discussion_r2247327447)
I followed ajtowns suggestion and moved the logic to `policy.h` as defined in the patch below. Instead of `RequiresNonEmptyWitness`, the function is named `IsNonAnchorWitnessProgram`. This way, returning `true` for undefined program types that are non-P2A witness programs still makes sense.
<details>
<summary>Expand patch</summary>
```diff
diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp
index 48f2a6a744..2b03a404a9 100644
--- a/src/policy/policy.cpp
+++ b/src/policy/policy.c
...