Bitcoin Core Github
43 subscribers
122K links
Download Telegram
💬 mzumsande commented on pull request "p2p: Add mutation check inside compact block's FillBlock":
(https://github.com/bitcoin/bitcoin/pull/32646#discussion_r2116539524)
Could this be an opportunity to resolve the TODO comment above after `check_block` by not calling this function anymore? If I understand the comment correctly it only calls `CheckBlock()` to allow the caching of the check result and avoid repeated Merkle checks, which `IsBlockMutated()` also would do today?
💬 theuni commented on pull request "thread-safety: fix annotations with REVERSE_LOCK":
(https://github.com/bitcoin/bitcoin/pull/32465#issuecomment-2923398293)
> I think those arguments are pretty compelling, and think maybe the ideal thing would be to close this PR (to avoid confusing different approaches) and open a new PR dropping `REVERSE_LOCK` entirely and replacing with it lock/unlock calls, or perhaps with a `WITH_UNLOCK()` macro that runs a fragment of code with `unlock()` before and `lock()` after, and does not relock when an exception is thrown, and does not make an unsafe `lock()` call inside a destructor.

Hmm.

For context, my primary
...
💬 fjahr commented on pull request "Replace cluster linearization algorithm with SFL":
(https://github.com/bitcoin/bitcoin/pull/32545#issuecomment-2923413036)
> I'm interested in seeing benchmarks of this on various systems

<details>
<summary>Macbook Pro M4</summary>

$ build/bin/bench_bitcoin --filter="Linearize.*Example.*" -min-time=10000

| ns/cost | cost/s | err% | total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
| 1.12 | 893,382,447.85 | 0.5% | 11.06 | `LinearizeBoundedExample0`
| 1.34 | 743,601,759.92 | 0.7
...
🤔 hodlinator reviewed a pull request: "headerssync: Keep tests ahead of increasing params"
(https://github.com/bitcoin/bitcoin/pull/32579#pullrequestreview-2881152192)
Thanks for your feedback so far @l0rinc! Took most of your suggestions (https://github.com/bitcoin/bitcoin/pull/32579#pullrequestreview-2857912770).
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2115848183)
I like the idea of including the generation date, and was including changes to the Python generator file in an unpublished version of this PR, but decided to keep that separate. Added to that separate WIP branch.

The magic numbers are not updated manually, they are included in the calculated output:
https://github.com/bitcoin/bitcoin/blob/11a2d3a63e90cdc1920ede3c67d52a9c72860e6b/contrib/devtools/headerssync-params.py#L347-L348
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2115856000)
If we didn't succeed, then `request_more` shouldn't matter, but agree it's best to have it be false (just like `pow_validated_headers` should be empty). It would be better if `ProcessNextHeaders` returned something like `std::optional<ProcessingResult>` instead of having a `bool` field to indicate success, but this PR already feels large enough.

"foiled" means the attack attempt was detected and therefore failed. Elaborated the comment a bit in next push.
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2115831187)
One could argue at least the `uint64_t`-taking ctor here and in `arith_uint256` should be explicit, but I'd rather not have to change src/pow.cpp in this PR.
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2116586810)
Took the scoping idea, still not sure about the structured bindings.
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2115807522)
What's the point of making a constructor that takes no arguments `explicit`?
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2115857753)
Agree on the split but what would be the point of changing the type?
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2115879398)
The new comment is replacing the first (mention of python file) and last comments here:
https://github.com/bitcoin/bitcoin/blob/11a2d3a63e90cdc1920ede3c67d52a9c72860e6b/src/headerssync.cpp#L12-L25

Your comment would probably be enough but I'd rather keep some more context.
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2115884389)
Thanks, missed that!
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2116580384)
Started renaming but then realized that we already have *headerssync-params.py*. It's not obvious to me that underscores would be more correct for C++ files. We do have other C++ files with hyphens.
💬 hodlinator commented on pull request "headerssync: Keep tests ahead of increasing params":
(https://github.com/bitcoin/bitcoin/pull/32579#discussion_r2116614226)
Hm.. my `std::optional<ProcessingResult>` suggestion would not work here:

https://github.com/bitcoin/bitcoin/blob/a7b9cc4a0af0dbe4031ec5848d403f61dc9c3356/src/test/headers_sync_chainwork_tests.cpp#L127-L136

Success seems to mean that PRESYNC- and REDOWNLOAD-headers matched, even if the chain is too short.
🤔 hebasto reviewed a pull request: "deps: Bump lief to 0.16.6"
(https://github.com/bitcoin/bitcoin/pull/32431#pullrequestreview-2882489162)
`ninja` is already [listed](https://github.com/bitcoin/bitcoin/blob/4b1d48a6866b24f0ed027334c6de642fc848d083/contrib/guix/manifest.scm#L15) as a dependency in `manifest.scm`, so patching it out doesn't seem necessary:
```diff
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -167,21 +167,13 @@ chain for " target " development."))
(url "https://github.com/lief-project/LIEF")
(commit version)))
(file-name (git-file-na
...
💬 fanquake commented on pull request "cmake, qt: Process `*.qrc` files manually":
(https://github.com/bitcoin/bitcoin/pull/32648#issuecomment-2923517649)
Thanks for taking a look at this. I'm not sure the complexity of having to manually process, and then still having to supress warnings anyway, is worth it. I was thinking the fix here would be to change the tools / Qt to just produce files that don't have the issue. Seems like something we could fix upstream?
💬 fanquake commented on pull request "cmake: Replace deprecated `qt6_add_translation` with `qt6_add_lrelease`":
(https://github.com/bitcoin/bitcoin/pull/32651#discussion_r2116704527)
If we're touching it already, can we fix the TODO, rather than move it? Or, put it into an issue, so that someone might pick it up?
📝 roconnor-blockstream opened a pull request: "wallet: add codex32 argument to addhdkey"
(https://github.com/bitcoin/bitcoin/pull/32652)
Rebase of #27351 onto #29136.

WIP. Testcases don't pass yet.

This PR introduces the ability to import [BIP 93/codex32](https://github.com/bitcoin/bips/blob/master/bip-0093.mediawiki) master seeds with the `addhdkey` command. It currently expects seeds to be provided in either as a single seed or as a list of shares which can be assembled via Shamir Secret Sharing.
pinheadmz closed an issue: "Bitcoin frog"
(https://github.com/bitcoin/bitcoin/issues/32221)