Nervos x Gitcoin bounty 任务10: 在 Layer1 解锁资金来完成解锁程序

  • Nervos
  • 更新于 2021-09-17 21:09
  • 阅读 144

在 Godwoken 取款有两个步骤。第一部分是初始提现,第二部分是解锁资金。5 天挑战期过后才能解锁资金。这给了 Layer2 网络运营商一个检查和挑战恶意交易的时间。

在 Godwoken 取款有两个步骤。第一部分是初始提现,第二部分是解锁资金。5 天挑战期过后才能解锁资金。这给了 Layer2 网络运营商一个检查和挑战恶意交易的时间。

注1: Optimistic Rollup 的安全假设是网络中至少有一个诚实节点。 注2: 未来可能存在其他解决方案,允许更快地取款。

任务说明

在本任务中,您将使用 Godwoken Godwoken Examples Tools Package 的仓库来运行 “解锁(unlock)”命令。它将完成从 Nervos 的 Layer2 取款的过程。记住,您只能解锁您之前已经申请提取(Withdraw)的资金。

先决条件

在您开始这个任务之前,您必须完成启动取款(Withdraw)任务并等待五天。

你可以在这里找到 Godwoken 范例工具包( Godwoken Examples Tools Package )的安装说明。

1. 执行取款命令

假设您已经满足了前提条件,并创建了帐户,您将要使用 Godwoken 范例工具包来执行“解锁”命令。

cd godwoken-examples
node ./packages/tools/lib/account-cli.js unlock -p <YOUR_LAYER_1_PRIVATE_KEY> -r <INSERT_TESTNET_RPC_URL> -i <INSERT_TESTNET_INDEXER_URL>

注意:您传递给“解锁”命令的私钥需要与之前与“取款”和“存款”一起使用的 Layer 1 地址对应的私钥相同。

  1. <YOUR_LAYER_1_PRIVATE_KEY> :这是 Layer 1 账户的私钥,资金将被解锁并释放到该账户。始终确保您私钥的前缀为「0x」。
  2. <INSERT_TESTNET_RPC_URL> :您会用到的 CKB 测试网节点的 RPC URL。你可以设置你本地的测试网节点,或者你可以使用任何公共的节点。 本地测试网 CKB 节点链接:http://127.0.0.1:8114 公共测试网 CKB 节点链接:http://3.235.223.161:18114
  3. <INSERT_INDEXER_RPC_URL> :您将使用的测试网 CKB 索引器的 RPC URL。如果您使用的是本地索引器,这应该是您的本地地址;如果您使用的是公共索引器,这也可以是公共地址。 本地测试网 CKB 索引器链接:http://127.0.0.1:8116 公共测试网 CKB 索引器链接:http://3.235.223.161:18116

范例:填入含有所有变数的最终命令

cd godwoken-examples
node ./packages/tools/lib/account-cli.js unlock -p 0x79682c20bbcaf7fcf18eb0c69b133c872227ceb88971090e7f2242c80cd54d18 -r <http://3.235.223.161:18114> -i <http://3.235.223.161:18116>

注意:你传递来发起解锁命令的私钥必须要和你之前存款以及取款的私钥相同

  • 成功的输出范例如下
    LUMOS_CONFIG_NAME: AGGRON4
    Indexer is syncing. Please wait...
    Indexer synchronized.
    rollup_type_hash: 0x4cc2e6526204ae6a2e8fcf12f7ad472f41a1606d5b9624beebd215d780809f6a
    CKB address: ckt1qyq9u5vzgtklnqrr6cevra7w2utrsxmjgefs72sfju
    last_finalized_block_number 14813n
    [DEBUG]: withdrawalCell: {
    ...
    }
    withdrawal_block_number 14426n { last_finalized_block_number: 14813n }
    [INFO] found 1 withdrawal cells, only process first one
    withdrawal_witness: 0x0000000004000000
    txHash: 0x2ddf5ecf16ed561231c75292e3a80e1aaa432a11f4d815ffe4e2e9d468c90673
    current tx status: pending, ... waiting for 0 seconds pending
    ...
    current tx status: pending, ... waiting for 14 seconds pending
    current tx status: proposed, ... waiting for 15 seconds proposed
    ...
    current tx status: proposed, ... waiting for 19 seconds proposed
    tx 0x2ddf5ecf16ed561231c75292e3a80e1aaa432a11f4d815ffe4e2e9d468c90673 committed!

如果你看到交易已经被提交的信息,例如 "tx xyz committed!",那恭喜你 ?你已经成功的从 Nervos 的 Layer2 Godwoken 取款。现在你的资金已经在 Nervos 的 Layer1 供你使用了。如果你想的话随时都可以将他们再存到 Layer2 上面去。

潜在的可能错误

如果你看到 [INFO]: withdrawal cell not finalized 这代表你在申请取款后至今还不到五天。你可以比对一下 "last_finalized_block_number" 和 "withdrawal_block_number"看看你还需要等待多少区块。前者一定需要多于后者才行。这两个区块高度的值你都可以在控制台的输出看到,例如:

withdrawal_block_number 1210n { last_finalized_block_number: 1197n }

如果你只有看到 [ERROR]: No valid withdrawal cell found 的信息,那代表你没有发起取款。如果你真的运行了取款命令,那请确认你传送的是正确的 Layer1 地址。

如果你看见 TransactionFailedToResolve: Resolve failed Dead(OutPoint... 请试着再执行命令一次。这是由于 cell 竞争的关系,但是他最终会成功的。

任务提交

要完成这个任务,你必须要提交下列素材让评审检查:

  1. 在你运行“unlock”命令随后控制台的屏幕截图。
  2. 你在 Layer2 账户上使用的 Ethereum 地址。
  3. 与传递“Unlock”命令的私钥相关联的 Nervos Layer1 地址。 这能以“ ckb address” 的样子在控制台的输出中找到。

注意:你必须等待满五天的挑战期才能完成这个任务。如果你提交了不完整的取款截图,你的提交将被评委驳回。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Nervos
Nervos
Nervos Network 是一个开源的公链生态,包含以区块链技术为核心、相互兼容的一组分层协议,来解决区块链可扩展性上的困境。Nervos CKB 是一条基于 PoW 共识机制的多资产价值存储公链,是加密经济网络安全、可信并且可持续发展的根基,通过「价值存储」的加密经济设计使得原生代币 CKBytes 捕获整个网络的价值。