聚焦资讯
服务于区块链创业者

在 Kakarot ZkEVM 上使用 Starknet Scaffold 构建应用

chatGPT账号

Starknet 和 EVM

我们所知的智能合约世界一直围绕着以太坊虚拟机(EVM),其主要语言是 Solidity。

尽管 Starknet 通过 STARKs 为以太坊开辟了新的可能性,但其缺点是它有一个不同的虚拟机 (CairoVM),这要求开发者学习 Cairo 编程语言才能在 Starknet 上构建。

因此限制了 Starknet DApps 的影响力,并阻止它们接触到 EVM 生态系统。作为 L2,Starknet 的目标是扩展以太坊,但由于 CairoVM 和以太坊虚拟机(EVM)之间的差距,它无法有效地做到这一点。

Kakarot zkEVM

Kakarot zkEVM 旨在弥合 CairoVM 和 EVM 之间的差距。由 Kakarot Labs 开发,它是一个使用 Cairo 构建的 EVM。

有了 Kakarot,Starknet 成为一个多虚拟机环境,这意味着开发者现在可以在构建应用程序时利用 CairoVM 和 EVM。
这种能力使 Starknet 兼容 EVM,消除了 Solidity 开发者在 Starknet 上构建时学习全新语言的需求。

Kakarot zkEVM 的关键特性

  • 敏捷和轻量级:使用 Cairo 构建,Kakarot 将密码学与工程分离,使其更易于审计、扩展和改进。
  • 互操作和模块化:Kakarot 支持多虚拟机环境,允许 Solidity 合约与 Cairo 程序交互,反之亦然。
  • 高性能:Kakarot 受益于未来 Cairo 堆栈的升级,例如即将发布的 Stwo,这将使 ZK 证明生成性能提高 100–1,000 倍。

有了 Kakarot,开发者可以在 Starknet 上获得新的可能性,而不失去现有的技能,使其成为去中心化应用未来的关键角色。

让我们使用 Starknet Scaffold 编写一个 Solidity 智能合约

上面的标题感觉像是一个梦 😄 — 捏我一下!

什么是 Starknet Scaffold?

Starknet Scaffold 由 Horus Labs 构建,是一个为在 Starknet 上开发去中心化应用程序(dApps)而设计的工具包。它包括最流行和功能强大的工具,确保你始终拥有最新的开发环境。

Starknet Scaffold 现在支持 Kakarot,使得创建同时适用于 Solidity 和 Cairo 的 DApps 更加简单。你可以使用 Kakarot zkEVM 上包含的入门模板开始构建你的 DApp。

让我们开始吧

我们将通过 Kakarot 以与你与以太坊主网或任何其他基于以太坊的链(使用 Metamask、Rainbow、使用 Foundry 或 Hardhat 构建等)相同的方式与 Starknet MultiVM 进行交互。

**要求
**在我们开始之前,请确保你已安装以下内容:

设置

打开你的终端并运行以下命令:

npx create-starknet-app

  • 输入你的包名称: 例如,kakarot-DApp
  • 选择包类型: 选择 5 代表 kakarot。
  • 运行脚手架:
  • cd kakarot-DApp

npm run start-kakarot

要使其工作,你需要运行 Docker,否则会出现错误。

继续运行命令,你将在终端中看到以下内容,这意味着 kakarot 当前正在你的机器上运行。

编写和部署智能合约

在你的 vscode 中打开我们搭建的文件夹,你将看到如下的文件夹结构。我们有两个包含智能合约的文件夹:

  • contracts : 该文件夹包含 Cairo 智能合约。
  • kakarot : 包含 Solidity 智能合约。

kakarot zkEVM 通过使 Starknet 成为一个多虚拟机环境来增强和扩展 Starknet,这意味着我们可以将 Solidity 和 Cairo 合约部署到 Starknet。

在 package.json 中,你会找到所有可用的脚本,你可以运行这些脚本以使开发过程更轻松

步骤 1:构建和编译智能合约

此命令构建并编译 Cairo 智能合约。

npm run build-contracts

步骤 2:部署 Kakarot L1 消息合约

npm run deploy-kakarot-l1-messaging-contracts-local

此命令在本地部署 L1KakarotMessaging.sol 和 StarknetMessaging.sol 合约。

合约解释

  1. L1KakarotMessaging.sol : 该合约通过向 Starknet (L2) 上的合约发送和接收消息来实现 Layer 1 (L1) 和 Layer 2 (L2) 之间的通信。
  2. StarknetMessaging.sol : 该合约管理 Layer 1 和 Layer 2 之间消息传递的机制,并负责维护消息的完整性、处理和确保这两个层之间的可靠通信。

步骤 3:部署 EVM 智能合约

让我们在 example 文件夹中部署 counter.sol 合约。确保你的 Docker 正在运行。

本地部署 EVM 合约

在这里,你可以找到在本地部署时可以使用的 rpc 和私钥。

运行以下命令以在本地部署:

npm run deploy-kakarot-evm-contract –contract-path=solidity_contracts/src/examples/Counter.sol:Counter –rpc-url=http://127.0.0.1:3030 –private-key=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80

在 Kakarot Sepolia 测试网上部署 EVM 合约

在我们继续之前,请确保将 Kakarot Sepolia 添加到你的 Metamask:

https://docs.kakarot.org/starknet/overview/

我将使用 env.example 文件中的 私钥,如果你想使用你的地址进行部署,可以使用连接到你任何 Metamask 地址的私钥。

运行以下命令在 Kakarot Sepolia 测试网上部署:

npm run deploy-kakarot-evm-contract –contract-path=solidity_contracts/src/examples/Counter.sol:Counter –rpc-url=https://sepolia-rpc.kakarot.org –private-key=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80

让我们使用合约地址验证合约是否已部署
0x3Aa5ebB10DC797CAC828524e59A333d0A371443c

在 Kakarot Sepolia 测试网上与 EVM 合约函数交互

让我们增加 Counter.sol 合约的计数器。

cast send 0x3Aa5ebB10DC797CAC828524e59A333d0A371443c "increment()" --rpc-url=https://sepolia-rpc.kakarot.org --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80

现在我们已成功与 increment 函数进行了交互。

README.md 文件

打开 kakarot 文件夹中的 README.md 文件,其中包含我们运行的所有命令及更多内容。

总结

我们已成功在 Kakarot Sepolia 测试网上部署并与我们的 Solidity 合约进行了交互。

在本文的下一部分中,我们将演示如何从 Solidity 合约中与 Cairo 合约进行交互。这是不是很令人兴奋?

Kakarot zkEVM 的集成到 Starknet 标志着在 CairoVM 和以太坊虚拟机(EVM)之间架起桥的重要一步。

借助由 Horus Labs 提供支持的 Starknet Scaffold 工具包,开发人员可以高效且简化地编写、部署和交互 Solidity 和 Cairo 智能合约。

免责声明

发文时比特币价格:$68249

免责声明:

本文不代表行至网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,行至网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与行至网没有任何关系;

行至区块链研究院声明:行至区块链研究院内容由行至网发布,部分来源于互联网和行业分析师投稿收录,内容为行至区块链研究院加盟专职分析师独立观点,不代表行至网立场。

chatGPT账号
赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权,未经允许不得转载。
文章名称:《在 Kakarot ZkEVM 上使用 Starknet Scaffold 构建应用》
文章链接:https://www.xingzhi.io/definance/35691.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

服务于区块链创业者

业务范围商务合作

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的区块链世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录后才能复制或下载网站内容