Jupiter交易指南:如何在Solana上提升交易成功率

·

在Solana生态中,Jupiter作为领先的去中心化交易聚合器,致力于为用户提供最佳的交易体验和最具竞争力的价格。然而,在网络拥堵期间,交易落地成功率可能面临挑战。本文将深入解析影响交易成功的关键因素,并提供实用的优化策略。

交易成功的关键要素

当网络繁忙时,多个用户同时竞争交易处理权,优化交易落地成功率成为关键。常见的影响因素包括:

快速入门指南

如果您希望快速了解如何在Jupiter上成功完成交易,以下是从API获取报价到提交交易的完整流程。

获取报价

从API获取报价时,建议设置restrictIntermediateTokens参数为true,这将确保交易路径仅通过流动性高的中间代币进行路由,从而提高成功率并获得更优价格。

const quoteResponse = await (await fetch('https://quote-api.jup.ag/v6/quote?inputMint=So11111111111111111111111111111111111111112&outputMint=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&amount=100000000&restrictIntermediateTokens=true')).json();

构建交易

获取交易数据时,合理配置参数对成功率至关重要:

const { swapTransaction } = await (await fetch('https://quote-api.jup.ag/v6/swap', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    quoteResponse,
    userPublicKey: wallet.publicKey.toString(),
    dynamicComputeUnitLimit: true,  // 设置为true以获得最佳计算单元优化
    dynamicSlippage: {  // 设置优化滑点确保高成功率
      maxBps: 300  // 设置合理上限防止MEV
    },
    prioritizationFeeLamports: {
      priorityLevelWithMaxLamports: {
        maxLamports: 10000000,
        priorityLevel: "veryHigh"  // 设置为"veryHigh"可加快交易速度
      }
    }
  })
})).json();

提交交易

提交交易时,建议使用原生Solana RPC节点,如Helius或Triton,以获得更好的稳定性。此外,您还可以使用Jupiter的交易端点提交交易:

fetch(`https://worker.jup.ag/send-transaction`, {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(transactionPayload),
});

请注意,此端点仅适用于Jupiter交易。👉 查看实时交易工具

高级优化策略

对于更复杂的应用场景,您可以通过以下方式进一步优化交易成功率:

设置竞争性优先费用

优先费用是可选的额外费用,以每计算单元的微lamports计价,可以在基础交易费之上添加,以获得队列中的优先处理权。费用越高,交易在执行队列中的位置越靠前。

但需要注意,长期过度支付优先费可能导致网络整体费用上升,因此需要找到平衡点。

优先费用计算公式priority fees = computeBudget * computeUnitPrice (CUP)

在添加优先费时,需要考虑交易是否涉及账户写入操作,并相应调整计算单元价格。

Jupiter优先费用估算机制

Jupiter使用Triton的getRecentPrioritizationFees接口获取过去20个槽位的优先费用估算,并将其分类为不同百分位数(中等、高、非常高),以提供更准确的费用支付建议。

配置示例:

prioritizationFeeLamports: {
  priorityLevelWithMaxLamports: {
    maxLamports: 4000000,
    global: false,
    priorityLevel: "veryHigh"
  }
}

有效管理滑点设置

合理的滑点设置对交易成功至关重要。动态滑点功能可以根据市场波动自动调整滑点参数,在保证成功率的同时避免过度滑点。

优化计算单元分配

通过设置dynamicComputeUnitLimit: true,系统会自动优化计算单元使用,确保交易有足够的资源执行,同时避免资源浪费。

高效广播交易

使用优化的交易广播机制可以提高交易被快速处理的几率。选择可靠的RPC节点和使用专业的交易发送工具都是重要的考虑因素。

常见问题

什么是优先费用?

优先费用是可选的额外费用,添加到基础交易费之上,用于在领导者队列中获得优先处理权。通过支付额外费用,可以提高交易更快落地的几率。

如何确定合适的优先费用水平?

Jupiter API提供三个优先级别:中等(25%分位数)、高(50%分位数)和非常高(75%分位数)。选择更高分位数会增加交易成功率,但也会增加成本。建议根据网络拥堵情况和交易紧急程度进行选择。

全局费用估算和本地费用估算有什么区别?

全局费用估算考虑整个网络的费用情况,而本地费用估算专注于交易指令中涉及的可写账户(热账户)相关费用。在大多数情况下,使用本地估算能提供更精确的费用预测。

为什么需要设置restrictIntermediateTokens参数?

设置为true可以限制交易路径只通过高流动性的中间代币,减少因流动性不足导致的交易失败,同时提供更稳定的交易路径和更好的价格。

动态滑点如何提高交易成功率?

动态滑点根据市场实时波动情况自动调整滑点参数,在网络拥堵时适当增加滑点容限,提高交易成功几率,同时在市场平稳时减少不必要的滑点损失。

通过合理配置这些参数和使用Jupiter提供的优化工具,您可以显著提高在Solana网络上的交易成功率。👉 获取进阶交易策略