摘要:MEV Bundle(文档里也叫 Flashbots Bundle)是搜索者按指定顺序捆在一起、私下交给区块构建者的一组已签名交易。官方文档写:可以指定目标区块;未列入 revertingTxHashes 的回滚会让整个包失效。本场主网转发地址是 relay.flashbots.net,限制为每秒 10,000 次请求、每个 bundle 最多 100 笔、大小上限 300,000 字节,会变动。失败的包往往不会出现在链上,排查页要求先用 eth_callBundle 模拟。
你在链上换币时,可能先听到 三明治攻击是什么:交易进了公共交易池,成交价有时会比刚才看到的报价差一截。站内 Flashbots Protect 是什么 讲的是普通钱包可以把一条专用 RPC 加进去,交易先走私有池。本篇只把另一个词看清楚:MEV Bundle,文档里也叫 Flashbots Bundle,中文常说成打包交易。钱包确认页上通常没有这个按钮。它指的是搜索者把一笔或多笔已签名交易按指定顺序捆在一起,私下交给区块构建者。普通钱包用户一般不会自己去发 eth_sendBundle。
一、官方怎么定义 Bundle,顺序和回滚规则先看清
本场打开的 Flashbots 文档「Understanding Bundles」 开篇写:搜索者把 bundles 提交给区块构建者,争取被写进区块。Bundles 是一笔或多笔交易,按你提供的顺序捆在一起执行。除了搜索者自己的交易,bundle 里也可以放入公共交易池里其他用户还在 pending 的交易,并且可以指定要进入哪一个区块。页面底部的 Last updated 是 Dec 16, 2025,文档改写后会变,以你当时打开的页面为准。界面是英文,图注用中文对照。
同一页的示例里,先取当前区块高度和时间戳,把 maxTimestamp 写成当前时间加 120 秒,再调用 signBundle 和 sendRawBundle。示例把目标写在 targetBlockNumber 上,也就是这个 bundle 在哪一个区块高度有效。可选字段里还有 minTimestamp、maxTimestamp,以及 revertingTxHashes。注释写得很直接:如果不在这里列出交易哈希,任何一笔回滚都会让整个 bundle 失效。示例后一句还写,这个 bundle 里既有自己的 transaction,也有来自交易池的 SIGNED_ORACLE_UPDATE_FROM_PENDING_POOL。公共池里 Pending 是什么,见 Pending 交易是什么,这里不重写。

二、eth_sendBundle 在说什么,搜索者通常是谁
Flashbots Auction Overview 的 Technical Architecture 一节写:Flashbots Auction 引入了新的 eth_sendBundle RPC,用来统一这条通道里的消息格式,这条消息就叫 Flashbots Bundle。文档接着写,bundle 由一组任意的、已签名的以太坊交易组成,再附上元数据,用来说明这些交易在什么条件下才能被写入。同一页把搜索者写成:选择 Flashbots 私有交易池、而不是标准点对点交易池的以太坊用户。他们跟踪链上状态,并把 bundles 交给区块构建者。
本场打开时,文档把搜索者分成三类:一是做套利、清算这类、希望更快且尽量避免失败单上链的机器人运营者;二是希望交易不被抢先交易的普通用户,例如在 Uniswap 上换币的人;三是需要账户抽象或免 Gas 交易等进阶能力的去中心化应用。普通钱包用户如果只是想少被夹,优先看 Flashbots Protect 是什么 里的专用 RPC,不必自己拼 eth_sendBundle。同一页后文还写 Not all builders can be trusted:构建者能看到送来的原始交易,也就有抢跑、审查的能力,选构建者时要自己核对,这里不展开名单。

三、发送地址和限制以当天文档为准
JSON-RPC Endpoints 写,进阶用户可以直接和 Flashbots 的 RPC 端点交互,主网地址是 https://relay.flashbots.net。本场打开时,页面的 Bundle Relay URLS 表是:Mainnet 为 https://relay.flashbots.net,Sepolia 测试网为 https://relay-sepolia.flashbots.net。同一段下面的限制是:每个 IP 每秒最多 10,000 次请求;每个 bundle 的 txs 参数最多 100 笔交易,大小上限 300,000 字节。这是本场文档里的数字,之后增减都以你当时打开的页面为准,不要把 10,000、100、300,000 当成永远不变的数。
同一页把 eth_sendBundle 写成:把 bundles 发给 Flashbots 的构建者。字段除了上一节已经出现的 txs、blockNumber、minTimestamp、maxTimestamp、revertingTxHashes,还多了可选的 replacementUuid(用来取消或替换这个 bundle 的 UUID)和 builders(要分享给哪些已注册构建者)。官方注释里,txs 是要在一个原子 bundle 里按顺序执行的已签名交易列表,blockNumber 是这个 bundle 在哪一个区块高度有效,用十六进制书写。截图右侧的注释被栏宽截断了一截,完整句子以该页正文为准。

四、为什么有的 bundle 上不了链,文档让你先模拟
Bundle Inclusion Troubleshooting 开篇把这件事和普通广播交易对照:普通交易即使失败,往往也会出现在链上;Flashbots bundle 则不同,下面这些情况都会让它上不了链。同一页开头列出五条:bundle 里有交易失败,且没有写进可选的 revertingTxHashes;激励不够(gas 价格和 coinbase 转账的合计,补不足这块空间的价值);同一机会上有人出了更高的价;bundle 到达太晚,赶不上目标区块;目标槽位的验证者没有在运行 mev-boost。文档还写,Flashbots 会避免把失败交易写到链上,所以不能只靠 Etherscan 判断执行结果。
往下「Does your transaction work and pay enough?」把前两条写得更具体。本场打开时,页面写 Flashbots 在这些情况下不会收录这个 bundle:一是 bundle 里有交易回滚,除非它被写进 revertingTxHashes,或遇到 uncled 这种情况;二是 gas 价格低于基础费,若硬写进去会变成无效区块;三是有效优先费不够补这块空间改给其他无关交易时的机会成本。页上举的例子是:你的 bundle 只付 1 Gwei 优先费,而区块里最便宜的那笔已在付 2 Gwei,构建者更愿意丢掉你的 bundle、改收普通 pending 交易。1 Gwei 和 2 Gwei 是文档里的对照写法,不是你这笔交易的真实数字,费率自己会变。
同一节写,这类问题要用 eth_callBundle 做模拟。它和常见的 eth_call 类似,但作用在一组已签名交易上,并按指定区块从顶部依次执行。页上还写,Flashbots 的 ethers.js 封装是通过 simulate() 来调用它,而且只接受预先签好的 bundle。钱包里的模拟按钮怎么看,见 交易模拟是什么,两边不是同一套入口,这里只对照文档里的 RPC。

五、中文页面里的「交易包」在指同一件事
ethereum.org 中文「最大可提取价值 (MEV)」 把搜索者的提交方式写成:搜索者寻找利润丰厚的 MEV 机会,并把交易包连同要写进区块的密封价格出价,一起发给区块提议者。运行 mev-geth 的验证者只需选择利润最高的交易包,再把它写入新区块。为了保护提议者(验证者)少接到垃圾信息和无效交易,交易包在到达提议者之前会经过中继者验证。本场打开时,页脚写「页面最后更新:2026年10月16日」,之后以当时页脚为准。
同一段接着写,MEV-Boost 仍沿用早期 Flashbots 拍卖的工作原理,只是为权益证明补了新功能:搜索者还是在找有利可图的 MEV 交易,但多了一类专门参与者,也就是构建者,负责把交易和交易包聚合成区块。构建者收下搜索者的密封价格出价,再做排序优化。中继者仍然负责在把交易包交给提议者之前先验证;MEV-Boost 还加了托管,用来保存构建者送来的区块主体和验证者送来的区块头。这里只用来对照「交易包」这三个字在官方中文里怎么出现,不讲怎么成为搜索者,也不对收益做判断。

六、以后再听到打包交易,可以先对这几项
以后在文档或讨论里再碰到 Bundle、交易包,可以按下面对一下。文档里的 10,000 次请求、100 笔、300,000 字节,以及 1 Gwei、2 Gwei 的对照,都以你当时打开的页面为准。
- 先分清对象。普通钱包用户若只是想少被夹,先看 Flashbots Protect 是什么 里的专用 RPC。MEV Bundle 是搜索者向构建者提交的一组已签名交易,不是确认页上的一个开关。
- 核对官方定义:按给定顺序执行;可以带上交易池里别人的 pending 交易;要指定目标区块。没写进
revertingTxHashes的回滚,会让整个包失效。 - 发送地址先对官方表。本场主网是
https://relay.flashbots.net,测试网是https://relay-sepolia.flashbots.net。不要随手填来路不明的转发地址。 - 公共浏览器暂时搜不到,不一定等于没发出去。排查文档写,失败的 bundle 往往不会出现在链上。要查执行结果,文档让你先用
eth_callBundle模拟。 - Overview 写过 Not all builders can be trusted。构建者能看到原始交易。普通用户更不必把交易交给自己核对不清的第三方入口。
七、这几栏怎么对照
| 你要看的字段 | 它在说什么 | 新手先做什么 |
|---|---|---|
| Bundle / 交易包 | 一组已签名交易,按指定顺序一起执行,常指定目标区块 | 先认这是搜索者提交给构建者的格式,不是钱包里的一个按钮 |
| revertingTxHashes | 允许回滚的交易哈希列表;不写的话,任一笔回滚会让整个包失效 | 对照 Understanding Bundles 的注释,不要把「打包」理解成失败了也会上链 |
| relay.flashbots.net | 本场文档里的主网 Bundle Relay 地址,测试网是 relay-sepolia.flashbots.net | 只用来核对官方域名,不要换成来路不明的地址 |
| 10,000 次/秒、100 笔、300,000 字节 | 本场 RPC 文档写明的请求和体积限制,页上会改 | 只用来理解上限,以你当时打开的文档为准 |
| eth_callBundle / simulate() | 排查文档要求用模拟来看回滚、基础费和有效优先费 | 失败包往往不上链,别只在 Etherscan 上找结果 |
Understanding Bundles 把 bundle 写成按给定顺序执行的一组交易。普通用户若只是防夹,先看 Flashbots Protect 的专用 RPC。
文档注释写,不在这个列表里的回滚,会让整个 bundle 失效。失败的包常常不会出现在链上。
本场主网转发地址是 https://relay.flashbots.net。限制是每秒 10,000 次请求、每个 bundle 最多 100 笔、大小 300,000 字节,都以当时文档为准。
排查页写明:回滚、gas 价格低于基础费、有效优先费不够,构建者都不会收。1 Gwei 和 2 Gwei 只是文档里的对照写法。
浏览官方文档本身不收费。以后若要在以太坊主网真正发出去,需要留一点 ETH 付 Gas。可在 币安 或 欧易 准备。自托管钱包可以用欧易 Web3(邀请码 CHENGXULVTU)。