diff --git a/narwhal/README.md b/narwhal/README.md index 708b44f0d6ba9..f48011ea2c6f2 100644 --- a/narwhal/README.md +++ b/narwhal/README.md @@ -6,7 +6,9 @@ [![Narwhal Rust Crates Documentation (main)](https://img.shields.io/badge/docs-main-0f0)](https://mystenlabs.github.io/narwhal/) [![codecov](https://codecov.io/gh/MystenLabs/narwhal/branch/main/graph/badge.svg?token=C4bY6ovBlx)](https://codecov.io/gh/MystenLabs/narwhal) -This repo provides an implementation of [Narwhal and Tusk](https://arxiv.org/pdf/2105.11827.pdf), a [DAG](https://en.wikipedia.org/wiki/Directed_acyclic_graph)-based mempool and efficient [BFT](https://en.wikipedia.org/wiki/Byzantine_fault) consensus. The codebase has been designed to be small, efficient, and easy to benchmark and modify. We're still working on making the project ready for production, but already uses real cryptography ([ed25519-](https://doc.dalek.rs/ed25519_dalek) & other signing schemes), networking ([tokio](https://docs.rs/tokio)), and storage ([rocksdb](https://docs.rs/rocksdb)). +This repo provides an implementation of [Narwhal and Tusk](https://arxiv.org/pdf/2105.11827.pdf), a [DAG](https://en.wikipedia.org/wiki/Directed_acyclic_graph)-based mempool and efficient [BFT](https://en.wikipedia.org/wiki/Byzantine_fault) consensus. The codebase has been designed to be small, efficient, and easy to benchmark and modify. + +This repo uses [fastcrypto](https://github.com/MystenLabs/fastcrypto) as its cryptography library. ## Quick Start The core protocols are written in Rust, but all benchmarking scripts are written in Python and run with [Fabric](http://www.fabfile.org/). diff --git a/narwhal/config/Cargo.toml b/narwhal/config/Cargo.toml index 08ba8693d5e35..fc21225b1a56a 100644 --- a/narwhal/config/Cargo.toml +++ b/narwhal/config/Cargo.toml @@ -13,7 +13,7 @@ thiserror = "1.0.32" tracing = "0.1.36" arc-swap = { version = "1.5.1", features = ["serde"] } -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } workspace-hack = { version = "0.1", path = "../workspace-hack" } rand = "0.8.5" diff --git a/narwhal/consensus/Cargo.toml b/narwhal/consensus/Cargo.toml index a264b065dc521..ea508fe666caa 100644 --- a/narwhal/consensus/Cargo.toml +++ b/narwhal/consensus/Cargo.toml @@ -19,7 +19,7 @@ tokio = { version = "1.20.1", features = ["sync"] } tracing = "0.1.36" config = { path = "../config" } -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } dag = { path = "../dag" } prometheus = "0.13.1" types = { path = "../types" } @@ -29,7 +29,6 @@ cfg-if = "1.0.0" [dev-dependencies] bincode = "1.3.3" criterion = "0.3.6" -ed25519-dalek = { version = "1.0.1", features = ["batch", "serde"] } futures = "0.3.23" indexmap = { version = "1.9.1", features = ["serde"] } test_utils = { path = "../test_utils" } diff --git a/narwhal/dag/Cargo.toml b/narwhal/dag/Cargo.toml index 13f8a0334abe9..41f156ffc409f 100644 --- a/narwhal/dag/Cargo.toml +++ b/narwhal/dag/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" [dependencies] arc-swap = "1.5.1" -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } dashmap = "5.3.4" either = "1.7.0" itertools = "0.10.3" diff --git a/narwhal/executor/Cargo.toml b/narwhal/executor/Cargo.toml index 6faed7e48437f..a0b823cd7a87d 100644 --- a/narwhal/executor/Cargo.toml +++ b/narwhal/executor/Cargo.toml @@ -12,7 +12,7 @@ blake2 = "0.9" bytes = "1.2.1" config = { path = "../config" } consensus = { path = "../consensus" } -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } futures = "0.3.23" multiaddr = "0.14.0" primary = { path = "../primary" } diff --git a/narwhal/network/Cargo.toml b/narwhal/network/Cargo.toml index 6b862e1b5c952..e887e3bcfadc1 100644 --- a/narwhal/network/Cargo.toml +++ b/narwhal/network/Cargo.toml @@ -10,7 +10,7 @@ publish = false async-trait = "0.1.57" backoff = { version = "0.4.0", features = ["tokio"] } bytes = "1.2.1" -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } futures = "0.3.23" multiaddr = "0.14.0" prometheus = "0.13.1" diff --git a/narwhal/node/Cargo.toml b/narwhal/node/Cargo.toml index 291f4ac5f43cb..6af8ece85d3b6 100644 --- a/narwhal/node/Cargo.toml +++ b/narwhal/node/Cargo.toml @@ -31,7 +31,7 @@ axum = "0.5.15" config = { path = "../config" } consensus = { path = "../consensus" } -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } executor = { path = "../executor" } network = { path = "../network" } primary = { path = "../primary" } @@ -42,7 +42,6 @@ workspace-hack = { version = "0.1", path = "../workspace-hack" } eyre = "0.6.8" [dev-dependencies] -ed25519-dalek = "1.0.1" hex = "0.4.3" pretty_assertions = "1.2.1" serde-reflection = "0.3.6" diff --git a/narwhal/primary/Cargo.toml b/narwhal/primary/Cargo.toml index 3dbf65602f64e..0100c2f0e5b70 100644 --- a/narwhal/primary/Cargo.toml +++ b/narwhal/primary/Cargo.toml @@ -34,7 +34,7 @@ tracing = "0.1.36" tap = "1.0.1" consensus = { path = "../consensus" } -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } network = { path = "../network" } types = { path = "../types" } mysten-network = { git = "https://github.com/mystenlabs/mysten-infra.git", rev = "8d090689be14078f2ca41c356e7bbc0af21f73ab" } diff --git a/narwhal/types/Cargo.toml b/narwhal/types/Cargo.toml index 79e5e86267ec5..78d8a2427ac34 100644 --- a/narwhal/types/Cargo.toml +++ b/narwhal/types/Cargo.toml @@ -28,7 +28,7 @@ tokio-util = { version = "0.7.3", features = ["codec"] } tonic = { version = "0.7.2", features = ["tls"] } config = { path = "../config" } -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } dag = { path = "../dag" } workspace-hack = { version = "0.1", path = "../workspace-hack" } diff --git a/narwhal/worker/Cargo.toml b/narwhal/worker/Cargo.toml index 9f6d4ce9568c9..3bce214014a55 100644 --- a/narwhal/worker/Cargo.toml +++ b/narwhal/worker/Cargo.toml @@ -21,7 +21,7 @@ tower = "0.4.13" tracing = "0.1.36" config = { path = "../config" } -crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "ded6f91c9c19594a3eaeaa9a487d42a39965569e", package = "fastcrypto" } +crypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "a9e58305dc463c40b9d357730203406214909f04", package = "fastcrypto" } network = { path = "../network" } primary = { path = "../primary" } types = { path = "../types" }