The Ava Protocol AVS can be compiled directly using Go version 1.22+. Ensure you have the appropriate version of Go installed on your development environment.
Check Go version:
go version
Compile Ava Protocol AVS:
go build -o ap-avs
Then you can run ap-avs
binary. We make an effort to use pure Go so you can also cross compile for any supported architecture that the Go compiler support.
Check how to run an operator docs
To run the aggregator, use the following command:
ap-avs aggregator
Note: The Ava Protocol team currently manages the aggregator, and the communication IP address between the operator and the aggregator is hardcoded in the operator.
For each owner we deploy a ERC6900 wallet to schedule task and approve spending to user wallet.
Each task type has its equivalent modular code to re-present its condition and their actual execution.
Aggregator accepts RPC request from client to submit Task Payload. Currently, aggregator is managed and run by Ava Protocol team.
Periodically, aggregator combine the task submission, update our internal storage and a zkSNARK proof will be write back to our TaskManager contract.
Aggregator also accept task condition check result from operator, perform quorum and consensus check, then write the result back and flag that a task is good to run.
The aggregator is currently run and managed by the Ava Protocol team. Depend on testnet or mainnet, you would need to point your operator to the right address in the operator config file.
- aggregator-holesky.avaprotocol.org:2206
- https://api-explorer-holesky.avaprotocol.org/
- aggregator.avaprotocol.org:2206
- https://api-explorer.avaprotocol.org/
Operators communicates with aggregators through RPC. It requests task data from aggregator, it performs condition execution to check whether a task can be trigger. The result is then sent back to aggregator.
For task is ok to run, the operator will executed them. The detail of how task is triggering through our ERC6900 modular wallet will come soon.
Currently, Ava Protocol has deployed our operator on the testnet. Community members can run their own operator and register for Ava Protocol AVS service, or they can delegate their tokens to the Ava Protocol operator.
- Ava Protocol's operator: 0x997e5d40a32c44a3d93e59fc55c4fd20b7d2d49d.
- Ava Protocol's operator: 0xc6B87cc9e85b07365b6aBEfff061F237F7cf7Dc3
Operator that is connected to Ava Protocol aggregator can also check their operator on our telemetry dashboard as below
https://aggregator-holesky.avaprotocol.org/telemetry
https://aggregator.avaprotocol.org/telemetry
View docs/development.md
Install the EigenLayer CLI with the following command:
curl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s
Install Go with the following command:
brew install go
Install the Foundry toolchain with the following commands:
curl -L https://foundry.paradigm.xyz | bash
foundryup
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
-
Install the
protoc-gen-doc
plugin forprotoc
. Install via Go:go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest
Ensure the plugin is in your PATH:
export PATH="$PATH:$(go env GOPATH)/bin"
Verify the plugin is installed:
which protoc-gen-doc
-
Generate API references in HTML format
protoc --doc_out=./docs --doc_opt=html,docs.html ./protobuf/avs.proto
-
Alternatively, generate API references in Markdown format
protoc --doc_out=./docs --doc_opt=markdown,docs.md ./protobuf/avs.proto
This command will generate a markdown version of the gRPC API documentation. To enhance the clarity of the generated documentation, the following improvements should be made to the .proto file:
- Group Definitions by Command: Organize the API methods and their descriptions by command categories to make it easier for users to find relevant information.
- Elaborate on Input Fields: Provide detailed descriptions for each input field, including data types, expected values, and any constraints or special considerations.
- Add Examples: Include usage examples for each API method to demonstrate how to construct requests and interpret responses.
- Link to Related Resources: Where applicable, link to additional resources or documentation that provide further context or implementation details.
Coming soon
Name | Address |
---|---|
ProxyAdmin | 0x26CF7A7DF7d1E00D83A5Ca24385f697a3ca4577d |
ServiceManager | 0xEA3E82F9Ae371A6a372A6DCffB1a9bD17e0608eF |
RegistryCoordinator | 0x90c6d6f2A78d5Ce22AB8631Ddb142C03AC87De7a |
BLSApkRegistry | 0x6752F8BeeE5BF45c9d11FDBC4F8aFfF879925585 |
IndexRegistry | 0x298a5d3C8F8Db30E8292C9e2BF92292de469C8FF |
OperatorStateRetriever | 0xb7bb920538e038DFFEfcB55caBf713652ED2031F |
PauserRegistry | 0x3A8ea6e4202CdDe4a9e0cCE19c4Dc1739ba2cF0b |
StakeRegistry | 0x7BacD5dd5A7C3acf8bf1a3c88fB0D00B68EE626A |
ApConfig | 0xb8abbb082ecaae8d1cd68378cf3b060f6f0e07eb |
Name | Address |
---|---|
ProxyAdmin | 0x5989934D31f7f397511f105B7E4175a06B7A517F |
ServiceManager | 0x18343Aa10e3D2F3A861e5649627324aEAD987Adf |
RegistryCoordinator | 0x8DE3Ee0dE880161Aa0CD8Bf9F8F6a7AfEeB9A44B |
BLSApkRegistry | 0xB58687fF303C8e92C28a484342755d3228081d45 |
IndexRegistry | 0xc6A464e39d4fA5013D61295501c7cCd050d76612 |
OperatorStateRetriever | 0xb3af70D5f72C04D1f490ff49e5aB189fA7122713 |
PauserRegistry | 0xeec585186c37c517030ba371deac5c17e728c135 |
StakeRegistry | 0x363b3604fE8c2323a98c00906115c8b87a512a12 |
TaskManager | 0x940f62f75cbbbd723d37c9171dc681dfba653b49 |
ApConfig | 0x9c02dfc92eea988902a98919bf4f035e4aaefced |