跳转到主要内容

优化响应时间

您可以通过自定义以下方式来优化接收报价的速度:

/quote/advanced/routes 之间选择

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

禁用模拟

  • 默认情况下,带有交易数据的响应包括链上模拟检查。
  • 为了提高速度,将模拟选项设置为 false。您将 skipSimulation 标志作为查询参数传递给 /quote/stepTransaction 端点:
    /v1/advanced/stepTransaction?skipSimulation=true
    
    /v1/quote?skipSimulation=true&...
    
  • 注意:禁用模拟会减少验证,但可以提高响应时间。特别是当您在系统中无论如何都会模拟/估算交易的气体时,推荐使用。

选择时间策略

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

时间策略格式

时间策略包含以下属性:
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 600,
  "startingExpectedResults": 4,
  "reduceEveryMs": 300
}
  • strategy: 目前只存在 minWaitTime
  • minWaitTimeMs: 等待响应的最短时间(例如 600ms)
  • startingExpectedResults: 预期的报价数量(例如 4)
  • reduceEveryMs: 减少期望的频率(例如每 300ms)
应用此策略时,我们给所有工具 600ms(minWaitTimeMs)来返回结果。如果在这段时间内我们收到了 4 个或更多(startingExpectedResults)结果,我们就返回这些结果,不再等待其他工具。
如果少于 4 个结果,我们再等待 300ms 并检查现在是否至少有 3 个结果。

在 API 调用中传递策略

POST /v1/advanced/routes 请求中:
{
  ...
  "options": {
    "timing": {
      "swapStepTimingStrategies": [
		{
          "strategy": "minWaitTime",
          "minWaitTimeMs": 600,
          "startingExpectedResults": 4,
          "reduceEveryMs": 300
        }
      ],
      "routeTimingStrategies": [
		{
          "strategy": "minWaitTime",
          "minWaitTimeMs": 1500,
          "startingExpectedResults": 6,
          "reduceEveryMs": 500
        }
      ]
    }
  }
}
GET /v1/quote 请求中:
/v1/quote?...
  &swapStepTimingStrategies=minWaitTime-600-4-300
  &routeTimingStrategies=minWaitTime-1500-6-500
这些示例中传递的策略是我们应用的默认策略。

时间策略示例

最大化结果
即使花费更长时间也返回最佳路由:
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 900,
  "startingExpectedResults": 5,
  "reduceEveryMs": 300
}
平衡方法
等待适度的时间以返回速度和完整性的混合:
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 900,
  "startingExpectedResults": 1,
  "reduceEveryMs": 300
}
最快可能的响应
无延迟返回第一个可用结果:
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 0,
  "startingExpectedResults": 1,
  "reduceEveryMs": 300
}
时间限制返回(超时)
在固定时间限制内返回任何收到的结果:
{
  "strategy": "minWaitTime",
  "minWaitTimeMs": 900,
  "startingExpectedResults": 0,
  "reduceEveryMs": 0
}
时间策略仅用于 LI.FI 等待第三方提供者响应的时间长短,LI.FI API 的总响应时间将是 roundTripTime+parsing+strategies+simulation 的总和。