Skip to content

Commit

Permalink
Update lido csm docs
Browse files Browse the repository at this point in the history
  • Loading branch information
pablomendezroyo committed Dec 4, 2024
1 parent ab70a2f commit 4ef3867
Show file tree
Hide file tree
Showing 8 changed files with 138 additions and 30 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Already a node operator

## Notifications

- Navigate to `/notifications` in the Lido CSM UI.
- Provide your Bot token and User ID.
- You should receive a confirmation message from the bot.
100 changes: 100 additions & 0 deletions docs/user/staking/ethereum/lsd-pools/lido/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Lido Community Staking Module (CSM)

---

## **Lido CSM Overview**

Lido is a **liquid staking** solution for Ethereum that addresses the liquidity issues of traditional staking. Instead of locking up assets and losing access to them, users can stake through Lido and receive liquid tokens. These tokens retain the value of the staked assets and can be used elsewhere while still earning staking rewards.

Lido, with over [9 million ETH](https://lido.fi/ethereum) staked on its platform, is a significant contributor in the Ethereum ecosystem. To broaden and diversify its network of node operators, Lido recently introduced the [**Community Staking Module** (CSM)](https://csm.lido.fi/?ref=dappnode), the first Lido module with a **permissionless entry** for Ethereum staking. By first providing an ETH-based bond, anyone can now become a node operator by running validators in the Lido protocol. Designed with solo and community stakers in mind, the CSM lowers the barrier to becoming an Ethereum validator, requiring far less than the standard 32 ETH, and offers a user-friendly experience. While tailored for smaller stakers, it is open to all, including professional operators.

:::info
Becoming a Lido Node Operator is recommended for users with some experience in running validators. The process requires a basic understanding of the Ethereum network and the Lido protocol. If you are new to staking, we recommend setting up a validator on the Testnet first to familiarize yourself with the process, see [Staking on the Ethereum Testnet](/docs/user/staking/ethereum/solo/holesky.md).
:::

## **Lido CSM in dappnode**

Dappnode provides an easy-to-use and intuitive interface for most of the infrastructure needed to become a Lido Node Operator. The process is straightforward and requires only a few steps to set up a node operator and start earning rewards. Dappnode takes care of the Lido protocol requirements, such as exiting validator when needed, and provides a user-friendly interface to manage the node operator.

The main functionalities covered by Dappnode are:

- **Notifications**: you can easily setup notifications for your NO to be informed about any event.
- **Ejector**: whenever any of your validator requires to be exited, it will be done automatically sending you the corresponding notification.
- **Track multiple NOs**: you can track multiple NOs from the same DAppNodePackage-lido-csm.
- **Performance**: your validators attestations performance will be tracked and you will be notified if they are not performing as expected according to the Lido tresholds.
- **MEV boost relays**: you will receive notifications whenever your validators are using relays blocklisted in the Lido CSM or not using any relay at all.
- **Import keystores directly from the Lido CSM**: you can import your keystores directly from the Lido CSM to your DAppNodePackage-lido-csm and they will be automatically tagged as Lido.
- **Infraestructure monitoring**: you will be able to visualize the status of your infraestructure (EC - CC - Signer - MEV Boost).

### **Notifications**

You will be able to setup your notifications either during the onboarding process if you are registering as a new Node Operator and from the UI navigating to `/notifications`. You must provide:

- Bot token: this is the secret token from a bot that you must create. You can get it from the Telegram BotFather. See the [obtain your bot token](https://core.telegram.org/bots/tutorial#obtain-your-bot-token) section.
- User ID: this is your Telegram user ID. You can get it from the [userinfobot](https://t.me/userinfobot) typing `/start`.

Once your notifications are setup, you will receive notificatios for the following events:

- Lido Smart Contract events:
- [Lido VEVO events](https://docs.lido.fi/staking-modules/csm/guides/events/#contract-vebo): the most important event to remark is the validator exit request event, that will trigger the Ejector to exit the validator.
- [Lido CSM events](https://docs.lido.fi/staking-modules/csm/guides/events/#contract-csm): check the Lido documentation for more details.
- [Lido CSFeeDistributor](https://docs.lido.fi/staking-modules/csm/guides/events/#contract-csfeedistributor): check the Lido documentation for more details.
- Validator exit:
- Successful exit: you will receive a notification when the validator has been successfully exited.
- Failed exit: you will receive a notification when the validator exit has failed, letting you know that a manual exit is required.
- Relays (comming soon):
- Blocklisted relay: you will receive a notification when your validator is using a blocklisted relay.
- No relay: you will receive a notification when your validator is not using any relay.
- Performance (comming soon):
- Attestations performance: you will receive a notification when your validator is not performing as expected according to the Lido tresholds.

### **Ejector**

The Ejector is a service that will automatically exit your validator when needed. You will receive a notification when the validator has been successfully exited and when the exit has failed, letting you know that a manual exit is required. The ejector has the following characteristics:

- **Automatic exit**: the Ejector will automatically exit your validator when needed.
- **Notifications**: you will receive a notification when the validator has been successfully exited and when the exit has failed, letting you know that a manual exit is required.
- **Retry mechanism**: the Ejector will retry the exit process if it fails, ensuring that the validator is exited successfully.

![lido-notification-ejector](/img/lido-notification-ejector.png)

### **Track multiple NOs**

The DAppNodePackage-lido-csm allows you to track multiple Node Operators from the same package. This feature is useful if you are managing multiple Node Operators and want to keep track of their performance and status in one place. To make the package to track a new Node Operator, you must sign in with the new Node Operator's wallet and import the keystores.

:::warning
Make sure to import the correct keystores for each Node Operator. Importing the wrong keystores can result in penalties.
:::

### **Import keystores directly from the Lido CSM**

You can import your keystores directly from the DAppNodePackage-lido-csm UI during the onboarding process or from the `/keystores` section (comming soon). The keystores will be automatically tagged as Lido, and you will be able to use them to run validators in the Lido protocol. These keystores will be located in the web3signer package, for further editing or deleting them you must go to the web3signer UI.

Whenever there are 1 or more keystores that belongs to your NO and are not imported you will be able to see the following message in the DAppNodePackage-lido-csm UI:

![lido-keystores-not-imported](/img/lido-keystores-not-imported.png)

### **Infraestructure monitoring**

You will be able to visualize the status of your infraestructure (EC - CC - Signer - MEV Boost) from the DAppNodePackage-lido-csm UI. This feature is useful to monitor the status of your infraestructure and ensure that everything is running smoothly.

![lido-infra](/img/lido-infra.png)

### **Performance**

🚀 Cooming soon

### **MEV boost relays**

🚀 Cooming soon

## Testnet

The Lido Community Staking Module is available on the Ethereum Mainnet. If you are new to staking, we recommend setting up a validator on the Testnet first to familiarize yourself with the process. The process is the same, the dappnode package for Lido CSM in testnet is **lido-csm-holesky.dnp.dappnode.eth**.

---

Refer to the Lido Community Staking Module documentation for more details:

- [Lido Community Staking Overview](https://blog.lido.fi/lido-community-staking-an-overview/)
- [Lido Community Staking Module](https://operatorportal.lido.fi/modules/community-staking-module)
Original file line number Diff line number Diff line change
@@ -1,28 +1,12 @@
# Lido Community Staking Module (CSM)

---

### **Lido CSM Overview**

Lido is a **liquid staking** solution for Ethereum that addresses the liquidity issues of traditional staking. Instead of locking up assets and losing access to them, users can stake through Lido and receive liquid tokens. These tokens retain the value of the staked assets and can be used elsewhere while still earning staking rewards.

Lido, with over [9 million ETH](https://lido.fi/ethereum) staked on its platform, is a significant contributor in the Ethereum ecosystem. To broaden and diversify its network of node operators, Lido recently introduced the [**Community Staking Module** (CSM)](https://csm.lido.fi/?ref=dappnode), the first Lido module with a **permissionless entry** for Ethereum staking. By first providing an ETH-based bond, anyone can now become a node operator by running validators in the Lido protocol. Designed with solo and community stakers in mind, the CSM lowers the barrier to becoming an Ethereum validator, requiring far less than the standard 32 ETH, and offers a user-friendly experience. While tailored for smaller stakers, it is open to all, including professional operators.

:::info
Becoming a Lido Node Operator is recommended for users with some experience in running validators. The process requires a basic understanding of the Ethereum network and the Lido protocol. If you are new to staking, we recommend setting up a validator on the Testnet first to familiarize yourself with the process, see [Staking on the Ethereum Testnet](/docs/user/staking/ethereum/solo/holesky.md).
:::

---

### **Become a Lido Node Operator with Dappnode**
# **Become a Lido Node Operator with Dappnode**

**Dappnode** provides an easy-to-use and intuitive interface for most of the infrastructure needed to become a Lido Node Operator. The process is straightforward and requires only a few steps to set up a node operator and start earning rewards. An overview of the process is how the Lido CSM UI will greet you when first connecting your wallet to the dApp:

![Lido-CSM1](/img/lido-csm-ss-docs1.png)

---

### **First Steps to create a Node Operator in Dappnode**
## **First Steps to create a Node Operator in Dappnode**

1. **Getting your Dappnode ready**:

Expand All @@ -35,15 +19,15 @@ Becoming a Lido Node Operator is recommended for users with some experience in r
It is mandatory to choose at least one relay to ensure the node operator does not propose vanilla blocks. When uploading the keystores with the "Lido" tag, this requirement will be automatically checked. As a Lido Node Operator, it is your responsibility to ensure that your infrastructure is properly using MEV Boost.
:::

2 **Create the Keystores & Deposit Data**: In order to run a validator, you need to generate the necessary keystores and deposit data. The keystores **must** be created with the withdrawal credential of Lido:
2. **Create the Keystores & Deposit Data**: In order to run a validator, you need to generate the necessary keystores and deposit data. The keystores **must** be created with the withdrawal credential of Lido:

- Holesky: `0xF0179dEC45a37423EAD4FaD5fCb136197872EAd9`.
- Ethereum: `0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f`.
- We recommend using official tools like [Staking-Deposit-CLI](https://github.com/ethereum/staking-deposit-cli) or the [Wagyu Key Gen Tool](https://wagyu.gg/) to create the keystores. This step is crucial and mandatory.

The validator Keystores will be used to run the validators on the Ethereum network, while the deposit data will be used to register the validators in the Lido protocol.

![Lido-CSM2](/img/lido-csm-ss-docs2.png)
![Lido-CSM2](/img/lido-csm-ss-docs2.png)

:::warning
Make sure you correcly set the withdrawal address up, otherwise the Lido CSM won't let you move forward with the validator deposits.
Expand All @@ -55,26 +39,27 @@ Becoming a Lido Node Operator is recommended for users with some experience in r
- Upload the keystores and tag them with "Lido".
- The fee recipient will be automatically set to `0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8` for Holesky and `0x388C818CA8B9251b393131C08a736A67ccB19297` for Mainnet. It is not editable.

![Lido-CSM3](/img/lido-csm-ss-docs3.png)
![Lido-CSM3](/img/lido-csm-ss-docs3.png)

:::caution
Double-check that your Lido keystores are tagged correctly. This is crucial to ensure that the node operator is properly set up, and has the correct fee recipient set.
:::

:::danger
Do not edit the fee recipient address. Doing so will result in penalties.
:::

4. **Register as a Lido Node Operator & your validators**:

- Navigate to the [Lido Deposit UI](https://csm.lido.fi/?ref=dappnode) and complete the deposit process by submitting the `deposit_data.json` file you generated with your keystore(s).
![Lido-CSM4](/img/lido-csm-ss-docs4.png)
![Lido-CSM4](/img/lido-csm-ss-docs4.png)
- You'll be prompted to sign an ETH bond depending on the number of validators you're submitting to the CSM.
- Once the deposit has been confirmed, the CSM and then the Beacon Chain will process your deposit. Keep in mind you'll have to wait 16-24 hours plus the Becaon Chain's entry queue for your validators to activate. Your node operator setup is now complete!

---
5. **Setup notifications**

Refer to the Lido Community Staking Module documentation for more details:
- Get your bot token and user ID from the [Telegram BotFather](https://core.telegram.org/bots/tutorial#obtain-your-bot-token) and [userinfobot](https://t.me/userinfobot) respectively.
- Introduce your bot token and user ID and confirm
- You should receive a confirmation message from the bot.

- [Lido Community Staking Overview](https://blog.lido.fi/lido-community-staking-an-overview/)
- [Lido Community Staking Module](https://operatorportal.lido.fi/modules/community-staking-module)
![lido-notifications-onboarding](/img/lido-notifications-onboarding.png)
22 changes: 19 additions & 3 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,9 +152,25 @@ const sidebars = {
label: "LSD Pools",
items: [
{
type: "doc",
label: "Lido",
id: "user/staking/ethereum/lsd-pools/lido",
type: "category",
label: "Lido CSM",
items: [
{
type: "doc",
label: "Overview",
id: "user/staking/ethereum/lsd-pools/lido/overview",
},
{
type: "doc",
label: "Register as a Node Operator",
id: "user/staking/ethereum/lsd-pools/lido/register",
},
{
type: "doc",
label: "I am already a Node Operator",
id: "user/staking/ethereum/lsd-pools/lido/already-node-operator",
},
],
},
{
type: "doc",
Expand Down
Binary file added static/img/lido-infra.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/lido-keystore-not-imported.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/lido-notification-ejector.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/lido-notifications-onboarding.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4ef3867

Please sign in to comment.