本页面为社区翻译版本,仅供参考;内容以英文原版为准。
查看英文原版 ↗

优先费

面向延迟敏感用户的高级功能

Gossip(读取)优先级

有 3 个相互独立的荷兰式拍卖,同步到同一个 3 分钟的周期。节点可以选择将拍卖序号解释为向其对等节点发送数据时的排序依据。该优先排序同时影响 split client block 以及包含响应的普通 client block。Foundation 非验证节点将选择遵循 gossip 优先拍卖的排序。

各个独立的槽位拍卖不可叠加,因此竞拍多个槽位的 IP 将按其最低的槽位获得优先级。要让拍卖影响延迟,链上 IP 必须与发送数据的对等节点所看到的 IP 完全一致。每场拍卖的结果只影响下一场拍卖的持续期间。对于通过节点链连接到验证网络的节点,请注意每一跳网络是否遵循优先拍卖取决于父节点的配置方式。

较低的拍卖序号严格优先于较高的序号。该优先排序同等地适用于 mempool 交易流中的所有数据。此排序在期望上应当相对一致,但会受到 p2p 共识网络的方差影响。Gossip 优先级仅适用于读取数据。关于发送数据的优先排序,请参阅下面关于订单优先级的部分。遵循 gossip 优先级的节点将使用相对于该节点当前执行状态的前一场拍卖的获胜者。与代币、现货和永续合约部署拍卖类似,从现货余额中支付的费用会被销毁。

前一场拍卖的获胜者(即当前 gossip 优先排序)以及当前拍卖的状态可以通过 info 请求 { "type": "gossipPriorityAuctionStatus"} 查询。

Gossip 优先级降低了做市商为保持竞争力而过度优化基础设施的必要性。要参与拍卖,用户发送操作 {"type": "gossipPriorityBid", "slotId": 0, "ip": "1.2.3.4", "maxGas": 100000000},其中 gas 是从现货余额扣除的 HYPE 的 wei(即 0.00000001 HYPE 为单位)。每场拍卖重置为该槽位前一次获胜价格的 10 倍,且最低价格为 0.1 HYPE。任何地址都可以代表任何 IP 地址出价。

目前 gossip 优先级在主网上的实测效果约为每个拍卖槽位降低 25 ms 延迟。

订单(写入)优先级

订单优先级降低了做市商为保持竞争力而过度优化下单链路和连接的必要性,使其可以专注于策略本身。它进一步保护了 Maker,并允许对其他市场驱动的价格变动做出快速响应。

优先分组(grouping)仅支持满足以下两个条件的订单操作:

  1. 每笔订单都是非 outcome 资产
  2. 每笔订单都是 IOC,或每笔订单都是非只减仓的 ALO

订单可以以 {"p": 12345} 形式的分组发送,其中费率被解释为分数 p / 100000000.0。该费率在 IOC 情形下按成交名义金额的比例、在 ALO 情形下按挂单名义金额的比例,从未质押(undelegated)的质押余额中扣除。所收取的优先 gas 按现货标记价格换算为 HYPE。

IOC 优先级

优先费率在 0-8bps(即 p = 80000)范围内对端到端延迟有线性影响。目前订单优先费在主网上的实测效果约为每支付 1 bp 优先费降低 45 ms 端到端延迟。即使使用订单优先级,所有撤单仍优先于所有立即可执行的订单。不过,较高优先级的订单作为优先费率的线性函数,排位先于较低优先级的订单。

最高优先费率为 100%。8bps 到 100% 之间的任何优先级在 mempool 中被赋予相同的时间优先权。不过,在每个 70ms 的 unix 时间桶(通常对应 1 个区块)内,将被区块提议者执行的、优先费至少为 8bps 的 IOC 订单,会按优先费从高到低排序。换句话说,0-8bps 范围影响时间上的优先排序,而 8bps-100% 范围用于在近似同时收到的该范围内的订单之间打破平局。举一个具体例子,如果 unix 毫秒边界为 (T, T + 70ms),那么 (mempool_receive_time, priority) 分别为 (T, 8bps)、(T + 30ms, 9bps)、(T + 69ms, 10bps) 的订单将按接收时间倒序排序。

尽管区块是离散的,但订单优先排序相对于订单写入优先费是连续的。Mempool 交易实际上按 effective_time = arrival_time + f(action, priority_fee) 排序,其中 f 是优先费的严格递减函数,对于撤单等被优先处理的操作则为零。对于给定的操作类型,区块之间的边界与相对优先排序无关,因为区块内的交易仍按 effective_time 排序。

订单优先级仅适用于发送数据。关于读取数据的优先排序,请参阅前面关于 gossip 优先级的部分。与 gossip 优先拍卖类似,订单优先费会被销毁。

已支付的 IOC 优先费可以从节点写入的 user_fills 文件中读取,字段为 priorityGas 。

ALO 优先级

在 T = 400ms 的时间尺度上,ALO 订单按优先级排序。更准确地说,每个价位上由过去 T 内所下订单构成的队尾部分,将按优先费率从高到低排序。

因此,队列中的任何槽位在持续时间为 T 的窗口内都有资格进行优先费竞价。每笔新订单在下单时会与放置时距今不足 T 的队尾订单进行比较。换句话说,T 窗口是连续的,而非分桶的。ALO 优先费在下单时即被扣除,无论订单是否成交。

与 IOC 订单不同,ALO 优先费不影响 mempool 优先排序。ALO 订单作为交易始终按 FIFO 处理,端到端延迟与撤单相近。优先费的实现影响的是跨交易的队列位置。换句话说,无论优先级如何,ALO 订单在 mempool 中的优先排序是相似的,但在订单交易于 L1 上执行之后,队列位置可能在 400ms 的时间尺度上发生变化。

一个具体例子:新的价位 L 在时刻 t 开启且为空。第一笔订单 A 在时刻 t' > t 以零优先费被上链应用(如上所述,这意味着在 L1 上执行)。下一笔订单 B 在时刻 t' + T - 1ms 以优先级 p > 0 被上链应用。假设 A 和 B 是价位 L 上仅有的订单,那么在时刻 t' + T 的排序中 B 将排在 A 之前。第三笔订单 C 在时刻 t' + T + 1ms 以优先级 p' > p 被应用。时刻 t' + T + 1ms 的排序为 B > A > C 。尽管 C 具有更高的优先级,但 B 已经锁定了其在队列中的位置,因为 A 已在订单簿上停留了 T,而 B 排在 A 之前。

Gossip 优先费可以从节点记录的 replica_cmds 文件中读取。优先费金额的 USDC 价值可按 order_price * order_sz * grouping_priority_rate 计算。order_book_server 通过使用 raw_book_diff 文件中 RawBookDiff::New 的 insertBefore 字段来维护正确的价位排序。

英文官方来源: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/priority-fees
原文抓取日期: · 镜像构建日期: · 社区翻译,以英文原版为准
非官方社区镜像与翻译,内容版权归 Hyperliquid 所有,以英文原版为准。 来源: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/priority-fees