
链上价格来自喂价轮次,不是任意市场的实时盘口
ethereum.org的Oracles页把预言机概括为:把链下信息来源核验后传送给链上智能合约的应用;没有预言机,合约无法直接读取链外行情。Chainlink Data Feeds文档则说明,数据源经聚合后通过代理/聚合合约在链上发布,消费合约读取的是喂价轮次,而不是某一家中心化交易所的瞬时最新成交价。
因此,讨论“预言机区块链”场景里的“价格多久更新一次”时,应先分清两个时钟:外部市场价格可能连续跳动;链上喂价只在触发条件满足时推进新一轮。把两者当成同一个数字,会误判“合约里看到的价”是否仍适用于当前交易对或清算逻辑。
更新由偏差阈值与心跳阈值共同触发
Chainlink Getting Historical Data页写明两类可触发节点更新的参数:Deviation Threshold——链下监测到真实世界数据偏离超过区间时触发更新;Heartbeat Threshold——若数据一直落在偏差参数内,则仅每隔X分钟/小时才触发一次更新。页面指出可在data.chain.link查看如ETH/USD等示例参数,并提醒读者另读Decentralized Data Model。
Using Data Feeds页展示消费合约调用latestRoundData,返回值中包含updatedAt(答案计算时间戳)。核对新鲜度时应读该时间戳与当前块时间的差距,并结合该喂价在data.chain.link公示的偏差/心跳参数,而不是只看answer一个整数。文档同时提示应基于喂价答案偏差建立自有监控告警,以应对潜在延迟或中断——本文不声称任一主网喂价当前异常,也不据此给出开平仓时机。

写作边界:不把心跳分钟数写成全局常数
Heartbeat与Deviation是按具体喂价配置的,不同资产、不同网络可以不同;本文不抄写某一交易对的当前数值以免过期。也不把ethereum.org对预言机服务“用户—预言机合约—节点”工作流的一般描述,延伸成对某一供应商SLA或历史正常运行时间的保证。
实务核对顺序可以是:确认所读代理地址对应的喂价文档与网络;查看latestRoundData的updatedAt;对照该喂价公开的偏差/心跳阈值;再判断该轮答案是否仍满足合约自己的过期策略。缺少任一步,都不应把“链上还能读到一个价格”等同于“市场价格刚更新且可直接下单”。