Skip to main content

延迟从何而来,以及 LI.FI 路由的工作原理

LI.FI 的路由引擎会聚合来自多个桥接和去中心化交易所(DEX)的报价。这一过程涉及对外部协议和工具的实时请求,包括:
  • 桥接与 DEX 聚合器
  • 用于安全和执行检查的链上模拟
  • 可能引入自身延迟的链下服务
延迟可能因所查询的提供方数量、这些提供方的响应速度,以及是否启用了链上模拟而有所不同。 LI.FI 路由流程包含两个主要组成部分:
  1. 交换步骤解析(Swap Step Resolution) – 从 DEX 获取报价。
  2. 路由组合(Route Composition) – 将交换和桥接组合起来,构建最优的跨链路径。
这两个步骤都涉及第三方系统,并可能引入延迟。默认情况下,LI.FI 会等待一小段时间以接收响应,然后返回可用的最佳结果。不过,集成方可以配置计时策略以更好地控制这一行为。

优化响应计时

你可以通过自定义以下内容来优化接收报价的速度:

/quote/advanced/routes 之间选择

  • 使用 /quote 获得更快的响应。它返回单条最佳路由。它将路由查找和交易生成合并为一次调用,从而减少客户端到服务器的延迟。
  • 使用 /advanced/routes获取多条路由选项。这些调用相当快,能快速向用户展示结果。要执行其中一条路由,需要调用 /stepTransaction 来生成交易数据。

禁用模拟

  • 默认情况下,包含交易数据的响应会包括链上模拟检查。
  • 为提升速度,将模拟选项设为 false。你可以将 skipSimulation 标志作为查询参数传递给 /quote/stepTransaction 端点:
  • 注意:禁用模拟会降低验证程度,但能提升响应时间。如果你在自己的系统中无论如何都会对交易进行 simulate/gasEstimate,那么尤其推荐这样做。

选择计时策略

LI.FI 允许你使用计时策略来控制等待结果的时长。它们不仅仅是指定一个超时时间,而是允许更高级的配置,以确保多个工具的结果都能被纳入考虑。 在生成路由时,计时策略以两种方式应用:
  • swapStepTimingStrategies:在请求同链交换时应用
  • routeTimingStrategies:应用于可能由多个工具组成的完整路由(例如 swap+bridge)

计时策略格式

一条计时策略由以下属性组成:
  • strategy: 目前仅存在 minWaitTime
  • minWaitTimeMs: 等待响应的最短时间(例如 600ms)
  • startingExpectedResults: 预期的报价数量(例如 4)
  • reduceEveryMs: 降低预期的频率(例如每 300ms)
应用此策略时,我们给所有工具 600ms(minWaitTimeMs)的时间来返回结果。如果在这段时间内收到了 4 个或更多(startingExpectedResults)结果,我们就返回这些结果,不再等待其他工具。
如果结果少于 4 个,我们再等待 300ms,然后检查此时是否至少有 3 个结果。

在 API 调用中传递策略

POST /v1/advanced/routes 请求中:
GET /v1/quote 请求中:
这些示例中传递的策略就是我们默认应用的策略。

计时策略示例

最大化结果
即使耗时更长也返回最佳路由:
平衡方案
等待适中的时间,在速度和完整性之间取得平衡:
尽可能快的响应
毫无延迟地返回第一个可用结果:
计时策略仅用于控制 LI.FI 等待第三方提供方响应的时长,LI.FI API 的总响应时间将是 roundTripTime+parsing+strategies+simulation 的总和。 处理过程始终会至少等待一个结果返回,或等待所有外部调用全部失败。