Bài học 4

智能合约

本模块深入介绍了 zkSync 技术,重点讲解如何编写和部署智能合约、使用 zkSync CLI 和 SDK 进行开发,以及将 zkSync 集成到现有的开发环境中。

zkSync 中的智能合约与以太坊上的智能合约类似,但由于底层的 zkRollup 技术,zkSync 的智能合约具有更高的可扩展性和效率。zkSync 使用零知识证明来维护安全性 和去信任性,同时链下处理交易。

零知识简洁非交互知识论证 (zk-SNARKs) 用于验证链下计算的正确性。在 zkSync 中,zk-SNARKs 可以确保所有交易和智能合约执行都是有效的,而无需在以太坊主网上执行计算。这减少了计算负载和相关的 Gas 费用,从而实现了更高的吞吐量。

最新的迭代 zkSync Era 完全兼容以太坊虚拟机 (EVM)。这意味着为以太坊编写的的大多数智能合约都可以几乎无需修改地部署在 zkSync 上。EVM 兼容性确保开发人员可以使用熟悉的工具和语言(例如 Solidity)来编写和部署他们的合约。

zkSync Era 还集成了 zkPorter 数据可用性解决方案来提高可扩展性。zkPorter 允许将某些数据保留在链下,从而显着增加了可以在不堵塞以太坊主网的情况下处理的交易数量。

编写和部署智能合约

zkSync 的智能合约使用 Solidity 编写,这与以太坊智能合约相同的语言。开发人员可以使用他们习惯的相同语法和逻辑结构,使过渡到 zkSync 非常简单。

部署智能合约

1.设置开发环境:

  • 安装 Node.js 和 npm (Node 包管理器)。
  • 通过 npm 安装 zkSynchardhat包。
  • 初始化一个新的 Hardhat 项目,并将其配置为与 zkSync 配合使用。

2.配置:
修改 hardhat.config.js 文件以包含 zkSync 特有的设置,例如 zkSync 网络 URL 和 zkSync 特有的编译器选项。

配置示例可能如下:

3.编译智能合约:
使用 Hardhat 框架可以编译 Solidity 合约。Hardhat zkSync 插件确保编译与 zkSync 网络兼容。

4.部署智能合约:
部署过程涉及连接到 zkSync 提供者、创建钱包实例并使用它来部署合约。

可用的开发工具

Hardhat

Hardhat 是一个以太坊的开发环境和任务运行器,现已扩展到支持 zkSync。它允许开发人员编译、部署、测试和调试 Solidity 智能合约。

zkSync SDK

zkSync SDK(zkSync 软件开发包)提供了用于从 JavaScript 环境与 zkSync 交互的工具和库。它包含用于设置钱包、发送交易以及与部署在 zkSync 上的智能合约进行交互的实用程序。

zkSync CLI

zkSync 命令行界面 (CLI,command-line interface) 提供了管理 zkSync 项目的功能,包括部署合约和管理账户。

Remix IDE

Remix 是一个开源的网络和桌面应用程序,可帮助直接从浏览器编写 Solidity 合约。它通过插件和配置支持 zkSync,这些插件和配置将它连接到 zkSync 网络。

集成

这些开发工具集成在一起,为在 zkSync 上开发、测试和部署智能合约提供了一个连贯的环境。

Hardhat 和 zkSync SDK

Hardhat 与 zkSync SDK 集成,为开发人员提供流畅的工作流程。Hardhat 的 zkSync 插件处理编译和部署过程,而 zkSync SDK 提供了与 zkSync 网络交互的基础功能。这种结合使开发人员能够使用熟悉的 Hardhat 结构编写部署脚本和测试,同时利用 zkSync 的特定功能。

Hardhat 和 Remix

开发人员可以使用 Remix 编写和测试智能合约,然后使用 Hardhat 进行更复杂的部署场景。来自 Remix 的编译产物可以轻松导入到 Hardhat 项目中,从而实现灵活的开发工作流。

zkSync CLI

zkSync CLI 可以与 Hardhat 和 zkSync SDK 一起使用来管理部署并与已部署的合约进行交互。它为常见任务(例如部署合约或管理帐户密钥)提供了一个命令行界面,可以集成到自动部署管道中。

测试和调试

Hardhat 的测试框架可用于编写智能合约的单元测试和集成测试。这些测试可以在本地 zkSync 节点或测试网上运行,以确保合约按预期运行。zkSync SDK 在测试过程中促进与合约的交互,从而实现全面的测试覆盖率。

通过集成这些工具,开发人员可以高效地在 zkSync 上编写、测试、部署和管理智能合约,既利用了 zkRollup 的可扩展性和成本效率,又保持了熟悉的开发体验。这种集成支持强大的开发生命周期,从初始合约创建到部署和持续维护。

亮点

  • 在 zkSync 上编写和部署智能合约需要使用 Solidity 和 Vyper,并通过定制的 zkSync 编译器进行编译。
  • zkSync CLI 和 SDK 为项目设置、合约编译、部署和交互提供了全面的工具。
  • 与 Hardhat、Foundry、Remix 和 Atlas 等开发工具的集成,增强了开发人员的体验。
  • 遵循最佳实践,确保在 zkSync 上进行安全、高效的智能合约开发。
Tuyên bố từ chối trách nhiệm
* Đầu tư tiền điện tử liên quan đến rủi ro đáng kể. Hãy tiến hành một cách thận trọng. Khóa học không nhằm mục đích tư vấn đầu tư.
* Khóa học được tạo bởi tác giả đã tham gia Gate Learn. Mọi ý kiến chia sẻ của tác giả không đại diện cho Gate Learn.
Danh mục
Bài học 4

智能合约

本模块深入介绍了 zkSync 技术,重点讲解如何编写和部署智能合约、使用 zkSync CLI 和 SDK 进行开发,以及将 zkSync 集成到现有的开发环境中。

zkSync 中的智能合约与以太坊上的智能合约类似,但由于底层的 zkRollup 技术,zkSync 的智能合约具有更高的可扩展性和效率。zkSync 使用零知识证明来维护安全性 和去信任性,同时链下处理交易。

零知识简洁非交互知识论证 (zk-SNARKs) 用于验证链下计算的正确性。在 zkSync 中,zk-SNARKs 可以确保所有交易和智能合约执行都是有效的,而无需在以太坊主网上执行计算。这减少了计算负载和相关的 Gas 费用,从而实现了更高的吞吐量。

最新的迭代 zkSync Era 完全兼容以太坊虚拟机 (EVM)。这意味着为以太坊编写的的大多数智能合约都可以几乎无需修改地部署在 zkSync 上。EVM 兼容性确保开发人员可以使用熟悉的工具和语言(例如 Solidity)来编写和部署他们的合约。

zkSync Era 还集成了 zkPorter 数据可用性解决方案来提高可扩展性。zkPorter 允许将某些数据保留在链下,从而显着增加了可以在不堵塞以太坊主网的情况下处理的交易数量。

编写和部署智能合约

zkSync 的智能合约使用 Solidity 编写,这与以太坊智能合约相同的语言。开发人员可以使用他们习惯的相同语法和逻辑结构,使过渡到 zkSync 非常简单。

部署智能合约

1.设置开发环境:

  • 安装 Node.js 和 npm (Node 包管理器)。
  • 通过 npm 安装 zkSynchardhat包。
  • 初始化一个新的 Hardhat 项目,并将其配置为与 zkSync 配合使用。

2.配置:
修改 hardhat.config.js 文件以包含 zkSync 特有的设置,例如 zkSync 网络 URL 和 zkSync 特有的编译器选项。

配置示例可能如下:

3.编译智能合约:
使用 Hardhat 框架可以编译 Solidity 合约。Hardhat zkSync 插件确保编译与 zkSync 网络兼容。

4.部署智能合约:
部署过程涉及连接到 zkSync 提供者、创建钱包实例并使用它来部署合约。

可用的开发工具

Hardhat

Hardhat 是一个以太坊的开发环境和任务运行器,现已扩展到支持 zkSync。它允许开发人员编译、部署、测试和调试 Solidity 智能合约。

zkSync SDK

zkSync SDK(zkSync 软件开发包)提供了用于从 JavaScript 环境与 zkSync 交互的工具和库。它包含用于设置钱包、发送交易以及与部署在 zkSync 上的智能合约进行交互的实用程序。

zkSync CLI

zkSync 命令行界面 (CLI,command-line interface) 提供了管理 zkSync 项目的功能,包括部署合约和管理账户。

Remix IDE

Remix 是一个开源的网络和桌面应用程序,可帮助直接从浏览器编写 Solidity 合约。它通过插件和配置支持 zkSync,这些插件和配置将它连接到 zkSync 网络。

集成

这些开发工具集成在一起,为在 zkSync 上开发、测试和部署智能合约提供了一个连贯的环境。

Hardhat 和 zkSync SDK

Hardhat 与 zkSync SDK 集成,为开发人员提供流畅的工作流程。Hardhat 的 zkSync 插件处理编译和部署过程,而 zkSync SDK 提供了与 zkSync 网络交互的基础功能。这种结合使开发人员能够使用熟悉的 Hardhat 结构编写部署脚本和测试,同时利用 zkSync 的特定功能。

Hardhat 和 Remix

开发人员可以使用 Remix 编写和测试智能合约,然后使用 Hardhat 进行更复杂的部署场景。来自 Remix 的编译产物可以轻松导入到 Hardhat 项目中,从而实现灵活的开发工作流。

zkSync CLI

zkSync CLI 可以与 Hardhat 和 zkSync SDK 一起使用来管理部署并与已部署的合约进行交互。它为常见任务(例如部署合约或管理帐户密钥)提供了一个命令行界面,可以集成到自动部署管道中。

测试和调试

Hardhat 的测试框架可用于编写智能合约的单元测试和集成测试。这些测试可以在本地 zkSync 节点或测试网上运行,以确保合约按预期运行。zkSync SDK 在测试过程中促进与合约的交互,从而实现全面的测试覆盖率。

通过集成这些工具,开发人员可以高效地在 zkSync 上编写、测试、部署和管理智能合约,既利用了 zkRollup 的可扩展性和成本效率,又保持了熟悉的开发体验。这种集成支持强大的开发生命周期,从初始合约创建到部署和持续维护。

亮点

  • 在 zkSync 上编写和部署智能合约需要使用 Solidity 和 Vyper,并通过定制的 zkSync 编译器进行编译。
  • zkSync CLI 和 SDK 为项目设置、合约编译、部署和交互提供了全面的工具。
  • 与 Hardhat、Foundry、Remix 和 Atlas 等开发工具的集成,增强了开发人员的体验。
  • 遵循最佳实践,确保在 zkSync 上进行安全、高效的智能合约开发。
Tuyên bố từ chối trách nhiệm
* Đầu tư tiền điện tử liên quan đến rủi ro đáng kể. Hãy tiến hành một cách thận trọng. Khóa học không nhằm mục đích tư vấn đầu tư.
* Khóa học được tạo bởi tác giả đã tham gia Gate Learn. Mọi ý kiến chia sẻ của tác giả không đại diện cho Gate Learn.