> For the complete documentation index, see [llms.txt](https://enti.gitbook.io/el-consenso-de-ethereum/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enti.gitbook.io/el-consenso-de-ethereum/configuracion-de-nodos-y-validadores/guia-detallada-lido-csm-con-google-cloud-credits.md).

# Guía detallada: Lido CSM con Google Cloud credits

### 1. Prerrequisitos

1. Instala WireGuard, un cliente de VPN necesario para conectarse a la interfaz visual de Dappnode. Puedes instalarlo para tu sistema operativo desde aquí <https://www.wireguard.com/install/>.

### 2. Configuración de una cuenta en Google Cloud

1. Abre <https://cloud.google.com/free> y activa el free trial. Te pedirán los detalles de tu tarjeta de crédito, pero no te cobrarán nada.
2. Dirígete a la consola de Google

<figure><img src="/files/D3xmeRbtxNi9pBpnwq8t" alt=""><figcaption></figcaption></figure>

3. Crea una VM (Máquina Virtual)

<figure><img src="/files/xn8b9JucFMuEkS8U7Jea" alt=""><figcaption></figcaption></figure>

4. Selecciona la siguiente configuración en la sección **Configuración de la máquina**:
5. **Nombre:** Pon cualquier nombre, como `Workshop-de-Lido`
6. **Región:** Escoge tu región de preferencia para esta prueba. Por favor recuerda que para cualquier uso en Mainnet lo ideal es diversificar geográficamente y no escoger las ubicaciones populares como Europa o EEUU.
7. **Zona:** Cualquier zona.
8. **Configuración de la máquina:** E2
9. **Tipo de máquina:** e2-standard-8, 16GB memory

<figure><img src="/files/Loau7WQsVB25KDRhVVof" alt=""><figcaption></figcaption></figure>

5. En la sección **SO y almacenamiento** haz click en cambiar.

<figure><img src="/files/36ZjKu5QeD5MuLCguQcz" alt=""><figcaption></figcaption></figure>

6. Selecciona la siguiente configuración:

   1. **Sistema operativo:** Debian
   2. **Versión:** Debian GNU/Linux 12 (bookworm)
   3. **Tipo de disco de arranque:** Disco persistente balanceado
   4. **Tamaño:** 300 GB

   <figure><img src="/files/4nVfNxjSGbOAMTbzXFdj" alt=""><figcaption></figcaption></figure>
7. En la sección de **Redes**, marca las casillas de tráfico HTTP y HTTPs

<figure><img src="/files/II4bSdvtEjigUgggBQyD" alt=""><figcaption></figcaption></figure>

8. En la sección **Observabilidad**, desmarca ambas opciones.

<figure><img src="/files/vwB1t3iinYTXrTu74GRJ" alt=""><figcaption></figcaption></figure>

9. Cuando hayas terminado haz click en “Crear” en la parte de abajo de la pantalla. Deberías ver algo así:

<figure><img src="/files/ZjMvfWHMwytof6a2tSWE" alt=""><figcaption></figcaption></figure>

10. Ahora tenemos que abrir el puerto de WireGuard en la consola para poder acceder a ella más tarde. Para eso dirígete a <https://console.cloud.google.com/net-security/firewall-manager/firewall-policies/> y haz click en **Crear regla de firewall**.

<figure><img src="/files/zaYVjTPQzTpKB3Aas0i0" alt=""><figcaption></figcaption></figure>

11. Configura el Firewall de la siguiente forma:

    1. **Nombre:** Wireguard
    2. **Destinos:** Todas las instancias de red
    3. **Filtro de origen y rango:** IPv4 con rango 0.0.0.0/0
    4. **Protocolos y puertos:** Protocolos y puertos especificos > UDP 51820

    <div><figure><img src="/files/H2NIscNVQwYwTxG933os" alt=""><figcaption></figcaption></figure> <figure><img src="/files/y3hOCCvcuEcTvNRmbSpy" alt=""><figcaption></figcaption></figure></div>

### 3. Instalar Dappnode

1. Abre el menú desplegable de la pestaña **Conectar**. Por comodidad selecciona la opción “Abrir en otra ventana del navegador”. Haz click en **Autorizar** cuando te lo soliciten.

<figure><img src="/files/scDTmql9PMbtOdpATVSL" alt=""><figcaption></figcaption></figure>

2. Ahora que estamos en la interfaz de linea de comando vamos a instalar Dappnode mediante scripts. Puedes leer más en la documentación oficial de Dappnode <https://docs.dappnode.io/>.
3. Copia y pega los siguientes comandos:
   1. Actualiza todos los paquetes del sistema

      ```jsx
      sudo apt update -y && sudo apt upgrade -y
      ```
   2. Instala servicios que son pre-requisitos.

      ```jsx
      sudo wget -O - https://prerequisites.dappnode.io | sudo bash
      ```
   3. Instala Dappnode.

      ```jsx
      sudo wget -O - https://installer.dappnode.io | sudo bash
      ```
   4. Reinicia la maquina.

      ```jsx
      sudo shutdown -r now
      ```
4. Al reiniciar la máquina se perderá la conexión. Vuelve a abrir la terminal en otra pestaña como en el paso 1. Deberías ver algo como esto:

<figure><img src="/files/senGcWouBHGr9JNoqKnH" alt=""><figcaption></figcaption></figure>

### 4. Acceder a Dappnode

1. Usa el comando `dappnode_connect` para ver todas las formas de acceder a la interfaz de Dappnode. En este caso estaremos usando el los credenciales de **WireGuard**.

<figure><img src="/files/jZYsZtkY2yjNdriMde8t" alt=""><figcaption></figcaption></figure>

Por ejemplo:

```
[Interface]
PrivateKey = uIz2EnOQYdrBJH3qiYL5I8OSXfp+NqXGNPKrNzX02lg=
ListenPort = 51820
Address = 10.24.0.2/32
DNS = 172.33.1.2, 10.20.0.2

[Peer]
PublicKey = DXDtdMps60FXkRpCp75wsYe8tGrqDCQlHZ39Ea4ZiTI=
PresharedKey = VIEwmWlIcLI48owu4nKBta7D25/P2qDBjjEO0dVd4+Y=
AllowedIPs = 172.33.0.0/16, 10.20.0.0/24
Endpoint = 8db634b28e82639f.dyndns.dappnode.io:51820

```

2. Abre WireGuard y en la esquina inferior izquierda haz click en “Añadir Tunnel vacío”.

<figure><img src="/files/BRw3IcEJpoiKTJRNjdF5" alt=""><figcaption></figcaption></figure>

1. Vuelve a la terminal y copia los credenciales, un ejemplo es:

   ```jsx
   [Interface]
   Address = 10.24.0.2
   PrivateKey = AIBMuyREhY4K94w2azghxG9NJWHhOmBfvBI+B4pEwVs=
   ListenPort = 51820
   DNS = 172.33.1.2,10.20.0.2

   [Peer]
   PublicKey = 6+ICyimhPEu22egPCaAhU5ClDwbgxp2oSBrfImLS7wI=
   PresharedKey = 9JadZ1DLo4EDhSCdLJgZDnmDgVvfEpnn5BZdy77ipvU=
   Endpoint = 6a30df7055d895c4.dyndns.dappnode.io:51820
   AllowedIPs = 172.33.0.0/16,10.20.0.0/24
   ```
2. Pega los credenciales y ponle un nombre cualquiera al tunnel. Haz click en **Save** para guardar el tunnel.

<figure><img src="/files/8GORqLcyokHmVt5h5seP" alt=""><figcaption></figcaption></figure>

3. Una vez guardado, activa el tunnel en el botón mostrado en la captura de abajo.

<figure><img src="/files/5sUr46yyNkUaCahbb1IX" alt=""><figcaption></figcaption></figure>

1. Por último, accede a <http://my.dappnode/>. Configura tu nombre de usuario y contraseña, y guarda el token de seguridad. Después de esto sigue las instrucciones de la interfaz de Dappnode y configura:
   1. Repository Source: Remote (Esto para testnet, si configuras mainnet puedes usar tus clientes como fuente del repositorio, lo que sería lo recomendable para tu setup final).
   2. System Auto Updates: Off (Las actualizaciones automaticas pueden causarte problemas de performance si alguna actualización va mal. Mejor hacerlas manual en un momento donde puedas prestarle atención a tu nodo).
   3. Enable System Notifications: Para este workshop lo dejaremos vacío, aquí puedes configurar un bot de telegram y correo que te avise sobre el estatus de tu máquina.

### 5. Configurar tu nodo en Dappnode

1. Visita la pestaña de Stakers<http://my.dappnode/stakers/>. Selecciona la red (Hoodi en este caso), clientes de ejecución y consenso, activa Web3signer y relays MEV-Boost de la [lista de relays validados por Lido para Hoodi](https://enchanted-direction-844.notion.site/6d369eb33f664487800b0dedfe32171e?v=1bdbf633d0c980ddb2c3000ce3c37311).\
   \
   Desplázate hacia abajo, haz clic en Aplicar cambios y espera a que los clientes se instalen.

<figure><img src="/files/HgqdTD0FlkaDQXSeugPL" alt=""><figcaption></figcaption></figure>

2. En el Dashboard verás el estado de tus clientes. Cuando veas ambos en verde estarán sincronizados y será seguro moverse al siguiente paso:

<figure><img src="/files/8OwPCR6leB6ampVybtY2" alt=""><figcaption></figcaption></figure>

### 6. Generar llaves para Lido CSM (testnet)

1. Entra a <https://wagyu.gg/> e instala la herramienta.
2. Genera una frase secreta de recuperación y selecciona la red. Anota la frase y confírmala.
3. Elige el número de validadores que quieres generar. Cifra los keystores con una contraseña segura.
4. **IMPORTANTE:** Define la dirección de retiro (withdrawal address) como la bóveda de retiros de Lido:
   1. **Hoodi:** `0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2`
5. Confirma la contraseña.
6. Selecciona la carpeta destino para almacenar los keystores y los datos del depósito. Recibirás:
   1. `keystore-m_<timestamp>.json`: el keystore para ponerlo en tu nodo
   2. `deposit_data-<timestamp>.json`: los datos del depósito

### 7. Importar las llaves a tu nodo y al protocolo de Lido

#### 7.1. Importar las llaves a Dappnode

1. Dirígete al paquete **web3signer** en tu Dappnode.
2. Haz click en el botón **Import**, después arrastra los keystores que generaste en la sección anterior, pon la contraseña y selecciona ***Lido*** como staking protocol, esto configurará el fee recipient automáticamente a la dirección de Lido.

<figure><img src="/files/sPHUYrGt48QqXXvXjtgo" alt=""><figcaption></figcaption></figure>

#### 7.2. Importar las llaves a Lido CSM

1. Ingresa a la página de CSM de Lido en Hoodi (<https://csm.testnet.fi/>) y conecta tu wallet.
2. Haz click en Create a Node Operator.
3. Dentro del widget, sube tu archivo `deposit data`, revisa que tengas suficiente testnet ETH y deposítalo en el protocolo.

<figure><img src="/files/M8bLFNIOLSnU7nMRGU1D" alt=""><figcaption></figcaption></figure>
