Skip to content

Commit

Permalink
Merge pull request #1 from facebookresearch/master
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
asonnino authored Jul 8, 2021
2 parents 83e1067 + 716f23d commit 9cbfa35
Show file tree
Hide file tree
Showing 29 changed files with 526 additions and 123 deletions.
3 changes: 3 additions & 0 deletions narwhal/.assets/diagram-primary.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions narwhal/.assets/diagram-worker.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion narwhal/.assets/diagram.drawio
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<mxfile host="app.diagrams.net" modified="2021-06-25T17:18:01.811Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" etag="01roJuyhYGTysBNxrfdh" version="14.8.1" type="device" pages="2"><diagram id="04SbDpS5iBzByXe31BT4" name="worker">7V3bcts2EP0azbQPzoh36jF24qTTpnXjtGkeYRESWVOEQlKx3K8vwIskApAEyySxtOWZRCIEgdQ5u9hd7BIcWVeL9YcULcNPJMDxyBwH65H1bmSahm269IW1PJYt3sQuG+ZpFFSdtg230X+4ahxXrasowFmjY05InEfLZuOUJAme5o02lKbkodltRuLmWZdojoWG2ymKxdavUZCHZavvjLftH3E0D+szG+PqkwWqO1cNWYgC8rDTZL0fWVcpIXn5brG+wjEDr8al/N71nk83F5biJFf5wn3yD/k1up7/nUbv//745/XFL7/eXBhjqxznB4pX1U8emW5MR7xcsovOHysk3O8rdqWXcZTgi7D6yW9pF8Oi53W2Hei7efUal6/XS74tNOqWryS9xykd5l2E5ila1D3uUsk426/tXOOhs5mNn2DmeF2cPV/EtMGgb7M8Jff4isQkpS0JSWjPy1kUx1xTtkTTKJnTBmd79IUsacMFxd26fAijHN/SdnaqB6oLtI38wOksLjgPoyDACW1LySoJMKOEfQvF0Zy2vovxbHvBu5RWLNOB6LXvNFUUf8BkgfP0kXapPnUraavVrRbUh63wmn7VFu4Irl21oUpf5puRtyJF31RS9QQJ801BwD7jOEJ3lBRzfIspGqlI+k85oZ+SPCxk46EQkuxngdAmmjIOdriW0Mpwjaiyv614uCN5Thb0gwBlYTGu0Q4tltnkxXElvNgSXjbzSfvE2AIxt9Fi+aposeGx4pxZmQBUFvdkWlaMlGUaLVD6OGBSfI4UfyySYphOn6TYvgAnDqj3Vh1WCDUR/ne1WFZepstMdJqHZE4SFP9GCmvO0PoX5/lj1QmtKIsNEiiE6eM/bLg3Tn34rRq9OHi3bhw9Vkelq1E7kSb7fB3l5UCmUx1+q09C32/HYQf1MHupzKikTfEhX6/sl6N0jvMD/axK1hmWByUjxTHKox9NT7l9lidnlrtg2QPFcu2nnllul2UbFsvGS2HZg8SyCYrk2rUQVxTuatfoEuXTkPb5hO5lntNOML/5yk8oy/CCRo0ZQ2TN/o+SwsO6Y4Phgw6vcdy3asFFcsZNF8mW+K2GKfFb3a48JMcctr6drjqm6gQJSnXEtRJBdf5ckXS1+IqoMKcyPZHEIQ+0M9OXGWGhCKL/vheDMHyYAqHpfbaJVAptAqBLPhcD+tp1ydKhS23qhKVqTmApxf4V6o3Q36RkirOMqNqSkAXHTOZREhSUkrQ4hGNKOPH3pNF2r+KvJdiWuGAnGpfT1cZWVBsDlNaIq7u//K5drG0uPWFJPCTZwl5n2QlPj4O0CSPUowgITpWnakBgrS14Wix3F1FnH0GnMsmwlhY8+0xyByTDWgv2jruCH3G8VF5TSPEyjsoVhc1KQvFjvq9wlgPwAyc+tCUF/xV643zuSz8LtmjSzlNbCc1EcWqzJqCmNvtsvzog2QYWlDlnkjsgeQyK5MlxC3n7mEzDlCSUMXVXpfRJ6MiLKMtYMSIgC2mAS324A04olyMFb1n98vZaact1xEAovqFW33M8xThWVDLDBKVk7oAzyRDphRXMu3qW5V4suwYsN6i+7kMm8jOeYnohquZxgaIkp/+KRGbCyjK/XN2MNveFRCRhGBcFslMa8ie5fpvJlwtsVrn15Xi0lNpByPHUCjKwJE992bCyPK4JLMvjeK9Wrs1hyrUJUa4daHJtiDeLiIIuuCIN52MHoab87yrIVvjfb1t5DXlCovGolO0A6kgArduUhbE6ww2hTsJob5GF5XNElepVfWvLlTCQOz4yUKl+wkAF6Zuf/Qx3WXeC09OWkjZcxQnOBzXBuVpWe9tZ0Nvh3ezLjKmyDKvwwBDvGgNgxnxoRTjugO/w6TPaV03aG7AyW955JbZdemGZMu+8EtsuvbBKbgyFmpuXv1Y3AbdW58Jb0+jNG/QH6Q26UCron+fzPy3W64FlWObQEAvkAPj8xhja2pWrpRRmuNqgWgwDSxtc90Ww3JtlU2UZlmWrLxvWnMdvI6R9yquv57xcf9JyPV8Lf/JyvTHWvF5va5kV2wuZGyJ5LH4+fTasOx6/S8UENR1upqpXHTLzJaH6Q2ZbS8gM4cbNWkGOahKsleP6smH5FYYNzK/wBiXXTzIerSqB6v4XFjBzorQBRrG/5FVpDpTvvMso2ps77ehrEM2rewyetnelntvw9G+KYYq7LPzx1xftQE34fW0lm+f0G/mIiXAIOBm8j6IfKDHbAgIoPmLSD5TsPuRzLC2ivC8E5opAXH6XXvVg2j8yUsfBdG2tgakMX2WzMV66NMaCaassaLbKgmmr+LtF9OME01TZ4HA6W6rnWCp+yzBnMnkz2fnzTzNbNr+/5OFhu7ZhYgIFgi7x0OtWpXpgYDCZJjScxAVoCDgZ4HASXcfz1PyEIMJrzpmO08VMbUyec5aOJ24Pyh2zvW7MolqZ1f5Gwnsyw1wM4brtSB5fNOWZOmXN31+JOyPFdYtP62MfXGSFHBXP6nOX6/1P6tvuoYeSoHi00QJnGZoXm7HNUsI2DG8sCR/af5y2lVfV+rP46ofmTancYtouPANpEQVBMcPKTFpTF1t/SlJTYAzZruVunybO379fX1dCUyagiyRCipIMFenp7CwrQqQKT1j2b13V4wzTfI7dWW6EOQac3ExkcsO7RXEcLbN9iO1QhLJl+SDfWbRmsIlc7PI1Mq1x8dcOtl4TWt+SQCtB1ugK2U2C6hC0T3qGYFMDduHbB6uAfwc4jx3dOMtqtnicQ7K4W2VDxdixNWMs3fZp+LLscMtk0rKEfoFWEebhAe2rbDLZL9AKC0gDBJr3TAEALauBGqSHIcwWkrxwz9iKieGBYitMEDLPuF9sVXZoGgS2ExfcnCAm6geKLbjpVlKvJ9q1YXnDtkLVds8gy9Zzhw0yn+HTD3IdwL8gkH1wkmy9vOCZdyV87UGdpM5x6CDzu6o4+iVZwRceGMgWPJAVnOKBgcxXtujHWMW5eEr9z36cj3nK18VfSw6Gf3xa9iVAW90BDWRXn73gdl18IVDi+G+c5iCqBRd8waFfb0jfU4WFISkwzMl9xO6Fy1F2LzD9/ARjjGf589KLbcxeSukYiVqZnamVpISxZmIaoiTB8ashw55oJ0N0PX/HOUvQv1QSJvA4EFfAb3OSIjq5vxIOTP2TkhgdXN389Vrwl0bA/eKvEji0k27jmJBw1QLC3EKOJ9khxZLdz26ccEM7PUwJK8raOkwUjvATCTDr8T8=</diagram><diagram id="u77JRGBOouUTT-4SinIf" name="primary">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</diagram></mxfile>
<mxfile host="app.diagrams.net" modified="2021-06-29T11:40:36.080Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" etag="OybOxsFT5Ujje8oWMdfj" version="14.8.2" type="device" pages="2"><diagram id="04SbDpS5iBzByXe31BT4" name="worker">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</diagram><diagram id="u77JRGBOouUTT-4SinIf" name="primary">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</diagram></mxfile>
11 changes: 9 additions & 2 deletions narwhal/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Narwhal and Tusk

[![build status](https://img.shields.io/github/workflow/status/facebookresearch/narwhal/Rust/master?style=flat-square&logo=github)](https://github.com/facebookresearch/narwhal/actions)
[![rustc](https://img.shields.io/badge/rustc-1.52+-blue?style=flat-square&logo=rust)](https://www.rust-lang.org)
[![rustc](https://img.shields.io/badge/rustc-1.51+-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)

This repo provides an implementation of [Narwhal and Tusk](https://arxiv.org/pdf/2105.11827.pdf). The codebase has been designed to be small, efficient, and easy to benchmark and modify. It has not been designed to run in production but uses real cryptography ([dalek](https://doc.dalek.rs/ed25519_dalek)), networking ([tokio](https://docs.rs/tokio)), and storage ([rocksdb](https://docs.rs/rocksdb)).
Expand All @@ -24,10 +24,12 @@ This command may take a long time the first time you run it (compiling rust code
SUMMARY:
-----------------------------------------
+ CONFIG:
Faults: 0 node(s)
Committee size: 4 node(s)
Worker(s) per node: 1 worker(s)
Collocate primary and workers: True
Input rate: 50,000 tx/s
Transaction size: 512 B
Faults: 0 node(s)
Execution time: 19 s
Header size: 1,000 B
Expand All @@ -49,5 +51,10 @@ 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/facebookresearch/narwhal/tree/master/worker) and [primary](https://github.com/facebookresearch/narwhal/tree/master/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/facebookresearch/narwhal/tree/master/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) accross multiple data centers (WAN).

## License
This software is licensed as [Apache 2.0](LICENSE).
1 change: 1 addition & 0 deletions narwhal/benchmark/.gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
node
benchmark_client
results
plots

# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down
Loading

0 comments on commit 9cbfa35

Please sign in to comment.