Append-only blockchain in C++20 for versioning ML models and datasets. The chain stores cryptographic hashes and metadata of ML artifacts; large weights live off-chain in a content-addressable store. Target: a trusted 3–5 node cluster that synchronizes over a coroutine-based P2P protocol.
- Visual Studio 2022 with the "Desktop development with C++" workload
- CMake 3.28 or newer
- Git
Install a local, pinned vcpkg instance and pin the dependency baseline:
./scripts/bootstrap.ps1 -VcpkgRef 2025.06.13Omit -VcpkgRef to use the vcpkg default branch (not reproducible).
./scripts/build.ps1 -Config Release./scripts/test.ps1 -Config DebugEach library under libs/<module> is self-contained (include/, src/,
CMakeLists.txt) with a single responsibility and an explicit public API:
serialization— zero-copy binary (de)serialization overstd::spancrypto— SHA-256 hashing and theHashableconceptstorage— content-addressable store for off-chain artifactsledger— blocks, append-only Merkle tree, chain validationvalidator— streaming chain validation viastd::rangesregistry— MLflow-like model/version/lineage APIp2p— coroutine-based peer discovery and block synchronizationobservability— structured logging and metrics
See docs/architecture.md for the single-schema diagram and
docs/acceptance-criteria.md for non-functional requirements.