mirror of
https://github.com/libevm/relayscan.git
synced 2025-12-17 08:55:25 +00:00
Ethereum MEV-Boost Relay Monitoring
|
|
||
|---|---|---|
| .github | ||
| cmd | ||
| common | ||
| database | ||
| scripts | ||
| services | ||
| static | ||
| vars | ||
| .env.example | ||
| .gitignore | ||
| .golangci.yaml | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| README.md | ||
| staticcheck.conf | ||
relayscan
Monitoring, analytics & data for Ethereum MEV-Boost builders and relays
Running on https://relayscan.io
Additional URLs:
- Builder profit:
- Current stats in markdown:
- Daily stats:
Notes
- Work in progress
- At it's core, a set of tools to fill and show a postgres database
- Multiple relays can serve a payload for the same slot (if the winning builder sent the best bid to multiple relays, and the proposer asks for a payload from all of them)
- Comments and feature requests: @relayscan_io
- License: AGPL
- Maintainer: @metachris
Overview
- Uses PostgreSQL as data store
- Configuration:
- Relays in
/vars/relays.go - Builder aliases in
/vars/builder_aliases.go - Version and common env vars in
/vars/vars.go
- Relays in
- Some environment variables are required, see
.env.example - Saving and checking payloads is split into phases/commands:
data-api-backfill-- queries the data API of all relays and puts that data into the databasecheck-payload-value-- checks all new database entries for payment validityupdate-builder-stats-- create daily builder stats and save to database
Getting started
Run
You can either build relayscan from the repository, or use the Docker image:
# Build & run
make build
./relayscan help
./relayscan version
# Run with Docker
docker run flashbots/relayscan
docker run flashbots/relayscan /app/relayscan version
---
# Grab delivered payloads from relays data API, and fill up database
./relayscan core data-api-backfill # for all slots since the merge
./relayscan core data-api-backfill --min-slot 6658658 # since a given slot (good for dev/testing)
# Double-check new entries for valid payments (and other)
./relayscan core check-payload-value
# Update daily builder inclusion stats
./relayscan core update-builder-stats --start 2023-06-04 --end 2023-06-06 # update daily stats for 2023-06-04 and 2023-06-05
./relayscan core update-builder-stats --start 2023-06-04 # update daily stats for 2023-06-04 until today
./relayscan core update-builder-stats --backfill # update daily stats since last entry, until today
# Start the website (--dev reloads the template on every page load, for easier iteration)
./relayscan service website --dev
# Start service to query every relay for bids
./relayscan service website --dev collect-live-bids
You might want to run Postgres locally for testing:
docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgres postgres
Test & dev
# Install dependencies
go install mvdan.cc/gofumpt@latest
go install honnef.co/go/tools/cmd/staticcheck@v0.4.3
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.2
# Lint, test and build
make lint
make test
make test-race
make build