Fuzzing is now visualized - This week in Bitcoin Core #33
This week the fuzzers decided to have a new dashboard...
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.
This week, Brink/dergoegge announces a new dashboard to view all the fuzzing activity being done on Bitcoin Core.
Merged PR’s
Every week, several changes are officially added to Bitcoin Core. This week, 15 changes were merged. Here are some I thought were interesting from this week.
Update libmultiprocess subtree to be more stable with rust IPC client by ryanofsky
The Rust mining client was having issues with async requests and unclean disconnects. To fix that, this PR synced Bitcoin Core with what is on the libmultiprocess subtree. Specifically, there was a change to avoid async errors in non-C++ clients.
New tests were added in this change, and in the conversation it seems there were some issues with a memory leak that were resolved.test: let connections happen in any order in p2p_private_broadcast.py by vasild
A few months ago private broadcast was merged into Bitcoin Core by Vasild that change allowed transactions to be sent over short-lived Tor and I2P connections. This change, as you can tell by the title tag, is a test change. Specifically, it was a change to the functional test where we want to let connections happen in any order in a private broadcast.
If the following two events happen:
(likely) the automatic 10 initial connections are not made to all
networks(unlikely) the network-specific logic kicks in almost immediately.
It is using exponential distribution with a mean of 5 minutes
(rng.rand_exp_duration(EXTRA_NETWORK_PEER_INTERVAL)).
So if both happen, then the 11th connection may not be the expected
private broadcast, but a network-specific connection.wallet: call SyncWithValidationInterfaceQueue after disconnecting chain notifications by achow101
When the wallet disconnects from getting chain notifciations it does not expect futher notifications to execute. But from what was found in tests, that was not the case.
Right now, we disconnect the chain notifications and then continue the shutdown. Instead, the wallet now waits for the validation interface queue to be drained before shutting down the rest of the 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.
The sentinel pattern in
ConnectTracehas been unnecessary since conflicted transaction tracking was removed in 5613f98. Without that trackingConnectTraceis a trivial wrapper aroundstd::vector, so it seems better to just replace it with the vector directly.Also modernize/update naming along the way, renaming
PerBlockConnectTracetoConnectedBlockRefactor, no behaviour change.
IRC meeting notes
Every week on Thursday, there is an IRC meeting. Here are some short notes from that meeting.
16:01:32 <fjahr> #topic Fuzzing WG Update (dergoegge)
16:01:38 <hodlinator> hi
16:01:59 <dergoegge> I made a dashboard for Brink's fuzzing infrastructure: https://dergoegge.github.io/fuzzor-dashboard/
16:02:19 <darosior9> hi
16:02:25 <dergoegge> Please let me know if you have ideas on how that can be made more useful
16:02:28 <fjahr> very cool
16:02:29 <pinheadmz> Yo
16:02:36 <l0rinc> hi
16:02:44 <dergoegge> Already got some good feedback in the fuzzing wg (thanks!)
16:02:57 <dergoegge> Also wanted to bring up https://github.com/bitcoin-core/gui-qml/pull/503
16:03:08 <dergoegge> It would be cool have something like this for the qt gui
16:03:36 <hebasto> qml will be a new gui soon
16:03:53 <dergoegge> If we're gonna keep maintaining it, it could be nice to increase our confidence with some fuzzing, which would be enabled by this approach
16:04:34 <willcl-ark> hi
16:04:49 <dergoegge> I'm not gonna work on it myself, but if someone is interested, I'd be willing to help with review or writing the fuzz tests
16:05:50 <fjahr> dergoegge: that's it?
16:06:34 <dergoegge> yes unless someone has something to add
16:06:36 <johnny9dev> Hi. I can throw some tokens to research it for Qt widgets. I've built this same thing before in another qml project
16:06:57 <dergoegge> Great! lmk how that goes!16:07:05 <fjahr> #topic Kernel WG Update (sedited)
16:07:54 <sedited> don’t have anything to share this week.16:08:00 <fjahr> #topic Benchmarking WG Update (l0rinc, andrewtoth)
16:08:04 <l0rinc> nothing from me
16:08:56 <andrewtoth_> I opened #34692 based on feedback from last week’s meeting and in #34641. Hopefully that is simple enough to get into v31. It would be a big UX improvement for our users. We can continue improving dbcaching in v32 afterwards.
16:08:58 <corebot> andrewtoth_: Error: That URL appears to have no HTML title within the first 32KB.
16:09:00 <corebot> andrewtoth_: Error: That URL appears to have no HTML title within the first 32KB.
16:09:38 <andrewtoth_> That’s it from me16:09:59 <fjahr> #topic Net Split WG Update (cfields)
16:10:14 <cfields> Still no update, focus has been elsewhere. Really hoping to get going this week. Thanks for your patience :)
16:11:29 <fjahr> Not seeing silent payments, but the k_max discussion is making progress afaict (bip change is merged I think) and the focus is again on the secp Pr that implements this.
16:11:39 <fjahr> Anything else to discuss?
16:12:15 <sipa> hi
16:12:20 <johnny9dev> I would like to get the qml project back onto the weekly topic list. I’ve spent the last 2 weeks working on it again and I am not have full momentum again.
16:12:34 <johnny9dev> I now have full momentum*16:12:59 <fjahr> #topic QML GUI WG Update (johnny9dev)
16:13:01 <fjahr> :p
16:13:03 <johnny9dev> I have another contributor helping me as well who will like to update their progress too
16:13:09 <willcl-ark> nice!
16:13:35 <fjahr> johnny9dev: You don’t have to ask for permission IMO, just move it up in the wiki page
16:14:11 <johnny9dev> My goal is feature parity and have setup the test automation frameworks and have done the decoupling from the original qt project. epcileafies has completed the features for peer disconnect/ban and completed a full e2e test for it using the gui test framework
16:15:18 <johnny9dev> the list of features has been added to the issues of the project.
16:15:52 <johnny9dev> thats all for this status i think
There was more converstaion on this, read the full meeting in minutes16:41:42 <fjahr> #topic 31.0 milestone
16:41:57 <achow101> Btanching is scheuled for the 10th, which is in 5 days
16:42:36 <achow101> There are still 8 open PRs in the milestone: https://github.com/bitcoin/bitcoin/milestone/74
16:42:47 <achow101> please review them
16:43:07 <sedited> also #34735 as an outstanding issue.
16:43:08 <corebot> https://github.com/bitcoin/bitcoin/issues/34735 | Intermittent failure in rpc_gettxspendingprevout.py, line 98, assert_equal(node0.gettxspendingprevout([..]), [..]), JSONRPCException: No spending tx for the outpoint :0 in mempool, and txospenderindex is unavailable · Issue #34735 · bitcoin/bitcoin · GitHub
16:44:32 <achow101> that’s allReleases
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



