运行dev-deploy部署NEAR合约时出现BadRequestError如何解决?
NEAR合约部署nonce重试超限错误解决方案
报错说明
你遇到的报错原文及翻译如下:
BadRequestError: Error: nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.
翻译:请求错误:交易的nonce重试次数已超限。该错误通常意味着使用同一访问密钥发起了过多并行请求。
修复方案
- 停止所有同时运行的NEAR合约部署、链上交互任务,同一时间段内仅用同一个访问密钥执行单笔交易,不要并行跑多个部署脚本,即可解决大部分偶发场景的报错
- 清理本地缓存的NEAR访问密钥,执行对应系统的操作:
macOS/Linux:执行命令rm -rf ~/.near-credentials/
Windows:删除C:\Users\你的用户名\.near-credentials文件夹
清理完成后重新执行near login登录账户,生成新的访问密钥 - 调整部署命令添加延迟,针对你使用的sample--thanks仓库,可以直接修改package.json中的dev-deploy脚本,在原有命令前加
sleep 2 &&,避免短时间内请求过于密集 - 若自行封装了部署逻辑,每次发起交易前强制从链上查询最新的nonce值,不要复用本地缓存的过期nonce,从根源避免nonce冲突
- 部署时可适当降低gas上限,dev-deploy时添加参数即可:
near dev-deploy --gas 30000000000000 你编译好的wasm文件路径
内容的提问来源于stack exchange,提问作者Ozan İşgör
相关产品推荐
相关产品推荐

