You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Thirdweb Goerli测试网HTTP Error 429错误?

使用Thirdweb Python SDK在Goerli测试网铸造NFT时遭遇429请求超限错误

我正在用Thirdweb的Python SDK在Goerli测试网铸造NFT,最初使用mint方法,后来改成mint_to指定接收地址,但问题依旧存在,报错显示请求次数过多。

我的代码:

sdk = ThirdwebSDK.from_private_key(PRIVATE_KEY, NETWORK)
NFT_COLLECTION_ADDRESS = contratonft
nft_collection = sdk.get_nft_collection(NFT_COLLECTION_ADDRESS)
urlarchivoarr = imagencert.split("/")
urlarchivostr = str(urlarchivoarr[1])
urlarchivoimg = "https://files.avfenixrecords.com/" + urlarchivostr
metadata = NFTMetadataInput.from_json({
    "name": nombrecert,
    "description": descripcert,
    "image": urlarchivoimg
})
# 指定Goerli钱包地址接收NFT
tx = nft_collection.mint_to("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", metadata)
receipt = tx.receipt
token_id = tx.id
nft = tx.data()
idnft = tx.id

报错信息:

[2022-11-14 21:02:10,706] ERROR in app: Exception on /api/contracts/v1/mintnft [POST]
Traceback (most recent call last):
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/flask/app.py", line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "app.py", line 1849, in mintnft
    tx = nft_collection.mint_to("0x98E0463643b28E24223d2B5EF19E78A9AF031505", metadata)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/thirdweb/contracts/nft_collection.py", line 166, in mint_to
    receipt = self._contract_wrapper.send_transaction("mint_to", [to, uri])
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/core/classes/contract_wrapper.py", line 112, in send_transaction
    nonce = provider.eth.get_transaction_count(signer.address)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/module.py", line 57, in caller
    result = w3.manager.request_blocking(method_str,
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/manager.py", line 197, in request_blocking
    response = self._make_request(method, params)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/manager.py", line 150, in _make_request
    return request_func(method, params)
  File "cytoolz/functoolz.pyx", line 249, in cytoolz.functoolz.curry.__call__
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/formatting.py", line 76, in apply_formatters
    response = make_request(method, params)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/gas_price_strategy.py", line 90, in middleware
    return make_request(method, params)
  File "cytoolz/functoolz.pyx", line 249, in cytoolz.functoolz.curry.__call__
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/formatting.py", line 74, in apply_formatters
    response = make_request(method, formatted_params)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/attrdict.py", line 33, in middleware
    response = make_request(method, params)
  File "cytoolz/functoolz.pyx", line 249, in cytoolz.functoolz.curry.__call__
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/formatting.py", line 74, in apply_formatters
    response = make_request(method, formatted_params)
  File "cytoolz/functoolz.pyx", line 249, in cytoolz.functoolz.curry.__call__
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/formatting.py", line 76, in apply_formatters
    response = make_request(method, params)
  File "cytoolz/functoolz.pyx", line 249, in cytoolz.functoolz.curry.__call__
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/formatting.py", line 74, in apply_formatters
    response = make_request(method, formatted_params)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/buffered_gas_estimate.py", line 40, in middleware
    return make_request(method, params)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/middleware/exception_retry_request.py", line 105, in middleware
    return make_request(method, params)
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/providers/rpc.py", line 88, in make_request
    raw_response = make_post_request(
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/web3/_utils/request.py", line 49, in make_post_request
    response.raise_for_status()
  File "/home/ombhkqgo/virtualenv/contratos/3.8/lib/python3.8/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: https://eth-goerli.g.alchemy.com/v2/[redacted]

问题分析与解决建议:

这个错误的核心是Alchemy RPC节点的请求频率超限,和Thirdweb SDK的mint/mint_to方法无关,解决方向如下:

  • 查看Alchemy API密钥的请求限额:免费版测试网节点有请求次数限制,短时间内发起太多请求会触发429
  • 实现请求重试与指数退避:捕获429错误后等待一段时间再重试,可借助tenacity库实现
  • 控制请求频率:批量铸造时给每个请求加1-2秒间隔,避免并发请求
  • 切换RPC节点:换成Infura、QuickNode的免费测试网节点,或使用公共Goerli RPC
  • 检查代码逻辑:确认是否存在循环重复调用铸造接口的情况,导致短时间内请求量过大

内容的提问来源于stack exchange,提问作者Arturo Vasquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:35:13