#execution #starknet #request #contracts #logic #vm

已删除 starknet-rs

A Rust implementation of Starknet execution logic

1 个不稳定版本

0.1.0 2023年6月27日

#58 in #starknet

Apache-2.0

610KB
15K SLoC

🦀 Rust语言中的Starknet 🦀

Starknet库,包含⚡cairo-rs⚡虚拟机

报告错误 · 请求功能

codecov license pr-welcome Telegram Chat

目录

⚠️ 免责声明

🚧 此项目正在进行中,尚未准备好投入生产。使用风险自负。 🚧

📖 关于

starknet_in_rust 是在Rust中实现 Starknet 的实现。它使用了 cairo-rs,即Cairo虚拟机的Rust实现。

🌅 入门

依赖项

  • Rust 1.70
  • cairo-lang 0.12的运行安装(用于编译cairo文件)
  • [可选,用于测试目的] Heaptrack

安装

运行以下make目标以获得一个工作环境(如果在Mac上或遇到错误,请参阅以下子节)

$ make deps
$ make build

查看Makefile 以获取更多目标。

如何手动安装脚本依赖项

cairo-lang 需要 gmp 库来构建。您可以在基于Debian的GNU/Linux发行版上使用以下命令安装它

sudo apt install -y libgmp3-dev

在Mac上,您可以使用Homebrew

brew install gmp

在Mac上,您还需要告诉脚本在哪里可以找到gmp库

export CFLAGS=-I/opt/homebrew/opt/gmp/include LDFLAGS=-L/opt/homebrew/opt/gmp/lib

🚀 使用

运行简单合约

您可以在这里找到有关运行合约的教程。

使用命令行界面

您可以在这里找到有关如何使用命令行界面的示例

测试

运行以下命令

$ make test

性能分析

运行以下命令

$ make flamegraph

以生成包含主要操作执行信息的火焰图。

基准测试

阅读 'bench_integration.py' 文件以确定哪些行需要注释掉以获得准确的结果。注释掉这些行,然后运行以下命令

$ make benchmark

🛠 贡献

开源社区是一个学习、灵感和创作的绝佳地方,这一切都归功于像您这样的人的贡献。您的贡献受到高度赞赏。

如果您有任何改进项目的建议,请随时fork存储库并创建一个pull request,或者打开一个带有'enhancement'标签的问题

  1. 分叉项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开Pull Request

别忘了给项目加星!⭐ 再次感谢您的支持。

  • cairo-rs:Cairo VM在Rust中的快速实现。
  • cairo-rs-py:从Python代码中使用cairo-rs的绑定。

📚 文档

Starknet

⚖️ 许可证

本项目采用Apache 2.0许可协议。

有关更多信息,请参阅LICENSE

依赖项

~56MB
~1M SLoC