# Montando un validador CSM en Dappnode

By [SEED Latam](https://paragraph.com/@seedlatam) · 2024-10-17

---

**Contenido**
-------------

*   Pre-requisitos
    
*   Parte 1: Interacción con Ethereum Staking Deposit CLI
    
*   Parte 2: Interacción con Dappnode
    
    *   Pre-requisitos: MEV Boost Holesky
        
    *   Cargamos el keystore
        
*   Parte 3: Registro del node operator
    
    *   Pre-requisito: wallet con mas de 2 ETH
        
*   Recursos
    

**Pre-requisitos**
------------------

Tener instalado **_Dappnode_** con los clientes sincronizados y **_web3signer,_** en sus versiones para la red de testnet **_Holesky._**

Si es la primera vez que escuchas de **_Dappnode_** te recomiendo leer:

[https://mirror.xyz/seedlatam.eth/VpuKM5vy2uWpK-H-MVGcbZaCIlRVoC3iTsASDDXIhTY](https://mirror.xyz/seedlatam.eth/VpuKM5vy2uWpK-H-MVGcbZaCIlRVoC3iTsASDDXIhTY)

Y tambien ver la instalación via script de **_Dappnode_**:

[https://docs.dappnode.io/docs/user/install/script/](https://docs.dappnode.io/docs/user/install/script/)

Además vamos a necesitar tener una wallet fondeada con más 2 ETH en Holesky que podemos obtener mediante un faucet, por ejemplo:

[https://holesky-faucet.pk910.de/](https://holesky-faucet.pk910.de/)

**Parte 1: Interacción con Ethereum Staking Deposit CLI**
---------------------------------------------------------

Como se ha visto en [tutoriales anteriores](https://mirror.xyz/seedlatam.eth/NE-iXSkA4_PCZpBWW_r4EhmTxXjilCytX3IxQEKi4KQ), se debe utilizar el **Ethereum Staking Deposit CLI**. Esta herramienta de línea de comandos que proporciona la **Ethereum Foundation** nos ayuda a generar las claves y los datos de depósito necesarios para convertirnos en validadores.

### **Principales Características del Ethereum Staking Deposit CLI:**

1.  **Generación de Claves**: La herramienta genera las **claves de validador** y las **claves de retiro** necesarias para el staking. La clave del validador se usa para firmar las validaciones y bloques, mientras que la clave de retiro se utiliza para retirar el ETH en el futuro.
    
2.  **Generación de Datos de Depósito**: Crea el archivo de **datos de depósito** que es necesario para depositar ETH en el contrato de staking de Ethereum.
    
3.  **Seguridad**: Te permite generar las claves de forma segura, manteniéndolas fuera de línea durante el proceso de generación. Esto reduce el riesgo de posibles ataques o fugas de claves que podrían comprometer la seguridad de tu validador. **_\*_**
    

**_\*_** Es importante tener en cuenta que, en este tutorial, el procedimiento se realiza _ONLINE_ para la generación de claves. Aunque es posible realizarlo _OFFLINE_, como se menciona, ese no es el enfoque de esta guía.

Si te interesa la creación de claves OFFLINE te recomendamos ver [este video](https://youtu.be/ou_42QD_F4E?si=qsHOH-VigkkiTEZ0)

Para poder encontrar esta herramienta primero debemos dirigirnos hacia el **_GitHub_** oficial de Ethereum: [https://github.com/ethereum](https://github.com/ethereum) luego, ir a **_repositories_** ([https://github.com/orgs/ethereum/repositories](https://github.com/orgs/ethereum/repositories)) y buscar “**_staking-deposit-cli_**”, esta es una forma segura de poder acceder al repositorio de la herramienta.

![https://github.com/orgs/ethereum/repositories](https://storage.googleapis.com/papyrus_images/5986cb84d3595438fd8112884ee1bacbfa68ec3b52b88a63cfca108db0c68ba3.png)

https://github.com/orgs/ethereum/repositories

Una vez dentro del repositorio, debes dirigirte a **_Releases_**

![](https://storage.googleapis.com/papyrus_images/10abda60bba44ca1ee186f74502054088c3090ebbdb4c05ab639a27e39f25a20.png)

Se descarga el archivo correspondiente al sistema operativo que estemos utilizando, en nuestro caso al estar usando **_Ubuntu_** debemos descargar “**_staking\_deposit-cli-\[version\]-amd64.tar.gz_**”

![](https://storage.googleapis.com/papyrus_images/f3143a4cc7e206ece64995af8a6a031b1152f0866f01695d87bed67e33666f64.png)

Una vez descargado, descomprimí el archivo utilizando el comando:

    tar -xzf [nombre_archivo].tar.gz
    

![](https://storage.googleapis.com/papyrus_images/5630eefe10220d51be5356dc30417606c11e11ec13eb9318f077d5b80df3ce37.png)

Para poder empezar a interactuar con el CLI hay que utilizar los comandos que nos brinda [la documentación](https://github.com/ethereum/staking-deposit-cli?tab=readme-ov-file#tutorial-for-users)

![](https://storage.googleapis.com/papyrus_images/ef5fd6d85e6e100bae8d96d56bbb11afc052509e8a9334b0c198a1deef057b69.png)

Utilizamos el comando `new-mnemonic` reemplazando la dirección de retiro por la que nos indica **_Lido_**:

![](https://storage.googleapis.com/papyrus_images/fbda3341f1f01cc260e7f36ed7fac4fad0a6e117d165ee6df72a6a925d39c6ef.png)

Creamos las _keys_ con el comando `./deposit new_mnemonic --execution_address WITHDRAWAL_ADDRESS_HOLESKY_LIDO` :

![](https://storage.googleapis.com/papyrus_images/75003b9c8fd807b9ca10cb92fd17a9ef7a2f0fd5b3328eb84a182e605812fb9f.png)

Seleccionamos el idioma. En este caso, la opción de inglés con el _3:_

![](https://storage.googleapis.com/papyrus_images/038a9672a985a37d33ed12b9661aceecd4a5c39f0ed1692511e8546acb04aec0.png)

Reingresamos la dirección para confirmar:

![](https://storage.googleapis.com/papyrus_images/c97852e64e518a4d86f5994dd994ca59fba59219ab002093317f16d10c9d1a5f.png)

Seleccionamos el idioma para las palabras mnemonicas, _4_ para la opción de inglés:

![](https://storage.googleapis.com/papyrus_images/1e495d063c7f7b2d6d77fcdef5044f565aa961301a3c46bb45531f68d7e87e30.png)

Seleccionamos cuantos validadores vamos a querer correr. En nuestro caso, _1_ :

![](https://storage.googleapis.com/papyrus_images/acc37fab1c77980d1f1e23be64ff2016ad50296542c45343bdb7e2ee58a31cab.png)

Se selecciona la red que se va a utilizar: _mainnet_ o _testnet_.

En este caso, testnet —> H_olesky_:

![](https://storage.googleapis.com/papyrus_images/73c6b0c95964d574936e438f1a3b1712037d5863b9bbf41a0ac2a1c487106fca.png)

Se ingresa una contraseña para nuestro _keystore (vamos a volver a usarla luego asi que es mejor anotarla en un lugar seguro)_:

![](https://storage.googleapis.com/papyrus_images/c1bde7f93a38a6d788e249cbfff39a82cd85469878cdda4335f43c0fcbaf66c5.png)

Repite la contraseña:

![](https://storage.googleapis.com/papyrus_images/7f1257e2002ec94311688690aed58a216c86b5fe29a89deca8dbdc48587f5ed1.png)

Guardamos las palabras:

![](https://storage.googleapis.com/papyrus_images/1eecf96c21433603bbbe3a7da3e2bd22c29c8d49f7233505467dccee03e56cca.png)

Escribe las palabras separadas por espacio para confirmar:

![](https://storage.googleapis.com/papyrus_images/59c32e076a3fea0bb9fc3c1844f153c81a38c2266ed6a7843158ed93bfb4fed8.png)

¡Listo! Ya creaste el keystore y tenemos el path en donde se encuentran.

![](https://storage.googleapis.com/papyrus_images/7654ce9241815002f77c151c69d0108833b31ce713569c61bb9b06768f2ebfb0.png)

Desde ahí, nos dirigimos a la carpeta indicada para ver los archivos:

![](https://storage.googleapis.com/papyrus_images/ce4fc7bd365fa4f4befe2abd95b9bec7e1d88dc5b18f0b32f5f0fdaaeba98eb5.png)

![](https://storage.googleapis.com/papyrus_images/470c2f6621a4b18983cd2aece2afb2072d005ac38f3102a3ac60afb6a664df74.png)

**Parte 2: Interacción con Dappnode**
-------------------------------------

### **Pre-requisitos: MEV Boost Holesky**

Para evitar encontrarse con la siguiente advertencia a la hora de cargar las claves, debemos instalar **_MEV Boost Holesky_**, ya que vamos a estar montando un **CSM**

![](https://storage.googleapis.com/papyrus_images/d3dc35ad6352bb51ea2405717183b7e225b9ef3b20d97e84071711252f169710.png)

1- Vamos a la pestaña de: _Stakers_ > _Holesky_

![](https://storage.googleapis.com/papyrus_images/49a50e610ed16d550c0a663fbef530a9eca5f3f4ec28eea3f5a7e6117a39970a.png)

2- Seleccionamos : “_Mev Boost Holesky_”

![](https://storage.googleapis.com/papyrus_images/fe009898d97451efee700cf8d80cc3b9543f69a6dbc92c355fc076e84fc474a7.png)

3- Esperamos a que se descargue

![](https://storage.googleapis.com/papyrus_images/facad34f3d3b20af5bd897adb66d7ef06a6d7ab1b44f22538b23197a1dc5dd32.png)

![](https://storage.googleapis.com/papyrus_images/e96723e7dbf54aff40d7b8538dcfc0767bb8968a4b626f46d52447edb684e365.png)

¡Espectacular! Ahora ya tenemos instalado Mev boost!

### **Cargar el keystore**

En **_web3signer_** hacemos click en “_Upload Keystores_”

![](https://storage.googleapis.com/papyrus_images/2587d3c2b0ae5976d8faf96fd308f8e78e7c979037523c144c468fc36126ac47.png)

Le damos click en “_IMPORT_”:

![](https://storage.googleapis.com/papyrus_images/810f2d47ecd5fa11afc72bb15fbd3b1a9e5b5aa98c5aa99a9d1b599ccf8fa3f8.png)

**Importante**: debes subir el **_keystore_** y NO EL DEPOSIT\_DATA

![](https://storage.googleapis.com/papyrus_images/391cf16c398fd137bd8547ce4e0ab2ecb228d91250fea9ba89ad6c76e7d6d110.png)

Si queremos podemos importar **_slashing protection data_** :

![](https://storage.googleapis.com/papyrus_images/6db7509bb64e8000c25fa1e5088b00bbd4b7706e6b2dca16ec75071dbae47411.png)

Arrastramos el keystore hacia el apartado gris de la pagina:

![](https://storage.googleapis.com/papyrus_images/c9768807eaeca713f66024f936251c7528c88a9097f99788ae006108ac43a191.png)

Ingresamos la contraseña que utilizste al momento de crear el keystore usando el **Ethereum Staking Deposit CLI:**

![](https://storage.googleapis.com/papyrus_images/b212c94849d7ec387ae22652d2ba783eb7161cb6c141c0db44f33140d07db32e.png)

Seleccionamos **Lido**:

![](https://storage.googleapis.com/papyrus_images/4f2067f626fc6f63ca038abe3c6eda4cb932f29e471247a78b61028912373705.png)

Observamos que el _fee recipient_ se setea automaticamente

![](https://storage.googleapis.com/papyrus_images/ead73a827a2ede18115c72a14700a7a163f915bdf2fad4a27a27ceb9d83e0f21.png)

¡Perfecto! Keys importadas. Es importante seguir el orden de instalación de **_Mev Boost_** y luego estos pasos para no tener problemas al abrir el link para realizar la carga de las keys

![](https://storage.googleapis.com/papyrus_images/491c66cdb6e235389801de3071f049a05481029873c0a1e3dad4a3eafb2c3776.png)

Puedes ver cómo se encuentra cargada la key

![](https://storage.googleapis.com/papyrus_images/96094aa070d899349b7b032d76d041f43043c4ebf2af8544799bdaf4a2f49a68.png)

**Parte 3: Registro del node operator**
---------------------------------------

### **Prerequisito: wallet con > 2 ETH**

> 2 ETH para el montado del CSM y realizar una transacción.

Nos dirigimos hacia la [web de testnet de **Lido**](https://csm.testnet.fi/)

![](https://storage.googleapis.com/papyrus_images/8aff6e999111f8eded583ae6221b6e0ac7cb32a2de9bca75b5a4ccfbfb88cb84.png)

Conectamos nuestra wallet, en este caso **_Metamask_**:

![](https://storage.googleapis.com/papyrus_images/49b60d19f0949947ee426dcc41f6b38e07239d7215a3ac19a98a19c3da0c5ec3.png)

Hacemos click en el botón _Create Node Operator_:

![](https://storage.googleapis.com/papyrus_images/ed3edddbbe8f0527c9a52fcff53675370e6cf59a42fa469b265f9cc6d92760b1.png)

Pegamos el archivo JSON del _deposit data:_

![](https://storage.googleapis.com/papyrus_images/da5f53503ded4382bfdcb7c107787758262556f007690d16eadc4355d5d6e613.png)

Se abre la ventana de **_Metamask_** para realizar el deposito de los 2 ETH, le damos click a _Confirmar_ :

![](https://storage.googleapis.com/papyrus_images/33e45b143c792fcde282535581817d50723f464ad1882e6613bab1b38b378e58.png)

Luego de esperar, podes ir a la parte de _view keys,_ copiar el link de la key y buscarlo en la [web de beaconcha.in](https://holesky.beaconcha.in/) o hacer click directo en el boton azul:

> ¿Qué significa que el Status sea Depositable? Esperando a que su depósito sea finalizado y validado en la Beacon Chain para poder ser activado y comenzar a participar en el proceso de validación y creación de bloques

![](https://storage.googleapis.com/papyrus_images/b154dccc0ab45f4a8a1b4f45acc83c8af521301b551681a878c960f14fafba94.png)

[https://holesky.beaconcha.in/validator/0x9740a146f59fcc640916ea6ba508515ac09ba0de2e4855dbc0d8fa5fd911f04c52476f2502d7248fa3bb93c6fbb6e04f](https://holesky.beaconcha.in/validator/0x9740a146f59fcc640916ea6ba508515ac09ba0de2e4855dbc0d8fa5fd911f04c52476f2502d7248fa3bb93c6fbb6e04f)

![](https://storage.googleapis.com/papyrus_images/6f69b045e89d0dd34e4e860ac8cea98ad18ff930f87734e12800e6fcc4478a9c.png)

Despues de unas horas el estado del validador va a pasar de:

**_deposited → pending → active_**

**Esto puede tardar 1 dia aproximadamente, asi que debemos tener paciencia.**

¡Felicidades! Si seguiste todos los pasos de esta guía, ahora deberías tener tu validador CSM funcionando en Dappnode.

Pasaste por la configuración del **Ethereum Staking Deposit CLI** para generar tus claves de validador y depósito, y has interactuado con **Dappnode** para cargar tus claves y completar la configuración de tu nodo validador en la red Holesky.

Este proceso no solo fortalece la red de Ethereum y mejora la descentralización, sino que también te permite participar en el staking de manera activa.

**Mantené tu Dappnode actualizado y revisa periódicamente el estado de tu validador para garantizar un rendimiento óptimo.**

Si deseas seguir aprendiendo más o profundizar en aspectos como la creación de claves offline o la optimización de validadores, asegúrate de consultar los recursos adicionales que hemos mencionado y seguir experimentando con nuevas configuraciones.

Cualquier duda que tengas y quieras consultar o conversar con alguien, estas invitado a unirte a nuestro [Club de Nodos en telegram](https://t.me/SEED_Nodes) o escaneá el QR:

![](https://storage.googleapis.com/papyrus_images/f9f250e9ee9bcc965186eaabe879d8401d6e9b13dc15c83ffacca38cafe1e9cf.png)

¡Buena suerte con tu nodo validador y bienvenido al ecosistema de validadores de Ethereum!

**Recursos**
------------

Guía oficial:

[**Lido CSM | ETH Home Staking Collection**](https://dvt-homestaker.stakesaurus.com/bonded-validators-setup/lido-csm#key-settings-to-note)

[https://dvt-homestaker.stakesaurus.com/bonded-validators-setup/lido-csm#key-settings-to-note](https://dvt-homestaker.stakesaurus.com/bonded-validators-setup/lido-csm#key-settings-to-note)

Claves seguras para nodos validadores en Ethereum:

[![]({{DOMAIN}}/editor/youtube/play.png)](https://www.youtube.com/watch?v=ou_42QD_F4E)

Github de Ethereum:

[https://github.com/ethereum](https://github.com/ethereum)

---

*Originally published on [SEED Latam](https://paragraph.com/@seedlatam/montando-un-validador-csm-en-dappnode)*
