This repository provides reference implementations of several uncertified DAG-based consensus protocols. The codebase is designed to be small, modular, and easy to benchmark and modify. It is not intended for production use, but relies on real networking, cryptography, and a persistent storage. It also ships with a discrete-event simulator for exercising the protocols under custom network and failure scenarios.
This repository currently supports Mysticeti, Mahi-Mahi, Odontoceti, and Cordial Miners (both the partially synchronous and asynchronous variants).
To boot a local testbed of 4 replicas with a built-in load generator on your machine:
$ git clone https://github.com/asonnino/mysticeti.git
$ cd mysticeti
$ cargo run --release --bin replica -- local-testbed
The first build may take a few minutes. The testbed runs for 20 seconds, prints a per-replica
summary, and writes the run's configuration, Prometheus metrics, and tracing log to
local-testbed/. Pass --duration <SECS> to change the run length, or --perpetual to keep it
running until Ctrl-C (and print the summary on exit).
- Code architecture — how the system is put together, from threading and storage to where cryptography sits on the hot path.
- Simulator — driving the protocols through custom network, load, and failure scenarios with the discrete-event simulator.
- Geo-replicated testbeds — a walkthrough for spinning up and benchmarking a distributed deployment on the cloud.
This software is licensed as Apache 2.0.
