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

Chainlink轮次机制咨询及历史资产价格获取方案可行性验证

Chainlink喂价轮次相关问题解答

  • 问题1:是否可以认为轮次的时间区间始终是相邻的?
    答案:不可以。Chainlink喂价的新轮次仅在满足以下两个触发条件之一时才会启动:一是标的资产价格偏离最近一轮喂价的比例达到预设的偏差阈值,二是距离上一轮更新达到预设的心跳间隔(最长更新周期)。如果两个条件都未触发时不会生成新轮次,因此相邻轮次之间可能存在时间间隔,下一轮的startedAt会晚于上一轮的timestamp,不存在严格连续的时间区间衔接。
  • 问题2:getRoundData(roundId)的返回值中timestamp是否对应当前roundId对应轮次的结束时间?
    答案:是的。getRoundData返回的startedAt指当前轮次启动的时间戳,即节点开始聚合本轮价格的起始时间,timestamp官方定义为当前轮次价格最终上链确认的时间,即对应轮次的结束时间。你最初设计的校验逻辑startedAt <= expiry && timestamp >= expiry可用于验证expiry是否落在当前轮次的覆盖区间内,逻辑本身是有效的,但需要注意轮次可能存在时间空隙,若expiry落在空隙中会找不到匹配的轮次,此时可根据业务规则选取timestamp大于等于expiry的最近一轮有效价格作为结算参考。
  • 问题3:getRoundData返回的answeredInRound字段的具体含义是什么?
    答案:answeredInRound指返回的价格实际完成确认的轮次ID。部分场景下某一轮次可能因为节点聚合失败、节点未提交有效报价等原因无法生成有效价格,Chainlink会顺延到后续轮次完成价格确认。当你调用getRoundData传入指定roundId时,若返回的answeredInRound等于你传入的roundId,说明返回的价格是该轮次的有效报价;若answeredInRound小于传入的roundId,说明该轮次未生成有效价格,返回的是更早轮次的旧报价,这类报价不属于目标轮次,你在校验时需要额外判断answeredInRound == 传入的roundId,避免获取到无效的过时价格。

补充校验建议:实际结算逻辑中除时间校验外,还可以额外增加两个校验避免异常:

  • 校验answeredInRound == 传入的roundId,确保价格属于目标轮次的有效报价
  • 校验timestamp != 0、价格字段不为0,避免获取到未生效的无效轮次数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:15:03