IMPORTANTE: A día de hoy no se recibe recompensa por el traspaso de datos por tus Data Only HotSpot. Se espera que pronto se pueda.
¿Qué es un Data Only HotSpot?
En Helium se recibe recompensas por tener los HotSpots operativos (con largo alcance mediante la Prueba de Cobertura) y por el tráfico que pase por tu HotSpot.
Sabemos que ahora mismo apenas se producen transferencias de datos. El actual objetivo de Helium es tener una red de gran cobertura (oferta). Su uso por parte por dispositivos IoT (demanda) vendrá luego.
Pero, aunque parezca raro, ya está habiendo tráfico de aplicaciones IoT por muchos HotSpots.
Sabemos que los (full) HotSpots escasean (con tiempo de entrega por parte de los fabricantes de varios meses).
Sin embargo, hay forma de ganar $HNT sin necesidad de los codiciados Bobcat Miner, Sensecap M1, Nebra, …
Data Only HotSpot
Se tratan de dispositivos gateway LoRaWAN sin capacidad de minado (PoC). Es lo más parecido a un router convencional de ADSL o fibra óptica.
Su misión es la de pasar información de los dispositivos IoT a Helium y viceversa. Por estas transferencias, se recibe una recompensa (a día de hoy solo en el entorno de pruebas, staging).
La cuestión es ¿podemos hacernos nosotros un Data Only HotSpot?
Claro, vamos a ello.
El Hardware
En nuestro ejemplo vamos a usar el económico y fácil de conseguir Dragino LTS8. Se trata de un gateway LoRaWAN con soporte de 8 canales. Está muy extendido y hay mucha documentación Internet. Por poco más de 150€ podemos hacernos con uno.
Configurando el gateway
Vayamos paso a paso.
1. Actualizar a última versión
Suponiendo que acabamos de sacar el Dragino LTS8 de la caja. Lo conectamos a alimentación. La luz de alimentación parpadeará.
Cuando se quedé fija, conectaremos a la WiFi que habilita (dragino-XXXXXX). La contraseña suele ser «dragino+dragino» (consulta las instrucciones por si es otra).
Una vez dentro, abre el navegador y dirígete a la dirección http://10.130.1.1 Los credenciales de acceso son «root» y la contraseña por defecto «dragino«.
Dirígete a «System -> System Overview«. Aquí comprueba la versión instalada:
Vamos a la página de descargas de Dragino y descargamos nueva versión (si la hay).
La actualización es sencilla. Vamos a «System -> Firmware Upgrade«. Pulsamos en «Seleccionar archivo«, escogemos nuestro archivo de firmware y clicamos en «Upload«. Una vez subido, nos aseguramos que la casilla «Preserve Settings» esté desmarcada. Solo nos queda pulsar en «Proceed» y el gateway empezará a actualizarse. Tras aproximadamente dos minutos, volvemos a conectar a la WiFi que auto-genera y comprobamos que efectivamente la versión es la nueva.
2. Conexión a la red WiFi
Bien sea por conexión cableada ethernet o por WiFi, debemos conectar nuestro gateway a Internet. Veamos cómo hacerlo por WiFi.
Para ello debemos seguir conectados a la WiFi habilitada por el gateway y acceder a la sección «Network -> WiFi«. En la sección de «WiFi WAN Client Settings«, marcamos la casilla de «Enable WiFi WAN Client«, introducimos el nombre de la red de nuestra WiFi y la contraseña. Pulsamos en «Save&Apply» y si todo va bien, nuestro gateway se conectará a nuestra WiFi.
Podemos ver si se le ha asignado correctamente IP desde «Network -> Network Status».
Ahora podemos conectar directamente con el gateway desde nuestra propia red. La dirección a abrir en el navegador pasa a ser: página del proyecto en GitHub.
Para nuestro Dragino, nos bajamos aquella versión que termine en «-dragino.ipk».
Ahora es necesario copiarlo.
Abrimos un terminal y ejecutamos:
% scp -P 2222 <paquete>.ipk root@<ip>:/root
Hay que sustituir <paquete> e <ip> por la ruta completada del fichero descargado y la IP de nuestro gateway. Nos pedirá la misma contraseña (si no las has cambiado: dragino)
Ahora accedemos al gateway para la instalacion
% ssh -p 2222 root@<ip>
Una vez dentro, ejecutamos el comando de instalación
% opkg install <paquete>.ipk
El software ya estaría instalado y funcionando.
4. Configuración del servicio Helium
Antes nada, lo mejor es hacer una copia de las claves públicas/privadas de nuestro gateway.
% scp root@<ip>:/etc/helium_gateway/gateway_key.bin .
Una vez copiado a nivel local, es importante salvaguardarlo.
El servicio viene configurado por defecto para funcionar con la frecuencia US915. Si estamos en otra region, como puede ser Europa, necesitamos modificar el archivo de configuración.
Podemos hacerlo accediendo otra vez por SSH y ejecutando la siguiente orden desde dentro del gateway:
% sed -i '1s/^/region = "EU868"\n/' /etc/helium_gateway/settings.toml
Antes de salir de la sesión remota (SSH), reiniciamos el servicio
% /etc/init.d/helium_gateway restart
Ahora debemos indicar al gateway que use el nuevo servicio Helium. Accedemos a la interfaz de gestión nuevamente y vamos a la sección «LoRaWAN -> LoRaWAN«.
En la zona de «Primary LoRaWAN Server» especificamos como «Server Address» la IP local del gateway: 127.0.0.1. Cambiamos tanto el «Uplink Port» como «Downlink Port» al puerto 1680.
Pulsamos en «Save&Apply» y ya tendríamos el gateway conectado al servicio de LoRaWAN…pero aun nos falta darlo de alta en Helium.
5. Alta en Helium
El procedimiento más común y sencillo para dar de alta un full HotSpot es usando la app de Helium directamente con el teléfono móvil.
En nuestro caso eso no es posible. Tenemos que recurrir al wallet de interfaz de comandos para hacerlo.
Descargamos desde GitHub la versión compilada para nuestro sistema.
En nuestro caso, nos bajamos la versión para Mac OS X.
Una vez descargado, lo descomprimimos y movemos a un ruta para que esté disponible en todo el sistema
% cp $HOME/Downloads/helium-wallet-v1.6.6-x86-64-macos/helium-wallet /usr/local/bin
% chmod 755 /usr/local/bin/helium-wallet
NOTA: Si usas Mac OS X, probablemente tendrás que autorizar desde «Preferencias del sistema -> Seguridad y Privacidad» el ejecutable, pues no está firmado.
Lo siguiente es añadir nuestra cuenta o crear una nueva. Lo normal es «importar» la cuenta ya existente. Para eso necesitamos la «lista de palabras» que nos permite recuperar una cuenta y que se crea cuando accedemos por primera vez a la app de helium.
Trabajamos desde la shell
% helium-wallet create basic --seed mobile
Nos irá solicitando por orden las 12 palabras «mágicas». Hecho esto, ya debe aparecer la cuenta.
% helium-wallet balance
Ya estamos terminando. Solo falta agregar nuestro data only HotSpot al blockchain y hacer el aserto (posición donde está nuestro HotSpot).
Esta dos tareas requieren un pago, a modo de barrera de entrada para evitar «fraude».
Asociación a la red
Esta acción tiene un coste de $10 (1.000.000 DC).
Lo primero que tenemos que hacer es obtener nuestra dirección Helium de nuestro gateway. Volvemos a acceder con SSH y realizamos la siguiente tarea:
% helium-gateway add --owner <DIRECCION_WALLET> --payer <DIRECCION_WALLET>
Cambiamos <DIRECCION_WALLET> por nuestra dirección (obtenida ejecutando el comando helium-wallet balance en el PC).
Tras su ejecución, nos imprime en pantalla un objeto JSON parecido al siguiente:
{
"address": "<DIRECCION_GATEWAY>",
"fee": 65000,
"mode": "dataonly",
"owner": "<DIRECCION_WALLET>",
"payer": "<DIRECCION_WALLET>",
"staking fee": 1000000,
"txn": "CrkBCiEBrlIMpYLbJ0z0hw5b4bbisRyArgbXs9X+RrJ4pJJc9MkSIQA7yIy7F+9oPYCTmDz+v782GMJ4AC+jM+VfjvUgAHflWSJGMEQCIGfugfLkXv23vJcfwPYjLlMyzYhKp+Rg7H2YKwnsDHaUAiASkdxUO4fdS33D7vyid8Tulizo9SLEL1lduyvda9YVRCohAa5SJqWC2ydM9IcOW+IPYrEcj64G17PV/kayeKSSXPTJOMCEPUDo+wM="
}
El valor que nos interesa es el correspondiente «txn», es una representación de todo lo anterior (direcciones, tipo, fee, …).
Lo usaremos para mandar una transacción desde nuestro wallet para que se haga la asociación.
En nuestro PC, ejecutamos
% helium-wallet hotspots add CrkBCi...wm=
Esto hará una previsualización de la transacción.
Una vez comprobemos que todo es correcto y que tenemos suficiente saldo (ya sea en DC o en $HNT), enviamos la transacción añadiendo «–commit» a lo anterior
% helium-wallet hotspots add CrkBCi...wm= --commit
Después de esto, toca esperar aproximadamente unos 5 minutos (depende de lo saturada que esté la red).
Podemos ir comprobando el estado de la transacción consultando en https://api.helium.io/v1/pending_transactions/<codigo_TXN>, donde <codigo_TXN> es el código de transacción devuelto en el comando anterior.
Cuando devuelva un JSON con el campo «status: cleared«, nuestra gateway estará asociado y aceptado correctamente por la red.
Aserto de posición
Es necesario indicar a la red de Helium dónde está nuestro HotSpot. Esta operación tiene un coste de $5 (500.000 DC).
Lo primero es utilizar Google Maps u otra aplicación GPS para obtener las coordenadas donde está ubicado nuestro gateway (Ej: Lat=37.32132 Lon=-3.13212)
Luego, creamos la siguiente transacción desde nuestro PC:
% helium-wallet hotspots assert --gateway <DIRECCION_GATEWAY> --lat=37.32132 --lon=-3.13212 --mode dataonly
Reemplazamos <DIRECCION_GATEWAY> con nuestra dirección, ejecutamos y comprobamos que es correcta la transacción.
Verificada, añadimos el «–commit» y repetimos los pasos anteriores para comprobar si se ha efectuado correctamente.
% helium-wallet hotspots assert --gateway <DIRECCION_GATEWAY> --lat=37.32132 --lon=-3.13212 --mode dataonly --commit
¡Data-only HotSpot operativo!
Si has conseguido ejecutar todos los pasos, al cabo de unos o días veras a tu HotSpot en el mapa de exploración de Helium.
Esperemos que no haya sido muy complicado y quedamos a la espera si tienes cualquier duda o sugerencia.