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

BSC主网VRFv2Consumer调用requestRandomWords后请求始终pending

这个是BSC主网部署VRF合约的常见问题,既然测试网已经跑通说明核心代码逻辑没有问题,卡pending基本都是主网配置和实际要求不匹配导致的,按以下优先级排查即可:

  • 先查VRF订阅账户的主网LINK余额
    测试网LINK是无价值的测试币,不会产生实际计费,但主网VRF请求会根据选择的gas档位、申请的随机数数量扣除对应LINK手续费。你选的1000gwei是最高速的响应档位,单随机数的计费成本远高于低档位,很多开发者只转了小额LINK(比如0.1~0.5个),根本覆盖不了100个随机数的请求成本。Chainlink节点检测到订阅余额不足以支付请求费用时,不会链上抛出失败,只会直接跳过响应,请求就会一直卡在pending状态。注意:只要订阅里还有未响应的pending请求预占了额度,哪怕你后面发10个随机数的小额请求,也会一起卡住。
  • 核对你用的1000gwei档位keyHash是否为BSC主网当前生效地址
    BSC测试网、主网的VRF协调器地址、各档位keyHash完全不通用,而且BSC主网的VRF合约做过版本升级,不少旧教程里的keyHash已经被废弃,对应的节点不再监听处理,用失效keyHash发出的请求永远不会得到响应。不要直接复用测试网或者旧文档里的keyHash参数。
  • 确认部署的主网消费者合约已经被添加到VRF订阅的授权消费者列表
    不少开发者部署完主网合约后,忘记在VRF订阅管理页面把新的主网合约地址加入白名单,节点收到请求后校验调用方权限不通过,会直接拒绝响应,这类请求同样不会链上报错,只会保持pending状态。
  • 检查requestRandomWords()调用时传入的callbackGasLimit参数是否足够
    你对官方的VRFv2Consumer做过代码修改,如果fulfillRandomWords()回调里的自定义逻辑比较复杂,callbackGasLimit设得太低,节点模拟执行回调时判断gas不足以覆盖执行成本,就不会提交响应交易。测试网节点校验宽松,低gasLimit可能侥幸跑通,但主网节点校验规则严格,建议给回调gas值留至少20%的冗余量。

已经卡了2天的pending请求不会自动超时失效,不用等它返回。排查修正配置后,给订阅账户充入足够的主网LINK,用正确参数发起新请求即可,旧的异常pending请求不会阻塞后续符合要求的新请求响应。

内容的提问来源于stack exchange,提问作者Scarlett Vladimir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:39:15