Spiral Work-Log Q3 2023
Monday, October 16, 2023This is a copy of the Q3 2023 work-log I sent to Spiral for my grant.
Disclaimer: Some information that is not (or not yet) meant to be published may have been redacted.In Q3, I finished my GitHub repository backup and mirroring project, helped with the fork-observer integration in Warnet, continued my work on the MIT DCI peer-observer setup, attended CoreDev and the BTC Azores unconference, implemented a hidden getrawaddrman RPC in Bitcoin Core, started working addrman-observer, wrote about the invalid Marathon block at height 809478, and worked on a NixOS modules workshop for bitcoin++ in Berlin.
In chronological order:
GitHub Metadata Backup and Mirror
This year, the Bitcoin Core project will have its 13th anniversary being hosted on GitHub. 13 years of issues and pull requests with critical design decisions and nuanced discussions hosted with a US-based company known for shutting down open-source software repositories when needing to follow DMCA and OFAC requests. While the medium-to-long term plan is to move off of GitHub, I’ve written a tool for incremental GitHub metadata backups as a short-to-medium-term alternative. To use and test the backups, I’ve set up a read-only metadata mirror generated from the backups (with github.com/0xb10c/github-metadata-mirror): e.g. https://mirror.b10c.me/bitcoin-bitcoin/.
Warnet + fork-observer
While I consider my fork-observer project to be work-in-progress, I helped the warnet Bitcoin network simulation project in setting up a local fork-observer instance and made sure attaching more than a 100 Bitcoin Core nodes works as intended.
MIT DCI machines for peer-observer
The MIT DCI generously provided me with access to six machines to run my work-in-progress Bitcoin P2P anomaly and attack detection tooling, peer-observer, on. I deployed Bitcoin Core nodes and related software on these machines.
CoreDev and BTC Azores
I flew to Terceira to attend the Bitcoin Core CoreDev meeting and the BTC Azores unconference. At CoreDev, I led a discussion session on (undisclosed) Bitcoin P2P network problems we’ve observed earlier this year. At the unconference, I enjoyed the discourse with the wider Bitcoin developer community.
getrawaddrman RPC + addrman-observer
During Bitcoin Core PR review and discussions at CoreDev, the idea for a getrawaddrman RPC call came up. I added this RPC in PR #28523, which was merged recently.This RPC enables introspection into the Bitcoin Core IP address manager. To visualize the output, I created a work-in-progress tool called addrman-observer. Bitcoin Core developers interested in the addrman provided me with good feedback, the warnet project would like to use it, and I want it for my peer-observer setup.
Marathon Pool invalid block
I wrote down my notes on the Marathon pool invalid block at height 809478 in Invalid MARAPool block 809478. In turn, I received good feedback from people in the mining industry on my fork-observer project.
bitcoin++23 Workshop: Writing a NixOS Module for your_app
For the nix+bitcoin focused edition of bitcoin++, I’ve prepared a 90 minute workshop enabling Bitcoin developers to write NixOS modules for their projects. The workshop can be found here.
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.
Text and images on this page are licensed under the Creative Commons Attribution-ShareAlike 4.0 International License