From 1235b5568e0ffccbf9f17f372465f8087632fe75 Mon Sep 17 00:00:00 2001 From: Tengji George Zhang Date: Fri, 22 Sep 2023 15:48:00 -0700 Subject: [PATCH] Reorg FB auction. Move builder list to boost. --- .../advanced/bundle-cancellations.mdx | 0 .../advanced/bundle-pricing.md | 0 .../advanced/coinbase-payment.mdx | 0 .../{searchers => }/advanced/eip1559.mdx | 0 .../{searchers => }/advanced/reputation.md | 0 .../{searchers => }/advanced/rpc-endpoint.mdx | 6 +- .../{searchers => }/advanced/testnets.mdx | 0 .../advanced/troubleshooting.mdx | 0 .../advanced/understanding-bundles.mdx | 0 docs/flashbots-auction/builder-list.md | 13 -- .../example-searchers/searcher-minter.md | 0 .../searcher-sponsored-tx.md | 0 .../example-searchers/simple-arbitrage-bot.md | 0 .../example-searchers/synthetix-searcher.md | 0 docs/flashbots-auction/{searchers => }/faq.md | 0 .../libraries/alchemyprovider.md | 0 .../libraries/ethers-js-provider.md | 0 .../{searchers => }/libraries/golang.md | 0 .../libraries/mev-share-clients.md | 0 .../libraries/web3py-provider.md | 0 .../{searchers => }/quick-start.mdx | 0 .../flashbots-auction/releases/alpha-v0.2.mdx | 151 ------------------ .../flashbots-auction/releases/alpha-v0.3.mdx | 60 ------- .../flashbots-auction/releases/alpha-v0.4.mdx | 101 ------------ .../flashbots-auction/releases/alpha-v0.5.mdx | 84 ---------- .../flashbots-auction/releases/alpha-v0.6.mdx | 87 ---------- .../releases/upgrade-process.md | 49 ------ docs/flashbots-mev-boost/block-builders.md | 14 +- docs/sidebars.js | 64 +++----- 29 files changed, 36 insertions(+), 593 deletions(-) rename docs/flashbots-auction/{searchers => }/advanced/bundle-cancellations.mdx (100%) rename docs/flashbots-auction/{searchers => }/advanced/bundle-pricing.md (100%) rename docs/flashbots-auction/{searchers => }/advanced/coinbase-payment.mdx (100%) rename docs/flashbots-auction/{searchers => }/advanced/eip1559.mdx (100%) rename docs/flashbots-auction/{searchers => }/advanced/reputation.md (100%) rename docs/flashbots-auction/{searchers => }/advanced/rpc-endpoint.mdx (99%) rename docs/flashbots-auction/{searchers => }/advanced/testnets.mdx (100%) rename docs/flashbots-auction/{searchers => }/advanced/troubleshooting.mdx (100%) rename docs/flashbots-auction/{searchers => }/advanced/understanding-bundles.mdx (100%) delete mode 100644 docs/flashbots-auction/builder-list.md rename docs/flashbots-auction/{searchers => }/example-searchers/searcher-minter.md (100%) rename docs/flashbots-auction/{searchers => }/example-searchers/searcher-sponsored-tx.md (100%) rename docs/flashbots-auction/{searchers => }/example-searchers/simple-arbitrage-bot.md (100%) rename docs/flashbots-auction/{searchers => }/example-searchers/synthetix-searcher.md (100%) rename docs/flashbots-auction/{searchers => }/faq.md (100%) rename docs/flashbots-auction/{searchers => }/libraries/alchemyprovider.md (100%) rename docs/flashbots-auction/{searchers => }/libraries/ethers-js-provider.md (100%) rename docs/flashbots-auction/{searchers => }/libraries/golang.md (100%) rename docs/flashbots-auction/{searchers => }/libraries/mev-share-clients.md (100%) rename docs/flashbots-auction/{searchers => }/libraries/web3py-provider.md (100%) rename docs/flashbots-auction/{searchers => }/quick-start.mdx (100%) delete mode 100644 docs/flashbots-auction/releases/alpha-v0.2.mdx delete mode 100644 docs/flashbots-auction/releases/alpha-v0.3.mdx delete mode 100644 docs/flashbots-auction/releases/alpha-v0.4.mdx delete mode 100644 docs/flashbots-auction/releases/alpha-v0.5.mdx delete mode 100644 docs/flashbots-auction/releases/alpha-v0.6.mdx delete mode 100644 docs/flashbots-auction/releases/upgrade-process.md diff --git a/docs/flashbots-auction/searchers/advanced/bundle-cancellations.mdx b/docs/flashbots-auction/advanced/bundle-cancellations.mdx similarity index 100% rename from docs/flashbots-auction/searchers/advanced/bundle-cancellations.mdx rename to docs/flashbots-auction/advanced/bundle-cancellations.mdx diff --git a/docs/flashbots-auction/searchers/advanced/bundle-pricing.md b/docs/flashbots-auction/advanced/bundle-pricing.md similarity index 100% rename from docs/flashbots-auction/searchers/advanced/bundle-pricing.md rename to docs/flashbots-auction/advanced/bundle-pricing.md diff --git a/docs/flashbots-auction/searchers/advanced/coinbase-payment.mdx b/docs/flashbots-auction/advanced/coinbase-payment.mdx similarity index 100% rename from docs/flashbots-auction/searchers/advanced/coinbase-payment.mdx rename to docs/flashbots-auction/advanced/coinbase-payment.mdx diff --git a/docs/flashbots-auction/searchers/advanced/eip1559.mdx b/docs/flashbots-auction/advanced/eip1559.mdx similarity index 100% rename from docs/flashbots-auction/searchers/advanced/eip1559.mdx rename to docs/flashbots-auction/advanced/eip1559.mdx diff --git a/docs/flashbots-auction/searchers/advanced/reputation.md b/docs/flashbots-auction/advanced/reputation.md similarity index 100% rename from docs/flashbots-auction/searchers/advanced/reputation.md rename to docs/flashbots-auction/advanced/reputation.md diff --git a/docs/flashbots-auction/searchers/advanced/rpc-endpoint.mdx b/docs/flashbots-auction/advanced/rpc-endpoint.mdx similarity index 99% rename from docs/flashbots-auction/searchers/advanced/rpc-endpoint.mdx rename to docs/flashbots-auction/advanced/rpc-endpoint.mdx index 30bb302ce..de990b903 100644 --- a/docs/flashbots-auction/searchers/advanced/rpc-endpoint.mdx +++ b/docs/flashbots-auction/advanced/rpc-endpoint.mdx @@ -4,9 +4,9 @@ title: RPC Endpoint import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -import Hints from "../../../specs/mev-share/_hints.mdx"; -import Builders from "../../../specs/mev-share/_builders.mdx"; -import SendBundleSpec from "../../../specs/mev-share/_mev_sendBundle.mdx"; +import Hints from "../../specs/mev-share/_hints.mdx"; +import Builders from "../../specs/mev-share/_builders.mdx"; +import SendBundleSpec from "../../specs/mev-share/_mev_sendBundle.mdx"; ## Interact directly with the Flashbots RPC endpoint diff --git a/docs/flashbots-auction/searchers/advanced/testnets.mdx b/docs/flashbots-auction/advanced/testnets.mdx similarity index 100% rename from docs/flashbots-auction/searchers/advanced/testnets.mdx rename to docs/flashbots-auction/advanced/testnets.mdx diff --git a/docs/flashbots-auction/searchers/advanced/troubleshooting.mdx b/docs/flashbots-auction/advanced/troubleshooting.mdx similarity index 100% rename from docs/flashbots-auction/searchers/advanced/troubleshooting.mdx rename to docs/flashbots-auction/advanced/troubleshooting.mdx diff --git a/docs/flashbots-auction/searchers/advanced/understanding-bundles.mdx b/docs/flashbots-auction/advanced/understanding-bundles.mdx similarity index 100% rename from docs/flashbots-auction/searchers/advanced/understanding-bundles.mdx rename to docs/flashbots-auction/advanced/understanding-bundles.mdx diff --git a/docs/flashbots-auction/builder-list.md b/docs/flashbots-auction/builder-list.md deleted file mode 100644 index f7d4ebcfb..000000000 --- a/docs/flashbots-auction/builder-list.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: List of Flashbots Builders ---- - -| Builder Address | -| -------------------------------------------------------------------------------------------------- | -| 0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f | -| 0xa1dead01e65f0a0eee7b5170223f20c8f0cbf122eac3324d61afbdb33a8885ff8cab2ef514ac2c7698ae0d6289ef27fc | -| 0xa1defa73d675983a6972e8686360022c1ebc73395067dd1908f7ac76a526a19ac75e4f03ccab6788c54fdb81ff84fc1b | -| 0x81babeec8c9f2bb9c329fd8a3b176032fe0ab5f3b92a3f44d4575a231c7bd9c31d10b6328ef68ed1e8c02a3dbc8e80f9 | -| 0xb89b9308fbc6c2998c7e60e39424b858c74b02c234b3e0fa5ecf7c3971208dfa5f92e0bdbe16fc24abfd71c248acf0f9 | -| 0x81babad2d5fd9413c942f49bfd86bc1dca5b02ff4cd065a10c7ab05713e63883056e6a87777e236424574aa25bbe3e99 | -| 0xa35e2b13ef528efbed8d2f709c0eb9eceb1225ed0605a653ba923588b0150c94772a9ba1c809d048e321f6b73d905c60 | diff --git a/docs/flashbots-auction/searchers/example-searchers/searcher-minter.md b/docs/flashbots-auction/example-searchers/searcher-minter.md similarity index 100% rename from docs/flashbots-auction/searchers/example-searchers/searcher-minter.md rename to docs/flashbots-auction/example-searchers/searcher-minter.md diff --git a/docs/flashbots-auction/searchers/example-searchers/searcher-sponsored-tx.md b/docs/flashbots-auction/example-searchers/searcher-sponsored-tx.md similarity index 100% rename from docs/flashbots-auction/searchers/example-searchers/searcher-sponsored-tx.md rename to docs/flashbots-auction/example-searchers/searcher-sponsored-tx.md diff --git a/docs/flashbots-auction/searchers/example-searchers/simple-arbitrage-bot.md b/docs/flashbots-auction/example-searchers/simple-arbitrage-bot.md similarity index 100% rename from docs/flashbots-auction/searchers/example-searchers/simple-arbitrage-bot.md rename to docs/flashbots-auction/example-searchers/simple-arbitrage-bot.md diff --git a/docs/flashbots-auction/searchers/example-searchers/synthetix-searcher.md b/docs/flashbots-auction/example-searchers/synthetix-searcher.md similarity index 100% rename from docs/flashbots-auction/searchers/example-searchers/synthetix-searcher.md rename to docs/flashbots-auction/example-searchers/synthetix-searcher.md diff --git a/docs/flashbots-auction/searchers/faq.md b/docs/flashbots-auction/faq.md similarity index 100% rename from docs/flashbots-auction/searchers/faq.md rename to docs/flashbots-auction/faq.md diff --git a/docs/flashbots-auction/searchers/libraries/alchemyprovider.md b/docs/flashbots-auction/libraries/alchemyprovider.md similarity index 100% rename from docs/flashbots-auction/searchers/libraries/alchemyprovider.md rename to docs/flashbots-auction/libraries/alchemyprovider.md diff --git a/docs/flashbots-auction/searchers/libraries/ethers-js-provider.md b/docs/flashbots-auction/libraries/ethers-js-provider.md similarity index 100% rename from docs/flashbots-auction/searchers/libraries/ethers-js-provider.md rename to docs/flashbots-auction/libraries/ethers-js-provider.md diff --git a/docs/flashbots-auction/searchers/libraries/golang.md b/docs/flashbots-auction/libraries/golang.md similarity index 100% rename from docs/flashbots-auction/searchers/libraries/golang.md rename to docs/flashbots-auction/libraries/golang.md diff --git a/docs/flashbots-auction/searchers/libraries/mev-share-clients.md b/docs/flashbots-auction/libraries/mev-share-clients.md similarity index 100% rename from docs/flashbots-auction/searchers/libraries/mev-share-clients.md rename to docs/flashbots-auction/libraries/mev-share-clients.md diff --git a/docs/flashbots-auction/searchers/libraries/web3py-provider.md b/docs/flashbots-auction/libraries/web3py-provider.md similarity index 100% rename from docs/flashbots-auction/searchers/libraries/web3py-provider.md rename to docs/flashbots-auction/libraries/web3py-provider.md diff --git a/docs/flashbots-auction/searchers/quick-start.mdx b/docs/flashbots-auction/quick-start.mdx similarity index 100% rename from docs/flashbots-auction/searchers/quick-start.mdx rename to docs/flashbots-auction/quick-start.mdx diff --git a/docs/flashbots-auction/releases/alpha-v0.2.mdx b/docs/flashbots-auction/releases/alpha-v0.2.mdx deleted file mode 100644 index 569ef9ded..000000000 --- a/docs/flashbots-auction/releases/alpha-v0.2.mdx +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: alpha-v0.2 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Changelog - -#### `eth_sendBundle` RPC parameters change -The specification of the `eth_sendBundle` RPC is changing to support new features of v0.2. This change must be adopted by all searchers in order to be compatible with the v0.2 relay. - -Here is the change in the specification: - - - - -```json -{ - "jsonrpc": "2.0", - "id": 1, - "method": "eth_sendBundle", - "params": [ - txs, // Array[String], A list of signed transactions to execute in an atomic bundle - blockNumber, // String, a hex encoded block number for which this bundle is valid on - minTimestamp, // (Optional) Number, the minimum timestamp for which this bundle is valid, in seconds since the unix epoch - maxTimestamp // (Optional) Number, the maximum timestamp for which this bundle is valid, in seconds since the unix epoch - ] -} -``` - - - - -```json -{ - "jsonrpc": "2.0", - "id": 1, - "method": "eth_sendBundle", - "params": [ - { - txs, // Array[String], A list of signed transactions to execute in an atomic bundle - blockNumber, // String, a hex encoded block number for which this bundle is valid on - minTimestamp, // (Optional) Number, the minimum timestamp for which this bundle is valid, in seconds since the unix epoch - maxTimestamp, // (Optional) Number, the maximum timestamp for which this bundle is valid, in seconds since the unix epoch - revertingTxHashes // (Optional) Array[String], A list of tx hashes that are allowed to revert - } - ] -} -``` - - - - -A new parameter `revertingTxHashes` is added to the bundles which allows the searcher to list the transactions in their bundle which are allowed to revert. By default, all transactions included in a bundle should never revert on chain. - -#### Bundle scoring -Bundles received by mev-geth will use a new scoring function to [mitigate some of the issues](https://hackmd.io/@flashbots/core-v2-proposal#Revamped-auction-pricing) with the scoring function used in v0.1. - -While the v0.2 pre-release removed the ability to pay the miner using gas price of a transaction, the scoring function selected for v0.2 allows the use of gas price based payments but excludes payments from transactions which are present in the regular transaction pool. - -Here is the formal definition of these scoring functions: - - - - -$$ -s_{v0.1} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2-pre} = \frac{\Delta_{coinbase}}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T - \sum_{T\in M \cap U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$s$: bundle $U$ _score_ used to sort bundles. -$U$: ordered list of transactions $T$ in a bundle. -$M$: set of transactions $T$ in the mempool. -$g_{T}$: _gas used_ by transaction $T$. -$p_{T}$: _gas price_ of transaction $T$. -$\Delta_{coinbase}$: coinbase difference from direct payment. - -#### Bundle validation -The relay removes the temporary limitation of two 'from' addresses per bundle. The bundle can once again contain transactions from an arbitrary number of EOAs. - -#### Bundle delivery -The `eth_sendBundle` RPC method on mev-geth is put into maintenance mode in the v0.2 release. Instead, mev-geth establishes an outgoing websockets connection with the relay, which streams bundles as they become available. This improves the security of the miner infrastructure as it no longer requires exposing an incoming RPC port. - -To connect to the relay over websockets, each miner will receive an access key which they must add to their mev-geth node to perform the authentication. - -#### Block construction -A [simple bundle merging algorithm](https://hackmd.io/@flashbots/core-v2-proposal#Bundle-merging) is introduced to mev-geth which allows multiple bundles to be merged together in a block so long as they do not cause an unexpected revert, or pass a certain amount of gas. The number of bundles mev-geth will attempt to merge together is controlled by the CLI flag`miner.maxmergedbundles`. This can be configured by the miner according to the performance of their hardware and their risk tolerance. - -## Timeline - -**May 10th**: launch v0.2 relay -- v0.2 relay starts accepting new bundle format -- searchers are asked to update their bots to send bundles to v0.2 relay endpoint -- v0.2 bundles are converted to v0.1 bundles in the relay and submitted to v0.1 miners along with v0.1 bundles -- miners receive access key and are asked to deploy a parallel v0.2 mev-geth node and provide relevant IPs - -Rollback plan: -- Since v0.2 bundles can be made backwards compatible with v0.1 bundles by dropping the `revertingTxHashes` field, if v0.2 to v0.1 bundle conversion on the relay is having issues, searchers can fallback to using v0.1 bundle format - -**May 24th**: v0.1 relay deprecation -- relay only accepts v0.2 bundles, v0.1 bundle submission is deprecated -- v0.2 bundles are converted to v0.1 bundles by the relay and sent to the v0.1 miners over RPC -- relay starts sending v0.2 bundles to the v0.2 mev-geth miners over RPC - -Rollback plan: -- If the v0.2 mev-geth nodes are having issues, notify miners to continue pointing hashpower to v0.1 nodes - -**May 31st**: v0.1 mev-geth deprecation -- relay stops converting v0.1 bundles and stops sending bundles to miners v0.1 mev-geth miners - -## Upgrade Steps - -### Searchers -- **May 10th**: Searchers able to send v0.2 bundles using new bundle format. -- **May 10th to May 24th**: Searchers upgrade their bots to send v0.2 bundles. -- **May 24th**: Deadline for searchers to upgrade to v0.2 bundles. - -### Miners -- **Before May 17th**: Miner complete new [authentication process](https://hackmd.io/@flashbots/miner-authentication). -- **May 17th**: Miners receive mev-geth v0.2 spec, mev-geth v0.2 reference implementation, and bundle delivery access key over discord. -- **May 17th to May 24th**: Miners review, integrate, and deploy their mev-geth v0.2 nodes in parallel to their v0.1 deployment and provide a new IP address to receive v0.2 bundles. -- **May 24th**: Miners who have provided the new IP addresses will begin receiving bundles and can begin migrating their hashrate to these nodes. -- **May 24th to May 31st**: Miners monitor the performance of the v0.2 nodes and communicate back any issues. -- **May 31st**: v0.1 nodes can safely be shut down. diff --git a/docs/flashbots-auction/releases/alpha-v0.3.mdx b/docs/flashbots-auction/releases/alpha-v0.3.mdx deleted file mode 100644 index 781c7a124..000000000 --- a/docs/flashbots-auction/releases/alpha-v0.3.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: alpha-v0.3 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Changelog - -#### EIP-1559 support added -Bundle scoring takes into account BASEFEE mechanisms to calculate miner's revenue from bundles. - -Here is the formal definition of scoring functions: - - - - -$$ -s_{v0.1} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2-pre} = \frac{\Delta_{coinbase}}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T - \sum_{T\in M \cap U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.3} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tm_T - \sum_{T\in M \cap U}g_Tm_T}{\sum_{T\in U}g_T} -$$ - - - - -$s$: bundle $U$ _score_ used to sort bundles. -$U$: ordered list of transactions $T$ in a bundle. -$M$: set of transactions $T$ in the mempool. -$g_{T}$: _gas used_ by transaction $T$. -$p_{T}$: _gas price_ of transaction $T$. -$c_{T}$: _fee cap per gas_ of transaction $T$. -$\delta_T$: _priority fee per gas_ of transaction $T$. -$e_{T}$: _effective fee per gas_ of transaction $T$ equal $\min$($c_{T}$, BASEFEE + $\delta_T$). -$m_{T}$: _miner fee per gas_ of transaction $T$ equal $e_{T}$ - BASEFEE. -$\Delta_{coinbase}$: coinbase difference from direct payment. diff --git a/docs/flashbots-auction/releases/alpha-v0.4.mdx b/docs/flashbots-auction/releases/alpha-v0.4.mdx deleted file mode 100644 index bbbee1385..000000000 --- a/docs/flashbots-auction/releases/alpha-v0.4.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: alpha-v0.4 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Changelog - -#### Megabundles support added -Relays can merge bundles and suggest them for profit switching. -Miners can define a list of trusted relay addresses from which megabundles are accepted. - -Scoring function does not change between v0.3 and v0.4: - - - - -$$ -s_{v0.1} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2-pre} = \frac{\Delta_{coinbase}}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T - \sum_{T\in M \cap U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.3-4} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tm_T - \sum_{T\in M \cap U}g_Tm_T}{\sum_{T\in U}g_T} -$$ - - - - -$s$: bundle $U$ _score_ used to sort bundles. -$U$: ordered list of transactions $T$ in a bundle. -$M$: set of transactions $T$ in the mempool. -$g_{T}$: _gas used_ by transaction $T$. -$p_{T}$: _gas price_ of transaction $T$. -$c_{T}$: _fee cap per gas_ of transaction $T$. -$\delta_T$: _priority fee per gas_ of transaction $T$. -$e_{T}$: _effective fee per gas_ of transaction $T$ equal $\min$($c_{T}$, BASEFEE + $\delta_T$). -$m_{T}$: _miner fee per gas_ of transaction $T$ equal $e_{T}$ - BASEFEE. -$\Delta_{coinbase}$: coinbase difference from direct payment. - -## Timeline - -### September, 10th 2021 -Final spec of version alpha-v0.4 ready - -Flashbots reference implementation ready - -Flashbots Goerli running on version alpha-v0.4 - -Start of miners custom implementations and testing - -### September, 22nd 2021 -End of miners custom implementation and testing - -### September, 27th 2021 -All miners running on v0.4 - -Flashbots mainnet relay switching to alpha-v0.4 - -## Upgrade Steps - -- Miners asked to upgrade to v1.10.8-mev0.4.0 -- Miners can update 100% of capacity to this new version -- Miners will need to upgrade to the [newest version of mev-proxy](https://github.com/flashbots/mev-proxy) or whitelist the RPC call `eth_sendMegabundle` for your specific environment. -- Miners must add a new command line parameter for Megabundle Relays (see below) - -## Node configuration - -Miners must configure a new command line parameter to specify which relays megabundles will be accepted. The parameter is set as follows for a list of 3 relayers. - -```bash --miner.trustedrelays=0xADDR1,0xADDR2,0xADDR3 -``` - -The default Mega Bundle Relayer is set to the Flashbots Relayer `0x870e2734DdBe2Fba9864f33f3420d59Bc641f2be`. If you only want to receive bundles from this default relayer no configuration is necessary. For configurations which allow more relayers, be sure to also include the Flashbots relayer in your configuration. - -```bash --miner.trustedrelays=0x870e2734DdBe2Fba9864f33f3420d59Bc641f2be,0xADDR2,0xADDR3 -``` diff --git a/docs/flashbots-auction/releases/alpha-v0.5.mdx b/docs/flashbots-auction/releases/alpha-v0.5.mdx deleted file mode 100644 index 920b9d546..000000000 --- a/docs/flashbots-auction/releases/alpha-v0.5.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: alpha-v0.5 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Changelog - -#### v0.5 Immediate megabundle processing -Miners pick up megabundles immediately if they are better than the best known block so far. -It leads to significantly increased profitability (+50% MEV backtested). - -#### v0.4 Megabundles support added -Relays can merge bundles and suggest them for profit switching. -Miners can define a list of trusted relay addresses from which megabundles are accepted. - -#### v0.3 EIP-1559 support added -Bundle scoring takes into account BASEFEE mechanisms to calculate miner's revenue from bundles. - -#### v0.2 `eth_sendBundle` RPC parameters change -The specification of the `eth_sendBundle` RPC is changing to support new features of v0.2. This change must be adopted by all searchers in order to be compatible with the v0.2 relay. - -Scoring function does not change between v0.4 and v0.5: - - - - -$$ -s_{v0.1} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2-pre} = \frac{\Delta_{coinbase}}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T - \sum_{T\in M \cap U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.3-5} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tm_T - \sum_{T\in M \cap U}g_Tm_T}{\sum_{T\in U}g_T} -$$ - - - - -$s$: bundle $U$ _score_ used to sort bundles. -$U$: ordered list of transactions $T$ in a bundle. -$M$: set of transactions $T$ in the mempool. -$g_{T}$: _gas used_ by transaction $T$. -$p_{T}$: _gas price_ of transaction $T$. -$c_{T}$: _fee cap per gas_ of transaction $T$. -$\delta_T$: _priority fee per gas_ of transaction $T$. -$e_{T}$: _effective fee per gas_ of transaction $T$ equal $\min$($c_{T}$, BASEFEE + $\delta_T$). -$m_{T}$: _miner fee per gas_ of transaction $T$ equal $e_{T}$ - BASEFEE. -$\Delta_{coinbase}$: coinbase difference from direct payment. - -## Timeline - -### February, 15th 2022 - v0.5 spec and MEV-Geth-v0.5 release ready - -## Upgrade Steps - -- Miners asked to upgrade to v[geth_version]-mev0.5.0 -- Miners can update 100% of capacity to this new version - -## Node configuration - -No additional configuration is required. \ No newline at end of file diff --git a/docs/flashbots-auction/releases/alpha-v0.6.mdx b/docs/flashbots-auction/releases/alpha-v0.6.mdx deleted file mode 100644 index 2ed2de9fc..000000000 --- a/docs/flashbots-auction/releases/alpha-v0.6.mdx +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: alpha-v0.6 (current) ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Changelog - -#### v0.6 Private transactions support -Added eth_sendPrivateRawTransaction support. Private transactions can be now accepted and included in the blocks. Such transactions are not distributed to any other nodes in the network and only taken into account when a block is constructed locally. - -#### v0.5 Immediate megabundle processing -Miners pick up megabundles immediately if they are better than the best known block so far. -It leads to significantly increased profitability (+50% MEV backtested). - -#### v0.4 Megabundles support added -Relays can merge bundles and suggest them for profit switching. -Miners can define a list of trusted relay addresses from which megabundles are accepted. - -#### v0.3 EIP-1559 support added -Bundle scoring takes into account BASEFEE mechanisms to calculate miner's revenue from bundles. - -#### v0.2 `eth_sendBundle` RPC parameters change -The specification of the `eth_sendBundle` RPC is changing to support new features of v0.2. This change must be adopted by all searchers in order to be compatible with the v0.2 relay. - -Scoring function does not change between v0.4 and v0.5: - - - - -$$ -s_{v0.1} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2-pre} = \frac{\Delta_{coinbase}}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.2} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tp_T - \sum_{T\in M \cap U}g_Tp_T}{\sum_{T\in U}g_T} -$$ - - - -$$ -s_{v0.3-6} = \frac{\Delta_{coinbase} + \sum_{T\in U}g_Tm_T - \sum_{T\in M \cap U}g_Tm_T}{\sum_{T\in U}g_T} -$$ - - - - -$s$: bundle $U$ _score_ used to sort bundles. -$U$: ordered list of transactions $T$ in a bundle. -$M$: set of transactions $T$ in the mempool. -$g_{T}$: _gas used_ by transaction $T$. -$p_{T}$: _gas price_ of transaction $T$. -$c_{T}$: _fee cap per gas_ of transaction $T$. -$\delta_T$: _priority fee per gas_ of transaction $T$. -$e_{T}$: _effective fee per gas_ of transaction $T$ equal $\min$($c_{T}$, BASEFEE + $\delta_T$). -$m_{T}$: _miner fee per gas_ of transaction $T$ equal $e_{T}$ - BASEFEE. -$\Delta_{coinbase}$: coinbase difference from direct payment. - -## Timeline - -### February, 28th 2022 - v0.6 spec and MEV-Geth-v0.6 release ready - -## Upgrade Steps - -- Miners asked to upgrade to v[geth_version]-mev0.6.0 -- Miners can update 100% of capacity to this new version - -## Node configuration - -No additional configuration is required. diff --git a/docs/flashbots-auction/releases/upgrade-process.md b/docs/flashbots-auction/releases/upgrade-process.md deleted file mode 100644 index 1e23d6420..000000000 --- a/docs/flashbots-auction/releases/upgrade-process.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Upgrade Process ---- - -Flashbots Auction project encompasses the suite of user facing products used for democratizing MEV extraction outlined in the overview section. - -Breaking changes to these products requires coordination with searchers and miners to update their bot / node implementations. As such, we've devised the following high level upgrade process to set expectations, standardize communications, and provide sufficient time for 3rd parties to update their software. - -1. Feature selection process -2. Formal specification and reference implementation -3. Versioned deployment and testing -4. Monitoring continuing performance - -We do not make any commitments around how frequently / quickly these upgrades will happen as we wish to maintain flexibility during the Flashbots Alpha (v0.x.x). That being said, we will do our best to provide adequate information and time to adapt to critical changes. - -![Flashbots Auction Upgrades](/img/gant-chart-upgrade.png) - -## Feature selection process - -The goal of the feature selection process is to surface feature requests from the community and collaborate on implementation. - -## Formal specification and reference implementation - -We've learned that despite maintaining a reference implementation of mev-geth, miners tend to re-implement our feature set on their own custom nodes. This has lead to some confusion around what are "required" vs "nice to have" features as well as bugs which have lead to unexpected behaviors like mining unprofitable / reverting bundles. - -By producing a formal specification and updating it on each release, we aim to provide a document that clearly outlines the expected behavior of the node implementation and use it to grant / withhold access to the relay. - -## Versioned deployment and testing - -To provide the best possible availability and correctness guarantees to the Flashbots Network, we aim to perform upgrades in a way that minimizes disruptions. This involves a 'rolling' upgrade process where searchers can define which version of Flashbots Auction they are targeting. - -At a selected block height, the relay will route all searcher bundles exclusively to the nodes that have implemented the new specification. A searcher desiring to remain on a previous version may do so by [specifying the target version](https://github.com/flashbots/mev-relay-js/issues/37) until a predetermined deprecation block height where the old version will no longer be supported by the relay. - -Miners will want to begin implementing the changes required as soon as the updated specification is released in order to be ready for the upgrade block height. Once the miner's implementation is ready, they can request to undergo our suite of correctness tests which once successfully passed, will allow them to begin receiving bundles on the new system version. - -These tests involve receiving and mining a series of bundles on a test environment which can be analyzed by the flashbots team. The tests will cover a range of known edge cases including but not limited to: - -- logic testing - - block formation / ordering - - bundle prioritization - - bundle atomicity -- probabilistic testing - - custom profit switcher - - latency and delays - - mempool volume - -## Monitoring continuing performance - -While passing the test suite helps identify and correct some logical errors, it will not be able to catch everything which can go wrong on the mining side. As such, the Flashbots Auction team has built a series of monitoring tools which analyses mined flashbots blocks for correctness and profitability in order to help miners insure their infrastructure is behaving as expected. If unexpected behavior is identified, like mining bundles which did not go through the relay or producing incorrect blocks, Flashbots will temporarily disable sending the bundles to the miner and provide the technical support required to resolve the issues at hand. diff --git a/docs/flashbots-mev-boost/block-builders.md b/docs/flashbots-mev-boost/block-builders.md index 5390c8d4a..4ce0c603c 100644 --- a/docs/flashbots-mev-boost/block-builders.md +++ b/docs/flashbots-mev-boost/block-builders.md @@ -57,12 +57,14 @@ All Flashbots builders pay block proposers from theĀ [`flashbots-builder.eth` EN The variousĀ `builder_pubkeys` used to identify Flashbots builders to relays are listed below: -| **Builder 'Name'** | **Builder Public Key** | -| ---------------------------- | ------------------------------------------------------------------------------------------------------ | -| **babe** | 0x81**babe**ec8c9f2bb9c329fd8a3b176032fe0ab5f3b92a3f44d4575a231c7bd9c31d10b6328ef68ed1e8c02a3dbc8e80f9 | -| **beef** | 0x81**beef**03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f | -| **dead** | 0xa1**dead**1e65f0a0eee7b5170223f20c8f0cbf122eac3324d61afbdb33a8885ff8cab2ef514ac2c7698ae0d6289ef27fc | -| **defa** _(mempool builder)_ | 0xa1**defa**73d675983a6972e8686360022c1ebc73395067dd1908f7ac76a526a19ac75e4f03ccab6788c54fdb81ff84fc1b | +| **Builder Public Key** | +| -------------------------------------------------------------------------------------------------- | +| 0x81babeec8c9f2bb9c329fd8a3b176032fe0ab5f3b92a3f44d4575a231c7bd9c31d10b6328ef68ed1e8c02a3dbc8e80f9 | +| 0x81beef03aafd3dd33ffd7deb337407142c80fea2690e5b3190cfc01bde5753f28982a7857c96172a75a234cb7bcb994f | +| 0xa1dead1e65f0a0eee7b5170223f20c8f0cbf122eac3324d61afbdb33a8885ff8cab2ef514ac2c7698ae0d6289ef27fc | +| 0xa1defa73d675983a6972e8686360022c1ebc73395067dd1908f7ac76a526a19ac75e4f03ccab6788c54fdb81ff84fc1b | +| 0x81babad2d5fd9413c942f49bfd86bc1dca5b02ff4cd065a10c7ab05713e63883056e6a87777e236424574aa25bbe3e99 | +| 0xa35e2b13ef528efbed8d2f709c0eb9eceb1225ed0605a653ba923588b0150c94772a9ba1c809d048e321f6b73d905c60 | ## Additional Links & References diff --git a/docs/sidebars.js b/docs/sidebars.js index 20c6d3bae..5052708c3 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -8,49 +8,35 @@ module.exports = { { 'Flashbots Builders': [ 'flashbots-auction/overview', + 'flashbots-auction/quick-start', { - "For Searchers": [ - 'flashbots-auction/searchers/quick-start', - { - "Example Searchers": [ - 'flashbots-auction/searchers/example-searchers/simple-arbitrage-bot', - 'flashbots-auction/searchers/example-searchers/searcher-sponsored-tx', - 'flashbots-auction/searchers/example-searchers/searcher-minter', - 'flashbots-auction/searchers/example-searchers/synthetix-searcher', - ], - "Libraries": [ - 'flashbots-auction/searchers/libraries/golang', - 'flashbots-auction/searchers/libraries/ethers-js-provider', - 'flashbots-auction/searchers/libraries/web3py-provider', - 'flashbots-auction/searchers/libraries/alchemyprovider', - 'flashbots-auction/searchers/libraries/mev-share-clients', - ], - "Advanced Concepts": [ - 'flashbots-auction/searchers/advanced/understanding-bundles', - 'flashbots-auction/searchers/advanced/coinbase-payment', - 'flashbots-auction/searchers/advanced/bundle-pricing', - 'flashbots-auction/searchers/advanced/rpc-endpoint', - 'flashbots-auction/searchers/advanced/reputation', - 'flashbots-auction/searchers/advanced/testnets', - 'flashbots-auction/searchers/advanced/eip1559', - 'flashbots-auction/searchers/advanced/troubleshooting', - 'flashbots-auction/searchers/advanced/bundle-cancellations', - ], - }, - 'flashbots-auction/builder-list', - 'flashbots-auction/searchers/faq', - 'flashbots-auction/other-resources' + "Example Searchers": [ + 'flashbots-auction/example-searchers/simple-arbitrage-bot', + 'flashbots-auction/example-searchers/searcher-sponsored-tx', + 'flashbots-auction/example-searchers/searcher-minter', + 'flashbots-auction/example-searchers/synthetix-searcher', ], - 'MEV-Geth Releases': [ - 'flashbots-auction/releases/alpha-v0.6', - 'flashbots-auction/releases/alpha-v0.5', - 'flashbots-auction/releases/alpha-v0.4', - 'flashbots-auction/releases/alpha-v0.3', - 'flashbots-auction/releases/alpha-v0.2', - 'flashbots-auction/releases/upgrade-process', - + "Libraries": [ + 'flashbots-auction/libraries/golang', + 'flashbots-auction/libraries/ethers-js-provider', + 'flashbots-auction/libraries/web3py-provider', + 'flashbots-auction/libraries/alchemyprovider', + 'flashbots-auction/libraries/mev-share-clients', + ], + "Advanced Concepts": [ + 'flashbots-auction/advanced/understanding-bundles', + 'flashbots-auction/advanced/coinbase-payment', + 'flashbots-auction/advanced/bundle-pricing', + 'flashbots-auction/advanced/rpc-endpoint', + 'flashbots-auction/advanced/reputation', + 'flashbots-auction/advanced/testnets', + 'flashbots-auction/advanced/eip1559', + 'flashbots-auction/advanced/troubleshooting', + 'flashbots-auction/advanced/bundle-cancellations', ], }, + 'flashbots-auction/faq', + 'flashbots-auction/other-resources', ] }, {