eoracle Operator Setup
This guide will walk you through the process of registering as an operator to eoracle AVS and running the eoracle software.
Prerequisites
Registered Eigenlayer Operator Account: Ensure you have a fully registered Eigenlayer operator account. If you don't have one, follow the steps in the Eigenlayer User Guide to create and fund your account.
Software/Hardware Requirement
Operating System: linux amd x64
vCPUs: 2
Memory: 4GiB
Storage: 100GB
EC2 Equivalent: m5.large
Expected Network Utilization:
Total download bandwidth usage: 1 Mbps
Upload bandwidth usage: 1 Mbps
Open Ports:
3000 Grafana dashboards
9090 Prometheus
Operator Setup
Prepare Local eoracle data validator files
Clone this repo and execute the following commands
Copy Eoracle-operator-setup/data-validator/.example_env
into Eoracle-operator-setup/data-validator/.env
.
Edit the Eoracle-operator-setup/data-validator/.env
and update the values for your setup
[!NOTE] If you plan to operate eoracle on Holesky, then copy .example_env_holeksy
instead of .example_env
Generate a BLS pair (recommended)
The register process requires two sets of private keys: an ecdsa private key and a bls private key, We recommend creating a new BLS pair for security reasons. If you want to create a new BLS pair, you can generate a new BLS pair that will be dedicated to eoracle
Encrypt your private keys (recommended)
Encrypt your private keys. The encrypted private keys will be stored using the EO_KEYSTORE_PATH
field. This is the recommended approach. if you encrypt a pasted private key it will never be saved as is anywhere.
Work with plain text private keys (discouraged)
If you don't want to encrypt your private keys, update them in the data-validator/.env
file
This approach is highly discouraged. We recommend encrypting the private keys and never saving them anywhere on any machine.
Register with eoracle AVS
Operators need to have a minimum of 32 ETH delegated to them to opt-in to eoracle. Execute the following command
The output should look like
Troubleshooting the register command.
salt already spent - if you get the following error:
Please add EO_SALT=<salt_in_hex> field to your .env file and retry runnning register.
(*) the EO_SALT should be in the following format EO_SALT=0x04 (even length hex number, and could be any number but must be even length)
Generating an alias ECDSA address
Operators must declare another ECDSA address to use within the eoracle client. This isolates the Ethereum Eigenlayer operator private key from eoracle operations, protecting access to Ethereum assets. You can import a private key or generate a new private key. To import , add --ecdsa-private-key <value>
to the following command.
Declare the alias in eoracle chain
After generating the ECDSA alias address to use in eoracle chain, declare it using your Ethereum Eigenlayer identity, verifying the link between the two.
The output should look like
Checking the status of Eoracle operator AVS
The following command will print the status of the operator
The output should look like
Deregister from Eoracle AVS
The following command will unregister and opt you out of the Eoracle AVS
The output should look like
Running eoracle AVS data validator
eoracle operator Activation: Ensure your account has been activated. In order to check your current status you can run the following (1 is activated, 0 is not). Stay tuned for activation windows on social media , for technical issues please contact the eoracle team here on the operators-technical-help channel
Note: Access to our client source code is currently restricted, however, interested parties may contact support@eoracle.io to review the client for security reasons.
Run using docker
Run the docker
The command will start the data validator container. If you execute docker ps
you should see an output indicating the eoracle-data-validator
container has the " Up " status with ports assigned. You may view the container logs using
The following example log messages confirm that your eoracle data validator software is up and running
Stop eoracle data validator
To bring the containers down, run the following command
Upgrade eoracle data validator
Upgrade the AVS software for your eoracle data validator by following the steps below:
Pull the latest repo
Merge .env changes Go over .example_env and merge new fields that do not appear in your local .env file
Pull the latest docker images
Stop the existing services
Start your services again If any specific instructions need to be followed for any upgrade, those instructions will be given with the specific release notes. Please check the latest release notes on Github and follow the instructions before starting the services again.
Monitoring, Metrics, Grafana dashboards
Quickstart
We provide a quick start guide to run the Prometheus, Grafana, and Node exporter stack. Check out the README here for more details. If you want to manually set this up, follow the steps below.
Metrics
To check if the metrics are being emitted, run the following command: Replace the EO_PROMETHEUS_PORT
with the value of EO_PROMETHEUS_PORT
from the data-validator/.env
You should see something like
Setup the monitoring stack
We use prometheus to scrape the metrics from the eoracle data validator container. Make sure to edit the prometheus.yml file, located at Eoracle-operator-setup/data-validator/monitoring, replacing the placeholder 'PROMETHEUS_PORT' with the actual value specified in the data validator .env file (PROMETHEUS_PORT)
The relevant lines are:
Start the monitoring stack
You can start all the monitoring stack, Prometheus, Grafana, and Node exporter all at once or only specific component
Connect docker networks
Since the eoracle data validator is running in a different docker network, we will need to have the Prometheus container in the same network of oracle-data-validator. To do that, run the following command. To do that, run the following command
Troubleshooting
If you see the following error:
Use the same command by prepending
sudo
in front of it.
Grafana
We use Grafana to visualize the metrics from the eoracle AVS.
You can use OSS Grafana for it or any other Dashboard provider.
You should be able to navigate to http://<ip>:3000
and log in with admin
/admin
. This container of Grafana has a Prometheus datasource setup using port 9090. If you change the Prometheus port, you need to add a new data source or update the existing data source. You can do this by navigating to http://<ip>:3000/datasources
Useful Dashboards
We also provide a set of useful Grafana dashboards which would be useful for monitoring the eoracle data validator service. You can find them here. Once you have Grafana set up, feel free to import the dashboards.
Node exporter
eoracle data validator emits eoracle specific metrics but, it's also important to keep track of the node's health. For this, we will use Node Exporter which is a Prometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go with pluggable metric collectors. By default, it is installed and started when you start the entire monitoring stack. If you want to modify the stack, you can install the binary or use docker to run.
In Grafana dashboards screen, import the node-exporter to see host metrics.