Core Devs have gone missing - This Week in Bitcoin Core #42
This week inside Bitcoin Core the devs go on vacation somewhere unknown
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.
The Bitcoin Core devs are missing this week from the weekly IRC meeting because they’re meeting up in person at CoreDev. A biannual event where Bitcoin Core contributors come together to discuss ideas. The weekly IRC meeting will resume next week on Thursday.
Merged PR’s
Every week, several changes are officially added to Bitcoin Core. This week, 11 changes were merged. Here are some I found interesting this week.
Implement BIP 370 PSBTv2 by achow101
Ava Chow's pull request for implementing BIP 370, which is PSBTv2 was merged this week. Now what does this mean?
The issue with the way that PSBT’s are handled in version 1 was that the signed transaction could not be changed. This meant that input and output could not be added. PSBTv2 solves this. There are additional benifits in PSBTv2 such as most the information is now being put in a singular location in the input map and output map.
To understand it full I suggest you read the full specfuzz: compact block harness by Crypt-iQ
Are you familiar with fuzz testing in Bitcoin Core? How about how compact blocks work? Well, you’re in luck because this change involves both.
This week, Crypt-iQ has his PR merged, which added a new fuzz harnesscmpctblockinto Bitcoin Core. Similar toprocess_messageit, make valid and invalid blocks, reconstruct blocks with in-mempool txns, and more.
This is yet another step in getting more fuzz coverage into Bitcoin Core, and who knows, maybe this might find a bug in how compact blocks work in Core.kernel: Expose CheckTransaction consensus validation function by w0xlt
This change exposes the consensus-level function CheckTransaction through the libbitcoinkernel C API and adds a corresponding C++ wrapper. Before this change, there was no way to do context-free validation checks on a transaction’s structure, and this provides that.
This introduces a new API btck_check_transaction, and in the C++ wrapper it looks like this: btck::CheckTransaction.
The Bitcoin kernel project is one that has been ongoing for a while, and this is just another API being added to it. This brings more functionality and testing, which is always welcomed.
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.
Problem Currently, when fetching inputs in `ConnectBlock`, each input is fetched from the cache sequentially. A cache miss requires a round trip to the disk database to fetch the outpoint and insert it into the cache. Since the database is read-only during `ConnectBlock`, we can fetch all inputs of a block in parallel on multiple threads while connecting. Solution We add a ThreadPool to CoinsViewOverlay to fetch block inputs in parallel. The block is passed to the `CoinsViewOverlay` view before entering `ConnectBlock`, which kicks off the worker threads to begin fetching the inputs. The cache returns fetched coins as they become available via the overridden `FetchCoinFromBase` method. If not available yet, the main thread also fetches coins as it waits.
IRC meeting notes
Every week on Thursday, there is an IRC meeting. Here are some short notes from that meeting.
None this week as coredev is going on, because of this the IRC meeting has been postponed till next week.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



