# 【交互教程】zkSync2.0测试网部署合约手把手教学

By [加密小师妹](https://paragraph.com/@0x1890) · 2023-02-15

---

哈喽，大家好！我是陪你一起撸空投的加密小师妹Monica

各位小伙伴们早，中，晚好啊！我来啦，今天给大家带来的是zkSync2.0测试网部署合约教程

为了zkSync将生态发扬广大，从我做起（其实是因为有个POAP可以领），作为志愿者的我，联合好朋友7哥[@newbee740.lens](https://twitter.com/Newbee740)给新手小伙伴们带来的手把手教学！

为什么说是手把手教学，因为通过我不懈的努力，从基础环境配置开始到如何编译，到提交申请，几乎所有大家碰到的问题我基本上都碰到了，都给大家找出来解决办法了！

**本次交互是由zkSync公司Matterlabs开发工程师**[**Antonio**](https://twitter.com/uF4No)**在L2研讨会发布的任务，完成后有个gitpoap作为奖励可以领，目前领取的人很少，因为技术门槛相对其他交互教程高，是针对开发者开放的，小伙伴们，做好迎接挑战的准备了吗？**

![](https://storage.googleapis.com/papyrus_images/fa2bbf526eb2a4ecb3c67e453fb7636deaab858566531e94d6f96d93573bdfb5.png)

![](https://storage.googleapis.com/papyrus_images/900993fd7859217abc2240385692c12335d740fb6d123dbbcb80707b4e51d1e5.png)

本篇教程从以下几个方面展开：

1.  准备工作（本地电脑环境部署，常用到的软件教程）
    
2.  如何编译zks2.0测试网
    
3.  如何提交申请
    

**新手零基础可以上手，基本遇到的问题小师妹这里都做了解决方案以及提示，学会后你可以在zkSync2.0上部署合约，除了领到的POAP作为参与证明，也对我们交互zkSync的链上记录会有所帮助。**

如果你想了解更多精品资讯以及空投教程，请关注加密小师妹的推特哦！还有更多的抽奖福利送给大家！

**推特**：[@加密小师妹Monica](https://twitter.com/Monica_xiaoM)

一、准备工作
======

1.首先我们需要用到的是**Github账号**，这个申请很简单，就和其他注册账号流程一样，我就不做介绍啦，应该大部分小伙伴都有了，没有的直接进入 [github.com](http://github.com) 申请。

2.其次我们需要准备一个**Goerli水的钱包和私钥**，谨慎起见，小号就可以。小号没有领水的，[点击这里](https://goerlifaucet.com/)领水

3.我们需要在本地电脑进行部署，所以需要**配置基础环境**，需要Git和node环境还有vscode编译软件这个可能懂开发的小伙伴们基本上电脑已经配置好了，新手小伙伴不用慌，小师妹找到了配置教程，非常详细，我是按照这个教程配置的。已经配置好的小伙伴们跳过！

**Git安装教程（安装好以后，可以任意clone开源代码到本地，未来大有用处！）**

[

Git的安装教程（完成clone一个项目到本地）\_先clone下来,安装-CSDN博客
--------------------------------------------

文章浏览阅读2w次，点赞19次，收藏42次。本文详细介绍了如何使用国内阿里镜像下载并安装Git，并配置环境变量及用户信息，以便于从GitHub等平台克隆项目。

https://blog.csdn.net



](https://blog.csdn.net/weixin_43423864/article/details/109501448)

**Nodejs下载以及安装**

[

Node.js最新最详细安装教程-巨详细\_node js 安装-CSDN博客
---------------------------------------

文章浏览阅读10w+次，点赞344次，收藏919次。本文提供了一步一步的Node.js安装教程，包括从官网下载安装包、选择安装路径、安装选项，到验证安装成功及可选的全局模块路径和缓存路径修改，帮助读者顺利完成Node.js环境搭建。

https://blog.csdn.net



](https://blog.csdn.net/Small_Yogurt/article/details/104968169)

**VSCode安装教程（这个是比较主流的代码编辑器）**

[

VSCode安装教程（超详细）-CSDN博客
----------------------

文章浏览阅读10w+次，点赞1.5k次，收藏2.4k次。VSCode安装教程（超详细）下载安装一、同意协议（废话了我）二、选择合适的安装位置，下一步三、下一步四、这里注意下，进行相关的选择五、点击安装六、等待安装完成，很快配置中文界面上面安装完成后会出现下面的界面，我们搜索Chinese，点击install然后Restart重启后就ok了，中文界面下载下载地址：Download Visual

https://blog.csdn.net



](https://blog.csdn.net/weixin_43883917/article/details/113867914?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167634815116800182763462%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167634815116800182763462&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-113867914-null-null.142)

好了，休息一下吧，能坚持做到这里的小伙伴们不容易（对新手说），到这里我们的准备工作完成了！再总结一下此刻的你应该拥有：

1.  Github账号
    
2.  有Goerli水的钱包及私钥
    
3.  本地Git和Nodejs的环境以及代码编辑软件VSCode
    

二、如何在zkSync2.0测试网上部署合约
======================

首先我们打开官方的Github仓库，进行fork（就是把源代码分叉下来）

[

GitHub - matter-labs/l2-intro-pre-ethdenver: Introduction to layer two and zkSync
---------------------------------------------------------------------------------

Introduction to layer two and zkSync. Contribute to matter-labs/l2-intro-pre-ethdenver development by creating an account on GitHub.

https://github.com

![](https://storage.googleapis.com/papyrus_images/ec70f10b2b6b513e2ca1472e5bcb5dfd73e73bccb61f1717718bfec1766c893a.png)

](https://github.com/matter-labs/l2-intro-pre-ethdenver)

1.点击右上角fork，把源码分叉到自己的Github上，点击完fork以后点Create fork

![](https://storage.googleapis.com/papyrus_images/72c31e3a370d0a7aaa0370e52ebe544e8a6c9a9279a8fe072674886e1bab423d.png)

2.完成后会跳转，然后按照图上标示复制github地址，接下来重点来了

![](https://storage.googleapis.com/papyrus_images/1ebb6ed5940ee42b9b1ea8896d02ef1ef646935854cd5eca28f2db54d51d7732.png)

**重点：如果弹出以下画面需要你上传SSH公钥**

![](https://storage.googleapis.com/papyrus_images/cb606dc94b797882986b47e611b0fd731ed09562c53456788cec547f0f37c620.png)

小师妹找到了如何在本地生成SSH公钥并且查看的教程：

[

查看本机ssh公钥，生成公钥\_ssh公钥查看-CSDN博客
------------------------------

文章浏览阅读10w+次，点赞42次，收藏127次。本文介绍了如何生成和查看SSH公钥，以便于在代码服务器上进行认证，从而实现免密拉取和提交代码。提供了多种查看公钥的方法，包括使用命令行工具和直接打开文件。

https://blog.csdn.net



](https://blog.csdn.net/shog808/article/details/76563136)

**你先去生成，然后按照教程输入命令查看，怎么打开git bash窗口？就是在桌面任意空白处右键就会出现git bash here。然后复制下来，回到Github点add new public key，粘贴上去，点击Add SSH Key。**

![](https://storage.googleapis.com/papyrus_images/f184831a87d2da7fbf806a61cab571999d279922bc4acecb6de36095d67bb774.png)

3.好了，这不是复制了吗，我们同样打开电脑桌面空白处，点Git bash here，会弹出以下界面，然后输入git clone +你刚才复制的地址，再回车，就可以下载了。

![](https://storage.googleapis.com/papyrus_images/b2855d97252193ba2d72015a00cd749af8dc8758131ae64a4489f138f4177dd9.png)

运行后，你会发现桌面上多了一个名字为“l2-intro-pre-ethdenver”的文件，证明你下载成功了。

4.打开下载好的这个文件，找到.env.example这个文件，用记事本打开，然后把你的钱包私钥粘贴上去，保存，重命名这个文件，把名字改成.env（就是把.example删了）

![](https://storage.googleapis.com/papyrus_images/c627f456f7c497cbe5d697baab9ee5392fc34606dcf857b8859be6fe0dbe31e5.png)

改好以后是这样的

![](https://storage.googleapis.com/papyrus_images/c39b7016e68394ec27e560caf582a8e54d83ece0f3e4a52ff663432c62b74e5e.png)

5.安装hardhat。

**重点注意：这里需要yarn管理包，如果你没有安装过，请打开我找的教程安装~**

[

Yarn：快速可靠的依赖管理-CSDN博客
---------------------

文章浏览阅读10w+次，点赞17次，收藏28次。Yarn是Facebook最近发布的一款依赖包安装工具。Yarn是一个新的快速安全可信赖的可以替代NPM的依赖管理工具快速安装//在NPM 中安装npm install -g yarnMacOS在Mac上安装比较方便，使用初始化脚本即可 1 curl -o- -L https://yarnpkg.com/install.sh | ba...\_npm install yarn

https://blog.csdn.net



](https://blog.csdn.net/qq_36838191/article/details/98038890)

安装好，我们打开刚才文件夹上方搜索栏把路径都删了，换成cmd，回车，进入命令行（这里采取命令行方式是为了方便后面，往下看就知道了）

![](https://storage.googleapis.com/papyrus_images/f414eb7c446ffe04e87a784c1710fc848ce09d400b4c38d747c2cdf499555aa4.png)

![](https://storage.googleapis.com/papyrus_images/bed39c79f5c1b336d6330848834320fd085563ba268dd0ff18c3177986e2bd63.png)

![](https://storage.googleapis.com/papyrus_images/b148c9b8e90c031e21dc87e680f2bafd39ec0a6bcedb8494487eae699694e8f6.png)

输入：yarn add hardhat --registy [https://registy.npm.taobao.org/](https://registy.npm.taobao.org/)

6.接下来进行编译项目，输入 ：yarn hardhat compile

**重点来啦：如果这步你显示报错，大概率是因为你的命令行没有科学上网，无法访问网站，这里的解决办法不能统一，因为大家用的科学上网软件不一样，有很多小伙伴的直接可以翻命令行。我这里只能提供我的软件-clash解决办法，这个也有不少人用，希望能帮到大家。其余的软件大家可以Google如何命令行fanqiang。**

![](https://storage.googleapis.com/papyrus_images/67dbd9eb42a5aaea75b94f91af0ef1ee4b18d2a26bc045be11ea903f7a4d17c2.png)

![](https://storage.googleapis.com/papyrus_images/26323a75f4cb1399cb973688c639337bd13e08bf9547d57a793cf6e0fbeac5d2.png)

![](https://storage.googleapis.com/papyrus_images/90c5e6f8caa75a2b9cd5c88a86eb7abefc538fba3e98f0d21295e9bba3eee7c4.png)

把这个命令粘贴上去，再输入yarn hardhat compile 就可以啦

![](https://storage.googleapis.com/papyrus_images/3c426c8d3cfe1008259408831ea236a583c86a52c07584db286a6cf282335df1.png)

7.部署合约到测试网，输入：yarn hardhat deploy-zksync --script deploy-greeter.ts

![](https://storage.googleapis.com/papyrus_images/c0570384222fb5e8678b5b54d982dcfcb50a9b462ba86fa33bd8c5f0301b5049.png)

**从0x开头的一段是构造参数，下面是合约地址，两个都保存下来！后面用的到**

8.验证合约去，打开zkSync2.0测试网，然后搜索刚才让大家保存的合约地址，找到Contracts，点击Verify。

[

ZKsync Era Block Explorer
-------------------------

ZKsync Era Block Explorer provides all the information to deep dive into transactions, blocks, contracts, and much more. Deep dive into ZKsync Era and explore the network.

https://sepolia.explorer.zksync.io

![](https://storage.googleapis.com/papyrus_images/1483442a77f19cd3100e9e44ef78a4493d6650d781aa1cc0b11110166e2c38d4.png)

](https://goerli.explorer.zksync.io/)

![](https://storage.googleapis.com/papyrus_images/5c4c438e8dcfdafcf01185249b2ca678f1ebae4f02629bfae105b1b2bc2dcfc6.png)

然后按照图填写信息，版本，合约名字，刚才保存的构造参数，源代码

名称：Greeter

ZKsolc Version：v1.3.1

Solc Version：0.8.16

（PS:这里忘记截图了，借用7哥的图）

![](https://storage.googleapis.com/papyrus_images/06057217b4f6a7ad85fac902748415120d454aed8be68298daf4c169731b5f24.png)

源代码这里用到了我们下载好的vscode，打开以后点文件-打开文件夹，打开之前咱们桌面上下载的l2-intro-pre-ethdenver文件。找到Greeter.sol复制粘贴过去

![](https://storage.googleapis.com/papyrus_images/04700dfc559b49782d716956b5c1cfd459f4956974dde7a45d455727408e1a02.png)

最后点击verify验证。

到这里编译工作就完事了，我们就准备去申请gitpoap去了，是的，大家辛苦了，不光你们辛苦，我写的也很累。顺便说一下，对于懂技术的小伙伴们很简单，新手小伙伴们，你能坚持到这里，我很佩服！

三、申请POAP
========

验证成功后，打开vscode，找到Deployments.md文件中按照格式添加一行，然后ctrl+s保存。建议提前编辑好格式：

\\合约地址\\

![](https://storage.googleapis.com/papyrus_images/c85cd9190942eb9637671a5382300ea7ed9f4e13e07227d09fecdf14fb15c17e.png)

接着我们打开桌面下载的文件夹 l2-intro-pre-ethdenver，点空白处右键，gitbash here

![](https://storage.googleapis.com/papyrus_images/219a50bd4c035c73aa42fba16783d546145e548fb2cb04ab18a1e7d872dc62e9.png)

1.输入：git add .**(记住.的前面有空格！)**

2.输入：git commit -m “update“，

**重点：如果出现以下画面，需要按照提示设置邮箱和用户名，输入：**

git config --global user.email "你的邮箱" git config --global [user.name](http://user.name) "你的用户名"(自行替换)

![](https://storage.googleapis.com/papyrus_images/5350649ac23359d5b375a72d635596b0b395f1ea837ccb6e923361b141776100.png)

3.输入：git push

这样就上传到了github仓库，然后打开

[

GitHub - matter-labs/l2-intro-pre-ethdenver: Introduction to layer two and zkSync
---------------------------------------------------------------------------------

Introduction to layer two and zkSync. Contribute to matter-labs/l2-intro-pre-ethdenver development by creating an account on GitHub.

https://github.com

![](https://storage.googleapis.com/papyrus_images/ec70f10b2b6b513e2ca1472e5bcb5dfd73e73bccb61f1717718bfec1766c893a.png)

](https://github.com/matter-labs/l2-intro-pre-ethdenver)

创建拉取请求，点击New pull request

![](https://storage.googleapis.com/papyrus_images/9577f5f9db92084fa047b99776f937b37fcc9423c00f8272b584e5e8cf8d9971.png)

![](https://storage.googleapis.com/papyrus_images/614d16b2ed764ad8d9e050434da9ad7c75576dc626f8c79dfff6a8494281526f.png)

然后输入评论，这里我又忘了截图，小伙伴们可以像7哥一样说：get gitpoap，我喜欢在后面加个ty，哈哈哈。然后再点击Create pull request提交

![](https://storage.googleapis.com/papyrus_images/b35ea7d90172b5d327bd6172f0eb068c4156c4a9f02def314b891357be5a8fb4.png)

这样就算完成了，等待审核！

![](https://storage.googleapis.com/papyrus_images/4690b5d537e3f79eba119cc1f1d6083d2230d083102cf554f6f565ab6bd88fac.png)

终于完成了！！然后，我们等待审核去这里查看资格和领取

[

Home | GitPOAP
--------------

GitPOAP is a decentralized reputation platform that represents off-chain accomplishments and contributions on chain as POAPs.

https://www.gitpoap.io

![](https://storage.googleapis.com/papyrus_images/879cd6404b8362cbeeffd91cd93044f2b7206933de96644d86bc408d6529c6a2.png)

](https://www.gitpoap.io/)

![](https://storage.googleapis.com/papyrus_images/21a62352b0cf51476372c65545db58c53d6415449a26e87927027a113e781f62.png)

可以从上面信息看到，目前领取的人数不多，我也注意到了fork的人数不到200人。

以上从本地环境配置到软件下载安装，然后从部署测试网遇到的各种问题和解决方案，小师妹都写了出来，已经尽量考虑到了大家的体验，希望对你们有所帮助！如果不能坚持也没关系，确实有难度，开心点，做自己喜欢的事情！

新的一年新开始，我会一直陪伴大家，祝大家心情愉快，身体健康！

如果你在操作过程中有任何疑问，欢迎在推特上私信小师妹。

关注我的[推特](https://twitter.com/Monica_xiaoM)，接下来小师妹会推出更多空投教程，陪你一起撸到人生的第一个百万空投

[Subscribe](null)

---

*Originally published on [加密小师妹](https://paragraph.com/@0x1890/zksync2-0)*
