Chainlink Feed Aggregator实现方案及多版本合约选型咨询
Chainlink Feed Aggregator 正确实现路径
首先理清各版本组件的关系,避免逻辑混淆:
- 0.6版本的
FluxAggregator是V2版本聚合器的旧实现,仅兼容AggregatorV2Interface,目前已被官方废弃,所以0.8版本的官方合约库移除了该实现 - Feed Registry是官方推出的全局喂价路由组件,本身并非单个喂价的Aggregator实现,核心作用是允许调用方通过资产对直接映射到对应喂价地址,为了兼容历史V2和新V3接口的聚合器,才实现了
AggregatorV2V3Interface接口,不需要和单个Aggregator的实现逻辑绑定
以下是两种常见场景的正确技术路径:
场景1:自主部署和官方ETH喂价逻辑一致的自定义聚合器
- 对外接口统一使用0.8版本的
AggregatorV3Interface,这是当前所有官方公开喂价都支持的标准接口,兼容性最高 - 底层核心逻辑保留Chainlink喂价的标准模块即可:节点数据提交权限校验、多节点报价中位数聚合、更新价格偏差阈值校验、更新时间间隔校验、历史轮次数据存储
- 若无兼容V2版本调用的需求,无需引入
AggregatorV2V3Interface,仅实现AggregatorV3Interface规定的5个方法即可:latestRoundData()、getRoundData()、decimals()、description()、version()
场景2:对接Chainlink现有公开喂价,无需自主部署聚合器
- 直接调用官方公开喂价地址的
AggregatorV3Interface接口即可,所有主网公开喂价均已兼容该接口 - 若需要多喂价统一查询能力,可自行实现简化版的路由逻辑,无需复用官方Feed Registry仓库的全量代码
内容的提问来源于stack exchange,提问作者Zeeshan Hanif
相关产品推荐
相关产品推荐

