/fantoch

framework for evaluating (planet-scale) consensus protocols

Primary LanguageRustApache License 2.0Apache-2.0

Continuous integration dependency status codecov

fantoch: framework for evaluating (planet-scale) consensus protocols

Protocols implemented

What does it do?

  • all protocols implement the Protocol trait
  • this specification can then be used for
    • simulating the expected latency in a given geo-distributed scenario (infinite CPU and network bandwidth are assumed)
    • running the protocols in a real setting (e.g. baremetal, AWS, Azure)
  • this is achieved by providing a "simulator" and a "runner" that are protocol-agnostic and are only aware of the Protocol (and Executor) trait

fantoch is also capable of generating plots like the following one:

For more information, consult our paper Efficient Replication via Timestamp Stability (EuroSys'21).

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.