Skip to content

resolve conflict #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 107 commits into
base: fix/backtest-secret-temp-generate
Choose a base branch
from
Open

Conversation

danielhyk1
Copy link
Owner

πŸ“ Summary

πŸ’‘ Motivation and Context


βœ… I have completed the following steps:

  • Run make lint
  • Run make test
  • Added tests (if applicable)

rkrasiuk and others added 30 commits September 30, 2024 10:36
## Description

Allow reading config path from env.
Adds bundle hash to redistribution output

output json diff:

```
<               "Bundle": {
<                 "uuid": "$UUID",
<                 "hash": "$HASH"
<               }
---
>               "Bundle": "$UUID"
```
## πŸ“ Summary

This updates sha3-asm / keccak-asm deps.

## πŸ’‘ Motivation and Context

`0.1.4` includes fixes which make keccak-asm work on more platforms
(DaniPopes/keccak-asm#5)

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Support for the upcoming Pectra hardfork. Depends on
alloy-rs/alloy#1303
…bots#202)

## πŸ“ Summary

Currently we log errors that can happen normally
* profit too low (that happens if we don't have enough eth on coinbase
yet)
* consisent db view error (that happens if block that we are building
for is proposed)


## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

This PR adds the option to supply the genesis fork version from a flag
instead of querying the CL nodes which might not be active yet.

Closes flashbots#35

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [x] Added tests (if applicable)
## πŸ“ Summary

More mocking and debug stuff.

## πŸ’‘ Motivation and Context

Allow better tests!

---

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

1. Adds sparse trie prefetcher
2. Fixes deser. error for validation request
3. Adds root hash metrics because finalize adds up to 60% to the root
hash with sparse trie and its separates these two.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Don't filter mempool txs form the joint contribution when redistibuting
to them

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

This is pretty serious regression that I've missed while reviewing
external PR on one of the reth upgrades.

We need to be careful to not allow something like that slip in the
future.

## πŸ’‘ Motivation and Context

calling recover_signer verifies transaction signature every time we try
to executing something in the vm.

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

New experimental BlockBuildingAlgorithm added!

## πŸ’‘ Motivation and Context

The other algorithm was quite lonely and sad.

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Removed the sleep at the beginning of the relay submit loop since this
is the responsibility of the bidding module.
Replaced a 5ms polling for an await to improve bidding latency.
 
## πŸ’‘ Motivation and Context

New root hash speed makes this 5ms latency important.

---

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)
Closes flashbots#216 

Replaces all concrete usage of `ProviderFactory` and
`ProviderFactoryReopener` with generics bounded by [reth provider
traits](https://github.com/paradigmxyz/reth/blob/661b260f6172c047e8530e2331b2c84141e03c2b/crates/storage/provider/src/traits/full.rs#L14-L24).
This allows running rbuilder in-process using a node provider and eases
swapping to a more modern provider like `BlockchainProvider` in the
future.

Note that not all trait methods can be implemented because
`ProviderFactoryReopener` has no access to the blockchain tree (pending
state etc.).

## DB Consistency Checks

Consistency checks have been moved out of the rbuilder core into the
trait implementation for `ProviderFactoryReopener`. Inside the trait
implementation, the current head block number is not known, so the
reopener cannot assume that the state of the block given - 256 blocks
will be available.

To not redundantly re-check the consistency of the same block,
`ProviderFactoryReopener` tracks the last block verified to have
consistent state and will only re-check it when it changes. This adds 1
additional read per provider call to get the head of the chain, however
I believe the cost will be insignificant.
## πŸ“ Summary
This PR introduces a new building algorithm which parallelizes the
process of building blocks. In particular, it moves the largely
sequential process of processing orders, resolving conflicts, and
building blocks into modular and parallel process. Each of these
components now runs in parallel, allowing for continuous intake of
orderflow, flexible resolution of conflicts, and building blocks with
the latest flow and best conflict resolution results. It is a
significant architecture change.

See
[run_parallel_builder](https://github.com/flashbots/rbuilder/blob/parallel-builder/crates/rbuilder/src/building/builders/parallel_builder/mod.rs#L180)
for a good code entry point and the
[readme.md](https://github.com/flashbots/rbuilder/blob/parallel-builder/crates/rbuilder/src/building/builders/parallel_builder/readme.md)
for more architecture details.

Key Changes:
- Introduced a new parallel_builder module, replacing the
merging_builder. This adds several components for orderflow intake,
conflict identification, conflict resolution, and merging of resolved
conflicts.
- Added a simulation cache to optimize repeated simulations of similar
order sequences.
- Updated the builder configuration to use the new Parallel Builder
instead of the Merging Builder.
- Implemented backtest functionality for the Parallel Builder.

## πŸ’‘ Motivation and Context

- Concurrency driven efficiency improvements: running significant
processes in parallel is more efficient, and should lead to better
blocks. Processes aren't sequential, so they aren't blocked on each
other anymore.
- Reuses previous work: Instead of repeating conflict resolution, we are
able to reuse old resolved conflict results.
- Better conflict management: We can prioritize "fast" conflict
resolution tasks to get results for a conflict group to the building
assembler fast, but then also queue "slow" tasks (like evolutionary
algorithms) which might produce better results but are slower.

## Testing
Finally, I've added a range of tests to the new algorithm. I further
have tested it extensively on a local node using mempool txs.

- ---

## βœ… I have completed the following steps:

* [βœ… ] Run `make lint`
* [βœ… ] Run `make test`
* [ βœ…] Added tests (if applicable)
- Refactors `LiveBuilderConfig::new_builder` to take a generic provider
- Refactors `WalletBalanceWatcher` to take a generic provider
- Adds new crate `reth-rbuilder` that runs rbuilder in-process with reth
- Changes config default ports that overlap with reth
## πŸ“ Summary

There was a bug if the block number was 0 (block_hash got 2^64-1 as a
parameter)

## πŸ’‘ Motivation and Context

Broke devnet tests for Pectra upgrade.

---

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

- changes path of `el_node_ipc_path` in `config-playground.toml` to use
`$HOME/.playground/devnet` instead of `/tmp` (aligns with current
builder-playground defaults)
- adds a step in the README to replace '$HOME' with your actual home
path
- `$HOME` was not evaluating correctly for me (tested on my ubuntu
machine), fully-qualified paths fixed it

## πŸ’‘ Motivation and Context

Following the
[instructions](https://github.com/flashbots/rbuilder?tab=readme-ov-file#end-to-end-local-testing)
without changing anything gave me this error:

```txt
Ξ΄ cargo run --bin rbuilder run config-playground.toml
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.67s
     Running `target/debug/rbuilder run config-playground.toml`
...(truncated)

Error: No such file or directory (os error 2)

Caused by:
    No such file or directory (os error 2)

Location:
    /home/dev/code/rbuilder/crates/rbuilder/src/live_builder/order_input/clean_orderpool.rs:30:20
```

The [line of
code](https://github.com/flashbots/rbuilder/blob/develop/crates/rbuilder/src/live_builder/order_input/clean_orderpool.rs#L30)
given by the error connects to the IPC provider, which was being
initialized with an invalid path given the current instructions &
defaults.

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [x] Added tests (if applicable)

---------

Co-authored-by: Ferran Borreguero <[email protected]>
…ashbots#233)

When disallowed for all `Order` varients, the coinbase account has no
way to spend funds when rbuilder is building all blocks for a chain.

Instead of using saturating_sub, I also tried changing `coinbase_profit`
from a `U256` to an `I256`, but ran into issues where a `U256` is
required to calculate stuff like `mev_gas_price` in later logic. I'd
prefer that approach if anyone knows if it is feasible.
## πŸ“ Summary

Adds `RBUILDER_BIN` build arg to Dockerfile so that a docker image for `reth-rbuilder` can be built as well.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Move all the code from flashbots/eth-sparse-mpt to this repo to make
reth / alloy upgrades easier.

<!--- A general summary of your changes -->

closes flashbots#210

## πŸ’‘ Motivation and Context

eth-sparse-mpt heavily depends on reth and alloy and this will make
updates of the rbuilder dependencies easier.

---

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [x] Added tests (if applicable)
## πŸ“ Summary

Removes the tracing initialization when spawning an `rbuilder` handle.

## πŸ’‘ Motivation and Context

Reth indeed boots up tracing itself, so this is indeed unnecessary.

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [ ] Added tests (if applicable)
… container (flashbots#250)

## πŸ“ Summary

The addition of `default-members = ["crates/rbuilder"]` in flashbots#244 broke
the ability to use `docker build --build-arg RBUILDER_BIN=reth-rbuilder`
to build a `reth-rbuilder` container, this should re-enable it.

## πŸ’‘ Motivation and Context

We're using the `reth-rbuilder` container in kurtosis for Pectra
testing.

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: liamaharon <[email protected]>
Spin up telemetry servers for rbuilder when run in `op-rbuilder`.
## πŸ“ Summary

- Dependency hell.			
- In lots of generics (eg:ProviderFactory) the need of DB+Spec was
replaced for NodeTypesWithDB.
- DatabaseProviderFactory DB now is asociated type and have 2 more. In
lots of places now we need Provider: BlockReader.
- Lots of types moved to alloy_primitives.
- encode/decode_enveloped now are XXX_2718 with minimal changes.
- New alloy TrieNode::EmptyRoot .
- CachedReads moved to reth::revm::cached.
- AsyncStateRoot replaced by ParallelStateRoot
(paradigmxyz/reth#11213).
- Some HashMap/Set changed to custom versions (eg:
alloy_primitives::map::HashMap).
- TransactionPool needs stronger restrictions on Transaction.
- Updated block finalization (pectra).
- Pectra relay submition.

## πŸ’‘ Motivation and Context

- We needed this for Pectra and to be up to date with reth.
- My life was going so well that I needed something to balance it so I
did this boring PR.

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: Liam Aharon <[email protected]>
ferranbt and others added 30 commits January 3, 2025 17:00
## πŸ“ Summary

Closes flashbots#304 

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Closes flashbots#318. This PR uses the block building flow to notify the order
pool to clean old transactions instead of using the IPC path of the EL
node.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: Daniel Xifra <[email protected]>
## πŸ“ Summary

It does not seem necessary for me to run the integration tests in
redact-sensitive mode.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary
Generates a random relay secret key when none is set
Closes flashbots#333

## πŸ’‘ Motivation and Context
---

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Generates a random coinbase address if none was set
Closes flashbots#306

## πŸ’‘ Motivation and Context
---

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [x] Added tests (if applicable)
Make `el_node_ipc_path` optional in config.

flashbots#302 

## βœ… I have completed the following steps:

* [βœ… ] Run `make lint`
* [βœ… ] Run `make test`
* [ ] Added tests (if applicable)

---------

Signed-off-by: 7suyash7 <[email protected]>
## πŸ“ Summary

- Removes a `redact-sensitive` check following
flashbots#332
- Scales up the CI runners to solve OOM issue
https://github.com/flashbots/rbuilder/actions/runs/12640958168?pr=344
## πŸ“ Summary

Closes flashbots#305 

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: Daniel Xifra <[email protected]>
## πŸ“ Summary

Simplify the playground config to include only the required fields.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
…ashbots#347)

Refactors the `TransactionSignedEcRecoveredWithBlobs` constructor api.

## Adds `new` constructor
```rust
    /// Create new with an optional blob sidecar.
    ///
    /// Warning: It is the caller's responsibility to check if a tx has blobs.
    /// This fn will return an Err if it is passed an eip4844 without blobs.
    pub fn new(
        tx: TransactionSignedEcRecovered,
        blob_sidecar: Option<BlobTransactionSidecar>,
        metadata: Option<Metadata>,
    ) -> Result<Self, TxWithBlobsCreateError>
```

## `new_no_blobs` return val 
Change return type from `Option<Self>` to `Result<Self,
TxWithBlobsCreateError>` to better reflect behavior

## Adds `try_from` for `TransactionSignedEcRecovered`
```rust
    /// Try to create a [`TransactionSignedEcRecoveredWithBlobs`] from a
    /// [`TransactionSignedEcRecovered`] and reth pool.
    ///
    /// The pool is required because [`TransactionSignedEcRecovered`] on its
    /// own does not contain blob information, it is required to fetch the blob.
    ///
    /// Unfortunately we need to pass the entire pool, because the blob store
    /// is not part of the pool's public api.
    pub fn try_from_tx_without_blobs_and_pool<V, T, S>(
        tx: TransactionSignedEcRecovered,
        pool: Pool<V, T, S>,
    ) -> Result<Self, TxWithBlobsCreateError>
```
## πŸ“ Summary

This fixes a bug where we only use 1 thread where the intention was to
provision a number of threads.

## πŸ’‘ Motivation and Context

This will make resolving conflicts in the parallel builder much more
efficient.
---

## βœ… I have completed the following steps:

* [ βœ…] Run `make lint`
* [ βœ…] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: Daniel Xifra <[email protected]>
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

close flashbots#341 

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
…ashbots#339)

Adds a new method to `LiveBuilder` `connect_to_transaction_pool`
allowing in-process connection between the reth transaction pool and
rbuilder orderpool.

This fixes an issue where the orderpool does not receive any
transactions that were cached on disk by reth on start up, and finally
removes the requirement for an ipc connection when running in-process.
Sometimes, the Cargo.lock will differ between `BASE_SHA` and `HEAD_SHA`.

This can cause the final checkout to `HEAD_SHA` to fail.

This PR resolves that, by resetting any changes prior to the final
checkout.
## πŸ“ Summary

This PR makes backtest-build-block more versatile so the chain used and
orders come from an ```OrdersSource``` instead of the hardcoded mainnet
we had.
The original backtest_build_block behavior is now achieved using the
```OrdersSource``` ```LandedBlockFromDBOrdersSource```.
A new ```OrdersSource``` ```SyntheticOrdersSource``` is provided as an
example of how to run backtest-build-block with a syntetic chain and
synthetic orders.


## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: sukoneck <[email protected]>
## πŸ“ Summary

For some reason github allowed to merge
flashbots#344 with errors!
Fixed those errors and also disabled roothash calculation on
backtesting.

## πŸ’‘ Motivation and Context

I was threatened by the the other programmers.

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Bug introduced in flashbots#327. Rbuilder would not stop with `Ctrl-C` because it
would be waiting for `spawn_clean_orderpool_job` to finish. But,
`spawn_clean_orderpool_job` would not handle the cancellation token.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [x] Added tests (if applicable)

---------

Co-authored-by: Daniel Xifra <[email protected]>
Co-authored-by: liamaharon <[email protected]>
## πŸ“ Summary

This PR introduces a payload generator for Reth that does not create
multiple block building blocks but only spawns a single process.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Fixed serious comments errors and typos around docs files.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

While review found the same error in function naming
get_test_mutliproofs to get_test_multiproofs in .rs files.

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
… DX (flashbots#364)

## πŸ“ Summary

While getting flashbots/builder-playground#37
working I ran into a couple DX gotchas with the current
`config-playground.toml` file.

## πŸ’‘ Motivation and Context

- The `parallel` algoirthm was pegging all my CPUs at 100%. Also figured
just running `mgp-ordering` is enough.
- Having a random coinbase made it harder to test block building since
we only build profitable blocks. IIRC we now have a setting to build
always, but I still think it's cleaner to use the prefunded accounts
from the playground.
- Having debug logs helped a ton tracking down pectra issues, so I
expect it's useful any time anyone is using the playground for
development.

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)
## πŸ“ Summary

Lots of small changes for reth1.1.5

## πŸ’‘ Motivation and Context

Critical for pectra

---

## βœ… I have completed the following steps:

* [X] Run `make lint`
* [X] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: Ryan Schneider <[email protected]>
Co-authored-by: Ferran Borreguero <[email protected]>
## πŸ“ Summary

<!--- A general summary of your changes -->

## πŸ’‘ Motivation and Context

<!--- (Optional) Why is this change required? What problem does it
solve? Remove this section if not applicable. -->

---

## βœ… I have completed the following steps:

* [ ] Run `make lint`
* [ ] Run `make test`
* [ ] Added tests (if applicable)

---------

Co-authored-by: Ferran Borreguero <[email protected]>
## πŸ“ Summary

Adds execution extension for op-rbuilder for monitoring builder
transactions in the block. This ingests the committed chain and emits
metrics to see if the builder transaction has landed a block or not with
the op-rbuilder.

## πŸ’‘ Motivation and Context

Used for observability and monitoring blocks built by the op-rbuilder on
optimism.

---

## βœ… I have completed the following steps:

* [x] Run `make lint`
* [x] Run `make test`
* [x] Added tests (if applicable)
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.