Bitcoin Core Github
44 subscribers
120K links
Download Telegram
⚠️ petertodd opened an issue: "MIN_STANDARD_TX_NONWITNESS_SIZE prevents efficient spending of P2A outputs"
(https://github.com/bitcoin/bitcoin/issues/31155)
### Please describe the feature you'd like to see added.

The most efficient way to spend a single P2A output to an `OP_RETURN` results in a transaction 61 bytes in size, below the 65 byte limit enforced by `MIN_STANDARD_TX_NONWITNESS_SIZE`. For example:

```01000000017989c51d11e9e1e6aa634d471e31900141fe44bd491bcb5996f948b9039b232e0000000000ffffffff010000000000000000016a00000000```

This transaction should be standard.

### Is your feature related to a problem, if so please describe it.

_No
...
💬 edilmedeiros commented on pull request "Drop miniupnp dependency":
(https://github.com/bitcoin/bitcoin/pull/31130#issuecomment-2438488332)
utACK b7b24352906f1dba64826e7a093069b5bfc504dc.

Agree with @fanquake comments.
📝 mzumsande opened a pull request: "test: Don't enforce BIP94 on regtest unless specified by arg"
(https://github.com/bitcoin/bitcoin/pull/31156)
The added arg `-enforcebip94` is only used in a functional test for BIP94. This is done because the default regtest consensus rules should be close to mainnet, not testnet.

Fixes #31137.
💬 Davidson-Souza commented on pull request "miner: Reorg Testnet4 minimum difficulty blocks":
(https://github.com/bitcoin/bitcoin/pull/31117#issuecomment-2438501129)
In 7864871. If I fire a `getblocktemplate` **before** sync is done, I get a `segfault`.

<details>

<summary>Valgrind stack trace</summary>

```
==1025895== Thread 7 b-httpworker.3:
==1025895== Invalid read of size 4
==1025895== at 0x36A95F: node::(anonymous namespace)::MinerImpl::rollbackTestnet4() (interfaces.cpp:997)
==1025895== by 0x42F759: getblocktemplate()::{lambda(RPCHelpMan const&, JSONRPCRequest const&)#1}::operator()(RPCHelpMan const&, JSONRPCRequest const&) const [clo
...
💬 mzumsande commented on issue "Remove BIP94 from regtest":
(https://github.com/bitcoin/bitcoin/issues/31137#issuecomment-2438504815)
I opened #31156 which just adds an arg. This seemed the least invasive solution to me.

>A pre-mined testnet4 chain can possibly be used for the test as well, instead.

That should be possible too, but would require enabling `setmocktime` for testnet, which I didn't love.
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817154923)
aside from reorgs?
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817158265)
when would removals or additions happen outside of a changeset?
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817154002)

```suggestion
* set of new transactions and compare with the existing mempool.
```
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817158983)
?
```suggestion
* Apply() will apply the removals and additions that are staged into the mempool.
```
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817161237)
logically seems to work, probably not worth nitting
💬 jonatack commented on issue "MIN_STANDARD_TX_NONWITNESS_SIZE prevents efficient spending of P2A outputs":
(https://github.com/bitcoin/bitcoin/issues/31155#issuecomment-2438531310)
See https://github.com/bitcoin/bitcoin/pull/26265 (merged, above 64 bytes allowed) and alternative https://github.com/bitcoin/bitcoin/pull/26398 (only 64 bytes disallowed).
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817171820)
```suggestion
CTxMemPool::setEntries all_conflicts;
```
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817170430)
we're still applying on failure, so it's not really a belt and suspenders for that anymore is it?
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817172422)
```suggestion
CTxMemPool::setEntries all_conflicts;
```
💬 instagibbs commented on pull request "cluster mempool: Implement changeset interface for mempool":
(https://github.com/bitcoin/bitcoin/pull/31122#discussion_r1817177783)
ah right
📝 l0rinc converted_to_draft a pull request: "optimization: pack util::Xor into 64/32 bit chunks instead of doing it byte-by-byte"
(https://github.com/bitcoin/bitcoin/pull/31144)
The recently merged [XOR obfuscation](https://github.com/bitcoin/bitcoin/pull/28207) is a non-trivial part of serialization, encountered during IBD and `reindex`.

In this PR, I've added a new test (comparing randomized inputs against a trivial implementation), updated the benchmark to validate a [more realistic scenario](https://github.com/bitcoin/bitcoin/blob/master/src/node/mempool_persist.cpp#L180) and optimized the XOR function to do the work in batches (instead of per bytes).

```bash
...
💬 darosior commented on pull request "Drop miniupnp dependency":
(https://github.com/bitcoin/bitcoin/pull/31130#discussion_r1817230404)
Done.
💬 darosior commented on pull request "Drop miniupnp dependency":
(https://github.com/bitcoin/bitcoin/pull/31130#discussion_r1817231681)
It was both. Removed outdated comments and dead code in the latest push. I cleaned up this function in the follow-up.
📝 darosior opened a pull request: "Cleanups to port mapping module post UPnP dropt"
(https://github.com/bitcoin/bitcoin/pull/31157)
Based on #31130, this does a couple cleanups to `src/mapport.*` to clarify the logic now that there is a single protocol option for port mapping.
💬 darosior commented on pull request "Drop miniupnp dependency":
(https://github.com/bitcoin/bitcoin/pull/31130#issuecomment-2438634685)
Pushed two commits to remove outdated comments and dead code. I opened https://github.com/bitcoin/bitcoin/pull/31157 as a follow-up to clean up some of the logic which became unnecessary or confusing now that there is only a single protocol option.