Comment by konsumer
I've been obsessed with reticulum. It's a network over other networks. https://konsumer.js.org/nomadnet-js/ https://github.com/konsumer/rns-lite
The protocol is fairly simple, encrypted by default, and works over lots of interesting transports.
It's really cool, but as far as I know there's no complete C++ implementation for embedded platforms, and I still can't figure out how it actually works.
Does the gossip flooding mean every single node needs to know about every other node in the entire mesh?
I have a project vaguely inspired by this and Meshtastic that tries to make use of existing internet tech, while falling back to local links, instead of trying to replace the Internet completely.
It's very much WIP, I'm planning to get rid of all of the automatic reliable retransmit stuff and replace it with per channel end to end acknowledgment. https://github.com/EternityForest/LazyMesh#