narwhal
Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus.
File Explorer
Download Latest Version (.zip)- diagram-primary.svg
- diagram-worker.svg
- diagram.drawio
- rust.yml
- __init__
- aggregate.py
- commands.py
- config.py
- instance.py
- local.py
- logs.py
- plot.py
- remote.py
- settings.py
- utils.py
- bench-0-10-1-True-10000-512.txt
- bench-0-10-1-True-100000-512.txt
- bench-0-10-1-True-110000-512.txt
- bench-0-10-1-True-120000-512.txt
- bench-0-10-1-True-130000-512.txt
- bench-0-10-1-True-140000-512.txt
- bench-0-10-1-True-150000-512.txt
- bench-0-10-1-True-160000-512.txt
- bench-0-10-1-True-170000-512.txt
- bench-0-20-1-True-10000-512.txt
- bench-0-20-1-True-140000-512.txt
- bench-0-20-1-True-150000-512.txt
- bench-0-20-1-True-170000-512.txt
- bench-0-20-1-True-180000-512.txt
- bench-0-20-1-True-200000-512.txt
- bench-0-4-1-False-10000-512.txt
- bench-0-4-1-False-40000-512.txt
- bench-0-4-1-False-50000-512.txt
- bench-0-4-1-False-60000-512.txt
- bench-0-4-1-False-65000-512.txt
- bench-0-4-10-False-10000-512.txt
- bench-0-4-10-False-450000-512.txt
- bench-0-4-10-False-500000-512.txt
- bench-0-4-10-False-540000-512.txt
- bench-0-4-10-False-550000-512.txt
- bench-0-4-10-False-600000-512.txt
- bench-0-4-10-False-650000-512.txt
- bench-0-4-10-False-660000-512.txt
- bench-0-4-10-False-670000-512.txt
- bench-0-4-4-False-10000-512.txt
- bench-0-4-4-False-100000-512.txt
- bench-0-4-4-False-150000-512.txt
- bench-0-4-4-False-200000-512.txt
- bench-0-4-4-False-220000-512.txt
- bench-0-4-4-False-230000-512.txt
- bench-0-4-4-False-240000-512.txt
- bench-0-4-4-False-250000-512.txt
- bench-0-4-4-False-260000-512.txt
- bench-0-4-4-False-270000-512.txt
- bench-0-4-7-False-10000-512.txt
- bench-0-4-7-False-300000-512.txt
- bench-0-4-7-False-350000-512.txt
- bench-0-4-7-False-390000-512.txt
- bench-0-4-7-False-400000-512.txt
- bench-0-4-7-False-420000-512.txt
- bench-0-4-7-False-430000-512.txt
- bench-0-4-7-False-440000-512.txt
- bench-0-50-1-True-100000-512.txt
- bench-0-50-1-True-150000-512.txt
- bench-0-50-1-True-180000-512.txt
- bench-0-50-1-True-190000-512.txt
- bench-0-50-1-True-200000-512.txt
- bench-0-50-1-True-30000-512.txt
- bench-0-50-1-True-50000-512.txt
- bench-0-50-1-True-70000-512.txt
- bench-1-10-1-True-10000-512.txt
- bench-1-10-1-True-100000-512.txt
- bench-1-10-1-True-120000-512.txt
- bench-1-10-1-True-130000-512.txt
- bench-1-10-1-True-140000-512.txt
- bench-1-10-1-True-150000-512.txt
- bench-1-10-1-True-50000-512.txt
- bench-3-10-1-True-10000-512.txt
- bench-3-10-1-True-100000-512.txt
- bench-3-10-1-True-110000-512.txt
- bench-3-10-1-True-120000-512.txt
- bench-3-10-1-True-50000-512.txt
- README.md
- bench-0-10-1000-512.txt
- bench-0-10-500-512.txt
- bench-0-10-750-512.txt
- bench-0-10-800-512.txt
- bench-0-10-900-512.txt
- bench-0-20-1000-512.txt
- bench-0-20-1250-512.txt
- bench-0-20-1500-512.txt
- bench-0-20-1750-512.txt
- bench-0-20-2000-512.txt
- bench-0-20-500-512.txt
- bench-0-20-750-512.txt
- bench-1-10-1000-512.txt
- bench-1-10-500-512.txt
- bench-1-10-600-512.txt
- bench-1-10-800-512.txt
- bench-3-10-1000-512.txt
- bench-3-10-500-512.txt
- bench-3-10-600-512.txt
- bench-0-10-50000-512.txt
- bench-0-10-60000-512.txt
- bench-0-10-70000-512.txt
- bench-0-10-80000-512.txt
- bench-0-10-85000-512.txt
- bench-0-20-40000-512.txt
- bench-0-20-50000-512.txt
- bench-0-20-60000-512.txt
- bench-0-20-70000-512.txt
- bench-0-20-80000-512.txt
- bench-0-50-20000-512.txt
- bench-0-50-30000-512.txt
- bench-0-50-40000-512.txt
- bench-0-50-50000-512.txt
- bench-1-10-10000-512.txt
- bench-1-10-20000-512.txt
- bench-1-10-30000-512.txt
- bench-1-10-40000-512.txt
- bench-1-10-50000-512.txt
- bench-3-10-10000-512.txt
- bench-3-10-20000-512.txt
- bench-3-10-30000-512.txt
- bench-3-10-5000-512.txt
- bench-0-10-1-True-100000-512.txt
- bench-0-10-1-True-110000-512.txt
- bench-0-10-1-True-120000-512.txt
- bench-0-10-1-True-130000-512.txt
- bench-0-10-1-True-140000-512.txt
- bench-0-10-1-True-150000-512.txt
- bench-0-10-1-True-50000-512.txt
- bench-0-20-1-True-100000-512.txt
- bench-0-20-1-True-110000-512.txt
- bench-0-20-1-True-130000-512.txt
- bench-0-20-1-True-140000-512.txt
- bench-0-20-1-True-150000-512.txt
- bench-0-20-1-True-160000-512.txt
- bench-0-20-1-True-50000-512.txt
- bench-0-4-1-False-10000-512.txt
- bench-0-4-1-False-40000-512.txt
- bench-0-4-1-False-50000-512.txt
- bench-0-4-1-False-60000-512.txt
- bench-0-4-1-False-70000-512.txt
- bench-0-4-10-False-10000-512.txt
- bench-0-4-10-False-500000-512.txt
- bench-0-4-10-False-550000-512.txt
- bench-0-4-10-False-580000-512.txt
- bench-0-4-10-False-600000-512.txt
- bench-0-4-10-False-610000-512.txt
- bench-0-4-10-False-650000-512.txt
- bench-0-4-4-False-10000-512.txt
- bench-0-4-4-False-180000-512.txt
- bench-0-4-4-False-190000-512.txt
- bench-0-4-4-False-200000-512.txt
- bench-0-4-4-False-230000-512.txt
- bench-0-4-4-False-240000-512.txt
- bench-0-4-4-False-250000-512.txt
- bench-0-4-4-False-260000-512.txt
- bench-0-4-4-False-270000-512.txt
- bench-0-4-4-False-50000-512.txt
- bench-0-4-7-False-10000-512.txt
- bench-0-4-7-False-350000-512.txt
- bench-0-4-7-False-400000-512.txt
- bench-0-4-7-False-410000-512.txt
- bench-0-4-7-False-420000-512.txt
- bench-0-4-7-False-430000-512.txt
- bench-0-4-7-False-440000-512.txt
- bench-0-4-7-False-450000-512.txt
- bench-0-4-7-False-500000-512.txt
- bench-0-50-1-True-100000-512.txt
- bench-0-50-1-True-130000-512.txt
- bench-0-50-1-True-140000-512.txt
- bench-0-50-1-True-150000-512.txt
- bench-0-50-1-True-160000-512.txt
- bench-0-50-1-True-50000-512.txt
- bench-1-10-1-True-100000-512.txt
- bench-1-10-1-True-110000-512.txt
- bench-1-10-1-True-120000-512.txt
- bench-1-10-1-True-130000-512.txt
- bench-1-10-1-True-140000-512.txt
- bench-1-10-1-True-150000-512.txt
- bench-1-10-1-True-50000-512.txt
- bench-3-10-1-True-100000-512.txt
- bench-3-10-1-True-110000-512.txt
- bench-3-10-1-True-50000-512.txt
- latency-faults.pdf
- latency-faults.png
- latency-scaling.pdf
- latency-scaling.png
- latency.pdf
- latency.png
- tps-faults.pdf
- tps-faults.png
- tps-scaling.pdf
- tps-scaling.png
- tps.pdf
- tps.png
- bench-0-10-1-True-10000-512.txt
- bench-0-10-1-True-100000-512.txt
- bench-0-10-1-True-110000-512.txt
- bench-0-10-1-True-120000-512.txt
- bench-0-10-1-True-130000-512.txt
- bench-0-10-1-True-140000-512.txt
- bench-0-10-1-True-150000-512.txt
- bench-0-10-1-True-160000-512.txt
- bench-0-10-1-True-170000-512.txt
- bench-0-20-1-True-10000-512.txt
- bench-0-20-1-True-140000-512.txt
- bench-0-20-1-True-150000-512.txt
- bench-0-20-1-True-170000-512.txt
- bench-0-20-1-True-180000-512.txt
- bench-0-20-1-True-200000-512.txt
- bench-0-4-1-False-10000-512.txt
- bench-0-4-1-False-40000-512.txt
- bench-0-4-1-False-50000-512.txt
- bench-0-4-1-False-60000-512.txt
- bench-0-4-1-False-65000-512.txt
- bench-0-4-10-False-10000-512.txt
- bench-0-4-10-False-450000-512.txt
- bench-0-4-10-False-500000-512.txt
- bench-0-4-10-False-540000-512.txt
- bench-0-4-10-False-550000-512.txt
- bench-0-4-10-False-600000-512.txt
- bench-0-4-10-False-650000-512.txt
- bench-0-4-10-False-660000-512.txt
- bench-0-4-10-False-670000-512.txt
- bench-0-4-4-False-10000-512.txt
- bench-0-4-4-False-100000-512.txt
- bench-0-4-4-False-150000-512.txt
- bench-0-4-4-False-200000-512.txt
- bench-0-4-4-False-220000-512.txt
- bench-0-4-4-False-230000-512.txt
- bench-0-4-4-False-240000-512.txt
- bench-0-4-4-False-250000-512.txt
- bench-0-4-4-False-260000-512.txt
- bench-0-4-4-False-270000-512.txt
- bench-0-4-7-False-10000-512.txt
- bench-0-4-7-False-300000-512.txt
- bench-0-4-7-False-350000-512.txt
- bench-0-4-7-False-390000-512.txt
- bench-0-4-7-False-400000-512.txt
- bench-0-4-7-False-420000-512.txt
- bench-0-4-7-False-430000-512.txt
- bench-0-4-7-False-440000-512.txt
- bench-0-50-1-True-100000-512.txt
- bench-0-50-1-True-150000-512.txt
- bench-0-50-1-True-180000-512.txt
- bench-0-50-1-True-190000-512.txt
- bench-0-50-1-True-200000-512.txt
- bench-0-50-1-True-30000-512.txt
- bench-0-50-1-True-50000-512.txt
- bench-0-50-1-True-70000-512.txt
- bench-1-10-1-True-10000-512.txt
- bench-1-10-1-True-100000-512.txt
- bench-1-10-1-True-120000-512.txt
- bench-1-10-1-True-130000-512.txt
- bench-1-10-1-True-140000-512.txt
- bench-1-10-1-True-150000-512.txt
- bench-1-10-1-True-50000-512.txt
- bench-3-10-1-True-10000-512.txt
- bench-3-10-1-True-100000-512.txt
- bench-3-10-1-True-110000-512.txt
- bench-3-10-1-True-120000-512.txt
- bench-3-10-1-True-50000-512.txt
- latency-faults.pdf
- latency-faults.png
- latency-scaling.png
- latency.png
- tps-scaling.png
- tps.png
- committee-latency-faults.pdf
- committee-latency-faults.png
- committee-latency.pdf
- committee-latency.png
- plot-script.py
- README.md
- scalability-latency.pdf
- scalability-latency.png
- scalability-tps.pdf
- scalability-tps.png
- summary-latency.pdf
- summary-latency.png
- summary-plot.py
- .gitignore
- fabfile.py
- README.md
- requirements.txt
- settings.json
- lib.rs
- Cargo.toml
- consensus_tests.rs
- lib.rs
- Cargo.toml
- crypto_tests.rs
- lib.rs
- Cargo.toml
- common.rs
- receiver_tests.rs
- reliable_sender_tests.rs
- simple_sender_tests.rs
- error.rs
- lib.rs
- receiver.rs
- reliable_sender.rs
- simple_sender.rs
- Cargo.toml
- benchmark_client.rs
- main.rs
- Cargo.toml
- common.rs
- core_tests.rs
- proposer_tests.rs
- aggregators.rs
- certificate_waiter.rs
- core.rs
- error.rs
- garbage_collector.rs
- header_waiter.rs
- helper.rs
- lib.rs
- messages.rs
- payload_receiver.rs
- primary.rs
- proposer.rs
- synchronizer.rs
- Cargo.toml
- README.md
- store_tests.rs
- lib.rs
- Cargo.toml
- batch_maker_tests.rs
- common.rs
- helper_tests.rs
- processor_tests.rs
- quorum_waiter_tests.rs
- synchronizer_tests.rs
- worker_tests.rs
- batch_maker.rs
- helper.rs
- lib.rs
- primary_connector.rs
- processor.rs
- quorum_waiter.rs
- synchronizer.rs
- worker.rs
- Cargo.toml
- README.md
- .gitignore
- Cargo.toml
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- LICENSE
- README.md
# Installation Guide
1. Get the code
git clone https://github.com/facebookresearch/narwhal
Downloads the entire project code from GitHub to your computer.
cd narwhal
Moves into the project folder you just downloaded.
2. Python
Easy RecommendedPrerequisites
$ pip install -r requirements.txt
Installs the Python libraries listed in requirements.txt (or similar).
If it runs without errors and prints output in the terminal, it worked.
Pulled directly from this repo's README.
3. Rust
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- Rust (rustup) Installing via rustup also installs cargo.
cargo build --release
Compiles the Rust project.
cargo run
Builds and then immediately runs the program.
If cargo build finishes without errors, it worked. The executable is created under target/.
// repository documentation
Was this content helpful?
(0 ratings)
