后浪云Moralis教程:Moralis 计费和费率限制

防止滥用

如果您开始收到 Cloudflare 错误,例如 Cloudflare 错误 1020 – 很可能您被我们的滥用预防系统标记,并且 Cloudflare 代表我们阻止了您的访问。

您可能还会看到其他错误消息。

以下是您被暂时禁止的几种情况。

  1. 如果您正在发送请求,尽管您的密钥已经受到速率限制,我们可能会暂时禁止您。 例如,假设您的计划允许您每秒执行 30 个请求。 如果您尝试在同一秒内发出 200 个请求 – 您很可能会被暂时禁止。
  2. 每个项目使用一个密钥。 例如,如果您创建 100 个免费帐户并使用这些帐户的密钥发送请求 – 与同一项目相关的所有帐户都将被禁止。
  3. 如果您认为自己被错误地暂时禁止,请发送电子邮件至 [email protected],我们会尽快为您提供帮助。

如何避免被封号?

  1. 不要使用超过 1 个 Moralis 帐户。
  2. 在您的应用程序中实施速率限制逻辑,这样您就不会尝试执行超出计划允许的请求。
  3. 如果您有任何问题,请发送电子邮件至 [email protected]

请求权重

所有 Moralis 计划对您每月可以提出的请求数量都有很大的限制。 您有多少包含的请求取决于您拥有的计划,请查看定价页面了解更多详细信息。

在大多数情况下,对 Speedy Nodes 或 Web3 API 的一次请求计为对您的每月配额或允许的速率限制的一次请求。

但是,一些 Speedy Node 方法和 API 请求的计算量非常大,因此算作多个请求。

通过给予一些繁重的要求更高的权重,我们确保您只为使用的东西付费,而不是多花一分钱 – 期间! 通过这种方式,您可以获得大多数用例的廉价请求,同时我们可以通过权衡计算成本高昂的端点来保护我们的系统免受滥用。

有关加权的 Speedy Node 方法和 API 端点的详细信息,请参阅下表。

快速节点请求

Moralis Speedy 节点的请求限制为每批 50 个请求。

Method

Cost

eth_maxPriorityFeePerGas

1 request

eth_getTransactionReceipt

2 requests

eth_getUncleByBlockHashAndIndex

2 requests

eth_getUncleByBlockNumberAndIndex

2 requests

eth_getTransactionByBlockHashAndIndex

2 requests

eth_getTransactionByBlockNumberAndIndex

2 requests

eth_getUncleCountByBlockHash

2 requests

eth_getUncleCountByBlockNumber

2 requests

web3_clientVersion

2 requests

web3_sha3

2 requests

eth_getBlockByNumber

2 requests

eth_getStorageAt

2 requests

eth_getTransactionByHash

2 requests

trace_get

2 requests

eth_gasPrice

2 requests

eth_getBalance

2 requests

eth_getCode

2 requests

eth_getFilterChanges

2 requests

eth_newBlockFilter

2 requests

eth_newFilter

2 requests

eth_newPendingTransactionFilter

2 requests

eth_getBlockTransactionCountByHash

2 requests

eth_getBlockTransactionCountByNumber

2 requests

eth_getProof

2 requests

eth_getBlockByHash

2 requests

trace_block

3 requests

parity_getBlockReceipts

3 requests

eth_getTransactionCount

3 requests

eth_call

3 requests

trace_transaction

3 requests

eth_getFilterLogs

8 requests

eth_getLogs

8 requests

trace_call

8 requests

trace_callMany

8 requests

trace_rawTransaction

8 requests

trace_filter

8 requests

eth_estimateGas

9 requests

eth_sendRawTransaction

25 requests

debug_traceTransaction

31 requests

trace_replayTransaction

298 requests

trace_replayBlockTransactions

298 requests

API 请求

Path

Weight

/info/endpointWeights

0 request

/{address}

1 request

/{address}/balance

1 request

/erc20/metadata

1 request

/erc20/metadata/symbols

1 request

/erc20/{address}/allowance

1 request

/resolve/{domain}

1 request

/{pair_address}/reserves

1 request

/resolve/{address}/reverse

1 request

/web3/version

1 request

/{address}/events

2 requests

/{address}/erc20/transfers

2 requests

/erc20/{address}/transfers

2 requests

/block/{block_number_or_hash}/nft/transfers

2 requests

/nft/{address}/{token_id}

2 requests

/nft/{address}/{token_id}/transfers

2 requests

/{address}/logs

2 requests

/{address}/function

2 requests

/{address}

2 requests

/erc20/{address}/price

3 requests

/nft/{address}/trades

4 requests

/nft/{address}/lowestprice

4 requests

/{address}/erc20

5 requests

/block/{block_number_or_hash}

5 requests

/nft/search

5 requests

/{address}/nft

5 requests

/{address}/nft/transfers

5 requests

/{address}/nft/{token_address}

5 requests

/nft/{address}

5 requests

/nft/{address}/transfers

5 requests

/nft/{address}/owners

5 requests

/nft/{address}/metadata

5 requests

/nft/{address}/sync

5 requests

/nft/{address}/{token_id}/metadata/resync

5 requests

/nft/transfers

5 requests

/nft/{address}/{token_id}/owners

20 requests

注意:对于确切的速率限制值,可以使用端点 ​https://deep-index.moralis.io/api/v2/info/endpointWeights​。

注意:​/nft/{address}/{token_id}/metadata/resync​ 的计费成本为 5,速率限制成本为 25,这意味着您可以使用免费套餐每秒调用一次,使用免费套餐每秒只能调用两次 专业计划

输出示例:

[
  {
    "endpoint": "getBlock",
    "path": "/block/{block_number_or_hash}",
    "price": 1
  },
  {
    "endpoint": "getContractEvents",
    "path": "/{address}/events",
    "price": 2
  },
  {
    "endpoint": "getTransactions",
    "path": "/{address}",
    "price": 1
  },
 ...
  {
    "endpoint": "endpointWeights",
    "path": "/info/endpointWeights",
    "price": 0
  }
]

为什么我的费率有限?

您需要了解两种不同类型的速率限制。

在 SDK 中使用 Moralis.Web3API 时的速率限制

错误 141 – 服务器和客户端之间的速率限制

第一种速率限制是保护您的 Moralis 服务器免受来自客户端的垃圾邮件请求。

如您所知 – 任何人都可以使用 Moralis SDK 并使用您的服务器调用 Web3 API。

您的服务器具有内置的速率限制,您可以对其进行调整,以指示不同类型的用户在受到速率限制之前可以执行多少请求。 您可以完全控制这些速率限制,并且可以使用 Cloud Code 中的几行代码对其进行调整。

如果您的客户超出您设置的允许速率限制,他们将看到以下错误:

错误 141:来自该特定客户端的 Web3API 请求过多,客户端需要等待才能发送更多请求。

这可以使用 ​Moralis.settings.setAPIRateLimit​ 进行调整。

何时可能发生此错误:

想象一下使用您的网站的特定用户试图在同一分钟内发出大量请求。 您的服务器将保护自己并拒绝用户。 只有特定用户会受到影响。

解决此错误的方法是调整您的设置,如上所述。

错误 141 – Moralis 服务器和 Web3 API 之间的速率限制

当您的用户从 SDK 调用 Web3 API 时,他们可能不受您的服务器的速率限制(上述情况),但由于您的计划,他们可能会受到速率限制。

错误 141:此 Moralis 服务器由于计划限制而受到速率限制。

何时可能发生此错误:

您有许多用户并没有单独提出太多请求,但他们共同提出的请求超出了您的计划允许的范围。 例如 – 您的计划允许每分钟 1000 个请求。 您有 100 个用户每分钟执行 15 个请求。

解决此错误的方法是升级您的 Moralis 计划。

使用 HTTP 调用 Web3 API 时的速率限制

错误 429 – 非 Moralis 服务器和 Web3 API 之间的速率限制

当您从自己的非 Moralis 后端调用 Web3 API 时,您可能会受到 Web3 API 的限制。

在这种情况下,您将收到错误 429:超出速率限制。

要查看的最重要的值是 ​x-rate-limit-limit​ 和 ​x-rate-limit-throttle-limit​。

第一个告诉您每分钟允许执行多少个请求,第二个告诉您每秒可以执行多少个请求。

一些繁重的请求算作多个请求。

为了不受到速率限制,请注意 ​x-rate-limit-used​ 和 ​x-rate-throttle-used​。

解决此错误的方法是升级您的 Moralis 计划。

如何使用cursor(nodejs)的示例

const Moralis = require("moralis/node");
const serverUrl = "https://server_domain:2053/server";
const appId = "app id";
const contractAddress = "contract address";
async function getAllOwners() {
  await Moralis.start({ serverUrl: serverUrl, appId: appId });
  let cursor = null;
  let owners = {};
  do {
    const response = await Moralis.Web3API.token.getNFTOwners({
      address: contractAddress,
      chain: "eth",
      limit: 500,
      cursor: cursor,
    });
    console.log(
      `Got page ${response.page} of ${Math.ceil(
        response.total / response.page_size
      )}, ${response.total} total`
    );
    for (const owner of response.result) {
      owners[owner.owner_of] = {
        amount: owner.amount,
        owner: owner.owner_of,
        tokenId: owner.token_id,
        tokenAddress: owner.token_address,
      };
    }
    cursor = response.cursor;
  } while (cursor != "" && cursor != null);

  console.log("owners:", owners, "total owners:", Object.keys(owners).length);
}

getAllOwners();

如何使用cursor的示例(python)

import requests
import time


def get_nft_owners(offset, cursor):
    print("offset", offset)
    url = 'https://deep-index.moralis.io/api/v2/nft/<address_here>/owners?chain=polygon&format=decimal'
    if cursor:
      url = url + "&cursor=%s" % cursor

    print("api_url", url)
    headers = {
        "Content-Type": "application/json",
        "X-API-Key": "API_KEY_HERE"
    }
    statusResponse = requests.request("GET", url, headers=headers)
    data = statusResponse.json()
    print("HTTP headers:", statusResponse.headers)
    try:
        print("nr results", len(data['result']))
    except:
        print(repr(data))
        print("exiting")
        raise SystemExit

    cursor = data['cursor']
    print(data['page'], data['total'])
    return cursor


cursor = None
for j in range(0, 10):
    cursor = get_nft_owners(j*500, cursor)
    print()
    time.sleep(1.1)

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/276970.html<

(0)
管理的头像管理
上一篇2025-05-10 21:59
下一篇 2025-05-10 22:01

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注