Instalación de AutoCompound
Elección de app para el auto compound
Para este se revisaron 2 apps que dicen servir para el auto compound, estas fueron yieldmos y restake, seleccionando así restake, debido a que a nuestro modo de vista está más completa, tiene un equipo que día a día actualiza y mejora el aplicativo, soporta ledger en las cadenas más destacadas y es una app bastante usada por los usuarios.
NOTA: esta prueba fue realizada en una máquina con Debian linux 11
Instalación para restake
Instalación de nodejs@v17
Se debe instalar la versión 17 ó superior.
curl -sL https://deb.nodesource.com/setup_17.x -o /tmp/nodesource_setup.sh
# read the script file and when you're sure it's safe run it
chmod +x /tmp/nodesource_setup.sh
/tmp/nodesource_setup.sh
apt install nodejs -y
node --version
> v17.9.0
npm --version
> 8.5.5
Se procede a clonar el repositio en github para Restake
git clone https://github.com/eco-stake/restake
cd restake
npm install
cp .env.sample .env
Como parte del funcionamiento de Restake, se requiere asociar una wallet desde donde se pagaran los costos de las tx. Se recomienda crear esta wallet en Keplr, posteriormente las palabras secretas que se generan deben en este archivo ".env" Utilice esta wallet solo con este proposito.
Para actualizar el script solo debemos ejecutar lo siguiente:
git pull
#instalar
npm install
Configuración de servicios
Para ejecutar el script automáticamente en el tiempo que se requiera, usaremos systemd timer y para ello primero crearemos el servicio a ejecutar
sudo nano /etc/systemd/system/restake.service
#Editamos de esta manera
[Unit]
Description=restake service
Wants=restake.timer
[Service]
Type=oneshot
WorkingDirectory=/ruta/del/repositorio/de/restake
ExecStart=/usr/bin/npm run autostake
[Install]
WantedBy=multi-user.target
Si desea solo ejecutar una sola cadena puede especificarla por ejemplo:
ExecStart=/usr/bin/npm autostake juno
Después de tener configurado el servicio, crearemos y configuraremos el script con temporizador para que ejecute el proceso automáticamente:
sudo nano /etc/systemd/system/restake.timer
[Unit]
Description=Restake bot timer
[Timer]
AccuracySec=1min
OnCalendar=*-*-* 21:00:00
#Sobre la linea OnCalendar se define la periodicidad en que el nodo
procesará la solicitud de reclamar los rewards y ponerlos en stake nuevamente.
[Install]
WantedBy=timers.target
Con esto le estamos diciendo que ejecute el proceso de restake todos los días a las 21 UTC, este parámetro puede ser configurable y ejecutarlo en el tiempo que se requiera.
Habilitar e iniciar los procesos
systemctl enable restake.service
systemctl enable restake.timer
systemctl start restake.timer
#validamos el estado del proceso creado
systemctl status restake.timer
● restake.timer - Restake bot timer
Loaded: loaded (/etc/systemd/system/restake.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Mon 2022-11-07 15:09:41 -05; 5 days ago
Trigger: Mon 2022-11-14 09:00:00 -05; 21h left
Triggers: ● restake.service
systemctl status restake.service
● restake.service - restake service
Loaded: loaded (/etc/systemd/system/restake.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sun 2022-11-13 09:00:54 -05; 2h 32min ago
TriggeredBy: ● restake.timer
Process: 1142001 ExecStart=/usr/bin/npm run autostake (code=exited, status=0/SUCCESS)
Main PID: 1142001 (code=exited, status=0/SUCCESS)
CPU: 6.119s
Activarnos como Nodo operador de Restake
Ahora solo debemos hacer un pull request con nuestra información de nodo operador y hot wallet, al github oficial de Restake con la siguiente información (el pull request no tardan mucho en aceptarlo, normalmente uno 15 o 30 minutos).
Creamos una carpeta con el nombre de nuestro validador en este caso "NacionCrypto - Parceros"
y adjuntamos la siguiente información:
Archivo "profile.json" Se coloca la descripción del nodo, así aparecerá en la página.
{
"$schema": "../profile.schema.json",
"name": "parceros",
"identity": "9A70E4445A7A5B0C"
}
Archivo "chains.json" Se coloca las redes en las que queremos habilitar el servicio:
{
"$schema": "../chains.schema.json",
"name": "Parceros",
"chains": [
{
"name": "junotestnet",
"address": "junovaloper1c2ukpzz5qj2nkx30dq4zqy60qct9exq3yc50rk",
"restake": {
"address": "juno1yg8k3schjyhsmkvx5ujct7fcueakskalxj9jph",
"run_time": [
"09:00"
],
"minimum_reward": 10000
}
}
]
}
La primera address es la dirección del validador, y la segunda address es la hotwallet creada para el auto compound, en run_time pondremos el tiempo que queremos que se muestre como hora de restake (debe coincidir con el script generador anteriormente) y en minimum reward pondremos qué cantidad mínima admitida para realizar el auto compound.
Después de realizados los siguientes pasos y una vez aprobado el PR sobre el github, nuestro nodo deberá estar activo en el servicio y se podrá utilizar. En el siguiente video se explica el uso del servicio:
Last updated