- 原文链接:www.paradigm.xyz/2024...
- 译者:AI翻译官,校对:翻译小组
- 本文链接:learnblockchain.cn/article…
智能合约使开发者能够用少量代码在互联网上转移价值。这确实很强大,但开发者只能在他们的工具的速度和安全性下进行迭代。这促使我们在 2021 年构建了 Foundry,这是一个为智能合约开发者提供的一体化工具包。
今天,我们很高兴地宣布 Solar ☀️,以及我们对一个快速、模块化和对贡献者友好的 Solidity 智能合约语言实现的愿景,使用 Rust 编写;许可证为 Apache/MIT。Solar 是为智能合约的未来而构建的,在这个世界中,开发者寻求定制,并假设出色的性能、安全性和开发者体验。
Solar 目前只是一个编译器前端,它能够解析、词法分析并发出与 solc 兼容的 ABI,在与流行代码库 Solady 的基准测试中,其性能超过 solc 超过 41 倍。
我们正在寻找贡献者来帮助我们发布编译器中间端优化器、为生成旧版 EVM 和 EVM 对象格式 生成代码的后端,以及确保我们生成的字节码的关键正确性的工具。
我们在 2021 年构建了 Foundry,以使开发者能够以无与伦比的生产力编写符合习惯、安全的 Solidity 代码。
在底层,Foundry 利用先进的模拟基础设施提供广泛的测试覆盖、模糊测试、交互式调试、跟踪等。开发者对此非常喜欢,并开始将他们的整个代码库移植到 Solidity,这意味着新的问题浮现出来!
随着时间的推移,我们意识到测试不再是瓶颈。瓶颈是编译器:
在为上述问题创建了很长时间的变通方法后,我们决定是时候通过使用现代编译器技术来修复这些问题,而这些技术的灵感来自于 Rust 编译器。请见 Solar ☀️。
Solar 将使 EVM 开发者在日常工作中提高 10 倍的生产力,通过类似 clippy 的 lint 编写更安全的代码,并令人兴奋的是,能够编写默认情况下 gas 高效的智能合约,而无需降级到内联汇编进行基本优化。
Solar 不打算支持 0.8 之前的 Solidity 代码。它旨在与 Solidity 语言兼容,我们没有计划偏离。在开发 Solar 时,我们将专注于安全性和稳健性,并对其字节码的行为进行差异测试和验证,以确保正确性。我们认为这是最关键的领域之一。
今天,Solar 只是一个解析和词法分析 Solidity 的前端。我们对编译器前端的基准测试非常鼓舞人心,尽管仍处于早期和初步阶段:Solar 在 为 Solady 发出 ABI 时超越 Solc 41 倍。我们还提供了广泛的 基准测试套件,将 Solar 与 solang、slang 和 solc 进行比较,在所有词法分析和解析基准测试中我们都表现优于它们。
你可以将 Solar 作为解析库使用,如我们在 这里的示例 所示。我们打算在 Foundry 中使用它作为我们的第一个集成点。Solar 还可以作为与 solc 格式兼容的 CLI 使用:$ solar $(forge re) src/Contract.sol
我们构建 Solar 以便于扩展,以便我们可以尝试新的字节码格式、新的预编译和操作码,或其他面向未来的加密特性,如互操作性(例如,如果语言支持 async/await 或协处理器支持会怎样?)。我们希望听取人们希望在不稳定标志下看到的实验的意见。
在解析和词法分析之外,生成安全和高效的 EVM 字节码的漫长旅程还有很长的路要走。
我们今天发布 Solar,以收集社区对我们方法的反馈。Solar 遵循现代编译器架构,将前端与后端分离,并使用中间表示(IR)进行优化,以将代码生成与语言的前端分离。这使我们能够通过分离关注点来扩展开发。
我们的路线图可以在 Github 上找到,以及我们其余的代码和基准测试。前端大部分已完成,我们现在正朝着 IR 和代码生成层迈进。我们对现有的方法如 Venom 或 Sonatina 感到兴奋,并看到标准化和创建 EVM 语言共享中间层的好处。
如果你是一位优秀的编译器工程师,想要参与 Solar 的工作,请联系 georgios@paradigm.xyz 或 join@ithaca.xyz。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!