Tracoor
Tracoor captures, stores and makes available beacon states, beacon blocks, execution debug traces, execution bad blocks and invalid gossiped verified blocks.
Live Versions
Mainnet
Holesky
Sepolia
Contents
Features
- Web interface for viewing beacon states, execution block traces and invalid execution blocks
- Configurable retention period
- Prometheus metrics
Capturing
- Ethereum Beacon Node
- Ethereum Execution Node
Storing
Indexing
Usage
Tracoor has two components, a server and an agent. The server has a web interface and serves the data captured by the agent. The agent captures data from the Ethereum Beacon Node and Ethereum Execution Node.
Server
Tracoor server requires a config file. An example file can be found here.
Runs tracoor in Server mode, which means it will listen to gRPC requests from
tracoor agent nodes and forward the data on to the configured sinks.
Usage:
tracoor server [flags]
Flags:
--config string config file (default is server.yaml) (default "server.yaml")
-h, --help help for server
Agent
Tracoor agent requires a config file. An example file can be found here.
Runs tracoor in agent mode, which means it will listen for events from
an Ethereum beacon node and forward the data on to the configured sinks.
Usage:
tracoor agent [flags]
Flags:
--config string config file (default is agent.yaml) (default "agent.yaml")
-h, --help help for agent
Getting Started
Download a release
Download the latest release from the Releases page. Extract and run with:
./tracoor --help
Docker
Available as a docker image at ethpandaops/tracoor
Images
latest
- distroless, multiarch
latest-debian
- debian, multiarch
$version
- distroless, multiarch, pinned to a release (i.e. 0.1.0
)
$version-debian
- debian, multiarch, pinned to a release (i.e. 0.1.0-debian
)
Quick start
docker run -d --name tracoor -v $HOST_DIR_CHANGE_ME/config.yaml:/opt/tracoor/config.yaml -p 9090:9090 -p 5555:5555 -it ethpandaops/tracoor:latest server --config /opt/tracoor/config.yaml;
docker logs -f tracoor;
Kubernetes via Helm
helm repo add ethereum-helm-charts https://ethpandaops.github.io/ethereum-helm-charts
# server
helm install tracoor ethereum-helm-charts/tracoor-server -f your_values.yaml
# agent
helm install tracoor ethereum-helm-charts/tracoor-agent -f your_values.yaml
Building yourself
- Clone the repo
go get github.com/ethpandaops/tracoor
- Change directories
cd ./tracoor
- Build the binary
go build -o tracoor .
- Run the server
./tracoor server --config example_server_config.yaml
- Run the agent
./tracoor agent --config example_agent_config.yaml
Contributing
Contributions are greatly appreciated! Pull requests will be reviewed and merged promptly if you're interested in improving the tracoor!
- Fork the project
- Create your feature branch:
git checkout -b feat/new-feature
- Commit your changes:
git commit -m 'feat(profit): new feature
- Push to the branch:
-
git push origin feat/new-feature
- Open a pull request
Running locally
Server
go run main.go server --config example_server_config.yaml
Agent
go run main.go agent --config example_agent_config.yaml
Frontend
A frontend is provided in this project in ./web
directory which needs to be built before it can be served by the server, eg. http://localhost:5555
.
The frontend can be built with the following command;
# install node modules and build
make build-web
Building frontend requires npm
and NodeJS
to be installed.
Sam - @samcmau
Andrew - @savid