// #Bitcoin
Worked on higher level p2p things and lower level rust things.
kyoto
I did a lot of deep diving in kyoto and light client in general. Wrapped my head around things like block syncing and filter syncing. This lead to a lot of interesting implementation decisions in an async runtime like tokio which kyoto leverages.
- [LOG] Kyoto Series // Quite a few entries on the design and architecture of a light client.
rust building
My adventure in learning rust and the ecosystem continues. I went down a few rabbit holes, some more fulfilling than others. But the end result is some good lessons which can be codified in my projects moving forward.
- [CODE] Understanding rust-bitcoin’s version constraints // This ended up being an interesting, windy, dead end. But learned a lot about dependency version constraints.
- [LOG] Minimal Versions // Writing up the learnings on minimal versions and why your library should test them.
- [CODE] Kyoto’s justfile // Look at this fancy
justfile
! All those clean tests suites.
census and peers
Introducing some new helper crates for p2p things! The first is the bitcoin-node-census binary which crawls the bitcoin network and reports some simple stats on feature adoption. I have this running weekly on my server and post results at census.yonson.dev. This is helping drive some design decisions in kyoto. But in the long-term, I also want to see what can be done to bump up the number of nodes on the network supporting compact block filters.
The census app is built on top of the bitcoin-peers library where I am experimenting with some rust design patterns to help abstract the complexities of a bitcoin p2p connections. Hopefully this can get to a point where it is useful for other apps as well.