You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solana交易优先级异常:高手续费低CU使用却确认慢于低费高CU交易

Solana交易优先级异常问题(Quicknode RPC环境)

交易对比

我方交易

  • 计算单元单价:8.38 lamports/计算单元
  • 优先手续费:0.001 SOL(约0.1738美元)
  • 分配计算单元:119,283
  • 实际使用计算单元:96,226
  • 结果:需多次尝试,耗时数分钟才确认

Phantom交易

  • 计算单元单价:1.3 lamports/计算单元
  • 优先手续费:0.0004 SOL(约0.06954美元)
  • 分配计算单元:307,893
  • 实际使用计算单元:243,618
  • 结果:瞬间成功,数秒内确认

优先级指标矛盾点

按常规网络优先级规则,我方交易应被优先处理:

  • 计算单元单价是对方的6.4倍(8.38 vs 1.3)
  • 优先手续费是对方的2.5倍(0.001 vs 0.0004 SOL)
  • 实际计算单元使用量仅为对方的39.5%(96k vs 243k)

已知计算单元分配会影响验证器偏好,但本场景中我方交易占用更少区块空间、手续费更高,完全符合验证器优先选择的标准:

  • 验证器偏好CU使用量更低的交易
  • 验证器优先处理手续费更高的交易
  • 区块空间限制为1.4M CU,我方交易占用空间远小于对方

但实际情况完全相反,我方交易确认耗时极长,求解释或类似问题的解决方案。

相关配置与代码

Jupiter Swap配置

const swapResponse = await axios.post("https://quote-api.jup.ag/v6/swap", {
    quoteResponse: quoteResponse.data,
    userPublicKey: user,
    wrapAndUnwrapSol: true,
    computeUnitPriceMicroLamports: 1200000,  // 对应约8.38 lamports/CU
    dynamicComputeUnitLimit: true
});

交易发送逻辑

const sendAndConfirmTx = async (sendConnection, signedTx) => {
  const rawTransaction = bs58.decode(signedTx);
  const signature = await sendConnection.sendRawTransaction(rawTransaction, {
    skipPreflight: true,
    maxRetries: 2,
  });

  let retries = 0;
  while (true) {
    try {
      await sendConnection.confirmTransaction(signature);
      break;
    } catch (e) {
      if (retries > 5) {
        throw e;
      }
      retries += 1;
    }
  }

  return signature;
};

已将手续费设为较高水平但无效果,怀疑是否是Quicknode未正确转发交易?


内容的提问来源于stack exchange,提问作者Kevin K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 03:02:03