Creación de un nodo nativo de Rocket Pool sin Docker
Esta guía está diseñada para Smartnode v1.6.5 y versiones superiores.
Si está utilizando una versión anterior, debe actualizar a v1.6.5 o superior antes de configurar el modo Nativo.
En esta sección, recorreremos el proceso de instalación de la pila de Smartnode de Rocket Pool de forma nativa en su sistema, sin el uso de contenedores Docker.
El plan general es el siguiente:
- Crear una configuración estándar de solo staking con servicios
systemdpara el Cliente de Ejecución, el Cliente de Consenso / Beacon Node y el Cliente Validador - Crear servicios del sistema para los componentes de Rocket Pool (los procesos node y watchtower)
- Configurar Rocket Pool para comunicarse con sus servicios de clientes
- Actualizar la definición del servicio de su Cliente Validador para usar el fee recipient y las claves de validador de Rocket Pool
Esta es una configuración bastante compleja, por lo que llevará algo de tiempo completarla.
La diversidad de sistemas operativos y distribuciones disponibles hace que sea poco práctico hacer guías disponibles para todos ellos. Las instrucciones de esta guía están adaptadas a un sistema basado en Debian (incluido Ubuntu). Para otras distribuciones o sistemas operativos, puede seguir los pasos de alto nivel descritos en la guía, pero tendrá que sustituir ciertos comandos por los que use su sistema según corresponda.
Esta guía está destinada a usuarios con experiencia en la administración y uso de sistemas Linux. Esto incluye usar la terminal, crear cuentas del sistema, administrar permisos e instalar servicios. Asumimos que está familiarizado con estas actividades: como estará administrando la mayor parte de la infraestructura usted mismo, solo proporcionamos soporte limitado para instalaciones Nativas. Si no está familiarizado con estas actividades, no recomendamos que use el Modo Nativo.
Paso 1: Configurar los Clientes de Ejecución y Consenso
El Modo Nativo extiende efectivamente una configuración estándar de solo staking, y simplemente permite que el software Smartnode se conecte a los clientes que ya ejecuta (con algunas pequeñas modificaciones).
Con ese fin, recomendamos que comience siguiendo algunas de las guías convencionales de solo staking proporcionadas por la comunidad:
- Conjunto de guías por cliente de Somer Esat: https://github.com/SomerEsat/ethereum-staking-guides
- Guías de CoinCashew: https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet
Tenga en cuenta que en realidad no creará un validador como se define en esas guías - Rocket Pool lo hará por usted. Puede ignorar las partes que involucran la herramienta Staking Deposit CLI.
Simplemente necesita seguir las guías hasta el punto en que tenga un servicio de Cliente de Ejecución, un servicio de Cliente de Consenso / Beacon Node y un servicio de Cliente Validador instalados y sincronizando la cadena. Omita los pasos que implican financiar un validador y registrar su mnemónico.
Además, hay un caso especial para el fee recipient - cuando llegue a la parte de la guía donde especifica el fee recipient en la configuración de su Cliente Validador, déjelo en blanco por ahora. Describiremos cómo configurarlo para los validadores de Rocket Pool a continuación.
Una vez que sus clientes estén instalados y pueda ver en sus registros que están sincronizando las cadenas correctamente, puede seguir los siguientes pasos para configurar el Smartnode de Rocket Pool y conectarlo a sus clientes.
Paso 2: Instalar Rocket Pool
Creación de la cuenta de servicio
El primer paso es crear una nueva cuenta del sistema para los servicios de Rocket Pool y deshabilitar el acceso de inicio de sesión y shell para ella:
Ahora, agrégese al grupo rp.
Necesitará hacer esto para usar la CLI de Rocket Pool, porque tanto ella como el daemon de Rocket Pool necesitan acceder al archivo de billetera de la capa de Ejecución.
Finalmente, agregue la cuenta de usuario para su Cliente Validador al grupo rp también.
El nombre de esa cuenta de usuario depende de qué guía siguió para configurar su servicio VC.
Por ejemplo, si su VC se ejecuta como usuario lighthousevalidator, haría lo siguiente:
Después de esto, cierre sesión y vuelva a iniciar sesión para que los cambios surtan efecto.
Configuración de los binarios
Comience creando una carpeta para Rocket Pool y una subcarpeta de datos.
Puede colocar esto donde quiera; para esta guía, lo pondré en /srv:
Ahora, descargue los binarios de la CLI y el daemon (o ignore esto y compílelos desde el código fuente si lo prefiere). Elija la plataforma que usa su sistema de las pestañas a continuación.
Ahora, establezca el propietario y el grupo del daemon como rp:
Finalmente, establezca el bit suid y otros bits de permisos en el binario del daemon:
Esto asegurará que el daemon siempre se ejecute como el usuario rp, por lo que siempre tendrá los permisos adecuados establecidos.
El Smartnode muy probablemente fallará con errores de permisos si no hace esto. ¡Por favor, asegúrese de ejecutar este comando!
Configuración de la carpeta de instalación
Con la CLI y el Daemon instalados, necesitará configurar la estructura de carpetas y los archivos acompañantes que el Smartnode espera que existan. Comience creando las siguientes carpetas:
A continuación, descargue los siguientes scripts - Rocket Pool los usará cuando necesite detener o reiniciar su Cliente Validador para cambiar su fee recipient (discutido más adelante) o cargar nuevas claves después de crear un nuevo minipool:
Ahora abra ~/.profile con su editor de elección y agregue esta línea al final:
Guárdelo, luego recargue su perfil:
Esto le permitirá interactuar con la CLI de Rocket Pool con el comando rp, que es un atajo agradable.
Creación de los servicios
A continuación, crearemos un servicio systemd para el daemon del nodo de Rocket Pool.
Este es el servicio que verificará y reclamará automáticamente las recompensas de RPL después de cada checkpoint, y activará minipools una vez que los haya creado mediante node deposit.
También crearemos un servicio de watchtower también.
Esto se usará si es miembro del Oracle DAO, o si alguna vez desea generar sus propios árboles de intervalos de recompensas (discutido en la sección Reclamar recompensas más adelante).
Cree el servicio rp-node:
Contenido:
Cree un archivo de registro para el servicio, para que pueda ver su salida - esto reemplazará el comportamiento de rocketpool service logs node:
Contenido:
Guárdelo, luego hágalo ejecutable:
Ahora puede ver los registros del nodo simplemente ejecutando:
Los servicios ahora están instalados.
Configuración del acceso sin contraseña a los scripts
El siguiente paso es dar al usuario rp la capacidad de reiniciar el Cliente Validador cuando se crean nuevas claves de validador, y detener el Cliente Validador si se detecta una condición de emergencia.
Cree un nuevo archivo sudoers usando visudo:
Agregue las siguientes líneas:
Donde <nombre del servicio del validador> es el nombre de su servicio VC (por ejemplo, lighthousevalidator)
Ahora, modifique /srv/rocketpool/restart-vc.sh:
- Descomente la línea al final y cámbiela a
sudo systemctl restart <nombre del servicio del validador>
También modifique /srv/rocketpool/stop-validator.sh:
- Descomente la línea al final y cámbiela a
sudo systemctl stop <nombre del servicio del validador>
¡Todo listo!
El proceso node ahora puede reiniciar o detener su VC según sea necesario automáticamente.
Paso 3: Configurar el Smartnode
Ahora que todos sus servicios están creados, es hora de configurar la pila de Smartnode.
Por favor visite la guía Configuración de la pila de Smartnode (Modo Nativo), y regrese aquí cuando haya terminado.
Habilitar y ejecutar los servicios
Con todos los servicios instalados, es hora de:
- Habilitarlos para que se reinicien automáticamente si se rompen, y se inicien automáticamente en un reinicio
- Iniciarlos todos
Configuración de una billetera
A continuación, cree una nueva billetera de nodo o recupere una billetera existente. Por favor siga cuidadosamente las instrucciones en la sección Configuración de una billetera de la guía, luego regrese aquí cuando haya terminado.
Una vez hecho esto, use los scripts de archivo de registro del servicio para verificar que cargaron exitosamente su nueva billetera. También debe verificar esto usando el siguiente comando:
Si funciona correctamente, debería producir la siguiente salida:
Paso 4: Actualizar la definición del servicio VC
A diferencia de una configuración de solo staking, Rocket Pool genera y administra sus claves de validador automáticamente. Hay algunos ajustes que deberá hacer en el archivo de definición del servicio VC que acaba de crear para que funcione correctamente con Rocket Pool, incluyendo:
- El Fee Recipient
- El directorio de datos o billetera del VC
- Los directorios de claves y secretos del VC
Cubriremos estos paso a paso para cada cliente.
Configuración del archivo de Fee Recipient
Es crucial que siga estos pasos - no hacerlo y usar el fee recipient incorrecto resultará en penalizaciones aplicadas a sus validadores y deducciones tomadas de su saldo de Beacon Chain!
El fee recipient es el argumento que proporciona a su Cliente Validador que especifica la dirección en la capa de Ejecución a la que desea que se envíen sus tarifas prioritarias y recompensas de MEV. Rocket Pool tiene dos direcciones diferentes para el fee recipient:
- Si ha optado por el Smoothing Pool, debe ser la dirección del Smoothing Pool
- Si ha optado por no participar en el Smoothing Pool, debe ser la dirección del Fee Distributor de su nodo
Para obtener más información sobre el Smoothing Pool y su Fee Distributor, consulte la sección Fee Distributors y el Smoothing Pool de la guía.
El servicio node de Rocket Pool establecerá esto automáticamente detectando cuál debe ser y configurándolo en un archivo de configuración y reiniciando su servicio de Cliente Validador para recoger el cambio.
Su servicio de Cliente Validador puede usar ese archivo de configuración automáticamente para que no necesite codificar el fee recipient.
Abra el archivo de definición del servicio systemd que acaba de crear para su Cliente Validador.
Antes de la línea ExecStart, agregue esta línea:
Luego modifique su argumento de fee recipient de la siguiente manera; seleccione su cliente de elección de las pestañas a continuación:
--suggested-fee-recipient address a --suggested-fee-recipient ${FEE_RECIPIENT}Si inicia su Cliente Validador antes de los servicios de Rocket Pool, puede dar error porque este archivo aún no existe. No se preocupe, este archivo será creado por Rocket Pool una vez que haya inicializado e iniciado sus servicios.
Configuración de los directorios de datos y claves
A continuación, debe indicarle al VC dónde almacenar sus datos y cargar las claves de validador que genera Rocket Pool. Haga clic en el cliente que usa en las pestañas a continuación:
Cree los siguientes directorios y establezca su propietario como rp:
Ahora, agregue o cambie los siguientes parámetros en el archivo de definición del servicio del VC de Lighthouse a estos nuevos valores:
Relajar umask
Por defecto, su sistema normalmente vendrá con una configuración de umask que eliminará el bit +w de los permisos de grupo cada vez que el daemon node cree una nueva carpeta.
Esto es problemático para varios clientes de consenso, porque en realidad escribirán cosas como archivos de bloqueo u otros metadatos en los directorios que el Smartnode crea cuando genera nuevas claves de validador durante un depósito de minipool.
Para combatir esto y asegurar que su VC funcione correctamente, por favor relaje su configuración de umask.
Por ejemplo, en lugar de 0022, debería considerar establecerlo en 0002 para el usuario rp.
Cada sistema es diferente, así que consulte una guía que cubra su sistema operativo para aprender cómo hacer esto.
Este paso es crucial para asegurar que las tareas automáticas de staking y validación se manejen correctamente.
Si nota problemas de permisos en los registros de su VC después de que su minipool pase la verificación de depuración de 12 horas y entre en estado staking, probablemente necesitará ejecutar sudo chmod 775 en la carpeta que contiene sus claves de validador para que su servicio VC pueda escribir en esa carpeta.
Recarga del servicio VC
Con estos cambios realizados, ahora puede recargar y reiniciar el servicio VC usando lo siguiente:
Si no usa Prysm, por favor observe los registros del VC cuidadosamente para asegurarse de que se inició correctamente y que los siguientes estén definidos correctamente:
- El fee recipient
- La ruta de datos
- La ruta de billetera / claves / secretos
Puede verificar esto con, por ejemplo, ps aux | grep fee para filtrar los procesos en ejecución y ver el fee recipient que su VC ha usado.
Debe ser el mismo que se define en /srv/rocketpool/data/validators/rp-fee-recipient-env.txt.
Si todos están usando los valores correctos, entonces ¡felicitaciones! Ha configurado exitosamente su nodo de Rocket Pool y puede seguir las siguientes secciones de la guía para aprender a usarlo.
Próximos pasos
Ahora que sus clientes están instalados, le recomendamos que eche un vistazo a las sugerencias de seguridad en la sección Asegurar su nodo a continuación. Como está ejecutando una configuración Nativa, es probable que ya haya hecho algunas de estas cosas; sin embargo, no está de más al menos explorarlo y ver qué tan bien se ajusta la postura de seguridad recomendada con su sistema.