0.2.0 • Published 5 years ago

fbas_analyzer v0.2.0

Weekly downloads
-
License
ISC
Repository
github
Last release
5 years ago

FBAS analyzer

A library and tool for analyzing the quorum structure of federated byzantine agreement systems (FBASs) like Stellar. Related research paper: The Sum of Its Parts: Analysis of Federated Byzantine Agreement Systems.

Among other things, the implementation here can:

  • read node and quorum set data in stellarbeat format
  • find all minimal quorums (minimal here means that each existing quorum is a superset of one of the minimal quorums)
  • find all minimal blocking sets (minimal indispensable sets for liveness)
  • determine quorum intersection and find all minimal splitting sets (minimal indispensable sets for safety)
  • simulate different quorum set configuration policies, yielding synthetic FBASs for further analysis

This is an intermediate snapshot, expect heavy refactoring in the coming weeks and months. Neither the API nor the CLI should be considered stable in any way!

Compilation and usage

  1. Install Rust
  2. Run tests
cargo test
  1. Build
cargo build --release
  1. Try tool using older data from stellarbeat
target/release/fbas_analyzer test_data/stellarbeat_nodes_2019-09-17.json -m test_data/stellarbeat_organizations_2019-09-17.json -a -p
  1. Get some new data from stellarbeat (if their API didn't change too much...)
scripts/get_latest_stellarbeat_data.sh
  1. Play around some more
target/release/fbas_analyzer -h
target/release/qsc_sim -h

Acknowledgements