Documentation for Operator Pool in the EigenLayer-AVS system.
The Operator Pool is a core component of the EigenLayer-AVS Aggregator service that manages and tracks connected operators. It maintains a registry of all active operators in the system, their connection status, and relevant metadata. The Operator Pool enables the Aggregator to monitor operator health, distribute tasks, and maintain an up-to-date view of the operator network.
For information about the Aggregator that houses this component, see Aggregator. For details about the operators themselves, see Operator.
The Operator Pool is primarily responsible for tracking operator nodes and maintaining their status information in the storage layer. It consists of two main components:
OperatorPool struct, which provides methods for operator status managementOperatorNode struct, which represents individual operator informationSources:
The Operator Pool integrates with other components of the EigenLayer-AVS system as follows:
Sources:
The OperatorNode struct stores comprehensive information about each operator:
| Field | Type | Description |
|---|---|---|
Address | string | Ethereum address of the operator |
RemoteIP | string | IP address of the operator node |
LastPingEpoch | int64 | Unix timestamp of the last ping |
Version | string | Version of the operator software |
MetricsPort | int32 | Port for accessing operator metrics |
BlockNumer | int64 | Latest block number processed by the operator |
EventCount | int64 | Count of events processed by the operator |
Sources:
Operators periodically ping the Aggregator with their current status. The check-in process is handled by the Checkin method of the OperatorPool:
Checkin message via gRPCSources:
The GetAll method retrieves all operator information from the database:
OperatorNode structsThe method is used by both the HTTP server's /operator and /telemetry endpoints to provide operator information.
Sources:
The Aggregator includes authentication mechanisms for operators, though it's not enforced in the current version:
The authentication is verified through the verifyOperator method, which checks the validity of signatures submitted by operators.
Sources:
The Operator Pool data is accessible through two HTTP endpoints:
/operator - Returns a JSON representation of all operators/telemetry - Provides a user-friendly HTML dashboard showing operator statusThe HTML dashboard displays each operator with:
Sources:
The Operator Pool uses BadgerDB for persistent storage, with a specific prefix for operator keys:
Each operator is stored as a JSON-serialized OperatorNode struct, with a key of the form operator:<id>.
Sources:
The LastSeen method of OperatorNode formats the time since the last ping in a human-readable format (e.g., "5m30s ago", "2h15m ago", "3d4h ago").
Sources:
The OperatorNode struct includes helper methods for generating external links:
EtherscanURL() - Returns a link to the operator's address on EtherscanEigenlayerURL() - Returns a link to the operator's profile on EigenLayerSources:
The Operator Pool is initialized when the Aggregator starts:
OperatorPool in NewAggregator()initDB(), the db reference is passed to the operatorPoolSources:
The Operator Pool is a critical component of the EigenLayer-AVS system, providing real-time tracking and management of operator nodes. It enables the Aggregator to maintain an up-to-date view of the operator network, monitor operator health, and provide visibility into the system's operational status.
Feature this wiki to auto refresh weekly