所有文章
指南

什么是 Jito bundle,它保证什么、不保证什么

Jito bundle 把五笔交易原子化执行,但不保证进入区块。文章给出实测小费分位数,以及 uncled block 这个例外。

五笔 Solana 交易被锁成一组驶向区块,一个红色重点标出小费转账,背景接近纯黑

Jito bundle 是一组最多五笔一起提交的 Solana 交易,按你写下的顺序执行,要么全部进块,要么一笔都不进。你给它挂上一笔小费,这一组就用这笔小费去竞拍区块里的位置。

  • 一个 bundle 最多装五笔交易,小费转账也算在内,它们按顺序执行并且是原子的(Jito Labs 文档,2026 年 8 月)。
  • 拍卖排序看的不是小费本身,而是小费除以请求的计算单元。一笔精简交易配小额小费,可以压过一笔臃肿交易配大额小费。
  • 2026 年 8 月 28 日 11:11 UTC,进块小费的中位数是 0.00000285 SOL,第 95 百分位是 0.0003 SOL。
  • 原子性有一个真实的例外:如果 bundle 落进 uncled 区块,它的交易可能被单独重播,那里既没有原子性,也没有回滚保护。
  • Block Engine 并不实现 simulateBundle。我们在 2026 年 8 月 7 日对五个区域做过实测,五个全部返回方法错误,也就是说 bundle 没有预检。

什么是 Jito bundle?

Jito bundle 是一份包含一到五笔已签名 Solana 交易的清单,验证者要么按你的顺序完整执行,要么完全不碰。普通交易各自抵达验证者,落在调度器决定的顺序里。在自己这一组之内,bundle 把这份不确定性去掉了。

真正干活的是两个性质。第一是顺序执行:第二笔交易看到的是第一笔留下的状态。第二是原子性。组里任何一笔失败,整组就一起落空,链上什么都不会留下。正是这一对性质,让发币加首笔买入变成一次操作,而不是两次接连的祈祷。

路径也不一样。普通交易先到 RPC 提供商,再到当前的 leader。bundle 则送到 Jito Block Engine,在那里进入拍卖,只有胜出的组合才会交给验证者。Jito Labs 运营八个公开的 Block Engine 区域:东京、法兰克福、纽约、阿姆斯特丹、都柏林、伦敦、盐湖城和新加坡。

小费是入场费。它是一笔普通的 SOL 转账,收款方是 Jito 的小费账户之一,位置就在 bundle 里面,并且占用你五个名额中的一个。没有小费的 bundle,等于没写金额的出价。

小费给得更高,就能保证 bundle 进块吗?

不能。更高的小费改善你在拍卖里的位置,而拍卖按设计就会有人落败。Jito 把排序规则写得很直白:bundle 按请求的小费与请求的计算单元之比排序,而不是只看小费。赢的是效率,不是慷慨。

这一句话解释了大部分被白白花掉的小费。如果你的 bundle 请求 140 万计算单元并支付 0.001 SOL,另一个请求 20 万单元并支付 0.0004 SOL 的对手,给区块的单位空间价值更高。削减计算预算往往比抬高小费便宜,而且两者拉的是同一根杠杆。

抬小费之前,先把计算上限设成一个诚实的数字。拍卖读的是小费除以请求单元,所以一个精准的上限能把你送到只有加钱才到得了的位置。

两笔出价并排比较:重计算请求配大额小费得到很短的排序条,轻计算请求配较小小费得到很长的排序条并抵达区块

还有两个机制决定结果。拍卖以 50 毫秒为节拍并行运行,触及同一批账户的 bundle 在同一场拍卖里厮杀,而触及不同账户的 bundle 根本不会相遇。你真正的对手不是整条 Solana,而是在同一个 50 毫秒窗口里写同一个池子的人。

第二个机制和钱无关。公开的 Block Engine 每个 IP 每个区域每秒只接受一次请求,超了就返回 429。任何工具只要从一个地址把同一个 bundle 撒向八个区域,就会撞上这个天花板。我们撞过:我们自己的发送路径现在对每个端点保持至少 1100 毫秒间隔,并且优先使用私有端点而不是公共池。

现在的 Jito 小费大概是多少?

Jito 接受的最低小费是 1000 lamports,也就是 0.000001 SOL。真正进块的数字是另一回事,而且一直在动。下表直接从 Jito 公开的 tip floor 接口读取进块小费的分位数,时间是 2026 年 8 月 28 日 11:11 UTC。请把它当成分布形状,而不是价目表。

进块小费分位数小费(SOL)它买到什么
最低接受额0.000001 SOL拍卖入场券,仅此而已。
第 25 百分位0.000001 SOL四分之一的进块 bundle 只付了这么多或更少。
第 50 百分位(中位数)0.00000285 SOL寻常情况。多数 bundle 并没有在抢。
第 75 百分位0.0000441 SOL有竞争,但不着急。
第 95 百分位0.0003 SOL同一批账户上的真实争夺。
第 99 百分位0.001 SOL机器人赛道。人手动付到这里通常是浪费。

做决定之前,先看中位数和第 99 百分位之间的差距。大约是 350 倍,而这个区间里几乎没有一段和一个正在点按钮的人有关。我们的默认值刻意压得很低:从同一个接口读第 95 百分位,乘以 1.2,再把结果夹在 0.00001 SOL 到 0.02 SOL 之间,免得机器人大战里的一次尖峰悄悄掏空用户钱包。

手工搭一个 bundle,意味着按正确顺序签好每一笔交易、插入小费转账、并且让整组不超过五笔。Bundled Trade 会组装这一组、挂上小费,并在一次操作里送进 Block Engine。它替你消除的是顺序错误,不是拍卖风险。

bundle 真的是原子的吗?

在被网络接受的区块里是。验证者要么完整执行 bundle,要么不执行,一笔失败的交易会把整组一起拖下去。有一个被记录在案的例外,它解释了为什么有人会在区块浏览器上看到 bundle 交易旁边挂着红色标记。

Solana 会出现被跳过的槽位:某个 leader 造了一个区块,而超级多数始终没有接受它。Jito 把这种区块叫作 uncled 区块。当 bundle 落进这样的区块,任何收到该区块的一方都可以把里面的交易重播出去。这些副本进入普通的 banking stage,那里既不尊重 bundle 的原子性,也不尊重回滚保护。于是半个 bundle 可能当众上链并失败。

uncled 区块能把一个号称原子的 bundle 劈成两半。不要设计那种第二笔交易单独上链就无法挽回的策略。这个结局很少见,但有文档记载,也就是说并非不可能。

左侧 bundle 在被接受的区块里保持完整;右侧它落进虚线画出的 uncled 区块,并在下方以散落、被劈开的交易形式重播
问题bundle 是否保证细节
交易会按我的顺序执行吗组内顺序执行。
要么全进要么全不进吗是,在被接受的区块里验证者原子地执行整组。
bundle 一定会进块吗不一定这是拍卖,落败的出价会被丢弃。
输了小费会回来吗小费在 bundle 内部,没进块的 bundle 什么也不转。
我能免受三明治攻击吗默认不能Jito 提供一个可选标记,见下文。
能扛过 uncled 区块吗不能被重播的副本会丢掉原子性和回滚保护。

三明治这一块有个值得知道的答案。Jito 接受任何以 jitodontfront 开头的合法公钥作为标记,把它放进某条指令里,Block Engine 就会拒绝任何没有把这笔交易排在第一位(索引零)的 bundle。它拦不住 bundle 之外发生的事,而且会让你失去被排在别人后面的可能。

我的 bundle 为什么无声无息就消失了?

bundle 会安静地消失,是因为你走的这条路上根本没有预检。Jito 自己的排障页建议用 simulateBundle 验证,这个方法确实存在于 Jito-Solana 的 RPC 节点上。而在接收你 bundle 的 Block Engine 上,它并不存在。

我们是测出来的,不是猜的。2026 年 8 月 7 日,我们对法兰克福、纽约、阿姆斯特丹、盐湖城和伦敦这五个公开区域调用 simulateBundle,五个全部返回方法未找到的错误。我们的客户端现在会单独报告模拟到底有没有真的跑过。一段把缺失方法当成模拟通过的代码,其实完全没有预检,而它自己并不知道。

第二个原因是记性短。getInflightBundleStatuses 只知道最近五分钟。超出这个窗口,一个 bundle id 会返回 invalid,听起来像被拒绝,其实不是。它的意思是 Block Engine 不再跟踪它了。这时只剩一个真相来源:交易在链上,还是不在。

什么时候 bundle 是错的工具?

大多数时候。只有当两笔或更多交易绝不能被拆开时,bundle 才配得上它的复杂度,其余情况它什么也不增加。一笔孤立的 swap 没有需要保护的顺序,也不会从一场自己可能输掉的拍卖里得到好处。给它挂小费,等于给一场你没参加的比赛买票。

有三条限制值得说明白,因为 bundle 经常被当成保证来卖。

  • bundle 救不回一笔本来就错的交易。滑点太紧或者账户缺少租金押金,整组一起落空,你为延迟付了钱却什么也没换到。
  • bundle 打不过一个更快、小费与计算之比更好的对手,而且它无法告诉你它输了。在拍卖里拿第二名不会产生任何错误信息。
  • bundle 保护不了你不被自己坑。五笔的上限逼着人把更多指令塞进每一笔,这会抬高请求的计算量,正好压低拍卖用来给你排序的那个效率。

如果一次发币里,创建和首笔买入确实不能分开,那正是 bundle 被造出来解决的场景。Pump.fun Create and Bundle Buy 把 mint 和买单放进同一组,作为一次出价提交。发币要么按你计划的样子发生,要么根本不发生。

本文仅供学习参考,不构成财务、投资、法律或税务建议。Solana 代币波动极大,多数最终归零。请自行研究,不要投入你承受不起损失的资金。J Tools 不推荐任何具体代币或交易。

常见问题

一个 Jito bundle 能装几笔交易?

五笔,小费转账算其中之一。实际留给真正干活的只有四笔。Jito Labs 记录了这个上限,而我们自己的发送路径会在第六笔交易抵达网络之前就拒绝它,而不是等 Block Engine 来退回。

bundle 没进块,小费会退吗?

会。小费是放在 bundle 内部的一笔普通 SOL 转账,只有 bundle 执行它才执行。输掉拍卖的 bundle 什么都不转,在链上也不产生任何成本。你损失的是时间,不是 SOL。

Jito 的最低小费是多少?

1000 lamports,也就是 0.000001 SOL。这是被接受的门槛,不是进块的门槛。2026 年 8 月 28 日 11:11 UTC,进块小费的中位数是 0.00000285 SOL,也就是说正常情况下的实际入场价是文档最低值的好几倍。

Jito bundle 和优先费是一回事吗?

不是。优先费通过计算预算程序付给验证者,作用于普通路径上的单笔交易。Jito 小费是 bundle 内部的一笔 SOL 转账,在另一场拍卖里出价。两者可以同时使用,各自干不同的活。

为什么浏览器显示我的 bundle 失败了?

通常是 uncled 区块。你的 bundle 落进了一个网络没有接受的区块,有人把它的交易重播进普通 banking stage,那里这一组既没有原子性也没有回滚保护。浏览器显示的是副本,不是你的 bundle。

bundle 能防三明治攻击吗?

只有你主动开启才行。往某条指令里加一个以 jitodontfront 开头的公钥,Block Engine 就会拒绝任何没把你的交易排在第一位的 bundle。它挡住的是 Jito bundle 内部的抢跑,对 bundle 之外发生的一切毫无作用。

本文使用的资料:Jito Labs 低延迟交易发送文档,用于 bundle 上限、拍卖规则、速率限制和 uncled 区块;Jito tip floor 接口,用于进块小费分位数;以及 Solana 交易文档,用于基础交易模型。延伸阅读:Solana 优先费该给多少Jupiter、Raydium 与 Orca 对比,以及 Pump.fun 的替代方案

由 J Tools 团队撰写。我们在生产环境里构建并运行 40 多个 Solana 工具,从代币创建到链上钱包分析,写的是我们在主网上看到的东西,而不是理论。发布:2026 年 8 月 28 日。最后复核:2026 年 8 月 28 日。

J
作者
J Tools Editorial

来自 J Tools 团队的文章。

查看 J Tools Editorial 发表的所有文章 →

相关文章