Skip to content
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

feat: stronger builder attribution #432

Closed
wants to merge 23 commits into from

Conversation

ckartik
Copy link
Contributor

@ckartik ckartik commented Oct 10, 2024

Describe your changes

This PR introduces a new feature to fetch and utilize relay data in the MEV oracle. Key changes include:

  1. Added a new CLI flag relay-urls to specify URLs for relays.
  2. Implemented a new watchRelays function in the L1Listener to periodically fetch data from specified relays.
  3. Created a RelayData struct to store and manage relay information.
  4. Modified the watchL1Block function to use the fetched builder public key.
  5. Added error handling and logging for relay data fetching.
  6. Updated the NewL1Listener function to accept relay URLs as a parameter.
  7. Made corresponding changes to tests and the node.go file to accommodate the new relay functionality.

These changes allow the oracle to fetch and utilize real-time data from multiple relays, enhancing its ability to track and verify block proposers beyond the simple grafiti approach.

This PR will go along with contract changes that both utilize the BLS key in builder attribution, and easy retrieval of provider address form BLS key.

Issue ticket number and link

Fixes # (issue)

Checklist before requesting a review

  • I have added tests that prove my fix is effective or that my feature works
  • I have made corresponding changes to the documentation

@ckartik ckartik force-pushed the ckartik/add-relay-attribution-support branch from c41b3f8 to 7950e6e Compare October 17, 2024 17:00
) external onlyOracle whenNotPaused {
address _winner = blockBuilderNameToAddress[_winnerGraffiti];
address _winner = _providerRegistry.getEoaFromBLSKey(_winnerBLSKey);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I plan to remove the concept of a builder in the blocktracker, retaining only the BLS key responsible for building the block number. However, due to an ongoing audit, I will maintain the current approach to minimize changes to the contract architecture.

@ckartik ckartik marked this pull request as ready for review October 28, 2024 14:37
EnvVars: []string{"MEV_ORACLE_RELAY_URLS"},
Value: cli.NewStringSlice(
"https://boost-relay.flashbots.net/relay/v1/data/bidtraces/proposer_payload_delivered",
"https://bloxroute.max-profit.blxrbdn.com/relay/v1/data/bidtraces/proposer_payload_delivered",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Need to have a clean way to decision if these should be holesky v.s mainnet values.

@ckartik
Copy link
Contributor Author

ckartik commented Nov 7, 2024

Duplicated by #468

@ckartik ckartik closed this Nov 7, 2024
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.

1 participant