延迟的来源以及 LI.FI 路由的工作原理
LI.FI 的路由引擎聚合来自多个桥接器和去中心化交易所(DEX)的报价。此过程涉及对外部协议和工具的实时请求,包括:- 桥接器和 DEX 聚合器
- 用于安全性和执行检查的链上模拟
- 可能引入自己延迟的链下服务
- 交换步骤解析 – 从 DEX 获取报价。
- 路由组合 – 组合交换和桥接以构建最佳跨链路径。
优化响应时间
您可以通过自定义以下内容来优化接收报价的速度:在 /quote
和 /routes
之间选择
- 使用
/quote
以获得更快的响应。它返回单个最佳路由。它将路由查找和交易生成合并到单个调用中,从而减少客户端到服务器的延迟。 - 使用
/routes
来检索多个路由选项。这些调用非常快,可以快速向用户显示结果。为了执行其中一条路由,需要调用/stepTransaction
以生成交易数据。
禁用模拟
- 默认情况下,带有交易数据的响应包括链上模拟检查。
-
为了提高速度,将模拟选项设置为
false
。您将skipSimulation
标志作为查询参数传递给/quote
或/stepTransaction
端点: - 注意:禁用模拟会减少验证,但会提高响应时间。如果您在系统中以任何方式模拟/估算 gas,则特别建议使用此选项。
选择时间策略
LI.FI 允许您使用时间策略来控制它等待结果的时间。它们不是仅指定超时,而是允许更高级的配置,以确保考虑多个工具的结果。 在生成路由时,时间策略以两种方式应用:swapStepTimingStrategies
:在请求同链交换时应用routeTimingStrategies
:应用于可以由多个工具组成的完整路由(例如,交换+桥接)
时间策略格式
时间策略由以下属性组成:- strategy: 目前只存在
minWaitTime
- minWaitTimeMs: 等待响应的最短时间(例如 600 毫秒)
- startingExpectedResults: 预期报价的数量(例如 4)
- reduceEveryMs: 降低期望的频率(例如每 300 毫秒)
当应用此策略时,我们给所有工具 600 毫秒(minWaitTimeMs)来返回结果。如果我们在此期间收到 4 个或更多(startingExpectedResults)结果,我们将返回这些结果,而不等待其他工具。
如果少于 4 个结果,我们再等待 300 毫秒并检查现在是否至少有 3 个结果。
在 API 调用中传递策略
在POST /v1/advanced/routes
请求中:
GET /v1/quote
请求中:
这些示例中传递的策略是我们应用的默认策略。
时间策略示例
最大化结果即使需要更长时间,也会返回最佳路由:
等待适度的时间以返回速度和完整性的混合:
返回第一个可用结果,无延迟:
返回在固定时间限制内收到的任何结果:
时间策略仅用于 LI.FI 等待第三方提供商响应的时间,LI.FI API 的总响应时间将是往返时间+解析+策略+模拟的总和。