📝 ismaelsadeeq opened a pull request: "test: Support decoding segwit address in address_to_scriptpubkey()"
(https://github.com/bitcoin/bitcoin/pull/27269)
[rpc_scantxoutset.py](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/rpc_scantxoutset.py#L26) sendtodestination only sends to legacy addresses and scriptPubkeys because [wallet.py](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/test_framework/wallet.py#L415) address_to_scriptpubkey does not support conversion of segwit address.
This update enables address_to_scriptpubkey to support the conver
...
(https://github.com/bitcoin/bitcoin/pull/27269)
[rpc_scantxoutset.py](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/rpc_scantxoutset.py#L26) sendtodestination only sends to legacy addresses and scriptPubkeys because [wallet.py](https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/test/functional/test_framework/wallet.py#L415) address_to_scriptpubkey does not support conversion of segwit address.
This update enables address_to_scriptpubkey to support the conver
...
💬 hebasto commented on issue "Add support for sighash flags in PSBT (like SINGLE|ANYONECANPAY)":
(https://github.com/bitcoin/bitcoin/issues/27141#issuecomment-1472352358)
> This is a duplicate for [bitcoin-core/gui#712](https://github.com/bitcoin-core/gui/issues/712) and can be closed
Let's continue the discussion in https://github.com/bitcoin-core/gui/issues/712.
(https://github.com/bitcoin/bitcoin/issues/27141#issuecomment-1472352358)
> This is a duplicate for [bitcoin-core/gui#712](https://github.com/bitcoin-core/gui/issues/712) and can be closed
Let's continue the discussion in https://github.com/bitcoin-core/gui/issues/712.
✅ hebasto closed an issue: "Add support for sighash flags in PSBT (like SINGLE|ANYONECANPAY)"
(https://github.com/bitcoin/bitcoin/issues/27141)
(https://github.com/bitcoin/bitcoin/issues/27141)
💬 darosior commented on pull request "MiniTapscript: port Miniscript to Tapscript":
(https://github.com/bitcoin/bitcoin/pull/27255#issuecomment-1472365761)
In the last push i've:
- Added a commit to avoid a stack overflow during the destruction of a too large `Node`, due to recursive calls in `shared_ptr`'s destructor. (The reason the CI was failing under MSVC.)
- Lowered the maximum size of a TapMiniscript to make sure a spending witness would never hit the maximum standard transaction size limit. (It's still pretty high.)
- Addressed all comments from @bigspider.
This PR is now ready for another round of review.
(https://github.com/bitcoin/bitcoin/pull/27255#issuecomment-1472365761)
In the last push i've:
- Added a commit to avoid a stack overflow during the destruction of a too large `Node`, due to recursive calls in `shared_ptr`'s destructor. (The reason the CI was failing under MSVC.)
- Lowered the maximum size of a TapMiniscript to make sure a spending witness would never hit the maximum standard transaction size limit. (It's still pretty high.)
- Addressed all comments from @bigspider.
This PR is now ready for another round of review.
💬 MarcoFalke commented on pull request "refactor: Use move semantics instead of custom swap functions":
(https://github.com/bitcoin/bitcoin/pull/26749#discussion_r1139075963)
bug fixes should be separate from refactoring commits
(https://github.com/bitcoin/bitcoin/pull/26749#discussion_r1139075963)
bug fixes should be separate from refactoring commits
💬 0xB10C commented on pull request "mempool: Add mempool tracepoints":
(https://github.com/bitcoin/bitcoin/pull/26531#issuecomment-1472375220)
ACK d0c6da92c5a4d2a972f884f29dd716da2040fdb2
Code reviewed the mempool tracepoint interface tests and the `mempool_monitor.py` example script including the BCC code for both. Tracepoint placement also looks good and the tracepoint arguments match whats added in the documentation.
Two things to note:
- the `mempool_monitor.py` demo script will, over time, use more and more system resources (RAM and CPU) as mempool events are added to the `events` list. The list is never cleared. The entrie
...
(https://github.com/bitcoin/bitcoin/pull/26531#issuecomment-1472375220)
ACK d0c6da92c5a4d2a972f884f29dd716da2040fdb2
Code reviewed the mempool tracepoint interface tests and the `mempool_monitor.py` example script including the BCC code for both. Tracepoint placement also looks good and the tracepoint arguments match whats added in the documentation.
Two things to note:
- the `mempool_monitor.py` demo script will, over time, use more and more system resources (RAM and CPU) as mempool events are added to the `events` list. The list is never cleared. The entrie
...
💬 1440000bytes commented on pull request "Ignore datacarrier limits for dataless OP_RETURN outputs":
(https://github.com/bitcoin/bitcoin/pull/27261#issuecomment-1472399681)
Concept ACK
Some questions:
> Previously a transaction containing an OP_RETURN without data would be rejected if datacarrier was set to false, or the datacarriersize was set to zero.
Minimum for `datacarriersize` is 1 so tx shouldn't be rejected if `datacarrier` is also 1(default)?
> All this pull-req changes is it'll allow a bare OP_RETURN in the (rare) case that people are disabling datacarrier outputs, because a bare OP_RETURN carries no data.
It is still OP_RETURN output, righ
...
(https://github.com/bitcoin/bitcoin/pull/27261#issuecomment-1472399681)
Concept ACK
Some questions:
> Previously a transaction containing an OP_RETURN without data would be rejected if datacarrier was set to false, or the datacarriersize was set to zero.
Minimum for `datacarriersize` is 1 so tx shouldn't be rejected if `datacarrier` is also 1(default)?
> All this pull-req changes is it'll allow a bare OP_RETURN in the (rare) case that people are disabling datacarrier outputs, because a bare OP_RETURN carries no data.
It is still OP_RETURN output, righ
...
💬 instagibbs commented on pull request "Ignore datacarrier limits for dataless OP_RETURN outputs":
(https://github.com/bitcoin/bitcoin/pull/27261#issuecomment-1472404739)
Honestly I think it's time to discuss removing the `datacarrier` option altogether. Less code and args being threaded through for something that no one sets(?), especially in light of tapscript witness sizes.
(https://github.com/bitcoin/bitcoin/pull/27261#issuecomment-1472404739)
Honestly I think it's time to discuss removing the `datacarrier` option altogether. Less code and args being threaded through for something that no one sets(?), especially in light of tapscript witness sizes.
📝 dergoegge opened a pull request: "refactor, net processing: Avoid CNode::m_relays_txs usage"
(https://github.com/bitcoin/bitcoin/pull/27270)
`CNode::m_relays_txs` is meant to only be used for the eviction logic in `net`. `TxRelay::m_relay_txs` will hold the same value and is meant to be used on the application layer to determine if we will/should relay transactions to a peer.
(Shameless plug: we should really better specify the interface for updating eviction data to avoid refactors like this in the future -> #25572)
(https://github.com/bitcoin/bitcoin/pull/27270)
`CNode::m_relays_txs` is meant to only be used for the eviction logic in `net`. `TxRelay::m_relay_txs` will hold the same value and is meant to be used on the application layer to determine if we will/should relay transactions to a peer.
(Shameless plug: we should really better specify the interface for updating eviction data to avoid refactors like this in the future -> #25572)
💬 dergoegge commented on pull request "p2p: Fill reconciliation sets and request reconciliation (Erlay)":
(https://github.com/bitcoin/bitcoin/pull/26283#discussion_r1139046536)
```suggestion
if (m_txreconciliation) m_txreconciliation->TryRemovingFromSet(pfrom.GetId(), wtxid);
```
You are already checking internally that the peer is registered.
(https://github.com/bitcoin/bitcoin/pull/26283#discussion_r1139046536)
```suggestion
if (m_txreconciliation) m_txreconciliation->TryRemovingFromSet(pfrom.GetId(), wtxid);
```
You are already checking internally that the peer is registered.
💬 dergoegge commented on pull request "p2p: Fill reconciliation sets and request reconciliation (Erlay)":
(https://github.com/bitcoin/bitcoin/pull/26283#discussion_r1139078818)
```suggestion
{
LOCK(m_peer_mutex);
for (auto [id, peer] : m_peer_map) {
const auto state{State(id)};
if (!state) continue;
if (auto tx_relay = peer->GetTxRelay()) {
LOCK(tx_relay->m_bloom_filter_mutex);
...
(https://github.com/bitcoin/bitcoin/pull/26283#discussion_r1139078818)
```suggestion
{
LOCK(m_peer_mutex);
for (auto [id, peer] : m_peer_map) {
const auto state{State(id)};
if (!state) continue;
if (auto tx_relay = peer->GetTxRelay()) {
LOCK(tx_relay->m_bloom_filter_mutex);
...
📝 hernanmarino opened a pull request: "Wallet : Allow user to navigate options while encrypting at creation"
(https://github.com/bitcoin-core/gui/pull/722)
This fixes https://github.com/bitcoin-core/gui/issues/394
It adds a "Go back" button to th "Confirm wallet encryption" window, allowing the users to change the password if they want to. It also adds a Cancel button to "Wallet to be encrypted window"
Prior to this change users had no option to alter the password, and were force to either go ahead with wallet creation or cancel the whole process. Also, at the final window, they were shown a Warining but with no option to cancel.
The new workf
...
(https://github.com/bitcoin-core/gui/pull/722)
This fixes https://github.com/bitcoin-core/gui/issues/394
It adds a "Go back" button to th "Confirm wallet encryption" window, allowing the users to change the password if they want to. It also adds a Cancel button to "Wallet to be encrypted window"
Prior to this change users had no option to alter the password, and were force to either go ahead with wallet creation or cancel the whole process. Also, at the final window, they were shown a Warining but with no option to cancel.
The new workf
...
💬 hebasto commented on pull request "refactor: Use move semantics instead of custom swap functions":
(https://github.com/bitcoin/bitcoin/pull/26749#discussion_r1139144192)
> bug fixes should be separate from refactoring commits
Commits have been reorganized.
(https://github.com/bitcoin/bitcoin/pull/26749#discussion_r1139144192)
> bug fixes should be separate from refactoring commits
Commits have been reorganized.
💬 pablomartin4btc commented on pull request "httpserver, rest: fix segmentation fault on evhttp_uri_get_query":
(https://github.com/bitcoin/bitcoin/pull/27253#issuecomment-1472457091)
Updated changes:
- move the validation/parsing logic up in the stack as soon as the request is initiated even before the work item thread is created
- updated unit and functional tests
(https://github.com/bitcoin/bitcoin/pull/27253#issuecomment-1472457091)
Updated changes:
- move the validation/parsing logic up in the stack as soon as the request is initiated even before the work item thread is created
- updated unit and functional tests
💬 vasild commented on pull request "p2p: cleanup `LookupIntern`, `Lookup` and `LookupHost`":
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139019170)
nit:
```suggestion
const std::optional<CNetAddr> addr{LookupHost(str_addr, /*fAllowLookup=*/false)};
```
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139019170)
nit:
```suggestion
const std::optional<CNetAddr> addr{LookupHost(str_addr, /*fAllowLookup=*/false)};
```
💬 vasild commented on pull request "p2p: cleanup `LookupIntern`, `Lookup` and `LookupHost`":
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139037448)
Hmm, `std::optional` without the template parameter? I guess the compiler is smart enough to deduct it, but in other places you used `std::optional<CNetAddr>`, better add the template parameter here for consistency. Or use `const auto addr = ...` eveywhere?
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139037448)
Hmm, `std::optional` without the template parameter? I guess the compiler is smart enough to deduct it, but in other places you used `std::optional<CNetAddr>`, better add the template parameter here for consistency. Or use `const auto addr = ...` eveywhere?
💬 vasild commented on pull request "p2p: cleanup `LookupIntern`, `Lookup` and `LookupHost`":
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139005096)
This change in the comment about `Lookup()` was done in commit
```
5a656f60fb p2p, refactor: return `std::vector<CNetAddr>` in `LookupHost`
```
but it belongs to the next commit
```
786ad94614 p2p, refactor: return vector/optional<CService> in `Lookup`
```
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139005096)
This change in the comment about `Lookup()` was done in commit
```
5a656f60fb p2p, refactor: return `std::vector<CNetAddr>` in `LookupHost`
```
but it belongs to the next commit
```
786ad94614 p2p, refactor: return vector/optional<CService> in `Lookup`
```
💬 vasild commented on pull request "p2p: cleanup `LookupIntern`, `Lookup` and `LookupHost`":
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139066512)
Same here:
```suggestion
return serv.value_or(CService{});
```
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139066512)
Same here:
```suggestion
return serv.value_or(CService{});
```
💬 vasild commented on pull request "p2p: cleanup `LookupIntern`, `Lookup` and `LookupHost`":
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139153162)
The `i->first.empty()` is missing in the new code. In this case the old code would have printed the warning, but the new code will not because `LookupHost("", false)` will return an optional without value.
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139153162)
The `i->first.empty()` is missing in the new code. In this case the old code would have printed the warning, but the new code will not because `LookupHost("", false)` will return an optional without value.
💬 vasild commented on pull request "p2p: cleanup `LookupIntern`, `Lookup` and `LookupHost`":
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139049268)
The previous code would have returned a default constructed `CNetAddr` if lookup failed. The new code will throw `std::bad_optional_access` because it will call `addr.value()` when the optional has no value. I guess this will fix it:
```cpp
return addr.value_or(CNetAddr{});
```
`BOOST_CHECK_MESSAGE()` will continue execution if the expression is `false`. `BOOST_REQUIRE_MESSAGE()` will stop the execution of the test.
(https://github.com/bitcoin/bitcoin/pull/26261#discussion_r1139049268)
The previous code would have returned a default constructed `CNetAddr` if lookup failed. The new code will throw `std::bad_optional_access` because it will call `addr.value()` when the optional has no value. I guess this will fix it:
```cpp
return addr.value_or(CNetAddr{});
```
`BOOST_CHECK_MESSAGE()` will continue execution if the expression is `false`. `BOOST_REQUIRE_MESSAGE()` will stop the execution of the test.