libp2p-lora-transport使libp2p节点可以通过洛拉进行通信。您可以将其用作“协议”,其中带有lora桥的LIBP2P节点可以允许授权的同行从/到Lora桥的读取/写入数据。例如,这可以用来允许LIBP2P节点向Lorawan Gateway报告传感器数据。另一种可能性是允许多个不同的LIBP2P节点通过LIBP2P节点与附加的Lora桥传输数据。
您将需要有效的C安装,GO 1.13+以及安装了WiringPI库。
已经测试了以下硬件:
arduinobridgeincludesrc/dragino使用Arduino Mega + Dragino Lora GPS盾牌,将一个称为“ Lora Bridge”的草图部署到Arduino。该草图是对两件事的原因:
具有直接连接到Arduino串行接口的LIBP2P主机注册连接到Arduino的桥接处理程序。该桥接处理程序创建了两个通道,一个用于将数据写入串行接口,一个用于从串行接口中读取数据。然后启动Goroutine,将数据从写入通道中取下,然后将其输送到串行接口中。如果没有数据可供编写,我们将查看是否可以从串行接口中读取任何数据。如果可以的话,我们会读取数据,然后通过读取频道发送。如果没有人在等待从频道接收,那么数据就会简单丢弃。
该桥将确保将串行界面传来的所有消息正确格式化(包裹在Carrats ^ ),如果不是消息,它们也会被丢弃。
有两种操作模式:
本实现绝对没有提供安全性。数据按原样处理,如果这些数据在clearText中,则数据将通过clearText中的lora收音机传输,以供任何听取Snoop On的人。这意味着,如果您希望数据私有通过这座桥梁,则必须对其进行加密。如果使用此桥作为运输(非协议模式),则建议使用私有的Libp2p群,因为它提供了相当好的安全层,而无需手动对桥梁的数据进行加密。如果在协议模式下使用桥梁,则意味着您需要手动加密消息。
在协议模式下,任何授权的同行都可以通过桥梁读取/写数据,因此请确保您只允许特定的同行访问。
Arduino上的串行接口用于允许我们的LIBP2P节点访问LORA模块。每当数据从Arduino发送到LIBP2P节点,都包裹在^中。例如,我们应该希望向另一个洛拉节点发送一条消息,这是hello ,我们应该发送^hello^ 。控制洛拉桥是通过单个字母“控制字符”完成的。当前的控制字符是:
1切换调试模式所有非Firmata代码均根据AGPLV3许可