

GitHub - MystenLabs/narwhal: Narwhal & Tusk are a high throughput mempool &a...
source link: https://github.com/MystenLabs/narwhal
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Narwhal and Tusk
This repo provides an implementation of Narwhal and Tusk, a DAG-based mempool and efficient BFT consensus. The codebase has been designed to be small, efficient, and easy to benchmark and modify.
This repo uses 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. To deploy and benchmark a testbed of four nodes on your local machine, clone the repo and install the python dependencies:
$ git clone https://github.com/mystenlabs/narwhal.git
$ cd narwhal/benchmark
$ pip install -r requirements.txt
You also need to install Clang (required by RocksDB) and tmux (which runs all nodes and clients in the background). Finally, run a local benchmark using Fabric:
$ fab local
This command may take a long time the first time you run it (compiling rust code in release
mode may be slow), and you can customize a number of benchmark parameters in fabfile.py. When the benchmark terminates, it displays a summary of the execution similarly to the one below.
-----------------------------------------
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
Execution time: 19 s
Header size: 1,000 B
Max header delay: 100 ms
GC depth: 50 round(s)
Sync retry delay: 10,000 ms
Sync retry nodes: 3 node(s)
batch size: 500,000 B
Max batch delay: 100 ms
+ RESULTS:
Consensus TPS: 46,478 tx/s
Consensus BPS: 23,796,531 B/s
Consensus latency: 464 ms
End-to-end TPS: 46,149 tx/s
End-to-end BPS: 23,628,541 B/s
End-to-end latency: 557 ms
-----------------------------------------
Next Steps
The next step is to read the paper Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus. It is then recommended to have a look at the README files of the worker and primary crates. An additional resource to better understand the Tusk consensus protocol is the paper All You Need is DAG as it describes a similar protocol.
The README file of the benchmark folder 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) across multiple data centers (WAN).
License
This software is licensed as Apache 2.0.
Recommend
-
4
-
20
use io thread for reads only if mempool exhausted · torvalds/linux@20c8253 · GitHubPermalink
-
14
x86-64+AVX2 assembly language (Linux, cpp+gas) Build and usage instructions This program is most conveniently built using gcc. Save it as fizzbuzz.S (that's a capital
-
7
High-Throughput, Formal-Methods-Assisted Fuzzing for LLVM [This piece is coauthored by Yuyou Fan and John Regehr] Mutation-based fuzzing i...
-
6
AdvertisementPaleontology13,000-Year-Old Tusk Reveals Life of 'Fred,' a Mastodon Who Died in Battle...
-
8
Please wait... We are checking your browser... blog.cloudflare.com What can I do to prevent this i...
-
8
Sui README Welcome to Sui, a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the
-
10
ABSTRACT We propose separating the task of reliable transaction dissemination from transaction ordering, to enable high-performance Byzantine fault-tolerant quorum-based consensus. We design and...
-
8
塔斯克TUSK获得数亿元3轮融资2022-09-05 15:08:13 来源:零一创投 作者: 行业领先的无人叉车机器人公司——塔斯克TUSK,已连续获得三轮融资,分别由亦联创投、真格基金、零一创投投资,其中零一创投为其天使...
-
5
30,000-Year-Old Tusk Reveals Male Mammoths’ Horny Aggression
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK