为何Rust语言在区块链中应用广泛? - Reddit

22-09-19 banq

区块链初创企业是新而多,他们需要发挥他们的优势,他们还会以安全作为核心功能向人们推销:区块链的全部意义在于它提供了其他数据结构所没有的保证。而Rust很适合这一点,特别是考虑到智能合约的失败是多么具有破坏性。

Rust 不太容易出错,这意味着代码不太可能不会按照您阅读它时的预期执行(只要它可以编译)。对于智能合约来说,这是一个非常理想的功能,您必须对代码有 110% 的把握,因为在交易后无法修复它。第一次运行时,它必须坚如磐石。

Rust有一些相当杀手级的加密库,尽管Rust非常年轻,但由于社区中不同成员的艰苦努力,一些库是一流的。

Rust 在其设计中强制实施了一些非常重要的安全措施(内存、数据竞争……)以及许多可以使用宏对其进行扩展的方式。交叉编译也很容易,其中一些项目使用的一个好处是编译到 WebAssembly 以构建非常广泛的合约。当然,像 C 这样的其他语言也可以做到这一点,但是 Rust 工具链可以很容易地让一个简单的项目快速运行并交叉编译它。
还有一些像 libp2p 这样的库已经实现了区块链所需的许多东西。

例如:最先进的区块链框架之一,称为 Substrate,是用 rust 编写的,使新开发人员可以很容易地创建自己的链。

区块链工作基本上是基础设施工作,这意味着它必须是:
  • 尽可能安全
  • 快速地
  • 高效记忆

最重要的是,市场由年轻公司领导,没有太多技术债务或现有团队可以利用,因此在这种情况下,Rust 更有意义。

一旦有几家公司在Rust上下注,其他公司不这样做也是白费力气,所以你会产生连带效应。这就像 "为什么没有人用Rust重写所有的数据科学库 "一样。

特点总结:
  • Rust 是一种理想的智能合约语言:它是类型安全的、内存安全的,并且没有未定义的行为。它生成小的二进制文件,因为它不包含额外的膨胀,如垃圾收集器,高级优化和树抖动删除死代码。通过编译器标志,Rust 可以自动防止整数溢出。
  • Rust 生态系统:您可以免费获得 Rust 生态系统的所有支持。随着语言的发展,将自动获得对新特性和功能的访问权限,从而改进您将来编写智能合约的方式。
  • 工具:遵循 Rust 标准,诸如 rustfmt、clippy 和 rust-analyzer 之类的工具已经开箱即用。大多数现代文本编辑器中的代码格式和语法突出显示也是如此。Rust 还有一个集成的测试和基准运行器,
  • 无开销:最少的运行时间。
  • 安全和高效:零成本和安全的抽象。
  • 生产力: Cargo + crates.io生态系统。
  • 一流的 Wasm: Rust 为 WebAssembly 提供一流的支持。
  • 小尺寸:在空间受限的区块链世界中,尺寸很重要。Rust 编译器对此有很大帮助,因为它重新排序结构字段以使每种类型尽可能小。因此,Rust 数据结构非常紧凑,在许多情况下甚至比 C 中的更紧凑。

1