UstadMobile / Meshrabiya

Virtual mesh network for Android that operates over WiFi
GNU Lesser General Public License v3.0
148 stars 12 forks source link

Network self assembly #8

Open Darin755 opened 4 months ago

Darin755 commented 4 months ago

Is it possible to make the network self assemble with no single originator? I am looking for a network that can work with moving devices with large amounts of unpredictability. I want devices to be able to talk to one another without an initial connection link. The network should form just by putting the devices close enough together.

I am not sure if this is something that can feasibly be done but I am looking into mesh and how it could be used to create darknet type network for various applications to share. I like how i2p works but it doesn't work reliably when there is isn't access to the public internet.

mikedawson commented 3 months ago

@Darin755 Sorry for the late reply - I think this would only be possible using

In order to run a WiFi mesh of any kind on Android phones that don't support WiFiAware one must use WiFi Direct to create a group that others can connect into (AP mode), and then have one outgoing connection in station mode (eg. 'normal' wifi network connection) to another peer. On Android 10 and above connecting as a WiFi station ('normal' client) requires user approval via a prompt when connecting for the first time.

Google Nearby might be something you should consider as it has support for building up a mesh using the cluster strategy, which will use Bluetooth unless all nodes are connected to the same WiFi network already. It used to be an entirely proprietary thing, however source code for it is now available and it seems to be moving in a more open direction.

Darin755 commented 3 months ago

I didn't realize that Android required the prompt but I suppose that makes sense from a security perspective. Thanks for the response.

mikedawson commented 3 months ago

@Darin755 There are some rules for when prompts show and don't show : I wrote those up on a Medium article and included links to the relevant Android source code underlying behavior.

dima-ko commented 2 months ago

@mikedawson Hi. Let's say we have 2 devices. Users connected them explicitly (using QR code or prompt). Then connection was lost (due to long distance). Then devices were brought close again. Will connection autorestore(without user's interaction)? Does the answer depend on what I choose in the app (Auto/WifiDirect/Local Only) ?

DrAlta commented 1 month ago

I think this is what I'll look into first. as the first step I'll make it share the info about the other nodes appearing as access points so that it can connecting to other nodes with a minimum hassle for the user. I'm not sure how easily it is for a app to connect the device to a new access point though.

You'll still need to join the Mesh network normally, but it should handle the node you are connecting too going offline without disconnecting you're from the mesh. this if the type of stuff I been implementing for my DTN, thou only in a network simulator.