在 Nervos 的 EVM兼容的 Layer2 上编译和部署智能合约的过程,与以太坊上的过程有很多相似之处。我们只需要做一些小小的改变即可。

Polyjuice 的最终目标是提供与所有基于 EVM 的 dApp 和 EVM 工具的 100% 兼容性。然而,开发工作仍在进行中。这个目标还没有完全实现,但它正在日益接近。

任务说明

注意:在开始任务之前,建议您检查务提交这个部分,这样您就知道您需要提供哪些材料给评审,以便于审查您的任务提交。

在本次的任务中,您将使用以太坊的 solidity 编写一个非常基本的智能合约,将其编译为 EVM bytecode 的形式,并将其部署到 Nervos 的 Layer2 - Polyjuice 上。

我们将在此步骤中使用的代码将用来编译并部署智能合约。它使用了以太坊的 Web3.js 和 Truffle 的原始版本,唯一的区别是在此我们使用了自定义的 Web3.js 提供者。

以下的任务说明会提供一个你可以使用的最基本的智能合约,但你可以自由使用你选择的任何智能合约。但是,我们建议只使用具有读写基本值功能的基本智能合约,以确保您能够完成这个任务和往后的任务。

开始本任务的先决条件

在开始这个任务之前,您必须完成前面的任务,也就是在 Nervos 的 EVM Layer 2 测试网上创建一个 Godwoken 帐户。您还需要前一个任务中的私钥和测试网地址才能继续。如果您还没有完成,请现在先去完成哦。

1. 准备你的以太坊私钥

在前面的任务中,您导出了Nervos CKB 的帐户私钥。接下来,我们需要为你的以太坊兼容层的账户提取私钥。在这里我们将使用此私钥做为工具在 Layer2 上部署智能合约。我们不建议将 Layer1 私钥回收来做为 Layer2 的私钥,这可能会导致之后的过程产生失败。

注意:对于这些我们在 Gitcoin 上布置的任务,永远不要使用与真实帐户相关联的私钥。下面的步骤将向您展示如何从 MetaMask 导出您的私钥,但请您永远不要使用用于实际资产的 MetaMask 钱包来这样做,因为这可能会泄露信息,从而危及您的帐户里的资产。

如过你需要些说明来告诉你如何从 Metamask 导出私钥,可以看这篇教学文

2.克隆并设置一个 Gitcoin Task Instruction 仓库

在这一步骤中,您将克隆 Gitcoin Task Instructions 的范例仓库。他包含了此任务和未来任务所需的各种范例代码。

如果不存在~/project 目录的话,创建一个。

Linux/MacOS 命令行语句: