libp2p-lora-transport permet aux nœuds libp2p de communiquer sur lora. Vous pouvez soit l'utiliser comme un "protocole" où un nœud LIBP2P avec un pont Lora attaché peut permettre aux pairs autorisés de lire / écrire des données de / vers le pont Lora. Par exemple, cela pourrait être utilisé pour permettre aux nœuds libp2p de signaler les données du capteur à une passerelle Lorawan. Une autre possibilité serait de permettre à plusieurs nœuds LIBP2P différents pour relayer les données via un nœud LIBP2P avec un pont LORA attaché.
Vous aurez besoin d'une installation C valide, de 1,13+ et des bibliothèques de câblage Installées.
Le matériel suivant a été testé:
arduinobridgeincludesrc/draginoEn utilisant un bouclier GPS Arduino Mega + Dragino Lora, un croquis appelé "Lora Bridge" est déployé sur l'Arduino. Ce croquis est responsable de deux choses:
Un hôte LIBP2P avec une connexion directe à l'interface série Arduino enregistre un gestionnaire de ponts qui se connecte à l'Arduino. Ce gestionnaire de ponts crée deux canaux, un pour écrire des données dans l'interface série, une pour lire les données de l'interface série. Un goroutine est ensuite lancé, qui retirera les données du canal d'écriture et le tuera dans l'interface série. Si aucune donnée n'est disponible à l'écriture, nous voyons alors si des données peuvent être lues sur l'interface série. Si nous le pouvons, nous lisons les données et les envoyons via le canal de lecture. Si personne n'attend de recevoir du canal, les données sont simplement jetées.
Le pont garantira que tous les messages qui sortent de l'interface série sont correctement formatés (enveloppés dans les porte-à-dire ^ ), si les messages ne le sont pas, ils sont également jetés.
Il existe deux modes de fonctionnement:
Il n'y a absolument aucune sécurité assurée dans cette implémentation. Les données sont gérées telles quelles, et si ces données sont en texte clair, les données seront transmises sur la radio LORA dans ClearText pour toute personne dont l'écoute de Snoop. Cela signifie que si vous voulez que les données soient privées par ce pont, vous devez les crypter. Si vous utilisez ce pont comme transport (mode non protocole), il est recommandé d'utiliser un essaim LIBP2P privé car cela fournit une couche de sécurité raisonnablement bonne, sans avoir à crypter manuellement les données passant par le pont. Si vous utilisez le pont en mode protocole, cela signifie que vous devrez crypter manuellement les messages.
En mode protocole, tout pair autorisé peut lire / écrire des données via le pont, alors assurez-vous que vous n'autorisez que des pairs particuliers.
L'interface série sur l'Arduino est utilisée pour permettre à nos nœuds libp2p d'accéder au module LORA. Chaque fois que des données sont envoyées de l'Arduino au nœud libp2p, les messages sont enveloppés dans ^ . Par exemple, si nous souhaitons envoyer un message à un autre nœud lora qui dit hello nous devons envoyer ^hello^ . Le contrôle du pont Lora se fait via une seule lettre "CONTRÔLE". Les caractères de contrôle actuels sont:
1 - Mode de débogage à basculeTout le code non firmata est sous licence en vertu de l'AGPLV3