Pure Go client for the Cardano Mithril certified-snapshot protocol
- module layout: cmd/mithril-go, internal/{aggregator,artifact,verify,networks}
- aggregator REST client, list command working against mainnet
- download/extract/verify stubbed
- no deps yet, pure stdlib
|
||
|---|---|---|
| cmd/mithril-go | ||
| internal | ||
| .gitignore | ||
| go.mod | ||
| README.md | ||
mithril-go
Pure-Go client for the Cardano Mithril 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
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:
- Module scaffold, network configs, aggregator REST client
listcommand hits the aggregator and enumerates cardano-database snapshotsdownload— range-chunk parallel HTTP, SHA-256 integrity, resumeextract— 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