En este tutorial se explicarán los pasos a seguir para montar un nodo de LTO (Legal Things One) Network en un equipo Linux, en concreto para Ubuntu y derivados. Puesto que es un nodo que debería estar siempre encendido y aportando a la red, lo normal es que lo tengamos corriendo sobre un VPS (Virtual Private Server) que suele llevar un Linux, en lugar de en nuestro pc de sobremesa. Además, usando un VPS evitamos exponer la IP pública de nuestro router.

Antes de comenzar con la guía, me gustaría explicar brevemente el propósito de un nodo de LTO Network:
En LTO han diseñado un nuevo modelo de red llamado LPoI (Leased Proof of Importance), cogiendo ideas de LPoS (Leased Proof of Stake), en el que cuanto más grande sea el nodo, más recompensas obtiene, y del PoI (Proof of Importance), en el cual cuanto más uses la red, más incentivos consigues. El problema que había con estos dos modelos es que el primero tiende a la centralización de la red, como es el caso de NXT que lo implementa y su red la controla solo tres nodos, mientras que el segundo, como es el caso de Waves o NEM, usa algoritmos excesivamente complejos.
En LTO Network han solucionado esos problemas combinando los dos en su modelo LPoI, tus recompensas por correr el nodo dependerán de la cantidad de tokens que “stackees” y el uso que le des a la red.
La probabilidad de que consigas recompensa por bloque depende de un factor llamado “raffle-factor”, explicado con más detenimiento aquí pero que fundamentalmente es un factor que varía entre 1 y 1.5 dependiendo del equilibrio entre los tokens que tienes y el uso que le des a la red.

Una vez explicado lo anterior, comenzamos con la explicación de como montar un nodo.
Antes de nada necesitas un equipo corriendo Ubuntu o derivados. Si no tienes, puedes alquilar VPS en DigitalOcean, Scaleway, OVH, Amazon AWS, Arubacloud, Vultr una Raspberry Pi, etc. Los requisitos para correr el nodo actualmente son bajos, con 1GB de Ram es suficiente. Es importante que sea de 64bits, procesadores de 32bits no funcionarán.
En este tutorial no se va a explicar como conectarse y acceder al VPS, ya hay numerosos tutoriales en internet. Tenéis otro tutorial más extenso en inglés aquí. Os recomiendo el programa MobaXterm para acceder al VPS por SSH si no tenéis uno instalado actualmente.
Creamos una carpeta en el directorio actual y nos movemos a ella, para tenerlo todo más organizado:
mkdir lto
cd lto
Para lanzar el nodo haremos uso de Docker, el cual permite lanzar aplizaciones fácilmente en contenedores virtualizados.

Instalación de Docker CE:
sudo apt-get remove docker docker-engine docker.io containerd runc
Actualizamos la lista de paquetes
sudo apt-get update
Instalamos estos paquetes necesarios para instalar Docker desde su repositorio
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
Añadimos la key GPG oficial de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
A continuación añadimos el repositorio de Docker. Si tuvieras una arquitectura diferente, simplemente cambia amd64 por la tuya.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Volvemos a actualizar la lista de paquetes
sudo apt-get update
Finalmente instalamos Docker
sudo apt-get install -y docker-ce
Si todo está correctamente instalado, al poner el siguiente comando debería salir que el servicio está activo
sudo systemctl status docker

Instalación Docker Compose:
Debemos ir a este enlace y usar los dos comandos de instalación de la última versión, ahora mismo son los siguientes pero se actualiza con mucha frecuencia
sudo curl -L https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Configuración datos nodo:
Ahora debemos descargar el archivo de configuración
wget https://raw.githubusercontent.com/ltonetwork/lto-public-node/master/docker-compose.yml
Vamos a editar el archivo con el editor Nano, es muy sencillo de utilizar y se maneja con las flechas.
nano docker-compose.yml
Para guardar hay que pulsar control+o y enter y para salir control+x
Antes de nada debemos tener una Wallet de LTO, se crean desde aquí y es muy importante guardar bien los datos de acceso. Recuerdo que como buena práctica, la wallet del nodo no debería ser nuestra wallet principal. Creamos una wallet para el nodo y le hacemos un “Leasing”.
Dentro del archivo de configuración Docker tenemos que editar los siguientes campos:
En LTO_WALLET_SEED tenemos que poner la seed de la wallet, la clave privada. Son una lista de doce palabras en inglés. Se deben colocar a continuación del guión y con los espacios correspondientes. Ejemplo: LTO_WALLET_SEED=palabra1 palabra2 palabra3…
En LTO_WALLET_PASSWORD introducimos una contraseña que encriptará nuestra seed en el disco duro. Nos permitirá el acceso a la wallet sin tener que poner la seed. Ejemplo: LTO_WALLET_PASSWORD=contraseñaMuyLarga
Finalmente, LTO_API_KEY es una contraseña que debemos poner si queremos tener acceso a algunas funciones de la api. No vamos a extendernos sobre este tema aquí pero además de la contraseña anterior, debemos incluir el campo: LTO_ENABLE_REST_API=true y podremos acceder desde el navegador a http://localhost:6869 cuando esté todo funcionando.
Más información sobre el acceso a la interfaz web aquí.
Existen más campos opcionales que podemos añadir a este archivo de configuración, se pueden ver todos aquí.
Ya deberíamos tener todo listo para lanzar el nodo, con este comando descargará la imagen de LTO desde docker y desplegará el nodo con la configuración que hemos establecido
sudo docker-compose up
Saldrán muchas líneas con información y empezará a descargar todos los bloques de la blockchain. Una vez se sincronize, tendremos nuestro nodo funcionando y creando bloques en la blockchain de LTO!
Recuerda que para poder empezar a conseguir recompensas, la wallet de tu nodo debe tener al menos 1000 LTO y además tiene que haber estado activo durante 1000 bloques. Esto se consigue en algo menos de un día aproximadamente.
Extra:
Comandos útiles Docker:
sudo docker-compose up -d # Igual que el comando anterior pero dejando el proceso en segundo plano
sudo docker images # Muestra las imágenes instaladas
sudo docker ps -a # Muestra los contenedores corriendo actualmente
sudo docker start public-node # Enciende el nodo de LTO si estaba apagado
sudo docker stop public-node # Apaga el nodo de LTO si estaba encendido
sudo docker logs -f public-node # Muestra la información del nodo en tiempo real
sudo docker-compose down # Borra el contenedor
sudo docker-compose pull # Actualiza el contenedor si hay una nueva versión
Si tenéis dudas podéis escribirme por privado en Telegram o en el grupo de Telegram de LTO.