跳转到主要内容
为了防止竞争的解算器导致交易失败并浪费 gas,意图签发者可以指定某个解算器,使其享有订单的独占填充权。当您的报价胜出时,订单会写入您的 exclusiveFor 地址,在一段较短的时间内只有您可以填充该订单。您可以在拍卖章节中阅读有关独占订单的更多信息。 订单服务器会检查您是否按时填充根据您的报价创建的订单,包括非独占订单。如果未按时填充的订单过多,您的解算器会在某一条目标链上或在所有链上被暂停。暂停结束后,您将通过恢复考核期重新参与。 您可以在 Solver UI 中或通过 API 查看自己的状态。

解算器选择

当意图签发者请求报价时,订单服务器会评估该路线上所有已提交的解算器报价。它会排除在该目标链上或在所有链上被暂停的解算器的报价。处于恢复考核期的解算器,如果已有 3 笔考核订单在等待填充,其报价也会被排除。剩余报价中价格最优者胜出。

计入的订单

您的声誉取决于您是否填充了以下两类订单:
  • 将您的某个已注册地址指定为独占解算器的订单。
  • 没有独占解算器、由订单服务器根据您的报价创建的订单。
对于独占订单,您的窗口在其独占截止时间结束。对于没有独占解算器的订单,如果订单从 EVM 链发起,窗口在订单服务器发出您的报价 90 秒后结束;从其他链发起则为 120 秒后。无论哪种情况,如果填充截止时间更早,窗口都在填充截止时间结束。 当您最迟在窗口结束时自行完成所有输出的填充,即为按时填充。对于没有独占解算器的订单,由您的任一已注册地址完成的填充都算数。 以下结果属于错过截止时间:
  • 在独占订单上,另一个解算器先填充了某个输出,或在您的窗口结束后才由另一个解算器填充。
  • 没有任何人填充某个输出。
退款同样算作一次错过,除非您此前已经按时填充了所有输出。 以下结果既不算填充,也不算错过:
  • 您自行填充了所有输出,但是在窗口结束之后。
  • 订单没有独占解算器,并且另一个解算器在您的窗口结束前先完成了填充。没有独占解算器时,任何人都可以填充该订单。
这些订单不会中断连续错过的次数,也不会计入恢复考核期。

排除的订单

以下订单永远不会计入您的声誉:
  • 某个输出包含目标链调用,例如兑换。
  • 订单在您的报价过期后才开启。
  • 订单的输入低于您报价输入的 98% 或高于 105%。
  • 订单开启时,您的窗口剩余时间过短,不足以完成填充。

暂停

订单服务器会针对您的整个解算器以及每条目标链分别检查两条规则。只要满足其中任意一条,您的解算器就会在该链上或在所有链上被暂停: 下方的示例展示了具体过程。

暂停的影响

当某条目标链被暂停时,订单服务器不会为发往该链的订单选择您的报价。当您的整个解算器被暂停时,它不会为任何链选择您的报价。暂停期间您可以继续提交报价。 请继续填充您在暂停前赢得的订单,因为这些订单仍会计入您的声誉。

暂停时长

一次暂停持续 1 小时,并且过去 28 天内每有一次更早的暂停,时长就翻倍,最长 32 小时。链级暂停只计算该链更早的暂停,整个解算器的暂停只计算更早的整体暂停。 暂停结束后,相应的计数会从零重新开始,因此导致该次暂停的错过不会再次让您被暂停。
本页中的数字是当前设置,可能会发生变化。可靠性端点会显示适用于您的限制。

恢复考核期

暂停结束后,同一条链或整个解算器会进入恢复考核期。订单服务器会重新选择您的报价,但有以下限制:
  • 当您有 3 笔考核订单在等待填充时,它会停止选择您的报价。当某笔订单被填充或其窗口结束时,就会空出一个名额。
  • 当您按时填充 20 笔订单,且所有考核订单均已有结果、没有任何一笔未按时填充时,您便通过考核。
  • 任何一笔考核订单未按时填充,都会导致考核失败并开始新的暂停。

示例

假设您的解算器为 Arbitrum 和 Base 填充订单,并且在过去 28 天内没有被暂停过。在过去 48 小时内,您有 50 笔发往 Arbitrum 的计入订单和 150 笔发往 Base 的计入订单。随后,您的 Arbitrum 节点开始落后,部分 Arbitrum 订单未能按时完成填充。
1

第 1 至第 8 次错过

暂时不会发生任何事情。在 50 笔计入订单的情况下,Arbitrum 最多允许 8 次错过:50 的 12% 是 6,再加 2。
2

第 9 次错过:Arbitrum 被暂停

第 9 次错过使 Arbitrum 超出限制,因此 Arbitrum 被暂停 1 小时,您会收到一封邮件。订单服务器会停止选择您的 Arbitrum 报价,但您的 Base 报价仍然可以胜出。两条链合计有 200 笔计入订单,其中 9 笔未按时填充。您的整个解算器最多允许 26 次错过(200 的 12% 是 24,再加 2),因此不会在其他链上被暂停。请继续填充您在暂停前赢得的 Arbitrum 订单,因为它们仍会计入您的声誉。
3

1 小时后:恢复考核期

Arbitrum 的暂停结束,恢复考核期开始,Arbitrum 的计数从零重新开始。您的 Arbitrum 报价可以再次胜出,但当有 3 笔考核订单在等待填充时,订单服务器会停止选择这些报价。
4

按时填充 20 笔:恢复正常

当您按时填充了 20 笔订单,且所有考核订单均已有结果、没有任何一笔未按时填充时,您便通过考核,Arbitrum 恢复正常。
如果您在考核期内错过了一笔订单,Arbitrum 会再次被暂停,这一次持续 2 小时,因为这是 28 天内第二次暂停 Arbitrum。该次暂停结束后,会开始新的考核期。

查看您的声誉

Solver UI 中的 Reputation 页面会显示您在每条目标链上的状态、近期错过情况以及暂停历史。同样的数据也可以通过 API 获取:
所有字段请参阅 API 参考。longTermMisses 中的 28 天错过率仅供您自行跟踪,永远不会导致暂停。

暂停邮件

当您的解算器被暂停时,订单服务器会向您 Solver UI 账户的邮箱发送邮件。请确保该邮箱已在 Solver UI 中完成确认。 如果您的恢复考核期接连失败,您每天最多只会收到一封与之相关的邮件。

解算器设置

要参与其中,请先注册 Solver UI: 注册后,设置您的解算器名称并创建 API 密钥。在所有解算器端点上通过 x-api-key 请求头传递您的密钥。详情请参阅认证。

注册地址

要注册求解器账户,求解器需签署一条由服务器签发的消息以证明所有权,并将此配对提交给订单服务器。EVM 和 Solana 账户使用同一流程:通过 GET /api/v1/solver/register/message 获取一次性消息,对其签名——EVM 上为 ECDSA 或 EIP-1271,Solana 上为 ed25519——然后提交到 POST /api/v1/solver/register。 完整的分步说明及代码请参阅注册账户。 注册成功会返回 { "success": true }。

可能的错误

  • 400 Bad Request:无效的请求数据
  • 401 Unauthorized:无效的签名或 API 密钥
  • 403 Forbidden:地址已注册
注册消息仅可使用一次,在首次提交尝试时即被消耗——如果注册失败,请在重试前获取新的消息。
每个地址只能注册到一个 API 密钥,但单个 API 密钥可以注册多个地址。