Core devs meeting next week - This Week in Bitcoin Core #41
This week inside Bitcoin Core...
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.
Next week, there will be no IRC meeting because the Bitcoin Core devs are going to be meeting next week. Where are they meeting? Nobody but them knows.
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.
util: Return uint64_t from MiB and GiB operators by maflcko
Marco Falke opened this PR to attempt to modify the C++ type used by_MiBand_GiBfrom size_t to uint64_t. Falke mentioned a few reasons for this, those being that, currently, with size_t, it is impossible to represent larger values. But if it used a uint64_t instead, it would be possible.
There are other reasons as well, such as it not being necessary and that the usage of size_t encourages its usage elsewhere, which can cause bugs and CVEs in the future.refactor: use options struct for signing and PSBT operations by Sjors
In this PR, Sjors Provoost changes the
sign,finalize,bip32derivsandsighash_typearguments that are passed toFillPSBT()andSignPSBTInput()into a struct namedPSBTFillOptionsinstead.
Provoost mentions that the motivation for this is that in the future, there might be a need to add another argument, and instead of creating a bunch of code churn, we can just add it to this struct, and it would be much cleaner and less of a headache.wallet: crash fix, handle non-writable db directories by furszy
Matias Furszyfer opened this PR to improve error messaging when the DB directory is not writable. Furszyfer noticed that when trying to load or create a wallet and the DB was not writeable, he would get a vague message.
In this PR, he fixes this for both creating a new wallet and loading an existing wallet.
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.
validation: fetch block inputs on parallel threads by andrewtoth
This PR parallelizes fetching all input prevouts of a block during block connection, achieving over 3x faster IBD performance in some scenarios[^1][^2][^3][^4][^5]. ### 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.
abubakarsadiq: #topic Fuzzing WG Update (dergoegge)
dergoegge: no updatesabubakarsadiq: #topic Kernel WG Update (sedited)
dergoegge: will have some stuff to show at coredev
sedited: We’re migrating rust-bitcoinkernel from a bindings generator to hand rolled bindings. That’s cutting down on some required dependencies.
sedited: Otherwise looking for review for the open PRs on the board https://github.com/orgs/bitcoin/projects/3/views/1
abubakarsadiq: dergoegge: 👍 looking forward to it.
sedited: That’s all from me.abubakarsadiq: #topic Benchmarking WG Update (l0rinc, andrewtoth)
noneabubakarsadiq: #topic Benchmarking WG Update (l0rinc, andrewtoth_)
andrewtoth_: hi
sedited: ^^
andrewtoth_: Got some good review from l0rinc on https://github.com/bitcoin/bitcoin/pull/31132. More review welcome. That’s it from me.
abubakarsadiq: niceabubakarsadiq: #topic QML GUI WG Update (johnny9dev)
johnny9dev: We have first PRs by our new contributor pseudoramdom bitcoin-core/gui-qml#561, bitcoin-core/gui-qml#556, bitcoin-core/gui-qml#554
johnny9dev: I have PR’d some improvements to our activity page, the block clock, and PSBT support bitcoin-core/gui-qml#559, bitcoin-core/gui-qml#558, bitcoin-core/gui-qml#557
johnny9dev: epicleafies has a PR up now for feature parity receive features bitcoin-core/gui-qml#553 and is working on other remaining parity features.
johnny9dev: I am currently focused on some planning and docs to share at coredev
abubakarsadiq: johnny9dev: would it be easier to track this on a board?
abubakarsadiq: Something similar to https://github.com/orgs/bitcoin/projects/3/views/1
johnny9dev: thats an interesting idea. I will consider it.
johnny9dev: but that is the kind of thing I am trying to work out right now
johnny9dev: as I’d like to share where we are and where we plan to be at the meeting
abubakarsadiq: yeah they are quite a lots of PR’s so you can just reference the board with the summary of the update, some also use tracking issue for that
johnny9dev: ok, thank you
johnny9dev: epicleafies: anything to add?abubakarsadiq: #topic Libevent removal (pinheadmz, fjahr)
epicleafies: Not too much else, but I also created a PR for fixing some issues with Gmock
pinheadmz: Lots of progress on #32061 this week. Rebased on master after pre-factor commits were merged. Addressed feedback from vasild, janb84, hodlinator, and b-l-u-e. Claude found some crash bugs and HTTP violations and those have been patched. I also had Claude add functional tests to cover the most common and well-known HTTP vulnerabilities and malformed requests. Libevent actually failed one of those tests but not in a dangerous way. That PR
pinheadmz: just passed (windows) ci this morning so I closed it with 400+ comments and opened a fresh one: #35182 The PR is dead! Long live the PR!
pinheadmz: Fuzz testing and integration testing are next... especially now that lnd has fixed their ci incompatabilities with v31
vasild: hi
pinheadmz: nothigng new from fjahr
pinheadmz: that itabubakarsadiq: #topic Net Split WG Update (cfields)
yancy: hi
abubakarsadiq: As usual, next week there won’t be an IRC meeting because of the coredev meeting.
abubakarsadiq: Anything else to discuss?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



