大规模采用的最大挑战之一是让应用程序对终端用户来说既安全又简单。对于开发人员来说,工具和基础设施是一个挑战,他们必须努力的在难用的工具和交付给用户的良好体验之间取得微妙平衡。这些工具通常很复杂,很难使用。基础设施缺乏标准化和无缝兼容性。
在本教程中,您将学习如何将现有以太坊应用程序移植到 Nervos 的 EVM 兼容的 Layer2 上运行。
在这个任务中,你将使用 Force Bridge 从以太坊 Rinkeby 测试网将 ETH 转到 Nervos Layer 2 上变成 ckETH。ETH 是以太坊上的原生资产,它在 Nervos 上使用 ckETH 来表示他是一个包装过的 sudt 通证。ckETH SUDT 通证是 Nervos 上的原生资产,它可以在 Layer1 和 Layer2 之间使用,并且得到Nervos 生态系统内所有工具的广泛支持。
为了使用在 Layer1 和 Layer2 之间移动的 SUDT 通证,您需要部署 ERC20 代理合约来与它们交互。这个特殊的 solidity 智能合约是由 Nervos 团队准备的,允许 EVM 与 Nervos 上的 SUDT 通证交互。
在本任务中,我们在 Layer1 上创建一个通证,然后将其移动到 Nervos 的 EVM兼容 Layer2 。Layer1 上通证牌将使用 SUDT 标准,这是 Nervos 上最基础的资产形式。当通证移动到 Layer2 时,它被转换为 ERC20 标准的通证,这是支持以太坊虚拟机(EVM)的区块链上最流行的通证标准。
在本任务中,我们将学习如何对前一个任务中部署的智能合约进行函数调用。我们将提供一些使用流行的 Web3.js 库的简单范例代码。这段代码将允许您与运行在 Nervos 的 Layer 2 i 上的智能合约进行交互,其方式与运行在以太坊上的智能合约几乎相同。
在 Nervos 的 EVM兼容的 Layer2 上编译和部署智能合约的过程,与以太坊上的过程有很多相似之处。我们只需要做一些小小的改变即可。
Polyjuice 的最终目标是提供与所有基于 EVM 的 dApp 和 EVM 工具的 100% 兼容性。然而,开发工作仍在进行中。这个目标还没有完全实现,但它正在日益接近。
Nervos 支持使用与以太坊兼容的智能合约,允许开发者使用目前最流行的 Solidity 智能合约语言创建 dApp。这是通过使用 Godwoken 和 Polyjuice 框架在基于 Layer 2 的执行环境中运行 EVM(以太坊虚拟机)来实现的。
EVM dapps 在 Nervos 上的运行方式与在以太坊上几乎相同。这样一来,dApp用户就可以继续使用最常见的 MetaMask 钱包,而无需安装任何新的钱包。熟悉以太坊的 dApp 用户也会有宾至如归的感觉!
在开始深入到更复杂的任务之前,您需要设置一个 CKB 节点 和 CKB 索引器(indexer)。这两个节点软件将会协同运作以支持 dApp 开发的需求。在往后我们使用的脚本会和测试网交互,并且依赖这些节点所提供的网络状态。
本页描述了参与任务的要求。在这里,你可以找到正确设置环境的链接和指南。