Chainlink VRF主网请求长期挂起,测试网正常,成本超预算求助
Chainlink VRF主网请求挂起&成本过高问题解决方案
一、先解决请求挂起的核心问题
- Gas Lane不匹配主网当前Gas价格:你选的200Gwei Gas Lane门槛太高,BSC主网日常Gas价格远低于这个值,节点不会触发处理。赶紧换成对应主网当前主流Gas档位的Gas Lane(比如5-10Gwei区间的)。
- 订阅余额不够:你的订阅只有1LINK,但单次请求预估要2LINK,节点直接会忽略这个请求,因为覆盖不了成本。先给订阅补点LINK,至少够一次请求的费用,先让请求跑通再说。
- callbackGasLimit不用设这么高:100,000的额度如果远超你回调逻辑的实际Gas消耗,反而会拉高预估成本。先测一下回调函数的实际Gas用量,设置比实际值高20%左右就行,比如实际用3万,设3.5万足够。
二、把请求成本压到1LINK以内的方法
- 精准选Gas Lane:挑和当前区块Gas价格最接近的低档位Gas Lane,节点愿意接,成本也最低。
- 砍回调逻辑的冗余:回调里别做多余的存储、计算,比如不要在回调里遍历数组或者写大量状态变量,能精简就精简,直接降低Gas消耗。
- 保持当前的参数配置:你已经设了3次确认、1个随机数,这俩参数对成本影响不大,维持现状就行。
三、主网和测试网的关键差异要注意
测试网的Gas和LINK都是免费模拟的,参数随便设都能跑,但主网是真金白银,节点只接有钱赚、Gas价格匹配的请求,别直接照搬测试网的参数。
内容的提问来源于stack exchange,提问作者Joao Cazzador
相关产品推荐
相关产品推荐

