libp2p-lora-transport ermöglicht es LIBP2P-Knoten, über Lora zu kommunizieren. Sie können es entweder als "Protokoll" verwenden, wobei ein LIBP2P -Knoten mit einer angehängten Lora -Brücke autorisierte Kollegen ermöglichen kann, Daten von/zur Lora -Brücke zu lesen/zu schreiben. Dies könnte beispielsweise verwendet werden, damit ein LIBP2P -Knoten Sensordaten an einem Lorawan -Gateway melden kann. Eine andere Möglichkeit wäre, mehrere verschiedene Libp2p -Knoten zu ermöglichen, Daten durch einen LIBP2P -Knoten mit einer angehängten Lora -Brücke weiterzuleiten.
Sie benötigen eine gültige C -Installation, GO 1.13+ und die Verdrahtungsbibliotheken.
Die folgende Hardware wurde getestet:
arduinobridgeincludesrc/draginoMit einem Arduino Mega + Dragino Lora GPS Shield wird eine Skizze namens "Lora Bridge" im Arduino eingesetzt. Diese Skizze ist für zwei Dinge verantwortlich:
Ein LIBP2P -Host mit einer direkten Verbindung zum Arduino Serial Interface registriert einen Brückenhandler, der sich mit dem Arduino verbindet. Dieser Brückenhandler erstellt zwei Kanäle, eine zum Schreiben von Daten in die serielle Schnittstelle, eine zum Lesen von Daten aus der seriellen Schnittstelle. Anschließend wird eine Goroutine gestartet, die Daten aus dem Schreibkanal abzieht und sie in die serielle Schnittstelle leitet. Wenn für das Schreiben keine Daten verfügbar sind, sehen wir dann fest, ob Daten die serielle Schnittstelle abgelesen werden können. Wenn wir können, lesen wir die Daten und senden sie über den Lesekanal. Wenn niemand darauf wartet, vom Kanal zu empfangen, werden die Daten einfach verworfen.
Die Brücke sorgt dafür, dass alle Nachrichten, die von der seriellen Schnittstelle stammen, ordnungsgemäß formatiert sind (in Carrats ^ verpackt ^), wenn die Nachrichten nicht auch verworfen werden.
Es gibt zwei Betriebsmodi:
In dieser Implementierung gibt es absolut keine Sicherheit. Die Daten werden so behandelt, wie es ist, und wenn diese Daten im ClearText sind, werden Daten über das Lora -Radio in ClearText übertragen, der für alle, die Snoop anhören, anhören. Das heißt, wenn Sie möchten, dass Daten privat durch diese Brücke gehen, müssen Sie sie verschlüsseln. Wenn Sie diese Brücke als Transport (Nicht -Protokollmodus) verwenden, wird empfohlen, einen privaten LIBP2P -Schwarm zu verwenden, da dies eine einigermaßen gute Basisschicht der Sicherheit bietet, ohne die Daten, die durch die Brücke gehen, manuell verschlüsseln zu müssen. Wenn Sie die Brücke im Protokollmodus verwenden, müssen Sie die Nachrichten manuell verschlüsseln.
Im Protokollmodus kann jeder autorisierte Peer Daten über die Brücke lesen/schreiben. Stellen Sie daher sicher, dass Sie nur bestimmten Gleichaltrigen zugreifen können.
Die serielle Schnittstelle am Arduino wird verwendet, damit unsere LIBP2P -Knoten auf das LORA -Modul zugreifen können. Immer wenn Daten vom Arduino an den LIBP2P -Knoten gesendet werden, sind Nachrichten in ^ verpackt. Sollten wir beispielsweise eine Nachricht an einen anderen Lora -Knoten senden, der hello sagt, sollten wir ^hello^ senden. Die Kontrolle der Lora -Brücke erfolgt über einen einzelnen Buchstaben "Steuerzeichen". Die aktuellen Steuerzeichen sind:
1 - Debug -Modus umschaltenAlle Nicht -Firmencode sind unter AGPLV3 lizenziert