OpenSats Work-Log 3

Thursday, October 31, 2024

This is a copy of the 3rd 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?

Publications & Talks

Projects

peer-observer and infrastructure

To monitor for Bitcoin P2P anomalies and attacks, I run Bitcoin Core “honeynodes” (honeypot nodes). The nodes have additional monitoring attached that is used to record data and metrics. In the last three months, my focus has been on:

  • Developed a set of tools that can connect to a peer-observer websocket endpoint and display P2P events in real time.
  • Configured CJDNS connectivity on some of the monitoring nodes
  • Started a few nodes with a recent ASMap file to test and collect data on ASMap
  • Configured some nodes with ASan, UBSan and TSan to catch potential issues
  • All assumes() normally disabled in production nodes are treat as asserts to catch potential issues
  • I cleaned up a bunch of old Grafana dashboards and created a big playlist
  • General maintenance of the nodes and infrastructure.
Bitcoin Core
  • I attended the CoreDev event to catch up with other Bitcoin Core developers. I showcased some of my P2P monitoring tooling and got good feedback and ideas.
  • I have been GUIX-building and uploading signatures of GUIX build hashes for the recent Bitcoin Core releases.
  • I helped in another round of (demo) ASMap file creation and publication.
  • Helped out in exploring a nix-based CI setup for Bitcoin Core to reduce the maintenance burden and allow for faster deployment of more CI resources.
  • I’ve been keeping my currently open PRs rebased and ready for review.
  • When ever suitable, I left my feedback on Bitcoin Core PRs and issues.

misc

  • nix flake: I have a nix flake repository for nix packages and modules of Bitcoin software I use. Next to keeping the packages and modules up-to-date, I’ve added a package for my transactionfee-info rewrite, added a miningpool-observer module and integration test, an asmap-data package, and an auto update functionality for packages.
  • fork-observer: Based on user feedback from the Warnet project, I improved the UX a bit in #47. I also set up a testnet4 node and attached fork-observer to it: https://fork.observer/?network=4
  • stratum-observer: While I had planned to work on stratum v2 implementation in Q3 2024, I have postponed this work for now as there is no real stratum v2 pool yet to connect to. Using the collected stratum data to show the similarities between pools seemed more important.
  • btcffm.org: I’m maintaining the website of the Frankfurt Bitcoin meetup

What do you plan to work on next quarter?

  • further work on the peer-observer & infrastructure
    • keep nodes up-to-date and running
    • switch out the current nanomsg message queue for something like NATS: https://github.com/0xB10C/peer-observer/issues/56
    • extract non-sensitive infrastructure parts into a separate nix flake and publish a public demo instance again
    • collect and analyze data on the transactions requested for compact block reconstruction
  • continue to work on the projects mentioned above and in the last progress reports


My open-source work is currently funded by an OpenSats LTS grant. You can learn more about my funding and how to support my work on my funding page.

Creative Commons License Text and images on this page are licensed under the Creative Commons Attribution-ShareAlike 4.0 International License

Next

Image for OpenSats Work-Log 4

January 31, 2025

OpenSats Work-Log 4

This is a copy of the 4th work-log I sent to OpenSats for my LTS grant.

Previous

Image for OpenSats Work-Log 2

July 31, 2024

OpenSats Work-Log 2

This is a copy of the 2nd work-log I sent to OpenSats for my LTS grant.