Lita发布了 Valida Rust Alpha 编译器,该编译器基于 LLVM,旨在将 Rust 代码编译为 Valida zkVM 可执行的代码。目前支持部分 Rust 语法和标准库,以及 C 语言的互操作。该团队的目标是构建高性能、高能效且用户友好的 zkVM。
2024年10月24日
Tl;DR(太长不看版)
—--------------------------
在我们 C 编译器工具链 成功的基础上,我们很高兴地宣布 Valida Rust Alpha 编译器。
朝着 Rust 集成迈出的这一初步步骤,标志着我们支持 Valida(我们最先进的 zkVM)更广泛的语言和用例方面的一个重要里程碑。 我们还在我们的 zkVM 堆栈中取得了重大进展和更新,所有这些都包含在此版本中。
我们的 Valida Rust Alpha 编译器利用 LLVM 的强大功能来弥合 Rust 和 Valida zkVM 之间的差距。 这意味着 Rust 编程语言的某些部分现在可以转换为 LLVM 编译器框架使用的中间表示 (IR)。 从那里,此 IR 可以进一步编译为在 Valida zkVM 上运行的机器代码。
从本质上讲,开发人员现在可以编写一些 Rust 代码并在 Valida 上运行它。
在此处查看示例存储库 here。 我们正在努力在即将发布的版本中提供更广泛的示例和基准测试。
“为什么 Valida 对 Rust 的支持比其他 zkVM 花费的时间更长?”
在 Lita,我们认为使用基于传统硬件的 ISA 来开发 zkVM 软件不是最佳方法。 与 SP1 和 Risc Zero 等利用 RISC-V ISA 并受益于现有编译器工具链以实现本机 Rust 支持的其他 zkVM 不同,我们的设计方法有所不同。
我们为 Valida 设计的指令集架构 (ISA) 是从头开始构建的,并且专门针对端到端零知识证明生成进行了优化。 使用自定义 ISA 意味着我们需要从头开始构建编译器工具链,以支持 Rust 等高级编程语言。 今年早些时候,我们的编译器团队最初专注于 C 支持,即使没有预编译,也取得了 行业领先的基准测试结果。 这种方法对用户非常友好,不需要开发人员具备 AIR 方面的专业知识。
虽然编译器兼容性方面的这种权衡带来了挑战,但我们很高兴这些努力开始通过此版本获得回报。 这条道路更加复杂,但我们相信这是创建性能最高、能源效率最高且用户友好的 zkVM 的更好方法。
在此处阅读有关我们设计选择的更多信息 here。
我们很高兴 Valida Rust Alpha 编译器标志着 Lita 向前迈出的重要一步。 但是,我们想公开你可能遇到的一些限制:
目前,不支持异常处理、多文件编译和完整的 Rust 标准库; 可以合理地预期可能还有其他未记录的问题。 鉴于编译器可能发出不正确代码的可能性,我们建议目前不要在生产环境中使用 Valida rust 编译器工具链。 但是,我们非常欢迎你在示例上尝试 Valida,甚至将你的示例添加到我们的示例集中。 有趣的示例可能有助于我们进一步压力测试和优化 Valida。
在此处阅读 Lita 发布的 LLVM Valida 工具链的完整 0.4.0-alpha 版本 here,其中详细介绍了完整的更改日志、使用说明和已知错误。
在此处加入我们在 Telegram 上的核心开发者社区 here; 我们随时欢迎你的反馈,以帮助我们不断改进 Valida。我们的编译器和密码学团队将在那里积极解决你可能遇到的任何问题或疑虑。
- 原文链接: lita.foundation/blog/int...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!