Nervos x Gitcoin bounty 任务2: 在 Polyjuice 上部署一个简易的以太坊智能合约

这篇文章主要介绍了Nervos x Gitcoin bounty 任务2: 在 Polyjuice 上部署一个简易的以太坊智能合约 ,文中通过代码以及文档配合进行讲解,很详细,它对在座的每个人的研究和工作具有很经典的参考价值。 如果需要,让我们与区块链资料网一起学习。

https://www.interchains.cc/24246.html

Nervos x Gitcoin bounty 任务2: 在 Polyjuice 上部署一个简易的以太坊智能合约是很好的区块链资料,他说明了区块链当中的经典原理,可以给我们提供资料,Nervos x Gitcoin bounty 任务2: 在 Polyjuice 上部署一个简易的以太坊智能合约学习起来其实是很简单的,

不多的几个较为抽象的概念也很容易理解,之所以很多人感觉Nervos x Gitcoin bounty 任务2: 在 Polyjuice 上部署一个简易的以太坊智能合约比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难

Nervos x Gitcoin bounty 任务2: 在 Polyjuice 上部署一个简易的以太坊eth智能合约

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

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

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

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

任务说明

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

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

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

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

开始本任务的先决条件

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

1. 准备你的以太坊eth私钥

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

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

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

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

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

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

Linux/MacOS 命令行语句:

mkdir -p ~/projects

Windows (PowerShell) 命令行语句:

New-Item -ItemType Directory -Force -Path ~/projects

进入~/project 目录然后克隆仓库。

cd ~/projects git clone <https://github.com/kuzirashi/gw-gitcoin-instruction> cd gw-gitcoin-instruction

再来我们会安装所有的依赖

yarn run install-all

3.编译智能合约并且复制物件

在部署智能合约之前,需要对其进行编译。这可以通过几种方式实现,这次我们的指令将使用 Truffle 编译器来编译它。如果你有自己喜欢的替代方法,当然也可以随意使用。

使用 Truffle 编译器

下方提供的是一个你可以拿来使用的简易智能合约范例,但是你可以在这个任务中使用任何你想使用的智能合约 。下面的 solidity 智能合约示例是 SimpleStorage.sol ,它位于src/examples/2-deploy-contract/contracts 这个目录中。

pragma solidity >=0.8.0;  contract SimpleStorage {   uint storedData;    constructor() payable {     storedData = 123;   }    function set(uint x) public payable {     storedData = x;   }    function get() public view returns (uint) {     return storedData;   } }

下面的命令可以使用 Truffle 编译器将 solidity 编译成 EVM bytecode。这个过程我们将使用Docker。如果您没有安装 Docker,请重新访问任务设置和需求页面。

cd ~/projects/gw-gitcoin-instruction/src/examples/2-deploy-contract/ yarn compile

在这些命令完成了以后,你将会在 build/contracts 的目录下找到编译好的文件夹。举个例,他可能长得像这样src/examples/2-deploy-contract/build/contracts/SimpleStorage.json

替代方案:使用 Remix 编译器

如果出于某些原因,Truffle 编译器不能工作,你可以使用基于网页端的 Remix 编译器作为替代,但我们不会提供使用 Remix 的详细说明。只有当您已经熟悉这个工具,或者您在使用 Truffle 编译器时遇到困难时,才建议您使用这个工具。

在上传和编译你的 Solidity 代码后,你会收到一个 JSON 文件,并且可以在 Remix 的 “artifacts” 目录中找到。之后请您将这个文件的内容放在src/examples/2-deploy-contract/build/contracts目录中。

4.用 Web3.js 部署一个智能合约

[gw-gitcoin-instruction/src/examples/2-deploy-contract/](<https://github.com/Kuzirashi/gw-gitcoin-instruction/blob/master/src/examples/2-deploy-contract>) 目录中,您将发现部署智能合约到 Nervos Layer 2 所需的脚本。

首先,更新文件 gw-gitcoin-instruction/src/examples/2-deploy-contract/index.js 中的以太坊eth私钥。用你的以太坊eth私钥替换< YOUR_ETHEREUM_PRIVATE_KEY> 。这应该是与之前你充值的以太坊eth账户对应的私钥。这将用于在 Layer2 部署智能合约。

透过控制台使用以下命令来运行 [gw-gitcoin-instruction/src/examples/2-deploy-contract/index.js](<https://github.com/Kuzirashi/gw-gitcoin-instruction/blob/master/src/examples/2-deploy-contract/index.js>) 脚本

cd ~/projects/gw-gitcoin-instruction/src/examples/2-deploy-contract/ node index.js SimpleStorage.json

运行该命令后,应该部署合约时不会出现任何错误。到时您将看到一个交易哈希和一个以太坊eth合约地址。交易哈希由 Godwoken 提供,以太坊eth合约地址由 Polyjuice 提供。记录这些值,因为它们在将来的任务提交中会需要用到的。

输出示例:

➜ node index.js SimpleStorage.json Deploying contract... Transaction hash: 0x266c4887b8ad47456cc12e135858d8cd96b4795f8a93036b18d917df970781ec Deployed contract address: 0xC46e27169824290EcaEf6E14503C1a6DE72d41B0

任务提交

为了完成这项任务,你需要提交以下材料:

  1. 成功部署智能合约后,控制台输出的屏幕截图。
  2. 合约成功部署的交易哈希( text 格式)。
  3. 合约部署后的合约地址( text 格式)。

部分转自网络,侵权联系删除www.interchains.cchttps://www.interchains.cc/24246.html

区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » Nervos x Gitcoin bounty 任务2: 在 Polyjuice 上部署一个简易的以太坊智能合约

提供最优质的资源集合

立即查看 了解详情