Skip to content

Conversation

@zerosnacks
Copy link
Member

Motivation

To improve transaction inclusion guarantees Flashbots offers a fast endpoint that shares the transaction with all registered builders.

Solution

To prevent introducing unnecessary breaking changes whilst offering major benefits I suggest using Flashbots' fast route.

A future solution could be to allow the user to define their own BUILDER_RPC_URL (separate from the ETH_RPC_URL). and get rid of the vendor lock-in naming of flashbots to something more neutral like private.

Copy link
Contributor

@onbjerg onbjerg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mds1
Copy link
Collaborator

mds1 commented Jan 17, 2024

What's the rationale for using /fast as the default, when flashbots doesn't use it as their default, i.e. what security tradeoff is being made with fast mode? IMO foundry should lean towards being conservative here, and users can manually specify the fast URL when needed

@zerosnacks
Copy link
Member Author

What's the rationale for using /fast as the default, when flashbots doesn't use it as their default, i.e. what security tradeoff is being made with fast mode? IMO foundry should lean towards being conservative here, and users can manually specify the fast URL when needed

Rationale is that at the time this feature was introduced Flashbots was the dominant builder RPC offering private transactions whereas nowadays there is a much more diverse builders market.

According to https://libmev.com/builders Flashbots only builds 2.3% of the blocks on mainnet, hardly competitive anymore.

The /fast route sends to a subset of all builders, curated by Flashbots, that are trusted by Flashbots.

It makes sense that Flashbots doesn't default to /fast because sharing all private orderflow with all builders means losing your competitive advantage.

Searchers often maintain their own list of builders that they trust and send their bundles to, ranked by likeliness of transaction inclusion and personal preference. Asking Foundry to do the same is unrealistic and out of scope I think.

@mds1
Copy link
Collaborator

mds1 commented Jan 17, 2024

Got it, thanks for the explanation! Seems reasonable to me then

@Evalir Evalir merged commit f32550c into foundry-rs:master Jan 17, 2024
@zerosnacks
Copy link
Member Author

i.e. what security tradeoff is being made with fast mode? IMO foundry should lean towards being conservative here, and users can manually specify the fast URL when needed

The security tradeoff is that by sharing the transaction with many builders you increase the odds of being vulnerable to a builder acting maliciously (front running, back running, sandwiching).

@zerosnacks zerosnacks deleted the feat/use-fast-flashbots-endpoint-for-faster-inclusion branch June 23, 2025 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants