This RFC is a part of another one: https://hackmd.io/RdQ2afmrSJ-X4ru7hLe24w
# Problem
It turned out that one builder can submit eventually winning payload to multiple relays.
Thus relays send their signed bids to mev-boost, where only one signed bids will be selected to be included to a chain.
# Solution
`Mev-m` recognizes and stores the highest bids from multiple relays and builders. `Mev-m` should store all data from Relays regarding blocks.
Consider ongoing steps to solve the problem.
- Implement changes from [Indexing relays separately - HackMD](https://hackmd.io/@rOVWtirgSgu6p7oJgzGwVg/HyDr35L-a)
- Create a new table `relays`, and retrieve data from `relay-m` endpoint `/v1/relays`:
- id
- relay_pubkey
- builder_pubkey
- Create a new table for multiple relays in `mev-m` database `relay_payload_source` which contains the following fields:
- relay_id
- slot_number
- signed_value
- proposer_fee_recipient
- deprecate fields `builder_key`, `relay_pubkey` in `slot_storage` table and use new ones from `relay_payload_source` table
- Create a new service that will pull data regarding block, and will have below features:
- pull data from `Relay-M` via `/v1/stats/:statId/:slotNumber` endpoint
- store data into `payload_source` table
- Create a new section in Grafana "MEV-Monitoring DB" dashboard that reflects the following metrics:
- number of values for slot from various relays (X: slot_number, Y: number of values)
- difference between actual slot's value and the rest values from each known relay