Объяснение пакетов Flashbots: частное…
**Краткий ответ**. Пакет Flashbots — это упорядоченная группа транзакций, отправленная через `eth_sendBundle` на ретранслятор компоновщика (Flashbots, Titan, beaverbuild, rsync-bui

Краткий ответ. Пакет Flashbots — это упорядоченная группа транзакций, отправленная через eth_sendBundle на ретранслятор компоновщика (Flashbots, Titan, beaverbuild, rsync-builder) для атомарного включения в целевой блок. Весь пакет либо включается целиком, либо не включается вовсе — частичного исполнения нет. Отправка запечатана (другие искатели не могут видеть ваш пакет ни в одном публичном мемпуле) и может включать подсказки, такие как revertingTxHashes (передача, которую разрешено отменить без аннулирования пакета), targetBlockNumber / maxBlockNumber (окно включения), replacementUuid (повторная отправка того же логического пакета) и refundRecipient (где MEV-Share откаты идут). Самая распространенная ошибка — путать RPC для защиты пользователей (Flashbots Protect, для обычных пользователей кошелька) с релеем для искателей (relay.flashbots.net, для eth_sendBundle) — это разные продукты с разными конечными точками, разной аутентификацией и разной семантикой. В названии обоих есть слово «Flashbots»; только один принимает пакеты.
Путь мастерства
- Продвинутые стратегии арбитража ETH
- Институциональный откат MEV (2026 г.)
- Описание пакетов Flashbots (текущий)
- Лучшие частные RPC Ethereum
- Частное руководство по RPC
- Рентабельность MEV (2026 г.)
Что на самом деле содержит пакет
Пакет — это конверт JSON, отправляемый через HTTPS на ретранслятор. Минимальная полезная нагрузка:
txs— массив подписанных транзакций, закодированных RLP, в порядке выполнения.blockNumber— целевой блок (шестнадцатеричный). Это блок, который пакет предназначен для включения.
Необязательно, но часто используется:
minTimestamp/maxTimestamp— подтянуть окно включения к диапазону реального времени.revertingTxHashes— список хэшей передачи, которые можно отменить. Без этого любое возвращение в любой tx делает весь пакет недействительным.replacementUuid— заменить ранее отправленный пакет на тот же UUID (не все релеи поддерживают).refundRecipient— для пакетов с поддержкой MEV-Share; куда отправить откат.refundPercent— какую часть MEV передать обратно пользователю-триггеру.
Каждая транзакция в txs — это обычная подписанная транзакция Ethereum. Сам пакет не является транзакцией — это оболочка, инструктирующая сборщика, как коллективно обрабатывать txs.
Жизненный цикл пакета
- Искатель формирует пакет — обычно: подписанная ссылка на триггер + подписанная транзакция (или транзакции) стратегии.
- Искатель симулирует через
eth_callBundleотносительно цели следующего блока. Если невыгодно — отбрасывает. - Искатель отправляет пакет через
eth_sendBundleна одно или несколько релеев. Запечатан на уровне релея. - Релей проверяет схему + запускает симуляцию + пересылает участвующим сборщикам.
- Сборщики оценивают, повышает ли включение пакета ценность их блока по сравнению со следующей лучшей альтернативой. Если да — включают.
- Предлагающий (валидатор) выбирает, чей блок опубликовать — он выбирает тот, что приносит ему больше всего прибыли.
- Пакет включается, если он оказался в блоке выбранного сборщика. В противном случае — не включён.
Пакет, который не попал в целевой блок, просто исчез — повторная попытка по умолчанию не предусмотрена. Искатели либо принимают промах, либо повторно отправляют пакет (с теми же или обновлёнными параметрами) для более позднего целевого блока.
Почему «частное» не означает то, что думает большинство людей
Пакет является частным на уровне public-mempool. Его по-прежнему видят:
- Ретранслятор, на который вы отправили заявку (Flashbots, Titan и т. д.).
- Сборщики, которым пересылает релей (каждый релей пересылает своему набору).
- Валидатор, который предлагает блок, как только сборщик включает пакет.
Таким образом, «частный» означает «не в eth_subscribe('newPendingTransactions')». Другие искатели этого не видят, а набор сборщиков релея — видит. Это имеет значение: если вы отправляете данные одному ретранслятору с одним сборщиком, вы доверяете этому сборщику и этому ретранслятору свою стратегию так, как этого не потребовал бы общедоступный мемпул.
Разница между релеями и RPC
Экосистема Flashbots имеет две конечные точки со схожим брендингом:
| Продукт | Конечная точка | Что он принимает | Кто этим пользуется |
|---|---|---|---|
| Flashbots Protect RPC | https://rpc.flashbots.net |
Стандартные транзакции (eth_sendRawTransaction) |
Пользователи кошельков, которым нужна защита MEV |
| Flashbots Relay | https://relay.flashbots.net |
Пакеты (eth_sendBundle) |
Искатели, отправляющие пакеты |
eth_sendBundle, отправленный на RPC пользователя, завершается ошибкой. Своп кошелька, отправленный на релей, также завершается неудачей. Эти два продукта предназначены для разных аудиторий и не являются взаимозаменяемыми. Полное обсуждение находится в Лучшие частные RPC Ethereum.
Разветвление на несколько сборщиков теперь используется по умолчанию
Flashbots больше не единственный сборщик блоков. По состоянию на 2026 год основными сборщиками являются:
- Flashbots — исторически доминирующий, но все еще значительная доля.
- Titan — среди крупнейших по текущей доле блока.
- beaverbuild — высокая доля для блоков с высоким приоритетом.
- rsync-builder — надежный вторичный.
- bloXroute — коммерческая ретрансляция с глобальной инфраструктурой.
Отправка на один релей означает, что вы делаете ставку на то, что сборщик вашего релея выиграет следующий слот. Это слепая зона в 30–60% в зависимости от дня. Современные серьезные искатели работают с разветвлением: один и тот же пакет отправляется четырём и более сборщикам одновременно, и выигрывает первое включение. Агент FRB выполняет это разветвление автоматически с весами, которые корректируются в зависимости от успеха включения по каждому релею.
MEV-Share: уровень OFA
MEV-Share — это отдельный протокол, созданный Flashbots для аукционов потока заказов. Он предоставляет перед выполнением подсказки об ожидающих транзакциях (происходит обмен, вот приблизительный размер и пул, но не точные детали), поэтому искатели могут создавать пакеты с поддержкой OFA, которые вознаграждают исходного пользователя возвратом средств.
Ключевые концепции MEV-Share:
- Подсказки — частичная информация об ожидающих транзакциях, опубликованная в потоке подсказок. Искатели подписываются на подсказки, а не на полные транзакции.
- Подсказки по ссылкам на пакеты — ваш пакет включает в себя хешированный идентификатор передачи пользователя триггера в качестве ссылки на обратный запуск; релей согласовывает его по включению.
- Возврат — при доставке пакета часть MEV возвращается пользователю-триггеру через
refundRecipient/refundPercent.
MEV-Share — это собственная конечная точка подписки со своей схемой. Отправка пакета в стиле MEV-Share на обычный ретранслятор Flashbots (или наоборот) незаметно завершается неудачей. Разные продукты, разные правила, но концептуально смежные.
Распространенные ошибки в пакетах
- Забывание
revertingTxHashes. Если в пакете с несколькими транзакциями одна из них может отмениться (например, проверка с повтором), это делает весь пакет недействительным, если такие транзакции не помечены. - Неправильный
targetBlockNumber. Путаница между шестнадцатеричными и десятичными числами. Релей отклоняет. - Отправка на релей, для которого ваша комиссия неконкурентна. Сборщики расставляют приоритеты по стоимости. Пакет с приоритетной комиссией в 1 gwei поверх и без того заполненного блока не будет включён независимо от того, какой релей его переслало.
- Отправка через один релей. Остаётся недоступным 30–60% доли блока.
- Повторная отправка в том же блоке без
replacementUuid. Некоторые ретрансляторы рассматривают повторную отправку как новый пакет; некоторые считают его дубликатом. ИспользуйтеreplacementUuid, если релей поддерживает его; в противном случае вручную отслеживайте, какие пакеты для какого целевого блока ожидают рассмотрения. - Путаница между
eth_sendBundleиeth_sendRawTransaction. Разные методы, разные конечные точки, разные намерения.
Рабочая конфигурация
Путь пакета у современного искателя:
- Создайте пакет с соответствующими подсказками (
revertingTxHashes,refundRecipient, если MEV-Share, целевой блок, максимальный блок). - Смоделируйте с помощью
eth_callBundleцелевой блок. Откажитесь, если невыгодно. - Разветвление через
eth_sendBundleна Flashbots + Titan + beaverbuild + rsync-builder одновременно. - Подождите один блок. Если пакет не включён, проведите повторную оценку (состояние могло измениться): отбросьте или отправьте повторно.
- Логируйте источник включения для каждого пакета.
Агент FRB реализует эту сквозную функцию с отслеживанием включения каждого релея, которое автоматически настраивает веса разветвлений с течением времени.
Ссылки
Похожие статьи
Дальнейшее чтение и инструменты
Обсуждение
Примечаний пока нет. Добавьте первое наблюдение или поделитесь ссылкой со своей командой на X (@MCFRB).