libp2p-lora-transport permite que los nodos libp2p se comuniquen sobre Lora. Puede usarlo como un "protocolo" donde un no los nodos libp2p con un puente Lora adjunto puede permitir a los compañeros autorizados leer/escribir datos desde/al puente Lora. Por ejemplo, esto podría usarse para permitir que los nodos libp2p informen los datos del sensor en una puerta de enlace de Lorawan. Otra posibilidad sería permitir que múltiples nodos de libp2p diferentes transmitieran datos a través de un nodo libp2p con un puente Lora adjunto.
Necesitará una instalación C válida, GO 1.13+ y las bibliotecas WiringPI instaladas.
Se ha probado el siguiente hardware:
arduinobridgeincludesrc/draginoUsando un Arduino Mega + Dragino Lora GPS Shield, se despliega un boceto llamado "Puente Lora" en el Arduino. Este boceto es responsable de dos cosas:
Un host LBP2P con una conexión directa con la interfaz serie Arduino registra un controlador de puentes que se conecta al Arduino. Este controlador de puentes crea dos canales, uno para escribir datos en la interfaz serie, uno para leer datos fuera de la interfaz serie. Luego se lanza una goroutina, que extraerá los datos del canal de escritura y los encenderá en la interfaz serie. Si no hay datos disponibles para escribir, entonces vemos si se pueden leer los datos de la interfaz serie. Si podemos, leemos los datos y los enviamos a través del canal Read. Si nadie está esperando recibir del canal, los datos simplemente se descartan.
El puente asegurará que todos los mensajes que salgan de la interfaz en serie estén formateados correctamente (envueltos en Carrats ^ ), si los mensajes no son, también se descartan.
Hay dos modos de operación:
No se proporciona absolutamente ninguna seguridad en esta implementación. Los datos se manejan tal como están, y si esos datos están en ClearText, entonces los datos se transmitirán a través de la radio Lora en ClearText para cualquier persona que escuche Swoop. Eso significa que si desea que los datos sean privados pasando por este puente, debe cifrarlo. Si usa este puente como transporte (modo no protocolo), se recomienda utilizar un enjambre privado de libp2p, ya que proporciona una capa base razonablemente buena de seguridad, sin tener que cifrar manualmente los datos que pasan por el puente. Si usa el puente en modo de protocolo, esto significa que deberá cifrar los mensajes manualmente.
En modo de protocolo, cualquier par autorizado puede leer/escribir datos a través del puente, así que asegúrese de permitir el acceso de pares particulares.
La interfaz serie en el Arduino se utiliza para permitir que nuestros nodos libp2p tengan acceso al módulo Lora. En cualquier momento, los datos se envían desde Arduino al nodo libp2p, los mensajes están envueltos en ^ . Por ejemplo, si deseamos enviar un mensaje a otro nodo Lora que diga hello , deberíamos enviar ^hello^ . El control del puente Lora se realiza a través de "caracteres de control" de una sola letra. Los caracteres de control actuales son:
1 - Alternar el modo de depuraciónTodo el código no firmata tiene licencia bajo AGPLV3