Flashbots 教程与交易包指南
本 Flashbots 教程介绍如何使用 Flashbots 交易包提交 私有交易包, 绕过公共内存池, FRB Agent,以降低抢跑风险执行 MEV 策略。
Linkable summary
FRB 如何定位 Flashbots
FRB 的 Flashbots 教程提供了关于私有交易包、中继选择和 Gas 策略的中立、逐步描述,以便媒体可以引用一个关于 Flashbots 如何融入负责任 MEV 执行的简明解释。
什么是 Flashbots?
Flashbots 是一个研究和开发组织,致力于减轻 MEV 提取的负面外部性。他们提供基础设施,允许用户将私有交易包直接提交给矿工/验证者,绕过公共内存池。
这种方法具有几个优势:
- 降低抢跑风险
- 通过直接通信降低 Gas 成本
- 能够执行复杂的多交易策略
- 为交易策略提供更好的隐私
- 原子执行(所有交易全部成功或全部失败)
分步指南
步骤 2: 构建准确的交易包
创建并签署有序交易,指定目标区块,并明确列出允许回滚的交易哈希。
步骤 3: 针对目标状态模拟
模拟与计划提交相同的交易顺序和费用策略,并保存日志、Gas 使用和回滚原因。
步骤 4: 设置成本和过期限制
提交前定义构建者付款、费用上限、目标区块、过期和替换策略。
步骤 5: 通过官方 API 提交
记录所选构建者、请求标识和响应;API 接收不等于链上包含。
步骤 6: 链上验证
在链上确认交易哈希,并分别记录已包含、已过期、被拒绝和未包含的尝试。
Flashbots 与私有中继目录
大多数关于"flashbots / 私有中继"的 Bing 展示都落在这里。使用此目录来决定将 FRB 节点客户端指向哪里。
| 中继 / 构建者 | 网络 | 打包率快照 | 延迟说明 | 使用场景 |
|---|---|---|---|---|
| Flashbots Protect | 以太坊用户交易 | 私有交易路由 | 核对当前回退政策 | 面向钱包用户;不是搜索者交易包端点。 |
| Flashbots 构建者 API | 以太坊搜索者交易包 | 目标区块交易包提交 | 从您的区域实测 | 用于有序交易包;需在链上确认交易。 |
| Flashbots 多构建者分发 | 所选构建者 | 向配置的构建者分发 | 没有通用基准 | 扩大分发范围,但不确保包含。 |
- 更改生产路由前重新核对官方 API 文档。
- 比较构建者时使用相同的工作负载、区域和观察窗口。
- 将接收、包含、过期、拒绝和成本记录为不同状态。
Flashbots 在现代区块构建中的位置
2026 年 2 月迎来了开源 PBS 客户端、mev boost 中继和 mev share 实验的浪潮,这些实验将区块内交易排序与提议者职责分离。Flashbots 位于这个提议者-构建者分离堆栈中,协调区块构建者、钱包和通过 Flashbots Protect 路由订单流的普通用户。
- 每个交易包在密封出价拍卖中竞争,Gas 价格和小费决定其在区块中的位置。
- 权益证明验证者依赖可信的区块构建合作伙伴,在尊重用户意图的同时保持低延迟。
- Mev share 倡议让钱包在不泄露策略细节的情况下将部分价值路由回交易者。
当 FRB 协调交易包时,它会观察 mev boost 中继的响应,追踪 mev share 侧信道是否改变打包概率,并记录每种区块构建者组合的表现。向领导层汇总 Flashbots 活动时使用此背景 — 他们对治理的关注不亚于原始执行速度。
交易包结构
Flashbots 交易包由以下部分组成:
- 交易: 原子执行的交易数组
- 区块号: 目标打包区块
- 最小时间戳: 最小区块时间戳(可选)
- 最大时间戳: 最大区块时间戳(可选)
示例交易包
{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_sendBundle",
"params": [{
"txs": [
"0x02f8...", // Transaction 1
"0x02f8..." // Transaction 2
],
"blockNumber": "0x1234567",
"minTimestamp": null,
"maxTimestamp": null
}]
}Gas 价格优化
Flashbots 使用一价拍卖模型。主要注意事项:
- 较高的 Gas 价格会提高打包概率
- 但由于成本较高,会降低盈利能力
- 监控不同 Gas 水平的历史打包率
- 使用我们的 Gas 计算器 进行优化
- 设置价格时考虑网络拥塞情况
代码示例
JavaScript/TypeScript 示例
import { ethers } from 'ethers';
const flashbotsRpc = 'https://rpc.flashbots.net';
const provider = new ethers.JsonRpcProvider(flashbotsRpc);
async function submitBundle(txs: string[], targetBlock: number) {
const bundle = {
jsonrpc: '2.0',
id: 1,
method: 'eth_sendBundle',
params: [{
txs: txs,
blockNumber: '0x' + targetBlock.toString(16),
}],
};
const response = await fetch(flashbotsRpc, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(bundle),
});
return await response.json();
}Python 示例
import requests
import json
def submit_bundle(txs, target_block):
url = 'https://rpc.flashbots.net'
payload = {
'jsonrpc': '2.0',
'id': 1,
'method': 'eth_sendBundle',
'params': [{
'txs': txs,
'blockNumber': hex(target_block),
}],
}
response = requests.post(url, json=payload)
return response.json()最佳实践
- 从小额开始: 扩大规模之前先用小额进行测试
- 监控状态: 使用 Flashbots 仪表板追踪交易包状态
- 优化 Gas: 根据打包率持续调整 Gas 价格
- 错误处理: 对失败提交实施健壮的错误处理
- 速率限制: 遵守速率限制以避免被封锁
- 模拟: 提交前使用 Flashbots 模拟端点测试交易包
Flashbots 与公共内存池对比
| 特性 | Flashbots | 公共内存池 |
|---|---|---|
| 抢跑风险 | 低 | 高 |
| Gas 成本 | 较低(直接提交) | 较高(基于拍卖) |
| 复杂度 | 较高(需要 API 集成) | 较低(标准交易) |
| 隐私 | 高(私有提交) | 低(公共内存池) |
在我们的 Flashbots 与公共内存池对比中了解更多。
更多资源
- Flashbots 文档
- Flashbots Protect - 简便的交易包提交
- MEV 策略指南 - 高级策略
- 以太坊 MEV 指南 - 特定网络技巧
- Gas 计算器 - 优化 Gas 价格
下一步
准备好开始使用 Flashbots 了吗?以下是接下来要做的事:
- 查阅 Flashbots 官方文档
- 设置您的开发环境
- 在模拟模式下测试交易包提交
- 从小型测试交易包开始
- 监控并优化您的策略
- 考虑使用 FRB Agent 进行自动化 MEV 交易
相关 FRB 资源
- 通过 Flashbots 与公共 PGA 指南 和 Flashbots 基准页面.
- 通过 遥测政策, 安全概述, 和 漏洞披露.
- 通过 Gas 计算器, WSS 延迟测试, 和 支持团队.
关键要点
- Flashbots 能够绕过公共内存池提交私有交易包。
- 使用 Flashbots Protect RPC 或通过 API 直接集成以实现安全执行。
- 在提交前优化 Gas 价格和进行模拟对成功至关重要。
- 始终从 FRB Agent 节点位置对中继延迟进行基准测试,以最大化打包率。
官方参考资料
在离开之前,将本教程与核心执行步骤关联: 下载 FRB, 安装指南, 并 随时查阅支持与 SLA ,以便在 Flashbots 交易包需要升级时参考。