# mithril-go Pure-Go client for the Cardano [Mithril](https://mithril.network) protocol. Mithril is Cardano's stake-based certified-snapshot system — it lets a new node bootstrap the chain from a cryptographically-verified snapshot instead of replaying every block from genesis. The official [`mithril-client`](https://github.com/input-output-hk/mithril) is Rust. This project is a pure-Go reimplementation that produces a single static binary with no runtime dependencies — useful for: - Embedding a Mithril bootstrap into Go-based Cardano tooling (alongside `gouroboros`, `dingo`, and friends) - Running on constrained ARM/embedded targets where shipping the Rust binary + its deps is overkill - Operators who prefer a single `go install`-able helper ## Status **Early development — not usable yet.** Current state: - [x] Module scaffold, network configs, aggregator REST client - [x] `list` command hits the aggregator and enumerates cardano-database snapshots - [ ] `download` — range-chunk parallel HTTP, SHA-256 integrity, resume - [ ] `extract` — streamed zstd + tar decompression - [ ] Genesis Ed25519 verification (per-network bootstrap key) - [ ] STM BLS12-381 aggregate-signature verification (the hard part) - [ ] Incremental / ancillary artifact support ## Usage (eventual) ``` mithril-go info -network mainnet mithril-go list -network mainnet mithril-go download -network mainnet -out ./db latest mithril-go verify -network mainnet ./db ``` ## License TBD