Rust 是一种系统编程语言,以其出色的性能、内存安全和并发性而闻名,在区块链和 Web3 中广泛应用,大多数编程语言和开发框架都以 Rust 为核心,如 Polkadot、Solana、NEAR、Elrond(现名 MultiversX)、Hyperledger Sawtooth 等众多优质区块链项目都使用 Rust 语言开发,或用 Rust 语言开发其上的智能合约。
Rust 为无数技术和工具的突破提供了底层开发支撑,是面向未来的区块链技术语言。在 Rust 的帮助下,开发者能够专注于构建核心业务逻辑,进一步推动 Web3 项目的开发与创新。近期以来,Rust 有哪些已实现的成功应用,为 Web3 工具和程序提供了怎样的底层开发编程支持?TinTinLand 带你一览 Rust 语言在以太坊与 Layer2 生态开发的最新进展。
通过以太坊,开发者可以创建具有区块链技术优势的 DApp。这些 DApp 是可信的,一旦部署到以太坊,它们将始终按照设定程序运行,并可以控制数字资产,以创建新类型的金融应用。这些 DApp 也是去中心化的,没有单一的实体或个人能控制它们,也就几乎不可能受到审查。利用 Rust 语言和相关工具,开发者在可以在以太坊上从头开始构建这些非常简单的 Web3 应用程序。如果你也想着手实现自己的想法,可以在这里学习如何使用并通过基于 Rust 的项目及工具参与以太坊的开发:https://ethereum.org/zh/developers/docs/programming-languages/rust/#beginner-articles
Reth(Rust Ethereum)是 Paradigm 开发的一款基于 Rust 语言的免费、开源的以太坊执行层客户端。这是一款专注于用户友好、模块化、快速和高效的新型以太坊全节点实现,与支持 Engine API 的所有以太坊共识客户端实现兼容。作为一个完整的以太坊节点,Reth 将允许用户从创世区同步完整的以太坊区块链,并在同步完成后与其交互(以及其历史状态,如果处于存档模式下)。
Paradigm 开发 Reth 旨在满足广泛的用户需求,包括权益验证者、爱好者、RPC 节点运营商、桥接器、MEV 搜索者,甚至是 Layer2 网络(如 Optimism/Arbitrum),或其他以太坊相关项目(如 Polygon、BSC、Avalanche、Fantom 等)。这些用户通常具有多样的需求(例如,爱好者和权益验证者希望在廉价硬件上运行节点,而 RPC 节点运营商可以使用昂贵的磁盘和云快照)。Reth 并非试图一次解决所有需求。相反,它致力于创建一个可配置的节点,允许用户根据他们的需求探索权衡空间。
Reth 仍在不断完善中,可能会经常进行更改。该代码尚未经过审计,不应在生产环境中使用。然而,为了保持透明度和与以太坊的价值观一致,Paradigm 将其进行开源并分享了他们的愿景。该代码在 Github 上以自由的 Apache/MIT 许可证免费提供,任何人都可以自由使用。Paradigm 鼓励社区进行分叉(fork),贡献文档、问题、拉取请求、提出问题,甚至尝试破解它。
选择使用 Rust 语言进行开发,是因为 Paradigm 希望 Reth 能提供一流的性能,为了实现这一目标,他们选择使用 Rust 作为编程语言和 Erigon 团队首创的分阶段同步节点架构。另一方面,Paradigm 也希望 Reth 从编写语言和编译器开始,就具有强大的稳定性基础,因此选择了具有稳定特性的 Rust 语言,以及维护良好的代码库。
在 Paradigm 看来,「Rust 是系统、数据库和网络工程的突破性工具。我们认为以太坊是一个高保证的操作系统,需要能够抵御最大的对手,没有比 Rust 更好的工具来实现这一目标了。」
感兴趣的开发者可以在这里了解更多详情https://github.com/paradigmxyz/reth
加密风险投资基金 a16z Crypto 推出了自己的 Layer2 OP Stack 解决方案,名为 Magi。作为其进军 Optimism Collective 的第一步,Magi 是用 Rust 语言编写的高速 Roll-up 客户端(共识层)。
在以太坊的执行层中,Magi 作为共识客户端向执行客户端提供新的区块,以推动区块链的发展。根据 a16z 的说法,「Magi 执行与参考实现(如 op-node)相同的核心功能,并与执行节点(如 op-geth)一起同步到任何 OP Stack 链,包括 Optimism 和 Base。」
Magi 被设计为独立开发的、可以直接替代 Op-node 的解决方案,并提高了 Rollup 客户端的多样性。此外,a16z 团队计划对 Magi 进行未来的改进,例如跟踪不安全头(未确认区块)、新的同步机制、备用数据可用性层支持和更好的框架等。
以太坊链上执行和共识方面都需要客户端多样性,然而到目前为止,大部分开发都集中在执行客户端上。现有的以太坊执行客户端都可以通过实施一组适度的更改与 Optimism 兼容,并且几个新项目已经在调整这些客户端以帮助实现客户端多样性,比如 OP Labs 修改 Geth 客户端以构建 op-geth,其他团体目前正在建设 op-erigon 和 op-reth。
不过,Rollup 客户端改造难度更高,因为 Rollup 客户端是一个全新的软件。到目前为止,只有一种实现:Op-node,是由 OP Labs 维护并用 Go 语言编写。Magi 的目标是成为一个独立开发的 Op-node 直接替代品,以提升 Rollup 的客户端多样性。a16z 希望构建一个基于 Rust 的新客户端将鼓励整个 OP 堆栈更加安全和活跃,并为生态系统带来更多贡献者。
感兴趣的开发者可以在这里了解更多详情https://github.com/a16z/magi
Helios 同样是 a16z Crypto 推出以太坊轻客户端,该客户端基于 Rust 语言进行编写,提供对以太坊的完全去信任访问,而且能在在大约两秒钟内同步,无需存储,并且允许用户从任何设备(包括手机和浏览器扩展)访问安全链数据,功能与全节点相同。
Helios 使用了以太坊切换至 PoS 后促成的轻客户端协议,能将数据从不受信任的中心化 RPC 提供程序转换为安全可验证的本地 RPC 中,Helios 还能结合中心化 RPC,可以在不运行完整节点的情况下验证有关链上状态的各种信息,例如账户余额、合约存储、交易收据和智能合约调用结果等数据的真实性。与所有以太坊客户端一样,Helios 由执行层和共识层组成。但与多数其他客户端不同,Helios 将这两层紧密耦合,用户只需安装和运行单个软件即可。
难以兼顾便捷性与去中心化是一个常见痛点,通过轻量级的 Helios,用户可从任何设备(包括手机和浏览器插件)访问安全的链上数据。这将使更多人可以访问无需信任的以太坊数据,不论使用什么硬件。用户可以在 MetaMask 中将 Helios 作为他们的 RPC 提供商,以实现无需信任地访问各种 DApp,整个过程无需任何其他更改。
其中,Rust 对 WebAssembly 的支持,使得应用开发人员可以轻松将 Helios 嵌入 Javascript 应用程序(如钱包和 DApp)中。这些集成将提升以太坊的安全性,减少对中心化基础设施的信任需求。
感兴趣的开发者可以在这里了解更多详情https://github.com/a16z/helios