Skip to content
This repository has been archived by the owner on Mar 20, 2024. It is now read-only.

update docs #65

Merged
merged 1 commit into from
Oct 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions docs/docs/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ sidebar_position: 0

# Introduction

The [EigenLayer](https://www.eigenlayer.xyz/) ecosystem allows Ethereum validators to restake their ETH and provide services to the network, such as a Data Availability Layer with a particular type of node software called [Actively Validated Services (AVS)](/docs/glossary#avs-actively-validated-service).
In the [EigenLayer](https://www.eigenlayer.xyz/) ecosystem, Ethereum validators can restake their beacon chain ETH, accept delegations in the form of native ETH or LSTs, and run node software specific to [Actively Validated Services (AVS)](/docs/glossary#avs-actively-validated-service). A Data Availability Layer such as EigenDA serves as a prime example of an AVS.

With the increasing number of AVS use cases, there is a need for a convention on how to develop, maintain, create interoperability, and monitor them. Eigenlayer has partnered with Nethermind to create an [AVS Node](/docs/glossary#avs-node) Specification with those goals in mind. This documentation describes the AVS Node Specification.
With the increasing number of AVS use cases, there is a need for a convention on how to develop, maintain, create interoperability, and monitor them. This documentation describes the AVS Node Specification.

The documentation is divided into the following sections:

- [AVS Node Specification](/docs/category/avs-node-specification): A full description of the specification that covers from AVS packaging to Standard Metrics.
- [Keys Management](/docs/category/keys-management): Good practices for keys management.
- [Key Management](/docs/category/keys-management): Good practices for keys management.

## Definitions

### MUST

When the term "**MUST**" is used in this documentation, it denotes an absolute requirement. Failing to follow a "**MUST**" directive may result in the AVS or the AVS setup wizard not functioning as intended or could lead to undesirable outcomes. It is imperative that operators and AVS developers adhere to any instruction or guideline marked with "**MUST**" to ensure the correct and optimal operation of the AVS or the AVS setup wizard.
When the term "**MUST**" is used in this documentation, it denotes an absolute requirement. Failing to follow a "**MUST**" directive may result in the AVS not functioning as intended or could lead to undesirable outcomes. It is imperative that operators and AVS developers adhere to any instruction or guideline marked with "**MUST**" to ensure the correct and optimal operation of the AVS.

Example Usage:

Expand All @@ -26,7 +26,7 @@ Example Usage:

### SHOULD

The term "**SHOULD**" in this documentation indicates a strong recommendation. While not an absolute requirement like "**MUST**", following a "**SHOULD**" directive is highly advised to achieve the best possible experience or outcome. Ignoring a "**SHOULD**" guideline might not break the AVS or the AVS setup wizard, but it could lead to suboptimal results or missed opportunities for enhanced functionality.
The term "**SHOULD**" in this documentation indicates a strong recommendation. While not an absolute requirement like "**MUST**", following a "**SHOULD**" directive is highly advised to achieve the best possible experience or outcome. Ignoring a "**SHOULD**" guideline might not break the AVS, but it could lead to suboptimal results or missed opportunities for enhanced functionality.

Example Usage:

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/spec/api/api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ The base URL for the API is:

## API Versioning

This document describes the AVS Node API version `v0.0.1`. The API version follows the same Eigenlayer AVS Node specification version.
This document describes the AVS Node API version `v0.0.1`. The API version follows the same EigenLayer AVS Node specification version.

The API version can be included in the query string as follows:

Expand Down
2 changes: 0 additions & 2 deletions docs/docs/spec/metrics/metrics-examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ Some metrics and endpoints are very straightforward, but having a reference for
## Prometheus Metrics

### Economics metrics
* `eigen_fees_earned_total{token="rETH", unit="wei", strategy="0x1BeE69b7dFFfA4E2d53C2a2Df135C388AD25dCD2"}`
* `eigen_slashing_status{avs="eigenDA"}`
* `eigen_registered_stakes{quorum_number=1, quorum_name="beaconChainEth"}`

### Perfomance metrics
Expand Down
10 changes: 5 additions & 5 deletions docs/docs/spec/metrics/metrics-prom.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ The table below defines metrics which may be captured by AVS Nodes which expose

| Name | Metric Type | Definition | Labels |
|---|---|---|---|
| `eigen_fees_earned_total` | Counter | The amount of fees earned in `<unit>` of underlying `<token>` in the `<strategy>` contract. This metric **SHOULD** be omitted while fees are yet to be implemented. | `token`, `unit`, `strategy` |
| `eigen_slashing_status` | Gauge | Slashing status. The value **MUST** be 1 if the operator running `avs` has been slashed. This metric **SHOULD** not be implemented if there is no slashing in the target network (like in the upcoming testnet launch). | `avs` |
| `eigen_registered_stakes` | Gauge | Operator stakes in AVS registry contract. Most commonly represents a weighted combination of delegated shares in the `DelegationManager` Eigenlayer contract. | `quorum_number`, `quorum_name` |
| `eigen_registered_stakes` | Gauge | Operator stakes in AVS registry contract. Most commonly represents a weighted combination of delegated shares in the `DelegationManager` EigenLayer contract. | `quorum_number`, `quorum_name` |
<!-- This is commented for M2 testnet. It will be uncommented for mainnet -->
<!-- | `eigen_fees_earned_total` | Counter | The amount of fees earned in `<unit>` of underlying `<token>` in the `<strategy>` contract. This metric **SHOULD** be omitted while fees are yet to be implemented. | `token`, `unit`, `strategy` |
| `eigen_slashing_status` | Gauge | Slashing status. The value **MUST** be 1 if the operator running `avs` has been slashed. This metric **SHOULD** not be implemented if there is no slashing in the target network (like in the upcoming testnet launch). | `avs` | -->


:::note

Expand Down Expand Up @@ -42,8 +44,6 @@ The `quorum_name` label of the `eigen_registered_stakes` metric is optional and

## Notation examples

* `eigen_fees_earned_total{token="rETH", unit="gwei", strategy="0x1BeE69b7dFFfA4E2d53C2a2Df135C388AD25dCD2"}`
* `eigen_slashing_status{avs="eigenDA}`
* `eigen_registered_stakes{quorum_number=0, quorum_name="ethLST"}`
* `eigen_performance_score{}`
* `eigen_rpc_request_duration_seconds{method="eth_getBlockByNumber", client_version="nethermind/v1.17.2"}`
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/spec/plugin/_category_.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"position": 4,
"link": {
"type": "generated-index",
"description": "Plugins are a way to extend the functionality of the AVS setup wizard tool and are specialized in their own AVS Node."
"description": "Plugins are a way to extend the functionality of AVS Node."
}
}
2 changes: 1 addition & 1 deletion docs/src/components/NotCLIDisclaimer/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ import React from 'react';

export default function NotCLIDisclaimer() {
return (
<p>Commands are for demonstration purposes only as the AVS setup wizard tool doesn't exists yet.</p>
<p>Commands are for demonstration purposes only.</p>
)
}