April’s Nerd of the Month is the_charlatan_, a Spiral grantee whose work on Bitcoin Core’s build system, validation engine, and long-term architectural challenges is overdue for the spotlight. We’ll be placing special emphasis on his main project, the bitcoinkernel library. Prepare for a deep one.
Happy Sweet 16, Bitcoin Core Bitcoin Core, the codebase that powers the Bitcoin Network, has expanded significantly over the past 16 years… to put it mildly. What started as the important, experimental work of a single shadowy super coder now has dozens contributing to it with trillions of dollars riding on their success. At the heart of Core lies the validation engine, which checks whether a transaction or a block of transactions is valid. However, the lines separating the engine’s primary functionality and secondary features have become increasingly blurred. This is where the the_charlatan_’s work, and why they are a grantee, not to mention our Nerd of the Month, comes into focus.
Bitcoinkernel Library Objectives The bitcoinkernel library’s main objective is to improve code organization within Bitcoin Core while isolating its primary functionality. Its secondary objective is to expose validation logic to external users. This is achieved by PR #30595, which introduces a C header as an API for the validation code. Then, this Rust crate and a separate Python package demonstrate how to use its API for external bindings. 80% of this newsletter’s readers probably dropped off towards this paragraph’s end, but hey, to the remaining 20%, thanks for sticking around. You’re probably who Nerd of the Month is for.
Bitcoinkernel in the Wild Bitcoinkernel’s benefits can already be seen throughout bitcoin’s development ecosystem. The library’s external language bindings have inspired initial users to create their own primitive full nodes written in Rust and a mining pool data analysis project written in Python. These demonstrate the usefulness of the library for developers implementing alternative bitcoin clients while powering analytics directly on Bitcoin Core's data stores. Experiments have also been conducted using the index-building API for Electrum servers and script debugging.
When You Stare into Core, Core Stares into You This initial API represents an evolution that should, over the years, reveal more robust Bitcoin Core validation features. It does not yet incorporate separate header syncing, and lacks flexible support for alternate validation models, such as Utreexo. However, it does include opinionated features like assumeUTXO and assumevalid, which can be controlled or disabled but are challenging to re-implement as part of an alternate implementation. Recently, there have been discussions among Bitcoin Core developers regarding the project's scope. Increasing technical debt has become progressively more challenging for Core to manage with its current structure. New features and interfaces must be justified at every step, and the bitcoinkernel library's API is no exception. This is why the library must be beneficial not only for external users but for internal functions.
It’s Not Called Nerd of the Month for Nothing We warned you, this one was deep in the weeds. Regardless, whether you caught all that or just some, the bitcoinkernel project is uniquely situated to open up Bitcoin Core's most important code to a wide audience, foster faster prototyping and innovation, and become a tool for academic research. That’s why we back the_charlatan_, not in cash money or bitcoin like you might expect, but in the holy nerd sustenance trifecta: energy drinks, sweatpants, and an entire warehouse worth of standing desks.
Enjoy this Content? Subscribe to our Substack for weekly updates about our team, carefully disguised as entertainment, delivered directly to your inbox: https://spiralbtc.substack.com/
Happy Sweet 16, Bitcoin Core Bitcoin Core, the codebase that powers the Bitcoin Network, has expanded significantly over the past 16 years… to put it mildly. What started as the important, experimental work of a single shadowy super coder now has dozens contributing to it with trillions of dollars riding on their success. At the heart of Core lies the validation engine, which checks whether a transaction or a block of transactions is valid. However, the lines separating the engine’s primary functionality and secondary features have become increasingly blurred. This is where the the_charlatan_’s work, and why they are a grantee, not to mention our Nerd of the Month, comes into focus.
Bitcoinkernel Library Objectives The bitcoinkernel library’s main objective is to improve code organization within Bitcoin Core while isolating its primary functionality. Its secondary objective is to expose validation logic to external users. This is achieved by PR #30595, which introduces a C header as an API for the validation code. Then, this Rust crate and a separate Python package demonstrate how to use its API for external bindings. 80% of this newsletter’s readers probably dropped off towards this paragraph’s end, but hey, to the remaining 20%, thanks for sticking around. You’re probably who Nerd of the Month is for.
Bitcoinkernel in the Wild Bitcoinkernel’s benefits can already be seen throughout bitcoin’s development ecosystem. The library’s external language bindings have inspired initial users to create their own primitive full nodes written in Rust and a mining pool data analysis project written in Python. These demonstrate the usefulness of the library for developers implementing alternative bitcoin clients while powering analytics directly on Bitcoin Core's data stores. Experiments have also been conducted using the index-building API for Electrum servers and script debugging.
When You Stare into Core, Core Stares into You This initial API represents an evolution that should, over the years, reveal more robust Bitcoin Core validation features. It does not yet incorporate separate header syncing, and lacks flexible support for alternate validation models, such as Utreexo. However, it does include opinionated features like assumeUTXO and assumevalid, which can be controlled or disabled but are challenging to re-implement as part of an alternate implementation. Recently, there have been discussions among Bitcoin Core developers regarding the project's scope. Increasing technical debt has become progressively more challenging for Core to manage with its current structure. New features and interfaces must be justified at every step, and the bitcoinkernel library's API is no exception. This is why the library must be beneficial not only for external users but for internal functions.
It’s Not Called Nerd of the Month for Nothing We warned you, this one was deep in the weeds. Regardless, whether you caught all that or just some, the bitcoinkernel project is uniquely situated to open up Bitcoin Core's most important code to a wide audience, foster faster prototyping and innovation, and become a tool for academic research. That’s why we back the_charlatan_, not in cash money or bitcoin like you might expect, but in the holy nerd sustenance trifecta: energy drinks, sweatpants, and an entire warehouse worth of standing desks.
Enjoy this Content? Subscribe to our Substack for weekly updates about our team, carefully disguised as entertainment, delivered directly to your inbox: https://spiralbtc.substack.com/