🚀 Knuth v1.2.0 is out.
Like v1.1.0, this one is about foundations, not fireworks.
The core library has been rebuilt around immutable, valid-by-construction value types: if an object exists, it's valid. No setters, no half-built states, no is_valid() checks scattered across the codebase — invalid states are simply unrepresentable.
Highlights:
🧱 Domain, wallet and message types are now immutable and valid-by-construction — fallible parsing returns std::expected, construction never yields a broken object.
⚙️ Deeper C++23: constexpr value types, <=> comparisons, and a leaner API surface across the board.
🛠️ Boost.Program_options replaced with CLI11 — simpler, modern config handling.
🔐 Peer selection now uses the CSPRNG (dropped a broken RNG path); pings never carry a zero nonce.
🍏 Apple Clang 21 / libc++ build fixes, plus faster block-pool pruning.
No new user-facing features this time — just a stronger, safer, more modern foundation for everything that comes next.
🔗
github.com/k-nuth/kth/releas…
#BitcoinCash #BCH #Knuth #Cpp23