OpenSats Work-Log 6
TL;DR
The author completed and launched mainnet-observer, presented peer-observer at Prague dev/hack/day 2025, and documented a Bitcoin Core DoS discovery. They also took time off and worked on various Bitcoin network monitoring projects and maintenance tasks.
Key Takeaways
- •Launched mainnet-observer, an open-source tool for blockchain statistics, with new charts and updates.
- •Presented peer-observer at a conference and published a blog post to monitor Bitcoin P2P network for attacks.
- •Documented a 2023 Bitcoin Core DoS issue and explored ideas like a Bitcoin Network Operations Collective.
- •Added Electrum backend support to fork-observer for better stale block monitoring and network data collection.
- •Engaged in maintenance and community activities, including meetup organization and project contributions.
This is a copy of the 6th work-log I sent to OpenSats for my LTS grant.
Disclaimer: Some information that is not (or not yet) meant to be published may have been redacted.How did you spend your time?
In May, June, and July of 2025 I finished mainnet-observer up and launched it, gave a talk on my peer-observer project at the Prague dev/hack/day 2025 and published a blog post about it, and more. I also took some time off to touch some grass, recharge, and enjoy summer a bit.
Publications:
- I’ve written down my notes on the discovery of the Bitcoin Core DoS: “DoS due to inv-to-send sets growing too large” from May 2023. I think that having these documented somewhere is helpful and allows me to link to it. https://b10c.me/observations/15-inv-to-send-queue/
- At the Prague dev/hack/day 2025 I gave a talk about my peer-observer project with the goal of monitoring the Bitcoin P2P network for attacks and anomalies. https://b10c.me/talks/#peer-observer-a-tool-and-infrastructure-for-monitoring-the-bitcoin-p2p-network-for-attacks-and-anomalies
- As the talk wasn’t recorded, I also published a blog post on peer-observer to reach a wider audience and to have the project idea written down somewhere. https://b10c.me/projects/024-peer-observer/. I also have a section on a potential Bitcoin Network Operations Collective, which is something I want to further explore in the coming months.
mainnet-observer
The mainnet-observer project is an Open-Source rewrite of my 2017 transactionfee.info project (semi-closed source). It shows blockchain statistics interesting for developers and power users and is useful to make data-based decisions for protocol development. Over the course of April and in early May, I finalized an initial version ready for publishing.
In May, this included:
- a new chart for UTXO set composition over time which partly addressed Murch’s issue #14 New chart request: UTXO set composition over time
- A pie chart for pool hashrate distribution including AntPool & friends in #76 to have an updating version of the chart published at the bottom of Bitcoin Mining Centralization in 2025
- A block-weight chart in #80
- Charts for some OP_RETURN meta-protocol usage in #79
- some minor and last-minute visual fixes like #71, #73, #75, #81, #82
peer-observer
Next to speaking about peer-observer and announcing the project in my blog post (see publications at the top), I also worked on a few things that had been on my list for a while.
- #173 adds documentation and usage instructions on how to use the peer-observer tools - this helps with new contributors (coming from the talk and blog post) trying the tools
- Initially, peer-observer was only using the eBPF/USDT interface of Bitcoin Core. The RPC interface can provide useful information too, especially stateful information. To use this data, I implemented an RPC-extractor with initially data from
getpeerinfoin #191. More RPCs to implement are tracked in #199. This also caused of followup issues with other ideas to implement linked from the PR. As part of the RPC-exporter I also fixed thegetpeerinfoRPC implementation of rust-bitcoin/corepc https://github.com/rust-bitcoin/corepc/pull/310 - Some general maintenance in #171 and #172
- Clube Bitcoin Universidade de Brasília has been starting to setup their own peer-observer infrastructure with my help. So I made some small contributions on their infra structure: https://github.com/ClubeBitcoinUnB/peer-observer-docker/pull/2
fork-observer
With “1sat/vbyte summer”, monitoring for stale blocks has become more important again as stale-blocks are an indication for poor network block propagation. By connecting to public electrum servers, we have a much better view into the network by having much more data sources. So I implemented Electrum backend support for fork-observer and set my instance up to connect to a bunch of public electrum servers on mainnet, testnet, testnet4, and signet.
misc
- I started thinking about an IPC-based tracing interface for tracing Bitcoin Core (as opposed to the current USDT/eBPF interface), and asked ryanofsky, who has been spearheading the Bitcoin Core IPC and multiprocess work, for his thoughts on this in https://github.com/bitcoin-core/libmultiprocess/issues/185. He was so kind to write a quick demo of how this would look like. I haven’t found the time to dive into it, but I see this as worthwhile project to explore.
- continued to maintain the website of the Frankfurt Bitcoin Meetup June meetup, July meetup
- maintained github-metadata-mirror project with #6 and #8
- Helping to organize an upcoming CoreDev event
- Bitcoin Core GUIX sigs for v28.2 and its release candidates: https://github.com/bitcoin-core/guix.sigs/pulls?q=is%3Apr+author%3A0xB10C+is%3Aclosed