Provider API Keys

( 太长不看版: – 使用下面的链接注册来获得您自己的API密钥,以提高您的应用程序性能 )

当使用由API服务商(例如Alchemy,EtherscanINFURA)支持的Provider时, 他们都需要一个API密钥,从而能够跟踪每个项目及其使用和权限。

ethers.js 库 为上述的API服务商提供了默认的API密钥,因此每个Provider都可以轻松地连接————开箱即用。

这些API密钥是由后端服务作为社区资源提供的,用于低流量项目和早期原型开发。

因为这些API键是由所有用户共享的(没有获得自己的API密钥),所以它们被经常被使用,这意味着重新请求发生得更频繁,响应也更慢。

强烈建议你从下列的API服务商注册一个免费的API密钥,这有很多好处(可能有些差别,这取决于具体的API服务商):

Etherscan(以太坊区块浏览器)

Etherscan 是以太坊区块资源管理器,它可能是最有用的构建和调试以太坊应用程序的开发工具。

Etherscan提供了大量的 API endpoints 集合, 包含了所有能够用来与以太坊区块链交互的操作。

免费注册一个 API key

优点:

INFURA

INFURA服务已经存在相当一段时间了,鲁棒性强、可靠性高,强烈推荐。

它们提供了一个标准的JSON-RPC接口和一个WebSocket接口,这使得与标准工具的交互更加通用、简单和直接。

在 INFURA 免费注册一个 Project ID

优点:

Alchemy

Alchemy服务已经有几年的历史了,它也具备强鲁棒性和高可靠性。

它们提供了一个标准的JSON-RPC接口和一个WebSocket接口,以及一组用于与通证(tokens)交互和帮助调试的高级API。

在 Alchemy 免费注册一个 API key

优点:

Pocket Gateway

在 Pocket 免费注册一个 API key

Benefits:

创建默认的 Provider

默认的提供者连接到多个后端,并在内部验证它们的结果,这使得对第三方服务的高度信任变得很简单。

第二个可选参数允许为每个内部创建的Provider指定API keys,任何被遗漏的API keys将返回使用该服务的默认API keys。

极度推荐 您为每个服务提供一个API,让您的应用程序性能实现最大化。

将 API Keys 传到 getDefaultProvider
// 使用主网 const network = "homestead"; // 指定你的API keys // 每个都是可选的,如果省略它,则为默认值 // 该服务的API key将被使用 const provider = ethers.getDefaultProvider(network, { etherscan: YOUR_ETHERSCAN_API_KEY, infura: YOUR_INFURA_PROJECT_ID, // 或者使用项目私钥: // infura: { // projectId: YOUR_INFURA_PROJECT_ID, // projectSecret: YOUR_INFURA_PROJECT_SECRET, // }, alchemy: YOUR_ALCHEMY_API_KEY, pocket: YOUR_POCKET_APPLICATION_KEY // 或者使用应用私钥: // pocket: { // applicationId: , // applicationSecretKey: // } });