如何使用Ethers.js连接到以太坊网络

  • QuickNode
  • 发布于 2024-10-10 18:22
  • 阅读 18

本文介绍了如何在dApp开发中使用ethers.js库,包括安装步骤、连接以太坊网络并获取最新区块高度的方法。

概述

当有人想到开发 dApp 时,首先想到的工具是 web3.js,这非常普遍,因为它在社区中的受欢迎程度和广泛的应用场景,dApp 开发一直在持续增长,有很多开发者想要学习 dApp 开发。web3.js 库有时并不适合,因为它的包体积过大。所以这里 ethers.js 库就派上了用场。ethers.js 是 web3.js 库的替代品,与 web3.js 相比,它非常紧凑。压缩后只有 88kb,ethers.js 是开源的,并且经过了充分的测试,由专门的贡献者维护。

ethers.js 非常适合那些对 dApp/区块链开发相对较新的人,因为它非常易于使用。许多新公司和项目更倾向于使用 ethers.js,而不是像 web3.js 这样的其他库,因为它在浏览器中的性能表现更好。Typescript 最近非常流行,所以如果你是 Typescript 爱好者——不用担心,ethers.js 的开发者看到了未来,并通过完整的 Typescript 源代码使其具有未来性。

在本文中,我们将介绍如何安装 Ethers.js,使用它连接到 web3 提供商,并获取最新的区块高度。

前提条件

  • 系统中安装了 Node.js 和 Ethers.js(版本 6)
  • 一个文本编辑器
  • 终端(也称为命令行)

安装 Ethers.js 库

首先,让我们确保已经安装了 NodeJS。很简单,打开终端并运行:

$ node -v

如果没有安装,可以从官方网站下载 NodeJS 的 LTS 版本。

如果你想在浏览器中使用 Ethers.js,只需在 HTML 文件中添加以下脚本标签:

<script type="module">
  import { ethers } from "https://cdnjs.cloudflare.com/ajax/libs/ethers/5.7.2/ethers.min.js";
  // 你的代码在这里...
</script>

或者

现在让我们安装 ethers.js 包,它将帮助我们连接到以太坊网络并构建出色的 dApp 前端。你可以通过 npm 在命令行中安装它:

$ npm install --save ethers

在这一步骤中最常见的问题是 `node-gyp` 的内部失败。你可以按照 node-gyp 安装说明 进行操作。

注意: 如果你遇到 node-gyp 问题,你需要确保你的 Python 版本与上述说明中列出的兼容版本之一匹配。

另一个常见的问题是缓存陈旧,只需在终端中输入以下命令即可清除 npm 缓存:

$ npm cache clean

如果一切顺利并且 ethers.js 安装正确,那么你已经成功了一半!

设置你的 QuickNode 端点

对于我们今天的用途,我们可以使用几乎任何以太坊客户端,例如 Geth 或 OpenEthereum(前身为 Parity)。由于对于仅仅查询区块高度来说,这有点过于复杂,我们将创建一个免费的 QuickNode 账户 这里 并生成一个以太坊端点。创建免费的以太坊端点后,复制你的 HTTP Provider 端点:

Quicknode 以太坊端点的截图,带有 HTTP 链接和 WSS

你稍后会需要这个,所以复制并保存它。

通过 ethers 连接

现在让我们创建一个简短的脚本,我们称它为 `index.js`,这将从我们的节点获取区块高度。你可以将其复制/粘贴到你的代码编辑器中:

var ethers = require('ethers');
var url = 'ADD_YOUR_ETHEREUM_NODE_URL';
var customHttpProvider = new ethers.JsonRpcProvider(url);
customHttpProvider.getBlockNumber().then((result) => {
    console.log("Current block number: " + result);
});

所以,请继续将 ` ADD_YOUR_ETHEREUM_NODE_URL ` 替换为上一节中的 http provider。

简要解释一下上面的代码——我们导入了之前安装的 ethers 库(第 1 行),设置我们的以太坊节点 URL(第 2 行),实例化一个 ethers JsonRpcProvider 实例(第 3 行)。最后,我们在 ethers json rpc 对象上调用 getBlockNumber,并等待服务器的成功结果,然后将结果记录到控制台(第 4-6 行)。

将此代码片段保存在 index.js 文件中,我们将很快运行它。

确认它正在工作

使用 node 命令运行我们刚刚制作的脚本,你将看到最新的以太坊区块链:

$ node index.js

你应该会看到以下内容:

输出

就是这样!你已经使用 ethers.js 连接到了以太坊网络。你可以查看 ethers GitHub 获取更多信息或查看其他 ethers.js 项目。如果你想在前端应用中使用它,可以配置 webpack 将其编译为适合浏览器的内容。

订阅我们的 newsletter 以获取更多关于以太坊的文章和指南。如果你有任何反馈,请随时通过 Twitter 与我们联系,如果你有任何问题,可以随时通过我们的 Discord 社区服务器与我们聊天,感谢 :)

额外内容

如果你想在 truffle 中使用 ethers.js,有一个包可以让它成为可能,即由开发 ethers.js 的同一开发者开发的 ethers-cli,它取代了 truffle 的许多部分,并包含了一个 TestRPC,以及 ethers 钩子,使其全部工作。

如果你想为所有钱包实例初始化提供者,使用 ethers 非常简单,只需在代码中添加以下内容:


const provider = ethers.getDefaultProvider();

>- 原文链接: [quicknode.com/guides/eth...](https://www.quicknode.com/guides/ethereum-development/getting-started/connecting-to-blockchains/how-to-connect-to-ethereum-network-with-ethersjs)
>- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuickNode
QuickNode
江湖只有他的大名,没有他的介绍。