PowerOracle简述:它是如何工作的,如何使用它?

发布时间 2020年11月1日
原文链接 https://medium.com/powerpool/poweroracle-in-a-nutshell-how-it-works-and-how-to-use-it-383dcf0d002e
翻译 totojack

在这篇文章中,我们为预言机使用者、价格报告者(Price Keeper)和(Fishermen)分享关于PowerOracle系统设计和说明的最新信息

PowerOracle一周前在以太坊主网发布。自发布以来,它总共为12个交易对提供了超过570份价格报告。在这篇文章中,我们将讨论:
1.预言机的运行机制、激励和奖励
2.Dapp现在可以如何使用该预言机
3.如何成为Price Keeper或Fisherman

PowerOracle 简述
下面介绍PowerOracle的定义。
PowerOracle是一个去中心化的跨链预言机,使用Uniswap V2作为时间加权平均价格(TWAP)的主要数据源。
它通过对独立的价格报告者进行经济激励来自动运作。

让我们一步一步地分析下去。

  1. **它是一个跨链预言机。**这意味着这个预言机不仅向以太坊主网提供价格反馈,而且还向其他网络(例如xDAI和Polygon)提供价格反馈。
    2.它是一个真正去中心化的预言机。这意味着系统中没有单点故障:价格是从一个去中心化的交易所(Uniswap)拉取的,其流动性比Coinbase更强。预言机是无许可的,所以每个人都可以成为价格报告者(与Chainlink不同)。
  2. PowerOracle使用内置的激励机制来运作独立的价格报告者(Price Keeper)。基本上,价格报告者通过奖励来实现激励,钓鱼者同理(控制价格报告者的操作是否正确的节点)。

价格报告者的激励计划
如果系统没有风险共担机制(Skin in the game),以及对诚实行为的奖励,这个伪匿名代理系统就不能正确运作。因此,我们对价格报告者和钓鱼者实施了CVP质押。
价格报告者——向Uniswap合约拉取价格信息,计算后向所有链提供价格反馈。
请注意,价格报告人自己不计算价格——他只拉取合约并支付Gas。因此,唯一可能发生的作弊行为是没有及时拉取价格数据。
钓鱼者(Fishermem)——监督价格报告人的节点。钓鱼者监督价格报告者是否按时发送交易,如果错过了报告时间点,他会代替价格报告者签署交易。交易成功,钓鱼者会获得奖励和一部分Price Keeper被惩罚的代币。

奖励计划是根据几个目标实施的:
1.尽可能地吸引价格报告者质押CVP,并为价格报告者的工作建立激烈的竞争。报价者的质押的CVP越多,就越能体现出预言机的安全性。更多的质押=更安全的预言机。考虑到这个预言机的目的是为几个链上的dApps提供服务,它是一个系统至关重要的组成部分。
2.吸引尽可能多的钓鱼者,以及更多的CVP质押量。它也有助于整个预言机的安全
价格报告者的正确操作会得到奖励。奖励分为两部分。
1)Gas补偿。以CVP代币支付,根据花费的Gas和当前CVP价格重新计算。
2)利润(或 "收入")奖励。价格报告者获得利润作为他质押CVP的APY。目前,APY被设定为50%(社区可以通过提案来改变)。

这意味着,在诚实操作的情况下,价格报告人可以在CVP中获得50%的APY。

请注意,在目前的操作计划中,只能有一个价格报告人。它质押CVP数量最多的节点。
钓鱼者的工作也会得到CVP奖励。对钓鱼者的奖励有两种类型。
1.活动的奖励(在线)。这种奖励是根据正常运行时间支付的,是基于签署特殊的交易,证明钓鱼者一直在线并准备砍掉价格报告者。目前,这一奖励在中被设定为20%的CVP APY。
2.惩罚奖励。如果价格报告者失败了,钓鱼者代替价格报告者拉取了合约,他将从报告者那获得其质押CVP的5%作为奖励(另外5%归入社区池)。在这种情况下,价格报告者损失了质押CVP的10%。此外,他还可以获得成功报告价格的奖励,奖励额度根据价格报告者质押的CVP进行计算。
**重要通知:**目前惩罚是0%,因为预言机仍在测试中(安全审计待定)。在收到审计结果后,惩罚比例被设置为10%。

这意味着,在诚实操作的情况下,钓鱼者可以获得20%的APY,只需质押他的CVP并执行一段特殊的脚本。

你的DApp现在可以如何使用这个预言机吗?

是的,而且非常容易:

1.0x019e14DA4538ae1BF0BCd8608ab8595c6c6181FB

(proxy contract)

2.0xa394922a1a45786583e5383cf4485a6f325d8807

(implementation contract)

你只需要将IPowerOracle.sol导入你的合约,并添加一个代理合约地址

用下述方法请求该资产的USDC的价格(6位小数):

function getPriceBySymbol(string calldata symbol_) external view override returns (uint256)
function getPriceBySymbolHash(bytes32 symbolHash_) external view override returns (uint256)

用下述方法请求该资产的USDC价格(18位小数):

function getPriceBySymbol(string calldata symbol_) external view override returns (uint256)
function getPriceBySymbolHash(bytes32 symbolHash_) external view override returns (uint256)

查看完整用法,请至Github进行查询 https://github.com/powerpool-finance/power-oracle-contracts/blob/master/contracts/PowerOracle.sol

如何成为一名价格报告者或钓鱼者

以下是创建价格报告者或钓鱼者的算法。请注意,二者操作是相同的。如果你质押的CVP数量不是最多的,你将自动成为一个钓鱼者。 你需要把你的CVP质押在PowerOracle页面上。 访问https://github.com/powerpool-finance/power-oracle-reporter 并克隆git仓库,用适当的参数运行脚本。"reporter private key" "是你Ethereum账户的私钥。该私钥仅用于交易签名(如同任何以太坊交易的情况)。

MAINNET=1 REPORTER_PRIVATE_KEY=<Reporter private key e.g. 0x7700fa638003ef53c10485c0535353e9cf7e773cf64b3cfc7942662f8218e88b> 
npm start

控制台中的脚本将通知您,您的价格报告者/钓鱼者的已经成功启动。
运行我们的Telegram通知机器人来跟踪你的价格报告者/钓鱼者的运行情况

Subscribe to Powerpool中文
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.