├── .assets └── novi.png ├── .github └── workflows │ └── rust.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Cargo.toml ├── LICENSE ├── LICENSE-docs ├── README.md ├── bft-driver ├── Cargo.toml └── src │ ├── config.rs │ ├── consensus.rs │ ├── context.rs │ ├── core.rs │ ├── lib.rs │ ├── tests │ └── timer_tests.rs │ └── timer.rs ├── bft-lib ├── Cargo.toml └── src │ ├── base_types.rs │ ├── configuration.rs │ ├── data_writer.rs │ ├── interfaces.rs │ ├── lib.rs │ ├── simulated_context.rs │ ├── simulator.rs │ ├── smr_context.rs │ ├── unit_tests │ ├── base_type_tests.rs │ ├── configuration_tests.rs │ ├── simulated_context_tests.rs │ └── simulator_tests.rs │ └── visualization │ └── round_switch │ └── round_plotter.py ├── crypto ├── Cargo.toml └── src │ ├── lib.rs │ └── tests │ └── crypto_tests.rs ├── librabft-v2 ├── Cargo.toml ├── src │ ├── data_sync.rs │ ├── lib.rs │ ├── main.rs │ ├── node.rs │ ├── pacemaker.rs │ ├── record.rs │ ├── record_store.rs │ ├── unit_tests │ │ ├── data_sync_tests.rs │ │ ├── node_tests.rs │ │ ├── pacemaker_tests.rs │ │ ├── record_store_tests.rs │ │ ├── record_tests.rs │ │ └── util_tests.rs │ └── util.rs └── tests │ └── simulated_run.rs ├── mempool ├── Cargo.toml └── src │ ├── batch_maker.rs │ ├── config.rs │ ├── lib.rs │ ├── mempool.rs │ ├── processor.rs │ └── tests │ ├── batch_maker_tests.rs │ ├── common.rs │ └── processor_tests.rs ├── network ├── Cargo.toml └── src │ ├── error.rs │ ├── lib.rs │ ├── receiver.rs │ ├── reliable_sender.rs │ ├── simple_sender.rs │ └── tests │ ├── common.rs │ ├── receiver_tests.rs │ ├── reliable_sender_tests.rs │ └── simple_sender_tests.rs ├── node ├── Cargo.toml └── src │ ├── client.rs │ ├── config.rs │ ├── main.rs │ └── node.rs ├── rust-toolchain ├── rustfmt.toml └── store ├── Cargo.toml └── src ├── lib.rs └── tests └── store_tests.rs /.assets/novi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/.assets/novi.png -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/.gitignore -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/LICENSE -------------------------------------------------------------------------------- /LICENSE-docs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/LICENSE-docs -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/README.md -------------------------------------------------------------------------------- /bft-driver/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/Cargo.toml -------------------------------------------------------------------------------- /bft-driver/src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/src/config.rs -------------------------------------------------------------------------------- /bft-driver/src/consensus.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/src/consensus.rs -------------------------------------------------------------------------------- /bft-driver/src/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/src/context.rs -------------------------------------------------------------------------------- /bft-driver/src/core.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/src/core.rs -------------------------------------------------------------------------------- /bft-driver/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/src/lib.rs -------------------------------------------------------------------------------- /bft-driver/src/tests/timer_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/src/tests/timer_tests.rs -------------------------------------------------------------------------------- /bft-driver/src/timer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-driver/src/timer.rs -------------------------------------------------------------------------------- /bft-lib/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/Cargo.toml -------------------------------------------------------------------------------- /bft-lib/src/base_types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/base_types.rs -------------------------------------------------------------------------------- /bft-lib/src/configuration.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/configuration.rs -------------------------------------------------------------------------------- /bft-lib/src/data_writer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/data_writer.rs -------------------------------------------------------------------------------- /bft-lib/src/interfaces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/interfaces.rs -------------------------------------------------------------------------------- /bft-lib/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/lib.rs -------------------------------------------------------------------------------- /bft-lib/src/simulated_context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/simulated_context.rs -------------------------------------------------------------------------------- /bft-lib/src/simulator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/simulator.rs -------------------------------------------------------------------------------- /bft-lib/src/smr_context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/smr_context.rs -------------------------------------------------------------------------------- /bft-lib/src/unit_tests/base_type_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/unit_tests/base_type_tests.rs -------------------------------------------------------------------------------- /bft-lib/src/unit_tests/configuration_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/unit_tests/configuration_tests.rs -------------------------------------------------------------------------------- /bft-lib/src/unit_tests/simulated_context_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/unit_tests/simulated_context_tests.rs -------------------------------------------------------------------------------- /bft-lib/src/unit_tests/simulator_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/unit_tests/simulator_tests.rs -------------------------------------------------------------------------------- /bft-lib/src/visualization/round_switch/round_plotter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/bft-lib/src/visualization/round_switch/round_plotter.py -------------------------------------------------------------------------------- /crypto/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/crypto/Cargo.toml -------------------------------------------------------------------------------- /crypto/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/crypto/src/lib.rs -------------------------------------------------------------------------------- /crypto/src/tests/crypto_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/crypto/src/tests/crypto_tests.rs -------------------------------------------------------------------------------- /librabft-v2/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/Cargo.toml -------------------------------------------------------------------------------- /librabft-v2/src/data_sync.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/data_sync.rs -------------------------------------------------------------------------------- /librabft-v2/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/lib.rs -------------------------------------------------------------------------------- /librabft-v2/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/main.rs -------------------------------------------------------------------------------- /librabft-v2/src/node.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/node.rs -------------------------------------------------------------------------------- /librabft-v2/src/pacemaker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/pacemaker.rs -------------------------------------------------------------------------------- /librabft-v2/src/record.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/record.rs -------------------------------------------------------------------------------- /librabft-v2/src/record_store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/record_store.rs -------------------------------------------------------------------------------- /librabft-v2/src/unit_tests/data_sync_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/unit_tests/data_sync_tests.rs -------------------------------------------------------------------------------- /librabft-v2/src/unit_tests/node_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/unit_tests/node_tests.rs -------------------------------------------------------------------------------- /librabft-v2/src/unit_tests/pacemaker_tests.rs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Facebook, Inc. and its affiliates. 2 | // SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /librabft-v2/src/unit_tests/record_store_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/unit_tests/record_store_tests.rs -------------------------------------------------------------------------------- /librabft-v2/src/unit_tests/record_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/unit_tests/record_tests.rs -------------------------------------------------------------------------------- /librabft-v2/src/unit_tests/util_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/unit_tests/util_tests.rs -------------------------------------------------------------------------------- /librabft-v2/src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/src/util.rs -------------------------------------------------------------------------------- /librabft-v2/tests/simulated_run.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/librabft-v2/tests/simulated_run.rs -------------------------------------------------------------------------------- /mempool/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/Cargo.toml -------------------------------------------------------------------------------- /mempool/src/batch_maker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/batch_maker.rs -------------------------------------------------------------------------------- /mempool/src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/config.rs -------------------------------------------------------------------------------- /mempool/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/lib.rs -------------------------------------------------------------------------------- /mempool/src/mempool.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/mempool.rs -------------------------------------------------------------------------------- /mempool/src/processor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/processor.rs -------------------------------------------------------------------------------- /mempool/src/tests/batch_maker_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/tests/batch_maker_tests.rs -------------------------------------------------------------------------------- /mempool/src/tests/common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/tests/common.rs -------------------------------------------------------------------------------- /mempool/src/tests/processor_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/mempool/src/tests/processor_tests.rs -------------------------------------------------------------------------------- /network/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/Cargo.toml -------------------------------------------------------------------------------- /network/src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/error.rs -------------------------------------------------------------------------------- /network/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/lib.rs -------------------------------------------------------------------------------- /network/src/receiver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/receiver.rs -------------------------------------------------------------------------------- /network/src/reliable_sender.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/reliable_sender.rs -------------------------------------------------------------------------------- /network/src/simple_sender.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/simple_sender.rs -------------------------------------------------------------------------------- /network/src/tests/common.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/tests/common.rs -------------------------------------------------------------------------------- /network/src/tests/receiver_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/tests/receiver_tests.rs -------------------------------------------------------------------------------- /network/src/tests/reliable_sender_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/tests/reliable_sender_tests.rs -------------------------------------------------------------------------------- /network/src/tests/simple_sender_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/network/src/tests/simple_sender_tests.rs -------------------------------------------------------------------------------- /node/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/node/Cargo.toml -------------------------------------------------------------------------------- /node/src/client.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/node/src/client.rs -------------------------------------------------------------------------------- /node/src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/node/src/config.rs -------------------------------------------------------------------------------- /node/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/node/src/main.rs -------------------------------------------------------------------------------- /node/src/node.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/node/src/node.rs -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | 1.51.0 2 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /store/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/store/Cargo.toml -------------------------------------------------------------------------------- /store/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/store/src/lib.rs -------------------------------------------------------------------------------- /store/src/tests/store_tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/novifinancial/librabft_simulator/HEAD/store/src/tests/store_tests.rs --------------------------------------------------------------------------------