This page provides guidance for developers working on or deploying the EigenLayer-AVS system.
This page provides guidance for developers working on or deploying the EigenLayer-AVS system. It covers the development environment setup, build process, deployment options, and CI/CD pipeline. For specific configuration details, see Configuration. For testing information, see Testing.
Before working with the EigenLayer-AVS codebase, ensure you have the following prerequisites installed:
Sources:
The EigenLayer-AVS repository is organized to separate core functionality, contracts, and deployment configurations:
Sources:
To build the software locally:
The build command includes version information via ldflags, which is used by the version command.
Sources:
The system uses semantic versioning, which is incorporated into the binary during the build process. The version can be displayed using:
Version information is set during the build process using ldflags and stored in the version package.
Sources:
The recommended method for deploying EigenLayer-AVS is using Docker containers, which ensures consistency across different environments.
The project includes Dockerfile configurations in the dockerfiles directory. The main operator Dockerfile is used in the CI/CD pipeline to create releases.
Sources:
The release process builds binaries for multiple architectures to support deployment on various platforms:
| Architecture | Operating System | Binary Name Format |
|---|---|---|
| amd64 | Linux | ap-avs-linux-amd64 |
| arm64 | Linux | ap-avs-linux-arm64 |
| amd64 | macOS (Darwin) | ap-avs-darwin-amd64 |
| arm64 | macOS (Darwin) | ap-avs-darwin-arm64 |
Docker images are also built for multiple platforms (linux/amd64, linux/arm64) to support deployment on various server architectures.
Sources:
The system uses YAML configuration files for setting up various components. Configuration is loaded from a specified path and parsed into Go structures.
For detailed information about configuration options, refer to the Configuration page.
Sources:
The EigenLayer-AVS project uses GitHub Actions to automate testing, building, and deployment. The workflow is triggered on specific events, such as pushes to the repository and tag creation.
Sources:
The release process is automated via GitHub Actions and is triggered when a tag matching the pattern v* is pushed to the repository. The workflow:
To create a new release:
v1.0.0)Sources:
For development and testing purposes, a separate workflow creates development builds on each push to the repository:
gofmtavs-dev repositoryThis allows for continuous testing of changes before creating an official release.
Sources:
For production deployments, consider the following best practices:
Data Persistence: Configure the backup system to regularly back up data
Security:
Monitoring: Enable metrics collection for monitoring system health
Resource Requirements:
Sources:
Common issues and their solutions:
| Issue | Possible Solution |
|---|---|
| Configuration not loading | Verify file path and format (YAML) |
| Connection to Ethereum nodes failing | Check network connectivity and RPC URL configuration |
| Database errors | Ensure the database directory is writable and has sufficient space |
| Build failures | Verify Go version (1.24) and dependencies |
For any persistent issues, please refer to the GitHub repository issues section or contact the development team.
Sources:
Feature this wiki to auto refresh weekly