在本任务中,我们在 Layer1 上创建一个通证,然后将其移动到 Nervos 的 EVM兼容 Layer2 。Layer1 上通证牌将使用 SUDT 标准,这是 Nervos 上最基础的资产形式。当通证移动到 Layer2 时,它被转换为 ERC20 标准的通证,这是支持以太坊虚拟机(EVM)的区块链上最流行的通证标准。

在 Nervos 的 Layer2 使用 ERC20 通证的原因是这样能确保与 EVM 智能合约的完全兼容性。这能让既存的那些适用于 ERC20 代币标准的智能合约无需修改就能继续运作。由于 EVM Layer2 是 Optimistic rollup,因此任何基于 Godwoken 的dApp 在将立即获得更高的 TPS,同时对所有用户的交易费用也将大幅降低。

在未来,Godwoken + Polyjuice 这个 Layer2 还可以添加对其他区块链的支持,如 Cardano、Polkadot 和 Stellar。这使得 Nervos 能够支持几乎任何平台、任何公链的智能合约,以及它们各自的通证标准。基于任何标准的所有通证也将能够在不同层和不同的执行环境之间自由转移,从而实现以前在许多其他平台上难以实现的资产转移能力。

任务说明

注意:在进行这个任务前,我们推荐你先看一下任务提交的部份,这样一来你可以知道你要提交说明材料给评委审批。

我们将首先在 Layer1 上发出一个 SUDT 通证。为此,您需要使用你在测试网上已经存入 CKBytes 的 Layer1 帐户的私钥。这个私钥您应该已经从前面的任务中获得了。有了含有 ckbytes 的帐户后,可以使用 sudt-cli 这个工具在 Layer1 测试网上创建一个 sudt 通证。

注意:你的私钥是用来保护你的账户和账户内的所有资金和资产。保证你的私钥安全,并且只使用您可以信任的工具这两点是重要的。在这些任务中,我们将只会使用测试网上的资金,以及没有价值的资产,这样一来你可以在知道这里任何风险的前提下毫不担心地进行操作。

1. 设置一个具有资金的 Layer1 账户

第一步是用测试网的 ckbytes 建立一个账户。如果您在以前的任务中完成了这个步骤,您可以直接用现有帐户。如果没有,你可以先完成本教程中的步骤。

在您的帐户设置好,资金也存入了之后,请记录下您的私钥和相应的测试网地址。然后你将可以使用 [sudt-cli](<https://github.com/Kuzirashi/gw-gitcoin-instruction/blob/master/src/conceptual-explainers/tooling.md#sudt-cli>)工具在 Nervos 的 Layer1 上发行通证!

2.使用 sudt-cli 工具在 Layer1 上发行 SUDT 通证

下一步是在 Nervos 的 Layer1 上创建一个 SUDT token。这个步骤您可以使用 sudt-cli 命令行工具完成。此工具将会使用您的私钥来访问相应帐户上的资产,以创建 SUDT 通证。

您可以按照本教程中的说明使用 sudt-cli ,并且在测试网上使用您的 Layer1 私钥发出和使用SUDT通证。

3. 设置 Godwoken Example 工具包

下一步是克隆 Godwoken Examples工具包并准备来使用他。这个工具包包含了我们与 Godwoekn 交互所需要的代码。

你可以参照这个教程的说明来设置 Godwoken Example 工具包。

4.存入 Layer1 的 SUDT 通证到 Layer2 以创建一个 Godwoken 账户

要将您的SUDT 通证存储到 Layer2 ,您需要在 godwoken-examples 的目录中执行以下命令。将下面命令模板中的<VARIABLES> 替换为与您的帐户和节点信息匹配的值。

node ./packages/tools/lib/account-cli.js deposit-sudt -m 20 -s <INSERT_SUDT_ISSUER_LOCK_HASH> -p <INSERT_PRIVATE_KEY> -l <INSERT_ETH_ADDRESS> -r <INSERT_TESTNET_RPC_URL> -i <INSERT_TESTNET_INDEXER_URL>