
原文:[7 Super Cool DevTools for Starknet Devs]()
翻译及校对:「Starknet 中文社区」
尽管 Starknet 是建立在以太坊上的二层网络,但与基于以太坊虚拟机(EVM)模型构建的其他二层网络不同。因此,Starknet 拥有许多专属的开发工具,用来支持在 Starknet 上构建项目的开发者社区。
虽然最初 Starknet 的开发工具堆栈主要基于 Python,但目前整体趋势是由基于 Python 的工具转向基于 Rust 构建的工具。
Starknet 开发者的 7 大开发工具:
Starkli
Starknet-devnet
Katana
Scarb
Starknet Foundry
Hardhat
Starknet Remix 插件
下图解释了整个开发流程,以及每个开发阶段所需的工具。


Starkli 读作 *Stark-lie*,是一个快速的命令行界面,取代了传统的 starknet-CLI。Starkli 是一个独立的界面,也就是说,你可以单独使用,而不是把它作为其他工具的一个组件。如果你不在 Starknet 上进行实际开发,而只想进行一些交互,比如发送交易,那么独立的 CLI(命令行)可能比 Cast 这样的接口更合适,后者是 Foundry 开发环境的一个集成组件。
Starknet 社区的贡献者 Jonathan Lei 负责维护 Starkli。他是 zkLend 的联合创始人兼 CTO。
Starkli 是一个类似于 cairo-lang 的 Starknet CLI,但它是用 Rust 编写的,更容易安装和浏览,并且没有依赖性。这个工具支持 Braavos 和 Argent X 智能钱包,并内置了对 RPC 端点的支持。
Starkli 包括标准的 CLI 功能,例如:
部署账户
与合约进行交互
获取 Starknet 数据,如区块、交易等信息
Starkli 还包括以下功能:
从定义类的 Cairo 文件计算类的哈希值
计算函数的选择器
编码消息
自动补全
实用的帮助命令
执行多重调用的能力
关于如何开始使用 Starkli,包括安装说明,请参阅《Starkli:新的 Starknet CLI》。
另请参阅:
软件开发工具包(SDK)是一个库,在构建交易和与区块链互动时,抽象化了 Starknet 的复杂性,包括以下内容:
使用 JSON-RPC 和 Feeder 网关 API 读取和写入 API 调用
创建账户
加密:签名验证和签名,计算 Starknet 使用的哈希值
合约互动:ABI 导入,构建交易
有多种适用于不同语言的 SDK,因此你可以根据自己喜欢的语言来选择 SDK。


相比使用测试网络,devnet 是作为本地节点运行的 Starknet 实例,能够实现更快的开发速度,并且在发布到测试网之前提供隐私保护。
Shardlabs 最初用 Python 编写了 starknet-devnet,但他们目前正在积极开发 Rust 版本的 starknet-devnet-rs。目前,基于 Python 的版本功能更丰富,最显著的特点是能够在给定的区块上分叉网络。因此,如果这对你很重要,那你需要使用基于 Python 的版本。然而,starknet-devnet-rs 运行速度更快,开发者正努力使其在功能上与基于 Python 的 starknet-devnet 相匹敌。
starknet-devnet-rs 是唯一一个正在接收新功能的版本。
https://twitter.com/shard_labs
starknet-devnet 和 starknet-devnet-rs 包含一些已经使用 ERC-20 代币注资的账户,这些代币可用于支付费用。定义该代币的 ERC-20 合约也包含在内。
使用 starknet-devnet 和 starknet-devnet-rs,可以执行以下操作:
创建模拟账户。
使用已包含在内的预先部署、预先注资的账户发送交易。
测试工具。
测试 RPC 请求。
使用内置的通用部署器合约 (UDC) 部署新合约。
starknet-devnet-rs 开发网络是与 StarkWare 合作开发,当前版本也在积极更新中,值得关注。

Katana 由 Dojo 团队开发,是一个速度极快的开发网络,旨在支持使用 Dojo 进行的本地开发。Dojo 是为 Starknet 打造的游戏引擎。你也可以将 Katana 用作通用开发网络。通过 Katana,开发者可以使用 Katana 网络在本地测试应用程序,来检验游戏过程中发送的交易。
Katana 提供了便捷的 RPC 方法,你可以根据需要更改网络的配置。例如,你可以更改区块时间或允许零费用交易。
Katana 支持 Starknet JSON-RPC 规范的 v0.3.0 版本,这是截至 2023 年 6 月的最新版本。Katana 允许你使用本地 Starknet JSON 调用,如 starknet_getTransactionReceipt、starknet_getStorageAt 等。
关于安装和使用 Katana 的信息,请参阅 Dojo 文档中的 Katana 说明。

Scarb 是 Starknet 官方包管理器。
Scarb 通过以下方式简化了开发流程:
安装 Cairo 包时,它会处理添加、更新并移除依赖项。
可用于编译智能合约。
当你创建自己的 Cairo 包时,它会负责从 Github 获取你需要的库的补丁,并在出现版本不匹配时及时提醒你。然后,你就可以使用 Cairo 测试运行程序来构建和测试你的项目了。构建速度相当快。
Scarb 内置 Cairo 编译器,因此,除非你本身是一名编译器开发者,否则你不需要设置任何额外的工具。
Scarb 包含了 Cairo 语言服务器的捆绑二进制文件,可供使用。
Scarb 与 Cairo 生态系统中的其他工具(如 Foundry 和 Dojo)配合良好。
开发者目前正在努力改进 Scarb 处理版本、项目和工作空间管理的方式。
https://docs.swmansion.com/scarb/

Starknet Foundry 是一个用于开发 Starknet 智能合约的工具链。有助于编写、部署和测试你的智能合约。
Starknet Foundry 包括以下功能:
快速测试框架 Forge。Forge 在性能上可与 Cairo 测试运行器相媲美,同时提供了更好的用户体验。你可以测试智能合约中的独立功能,并嵌入复杂的部署流程。
支持合约打印。根据文档,随着 Starknet 编译器增加支持,调试功能也将随之提供。
在线的 Foundry 手册提供了大量有用的信息和指南,涉及编写和运行测试以及与 Starknet 的交互。
使用 Scarb.Cast 集成编译和依赖管理。
文件中提到的 Cast 命令名称为sncast。Cast 是一个集成的 CLI,专门用于执行 Starknet RPC 调用、发送交易以及获取 Starknet 链数据。你可以使用 Cast 来声明、部署以及使用 Starknet JSON-RPC 与合约交互。
Starknet Foundry 即将推出许多新功能,包括模糊测试、L1<>L2 消息传递以及代码覆盖。
Starknet Foundry Github 仓库的路线图显示了新功能和正在开发的功能,但不清楚这些复选标记是表示已经实现的功能还是正在积极开发的功能。
https://github.com/foundry-rs/starknet-foundry/

Hardhat 是一款主要用于测试 Cairo 代码的工具。你还可以使用 JavaScript 脚本部署合约。
https://twitter.com/shard_labs
Hardhat 是一个以太坊上流行的 JavaScript 开发环境,如果你已经熟悉它并想在 Starknet 上使用它,那么这个插件就能派上用场。你可以在 Hardhat 中将 Starknet 命令作为任务运行,例如编译 Cairo 合约。
Hardhat 集成了一个本地开发网络,因此你只需专注于用 JavaScript 编写测试即可。
即将推出的功能包括:
提升与 Starknet.js 的集成,为开发者带来更好的体验。
改进对最新 Cairo 功能的支持。
获取 Hardhat 请访问 Hardhat 官网。
获取 Starknet 插件请访问 Starknet Hardhat 插件的 Github 仓库。
查看如何使用该插件的示例,请访问 Starknet Hardhat 示例脚本的 Github 仓库。

Remix 是基于浏览器的以太坊集成开发环境(IDE),适用于学习、实验以及发现智能合约中的漏洞,无需安装任何东西。Starknet Remix 插件可以让你使用 Remix 测试 Starknet 智能合约,因此你可以专注于学习 Cairo 和 Starknet,而无需分心设置工具链。
[Nethermind]()
Remix 和 Starknet Remix 插件包括以下功能:
集成编译。
你可以在任何开发网络上部署合约,包括插件自带的集成开发网络。
你还可以在测试网络或主网上部署合约。
你可以调用已部署合约的功能,以便用于测试和交互。
与 Scarb 的无缝集成。
与区块浏览器(如 Voyager)集成,方便实时检查交易的执行情况。
Starknet Remix 插件与 Starknet By Example 集成,后者是内容丰富的实用学习资源库。
更多关于 Starknet Remix 插件的信息,请参阅《解锁 Starknet 的入门:Starknet Remix 插件概览》。
支持在浏览器中直接测试 Starknet 合约。
计划在未来版本中加入集成的代码编辑器。
开始使用 Remix,请访问 Remix Project 网站。
开始使用 Starknet Remix 插件,请访问 Starknet Remix 插件的 Github 仓库。
在寻找更多开发工具、库和教程吗?请访问 Starknet 的开发者中心。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
