This week in Bitcoin Core
Bitcoin Core contributor kevkevin covers some of the latest updates...
Hello 👋 folks, I’m kevkevin. I’m an open-source developer and reporter for Insider Edition. Last week, I reviewed several pull requests from the Bitcoin Core repo. Here’s what I found notable.
Merged PR’s
Every week, several changes are officially added to Bitcoin Core. This week, 12 changes were merged. Here are some I thought were interesting from this week.
kernel: Introduce C header API by TheCharlatan
This change has been needed for a long time. This is because Bitcoin Core has long needed an interface for its consensus code. This is a big deal because one of the main reasons why it’s hard to have an implementation outside of Bitcoin Core is that you would need to match the spec of Bitcoin Core and also be bug-compliant, too, since any bug in Bitcoin Core should be reflected in the other implementations; otherwise, there is a risk of a chain split
What this change does is provide an interface into Bitcoin Core’s consensus code, so now users can be bug/spec compliant with Bitcoin Core. And users can have less worry about having to implement consensus code properly in their own implementations.
ci: Update Clang in “tidy” job by hebasto
This updates IWYU (Include what you use), which is compatible with clang 21 and fixes new “modernize-use-default-member-init” warnings. This change is honestly not too exciting since it is mostly updating versions. But it is 100% necessary.ci: run native fuzz with MSAN job by fankquake
Currently, this job is running in qa-assets, so it makes sense to also port it over to the Bitcoin GitHub repo. What this job does is run the fuzz testing suite for MSAN. This change itself is also not super exciting. Fuzz testing has found breaking changes before, so including another fuzz job makes sense for the project.
Open PR’s
There are always changes being updated and reviewed in real-time. Here are some notable PR’s that are still up and looking for reviews.
When an IPC client requests a new block template via the Mining interface, we hold on to its
CBlock. That way when they callsubmitSolution()we can modify it in place, rather than having to reconstruct the full block like thesubmitblockRPC does.Before this commit however we forgot to invalidate
m_checked_witness_commitment, which we should since the client brings a new coinbase.This would cause us to accept an invalid chaintip.
Fix this and add a test to confirm that we now reject such a block. As a sanity check, we add a second node to the test and confirm that will accept our mined block.
IRC meeting notes
Every week on Thursday, there is an IRC meeting. Here are some short notes from that meeting.
Erlay WG Update (sr_gi)
no update
Fuzzing WG Update (dergoegge)
dergoegge: no update
Kernel WG Update (TheCharlatan)
TheCharlatan: #30595 was merged :)
We mentioned this PR above ^^^^
Multiple people sent praise emojis
discussion on where to put the bindings
Benchmarking WG Update (l0rinc)
l0rinc: For #31132 we’ve simplified the multithreaded `InputFetcher` to collect directly to the temporary cache to avoid modifying the main dbcache in case of an invalid block. Since we don’t fail on missing entries anymore (it’s not the cache-warmer’s job to validate), we can safely filter intra-block spends based on short-ids instead of full txids - we don’t even need to use `SipHash` this way since we’re just relying on sorted vector binary search for presence checks which the benchmarks indicate are several times faster. All of these resulted in a nice speedups, on some systems up to 30% faster reindex-chainstate (see https://github.com/bitcoin/bitcoin/pull/31132#issuecomment-3479640421 for details). Local benchmarks also revealed that we may have some memory leaks in the code, see: #33806 (will investigate)
Silent Payments WG Update (Novo__)
From novo__: Hi I won’t be available for the irc meeting. This is the update for SIlent Payments; josibake is off for now, so I and theStack will be taking over the PRs. A new silentpayments secp module PR has been opened by theStack https://github.com/bitcoin-core/secp256k1/pull/1765 (limited to full-node scanning to make it easier to merge). We will update https://github.com/bitcoin/bitcoin/pull/28122
Cluster Mempool WG Update (sdaftuar, sipa)
glozow: Just in case sipa is offline - #33629 is the PR to review. We’re hoping to do a review “sprint” next week and would love to recruit anybody who has spare hands
glozow: I put together a list of ideas for reviewing, particularly for those who are less familiar with all the code areas: https://github.com/glozow/bitcoin/issues/13
Stratum v2 WG Update (sjors)
no update
abubakarsadiq: There is a new issue tracking issue https://github.com/bitcoin/bitcoin/issues/33777 by sjors with PR’s to review and new ideas
Multiprocess WG Update (ryanofsky)
no update
QML GUI WG Update (johnny9dev)
no update
Net Split WG Update (cfields)
cfields: Sorry, I’ve been away for the past few weeks and haven’t gotten rolling yet, so still nothing to report. I hope to have an issue opened by next-week with a logical grouping of subprojects and proposed high-level plan for discussion/review.
dormant WGs
stickies-v: we haven’t had updates from erlay and multiprocess wgs here on the meeting for a while. i suggest i’ll remove the from the rotation for now, until champions reach out to reactivate it. don’t want to waste ppl’s time. any objections?
For the full log, check the meeting in minutes
Releases
No major releases
Thank you for reading. Be sure to tune in again next week for your updates on Bitcoin Core!




