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:

https://www.youtube.com/watch?v=UkoRhORZznw&t=43s

Realizado por:

Mauricio Gil - maurog@decry.io

fabian - vfabian@decry.io

Last updated