libp2p-lora-transport libp2p 노드가 LORA를 통해 통신 할 수있게합니다. LORA 브리지가 부착 된 LIBP2P 노드가 공인 피어가 LORA 브리지에서 데이터를 읽고/쓸 수있는 "프로토콜"으로 사용할 수 있습니다. 예를 들어, LiBP2P 노드가 센서 데이터를 Lorawan 게이트웨이에보고하도록하는 데 사용될 수 있습니다. 또 다른 가능성은 여러 다른 LIBP2P 노드가 LORA 브리지가 부착 된 LIBP2P 노드를 통해 데이터를 전달할 수 있도록하는 것입니다.
유효한 C 설치, GO 1.13+ 및 배선부 라이브러리가 설치되어야합니다.
다음 하드웨어가 테스트되었습니다.
arduinobridgeincludesrc/draginoArduino Mega + Dragino Lora GPS Shield를 사용하여 "Lora Bridge"라는 스케치가 Arduino에 배치됩니다. 이 스케치는 두 가지를 담당합니다.
Arduino Serial 인터페이스에 직접 연결되는 LIBP2P 호스트는 Arduino와 연결되는 브리지 핸들러를 등록합니다. 이 브리지 핸들러는 두 개의 채널을 생성합니다. 하나는 직렬 인터페이스에 데이터를 작성하는데, 하나는 직렬 인터페이스에서 데이터를 읽기위한 것입니다. 그런 다음 Goroutine이 시작되어 쓰기 채널에서 데이터를 끌어 내고 직렬 인터페이스에 파이프합니다. 서면 할 수있는 데이터가 없으면 직렬 인터페이스에서 데이터를 읽을 수 있는지 확인합니다. 가능하다면 데이터를 읽고 읽기 채널을 통해 보냅니다. 아무도 채널에서 수신을 기다리지 않으면 데이터는 단순히 폐기됩니다.
브리지는 직렬 인터페이스에서 나오는 모든 메시지가 메시지가 폐기되지 않으면 직렬 인터페이스에서 제대로 형식화되도록합니다 (Carrats ^ 에 랩핑).
두 가지 작동 모드가 있습니다.
이 구현에는 제공되는 보안이 전혀 없습니다. 데이터는 그대로 처리되며 해당 데이터가 ClearText 인 경우 Snoop On을 듣고있는 사람을 위해 LORA 라디오를 통해 데이터를 전송합니다. 즉, 데이터 가이 다리를 사용하여 개인이되기를 원한다면이 브리지를 암호화해야합니다. 이 브리지를 전송 (비 프로토콜 모드)으로 사용하는 경우 브리지를 통과하는 데이터를 수동으로 암호화하지 않고도 합리적으로 우수한 기본 보안 계층을 제공하는 개인 LIBP2P 떼를 사용하는 것이 좋습니다. 프로토콜 모드에서 브리지를 사용하는 경우 메시지를 수동으로 암호화해야합니다.
프로토콜 모드에서 모든 승인 된 피어는 브리지를 통해 데이터를 읽고 쓸 수 있으므로 특정 피어에만 액세스 할 수 있는지 확인하십시오.
Arduino의 직렬 인터페이스는 LIBP2P 노드가 LORA 모듈에 액세스 할 수 있도록 사용됩니다. 언제든지 데이터는 Arduino에서 libp2p 노드로 전송되며 메시지는 ^ 로 래핑됩니다. 예를 들어, 다른 lora 노드에 메시지를 보내려면 hello ^hello^ 보내야합니다. 로라 브리지 제어는 단일 문자 "제어 문자"를 통해 수행됩니다. 현재 제어 문자는 다음과 같습니다.
1 디버그 모드 토글모든 비 회사 코드는 AGPLV3에 따라 라이센스가 부여됩니다