宣布Narwhal和Tusk开源

Mysten Labs 正在开源我们的高吞吐量 mempool 和共识引擎 Narwhal & Tusk。

宣布Narwhal和Tusk开源

Mysten Labs 正在开源我们的高吞吐量 mempool 和共识引擎 Narwhal & Tusk。

Narwhal & Tusk (N/T)我们的智能合约平台的关键方面 Sui:

  • 使用共识协议为所有涉及共享对象的交易排序
  • 将处理自有对象的协议与该协议结合起来
  • 对交易进行排序,以保证Sui的安全属性

双重名称强调了该系统的职责分工:

  • 确保提交共识的数据的可用性(Narwhal)
  • 商定这些数据的具体排序(图斯克)

Narwhal & Tusk 是数十年来在多推进器、高吞吐量共识算法方面所做工作的最新变体,它在广域网上的吞吐量超过每秒 13 万笔交易,具有生产加密、永久存储和可扩展的主工作架构。

我们为什么要开放源代码?

我们希望通过分享 Narwhal & Tusk,能够将我们的学习成果向前推进,并帮助志同道合的团队加速发展。

我们与业界同行交流的经验表明,团队正在我们的高吞吐量 mempool 和共识中寻找一些相同的技术。通过开源共享代码,我们希望其他人能够帮助整个 web3 社区重用这些技术;事实上,我们期待 Narwhal & Tusk 中的概念和功能能够应用到其他可扩展性解决方案中。我们将把 Narwhal & Tusk 用作Sui.NET Framework 的一部分。

最后,开放源代码满足了我们回馈和与 Mysten Labs 之外的社区分享的愿望。我们相信,这将促使正在应对类似工程挑战的团队积极参与进来。

为开放源代码做准备

代码库设计得小巧、高效,并且易于基准测试和修改。我们仍在努力使该项目为生产做好准备,但它已经使用了真正的加密技术 (ed25519和其他签名方案)、网络(ed25519tokio)和存储(rocksdb).

核心协议是用 Rust 编写的,但所有基准测试脚本都是用 Python 编写的,并使用 织物.要在本地计算机上部署由四个节点组成的测试平台并进行基准测试,只需克隆软件仓库并安装 Python 依赖项即可:

$ git clone <https://github.com/mystenlabs/narwhal.git>
$ cd narwhal/benchmark
$ pip install -r requirements.txt

您还需要安装 Clang(RocksDB需要)和 tmux(在后台运行所有节点和客户端)。最后,使用 Fabric:

$ fab local

第一次运行该命令时可能会花很长时间(在 释放 模式可能会比较慢),您还可以在 fabfile.py.基准测试结束时,会显示与下图类似的执行摘要。

-----------------------------------------
 摘要
-----------------------------------------
 + CONFIG:
 故障:0 个节点
 委员会规模: 4 个节点
 每个节点 1 个工人1 个工人
 主节点和工人节点同地办公:真
 输入速率50,000 tx/s
 事务大小: 512 B
 执行时间:19 秒 标头大小:1,000 B
 最大报文头延迟100 毫秒
 GC 深度:50 轮
 同步重试延迟10,000 毫秒
 同步重试节点3 个节点
 批次大小:500,000 B
 最大批次延迟100 ms + 结果
 共识 TPS:46,478 tx/s
 共识 BPS:23,796,531 B/s
 共识延迟:464 毫秒 端到端 TPS:46,149 tx/s
 端到端 BPS:23,628,541 B/s
 端到端延迟:557 毫秒
-----------------------------------------

下一步工作

  1. 阅读 鸣鲸和獠牙 README.
  2. 阅读文章 Narwhal 和 Tusk:基于 DAG 的 Mempool 和高效 BFT 共识.
  3. 建议查看 主要的 README 文件。
  4. 要更好地理解 Tusk 共识协议,还可以参考以下论文 All You Need is DAG描述了一个类似的协议。
  5. 的 README 文件。 文件夹中的解释了如何对代码库进行基准测试和读取基准测试结果。它还提供了在以下平台上运行基准的分步教程 亚马逊网络服务(AWS)跨多个数据中心(广域网)运行基准的逐步教程。

阅读更多

Narwhal and Tusk(Danezis 等人,2021 年)是一个利用有向无环图(DAG)的共识系统。基于 DAG 的共识在过去 30 年中得到了发展,其中一些历史在(Wang & al.)Narwhal & Tusk 最接近的理论祖先是 (Keidar & al. 2021)。

Narwhal & Tusk 以 异步模式.Giridharan 2022)介绍了 Narwhal 和 Tusk 的部分同步变体,称为 Bullshark。

鸣鲸和獠牙 的研究原型的研究原型。

附录

  • Danezis, G., Kogias, E. K., Sonnino, A., & Spiegelman, A. (2021)。Narwhal and Tusk:基于 DAG 的 Mempool 和高效 BFT 共识。ArXiv:2105.11827 [Cs]. http://arxiv.org/abs/2105.11827
  • Giridharan, N., Kokoris-Kogias, L., Sonnino, A., & Spiegelman, A. (2022)。Bullshark:DAG BFT 协议实用化。ArXiv:2201.05677 [Cs]. http://arxiv.org/abs/2201.05677
  • Keidar, I., Kokoris-Kogias, E., Naor, O., & Spiegelman, A. (2021)。All You Need is DAG.ArXiv:2102.08325 [Cs]. http://arxiv.org/abs/2102.08325
  • Wang, Q., Yu, J., Chen, S., & Xiang, Y. (2020).SoK: Diving into DAG-based Blockchain Systems.ArXiv:2012.06128 [Cs]. http://arxiv.org/abs/2012.06128