Ares Wikipedia

Ares Wikipedia

  • 文档
  • 贡献
  • Languages icon中文
    • English

›Oracle

概览

  • 概述
  • 延伸
  • 术语

白皮书

  • 介绍
  • 技术框架
  • 数据市场
  • 经济模型

学习

    质押挖矿

    • trojan质押
    • iliad 质押
    • 资产跨链桥
  • 流动性挖矿
  • Gladios

    • 账户
    • 领取测试币
    • 转账
    • 设置链上身份

    Oracle

    • Ares预言机
    • 预言机提供的支持
    • 预言机经济
    • 抵押扩展

    插槽竞拍

    • Kusama
    • Dot
  • 获取价格
  • 获取交易对

构建

    Basic

    • 跨链获取价格

    Gladios指南

    • 搭建验证人节点
    • 报价节点RPC工具

节点

  • 硬件环境
  • 运行节点
  • 运行验证节点
  • 运行验证节点 Q&A
  • 启动预言机服务
  • 启动Warehouse服务
  • Warehouse接口文档

主网

    验证人教程

    • 如何创建Odyssey账户
    • 映射ERC20/BEP20 ARES代币
    • 如何绑定 stash & controller账户
    • 验证人节点程序升级/部署
    • 设置 Session Keys
    • 验证人节点校验
    • 惩罚校验&提取资产

    网络提名人教程

    • 创建Odyssey账户&质押
    • 为任一或多个节点提名
    • 查询惩罚情况&提取资产

预言机经济

Methods

current_era_num

fn current_era_num() -> EraIndex

获取当前era值,需要考虑到如果 era 长度发生变化,仍然可以保证 era 是可以正增长的。

get_earliest_reward_era

fn get_earliest_reward_era() -> Option<EraIndex>

获取当前最早的奖励 era

calculate_fee_of_ask_quantity

fn calculate_fee_of_ask_quantity(price_count: u32) -> BalanceOf<T>

输入一个price_count来计算购买的费用

  • params
price_count: 交易对数量

reserve_for_ask_quantity

fn reserve_for_ask_quantity(
    who: T::AccountId,
    p_id: PurchaseId,
    price_count: u32
) -> OcwPaymentResult<BalanceOf<T>, PurchaseId>

保留一部分余额用于完成报价后的支付动作

  • params
who: 付款人账户id.
p_id: 支付订单id.
price_count: 预计请求的交易对儿的数量

unreserve_ask

fn unreserve_ask(p_id: PurchaseId) -> Result<(), Error<T>>

释放为了购买付费报价而保留的资金。

p_id: 支付的订单ID

pay_to_ask

fn pay_to_ask(p_id: PurchaseId, agg_count: usize) -> Result<(), Error<T>>

执行支付,这会把保留支付的资金转移到 oracle-finance 的 pallet 账户中。

p_id: 支付的订单ID
price_count: 实际完成报价对的数量

record_submit_point

fn record_submit_point(
    who: T::AccountId,
    p_id: PurchaseId,
    bn: T::BlockNumber,
    ask_point: AskPointNum
) -> Result<(), Error<T>>

记录某个订单对应验证人的积分

who: 一个验证人的ID
p_id: 支付订单ID
bn: 订单生成时的相应区块
ask_point: 一个U32数字,表示记录的积分值

get_record_point

fn get_record_point(
    ask_era: u32,
    who: T::AccountId,
    p_id: PurchaseId
) -> Option<AskPointNum>

获取某个era下某个人某个订单的积分。

ask_era:收益的era
who: 一个验证节点
p_id: 支付的订单ID

take_reward

fn take_reward(
    ask_era: EraIndex,
    who: T::AccountId
) -> Result<BalanceOf<T>, Error<T>>

申领对应era下的奖励

ask_era: era.
who: 验证节点ID.

get_era_income

fn get_era_income(ask_era: EraIndex) -> BalanceOf<T>

获得一个era周期内的总收入

ask_era: era.

get_era_point

fn get_era_point(ask_era: EraIndex) -> AskPointNum

获取某个era的总点数。

ask_era: era.

check_and_slash_expired_rewards

fn check_and_slash_expired_rewards(ask_era: EraIndex) -> Option<BalanceOf<T>>

如果存在过期的未领取的奖励就将其销毁。(根据配置可能是转移到财务模块中。)

Tx method

take_purchase_reward

获取验证人某个era获得的奖励

注意: 一个 era 不能是当前未完成的 era,而且奖励不会被永久地储存。如果奖励超过了T::HistoryDepth所定义的深度, 你将无法领取。

需要调用者签名

Earliest reward Era = Current-Era - T::HistoryDepth

ask_era: era
  • take_purchase_reward的字段
ask_era: EraIndex

take_all_purchase_reward

帮助验证者获得所有可用的奖励

注意: 一个 era 不能是当前未完成的 era,而且奖励不会被永久地储存。如果奖励超过了T::HistoryDepth所定义的深度, 你将无法领取。

需要调用者签名

Earliest reward Era = Current-Era - T::HistoryDepth

工作流程

奖励生成

  1. 付款需要调用IForPrice Trait提供的reserve_for_ask_quantity保留一部分问价人的资金,并且给其分配一个order-id
  2. 通过IForReporter Trait提供的record_submit_point保存点数,需要传入一个区块高度,之后pallet会将其转换为对应era进行存储。
  3. 在价格响应成功后,调用pay_to_ask来释放上面保留的余额,并向oracle-finance pallet支付实际的请求费。

提取奖励

  1. 奖励是按era领取的,未完成的era不能获得奖励。你需要计算出与相应era的每个点对应的单点奖金。算法: 在每个era中,单点奖励=era总收入/era总积分
  2. 验证者需要使用controller账户来执行提取操作,这是出于安全考虑。收到的总金额等于验证人点数总和 * 单点奖励。
  3. 奖励通过oracle-financePallet发送到验证人的Stash账户中。
← 预言机提供的支持抵押扩展 →
  • Methods
    • current_era_num
    • get_earliest_reward_era
    • calculate_fee_of_ask_quantity
    • reserve_for_ask_quantity
    • unreserve_ask
    • pay_to_ask
    • record_submit_point
    • get_record_point
    • take_reward
    • get_era_income
    • get_era_point
    • check_and_slash_expired_rewards
  • Tx method
    • take_purchase_reward
    • take_all_purchase_reward
  • 工作流程
    • 奖励生成
    • 提取奖励
关于我们

首个链上验证的去中心化跨链预言机服务协议,为万链互联和数字经济提供安全可信的数据服务。

Email   info@aresprotocol.io
快速链接
网站博客代币经济学购买代币挖矿
资源
文档Github区块浏览器
社会媒体
Copyright © 2023 Ares Protocol 保留所有权利.