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, 17 changes were merged. Here are some I thought were interesting from this week.
In an earlier PR, the include what you use (IWYU) checks were added to the “tidy” job because it made sense that removing unused items was a tidy sort of job.
What ended up happening was that the tidy job would take a while to run, and ideally, developers should know if the IWYU check failed earlier. IWYU also does not depend on tidy to run, so it makes sense to separate it into its own job.test: address self-announcement by 0xB10C
This pull request adds a new test that checks that a node sends a self-announcement with its external IP to {in, out}bound peers after connection open and again later.
This change was motivated by this pull request, where they wanted to test to make sure we were rate-limiting self-announcements.kernel: Expose reusable PrecomputedTransactionData in script validation by joshdoman
I am not too familiar with this change, but according to joshdoman. This PR exposes a reusable PrecomputedTransactionData object in script validation using libkernel. Apparently, because libkernel computes PrecomputedTransactionData each time btck_script_pubkey_verify.This exposes clients to quadratic hashing when validating a transaction with multiple inputs. By externalizingPrecomputedTransactionDataand making it reusable, libkernel can eliminate this attack vector.
He discusses the problem more in this issue.
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.
This is part of the effort to remove the libevent dependency from our code base: #31194
The current approach tries to reuse existing code and follows roughly similar design decisions. It replaces the libevent-based async I/O with blocking I/O utilizing the existingSockandCThreadInterrupt. The controller runs in a dedicated thread.
There are some optional code modernizations thrown in made along the way (namings, constexpr etc.). These are not strictly necessary but make the end result with the new code more consistent.
IRC meeting notes
Every week on Thursday, there is an IRC meeting. Here are some short notes from that meeting.
No meeting this week do to it being the New Year
Releases
No releases this week
Thank you for reading. Be sure to tune in again next week for your updates on Bitcoin Core!
If there are any comments, suggestions, or errors, do not hesitate to reach out or comment




