Helium — The People’s Network —

Vincent OLLIVIER
Everysens
Published in
23 min readJul 4, 2022

--

Helium Europe Coverage

Introduction

Contrairement à The Things Network, un réseau IoT communautaire, libre et gratuit, Helium a une vision lucrative de son réseau. C’est un réseau télécom collaboratif basé sur une blockchain de façon à permettre une rémunération des acteurs du réseau grâce à un système décentralisé piloté par sa blockchain.
Actuellement, le réseau le plus actif et opérationnel déployé par Helium est un réseau LoRaWan à l’échelle mondiale, via près d’un million de hotspots.
Cet article est un plongeon dans la technologie développée par Helium et qui va tenter de couvrir de manière synthétique la majorité des concepts.
Bonne lecture !

LoRa

Technologie

LoRa est historiquement une technologie radio longue portée Française, Grenobloise plus précisement et datant de 2009. Racheté plus tard par Semtech USA. LoRaWan un réseau normalisé basé sur Lora (2015), LPWan (low power) et longue portée 10~50km.

Lora vs Sigfox

  • Sigfox (Ultra Narrow Band) : simplicité d’émission radio, complexité technique pour recevoir, gateways coûteuses, vitesse de transmission 100~600 bps à très longue portée (jusqu’à 100 km), peer to peer communication impossible.
  • Lora (Spread Spectrum) : simplicité émission et réception radio, gateway simplistes et peu coûteuses (moins de 100€), vitesse de transmission 250~5400 bps (plus la vitesse de transmission augmente, plus la portée baisse, à 5Kbps la portée passe à 2~4km). Peer to peer communication possible.

Bande fréquence ISM

Utilisation de la bande de fréquence ISM libre 868Mhz (EU) et 915Mhz (USA, American standard). Afin de partager cette fréquence il faut respecter une limitation d’usage via un duty cycle de 1%. Et la puissance d’émission est limitée à 25mW/14dbm. La portée moyenne à cette puissance est de 15km.

Attention, le standard américain n’utilise pas de duty cycle pour partager la fréquence mais du channel hopping ce qui peut faire varier la logique d’émission d’un objet connecté entre l’EU et l’American standard.

LoRaWan

LoRaWan est l’implémentation d’un réseau au-dessus de la technologie LoRa (2015). LoRA Alliance propose une layer 2 avec “MAC address” et des protocoles qui permettent l’intégration des devices et gateways sous forme d’un réseau informatique : fréquences radio, format trames, chiffrement, commandes, etc. Le device doit gérer un protocole réseau logiciellement assez complexe, qui oblige à utiliser des microcontrôleurs “relativement” puissants et donc plus assez coûteux. L’inconvénient est donc un device plus cher à produire que son pendant Sigfox par exemple. (Module Wisol Sigfox 3~4€, Module Semtech LoRa 30~40€, Module Murata LoRa 15~20€)

Architecture LoRaWan Helium

OTAA

L’OTAA pour “Over The Air Activation”. Comme il existe plusieurs réseaux LoRaWan de fournisseurs différents (En France : Orange, Objenious, etc), et des réseaux privés, il faut une méthode pour qu’un réseau reconnaisse “son” device.
Un device a une identité, codée sur 3 paramètres : DevEUI, AppEUI, AppKey tous sur 64bits.
En simplifiant, ces paramètres servent, entre autres, à créer des clés de chiffrement entre le device et son réseau : un autre réseau qui recevrait un message LoRa de ce device ne pourrait pas décoder la payload. C’est lors d’un “join” au réseau que ces clés sont générées. Un device peut sortir et “rejoin” ce réseau (ou un autre) et dans ce cas, de nouvelles clés sont générées.
Attention à la problématique du “rejoin” quand on conçoit un objet ou qu’on en achète un sur étagère : Voir ici

Frame Format

Contrairement à une trame simpliste “à la Sigfox”, la trame LoRa peut contenir des données relatives aux directives du réseau, sa taille exacte est difficilement estimable à l’avance et de manière générale est plus verbeuse que du Sigfox. Cela a des conséquences sur le duty cycle.

ADR : Adaptative data rate, donne le contrôle du réseau sur des paramètres d’émission du device : vitesse, puissance (Spread Factor) mais aussi canaux, etc. Cette fonctionnalité peut être un problème sur un device se déplaçant si le réseau décide autoritairement d’augmenter son “data rate” et donc diminuer sa portée.

Produit industriel

La conception d’un produit, surtout sa partie logicielle, est plus complexe qu’avec Sigfox. Un Proof of Concept en LoRa c’est rapide, un produit industriel c’est une autre paire de manches.

Helium Network

Blockchain

La blockchain Helium ne stocke PAS les données (messages/payload) des devices ! Elle gère la facturation et les récompenses des réseaux évoluant dans sa sphère : LoRaWan, 5G, etc.

Hotspots

Un Hotspot est un appareil radio émetteur/récepteur de la taille d’une box internet et que l’on installe dans un domicile, les locaux d’une entreprise, sur un toit, etc …
Le but de l’appareil est de relayer les messages émis par des devices proches au réseau Helium.
Il existe actuellement deux types de hotspot :
- Le Full Hotspot Miner : c’est un hotspot techniquement avancé qui gère le proof of coverage, qui synchronise une copie complète de la blockchain et qui rapporte des HNT juste parce qu’il étend le réseau.
- Le Data Only Hotspot : c’est une simple passerelle LoRa (~100€), elle étend le réseau mais ne rapporte qu’en relayant les données.

Les performances du hotspot sont directement corrélées à la qualité et le positionnement de son antenne.

Private Hotspot

Une simple antenne, positionnée en intérieur, et la portée n’est guère supérieure à quelques centaines de mètres. Par contre, avec des antennes extérieures la portée passe à plusieurs kilomètres.

Les fréquences utilisées sont identiques à celles d’un “écoute bébé” ou de la commande de votre porte de garage. La puissance utilisée est 40 fois inférieure à celle d’un WiFi domestique. Donc à priori pas de risques sanitaires connus.

Blockchain tokens

— Token HNT

Le HNT est le token natif de la blockchain Helium, il est miné par les hotspots et utilisé par les validateurs du réseau. Il s’échange sur les places de marché, sa valeur est fluctuante, il peut être soumis à spéculation.

— Token DC

Le Token Data Credits est utilisé uniquement pour transférer des données sur le réseau en payant ce dernier. Ce token a un taux de conversion fixe par rapport au dollar : 1 DC = $0.00001 (= 24 octets sur le réseau). L’obtention de DC se fait via la vente de HNT, et ces HNT sont brûlés pour devenir des DC.

Tokenomics

La blockchain Helium utilise 3 concepts distincts pour s’assurer qu’il y aura assez de token HNT pour les besoins réseau tout en maîtrisant sa rareté : Supply, Burn-and-Mint, Net Emissions.

— Supply

Tous les ans, un total connu de HNT est miné et offert en rewards aux participants du réseau (décentralisation). La limite en HNT (total supply) est de 240 millions elle sera atteinte dans 50 ans, sachant qu’il y a un halving tous les deux ans. Un halving correspond à la diminution par 2 des tokens minés annuellement.

Helium Halving

— Burn-and-Mint

Comme vu précédemment le token Data Credits possède une valeur fixe en USD ($0.00001). Pour produire des DC il faut brûler l’équivalent en HNT au prix du marché. Admettons qu’un HNT vaut $10, brûler 1 HNT va produire 10.000 DC.

Cette relation HNT/DC est basée un de modèle de “Burn-And-Mint Equilibrium” qui est destiné à s’assurer qu’une quantité suffisante de HNT existe pour répondre aux tendances d’utilisation du réseau de sorte que, lorsque l’équilibre est trouvé, une quantité suffisante de HNT est disponible mois après mois. Explication : plus la création de DC augmente, plus des HNT sont brûlés et plus leur prix augmente produisant plus de DC pour moins de HNT. Et inversement.

A l’usage, le total de HNT va diminuer petit à petit, augmentant, mécaniquement, sa valeur dans le temps.

— Net Emissions

Si la création de tokens HNT ne suffit plus à la distribution des rewards (A cause des halving dans les prochaines années), une émission exceptionnelle et plafonnée a lieu tous les mois.
Cette émission est paramétrable via des variables de chaine qui peuvent être ajustées par communauté via des votes (DAO).

Wallets

Sur Helium un wallet sert à gérer la propriété des hotspots, les ajouter sur le réseau, voir leur activité, mais aussi recevoir ses tokens HNT minés, vendre ou acheter des tokens HNT et convertir des HNT en DC.

De plus, le wallet sert aussi à payer les transactions que font les devices associés à celui-ci. En effet, le serveur LoRaWan qui reconnaît le device et accepte le paquet de données paye le mineur qui l’a transféré en utilisant les Data Credits disponibles sur le wallet du propriétaire du device.
Nota bene : Les DC ne sont pas transférables et ne peuvent être utilisés que par leur propriétaire d’origine.

Proof of Coverage

Helium utilise un algorithme novateur appelé “proof of coverage” pour vérifier que les hotspots sont bien où ils sont géographiquement déclarés. Un hotsport communique avec ses voisins géographiques, légitimant ainsi sa localisation physique grâce à l’étude de la qualité de la réception radio.
Etant donné qu’une partie des revenus des hotspot (miners) est corrélée à sa position géographique il est très important de s’assurer qu’elle est véridique.

Miners

Comme expliqué précédemment, un “miner” est une passerelle LoRaWan puissante basée sur du Raspberry Pi ou équivalent, et exécutant un OS Linux avec un “firmware” Helium dans un docker. Ces hotspots sont conçus et assemblés par une liste de fabricants approuvés.
Ce type de hotspot mine des HNT via proof of coverage et en relayant des données LoRa.
Jusqu’à l’année 2021, les hotspots miners validaient aussi les transactions dans la blockchain, mais à cause de leur faible puissance de calcul (pour ce travail exigeant), ce processus a été remplacé par la notion de validateurs, de véritables ordinateurs dans des data centers avec un SLA.
Nota bene : Miner de la crypto est une activité non commerciale soumise à l’imposition.

Rewards

Un hotspot mine des HNT. Et ces rewards proviennent principalement de deux sources :

  1. Via le proof of coverage : en étant témoins (witnesses) de la position d’un autre hotspot ou en étant l’émetteur du “challenge” de positionnement qui mènera aux témoignages des autres hotspots.
  2. En transférant des données des devices vers le réseau. C’est-à-dire la facturation des communications à l’octet.

Les rewards (en HNT) sont versés à chaque “epoch” de la blockchain : tous les 30 blocs, soit 30 minutes en conditions normales. Un nombre donné de tokens est produit et distribué chaque mois (actuellement 2.500.000). La quantité de rewards de chaque hotspot est calculée par les validateurs du réseau en fonction des informations contenues dans les 30 derniers blocs.

Comme Bitcoin, Helium subit des halving réguliers, réduisant le nombre de tokens HNT minés par mois, réduisant donc la quantité de rewards. L’équilibre devant se faire par l’augmentation du prix du token dans le même temps. Ici on touche un point sensible des cryptos : étant donné l’extrême volatilité du marché crypto, ce principe, parfait sur le papier, s’avère nettement plus problématique dans la réalité. Le prix du token HNT actuel est 4 à 5 fois moindre qu’il y a 8 mois …

Validateurs

Les nœuds de validation ont remplacé les hotspots pour réaliser les opérations de consensus sur la blockchain, comme la vérification des transactions, l’ajout de nouveaux blocs et le calcul de la répartition des rewards. Pour faire tourner un nœud de validation il faut posséder 10.000 HNT. Evidemment, les validateurs sont rémunérés (en HNT) pour leur travail.
Comme pour beaucoup de blockchains, des professionnels de l’infrastructure informatique proposent leurs services pour construire des nœuds de validation crédibles moyennant le prêt de tokens (HNT dans ce cas) afin d’avoir une pile suffisante pour être éligible par le réseau. Ce prêt de tokens entraîne une rente pour le prêteur : la notion de “staking”, courante dans le monde de la blockchain.

Miners Light

L’amélioration et l’optimisation logicielle constante du réseau Helium ont permis de délester considérablement la charge de travail des hotspots en délégant les opérations complexes aux validateurs. Ceci dit, les hotspots doivent encore, pour des raisons historiques, synchroniser l’ensemble de la blockchain. Ce modèle n’est pas maintenable et va disparaître au profit de la synchro de snapshots bien moins gourmands en ressources mémoire. Cette nouvelle fonctionnalité va permettre l’émergence de “miners light”, bien moins chers et donc potentiellement favoriser encore plus le déploiement du réseau.

DAO

La DAO, pour Decentralized Autonomous Organization, pilote la gouvernance et l’évolution du projet par différents axes. Par exemple les HIP (Helium Improvement Proposals). Actuellement la DAO “mère” est la Helium Fundation, mais des propositions comme la HIP51 soumet l’idée d’avoir des subDAO pour chaque réseau indépendant : LoRaWan, 5G, etc …
Les HIP sont votées par la communauté, et assez logiquement, plus un portefeuille votant possède de tokens HNT (il n’y pas un token de gouvernance spécifique), plus son vote pèse.
La communauté a son Discord et propose régulièrement des événements communautaires.

LoRaWan Network Server

Le réseau Helium est unique dans le sens ou il propose une infrastructure wireless publique pour des serveurs LoRaWan privés. L’idée est de ne pas avoir d’entité centralisée (LoRaWan Network Server, LNS), mais un multi-tenancy de LNS, partageant le même réseau public.
Pour s’enregistrer sur le réseau Helium, chaque LNS doit acheter un “Organizationally Unique Identifier : OUI”. A partir de ce moment-là, le LNS est connu de la blockchain et va devoir gérer le routage des communications de ses propres end-devices.
Console est un projet développé par Helium. Il fournit une interface web permettant aux utilisateurs de gérer les organisations et les devices, ainsi qu’un serveur LNS compatible Helium Blockchain appelé “Routeur”. Techniquement, Console se déploie via Docker sur une machine avec un minimum de 4 vCPUs, 8GB of RAM, et 120 GB de SSD.

— Helium Console

Helium Console est un LNS hébergé par Helium Foundation dédié à l’onboarding des nouveaux utilisateurs et peut gérer jusqu’à 10 devices gratuitement.
En autre, il permet d’enregistrer, authentifier et gérer ses end-devices sur le réseau Helium. Ce service est “pré-cablé” pour s’interfacer avec des services Cloud IoT comme AWS ou faire du MQTT.

— Console Hosting Providers

Les consoles hosting providers sont des fournisseurs de service payant de l’accès au réseau Helium. Ils donnent accès à un service professionnel de haute qualité pour gérer des flottes importantes de end-devices. Par exemple Helium-IoT.eu qui fournit des serveurs hébergés en Europe.
De plus, de par sa conception, LoRaWan permet de créer des réseaux privés au sein même de Helium et donc s’assurer d’une totale sécurité sur les messages transmis. Ces derniers ne pouvant pas être décodés par le service central car chiffrés de bout en bout. (Du device au client final).

— Own Console

Une troisième solution est d’héberger soit même son LNS/Console. Cela à un coût d’hébergement bien sûr, mais aussi des coûts d’enregistrements divers s’élevant à $900. L’objectif dans ce cas pourrait être la sécurité, en ayant son propre serveur LoRaWan isolé et donc un contrôle total.

Router

Les routeurs sont des applications déployées sur Internet qui reçoivent des paquets des devices via les hotspots et les acheminent vers des destinations appropriées telles qu’un end point HTTP ou MQTT. Les routeurs remplissent plusieurs fonctions sur le réseau Helium, notamment :

  • Authentification des appareils avec le réseau Helium.
  • Recevoir des paquets de Hotspots et les acheminer vers les serveurs LoRaWan (LNS).
  • Brûler les Data Credits après une communication.
  • Fournir des messages de liaison descendante, y compris des mises à jour OTA, aux appareils via des points d’accès.
  • Stockage et mise à disposition d’une copie complète de la blockchain en agissant comme un full node.

Hotspots Mobile App

Une application mobile pour enregistrer et contrôler l’activité de son hotspot et ses rewards est disponible sous iOS et Android.

Roaming

Le “roaming” c’est la possibilité pour un device en dehors de la couverture de son réseau natif de pouvoir communiquer tout de même en utilisant un autre réseau. Helium possède quelques partenaires de roaming.

Oracle

Un oracle (dans le sens “blockchain”) est une source de données de confiance qui transmet des informations du “monde réel” aux smart-contracts qui s’exécutent au sein d’une blockchain. C’est souvent, par sécurité, la seule façon pour un smart-contract d’avoir des informations extérieures à son environnement d’exécution.
Dans la blockchain Helium, il existe une interface vers un Oracle, c’est celui qui donne la conversion HNT/USD. Comme l’algorithme d’équilibre entre HNT et Data Credits (DC) doit convertir l’un ou l’autre en fonction du cours du dollar américain, alors cet algorithme doit avoir une source fiable capable de lui donner le cours du HNT en temps réel.
Cet Oracle est en réalité un groupement de 9 Oracles provenant de sociétés, organisations et contributeurs anonymes (sécurité) qui récupèrent les valeurs du cours du HNT en live.

Inscription d’un hotspot

Ajouter un Full Hotspot au réseau a un coût de 40$ (4000000 DC). Ce coût est généralement compris dans le tarif du hotspot, c’est le constructeur qui “paye” et répercute le prix au client). Et quand le hotspot est activé, ces DC sont détruits du portefeuille du constructeur.
Ajouter un Data Only Hotspot coûte 10$.
Pour approfondir les autres coûts de transactions, naviguez ici.

Rentabilité d’un hotspot

Dans les premiers temps du réseau et avec une valeur du HNT qui avait explosée, la rentabilité était incroyable. Maintenant c’est nettement plus compliqué. Sans rentrer dans les détails qui dépasseraient le cadre de cet article voici deux liens vers des calculateurs afin de se faire une idée :

Coût des communications

Helium LoRaWan ne comprend pas d’abonnement, pas de SIM et pas de limitation de transfert. Le coût se fait à l’usage, le propriétaire de l’objet payant pour les communications, mesurées par paquets de 24 octets. Voici un article qui détermine de manière très fine les coûts de communication.

Hexagons

— Présentation

La façon dont Helium Network gère les positions géographiques est hautement intéressante. Ils utilisent en fait un système de géocodage en 2 dimensions originellement développé par Uber (pour l’optimisation du prix des courses) et disponible maintenant en logiciel libre : H3.

Plutôt que d’utiliser directement des coordonnées géographiques latitude/longitude qui ne sont pas adaptées pour définir, simplement, des aires, ils ont préféré mapper le monde avec des grilles d’hexagones. Les hexagones sont les polygones les plus adaptés pour quadriller une zone de la manière la plus efficace possible. La nature ne s’y trompe pas : des nids d’abeilles aux yeux de mouches en passant par des structures moléculaires, c’est un polygone magique !

Ci-dessous, une ville découpée en tuile hexagonales :

Tiled City

— Grilles

Une grille de polygones surpasse une grille de triangles ou de carrés en termes de gain d’espace avec moins de voisins et ces derniers positionnés à équidistance. Ce qui, mathématiquement, simplifie grandement les calculs, sachant que H3 considère que chaque hexagone a des segments de longueur identique.

A la manière de Geohash, il existe plusieurs grilles augmentant la précision à chaque fois mais aussi le nombre d’hexagones et leur taille. Helium utilise les grilles de résolutions H12 (~300m2) à H0 (4M km2), mais l’indexation peut descendre à 1m2 en H15 dans la norme. Chaque hexagone possède un numéro unique sur 64 bits.

Un inconvénient malgré tout, c’est qu’une grille de polygones ne se divise pas parfaitement comme une grille de carrés. Mais pour un réseau radio cet inconvénient n’est pas gênant.

Nested Hexagons

— Projection

Sur l’image précédente on voit les hexagones projetés sur la surface de la Terre. Le problème c’est qu’on les a courbés pour y arriver : on passe de 2D à 3D . L’autre problème c’est que la majorité des représentations d’une zone de la surface de la Terre, utilise une projection de Mercator qui “aplatit” la zone en 2D, et donc la déforme par rapport à la réalité cosmique. Si on représente les hexagones sur une projection de Mercator, eux aussi sont déformés.
Ci-dessous, la projection de Mercator de l’Australie :

Mercator projected Australia

C’est évidemment pas l’effet désiré, et on ne peut pas afficher ceci dans un site web et encore moins s’en servir pour calculer des distances à cause des erreurs de distorsion.

Afin de corriger, en grande partie, cette problématique, le choix de H3 est d’utiliser un icosaèdre (polygone à 20 faces) et de projeter la surface de la Terre dessus. Et ensuite utiliser une projection gnomonique par face avec l’objectif de trouver un compromis entre précision des calculs et rendu visuel.

Earth inside icosahedron

La projection gnomonique, cette fois plus juste, de l’Australie et sa grille d’hexagones :

Gnomonic projected Australia

Malgré tous ces efforts, les erreurs de calculs sont toujours existantes, mais nettement moindre qu’avec Mercator et elles sont négligeables pour le besoin.

— Rewards

Ce complexe mapping par hexagones de la Terre sert, entre autre, à positionner de manière précise les hotspot tout en conservant suffisamment de confidentialité sur l’emplacement exact, mais aussi à pouvoir les agréger en lots, dans des hexagones de résolution H8 (0.74 km²), afin de calculer les rewards ! Ci-dessous la couverture de Lille :

Lille (France) coverage

En effet, comme expliqué précédemment, des rewards sont distribués aux hotspots juste parce qu’ils étendent la couverture. Mais il y a une variable importante dans le calcul des rewards : le “transmit scale”.

Sans rentrer dans les détails techniques : plus y a de hotspots dans un même hexagone, moins y a de rewards. Et inversement. Le but est d’inciter un déploiement non concentré des hotspot, pour augmenter la couverture. Car si votre hotspot est seul dans un hexagone (et valide le proof of coverage) vous obtenez le maximum de rewards. L’incitation est bien d’étendre la couverture aux abords des villes, puis de plus en plus loin. Un scale de 1.0 correspond à 100% de rewards.

Number of hotspot by tile

Ci-dessus, une visualisation des rewards. Les hexagones a 2 ou 3 hotspots ont un scale à 1.0. Dès que l’on dépasse 3 le scale chute, jusqu’à 0.1 pour les zones densément équipées, soit 10% des rewards. Des sites existent afin de pouvoir estimer sa profitabilité et l’optimiser.

5G

En plus de LoRaWan, le réseau Helium va devenir le premier réseau 5G au monde appartenant au consommateur, en partie grâce au principe de subDAO. Les hotspots seront des “antennes 5G” domestique, qui rapporteront des rewards selon le même principe. D’autres types de réseaux pourraient être mis en place dans les prochaines années, comme une couverture WiFi.

DAO and subDAO

Helium vs Sigfox

Helium possède une couverture opérationnelle très urbaine et périurbaine plutôt acceptable, mais clairement déficiente dans le monde rural. Du fait de son approche décentralisée via des particuliers, Helium va-t-il être capable d’améliorer substantiellement la couverture réseau des campagnes ? Rien n’est moins sûr.
De plus, Helium souffre d’une autre difficulté : garantir un niveau de service. En effet, rien ne dit que le propriétaire d’un hotspot ne va pas le débrancher pour passer l’aspirateur en plein milieu d’une communication.
Et enfin, si l’installation de hotspots étaient très profitables les premières années, cette profitabilité diminue très vite mois après mois, et l’effondrement actuel du marché cryptos (juin 2022) n’arrange clairement pas les choses avec la valeur du HNT qui a dévissée. Malgré une idée de départ excellente et un réseau fonctionnel en croissance rapide, Helium va devoir tout de même faire face aux mêmes problématiques que les réseaux centralisés propriétaires.

Sigfox avec son approche professionnelle ainsi qu’une portée bien supérieure des antennes est en mesure de mettre en place une couverture réfléchie, stratégique, à l’échelle d’un pays. La problématique ici est le retour sur investissement d’un tel déploiement. Sigfox n’opère pas à l’échelle planétaire, mais certains pays d’EU ont une couverture quasi totale de leur territoire. Sigfox souffre d’une problématique d’investissement important à chaque volonté de couverture d’un nouveau pays. Par contre, les antennes Sigfox respectent un SLA, et le réseau est solide depuis des années. Pourtant l’avenir du réseau Sigfox reste incertain. Chacun des deux protagonistes a ces avantages et inconvénients. A vous de définir lequel des deux réponds le mieux à votre besoin ! 😜

Déploiement d’un Hotspot Helium

Ici je vais détailler la mise en place d’un Data Only Hotspot. J’avais pas le budget pour un Full “Miner” Hotspot 😄 !

Gateway RAK7268

Mon choix s’est porté sur un RAK7268, une gateway LoRaWan de qualité payée ~130€ en Mars 2022. Donc bien moins cher qu’un “miner”.

— Build an Helium Hotspot

Première étape, il faut ajouter le programme (daemon) de routage Helium au sein de l’OS du RAK7268, le WisGateOS, basé sur Linux.

— — Graphical Interface

Après avoir connecté la gateway au réseau local domestique, vous devez pouvoir accéder à son interface graphique via son IP dans votre navigateur.

RAK7268 Front-End

Et contrôler les logs.

RAK7268 logs

— — Reflash OS

Afin d’être à jour, je télécharge la dernière version de WisGateOS disponible, et je flash la gateway via “System” →”Flash Firmware”.

— — Helium-Gateway Daemon

Pour installer le daemon il faut se connecter en ligne de commandes à la gateway :

ssh 192.168.X.X -l root

Trouver la dernière version de la helium-gateway compatible avec le RAK7268 puis demander le téléchargement. Un conseil, téléchargez dans un répertoire ou y a un peu de place (>10Mo), comme /tmp.

> wget https://github.com/helium/…/helium-gateway-v1.0.0-alpha.28-ramips_24kec.ipk

Lancer l’installation via :

> opkg install helium-gateway-v1.0.0-alpha.28-ramips_24kec.ipk

Modifier deux fichiers :

Changer la région 'US915' par 'EU868' dans /etc/helium_gateway/default.toml
Ajouter la ligne 'region = “EU868”' en haut du fichier /etc/helium_gateway/settings/toml

Relancer le daemon et checker le log (visible aussi depuis l’interface graphique)

> /etc/init.d/helium_gateway restart
> logread | grep helium_gateway

A cette étape, notre gateway LoRaWan est devenue un véritable hotspot Helium “fonctionnel”. Disons qu’il est capable de forwarder des paquets uplink, mais le downlink ne fonctionne pas et bien entendu il ne rapporte absolument aucun Data Credit car il n’est pas déclaré officiellement sur le réseau Helium. (Voir plus loin)

Device RAK42000

Afin de vérifier que le Hotspot fonctionne correctement de bout en bout, j’ai acheté une petite board de développement LoRa équivalent à un device de Class A, le RAK4200.

— Console Helium

D’abord allons dans l’onglet device sur notre Console Helium afin d’ajouter ce nouveau device.

Console Helium > Device

La Console Helium nous donne les paramètres à saisir dans le device : Dev_EUI, App_EUI et App_Key.
Via un terminal en connexion série et la documentation des commandes, on update ces paramètres dans le RAK4200 avec ces commandes AT :

at+set_config=lora:dev_eui:XXXX, at+set_config=lora:app_eui:XXXX, at+set_config=lora:app_key:XXXX

Puis on vérifie que le paramétrage est correct :

CuteCom connected to RAK4200

— Join LoRa

Reste à joindre le réseau LoRaWan via la commande “at+join” !

Et la patatra ! La commande “join” retourne “error 99”, et le log du hotspot affiche : “WARN Ignoring downlink, no region params, module gateway”.

Et c’est normal … Notre hotspot n’étant pas enregistré officiellement sur le réseau Helium et que sa géolocalisation est inconnue, il ne peut pas faire de downlink OTAA pour paramétrer notre device. Comme les réseaux LoRaWan diffèrent en termes de paramétrage entre les continents, le hotspot bloque cette fonctionnalité. Il faut “assert location” pour ce hotspot. Et pour ça, il faut créer son Wallet.

Wallet Helium

Mais pourquoi un Wallet ? Hé bien parce qu’il va falloir payer maintenant !
Les frais d’enregistrement sur la blockchain d’un Data Only Hotspot sont de $10 et pour déclarer une géolocalisation ils sont de $5. De plus, il faut que le hotspot soit lié à un Wallet pour stocker les Data Credit gagnés lors des transferts de données.

— Deposit

Première étape, télécharger la dernière version du Wallet CLI Helium et créer le Wallet :

./helium-wallet create basic

Une fois créé, nous avons l’adresse de notre wallet et nous pouvons l’alimenter en HNT. A l’écriture de cet article le HNT vaut ~$10, je décide d’en acheter 3 et d’en envoyer 2 sur le Wallet.

Achat HNT sur Binance :

Binance HNT purchase

Ensuite je transfère deux HNT de Binance vers mon Wallet. Et 6 min plus tard, la balance du Wallet indique bien 2 HNT :

Wallet Balance

— Transactions

Maintenant que le Wallet est alimenté, on peut payer les deux transactions que l’on va devoir exécuter.

Chaque Hotspot sur la blockchain passe par deux transactions :

  1. Add Hotspot : lie la clé(swarm_key) du hotspot au wallet de son propriétaire. ($10)
  2. Asset Location : fournit la véritable position GPS du hotspot. ($5)

Sur le SSH du RAK7268, on lance la première transaction et la commande retourne le txn :

Helium blockchain transaction

Ensuite on valide, depuis le PC, la transaction avec le Wallet :

Transaction validation

Avec le hash de la transaction on peut vérifier son avancement via un API :

https://api.helium.io/v1/pending_transactions/Ze1yTTifNfqOVwrD7bspwBAk4azpkOVXwV2iUbzRoQI

Dans le JSON retourné on regarde le field status, il doit passer à “cleared”

Cleared transaction
Save gateway_key.bin

Sur le SSH du RAK7268, on lance la deuxième transaction avec la position GPS :

> ./helium-wallet hotspots assert — gateway 13WZfPp1MJdS5SLbp1JLN7xngqA3mz14GjGoim5tx3Vwy7wXTZe --lat=50.XXX --lon=3.XXX --elevation=30 --mode dataonly --commit

Cette fois, pas besoin de valider la transaction depuis le PC puisque le hotspot est lié au Wallet.

Et on vérifie l’avancement ici :

https://api.helium.io/v1/pending_transactions/k_Ndpi9fy-eVxX5vzX8wbYdkd-MxyLyIsv6vV_uzAHQ

Les transactions abouties on peut constater que la balance du wallet est passée de 2 à 0.46 HNT.

Wallet balance

Une dernière requête API nous informe que notre hotspot s’appelle
festive-mango-cottonmouth” :

https://api.helium.io/v1/hotspots/13WZfPp1MJdS5SLbp1JLN7xngqA3mz14GjGoim5tx3Vwy7wXTZe

Et … voilà ! Notre Light Hotspot est normalement 100% opérationnel ! Il nous reste à tester un transfert LoRa pour s’en assurer.

Device Uplink

Notre Light Hotspot enregistrer sur la blockchain Helium, le downlink et donc l’OTAA devrait maintenant fonctionner. L’échec précédent de la commande de “join” ne devrait plus se produire.

Dans le terminal connecté au RAK4200, exécutons la commande AT at+join, le résultat est cette fois celui attendu avec un OK Join Success. (Il peut être nécessaire d’exécuter 2, voire 3 fois le join. Si le join ne passe pas, regarder dans les logs du Hotspot si la requête LoRa est bien reçue et s’il y a des warnings ou errors).
Une fois le réseau Helium joint, on peut envoyer une payload arbitraire :

at+send=lora:2:1234567890

Et vérifier dans la Console Helium au niveau de l’Event Log du Device. Ci-contre, on peut y voir l’acceptation du Join et le Uplink qui a suivi.

Enfin, on peut faire un tour sur https://explorer.helium.com, chercher notre hotspot et avoir la fierté de faire partie du réseau !

Our hotspot online !

Intégration / API

La boucle n’est pas tout à fait bouclée, il nous reste à récupérer le contenu de la payload envoyée par notre Device. Au départ j’avais prévu de couvrir la partie intégration, mais l’article commence à s’étendre sérieusement en longueur. Alors je vais vous laisser découvrir vous même comme y arriver ! 😁
Ça ne devrait pas être très difficile car la Console Helium propose des interfaces “clés en main” pour plusieurs services Clouds du marché. Je vous laisse essayer tout ça !

Conclusion

Ce deep dive dans Helium Network n’a pas été de tout repos. J’ai découvert un projet assez incroyable utilisant de manière intelligente une Blockchain et surfant sur la vague du Web3. Je ne crois pas qu’il y est de précédent dans le domaine de l’opérateur de réseau décentralisé, c’est donc plus qu’un projet, c’est une expérience.
Et c’est précisément ce qui fait sa force actuellement, qui pourrait se transformer en faiblesse plus tard. Cette impression “d’expérience de société”, plus qu’une vision à long terme. Certes le nombre de hotspots augmente de manière exponentielle en 2022, mais que va-t’il se passer une fois la hype terminée ? Le ROI pâtit déjà de la baisse de régime du marché crypto (corrélée au marché “tout court”). Contrairement à un opérateur de réseau classique, Helium est incapable de garantir une couverture de telle ou telle région à une date donnée. Il va falloir se remettre au bon vouloir de la communauté. Comment les clients du réseau vont-ils accepter cette incertitude constante ? Est-ce qu’ à la manière des mineurs de Bitcoin le domaine va se professionnaliser ? Est-ce que ces professionnels vont déployer du matériel uniquement dans des secteurs stratégiques ayant un ROI avantageux ? Quel va être le poids de ces “pros” dans les décisions de la DAO ? Le risque c’est qu’à la fin, la grande utopie de l’hyper décentralisation soit dévorée par le capitalisme centralisé et les enjeux de pouvoir.

L’avenir nous le dira ! Et l’avenir s’écrit maintenant, sous nos yeux ! 👀

--

--