AVS Operator Guide
Operator Guide
This guide contains the steps needed to set up and register your node for GoPlus AVS (testnet/mainnet).
Minimal system requirements
4 CPU
8GB Memory
20GB Hard disk (Amazon EBS st1)
Ubuntu 22.04 LTS
Docker v24 and above
Minimal stake requirements
GoAltLayer MACH AVS Mainnet - 1 ETH
GoAltLayer MACH AVS Testnet - 1 wei
Supported token strategy
Beacon Chain Ether and all ETH-based LSTs supported by EigenLayer are supported by our AVS.
π‘ Currently, only quorum[0]
is available. Other quorums will be opened in the future.
Currently active AVS
Operator setup
Key generation and wallet funding
Follow EigenLayer guide and Install EigenLayer CLI
Generate ECDSA and BLS keypair using the following command
Please ensure you backup your private keys to a safe location. By default, the encrypted keys will be stored in
~/.eigenlayer/operator_keys/
. Fund at least 0.3 ETH to the ECDSA address generated. It will be required for node registration in the later steps.
Register on EigenLayer as an operator
You may skip the following steps if you are already a registered operator on the EigenLayer testnet.
You will need to do it once for testnet and once for mainnet.
Create the configuration files needed for operator registration using the following commands. Follow the step-by-step prompt. Once completed,
operator.yaml
andmetadata.json
will be created.Edit
metadata.json
and fill in your operator's details.Upload
metadata.json
to a public URL. Then update theoperator.yaml
file with the url (metadata_url
). If you need hosting service to host the metadata, you can consider uploading the metadata gist and get theraw
url.If this is your first time registering this operator, run the following command to register and update your operator
Upon successful registration, you should see
If you need to edit the metadata in the future, simply update metadata.json and run the following command
After your operator has been registered, it will be reflected on the EigenLayer operator page. Testnet: https://holesky.eigenlayer.xyz/operator Mainnet: https://app.eigenlayer.xyz/operator
You can also check the operator registration status using the following command.
Joining GoPlus AVS
GoPlus AVS Setup
Clone the GoPlus AVS repository
Run the following command to clone the GoPlus AVS operator repository
Inside this repository, we have configurations for various GoPlus AVS. Different .env
configurations determine whether AVS runs on Mainnet or Testnet.
Prepare Configuration File
Run
make copy-config
; this command will create an.env
configuration file in the project's root directory.Fill in the configuration settings in
.env
:COMPOSE_FILE_PATH
: Path where AVS stores Docker Compose files; replace with an empty and permission-appropriate folder path.OPERATOR_ADDRESS
: Hex string of operator's address.BLS_KEY_STORE_PATH
: Path to BLS keystore generated byeigenlayer operator keys create --key-type bls
.NODE_CLASS
: AVS node class, defaults to "xl" and does not need modification.API_PORT
: Port for communication with Gateway; any available port is acceptable.OPERATOR_URL
: URL path for Gateway access, for example,http://{DOMAIN}
. If not using DNS, set it tohttp://{Host IP}:{API_PORT}
, for example,http://8.8.8.8:7890
.QUORUM_NUMS
: 0ETH_RPC
: RPC address. The program uses the RPC address to distinguish between the testnet and mainnet. You can use RPC addresses from providers like Alchemy.REGISTRY_COORDINATOR_ADDR, OPERATOR_STATE_RETRIEVER
: Copy the deployment addresses for the corresponding network from the README.md.
It is recommended to use a domain name in
OPERATOR_URL
. Later, GoPlus Gateway service will assign tasks to AVS throughhttp(s)://{DOMAIN}:{API_PORT}
. Additionally, theOPERATOR_URL
andAPI_PORT
will be recorded in AVS on-chain contracts.
Example .env
for Mainnet:
Example .env
for Testnet:
To opt-in
Before you opt-in to GoPlus AVS, please ensure that you have the right infrastructure to keep the operator up and running. Non-performing AVS operators may be subjected to ejection out of GoPlus AVS.
The ECDSA private key is used only once in
reg-with-avs
anddereg-with-avs
steps, so for security reasons, we recommend removing the ECDSA keystore file after completing these operations.
Run
export BLS_KEY_PASSWORD=...
to export the password to BLS keystore file.Run
make build-avs
to compile AVS.Run
make reg-with-avs
to register. During execution, the user will be prompted to enter the path to the ECDSA keystore file and corresponding password.Wait at least 3 minutes before proceeding with subsequent operations, as the GoPlus Gateway service needs time to synchronize the operator's information.
It may take a few minutes for EigenLayer AVS and operator page to be updated This is an automatic process.
To opt-out
If you no longer want to run the AVS, you can opt out by running make dereg-with-avs
.
Start GoPlus AVS
GoPlus AVS runtime can be deployed in two ways: as a standalone process or via Docker Compose (recommended). When using Docker Compose, all services operate in Host network mode. Please ensure the following ports are available on your host machine:
API_PORT (configurable)
9090 (metrics)
3000 (monitoring)
Mainnet configuration
Start with Docker Compose:
Run
export BLS_KEY_PASSWORD=...
to export the password to BLS keystore file.Run
make build-avs-docker-mainnet
to build the AVS Docker image.Run
make run-avs-docker
to start. This also starts Prometheus and Grafana.
Start as a standalone process:
Run
export BLS_KEY_PASSWORD=...
to export the password to BLS keystore file.Run
sudo docker login -u goplusavs -p dckr_pat_wRhsTj4U7REe7IFnrgFkAOswjaM
to log in.Run
make run-avs
to start.
Testnet configuration
Start with Docker Compose:
Run
export BLS_KEY_PASSWORD=...
to export the password to BLS keystore file.Run
make build-avs-docker-testnet
to build the AVS Docker image.Run
make run-avs-docker
to start. This also starts Prometheus and Grafana.
Start as a standalone process:
Run
export BLS_KEY_PASSWORD=...
to export the password to BLS keystore file.Run
sudo docker login -u joker1034 -p dckr_pat_MH5qjNWvS3iahu8--rK4wW7NbEM
to log in.Run
make run-avs
to start.
Check AVS Running Status
Connectivity Check
Send a request to
{OPERATOR_URL}/avs/ping
to check the connectivity of the AVS web service.
Secware Running Status
AVS will periodically request Secware configuration from the Gateway and run Secware in Docker. It also regularly reports Secware's health status to the Gateway.
Run
sudo docker compose ls
to view Secware's running status.
If AVS is running in a Docker Compose environment, you can access Grafana at http://{OPERATOR_URL}:3000
to view monitoring data. The default username and password are goplus_avs/admin
.
FAQ
When attempting to deploy GoPlus AVS to my Kubernetes environment, why do I receive the error
secware config length: 4
?
Currently, our AVS relies on Docker Compose for container orchestration and is not natively compatible with Kubernetes environments. While adapting it would require significant architectural changes, we're considering adding Kubernetes support based on operator feedback.
Join us
Telegram: https://t.me/goplusoperators
Last updated