/librabft_simulator

Reference implementation of the LibraBFTv2 protocol in a discrete-event simulated environment.

Primary LanguageRustApache License 2.0Apache-2.0

Novi Logo

License

The LibraBFT simulator

In relation to the version 2 of the LibraBFT report, we are providing a minimal, reference implementation of the protocol LibraBFTv2 in a discrete-event simulated environment.

Usage:

RUST_LOG=warn cargo run --bin librabft_simulator

This simulator is provided for research-purpose only and is not meant to be used in production. It will continue to evolve along with the LibraBFT whitepaper.

Example output:

    Finished dev [unoptimized + debuginfo] target(s) in 0.17s
     Running target/debug/librabft_simulator
[2019-09-26T16:21:49Z WARN  librabft_simulator::record_store] Creating new record store for epoch: EpochId(0), initial_hash: QuorumCertificateHash(0), initial_state: State(13646096770106105413), configuration: EpochConfiguration { voting_rights: {Author(0): 1, Author(1): 1, Author(2): 1}, total_votes: 3 }
[2019-09-26T16:21:49Z WARN  librabft_simulator::record_store] Creating new record store for epoch: EpochId(0), initial_hash: QuorumCertificateHash(0), initial_state: State(13646096770106105413), configuration: EpochConfiguration { voting_rights: {Author(0): 1, Author(1): 1, Author(2): 1}, total_votes: 3 }
[2019-09-26T16:21:49Z WARN  librabft_simulator::record_store] Creating new record store for epoch: EpochId(0), initial_hash: QuorumCertificateHash(0), initial_state: State(13646096770106105413), configuration: EpochConfiguration { voting_rights: {Author(0): 1, Author(1): 1, Author(2): 1}, total_votes: 3 }
[2019-09-26T16:21:49Z WARN  librabft_simulator] Commands executed per node: [
    29,
    29,
    29,
]

Contributing

Read our Contributing guide.

Libra Community

Join us on the Libra Discourse

Get the latest updates to our project by signing up to our newsletter.

License

The content of this repository is licensed as Apache 2.0