Calling Searchers and Builders: should Flashbots’ builder discard failed transactions from bundles when they’re specified as reverting transaction hashes?
Context
Flashbots’ builder can accept bundles of transactions, which provide certain guarantees:
- All transactions in a bundle must be included in specified order, with no transaction inserted between them
- If any transaction reverts, no transaction from the bundle will be included EXCEPT
a. When request specifies reverting transaction hash(es), the builder can still include the bundle if the specified transaction(s) revert within it
We received a feature suggestion where: If reverting transaction hash is specified in a bundle, and that transaction FAILS, the builder discards the transaction and continues attempt to build block with the given bundle.
Definitions
It’s important to note the distinction between transaction failure and revert:
- Failure: There was an issue with the transaction prior to its execution. For example, if the nonce is too high or too low for the transaction, it’s considered invalid and fails - the builder doesn’t try to execute it.
- Revert: There was an issue with the transaction during its execution that caused it to revert. Revert status is derived from the transaction receipt, as described here: solidity - What is the exact meaning of a transaction's new receipt 'status' field? - Ethereum Stack Exchange
Summary
Currently the Flashbots builder stops bundle processing on failure - the whole bundle is discarded.
The feature suggestion would allow our builder to continue processing a bundle on transaction failure, provided it’s specified as a transaction that can revert in the request. Failed transactions that can revert are discarded from the bundle.
Searchers & Builders, we’d like to hear from you: should we discard failed transactions from bundles when they’re specified as reverting transaction hashes? Why or why not? Is this feature valuable to the community, or are there negative implications with this change?
Note:
- Discarding failed transactions is a feature other builders already support, e.g. builder0x69
- Would appreciate feedback on this feature by Friday 2023-07-29T00:00:00Z and subject to feedback and discussion we’d go live by week of 2023-08-07T00:00:00Z
Look forward to your input and friendly discussion, thank you!
TL;DR
- We’re considering builder update to discard failed transactions from bundles if their hash is specified in request as
canRevert
– Note: Failed is different from reverted, see definitions above - Searchers & Builders: Is this feature valuable to the community, or are there negative implications with this change?
– Note: Discarding failed transactions is a feature other builders already support, e.g. builder0x69 - We’d appreciate feedback on this feature by Friday 2023-07-29T00:00:00Z
– Subject to feedback and discussion we’d go live by week of 2023-08-07T00:00:00Z