purpleKarrot Gedankenexperimente

Towards a Side-Effect Free Validation Library

What would Bitcoin validation look like if it were truly side-effect free and built from first principles? This post explores the real boundary between consensus logic and node implementation details.

Drop BlockTreeEntry from the Bitcoin Kernel API

The BlockTreeEntry type leaks internal details and couples clients to Bitcoin Core's implementation. The Kernel API is leaner, more stable and more robust without it.

Virtuality 2026

While reviewing and refactoring the Bitcoin Kernel API, I wrote several design documents. One topic I have not yet covered is the concept of "interfaces."

Aiming for ₿OSS Level 100

As a student, I wanted to become a game programmer. I learned C++ with the goal of writing a computer game. My vision was to create something like a decentralized version of "Ultima Online."

CMake Import/Export

In the following, I will try to address all your questions regarding import/export with CMake. To aid in this task, I have set up four example projects, which form a so-called diamond of death dependency graph.

My review of the proposed C header for the Bitcoin Core Kernel API

Ranges, ranges everywhere. Or why I should definitely meet TheCharlatan on a regular basis.

Blogging with NIP-23

Moving my blog from GitHub Pages to Nostr Long-form Content notes

Fun with clang-format

There are formatting options that are a matter of taste and there are formatting options that severely affect readability and maintenance.

Proper Comparisons in CMake

It always saddens me when I see code like this.

Refactoring CTest

Previously, I wrote about the four different ways of configuring a dashboard client script with CTest.

Building and Testing with CMake

There are too many ways to build and test a project with CMake. On the other hand, there is too little knowledge out there about those ways. As a consequence, people wrap the CMake invocation in custom scripts written in Bash, Python, TypeScript, etc.

C++Now 2017: Effective CMake

My presentation at C++Now 2017 won the "Most Educational Session" award.

CMake and Test Suites

The FindGTest module that ships with CMake provides the command GTEST_ADD_TESTS, which registers all the test cases from a test executable with CMake so they are listed individually in the report generated by CTest.

CMake Presentation

Slides of a presentation I gave 21 May 2015 for the C++ user group meeting.