📢 Gate广场 #NERO发帖挑战# 秀观点赢大奖活动火热开启!
Gate NERO生态周来袭!发帖秀出NERO项目洞察和活动实用攻略,瓜分30,000NERO!
💰️ 15位优质发帖用户 * 2,000枚NERO每人
如何参与:
1️⃣ 调研NERO项目
对NERO的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与NERO生态周相关活动,并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
NERO热门活动(帖文需附以下活动链接):
NERO Chain (NERO) 生态周:Gate 已上线 NERO 现货交易,为回馈平台用户,HODLer Airdrop、Launchpool、CandyDrop、余币宝已上线 NERO,邀您体验。参与攻略见公告:https://www.gate.com/announcements/article/46284
高质量帖子Tips:
教程越详细、图片越直观、互动量越高,获奖几率越大!
市场见解独到、真实参与经历、有带新互动者,评选将优先考虑。
帖子需原创,字数不少于250字,且需获得至少3条有效互动
分布式价格预言机系统: 多层聚合与Feed Registry优化
分布式价格预言机系统
为避免单点故障,一些预言机服务采用了分布式设计。以提供BTC美元价格的服务为例,某知名预言机平台汇集了31个价格源来为用户提供服务。
这种聚合器的合约源码可以在以太坊区块浏览器上查看。通过调用合约中的transmitters方法,可以查看该聚合器包含的所有链下预言机。
每个链下预言机可以通过调用transmit方法来提供价格数据,以响应聚合器中用户的请求。这些链下预言机是一些外部拥有账户(EOA),它们不仅为BTC/USD聚合器提供价格数据,还可能为其他聚合器(如ETH/USD)提供价格数据。
链上合约的处理流程大致如下:
首先读取当前合约状态,并进行一系列检查。
检查通过后,进行一些准备工作。
接下来使用ecrecover()对每个签名数据进行验签,校验hash值是否对_report做的hash。同时检查签名者的角色是否是Signer,且要检查签名的重复性。
最后,检查观察值是否按顺序排列。从排序后的观察值中选取中位数median,并确保median不超过上下两个阈值。如无问题,在s_transmissions中记录本次预言机的answer。此外,还要对answer进行校验。
这里经过一系列调用最终会调用某价格预言机合约的validate方法,关键是比较两边预言机给的价格偏差是否在一个可接受范围内。
Feed Registry
为了提高灵活性和降低治理成本,一些平台推出了Feed Registry。它可以理解为PriceFeeds的聚合器,已经聚合了多个priceFeed。有了它,使用者无需自己设置priceFeed,可直接通过Feed Registry读取价格数据。
喂价机制
价格预言机的价格通常通过多个层级的数据聚合得到,主要包括数据源聚合、节点运营商聚合和预言机网络聚合三个层级。
最原始的价格数据主要来自各大中心化和去中心化交易平台。一些专门的数据聚合服务商会从这些平台收集原始价格数据,并进行加工整合,如根据交易量、流动性和时差等进行加权计算。这是第一层面的数据源聚合。
第二层是节点运营商的聚合。每个节点运营商负责运行核心软件,从多个独立的数据聚合服务商获取价格数据,并取中值,剔除异常值和API停机时间。
最后一层是整个预言机网络的聚合,常见方式是当响应节点数量达到预设值时对数据取中值。
价格更新通常需要满足偏差阈值或心跳阈值两个触发参数之一。不同价格源的这两个参数值可能不同。
总的来说,一些知名预言机平台的价格预言机接入方便且安全性较高,但由于价格更新机制存在偏差阈值,导致更新较慢,适用于对价格更新不太敏感的应用。这也是其局限性所在,无法适用所有场景。