Skip to content

Commit

Permalink
Update Narwhal docs and code owners (MystenLabs#4944)
Browse files Browse the repository at this point in the history
  • Loading branch information
mwtian authored Oct 3, 2022
1 parent c423d74 commit dfd0ac5
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 96 deletions.
11 changes: 11 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,14 @@ CHANGELOG.md

# When snapshot changes, most likely we will need to recreate the genesis blob.
/crates/sui-config/tests/snapshot_tests.rs @tharbert @huitseeker

# Notify Narwhal changes to interested folks.
/narwhal/crypto/ @huitseeker @kchalkias
/narwhal/executor/ @asonnino @akichidis
/narwhal/examples/ @arun-koshy
/narwhal/network/ @bmwill
/narwhal/config/tests/snapshots/ @huitseeker
/narwhal/dag/ @huitseeker
/narwhal/storage/ @akichidis
/narwhal/primary/src/block_synchronizer/ @akichidis
/narwhal/primary/src/block_waiter.rs @akichidis
10 changes: 0 additions & 10 deletions narwhal/.github/CODEOWNERS

This file was deleted.

13 changes: 0 additions & 13 deletions narwhal/.github/ISSUE_TEMPLATE/bug.md

This file was deleted.

9 changes: 0 additions & 9 deletions narwhal/.github/ISSUE_TEMPLATE/epic.md

This file was deleted.

14 changes: 0 additions & 14 deletions narwhal/.github/ISSUE_TEMPLATE/story.md

This file was deleted.

14 changes: 0 additions & 14 deletions narwhal/.github/ISSUE_TEMPLATE/task.md

This file was deleted.

14 changes: 0 additions & 14 deletions narwhal/.github/dependabot.yml

This file was deleted.

9 changes: 4 additions & 5 deletions narwhal/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
# Contributing to Narwhal and Tusk
We want to make contributing to this project as easy and transparent as
possible.
# Contributing to Narwhal / Bullshark / Tusk
We want to make contributions as easy and transparent as possible.

## Pull Requests
We actively welcome your pull requests.

1. Fork the repo and create your branch from `main`.
1. Fork the source repo and create your branch from `main`.
2. If you've added code that should be tested, add tests.
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes
Expand Down Expand Up @@ -50,5 +49,5 @@ We use GitHub issues to track public bugs. Please ensure your description is
clear and has sufficient instructions to be able to reproduce the issue.

## License
By contributing to Narwhal and Tusk, you agree that your contributions will be licensed
By contributing, you agree that your contributions will be licensed
under the LICENSE file in the root directory of this source tree.
25 changes: 8 additions & 17 deletions narwhal/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,15 @@
# Narwhal and Tusk
# Narwhal and Consensus

[![build status](https://img.shields.io/github/workflow/status/mystenlabs/narwhal/Rust/main?style=flat-square&logo=github)](https://github.com/mystenlabs/narwhal/actions)
[![rustc](https://img.shields.io/badge/rustc-1.62+-blue?style=flat-square&logo=rust)](https://www.rust-lang.org)
[![license](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](LICENSE)
[![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 directory provides an implementation of [Narwhal, Tusk](https://arxiv.org/pdf/2105.11827.pdf) and [partially synchronous Bullshark](https://arxiv.org/pdf/2209.05633.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 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.
This directory 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/).
To deploy and benchmark a testbed of four nodes on your local machine, clone the repo and install the python dependencies:
To deploy and benchmark a testbed of four nodes on your local machine, clone the Sui repo and install the python dependencies:
```
$ git clone https://github.com/mystenlabs/narwhal.git
$ cd narwhal/benchmark
$ git clone https://github.com/mystenlabs/sui.git
$ cd sui/narwhal/benchmark
$ pip install -r requirements.txt
```
You also need to install [Clang](https://clang.llvm.org/) (required by RocksDB) and [tmux](https://linuxize.com/post/getting-started-with-tmux/#installing-tmux) (which runs all nodes and clients in the background). Finally, run a local benchmark using [Fabric](http://www.fabfile.org/):
Expand Down Expand Up @@ -56,9 +50,6 @@ This command may take a long time the first time you run it (compiling rust code
```

## Next Steps
The next step is to read the paper [Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus](https://arxiv.org/pdf/2105.11827.pdf). It is then recommended to have a look at the README files of the [worker](https://github.com/mystenlabs/narwhal/tree/main/worker) and [primary](https://github.com/mystenlabs/narwhal/tree/main/primary) crates. An additional resource to better understand the Tusk consensus protocol is the paper [All You Need is DAG](https://arxiv.org/abs/2102.08325) as it describes a similar protocol.

The README file of the [benchmark folder](https://github.com/mystenlabs/narwhal/tree/main/benchmark) explains how to benchmark the codebase and read benchmarks' results. It also provides a step-by-step tutorial to run benchmarks on [Amazon Web Services (AWS)](https://aws.amazon.com) across multiple data centers (WAN).
The next step is to read the paper [Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus](https://arxiv.org/pdf/2105.11827.pdf) and [Bullshark: The Partially Synchronous Version](https://arxiv.org/pdf/2209.05633.pdf). It is then recommended to have a look at the README files of the [worker](worker) and [primary](primary) crates. An additional resource to better understand the Tusk consensus protocol is the paper [All You Need is DAG](https://arxiv.org/abs/2102.08325) as it describes a similar protocol.

## License
This software is licensed as [Apache 2.0](LICENSE).
The README file of the [benchmark folder](benchmark) explains how to benchmark the codebase and read benchmarks' results. It also provides a step-by-step tutorial to run benchmarks on [Amazon Web Services (AWS)](https://aws.amazon.com) across multiple data centers (WAN).

0 comments on commit dfd0ac5

Please sign in to comment.