Leçon 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 上進行安全、高效的智能合約開髮。
Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
Catalogue
Leçon 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 上進行安全、高效的智能合約開髮。
Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.