fantoch
: framework for evaluating (planet-scale) consensus protocols
Protocols currently implemented
- EPaxos: (source)
- FPaxos, and thus Paxos as a special case: (source)
- implemented following Paxos Made Moderately Complex, which enables a certain degree of parallelism at the leader
- Caesar: (source)
- Atlas: (source)
- Newt: (source)
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 is assumed)
- running the protocols in a real setting
- (model checking is coming soon!)
- this is achieved by providing a "simulator" and a "runner" that are protocol-agnostic and are only aware of the
Protocol
(andExecutor
) trait
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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.