NEW LIBSECP256k1 MAINTAINER - This Week in Bitcoin Core #48
A new libsecp256k1 maintainer has been selected...
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, there was a nomination for a new maintainer of libsecp256k1 theStack. He has contributed to the project for a long time and has pushed lots of features and changes out for silent payments, which was a huge feature for libsecp256k1. Congrats to theStack and we look forward to your maintainership.
Merged PR’s
Every week, several changes are officially added to Bitcoin Core. This week, multiple changes were merged. Here are some I found interesting this week.
Replace libevent with our own HTTP and socket-handling implementation by pinheadmz
This is the final pull request for libevent, and after it is removed. This is part of an effort to remove the libevent dependency. There were many reasons to remove it, such as it not being regularly maintained and simply wanting to get rid of dependencies that Bitcoin Core did not need.
The main takeaway is that libevent has finally been removed, and we are on the way to Bitcoin Core having basically zero dependencies.coins: compact chainstate regularly by l0rinc
After each completed post-IBD full chainstate flush, give the chainstate a 1/320 chance to compact.
With roughly hourly full flushes, this averages about once every two weeks and makes a six-month stretch without compaction about a one-in-a-million event.The randomized recurring trigger spreads compactions across nodes and keeps maintenance stateless, without storing last-compaction height or timestamp metadata in the chainstate database.
Compaction runs on a background thread (utxocompact) so validation only schedules the work.This change affects Bitcoin Core at the database level as LevelDB is used, and after IBD, normal chainstate churn can leave obsolete entries behind until ordinary LevelDB compaction naturally reaches the affected levels, keeping the chainstate database larger than necessary.
This change randomizes when compaction occurs and keeps the db size down.
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.
refactor: Add util::Result failure types and ability to merge result values by ryanofsky
Add `util::Result` support for returning more error information and make use of it in [LoadChainstate method](https://github.com/bitcoin/bitcoin/pull/25665/commits/753b8678ac98c8753f9db17cc92d56d4d58d9e7e) as an initial application. Followup PRs [#25722](https://github.com/bitcoin/bitcoin/pull/25722) and [#29700](https://github.com/bitcoin/bitcoin/pull/29700) use it more broadly to return errors and warnings from wallet and kernel functions as well. This change adds two major features to the result class: - For better error handling, adds the ability to return a value on failure, not just a value on success. This is a key missing feature that makes the result class not useful for functions like `LoadChainstate()` which produce different errors that need to be handled differently [^1]. - For better error reporting, adds the ability to return warning messages and multiple errors, not just a single error string. This provides a way for functions to report errors and warnings in a standard way, and simplifies interfaces
IRC meeting notes
Every week on Thursday, there is an IRC meeting. Here are some short notes from that meeting.
stickies-v: #topic Benchmarking WG Update (l0rinc, andrewtoth)
andrewtoth: #35295 keeps getting more review, thank you! I feel like it's close, recent suggestions are fairly minor.
andrewtoth: #35531 is a pretty big improvement for txindex, and backwards compatible. If anyone else wants to take a look.
andrewtoth: That's it from me.
l0rinc: Regular chainstate compaction after the seek compaction removal (#35465) was merged and backported to 29/30/31.
l0rinc: #35594 was added and merged since to cover background compaction in the fuzzer.
l0rinc: #35215 is also needed for #35531 now, reviews for both would be appreciated.
l0rinc: that's it from me
stickies-v: I can't see any other WG leads here, so moving on to the proposed topicsstickies-v: #topic secp256k1 maintainer transition: stepping down and proposing a new maintainer (nickler)
nickler: Hey everyone, I’m stepping down as a libsecp256k1 maintainer. Over the past few months, I haven’t been able to dedicate the time and attention that the role deserves, and I don’t expect that to change in the foreseeable future.
nickler: Pieter, Tim, and I would like to suggest theStack as a new maintainer. We’ve reached out to him, and he said he’d be very happy to take on the role. He has consistently shown that he cares about maintainability and review quality, has contributed and reviewed regularly, and has also shepherded the largest feature PR we’ve had in quite some time (silent payments module).
nickler: We’d like to hear whether there are any concerns, objections, or other feedback on this proposal.
fjahr: no concerns, ack
furszy: ACK
l0rinc: ACK for Sebastian as secp maintainer, congrats
cfields: +1 theStack
dergoegge: ack, no concerns
brunoerg: ACK
hebasto: ack
andrewtoth: ack
dzxzg: maintainer ack
sliv3r__: ack
willcl-ark: thanks for your service nickler!
furszy: +1
theStack: nickler: big shoes to fill. thanks for all your work!
sipa: ACK
darosior: hi
janb84: ack
sipa: also hi
nickler: thanks a lot for giving me that opportunity in the first place! it was an honor
stickies-v: thanks a lot for your work so far nickler, and I agree theStack would be an excellent choice if he’s up for it!
sipa: nickler: thank you for all the work you put in the project, and thanks theStack for willing to take up the role :)
willcl-ark: theStack seems like an excellent candidate to me
darosior: ACK for theStack for maintainer. One question i have (genuine, i don’t really pay attention to the repo) is how much maintainer work is the bottleneck compared to cryptography expert reviews?
b10c: thanks nickler! and ACK theStack.
darosior: (And thanks nickler for all the maintainer work up to this point.)
darosior: And how much theStack’s nomination would help with that
ekzyis: hi
l0rinc: thestACK
darosior: :)
nickler: darosior: I think most of the work is maintenance, code review, and what direction the library should take. Applied cryptographic engineering is definitely important, the more theoretical aspects (protocol security) are more rare, especially if we have a well-reviewed BIP.
abubakarsadiq: ack theStack \o/stickies-v: #topic QA WG (brunoerg)
nickler: Ok, sounds like we should go ahead with the transition. Thanks for the feedback. And if there are any other comments, let us know.
brunoerg: Hi all, talking with some people, to concentrate/facilitate efforts/communication, a Quality Assurance WG has been created. The idea is moving on QA stuff such as corecheck, mutation testing, CI/infra, etc. If anyone wants to join, here is the signal link: https://signal. group/#CjQKIOZPujaWLLDbJN91B1-je7Zg6W-Dj2J8J-LRh7zRblkrEhDjb97gnPt94glYTmcpxXlDinstagibbs: nickler thank you for your service
stickies-v: nice brunoerg, shall i add you to the WG rotation for the weekly updates?
brunoerg: yes
brunoerg: thanks
vasild: hi
stickies-v: am probably beating a dead horse here, but would be nice if WGs keep their comms in open channels like irc (when it makes sense)
stickies-v: Anything else to discuss?
fjahr: Yes, on ASMap a heads-up that there is a demo of a dashboard available that our Summer of Bitcoin intern is working on: https://jorisstrakeljahn.github.io/asmap-dashboard/
fjahr: He couldn’t be here right now but it would be great if people interested in ASMap could take a look and leave feedback/questions/feature requests on his delving post: https://delvingbitcoin.org/t/asmap-dashboard-tracking-the-asmap-data-history-against-the-observed-network/2652
fjahr: Thanks!
jurraca: also, next ASmap run is scheduled for next week: https://github.com/bitcoin-core/asmap-data/issues/60
stickies-v: that’s a cool dashboard!
ekzyis: i sent a request to join the group, i’m Ram on Signal, can’t set a member label before joining
yancy: hi
stickies-v: looks like we’re all set for today, thanks everyoneRead here for the full meeting
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



