725
社区成员
Aurora 是来自第一层区块链 NEAR 的 EVM 兼容网络,它允许您利用现有的以太坊 dapp 开发工具套件(如 Solidity、Truffle 和 Infura)来创建 NFT 和其他智能合约。
这种工作流程有很多好处,因为 NEAR 是一个碳中和的区块链,具有快速的最终确认(2-3 秒),并且有了 Aurora 之后,开发人员可以享受它的所有好处,而无需学习新的编程语言和工具。
在本教程中,您将学习如何:
使用 Infura 在 NEAR 的 EVM 兼容解决方案 Aurora 上创建 NFT
使用 Rainbow 桥接资产从以太坊转移到 Aurora
比较 Aurora 和以太坊上铸造 NFT 的 gas 成本
Aurora 开发入门
在 Infura 注册一个帐户。单击 CREATE NEW KEY 创建新密钥,并获取您的 Aurora 测试网 RPC 端点。查看文档以获取有关创建新密钥的更多详细信息。
配置和设置
查看 Github 上的参考应用,使用 git clone来拉取项目。
打开终端并执行以下命令:
git clone git@github.com:anataliocs/aurora-example.git
然后将项目导入到您的 IDE 中。
设置您的 ENV 文件
安装 dotenv npm 包,以便能够使用.env 文件
yarn add dotenv
在您的项目根目录下用以下命令创建一个 .env 文件:
touch .env
设置您的 .env文件:
MNEMONIC=
WEB3_INFURA_API_KEY=
查看文档,了解更多关于获取 Aurora 测试网密钥的内容。打开一个终端,编译您的 Truffle 中的合约:
InfuraAuroraTestNft.sol
Migrations.sol
编译合约
现在,让我们使用 Truffle 来编译您的智能合约,以确认一切设置都是正确的。
truffle compile
这个命令会在你的build/contracts文件夹中生成 JSON 格式的文件。
将您的合约部署到 Aurora 测试网上
您需要一个带有 Aurora 测试网 ETH 的钱包才能部署到 Aurora 测试网。如果您还没有钱包,请查看这篇文章以了解如何使用 Metamask 进行设置。
💰 获取测试网 Aurora ETH
首先,您的 Aurora 钱包中需要一些测试 ETH。
导航至:Aurora 水龙头获取一些 Aurora ETH
使用我们的水龙头获取 Aurora ETH
Aurora
为您的钱包注资:
选择测试网
连接您的钱包
请求测试网 ETH
ℹ️ 或者,您也可以使用彩虹桥从以太坊测试网络(例如 Goerli)桥接测试 ETH,我们将在本文后面讨论。
将您的智能合约部署到 Aurora
现在我们可以使用 Truffle 将我们的 solidity 合约部署到 Aurora 测试网络!如果您是 Truffle 的新手,请查看此 Truffle 入门指南。
在终端中执行以下命令:truffle migrate --network aurora下面是一个部署信息的例子:
然后我们可以在 Aurora Testnet Explorer 上查看已部署的合约。
Aurora 上部署的合约是一种以太坊账户。
Aurora 上的智能合约
与其他 EVM 兼容网络一样,Aurora 上的智能合约具有以下特征:
根据网络存储量收取费用
无法主动发起交易(但这可能会在未来的 EIP 中改变)
外部帐户(钱包)可以触发执行您的智能合约的可用函数
合约不像钱包那样拥有私钥
您可以在此处查看已部署合约的示例:
https://testnet.aurorascan.dev/address/0xB752f3637d7E42b158dd1463f672c82B05ADa366
Aurora 测试网合约创建交易
当您运行truffle migrate命令时,这将创建一个交易,您的合约账户将被创建。
我们还可以在这里查看创建此合约的交易:https://testnet.aurorascan.dev/tx/0xb142fe0f2d1ad0b4bc563daf82c37825f05e9b1ee8a26af86184394f77a54e30
Aurora 合约创建交易细节
状态:成功区块:112517167
交易费用:0.00018552233 ETH
已使用的gas:2,650,319 (26.5%)
gas价格:0.00000000007 ETH(0.07 Gwei)
交易成本是使用的 gas 数量 * gas 价格
2,650,319 * 0.00000000007 ETH = 0.00018552233 ETH
正如我们所看到的,Aurora 上的交易非常划算,而且通常比以太坊 L1 主网便宜。交易最终确认的速度非常快,您可以通过“块确认”发生的速度以及“状态”从Pending到 Success的转换速度看出来。
在下一节中,我们需要获取已部署的合约地址并将其添加到我们的 .env 文件中,以便随时使用。
在 Aurora 测试网上铸造一个 NFT
我们将通过使用 web3.js 库和一个自定义的 javascript 脚本调用我们部署的智能合约,在 Aurora 上铸造一个 NFT。
铸造 NFT
要在 Aurora 测试网上铸造NFT,我们需要做以下工作:
更新配置
运行 mintAuroraNft.js 脚本来调用已部署的合约
等待交易确认
验证我们的钱包是否收到了NFT
更新 .env 文件
我们需要从上一步中获取已部署的合约地址,并将其添加到我们的配置中,以便我们的脚本知道已部署的合约在 Aurora 测试网上的位置,以便我们能够调用它。
在您的 .env文件中添加以下字段:
上文中已部署的合约的哈希地址
钱包助记词,来自您专门用于开发的 Metamask 钱包
⚠️ 注意:不要使用包含有价值的主网资产的钱包进行开发!
DEPLOYED_AURORA_CONTRACT=
MNEMONIC=
铸造脚本如何工作
在您的 IDE 中打开 mintAuroraNft.js 这个文件。
在 scripts/mintAuroraNft.js 的第3行,我们可以看到部署的合约地址和钱包都是.env文件中获取的。
在 scripts/mintAuroraNft.js 的第10行,我们可以看到合约被初始化为一个 web3.eth.Contract对象。
在 scripts/mintAuroraNft.js 的第19行,我们调用了合约对象的 mint()方法,该方法返回一个 promise,即返回触发 mint 操作的 Aurora 交易。
运行铸造脚本
现在我们对该脚本的工作原理有了一些了解,让我们执行该脚本并铸造一个新的 NFT。truffle exec scripts/mintAuroraNft.js --network aurora
该脚本将按以下步骤执行您的交易:
使用.env文件中的 MNEMONIC 指定的钱包来发起交易
调用部署合约的铸造操作来铸造一个新的InfuraAuroraNFT
将铸造的 NFT 发送到 .env文件中 WALLET_ADDRESS字段所配置的钱包
您将在控制台看到以下输出:
查看铸造操作交易的结果
现在我们来看看 AuroraScan 上的交易:
https://testnet.aurorascan.dev/tx/0x977851d897e29ac1fce9c41e7d9d4f3d3093ae7ce78a33dc4c30bef9a795d592
使用公式 使用的 gas 数量 * gas 价格
93,679 * 0.00000000007 ETH = 0.00000655753 ETH
在 Aurora 上铸造交易在规模上极具成本效益。
您的结果在主网上可能会有所不同,但 Aurora 将比以太坊 L1 主网上便宜得多,基本上所有可比较的操作都允许您的 dapp 以具有成本效益的方式扩展,同时保持在去中心化、碳中性区块链上运行的好处。
使用 Aurora Rainbow 桥
ETH <> NEAR Rainbow 桥允许用户将某些 ERC-20 代币等资产从以太坊无缝迁移到 NEAR。该
桥促进了以太坊、NEAR 和 Aurora 之间资产的迁移!
关于将资产从以太坊迁移到 NEAR 的细节:
一旦在 NEAR 上,交易将在 1~2 秒内确认由于桥梁需要在以太坊上进行交易,你将不得不以 ETH 支付gas费用
将资产从以太坊发送到 NEAR 需要大约 6 分钟(20个区块)
迁移一个普通的 ERC-20 平均成本约为 10 美元(根据撰写本文时的gas成本计算)
需要注意的是,将资产从 NEAR 迁移回以太坊,在gas费用和时间方面的成本更高
连接到 Rainbow 桥
您可以在这里找到测试网 Rainbow 桥。
您将需要一个 Ethereum 钱包和一个 NEAR 钱包来从 Ethereum 迁移到 NEAR。
然而,您可以只使用 Metamask 来从以太坊桥接到 Aurora!由于 Aurora 与 EVM 兼容,您可以在 Metamask 上使用 Aurora,就像你使用 Ethereum 或它的 L2 网络一样。
将资产从以太坊迁移到 Aurora
选择 Ethereum 作为 "转出 "链
选择 Aurora 作为 "转入 "链然后
点击 "连接 "按钮,连接到 Metamask
目前您只能通过桥转移 ETH、FAU 和 USDC
我们将在下一步介绍转移过程,将一些 ETH 从以太坊的 Goerli 测试网转移到 Aurora。
在以太坊测试网铸造一个 NFT
我们还将把 InfuraAuroraTestNft 智能合约部署到以太坊 Goerli 测试网。由于 Aurora 与 EVM 兼容,我们可以在这两个网络上部署相同的合约!
部署合约首先,我们将智能合约部署到 Goerli 测试网上。
执行以下命令:truffle migrate --network goerli
记住要从部署信息中获取contract address合约地址。
然后我们可以在Goerli Etherscan上查看部署的合约。我们可以在这里查看创建该合约的
Goerli 测试网交易:
https://goerli.etherscan.io/tx/0xc8c2eee511b342ce5e66c8fa17e976bac205ec21d5d0689624423899e5e11a73
Goerli 交易详情
状态:成功
区块:8300896
交易费用:0.011030038082734622 Ether
使用的 gas:2,650,319 (80%)
gas 价格:0.000000004161777538 Ether(4.161777538Gwei)
交易的成本是 使用的 gas 数量 * gas 价格
2,650,319 * 0.000000004161777538 ETH = 0.011030038082734622 Ether ETH
我们可以看到,在 Ethereum Goerli 上的交易比在 Aurora 上的交易要贵一些。虽然使用的 gas 相同,但 gas 价格明显较高(Aurora 为 0.07 Gwei,Goerli 为 4.161777538 Gwei),导致交易费用较高。
在这个例子中,Aurora 的 gas 价格是 Goerli gas 价格的 1.6%。你在主网上的体验可能会有所不同,但一般来说,Aurora 会比 Ethereum L1 主网上的价格便宜很多。
在下一节中,我们需要获取部署的合约地址,并将其添加到我们的 .env文件中。
更新.e
在 .env 文件中添加以下字段:
部署到 Goerli 测试网的 InfuraAuroraTestNft 合约的合约地址
DEPLOYED_GOERLI_CONTRACT=
在 Goerli 上铸造 NFT执行下面的脚本,在 Goerli 上铸造一个 NFT。这个脚本会和我们在 Aurora 上铸造的脚本一样工作。
truffle exec scripts/mintGoerliNft.js --network goerli
从 Goerli 到 Aurora 测试网的资产桥接
现在让我们尝试使用测试网 Rainbow 桥将一些 Goerli ETH 桥接到 Aurora。
导航到:https://testnet.rainbowbridge.app/transfer
连接 Metamask 钱包在 "转出 "栏中选择以太坊
在 "转入 "栏中选择 Aurora
点击 "开始新的转移"
选择ETH
输入要转账的金额
点击 "继续"
然后在下一个屏幕上点击 "确认转账"
就这样, 您已经成功地将 ETH 从 Goerli桥接到 Aurora。Aurora 提供了与以太坊和 NEAR 生态系统的深度互操作性,因此您可以利用您现有的 Solidity 和 Truffle 开发工具套件以及 NEAR 生态系统中的原生以太坊资产!
Rainbow 桥交易
现在让我们来看看实际的桥接交易:
https://goerli.etherscan.io/tx/0x16fb3c642d136560746ef6a6f00bdfdffb3ea5a6d35885f3b084b089ef964147
我们可以看到,1个 ETH 从我们的地址转移到了 Rainbow 桥智能合约 0x84a82bb39c83989d5dc07e1310281923d2544dc2。
请查看这篇文章,了解更多关于 Rainbow 桥内部工作的细节。
结论
您现在应该能够探索 NEAR 和以太坊生态系统之间的深度互操作性。
💡 我们在这次开发者之旅中学到了很多东西:
由于 Aurora 与 EVM 相兼容,您可以将用 Solidity 编写的相同智能合约部署到 Aurora 和以太坊
您可以将以太坊原生资产桥接至 Aurora 或 NEAR,反之亦然
您可以使用现有的以太坊开发工具(例如 Infura 和 Truffle)将智能合约部署到以太坊和 Aurora 区块链
📚 进一步阅读
想了解更多关于 Aurora 的信息?
请查看以下资源。
Infura 文档:https://docs.infura.io/infura/networks/aurora
Aurora 文档:https://doc.aurora.dev/
使用 Truffle 部署智能合约:https://doc.aurora.dev/interact/truffle/
了解 Aurora DAO:https://aurora.dev/dao
在 YouTube 上关注 Infura:https://www.youtube.com/@Infura/videos
在 YouTube 上关注 Aurora:https://www.youtube.com/watch?v=ibST7Dq8BY8
💡受到启发,想加入区块链的革命性世界?今天就来看看https://consensys.net/careers/
💻 想开始您的 Web3 开发者之旅吗?https://infura.io/register
📖 阅读更多类似的故事:https://blog.infura.io/
➕关注Infura。
https://twitter.com/infura_io
https://discord.gg/RF7N6RHaV8
https://www.linkedin.com/company/infuraio/
https://github.com/INFURA
https://www.youtube.com/c/Infura
咨询我们的区块链专家
我们的全球解决方案团队提供区块链培训、战略咨询、实现服务和合作机会。
请与我们联系,了解更多资讯:wechat@consensys.net