Configuración habitual de nodos autogestionados

En esta página se incluyen las prácticas recomendadas para ejecutar nodos RPC en varias redes de blockchain.

En concreto, en este tutorial se explica cómo hacer lo siguiente:

  • Crear una VPC para tu nodo.
  • Se está creando una VM para tu nodo.
  • Configurar un nuevo perfil para tu gestor de nodos.
  • Montar un disco externo en la VM para los datos de la cadena.

En esta guía se da por hecho que ya tienes un proyecto de Google Cloud con la facturación habilitada. Para obtener instrucciones sobre cómo hacerlo, consulta el artículo Crea y gestiona proyectos.

Crear una VPC

Para obtener instrucciones detalladas sobre cómo crear una VPC, consulta el artículo Crear y gestionar redes de VPC.

  1. Crea una VPC para tu nodo siguiendo estas recomendaciones:

    • Crear una VPC personalizada
    • Modo de enrutamiento regional
    • MTU 1460
    • Habilita la regla de cortafuegos BLOCKCHAIN_VPC_NETWORK-allow-ssh predeterminada de tu red. Para obtener más información, consulta Usar reglas de cortafuegos de VPC.

    Sustituye BLOCKCHAIN_VPC_NETWORK por el nombre de la VPC que contendrá los recursos de tu nodo (por ejemplo, ethereum-vpc).

  2. Añade una subred IPv4 a tu red. Asegúrate de que la región elegida para tu subred sea la misma en la que quieres desplegar tu nodo.

Para saber cómo crear reglas de cortafuegos para VMs en una VPC, consulta Crear reglas de cortafuegos de VPC.

Poner en marcha una VM con un SSD externo

Para obtener instrucciones detalladas sobre cómo crear una VM y adjuntar un disco externo, consulta la documentación de Compute Engine.

Puedes consultar las instrucciones específicas de la configuración de la máquina virtual que se ajusta a los requisitos específicos de la red de cadena de bloques en la sección Hardware Requirements and Recommended Machine Type de la página del nodo específico de la cadena de bloques. Consulta la documentación específica de la cadena de bloques para ver los requisitos de CPU y memoria, la configuración de VM recomendada para tu nodo y los comandos de creación de tu nodo.

Conéctate a la VM mediante SSH y crea un usuario

Conectarse a la VM mediante SSH

  1. Cuando se aprovisione la VM, conéctate a ella mediante SSH. Para ello, ve a la página de Compute Engine o ejecuta el siguiente comando en Cloud Shell:

    gcloud compute ssh NODE_NAME
    

    Sustituye NODE_NAME por el nombre de tu nodo. Utiliza letras en minúscula, números y guiones. Por ejemplo: my-node.

  2. Si te conectas desde tu propio ordenador, instala Google Cloud CLI tal como se describe en Instalar gcloud CLI.

  3. Cuando se haya completado la instalación de Google Cloud CLI, inicia sesión en tu proyecto y conéctate a la VM:

    gcloud init
    gcloud compute ssh USER@NODE_NAME
    

    Sustituye USER por tu Google Cloud nombre de inicio de sesión de usuario.

Crear un usuario nuevo

Una vez que te hayas conectado a la VM mediante SSH, crea un usuario sudo que no sea SSH para que sea el propietario y administrador de todos los recursos del nodo. Como este usuario no tiene claves SSH en los metadatos de la VM, solo se puede acceder a él conectándose primero a la máquina a través de uno de los usuarios autenticados. Google Cloud

  1. Crea un nuevo usuario sudo ejecutando el siguiente comando:

    sudo useradd -m NODE_ADMIN
    

    Sustituye NODE_ADMIN por el ID de usuario del nuevo usuario. Por ejemplo, node-admin.

  2. Añade el usuario al grupo sudo:

    sudo usermod -aG sudo NODE_ADMIN
    
  3. Cambia a este usuario para terminar de montar el disco externo:

    sudo su - NODE_ADMIN
    

Monta los discos externos

El disco externo que has creado en el paso 2 contendrá todos los datos de la cadena de tu nodo. Esta es una práctica recomendada, ya que te permite transferir los datos entre nodos una vez que se haya apagado la máquina virtual, así como configurar fácilmente programaciones de instantáneas para los datos de tu cadena.

  1. Monta el disco. Para ello, primero enumera todos los discos disponibles en la VM:

    sudo lsblk
    

    Lo más probable es que el disco externo se encuentre en /dev/sdb. Puedes identificar el disco externo por el tamaño del disco que crees en el paso 2.

  2. Formatea el disco:

    sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
    
  3. Crea un directorio para el disco y móntalo:

    sudo mkdir -p /mnt/disks/CHAIN_DATA_NAME
    sudo mount -o discard,defaults /dev/sdb /mnt/disks/CHAIN_DATA_NAME
    

    Haz los cambios siguientes:

    • CHAIN_DATA_NAME: el nombre del directorio de datos de tu cadena. Por ejemplo, my-eth-data.
    • /dev/sdb: la ubicación del disco si es diferente de /dev/sdb.
  4. Asigna privilegios de escritura a NODE_ADMIN:

    sudo chmod a+w /mnt/disks/CHAIN_DATA_NAME
    
  5. Obtén el UUID del disco y añádelo a fstab para que se vuelva a montar automáticamente al reiniciar:

    sudo blkid /dev/sdb
    export DISK_UUID=$(findmnt -n -o UUID /dev/sdb)
    echo "UUID=$DISK_UUID /mnt/disks/CHAIN_DATA_NAME ext4 discard,defaults,nofail 0 2" | sudo tee -a /etc/fstab
    
  6. El disco ya está montado y listo. Para comprobar el disco montado, ejecuta el siguiente comando:

    df -h
    

Siguientes pasos

El esqueleto de tu nodo ya está listo. En este punto, deberías tener lo siguiente:

  • Una VPC para tu nodo con el acceso SSH habilitado.
  • Una VM que se ajuste a los requisitos de tu nodo.
  • Un nuevo usuario administrador de nodos para poseer y gestionar los recursos de los nodos.
  • Un disco SSD externo montado que se ajuste a los requisitos de almacenamiento de tu nodo.

No olvides volver a la documentación específica de la cadena de bloques para terminar de ejecutar los comandos de implementación de tu nodo.