Bitcoin Core Github
44 subscribers
121K links
Download Telegram
💬 luke-jr commented on pull request "optimization: Speed up Base58 encoding/decoding by 400%/200% via preliminary byte packing":
(https://github.com/bitcoin/bitcoin/pull/29473#issuecomment-2225722849)
>would this optimization be more welcome in https://github.com/bitcoin/libbase58 instead?

The algorithm used in libbase58 is different, so not sure this even applies. Kinda doubt it would be worth the time to port/review either, unless a library consumer cares about performance or the other criteria explained already here.

If you're just looking for things to do, extending libbase58 to Bech32 might be worth doing. See https://github.com/bitcoin/libbase58/issues/6
💬 brunoerg commented on pull request "fuzz: wallet: add target for `CreateTransaction`":
(https://github.com/bitcoin/bitcoin/pull/29936#issuecomment-2225766504)
> Yes, calling SeedRandomForTest(SeedRand::ZEROS) at the beginning of every iteration improves stability from 28% to 70%.

Cool, I'll address it.
💬 jonatack commented on pull request "rpc: net: follow-ups for #30062":
(https://github.com/bitcoin/bitcoin/pull/30183#issuecomment-2225772868)
@brunoerg thanks for the ping! Reviewing soon.
🤔 stickies-v reviewed a pull request: "fuzz: bound some miniscript operations to avoid fuzz timeouts"
(https://github.com/bitcoin/bitcoin/pull/30197#pullrequestreview-2174940978)
Changes look good, thanks for adding more documentation. Nits can be ignored but I think `HasTooManySubFrag` needs some fixes wrt return statement and type narrowing before ACK.
💬 stickies-v commented on pull request "fuzz: bound some miniscript operations to avoid fuzz timeouts":
(https://github.com/bitcoin/bitcoin/pull/30197#discussion_r1675958515)
grammar nit
```suggestion
// The fuzzer may generate an input with a ton of parentheses. Rule out pathological cases.
```
💬 stickies-v commented on pull request "fuzz: bound some miniscript operations to avoid fuzz timeouts":
(https://github.com/bitcoin/bitcoin/pull/30197#discussion_r1675989072)
Should this be `return true`?
💬 stickies-v commented on pull request "fuzz: bound some miniscript operations to avoid fuzz timeouts":
(https://github.com/bitcoin/bitcoin/pull/30197#discussion_r1676029258)
Suggested simplifications & fixes incorporated in the below snippet:
- typo fixes `prepanded`->`prepended`and `column`->`colon`, `is`->`are`
- remove "Since the miniscript parsing logic...want to limit too large such occurences" since that's not a concern of this function (and already documented in the callsites)
- remove some duplication in the end

```suggestion
// We want to detect nested wrappers. A wrapper is a character prepended to a fragment, separated by a colon. There
//
...
💬 stickies-v commented on pull request "fuzz: bound some miniscript operations to avoid fuzz timeouts":
(https://github.com/bitcoin/bitcoin/pull/30197#discussion_r1675984593)
nit: could be more consistent by not using a global for one and a default param for the other:

_(note: these diffs do not include the `return true` comment made further down)_

<details>
<summary>git diff on 0d961c1d97</summary>

```diff
diff --git a/src/test/fuzz/util/descriptor.cpp b/src/test/fuzz/util/descriptor.cpp
index c2aa6d9b6a..804fd1cd33 100644
--- a/src/test/fuzz/util/descriptor.cpp
+++ b/src/test/fuzz/util/descriptor.cpp
@@ -87,16 +87,13 @@ bool HasDeepDerivPath(const Fu
...
📝 paplorinc opened a pull request: "Precalculate SipHash constant XOR with k0 and k1 in SaltedOutpointHasher"
(https://github.com/bitcoin/bitcoin/pull/30442)
Continuing the IBD-related micro-optimizations (started in https://github.com/bitcoin/bitcoin/pull/30326), here I'm precalculating the SipHash constants XOR with k0 and k1 for the map hash calculations and short-circuit COutPoint equality check for when collisions happen.

Added benchmarks indicate:
```Python
COutPoint_equality_match - 958,547,217.74/993,139,589.12 - 3.5% slower
COutPoint_equality_mismatch - 2,293,399,716.04/992,569,755.37 - 231% faster
SaltedOutpointHasherBenchmark_create
...
📝 Sjors opened a pull request: "Introduce waitFeesChanged() mining interface"
(https://github.com/bitcoin/bitcoin/pull/30443)
This adds `waitFeesChanged()` to the `Mining` interface.

The Stratum v2 protocol allows pushing out templates as fees in the mempool increase. This interface lets us know when it's time to do so.

Without Cluster Mempool however the implementation is "fake", instead returning every time a transaction is added to the mempool. So for now I'm keeping this draft. It's here to provide a complete and stable Mining interface for https://github.com/bitcoin/bitcoin/pull/30437 to build on.

Unlike
...
💬 tdb3 commented on pull request "net: Allow -proxy=[::1] on nodes with IPV6 lo only":
(https://github.com/bitcoin/bitcoin/pull/30245#discussion_r1676117378)
Probably, but the examples I've seen are all typically small and exit the program if `getaddrinfo()` returns non-zero.
💬 Sjors commented on pull request "multiprocess: add bitcoin-mine test program":
(https://github.com/bitcoin/bitcoin/pull/30437#issuecomment-2225852563)
I opened draft PRs for all interface changes that I think I will need, see updated comment above: https://github.com/bitcoin/bitcoin/pull/30437#issuecomment-2225416191
💬 mzumsande commented on pull request "init: change shutdown order of load block thread and scheduler":
(https://github.com/bitcoin/bitcoin/pull/30435#discussion_r1676133196)
True. I changed the wording of the comment / commit message, referring to `SyncWithValidationInterfaceQueue` instead of `LimitValidationInterfaceQueue`.
📝 maflcko opened a pull request: "rest: Reject negative outpoint index early in getutxos parsing"
(https://github.com/bitcoin/bitcoin/pull/30444)
In `rest_getutxos` outpoint indexes such as `+N` or `-N` are accepted. This should be harmless, because any index out of range should be treated as a non-existent utxo. However, a negative index can't exist ever, so it seems better to reject all signs, whether `+` or `-`.
💬 mzumsande commented on pull request "init: change shutdown order of load block thread and scheduler":
(https://github.com/bitcoin/bitcoin/pull/30435#issuecomment-2225872790)
[e427fed ](https://github.com/bitcoin/bitcoin/commit/e427fed82f7931ae6f09a4939e0fcd6cb235ef0d)to [5fd4836](https://github.com/bitcoin/bitcoin/commit/5fd48360198d2ac49e43b24cc1469557b03567b8): reworded comment

> I guess it should be backported to 27.x? (My understanding is that this existed "forever", since 0.16.x, because `SyncWithValidationInterfaceQueue` never had a boost interruption point, or other interrupt check)

yes, this has existed for a long time, #23234 was opened in 2021.
💬 maflcko commented on pull request "init: change shutdown order of load block thread and scheduler":
(https://github.com/bitcoin/bitcoin/pull/30435#issuecomment-2225873306)
review ACK 5fd48360198d2ac49e43b24cc1469557b03567b8
💬 fjahr commented on pull request "index: Check all necessary block data is available before starting to sync":
(https://github.com/bitcoin/bitcoin/pull/29770#discussion_r1676145515)
Taken with minor edit, thanks!
💬 fjahr commented on pull request "index: Check all necessary block data is available before starting to sync":
(https://github.com/bitcoin/bitcoin/pull/29770#discussion_r1676145787)
done
💬 fjahr commented on pull request "index: Check all necessary block data is available before starting to sync":
(https://github.com/bitcoin/bitcoin/pull/29770#discussion_r1676145867)
Renamed
👋 fjahr's pull request is ready for review: "index: Check all necessary block data is available before starting to sync"
(https://github.com/bitcoin/bitcoin/pull/29770)
💬 fjahr commented on pull request "prune, rpc: Check undo data when finding pruneheight":
(https://github.com/bitcoin/bitcoin/pull/29668#discussion_r1676146166)
Done in #29770