Creación un nodo de Storj
Hoy os traigo un tutorial de cómo unirte a la red de datos descentralizada de Storj creando un nodo y cediendo ancho de banda y espacio en tus discos.
A cambio de estas cesiones, Storj nos recompensa con pagos en su criptomoneda STORJ.
Os dejo la web por si queréis profundizar más en el proyecto:
Nota: al principio probablemente no ganéis nada debido a que la red se fundamenta en la reputación de los nodos para funcionar, y hasta que tu nodo no tenga cierta reputación y tiempo no empezarás a ver ningún tipo de ingreso
Antes de empezar
Primero de todo necesitaremos tener un equipo (o hypervisor) con el que podamos cumplir los requisitos mínimos de un nodo de Storj (revisad la web para eso, ya que los requisitos suelen cambiar).
Es necesario tener los siguientes programas instalados (o bien utilizar alternativas de vuestro agrado): Putty y WinSCP
Por otra parte necesitaremos tener un token con el cuál registrar los nodos, para ello nos registraremos con nuestro email en Storj y esperaremos a que nos envien el token al correo.
Entramos en nuestra cuenta de DuckDNS y en el banner superior encontraremos el token que deberemos copiar y guardar para más adelante.
Y por último descargamos lo siguiente:
Crear clave SSH para Rancher
Rancher es que no permite el uso de contraseñas por defecto, solo permite acceso con una clave ssh, por lo tanto, vamos a generar una:
Si no tienes el programa Putty, lo puedes descargar desde aquí:
Una vez instalado, abrimos PuTTYgen y le damos a generate, seguimos las instrucciones que nos salen, en Key Comment ponemos nuestro email (esto es opcional), le ponemos una contraseña si queremos y guardamos la clave privada en un lugar seguro, ya que sin esta clave no podremos volver a entrar al servidor.
Lo que nos sale en el cuadro de texto superior, lo copiamos y lo guardamos para luego.
Crear USB de instalación de RancherOS
En el caso de que lo montéis en un hypervisor, montad la ISO directamente en la máquina virtual y saltaos este paso.
Yo suelo utilizar Rufus para grabar las ISO en USBs, pero vosotros podéis usar el que más os guste.
Una vez creado lo conectamos al PC e iniciamos desde el USB.
Configuración e Instalación de RancherOS
Una vez hayan pasado unos segundos y haya acabado de iniciar el instalador, pulsamos enter y escribimos:
sudo passwd rancher
Necesitamos saber el nombre del disco de donde se va a instalar rancher y el nombre del disco donde se van a guardar los datos del nodo, para ello ejecutamos el siguiente comando:
sudo fdisk -l
Nos guiaremos por las capacidades para distinguirlos. Nos interesa /dev/sda y /dev/sdb, en mi caso el disco de 16GB es el del SO y el de 5GB es el disco de los datos del nodo (recordad que el requisito mínimo son 500GB, aunque en el tutorial haya puesto uno de 5GB).
Nos anotamos que disco es cual para más adelante.
Configuración
Ahora nos vamos a otro PC y creamos un archivo con el nombre cloud-config.yaml y dentro pegamos lo siguiente:
#cloud-config
hostname: storjnode
ssh_authorized_keys:
- ssh-rsa AAA... [email protected]
rancher:
console: ubuntu
environment:
# DuckDNS
TZ: Europe/Madrid
SUBDOMAINS: subdomain1,subdomain2
TOKEN: token
# Storjnode
WALLET: 0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EMAIL: [email protected]
ADDRESS: domain.duckdns.org:28967
STORAGE: 1TB
network:
dns:
nameservers:
- 1.1.1.1
- 1.0.0.1
override: false # Override DHCP assigned nameservers
# Assign static IP configuration to interfaces (Default: use DHCP)
# Ref: https://rancher.com/docs/os/v1.x/en/installation/networking/interfaces/
#interfaces:
# eth1:
# address: 192.168.1.100/24
# gateway: 192.168.1.1
# mtu: 1500
# dhcp: false
services:
duckdns:
image: linuxserver/duckdns:latest
container_name: duckdns
restart: always
labels:
io.rancher.os.after: console,wait-for-network
environment:
- TZ
- SUBDOMAINS
- TOKEN
portainer:
image: portainer/portainer:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
labels:
io.rancher.os.after: console,wait-for-network
io.rancher.os.scope: system
volumes:
- /var/run/docker.sock:/var/run/docker.sock
storjnode:
image: storjlabs/storagenode:beta
container_name: storjnode
restart: always
ports:
- "28967:28967"
- "14002:14002"
labels:
io.rancher.os.after: duckdns,wait-for-network
volumes:
- /identity/storagenode:/app/identity
- /storage:/app/config
environment:
- WALLET
- EMAIL
- ADDRESS
- STORAGE
runcmd:
- 'mkdir -p /storage'
- 'mkdir -p /identity'
- 'mount -t ext4 /dev/sdb /storage || (mkfs.ext4 /dev/sdb && mount -t ext4 /dev/sdb /storage)'
De este archivo tendremos que cambiar distintos parámetros:
- En la línea 3: cambiamos la clave ssh que hay por la que hemos copiado anteriormente.
- En la línea 12: reemplazamos subdomain1,subdomain2 por nuestro(s) subdominio(s) de DuckDNS, si tuviesemos el subdominio storj.duckdns.org, solo pondríamos storj, si tenemos 2 o más subdominios, entonces hay que poner los subdominios separados por comas: storj,storj2
- En la línea 13: reemplazamos token por nuestro token de DuckDNS copiado anteriormente
- En la línea 15, 16, 17 y 18: ponemos la configuración de nuestro nodo
- En la línea 81: cambiamos /dev/sdb por la ruta de nuestro disco donde vayan a ir los datos del nodo. EL COMANDO DE ESTA LÍNEA FORMATEA EL DISCO SI NO ESTÁ EN FORMATO EXT4. Id con cuidado si estáis migrando un nodo a Linux, ya que tendréis que copiar os datos a otro lado y luego volverlos a pasar de vuelta.
Para copiar el archivo que acabamos de crear y editar, abrimos WinSCP y nos conectamos al PC mediante la IP que se le haya asignado automáticamente, con el usuario rancher y con la contraseña que hemos puesto previamente.
Una vez nos conectemos, se nos abrirá una carpeta, ahí copiamos el cloud-config.yaml y luego volvemos a la consola para validar que el archivo sea correcto y no nos hayamos equivocado.
sudo ros config validate -i cloud-config.yaml
Ahora para instalar simplemente tenemos que ejecutar (cambiando /dev/sda por nuestro disco de instalación):
sudo ros install -c cloud-config.yaml -d /dev/sda
Nos pedirá confirmación, ponemos y y luego enter, y de nuevo, nos pedirá confirmación para reiniciar el equipo, ponemos y y luego enter.
Portainer
Para aquellos que no conozcáis Portainer, es una herramienta que nos va a proporcionar una interfaz gráfica para poder administrar y crear nuestros contenedores en docker. Gracias al archivo de configuración que le hemos pasado antes, viene preinstalado:
Vamos a http://IP_de_RancherOS:9000
Antes de continuar tenemos que parar el contenedor de Storj, para ello, lo seleccionamos y pulsamos Stop, una vez hecho esto, podemos continuar.
Identity
Una vez hecho esto ya está casi todo listo, falta la identity del nodo.
Hay dos opciones: copiar una ya existente o bien crear una nueva. A continuación os explico ambas.
Identity nueva
Para crear una, abrimos PuTTY pero esta vez hay que cargar la clave SSH, ya que ya hemos instalado Rancher con la configuración anterior.
Una vez hecho esto se nos abre el terminal y solo hay que ejecutar los siguientes comandos (uno detrás de otro):
Volvemos a Portainer y ponemos a funcionar el nodo
Debajo de Quick actions nos aparecen unos iconos, si le damos al que parece a un fichero, se nos abrirá el log del contenedor y podremos ver si algo va mal.
Identity existente
Abrimos WinSCP y ponemos la IP y rancher como usuario. La contraseña se deja en blanco.
Una vez estemos dentro, cogemos la carpeta storagenode que está dentro de nuestra carpeta identity y la arrastramos.
Abrimos PuTTY pero esta vez hay que cargar la clave SSH, ya que ya hemos instalado Rancher con la configuración anterior.
Una vez hecho esto se nos abre el terminal y solo hay que ejecutar los siguientes comandos (uno detrás de otro):
sudo mv /home/rancher/storagenode /identity/storagenode
sudo chown -R root:root /identity
Volvemos a Portainer y ponemos a funcionar el nodo
Debajo de Quick actions nos aparecen unos iconos, si le damos al que parece a un fichero, se nos abrirá el log del contenedor y podremos ver si algo va mal.
Y ya tendríamos nuestro nodo de Storj configurado y funcionando!